Sensor/a> provides functions for getting\/putting backend and creating sensor devices.<\/p>\n<h2 id=\"content-required-header\"><a href=https://samsungtizenos.com/"#content-required-header\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Required Header<\/h2>\n<p>#include <hal-sensor.h><\/p>\n<h2 id=\"content-overview\"><a href=https://samsungtizenos.com/"#content-overview\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Overview<\/h2>\n<p>The Sensor provides functions to get\/put backend.<\/p>\n<ul>\n<li>int hal_sensor_get_backend(void);<\/li>\n<li>int hal_sensor_put_backend(void);<\/li>\n<\/ul>\n<p>The Sensor provides creating and deleting functions.<\/p>\n<ul>\n<li>int hal_sensor_create(uint64_t **sensor_device_ids, size_t *sensor_device_ids_len);<\/li>\n<li>int hal_sensor_delete(uint64_t *sensor_device_ids, size_t sensor_device_ids_len);<\/li>\n<\/ul>\n<p>For the sensors created by hal_sensor_create, Sensor provides operations.<\/p>\n<p>Functions to get poll fd and sensors:<\/p>\n<ul>\n<li>int hal_sensor_get_poll_fd(uint64_t sensor_device_id, int *poll_fd);<\/li>\n<li>int hal_sensor_get_sensors(uint64_t sensor_device_id, const sensor_info_t **sensors, size_t *sensors_len);<\/li>\n<\/ul>\n<p>Functions to manipulate the behavior of sensors:<\/p>\n<ul>\n<li>int hal_sensor_enable(uint64_t sensor_device_id, uint32_t id);<\/li>\n<li>int hal_sensor_disable(uint64_t sensor_device_id, uint32_t id);<\/li>\n<li>int hal_sensor_read_fd(uint64_t sensor_device_id, uint32_t **ids, size_t *ids_len);<\/li>\n<li>int hal_sensor_get_data(uint64_t sensor_device_id, uint32_t id, sensor_data_t **data, size_t *length);<\/li>\n<li>int hal_sensor_set_interval(uint64_t sensor_device_id, uint32_t id, unsigned long val);<\/li>\n<li>int hal_sensor_set_batch_latency(uint64_t sensor_device_id, uint32_t id, unsigned long val);<\/li>\n<\/ul>\n<p>Functions to get\/set attributes of sensors:<\/p>\n<ul>\n<li>int hal_sensor_set_attribute_int(uint64_t sensor_device_id, uint32_t id, int32_t attribute, int32_t value);<\/li>\n<li>int hal_sensor_set_attribute_str(uint64_t sensor_device_id, uint32_t id, int32_t attribute, const char *value, size_t len);<\/li>\n<li>int hal_sensor_get_attribute_int(uint64_t sensor_device_id, uint32_t id, int32_t attribute, int32_t *value);<\/li>\n<li>int hal_sensor_get_attribute_str(uint64_t sensor_device_id, uint32_t id, int32_t attribute, char **value, size_t *len);<\/li>\n<\/ul>\n<p>Function to flush sensor data:<\/p>\n<ul>\n<li>int hal_sensor_flush(uint64_t sensor_device_id, uint32_t id);<\/li>\n<\/ul>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Typedefs<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#struct__hal__backend__sensor__funcs\">_hal_backend_sensor_funcs<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#gab149a15aaedff03f58f870f39f254549\">hal_backend_sensor_funcs<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for sensor functions.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#structsensor__info__t\">sensor_info_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#gacd7f7b79f3404a68812539f095b1572b\">sensor_info_t<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for sensor information data.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#structsensor__data__t\">sensor_data_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#gac544068a1e6844fd0bbd13538265a805\">sensor_data_t<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for sensor data.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#structsensorhub__data__t\">sensorhub_data_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#gae3a99bfac425b6ae9e47db421b45c2c5\">sensorhub_data_t<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure of sensorhub data.<\/td>\n<\/tr>\n<tr>\n<td>Defines<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ga56e187e109ad355cdd622b442196edb3\">SENSOR_DATA_VALUE_SIZE<\/a>\u00a0\u00a0\u00a016<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition of sensor data value size.<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#gaff39397082c96c63409accc76516430e\">SENSORHUB_DATA_VALUE_SIZE<\/a>\u00a0\u00a0\u00a04096<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition of sensorhub data value size.<\/td>\n<\/tr>\n<tr>\n<td>#define<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ga478d21112917c21c2ca35c5cc325eae6\">SENSOR_PEDOMETER_DATA_DIFFS_SIZE<\/a>\u00a0\u00a0\u00a020<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Definition of pedometer data difference array size.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h2 id=\"content-data-structure-documentation\"><a href=https://samsungtizenos.com/"#content-data-structure-documentation\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Data Structure Documentation<\/h2>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct sensor_device_s<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for sensor device functions.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SENSOR 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a973159845d88c15c19076b0ab3268cf3\">get_poll_fd<\/a> )(uint32_t sensor_device_id, int *poll_fd)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a214100e17f8106d69c673ab12641e2c1\">get_sensors<\/a> )(uint32_t sensor_device_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#structsensor__info__t\">sensor_info_t<\/a> **sensors, size_t *sensors_len)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a905210fd417f08894ba1edcf1b05277d\">enable<\/a> )(uint32_t sensor_device_id, uint32_t id)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ac9336282dd53b9452b534481a9b7ecc8\">disable<\/a> )(uint32_t sensor_device_id, uint32_t id)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a1c8d27a44d8b3c44c2592b4d3ef876f1\">read_fd<\/a> )(uint32_t sensor_device_id, uint32_t **ids, size_t *ids_len)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a416ed2c12eb8345dcad3a8d5c3af2cb0\">get_data<\/a> )(uint32_t sensor_device_id, uint32_t id, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#structsensor__data__t\">sensor_data_t<\/a> **data, size_t *length)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#aa25e38972d72f313b93265ee6191a4bb\">set_interval<\/a> )(uint32_t sensor_device_id, uint32_t id, unsigned long val)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#aa85b044054680015cee3f5f18f89c515\">set_batch_latency<\/a> )(uint32_t sensor_device_id, uint32_t id, unsigned long val)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#aa52b1111b3dd97250b116cb9759f0043\">set_attribute_int<\/a> )(uint32_t sensor_device_id, uint32_t id, int32_t attribute, int32_t value)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a140b0dc452c46f74134dd255da39154c\">set_attribute_str<\/a> )(uint32_t sensor_device_id, uint32_t id, int32_t attribute, const char *value, size_t len)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#aa108f71ad3e2f648501c50ce3f932b62\">get_attribute_int<\/a> )(uint32_t sensor_device_id, uint32_t id, int32_t attribute, int32_t *value)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ab16b6b61a29f01a307e6e0595b2735c7\">get_attribute_str<\/a> )(uint32_t sensor_device_id, uint32_t id, int32_t attribute, char **value, size_t *len)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#af3cdef38e798309e227f13c16af809cc\">flush<\/a> )(uint32_t sensor_device_id, uint32_t id)<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation\"><a href=https://samsungtizenos.com/"#content-field-documentation\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ac9336282dd53b9452b534481a9b7ecc8\">sensor_device_s::disable<\/a>)(uint32_t sensor_device_id, uint32_t id)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Disable this sensor<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a905210fd417f08894ba1edcf1b05277d\">sensor_device_s::enable<\/a>)(uint32_t sensor_device_id, uint32_t id)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enable this sensor<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#af3cdef38e798309e227f13c16af809cc\">sensor_device_s::flush<\/a>)(uint32_t sensor_device_id, uint32_t id)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Flush sensor data<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#aa108f71ad3e2f648501c50ce3f932b62\">sensor_device_s::get_attribute_int<\/a>)(uint32_t sensor_device_id, uint32_t id, int32_t attribute, int32_t *value)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get integer attribute value<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ab16b6b61a29f01a307e6e0595b2735c7\">sensor_device_s::get_attribute_str<\/a>)(uint32_t sensor_device_id, uint32_t id, int32_t attribute, char **value, size_t *len)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get string attribute value<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a416ed2c12eb8345dcad3a8d5c3af2cb0\">sensor_device_s::get_data<\/a>)(uint32_t sensor_device_id, uint32_t id, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#structsensor__data__t\">sensor_data_t<\/a> **data, size_t *length)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get sensor data<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a973159845d88c15c19076b0ab3268cf3\">sensor_device_s::get_poll_fd<\/a>)(uint32_t sensor_device_id, int *poll_fd)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get poll fd for event listening<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a214100e17f8106d69c673ab12641e2c1\">sensor_device_s::get_sensors<\/a>)(uint32_t sensor_device_id, const <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#structsensor__info__t\">sensor_info_t<\/a> **sensors, size_t *sensors_len)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get sensor entities<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a1c8d27a44d8b3c44c2592b4d3ef876f1\">sensor_device_s::read_fd<\/a>)(uint32_t sensor_device_id, uint32_t **ids, size_t *ids_len)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Read sensor and return event ids<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#aa52b1111b3dd97250b116cb9759f0043\">sensor_device_s::set_attribute_int<\/a>)(uint32_t sensor_device_id, uint32_t id, int32_t attribute, int32_t value)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Set attribute as an integer value<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a140b0dc452c46f74134dd255da39154c\">sensor_device_s::set_attribute_str<\/a>)(uint32_t sensor_device_id, uint32_t id, int32_t attribute, const char *value, size_t len)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Set attribute as a string value<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#aa85b044054680015cee3f5f18f89c515\">sensor_device_s::set_batch_latency<\/a>)(uint32_t sensor_device_id, uint32_t id, unsigned long val)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Set batch latency<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#aa25e38972d72f313b93265ee6191a4bb\">sensor_device_s::set_interval<\/a>)(uint32_t sensor_device_id, uint32_t id, unsigned long val)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Set sensor value interval<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _hal_backend_sensor_funcs<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for sensor functions.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SENSOR 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ad92f61e9ecfe7a0ea8b43df2c2ae70cf\">create_sensor<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#structsensor__device__s\">sensor_device_s<\/a> ***sensor_devices, size_t *sensor_devices_len)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a457245244fdee9fa6dfeea21c8a205c6\">delete_sensor<\/a> )(uint32_t *sensor_device_ids, size_t sensor_device_ids_len)<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-1\"><a href=https://samsungtizenos.com/"#content-field-documentation-1\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ad92f61e9ecfe7a0ea8b43df2c2ae70cf\">_hal_backend_sensor_funcs::create_sensor<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#structsensor__device__s\">sensor_device_s<\/a> ***sensor_devices, size_t *sensor_devices_len)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Create sensor devices<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a457245244fdee9fa6dfeea21c8a205c6\">_hal_backend_sensor_funcs::delete_sensor<\/a>)(uint32_t *sensor_device_ids, size_t sensor_device_ids_len)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Delete sensors with their ids<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct sensor_info_t<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for sensor information data.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SENSOR 1.0<\/p>\n<p>A platform sensor handler is generated based on this handle.<br \/>\nThe 'id' can be assigned from HAL developer, so it has to be<br \/>\nunique per a sensor_device.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a0afa974e9ae45c7fa3a5c0208caf1d88\">id<\/a><\/td>\n<\/tr>\n<tr>\n<td>const char *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a491f26a6cf9f65954b4b79571401edd3\">name<\/a><\/td>\n<\/tr>\n<tr>\n<td>int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a0efd350b552d9f393248372a586219d4\">type<\/a><\/td>\n<\/tr>\n<tr>\n<td>unsigned int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#af1d0b680ce7bc60f335c384a0a84cfa2\">event_type<\/a><\/td>\n<\/tr>\n<tr>\n<td>const char *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#afbea2580f3d0c741aebcb42dfdba4474\">model_name<\/a><\/td>\n<\/tr>\n<tr>\n<td>const char *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ae0df24fe2a841e9e866789f167ea2dee\">vendor<\/a><\/td>\n<\/tr>\n<tr>\n<td>float<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#aab3997856beeda73bb88289314606dd6\">min_range<\/a><\/td>\n<\/tr>\n<tr>\n<td>float<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ad42f696498b6d5dc05746e1e499dc520\">max_range<\/a><\/td>\n<\/tr>\n<tr>\n<td>float<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ae7ff0a6103d248bb3cd7d32324f10a6a\">resolution<\/a><\/td>\n<\/tr>\n<tr>\n<td>int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a2c136b5c51eaa552e0a06e63036c1763\">min_interval<\/a><\/td>\n<\/tr>\n<tr>\n<td>int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a43f13095e543ce8cd617a7f083c6267e\">max_interval<\/a><\/td>\n<\/tr>\n<tr>\n<td>int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a0f4de71dacc0d8a8f1f495aaf24d1927\">max_batch_count<\/a><\/td>\n<\/tr>\n<tr>\n<td>bool<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ae7060a3de0b5fb4abea5279387fcf6d4\">wakeup_supported<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-2\"><a href=https://samsungtizenos.com/"#content-field-documentation-2\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>unsigned int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#af1d0b680ce7bc60f335c384a0a84cfa2\">sensor_info_t::event_type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Event type for Internal API<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a0afa974e9ae45c7fa3a5c0208caf1d88\">sensor_info_t::id<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Sensor id<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a0f4de71dacc0d8a8f1f495aaf24d1927\">sensor_info_t::max_batch_count<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Minimum batch count<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a43f13095e543ce8cd617a7f083c6267e\">sensor_info_t::max_interval<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Maximum interval of sensor value retrieval<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>float <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ad42f696498b6d5dc05746e1e499dc520\">sensor_info_t::max_range<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Maximum range of sensor value<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a2c136b5c51eaa552e0a06e63036c1763\">sensor_info_t::min_interval<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Minimum interval of sensor value retrieval<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>float <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#aab3997856beeda73bb88289314606dd6\">sensor_info_t::min_range<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Minimum range of sensor value<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>const char* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#afbea2580f3d0c741aebcb42dfdba4474\">sensor_info_t::model_name<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Model name of sensor<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>const char* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a491f26a6cf9f65954b4b79571401edd3\">sensor_info_t::name<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Sensor name<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>float <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ae7ff0a6103d248bb3cd7d32324f10a6a\">sensor_info_t::resolution<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Resolution of sensor value<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a0efd350b552d9f393248372a586219d4\">sensor_info_t::type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Sensor type(sensor_device_type)<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>const char* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ae0df24fe2a841e9e866789f167ea2dee\">sensor_info_t::vendor<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Vendor of sensor<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>bool <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ae7060a3de0b5fb4abea5279387fcf6d4\">sensor_info_t::wakeup_supported<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Support wakeup or not<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct sensor_data_t<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for sensor data.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SENSOR 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#adb999c588c70e427c0fd5bedf520fa9c\">accuracy<\/a><\/td>\n<\/tr>\n<tr>\n<td>unsigned long long<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#abfeede0ab2cb97afa7c4c5f65fe1bc62\">timestamp<\/a><\/td>\n<\/tr>\n<tr>\n<td>int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a295a3d3770e657899a8429f9904e39ed\">value_count<\/a><\/td>\n<\/tr>\n<tr>\n<td>float<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#aa65e028d1df0e93c2da45a37b178c9d5\">values<\/a> [16]<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-3\"><a href=https://samsungtizenos.com/"#content-field-documentation-3\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#adb999c588c70e427c0fd5bedf520fa9c\">sensor_data_t::accuracy<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Accuracy of value<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>unsigned long long <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#abfeede0ab2cb97afa7c4c5f65fe1bc62\">sensor_data_t::timestamp<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Timestamp of value<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a295a3d3770e657899a8429f9904e39ed\">sensor_data_t::value_count<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Number of values provided<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>float <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#aa65e028d1df0e93c2da45a37b178c9d5\">sensor_data_t::values<\/a>[16]<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Sensor values(array)<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct sensorhub_data_t<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure of sensorhub data.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SENSOR 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a81d267d6bafa648c667c81679391a4f5\">accuracy<\/a><\/td>\n<\/tr>\n<tr>\n<td>unsigned long long<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#aa423631a45e0d9444aab9d3e34570c90\">timestamp<\/a><\/td>\n<\/tr>\n<tr>\n<td>union {<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>int\u00a0\u00a0\u00a0<a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ab9c9a8a6c84387861713e75a98ab228a\">value_count<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>int\u00a0\u00a0\u00a0<a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ad6bcee99a084905762f6315dbde7cb95\">hub_data_size<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>};<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Union of number of values.<\/td>\n<\/tr>\n<tr>\n<td>union {<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>char\u00a0\u00a0\u00a0<a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a541e77867ed7f60d0b24e4b6468eebfe\">values<\/a> [4096]<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>char\u00a0\u00a0\u00a0<a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ad53aff66214575ab93d8238c4aa8ff76\">hub_data<\/a> [4096]<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>};<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Union of values.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-4\"><a href=https://samsungtizenos.com/"#content-field-documentation-4\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>union { ... }<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Union of values.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SENSOR 1.0<\/p>\n<p>Use "values" instead of "hub_data"(will be removed soon)<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>union { ... }<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Union of number of values.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SENSOR 1.0<\/p>\n<p>Use "value_count" instead of "hub_data_size"(will be removed soon)<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a81d267d6bafa648c667c81679391a4f5\">sensorhub_data_t::accuracy<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Accuracy of value<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>char <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ad53aff66214575ab93d8238c4aa8ff76\">sensorhub_data_t::hub_data<\/a>[4096]<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Values of sensorhub (deprecated)<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ad6bcee99a084905762f6315dbde7cb95\">sensorhub_data_t::hub_data_size<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Number of values (deprecated)<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>unsigned long long <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#aa423631a45e0d9444aab9d3e34570c90\">sensorhub_data_t::timestamp<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Timestamp of value<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ab9c9a8a6c84387861713e75a98ab228a\">sensorhub_data_t::value_count<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Number of values<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>char <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a541e77867ed7f60d0b24e4b6468eebfe\">sensorhub_data_t::values<\/a>[4096]<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Values of sensorhub<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct sensor_pedometer_data_t<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure of pedometer data.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SENSOR 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ac92db92158730ad47db1da695464b62b\">accuracy<\/a><\/td>\n<\/tr>\n<tr>\n<td>unsigned long long<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a6cccc69a0c0090c8d17bb6b46537dad6\">timestamp<\/a><\/td>\n<\/tr>\n<tr>\n<td>int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ae3ad152d89af02524e0260f1db07aa12\">value_count<\/a><\/td>\n<\/tr>\n<tr>\n<td>float<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a4a7c93d2a270ee7c4a43f61a5c9d3a1f\">values<\/a> [16]<\/td>\n<\/tr>\n<tr>\n<td>int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a32798f3967297c67e4a9c1cacb21997e\">diffs_count<\/a><\/td>\n<\/tr>\n<tr>\n<td>struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#structsensor__pedometer__data__t_1_1differences\">sensor_pedometer_data_t::differences<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ab666b6f42b543e2d90d3c8764205a879\">diffs<\/a> [20]<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-5\"><a href=https://samsungtizenos.com/"#content-field-documentation-5\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ac92db92158730ad47db1da695464b62b\">sensor_pedometer_data_t::accuracy<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Accuracy of value<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#structsensor__pedometer__data__t_1_1differences\">sensor_pedometer_data_t::differences<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ab666b6f42b543e2d90d3c8764205a879\">sensor_pedometer_data_t::diffs<\/a>[ 20 ]<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Array of differences of pedometer data<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a32798f3967297c67e4a9c1cacb21997e\">sensor_pedometer_data_t::diffs_count<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Number of struct differences Additional data attributes (not in <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#structsensor__data__t\" title=\"Structure for sensor data.\">sensor_data_t<\/a>)<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>unsigned long long <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a6cccc69a0c0090c8d17bb6b46537dad6\">sensor_pedometer_data_t::timestamp<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Timestamp of value<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ae3ad152d89af02524e0260f1db07aa12\">sensor_pedometer_data_t::value_count<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Number of values<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>float <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a4a7c93d2a270ee7c4a43f61a5c9d3a1f\">sensor_pedometer_data_t::values<\/a>[16]<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Values of pedometer sensor values = {step count, walk step count, run step count, moving distance, calorie burned, last speed, last stepping frequency (steps per sec), last step status (walking, running, ...)}<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct sensor_pedometer_data_t::differences<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure of differences of pedometer data.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SENSOR 1.0<\/p>\n<p>Additional data attributes (not in <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#structsensor__data__t\" title=\"Structure for sensor data.\">sensor_data_t<\/a>)<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a93f3f73fbc90fc9d9a3377c702e05f5f\">timestamp<\/a><\/td>\n<\/tr>\n<tr>\n<td>int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#af270d343eaea90b02e681378369d870d\">steps<\/a><\/td>\n<\/tr>\n<tr>\n<td>int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a52152d657c2ba761d648ebc27c4a2db7\">walk_steps<\/a><\/td>\n<\/tr>\n<tr>\n<td>int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a5b05a4b3dc2fb6b15062bb4f49a37369\">run_steps<\/a><\/td>\n<\/tr>\n<tr>\n<td>int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a45a39a177cfd299f5b441c524421dea7\">walk_up_steps<\/a><\/td>\n<\/tr>\n<tr>\n<td>int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a077dbc26505c20dba4421009313451d2\">walk_down_steps<\/a><\/td>\n<\/tr>\n<tr>\n<td>int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a7ff289dc1c73e29d6a54cfed4e1674ea\">run_up_steps<\/a><\/td>\n<\/tr>\n<tr>\n<td>int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a49009ef9262acf00b43f200a5bd35076\">run_down_steps<\/a><\/td>\n<\/tr>\n<tr>\n<td>float<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a25c3004ccaa3881c093110c8956930b1\">distance<\/a><\/td>\n<\/tr>\n<tr>\n<td>float<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a8e13d435cc354d52960b985928e143d5\">calories<\/a><\/td>\n<\/tr>\n<tr>\n<td>float<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a57bd11dd440c4e3dd5c01a74bd8b1eac\">speed<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-6\"><a href=https://samsungtizenos.com/"#content-field-documentation-6\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>float <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a8e13d435cc354d52960b985928e143d5\">sensor_pedometer_data_t::differences::calories<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Difference of calories<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>float <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a25c3004ccaa3881c093110c8956930b1\">sensor_pedometer_data_t::differences::distance<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Difference of distance<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a49009ef9262acf00b43f200a5bd35076\">sensor_pedometer_data_t::differences::run_down_steps<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Difference of run down steps<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a5b05a4b3dc2fb6b15062bb4f49a37369\">sensor_pedometer_data_t::differences::run_steps<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Difference of run steps<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a7ff289dc1c73e29d6a54cfed4e1674ea\">sensor_pedometer_data_t::differences::run_up_steps<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Difference of run up steps<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>float <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a57bd11dd440c4e3dd5c01a74bd8b1eac\">sensor_pedometer_data_t::differences::speed<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Difference of speed<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#af270d343eaea90b02e681378369d870d\">sensor_pedometer_data_t::differences::steps<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Difference of steps<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a93f3f73fbc90fc9d9a3377c702e05f5f\">sensor_pedometer_data_t::differences::timestamp<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Timestamp of difference<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a077dbc26505c20dba4421009313451d2\">sensor_pedometer_data_t::differences::walk_down_steps<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Difference of walk down steps<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a52152d657c2ba761d648ebc27c4a2db7\">sensor_pedometer_data_t::differences::walk_steps<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Difference of walk steps<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#a45a39a177cfd299f5b441c524421dea7\">sensor_pedometer_data_t::differences::walk_up_steps<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Difference of walk up steps<\/p>\n<hr \/>\n<h2 id=\"content-define-documentation\"><a href=https://samsungtizenos.com/"#content-define-documentation\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Define Documentation<\/h2>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ga56e187e109ad355cdd622b442196edb3\">SENSOR_DATA_VALUE_SIZE<\/a>\u00a0\u00a0\u00a016<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition of sensor data value size.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SENSOR 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ga478d21112917c21c2ca35c5cc325eae6\">SENSOR_PEDOMETER_DATA_DIFFS_SIZE<\/a>\u00a0\u00a0\u00a020<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition of pedometer data difference array size.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SENSOR 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>#define <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#gaff39397082c96c63409accc76516430e\">SENSORHUB_DATA_VALUE_SIZE<\/a>\u00a0\u00a0\u00a04096<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Definition of sensorhub data value size.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SENSOR 1.0<\/p>\n<hr \/>\n<h2 id=\"content-typedef-documentation\"><a href=https://samsungtizenos.com/"#content-typedef-documentation\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Typedef Documentation<\/h2>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#struct__hal__backend__sensor__funcs\">_hal_backend_sensor_funcs<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#gab149a15aaedff03f58f870f39f254549\">hal_backend_sensor_funcs<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for sensor functions.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SENSOR 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#structsensor__data__t\">sensor_data_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#structsensor__data__t\">sensor_data_t<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for sensor data.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SENSOR 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#structsensor__info__t\">sensor_info_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#structsensor__info__t\">sensor_info_t<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for sensor information data.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SENSOR 1.0<\/p>\n<p>A platform sensor handler is generated based on this handle.<br \/>\nThe 'id' can be assigned from HAL developer, so it has to be<br \/>\nunique per a sensor_device.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#structsensorhub__data__t\">sensorhub_data_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#structsensorhub__data__t\">sensorhub_data_t<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure of sensorhub data.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SENSOR 1.0<\/p>\n<hr \/>\n<h2 id=\"content-enumeration-type-documentation\"><a href=https://samsungtizenos.com/"#content-enumeration-type-documentation\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Enumeration Type Documentation<\/h2>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ga988eb5b459aef6457e3d3644219cf506\">hal_sensor_lidar_power_state<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration(hal) for power state of lidar.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SENSOR 1.0<\/p>\n<p><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#gga0dcb6842bc969492bd1c9eb49708940baf0c7858e4dbdd6f778e0cc7d9f230d9b\">HAL_SENSOR_ATTR_LIDAR_POWER_STATE<\/a> attribute value<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>HAL_SENSOR_LIDAR_POWER_STATE_OFF<\/em> | Off |\n| --- | --- |\n| <em>HAL_SENSOR_LIDAR_POWER_STATE_ON<\/em> | On |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ga4f0772770ce360f2ee0d4e94a7c3decb\">hal_sensor_proximity_sensitivity_level<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration(hal) for sensitivity level of proximity sensor.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SENSOR 1.0<\/p>\n<p><a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#gga0dcb6842bc969492bd1c9eb49708940ba6111ec010c7f3bccc55a558d217537a6\">HAL_SENSOR_ATTR_PROXIMITY_SENSITIVITY_LEVEL<\/a> attribute value<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>HAL_SENSOR_PROXIMITY_SENSITIVITY_LEVEL_WEAK<\/em> | Weak |\n| --- | --- |\n| <em>HAL_SENSOR_PROXIMITY_SENSITIVITY_LEVEL_MEDIUM<\/em> | Medium |\n| <em>HAL_SENSOR_PROXIMITY_SENSITIVITY_LEVEL_STRONG<\/em> | Strong |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ga1540a058a2c763b8eb8be71c4a86ffdf\">sensor_accuracy_t<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for sensor accuracy.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SENSOR 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>SENSOR_ACCURACY_UNDEFINED<\/em> | Undefined accuracy |\n| --- | --- |\n| <em>SENSOR_ACCURACY_BAD<\/em> | Bad accuracy |\n| <em>SENSOR_ACCURACY_NORMAL<\/em> | Normal accuracy |\n| <em>SENSOR_ACCURACY_GOOD<\/em> | Good accuracy |\n| <em>SENSOR_ACCURACY_VERYGOOD<\/em> | Very good accuracy |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#gade20d8a224ed1b9eab23201c2f25ca68\">sensor_activity<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for activity.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SENSOR 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>SENSOR_ACTIVITY_UNKNOWN<\/em> | Unknown activity |\n| --- | --- |\n| <em>SENSOR_ACTIVITY_STILL<\/em> | Still |\n| <em>SENSOR_ACTIVITY_WALKING<\/em> | Walking |\n| <em>SENSOR_ACTIVITY_RUNNING<\/em> | Running |\n| <em>SENSOR_ACTIVITY_IN_VEHICLE<\/em> | In vehicle |\n| <em>SENSOR_ACTIVITY_ON_BICYCLE<\/em> | On bicycle |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#ga0dcb6842bc969492bd1c9eb49708940b\">sensor_attribute<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for attributes of sensor.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SENSOR 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>SENSOR_ATTR_ACCELEROMETER_INJECTION<\/em> | accelerometer injection |\n| --- | --- |\n| <em>SENSOR_ATTR_ACTIVITY<\/em> | activity |\n| <em>SENSOR_ATTR_HRM_BATCH_OPR_MODE<\/em> | HRM batch opr mode |\n| <em>SENSOR_ATTR_HRM_BATCH_ACTIVITY_TYPE<\/em> | HRM batch activity type |\n| <em>SENSOR_ATTR_HRM_BATCH_BATCH_DUR<\/em> | HRM batch batch dur |\n| <em>SENSOR_ATTR_HRM_BATCH_FLUSH<\/em> | HRM batch flush |\n| <em>SENSOR_ATTR_HRM_BATCH_ELEVATED_DUR<\/em> | HRM batch elevated dur |\n| <em>SENSOR_ATTR_HRM_BATCH_ELEVATED_THR<\/em> | HRM batch elevated thr |\n| <em>SENSOR_ATTR_HRM_BATCH_BPM_RAW<\/em> | HRM batch bpm raw |\n| <em>SENSOR_ATTR_HRM_BATCH_LOW_ALERT_DUR<\/em> | HRM batch low alert dur |\n| <em>SENSOR_ATTR_HRM_BATCH_LOW_ALERT_THR<\/em> | HRM batch low alert thr |\n| <em>SENSOR_ATTR_HRM_LED_GREEN_BATCH_POLLING_INTERVAL<\/em> | HRM led green batch polling interval |\n| <em>SENSOR_ATTR_HRM_LED_GREEN_BATCH_FLUSH<\/em> | HRM led green batch flush |\n| <em>SENSOR_ATTR_HRM_LED_GREEN_BATCH_BATCH_PERIOD<\/em> | HRM led green batch batch period |\n| <em>SENSOR_ATTR_PEDOMETER_HEIGHT<\/em> | pedometer height |\n| <em>SENSOR_ATTR_PEDOMETER_WEIGHT<\/em> | pedometer weight |\n| <em>SENSOR_ATTR_PEDOMETER_GENDER<\/em> | pedometer gender |\n| <em>SENSOR_ATTR_PEDOMETER_AGE<\/em> | pedometer age |\n| <em>SENSOR_ATTR_PEDOMETER_FLUSH<\/em> | pedometer flush |\n| <em>SENSOR_ATTR_STRESS_MONITOR_AGE<\/em> | stress monitor age |\n| <em>SENSOR_ATTR_EXERCISE_TYPE<\/em> | exercise type |\n| <em>SENSOR_ATTR_EXERCISE_GPS<\/em> | exercise GPS |\n| <em>SENSOR_ATTR_EXERCISE_BATCH_INTERVAL<\/em> | exercise batch interval |\n| <em>SENSOR_ATTR_EXERCISE_PSERVICE<\/em> | exercise personal service |\n| <em>SENSOR_ATTR_CYCLE_DURATION<\/em> | cycle duration |\n| <em>SENSOR_ATTR_CYCLE_HOLDING_POSITION<\/em> | cycle holding position |\n| <em>SENSOR_ATTR_CYCLE_VELOCITY<\/em> | cycle velocity |\n| <em>SENSOR_ATTR_CYCLE_GET_DATA_TYPE<\/em> | cycle get data type |\n| <em>SENSOR_ATTR_CYCLE_DATA_FLUSH<\/em> | cycle data flush |\n| <em>SENSOR_ATTR_CYCLE_GPS_AGREEMENT<\/em> | cycle GPS agreement |\n| <em>SENSOR_ATTR_WORKOUT_TYPE<\/em> | workout type |\n| <em>SENSOR_ATTR_WORKOUT_DURATION<\/em> | workout duration |\n| <em>SENSOR_ATTR_RESTING_HR_OPR_MODE<\/em> | resting HR opr mode |\n| <em>SENSOR_ATTR_RESTING_HR_MAX_RHR<\/em> | resting HR max rhr |\n| <em>SENSOR_ATTR_RESTING_HR_MIN_RHR<\/em> | resting HR min rhr |\n| <em>SENSOR_ATTR_RESTING_HR_AVG_RHR<\/em> | resting HR avg rhr |\n| <em>SENSOR_ATTR_RESTING_HR_HOUR<\/em> | resting HR hour |\n| <em>SENSOR_ATTR_RESTING_HR_MIN<\/em> | resting HR min |\n| <em>SENSOR_ATTR_RESTING_HR_SEC<\/em> | resting HR sec |\n| <em>SENSOR_ATTR_RESTING_HR_PROPERTY_TYPE<\/em> | resting HR property type |\n| <em>SENSOR_ATTR_RESTING_HR_PROPERTY_HR_TYPE<\/em> | resting HR property HR type |\n| <em>SENSOR_ATTR_RESTING_HR_PROPERTY_HR_VALUE<\/em> | resting HR property HR value |\n| <em>SENSOR_ATTR_RESTING_HR_PROPERTY_DURATION<\/em> | resting HR property duration |\n| <em>SENSOR_ATTR_RESTING_HR_PROPERTY_ACT_TYPE<\/em> | resting HR property act type |\n| <em>SENSOR_ATTR_RESTING_HR_PROPERTY_ACT_DUR<\/em> | resting HR property act dur |\n| <em>SENSOR_ATTR_RESTING_HR_PROPERTY_CONT_DUR<\/em> | resting HR property cont dur |\n| <em>SENSOR_ATTR_RESTING_HR_DATA_TYPE<\/em> | resting HR data type |\n| <em>SENSOR_ATTR_RESTING_HR_DATA_FLUSH<\/em> | resting HR data flush |\n| <em>SENSOR_ATTR_STEP_LEVEL_MONITOR_DW_DURATION<\/em> | step level monitor dw duration |\n| <em>SENSOR_ATTR_EXERCISE_HR_OPR_MODE<\/em> | exercise HR opr mode |\n| <em>SENSOR_ATTR_EXERCISE_HR_ACTIVITY_TYPE<\/em> | exercise HR activity type |\n| <em>SENSOR_ATTR_EXERCISE_HR_BATCH_DUR<\/em> | exercise HR batch dur |\n| <em>SENSOR_ATTR_EXERCISE_HR_FLUSH<\/em> | exercise HR flush |\n| <em>SENSOR_ATTR_EXERCISE_HR_ELEVATED_DUR<\/em> | exercise HR elevated dur |\n| <em>SENSOR_ATTR_EXERCISE_HR_ELEVATED_THR<\/em> | exercise HR elevated thr |\n| <em>SENSOR_ATTR_EXERCISE_HR_BPM_RAW<\/em> | exercise HR bpm raw |\n| <em>SENSOR_ATTR_EXERCISE_HR_LOW_ALERT_DUR<\/em> | exercise HR low alert dur |\n| <em>SENSOR_ATTR_EXERCISE_HR_LOW_ALERT_THR<\/em> | exercise HR low alert thr |\n| <em>SENSOR_ATTR_PRESSURE_INDICATOR_START<\/em> | pressure indicator start |\n| <em>SENSOR_ATTR_PRESSURE_INDICATOR_STOP<\/em> | pressure indicator stop |\n| <em>SENSOR_ATTR_PRESSURE_INDICATOR_FLUSH<\/em> | pressure indicator flush |\n| <em>SENSOR_ATTR_PRESSURE_INDICATOR_RESTORE_TIME<\/em> | pressure indicator restore time |\n| <em>SENSOR_ATTR_PRESSURE_INDICATOR_RESTORE_VALUE<\/em> | pressure indicator restore value |\n| <em>SENSOR_ATTR_PRESSURE_INDICATOR_CURRENT_TIME<\/em> | pressure indicator current time |\n| <em>SENSOR_ATTR_PRESSURE_ALERT_START<\/em> | pressure alert start |\n| <em>SENSOR_ATTR_PRESSURE_ALERT_STOP<\/em> | pressure alert stop |\n| <em>SENSOR_ATTR_HR_CALORIE_AGE<\/em> | HR calorie age |\n| <em>SENSOR_ATTR_HR_CALORIE_HEIGHT<\/em> | HR calorie height |\n| <em>SENSOR_ATTR_HR_CALORIE_WEIGHT<\/em> | HR calorie weight |\n| <em>SENSOR_ATTR_HR_CALORIE_GENDER<\/em> | HR calorie gender |\n| <em>SENSOR_ATTR_HR_CALORIE_INST<\/em> | HR calorie inst |\n| <em>SENSOR_ATTR_HR_CALORIE_EXERCISE_TYPE<\/em> | HR calorie exercise type |\n| <em>SENSOR_ATTR_HR_CALORIE_TARGET_CAL<\/em> | HR calorie target cal |\n| <em>SENSOR_ATTR_HR_CALORIE_MAX_HEARTRATE<\/em> | HR calorie max heartrate |\n| <em>SENSOR_ATTR_HR_CALORIE_FLUSH<\/em> | HR calorie flush |\n| <em>SENSOR_ATTR_SWIMMING_TRACKER_PLACE<\/em> | swimming tracker place |\n| <em>SENSOR_ATTR_SWIMMING_TRACKER_DISTANCE<\/em> | swimming tracker distance |\n| <em>SENSOR_ATTR_SWIMMING_TRACKER_FLUSH<\/em> | swimming tracker flush |\n| <em>SENSOR_ATTR_SWIMMING_TRACKER_BATCH<\/em> | swimming tracker batch |\n| <em>SENSOR_ATTR_SWIMMING_TRACKER_GOAL_CALORIES<\/em> | swimming tracker goal calories |\n| <em>SENSOR_ATTR_SWIMMING_TRACKER_GOAL_LAPS<\/em> | swimming tracker goal laps |\n| <em>SENSOR_ATTR_SWIMMING_TRACKER_TIME_REST<\/em> | swimming tracker time rest |\n| <em>SENSOR_ATTR_SWIMMING_TRACKER_TIME_TURN<\/em> | swimming tracker time turn |\n| <em>SENSOR_ATTR_SWIMMING_OUTDOOR_SET_BATCH_LAP_COUNT<\/em> | swimming outdoor set batch lap count |\n| <em>SENSOR_ATTR_SWIMMING_OUTDOOR_SETGOAL_LENGTH<\/em> | swimming outdoor setgoal length |\n| <em>SENSOR_ATTR_SWIMMING_OUTDOOR_SETGOAL_TIME<\/em> | swimming outdoor setgoal time |\n| <em>SENSOR_ATTR_SWIMMING_OUTDOOR_SET_GPS_PERMISSION<\/em> | swimming outdoor set GPS permission |\n| <em>SENSOR_ATTR_SWIMMING_OUTDOOR_FLUSH<\/em> | swimming outdoor flush |\n| <em>SENSOR_ATTR_AUTO_SWIMMING_DURATION<\/em> | auto swimming duration |\n| <em>SENSOR_ATTR_INACTIVITY_DETECTOR_LEVEL<\/em> | inactivity detector level |\n| <em>SENSOR_ATTR_INACTIVITY_DETECTOR_DURATION<\/em> | inactivity detector duration |\n| <em>SENSOR_ATTR_STRESS_TRACKER_DUR<\/em> | stress tracker dur |\n| <em>SENSOR_ATTR_STRESS_TRACKER_FLUSH<\/em> | stress tracker flush |\n| <em>SENSOR_ATTR_STRESS_MONITOR_BASE_HR<\/em> | stress monitor base HR |\n| <em>SENSOR_ATTR_STRESS_MONITOR_HISTO_INDEX<\/em> | stress monitor histo index |\n| <em>SENSOR_ATTR_STRESS_MONITOR_HISTO_VALUE<\/em> | stress monitor histo value |\n| <em>SENSOR_ATTR_STRESS_MONITOR_TUNE_INDEX<\/em> | stress monitor tune index |\n| <em>SENSOR_ATTR_STRESS_MONITOR_TUNE_VALUE<\/em> | stress monitor tune value |\n| <em>SENSOR_ATTR_STRESS_MONITOR_FLUSH<\/em> | stress monitor flush |\n| <em>SENSOR_ATTR_STRESS_MONITOR_OPERATION<\/em> | stress monitor operation |\n| <em>SENSOR_ATTR_SLEEP_MONITOR_STOP<\/em> | sleep monitor stop |\n| <em>SENSOR_ATTR_SLEEP_MONITOR_FLUSH<\/em> | sleep monitor flush |\n| <em>SENSOR_ATTR_SLEEP_DETECTOR_STOP<\/em> | sleep detector stop |\n| <em>SENSOR_ATTR_SLEEP_DETECTOR_SETTING<\/em> | sleep detector setting |\n| <em>SENSOR_ATTR_DATA_JOURNAL_START<\/em> | data journal start |\n| <em>SENSOR_ATTR_DATA_JOURNAL_STOP<\/em> | data journal stop |\n| <em>SENSOR_ATTR_GPS_BATCH_OPR_MODE<\/em> | GPS batch opr mode |\n| <em>SENSOR_ATTR_PPG_BATCH_POLLING_INTERVAL<\/em> | PPG batch polling interval |\n| <em>SENSOR_ATTR_PPG_BATCH_FLUSH<\/em> | PPG batch flush |\n| <em>SENSOR_ATTR_REG_CTRL_TYPE<\/em> | reg control type |\n| <em>SENSOR_ATTR_REG_CTRL_ADDRESS<\/em> | reg control address |\n| <em>SENSOR_ATTR_REG_CTRL_VALUE<\/em> | reg control value |\n| <em>SENSOR_ATTR_REG_CTRL_MODE<\/em> | reg control mode |\n| <em>SENSOR_ATTR_GPS_CTRL_SETTING<\/em> | GPS control setting |\n| <em>SENSOR_ATTR_FAKE_MOTION_EVENT_INTERVAL<\/em> | fake motion event interval |\n| <em>SENSOR_ATTR_FAKE_MOTION_EVENT_COUNT<\/em> | fake motion event count |\n| <em>SENSOR_ATTR_FAKE_MOTION_PAUSE_INTERVAL<\/em> | fake motion pause interval |\n| <em>SENSOR_ATTR_GEOFENCE_ID<\/em> | geofence id |\n| <em>SENSOR_ATTR_GEOFENCE_LAT<\/em> | geofence lat |\n| <em>SENSOR_ATTR_GEOFENCE_LON<\/em> | geofence lon |\n| <em>SENSOR_ATTR_GEOFENCE_RADIUS<\/em> | geofence radius |\n| <em>SENSOR_ATTR_GEOFENCE_PROVIDER<\/em> | geofence provider |\n| <em>SENSOR_ATTR_GEOFENCE_ACCURACY<\/em> | geofence accuracy |\n| <em>SENSOR_ATTR_GEOFENCE_TIMESTAMP<\/em> | geofence timestamp |\n| <em>SENSOR_ATTR_GEOFENCE_CONNECT<\/em> | geofence connect |\n| <em>SENSOR_ATTR_GEOFENCE_START<\/em> | geofence start |\n| <em>SENSOR_ATTR_GEOFENCE_STOP<\/em> | geofence stop |\n| <em>SENSOR_ATTR_GEOFENCE_SET_LOCATION<\/em> | geofence set location |\n| <em>SENSOR_ATTR_GEOFENCE_BT_CONNECT<\/em> | geofence bt connect |\n| <em>SENSOR_ATTR_FALL_DETECTION_OPR_MODE<\/em> | fall detection opr mode |\n| <em>HAL_SENSOR_ATTR_PROXIMITY_SENSITIVITY_LEVEL<\/em> | attr proximity sensitivity level |\n| <em>HAL_SENSOR_ATTR_LIDAR_POWER_STATE<\/em> | attr lidar power state |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#gad2f027cba936e768788517ef5200f767\">sensor_attribute_common<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for common attributes of sensor.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SENSOR 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>SENSOR_ATTR_COMMON_START<\/em> | Start of enum |\n| --- | --- |\n| <em>SENSOR_ATTR_POWER_STATE<\/em> | Power state |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__SENSOR__MODULE.md#gad23fa61d91d76c451d58f386375a67b4\">sensor_device_type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration of sensor types for controlling the sensors.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_SENSOR 1.0<\/p>\n<p>Base unit<\/p>\n<ul>\n<li>acceleration values : meter per second^2 (m\/s^2)<\/li>\n<li>magnetic values : micro-Tesla (uT)<\/li>\n<li>orientation values : degrees<\/li>\n<li>gyroscope values : degree\/s<\/li>\n<li>temperature values : degrees centigrade<\/li>\n<li>proximity values : distance<\/li>\n<li>light values : lux<\/li>\n<li>pressure values : hectopascal (hPa)<\/li>\n<li>humidity : relative humidity (%)<\/li>\n<\/ul>\n<p><strong>Enumerator:<\/strong>\n: | <em>SENSOR_DEVICE_UNKNOWN<\/em> | unknown |\n| --- | --- |\n| <em>SENSOR_DEVICE_ALL<\/em> | all |\n| <em>SENSOR_DEVICE_ACCELEROMETER<\/em> | accelerometer |\n| <em>SENSOR_DEVICE_GRAVITY<\/em> | gravity |\n| <em>SENSOR_DEVICE_LINEAR_ACCELERATION<\/em> | linear acceleration |\n| <em>SENSOR_DEVICE_GEOMAGNETIC<\/em> | geomagnetic |\n| <em>SENSOR_DEVICE_ROTATION_VECTOR<\/em> | rotation vector |\n| <em>SENSOR_DEVICE_ORIENTATION<\/em> | orientation |\n| <em>SENSOR_DEVICE_GYROSCOPE<\/em> | gyroscope |\n| <em>SENSOR_DEVICE_LIGHT<\/em> | light |\n| <em>SENSOR_DEVICE_PROXIMITY<\/em> | proximity |\n| <em>SENSOR_DEVICE_PRESSURE<\/em> | pressure |\n| <em>SENSOR_DEVICE_ULTRAVIOLET<\/em> | ultraviolet |\n| <em>SENSOR_DEVICE_TEMPERATURE<\/em> | temperature |\n| <em>SENSOR_DEVICE_HUMIDITY<\/em> | humidity |\n| <em>SENSOR_DEVICE_HRM<\/em> | HRM |\n| <em>SENSOR_DEVICE_HRM_LED_GREEN<\/em> | HRM led green |\n| <em>SENSOR_DEVICE_HRM_LED_IR<\/em> | HRM led ir |\n| <em>SENSOR_DEVICE_HRM_LED_RED<\/em> | HRM led red |\n| <em>SENSOR_DEVICE_GYROSCOPE_UNCAL<\/em> | gyroscope uncalibrated |\n| <em>SENSOR_DEVICE_GEOMAGNETIC_UNCAL<\/em> | geomagnetic uncalibrated |\n| <em>SENSOR_DEVICE_GYROSCOPE_RV<\/em> | gyroscope RV |\n| <em>SENSOR_DEVICE_GEOMAGNETIC_RV<\/em> | geomagnetic RV |\n| <em>SENSOR_DEVICE_SIGNIFICANT_MOTION<\/em> | significant motion |\n| <em>SENSOR_DEVICE_HRM_BATCH<\/em> | HRM batch |\n| <em>SENSOR_DEVICE_HRM_LED_GREEN_BATCH<\/em> | HRM led green batch |\n| <em>SENSOR_DEVICE_HUMAN_PEDOMETER<\/em> | human pedometer |\n| <em>SENSOR_DEVICE_HUMAN_SLEEP_MONITOR<\/em> | human sleep monitor |\n| <em>SENSOR_DEVICE_HUMAN_SLEEP_DETECTOR<\/em> | human sleep detector |\n| <em>SENSOR_DEVICE_HUMAN_STRESS_MONITOR<\/em> | human stress monitor |\n| <em>SENSOR_DEVICE_LIDAR<\/em> | lidar |\n| <em>SENSOR_DEVICE_EXERCISE_WALKING<\/em> | exercise walking |\n| <em>SENSOR_DEVICE_EXERCISE_RUNNING<\/em> | exercise running |\n| <em>SENSOR_DEVICE_EXERCISE_HIKING<\/em> | exercise hiking |\n| <em>SENSOR_DEVICE_EXERCISE_CYCLING<\/em> | exercise cycling |\n| <em>SENSOR_DEVICE_EXERCISE_ELLIPTICAL<\/em> | exercise elliptical |\n| <em>SENSOR_DEVICE_EXERCISE_INDOOR_CYCLING<\/em> | exercise indoor cycling |\n| <em>SENSOR_DEVICE_EXERCISE_ROWING<\/em> | exercise rowing |\n| <em>SENSOR_DEVICE_EXERCISE_STEPPER<\/em> | exercise stepper |\n| <em>SENSOR_DEVICE_DATA_JOURNAL<\/em> | data journal |\n| <em>SENSOR_DEVICE_MOTION_SENSOR<\/em> | motion sensor |\n| <em>SENSOR_DEVICE_FAKE<\/em> | fake |\n| <em>SENSOR_DEVICE_TAP_SENSOR<\/em> | tap sensor |\n| <em>SENSOR_DEVICE_COLOR_SENSOR<\/em> | color sensor |\n| <em>SENSOR_DEVICE_WIFI_MOTION_DETECTOR<\/em> | wifi motion detector |\n| <em>SENSOR_DEVICE_FUSION<\/em> | fusion |\n| <em>SENSOR_DEVICE_AUTO_ROTATION<\/em> | auto rotation |\n| <em>SENSOR_DEVICE_AUTO_BRIGHTNESS<\/em> | auto brightness |\n| <em>SENSOR_DEVICE_MYOTEST<\/em> | myotest |\n| <em>SENSOR_DEVICE_GESTURE_MOVEMENT<\/em> | gesture movement |\n| <em>SENSOR_DEVICE_GESTURE_WRIST_UP<\/em> | gesture wrist up |\n| <em>SENSOR_DEVICE_GESTURE_WRIST_DOWN<\/em> | gesture wrist down |\n| <em>SENSOR_DEVICE_GESTURE_MOVEMENT_STATE<\/em> | gesture movement state |\n| <em>SENSOR_DEVICE_GESTURE_PICK_UP<\/em> | gesture pick up |\n| <em>SENSOR_DEVICE_GESTURE_FACE_DOWN<\/em> | gesture face down |\n| <em>SENSOR_DEVICE_ACTIVITY_TRACKER<\/em> | activity tracker |\n| <em>SENSOR_DEVICE_ACTIVITY_LEVEL_MONITOR<\/em> | activity level monitor |\n| <em>SENSOR_DEVICE_GPS_BATCH<\/em> | GPS batch |\n| <em>SENSOR_DEVICE_PPG_BATCH<\/em> | PPG batch |\n| <em>SENSOR_DEVICE_GPS_TIMESYNC<\/em> | GPS timesync |\n| <em>SENSOR_DEVICE_HRM_CTRL<\/em> | HRM control |\n| <em>SENSOR_DEVICE_REG_CTRL<\/em> | reg control |\n| <em>SENSOR_DEVICE_GPS_CTRL<\/em> | GPS control |\n| <em>SENSOR_DEVICE_WEAR_STATUS<\/em> | wear status |\n| <em>SENSOR_DEVICE_WEAR_ON_MONITOR<\/em> | wear on monitor |\n| <em>SENSOR_DEVICE_NO_MOVE_DETECTOR<\/em> | no move detector |\n| <em>SENSOR_DEVICE_RESTING_HR<\/em> | resting HR |\n| <em>SENSOR_DEVICE_STEP_LEVEL_MONITOR<\/em> | step level monitor |\n| <em>SENSOR_DEVICE_EXERCISE_STANDALONE<\/em> | exercise standalone |\n| <em>SENSOR_DEVICE_EXERCISE_HR<\/em> | exercise HR |\n| <em>SENSOR_DEVICE_WORKOUT<\/em> | workout |\n| <em>SENSOR_DEVICE_CYCLE_MONITOR<\/em> | cycle monitor |\n| <em>SENSOR_DEVICE_STAIR_TRACKER<\/em> | stair tracker |\n| <em>SENSOR_DEVICE_PRESSURE_INDICATOR<\/em> | pressure indicator |\n| <em>SENSOR_DEVICE_PRESSURE_ALERT<\/em> | pressure alert |\n| <em>SENSOR_DEVICE_HR_CALORIE<\/em> | HR calorie |\n| <em>SENSOR_DEVICE_SWIMMING_TRACKER<\/em> | swimming tracker |\n| <em>SENSOR_DEVICE_STRESS_TRACKER<\/em> | stress tracker |\n| <em>SENSOR_DEVICE_FAKE_MOTION<\/em> | fake motion |\n| <em>SENSOR_DEVICE_GEOFENCE<\/em> | geofence |\n| <em>SENSOR_DEVICE_SWIMMING_OUTDOOR<\/em> | swimming outdoor |\n| <em>SENSOR_DEVICE_AUTO_SWIMMING<\/em> | auto swimming |\n| <em>SENSOR_DEVICE_INACTIVITY_DETECTOR<\/em> | inactivity detector |\n| <em>SENSOR_DEVICE_HRM_BP<\/em> | HRM BP |\n| <em>SENSOR_DEVICE_ECG<\/em> | ECG |\n| <em>SENSOR_DEVICE_FALL_DETECTION<\/em> | fall detection |\n| <em>SENSOR_DEVICE_CONTEXT<\/em> | context |\n| <em>SENSOR_DEVICE_MOTION<\/em> | motion |\n| <em>SENSOR_DEVICE_PIR<\/em> | PIR |\n| <em>SENSOR_DEVICE_PIR_LONG<\/em> | PIR long |\n| <em>SENSOR_DEVICE_DUST<\/em> | dust |\n| <em>SENSOR_DEVICE_THERMOMETER<\/em> | thermometer |\n| <em>SENSOR_DEVICE_PEDOMETER<\/em> | pedometer |\n| <em>SENSOR_DEVICE_FLAT<\/em> | flat |\n| <em>SENSOR_DEVICE_HRM_RAW<\/em> | HRM raw |\n| <em>SENSOR_DEVICE_TILT<\/em> | tilt |\n| <em>SENSOR_DEVICE_ROTATION_VECTOR_RAW<\/em> | rotation vector raw |\n| <em>SENSOR_DEVICE_GSR<\/em> | GSR |\n| <em>SENSOR_DEVICE_SIMSENSE<\/em> | simsense |\n| <em>SENSOR_DEVICE_PPG<\/em> | PPG |<\/p>\n<hr \/>\n<p>Except as noted, this content - excluding the Code Examples - is licensed under <a href=https://samsungtizenos.com/"http:////creativecommons.org//licenses//by//3.0//legalcode/">Creative Commons Attribution 3.0<\/a>\nand all of the Code Examples contained herein are licensed under <a href=https://samsungtizenos.com/"https:////www.tizen.org//bsd-3-clause-license/">BSD-3-Clause/a>.
Content License<\/a>.<\/p>\n","table_of_content":"<ul class=\"table-of-contents\">\n<li><a href=https://samsungtizenos.com/"#content-required-header\">Required Header<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-overview\">Overview<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-data-structure-documentation\">Data Structure Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-1\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-2\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-3\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-4\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-5\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-6\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-define-documentation\">Define Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-typedef-documentation\">Typedef Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-enumeration-type-documentation\">Enumeration Type Documentation<\/a><\/li>\n<\/ul>\n","title":"Tizen HAL API: Sensor","raw":null},{"class":"App\\Services\\Documentation\\Data\\RenderedMarkdown","s":"wrbl"}]},"memo":{"id":"4f8V8G8gW16O0mO7thGb","name":"documentation::article","path":"docs\/platform\/hal\/api\/1.0.0\/group__HALAPI__HAL__SENSOR__MODULE","method":"GET","release":"a-a-a","children":[],"scripts":[],"assets":[],"lazyLoaded":false,"lazyIsolated":true,"errors":[],"locale":"en","islands":[]},"checksum":"607aac72a821a23a0dd7c8b72a12adaa5802e619940c7405cba3fdd0eab944b8"}" wire:effects="[]" wire:id="4f8V8G8gW16O0mO7thGb" wire:name="documentation::article" x-init="$wire.__lazyLoad('eyJkYXRhIjp7ImZvck1vdW50IjpbeyJtYXJrZG93biI6W3siYm9keSI6IjxoMSBpZD1cImNvbnRlbnQtdGl6ZW4taGFsLWFwaS1zZW5zb3JcIj48YSBocmVmPVwiI2NvbnRlbnQtdGl6ZW4taGFsLWFwaS1zZW5zb3JcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlRpemVuIEhBTCBBUEk6IFNlbnNvcjxcL2gxPjxkaXYgZGF0YS1rbm93bGVkZ2UtYmFzZS1tZXRhZGF0YT48XC9kaXY+XG48aHIgXC8+XG48cD5UaGUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWRcIj5TZW5zb3I8XC9hPiBwcm92aWRlcyBmdW5jdGlvbnMgZm9yIGdldHRpbmdcL3B1dHRpbmcgYmFja2VuZCBhbmQgY3JlYXRpbmcgc2Vuc29yIGRldmljZXMuPFwvcD5cbjxoMiBpZD1cImNvbnRlbnQtcmVxdWlyZWQtaGVhZGVyXCI+PGEgaHJlZj1cIiNjb250ZW50LXJlcXVpcmVkLWhlYWRlclwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+UmVxdWlyZWQgSGVhZGVyPFwvaDI+XG48cD4jaW5jbHVkZSAmbHQ7aGFsLXNlbnNvci5oJmd0OzxcL3A+XG48aDIgaWQ9XCJjb250ZW50LW92ZXJ2aWV3XCI+PGEgaHJlZj1cIiNjb250ZW50LW92ZXJ2aWV3XCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5PdmVydmlldzxcL2gyPlxuPHA+VGhlIFNlbnNvciBwcm92aWRlcyBmdW5jdGlvbnMgdG8gZ2V0XC9wdXQgYmFja2VuZC48XC9wPlxuPHVsPlxuPGxpPmludCBoYWxfc2Vuc29yX2dldF9iYWNrZW5kKHZvaWQpOzxcL2xpPlxuPGxpPmludCBoYWxfc2Vuc29yX3B1dF9iYWNrZW5kKHZvaWQpOzxcL2xpPlxuPFwvdWw+XG48cD5UaGUgU2Vuc29yIHByb3ZpZGVzIGNyZWF0aW5nIGFuZCBkZWxldGluZyBmdW5jdGlvbnMuPFwvcD5cbjx1bD5cbjxsaT5pbnQgaGFsX3NlbnNvcl9jcmVhdGUodWludDY0X3QgKipzZW5zb3JfZGV2aWNlX2lkcywgc2l6ZV90ICpzZW5zb3JfZGV2aWNlX2lkc19sZW4pOzxcL2xpPlxuPGxpPmludCBoYWxfc2Vuc29yX2RlbGV0ZSh1aW50NjRfdCAqc2Vuc29yX2RldmljZV9pZHMsIHNpemVfdCBzZW5zb3JfZGV2aWNlX2lkc19sZW4pOzxcL2xpPlxuPFwvdWw+XG48cD5Gb3IgdGhlIHNlbnNvcnMgY3JlYXRlZCBieSBoYWxfc2Vuc29yX2NyZWF0ZSwgU2Vuc29yIHByb3ZpZGVzIG9wZXJhdGlvbnMuPFwvcD5cbjxwPkZ1bmN0aW9ucyB0byBnZXQgcG9sbCBmZCBhbmQgc2Vuc29yczo8XC9wPlxuPHVsPlxuPGxpPmludCBoYWxfc2Vuc29yX2dldF9wb2xsX2ZkKHVpbnQ2NF90IHNlbnNvcl9kZXZpY2VfaWQsIGludCAqcG9sbF9mZCk7PFwvbGk+XG48bGk+aW50IGhhbF9zZW5zb3JfZ2V0X3NlbnNvcnModWludDY0X3Qgc2Vuc29yX2RldmljZV9pZCwgY29uc3Qgc2Vuc29yX2luZm9fdCAqKnNlbnNvcnMsIHNpemVfdCAqc2Vuc29yc19sZW4pOzxcL2xpPlxuPFwvdWw+XG48cD5GdW5jdGlvbnMgdG8gbWFuaXB1bGF0ZSB0aGUgYmVoYXZpb3Igb2Ygc2Vuc29yczo8XC9wPlxuPHVsPlxuPGxpPmludCBoYWxfc2Vuc29yX2VuYWJsZSh1aW50NjRfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCk7PFwvbGk+XG48bGk+aW50IGhhbF9zZW5zb3JfZGlzYWJsZSh1aW50NjRfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCk7PFwvbGk+XG48bGk+aW50IGhhbF9zZW5zb3JfcmVhZF9mZCh1aW50NjRfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCAqKmlkcywgc2l6ZV90ICppZHNfbGVuKTs8XC9saT5cbjxsaT5pbnQgaGFsX3NlbnNvcl9nZXRfZGF0YSh1aW50NjRfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCwgc2Vuc29yX2RhdGFfdCAqKmRhdGEsIHNpemVfdCAqbGVuZ3RoKTs8XC9saT5cbjxsaT5pbnQgaGFsX3NlbnNvcl9zZXRfaW50ZXJ2YWwodWludDY0X3Qgc2Vuc29yX2RldmljZV9pZCwgdWludDMyX3QgaWQsIHVuc2lnbmVkIGxvbmcgdmFsKTs8XC9saT5cbjxsaT5pbnQgaGFsX3NlbnNvcl9zZXRfYmF0Y2hfbGF0ZW5jeSh1aW50NjRfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCwgdW5zaWduZWQgbG9uZyB2YWwpOzxcL2xpPlxuPFwvdWw+XG48cD5GdW5jdGlvbnMgdG8gZ2V0XC9zZXQgYXR0cmlidXRlcyBvZiBzZW5zb3JzOjxcL3A+XG48dWw+XG48bGk+aW50IGhhbF9zZW5zb3Jfc2V0X2F0dHJpYnV0ZV9pbnQodWludDY0X3Qgc2Vuc29yX2RldmljZV9pZCwgdWludDMyX3QgaWQsIGludDMyX3QgYXR0cmlidXRlLCBpbnQzMl90IHZhbHVlKTs8XC9saT5cbjxsaT5pbnQgaGFsX3NlbnNvcl9zZXRfYXR0cmlidXRlX3N0cih1aW50NjRfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCwgaW50MzJfdCBhdHRyaWJ1dGUsIGNvbnN0IGNoYXIgKnZhbHVlLCBzaXplX3QgbGVuKTs8XC9saT5cbjxsaT5pbnQgaGFsX3NlbnNvcl9nZXRfYXR0cmlidXRlX2ludCh1aW50NjRfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCwgaW50MzJfdCBhdHRyaWJ1dGUsIGludDMyX3QgKnZhbHVlKTs8XC9saT5cbjxsaT5pbnQgaGFsX3NlbnNvcl9nZXRfYXR0cmlidXRlX3N0cih1aW50NjRfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCwgaW50MzJfdCBhdHRyaWJ1dGUsIGNoYXIgKip2YWx1ZSwgc2l6ZV90ICpsZW4pOzxcL2xpPlxuPFwvdWw+XG48cD5GdW5jdGlvbiB0byBmbHVzaCBzZW5zb3IgZGF0YTo8XC9wPlxuPHVsPlxuPGxpPmludCBoYWxfc2Vuc29yX2ZsdXNoKHVpbnQ2NF90IHNlbnNvcl9kZXZpY2VfaWQsIHVpbnQzMl90IGlkKTs8XC9saT5cbjxcL3VsPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+VHlwZWRlZnM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+dHlwZWRlZiBzdHJ1Y3QgICA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNzdHJ1Y3RfX2hhbF9fYmFja2VuZF9fc2Vuc29yX19mdW5jc1wiPl9oYWxfYmFja2VuZF9zZW5zb3JfZnVuY3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2dhYjE0OWExNWFhZWRmZjAzZjU4Zjg3MGYzOWYyNTQ1NDlcIj5oYWxfYmFja2VuZF9zZW5zb3JfZnVuY3M8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+U3RydWN0dXJlIGZvciBzZW5zb3IgZnVuY3Rpb25zLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiBzdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjc3RydWN0c2Vuc29yX19pbmZvX190XCI+c2Vuc29yX2luZm9fdDxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjZ2FjZDdmN2I3OWYzNDA0YTY4ODEyNTM5ZjA5NWIxNTcyYlwiPnNlbnNvcl9pbmZvX3Q8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+U3RydWN0dXJlIGZvciBzZW5zb3IgaW5mb3JtYXRpb24gZGF0YS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgc3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI3N0cnVjdHNlbnNvcl9fZGF0YV9fdFwiPnNlbnNvcl9kYXRhX3Q8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2dhYzU0NDA2OGExZTY4NDRmZDBiYmQxMzUzODI2NWE4MDVcIj5zZW5zb3JfZGF0YV90PFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPlN0cnVjdHVyZSBmb3Igc2Vuc29yIGRhdGEuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNzdHJ1Y3RzZW5zb3JodWJfX2RhdGFfX3RcIj5zZW5zb3JodWJfZGF0YV90PFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNnYWUzYTk5YmZhYzQyNWI2YWU5ZTQ3ZGI0MjFiNDVjMmM1XCI+c2Vuc29yaHViX2RhdGFfdDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5TdHJ1Y3R1cmUgb2Ygc2Vuc29yaHViIGRhdGEuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5EZWZpbmVzPFwvdGQ+XG48dGQ+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjZ2E1NmUxODdlMTA5YWQzNTVjZGQ2MjJiNDQyMTk2ZWRiM1wiPlNFTlNPUl9EQVRBX1ZBTFVFX1NJWkU8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMDE2PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIG9mIHNlbnNvciBkYXRhIHZhbHVlIHNpemUuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjZ2FmZjM5Mzk3MDgyYzk2YzYzNDA5YWNjYzc2NTE2NDMwZVwiPlNFTlNPUkhVQl9EQVRBX1ZBTFVFX1NJWkU8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMDQwOTY8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gb2Ygc2Vuc29yaHViIGRhdGEgdmFsdWUgc2l6ZS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNnYTQ3OGQyMTExMjkxN2MyMWMyY2EzNWM1Y2MzMjVlYWU2XCI+U0VOU09SX1BFRE9NRVRFUl9EQVRBX0RJRkZTX1NJWkU8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMDIwPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIG9mIHBlZG9tZXRlciBkYXRhIGRpZmZlcmVuY2UgYXJyYXkgc2l6ZS48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDIgaWQ9XCJjb250ZW50LWRhdGEtc3RydWN0dXJlLWRvY3VtZW50YXRpb25cIj48YSBocmVmPVwiI2NvbnRlbnQtZGF0YS1zdHJ1Y3R1cmUtZG9jdW1lbnRhdGlvblwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RGF0YSBTdHJ1Y3R1cmUgRG9jdW1lbnRhdGlvbjxcL2gyPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IHNlbnNvcl9kZXZpY2VfczxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3Igc2Vuc29yIGRldmljZSBmdW5jdGlvbnMuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfU0VOU09SIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2E5NzMxNTk4NDVkODhjMTVjMTkwNzZiMGFiMzI2OGNmM1wiPmdldF9wb2xsX2ZkPFwvYT4gKSh1aW50MzJfdCBzZW5zb3JfZGV2aWNlX2lkLCBpbnQgKnBvbGxfZmQpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2EyMTQxMDBlMTdmODEwNmQ2OWM2NzNhYjEyNjQxZTJjMVwiPmdldF9zZW5zb3JzPFwvYT4gKSh1aW50MzJfdCBzZW5zb3JfZGV2aWNlX2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNzdHJ1Y3RzZW5zb3JfX2luZm9fX3RcIj5zZW5zb3JfaW5mb190PFwvYT4gKipzZW5zb3JzLCBzaXplX3QgKnNlbnNvcnNfbGVuKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhOTA1MjEwZmQ0MTdmMDg4OTRiYTFlZGNmMWIwNTI3N2RcIj5lbmFibGU8XC9hPiApKHVpbnQzMl90IHNlbnNvcl9kZXZpY2VfaWQsIHVpbnQzMl90IGlkKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhYzkzMzYyODJkZDUzYjk0NTJiNTM0NDgxYTliN2VjYzhcIj5kaXNhYmxlPFwvYT4gKSh1aW50MzJfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTFjOGQyN2E0NGQ4YjNjNDRjMjU5MmI0ZDNlZjg3NmYxXCI+cmVhZF9mZDxcL2E+ICkodWludDMyX3Qgc2Vuc29yX2RldmljZV9pZCwgdWludDMyX3QgKippZHMsIHNpemVfdCAqaWRzX2xlbik8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTQxNmVkMmMxMmViODM0NWRjYWQzYThkNWMzYWYyY2IwXCI+Z2V0X2RhdGE8XC9hPiApKHVpbnQzMl90IHNlbnNvcl9kZXZpY2VfaWQsIHVpbnQzMl90IGlkLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNzdHJ1Y3RzZW5zb3JfX2RhdGFfX3RcIj5zZW5zb3JfZGF0YV90PFwvYT4gKipkYXRhLCBzaXplX3QgKmxlbmd0aCk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWEyNWUzODk3MmQ3MmYzMTNiOTMyNjVlZTYxOTFhNGJiXCI+c2V0X2ludGVydmFsPFwvYT4gKSh1aW50MzJfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCwgdW5zaWduZWQgbG9uZyB2YWwpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FhODViMDQ0MDU0NjgwMDE1Y2VlM2Y1ZjE4Zjg5YzUxNVwiPnNldF9iYXRjaF9sYXRlbmN5PFwvYT4gKSh1aW50MzJfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCwgdW5zaWduZWQgbG9uZyB2YWwpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FhNTJiMTExMWIzZGQ5NzI1MGIxMTZjYjk3NTlmMDA0M1wiPnNldF9hdHRyaWJ1dGVfaW50PFwvYT4gKSh1aW50MzJfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCwgaW50MzJfdCBhdHRyaWJ1dGUsIGludDMyX3QgdmFsdWUpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2ExNDBiMGRjNDUyYzQ2Zjc0MTM0ZGQyNTVkYTM5MTU0Y1wiPnNldF9hdHRyaWJ1dGVfc3RyPFwvYT4gKSh1aW50MzJfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCwgaW50MzJfdCBhdHRyaWJ1dGUsIGNvbnN0IGNoYXIgKnZhbHVlLCBzaXplX3QgbGVuKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhYTEwOGY3MWFkM2UyZjY0ODUwMWM1MGNlM2Y5MzJiNjJcIj5nZXRfYXR0cmlidXRlX2ludDxcL2E+ICkodWludDMyX3Qgc2Vuc29yX2RldmljZV9pZCwgdWludDMyX3QgaWQsIGludDMyX3QgYXR0cmlidXRlLCBpbnQzMl90ICp2YWx1ZSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWIxNmI2YjYxYTI5ZjAxYTMwN2U2ZTA1OTViMjczNWM3XCI+Z2V0X2F0dHJpYnV0ZV9zdHI8XC9hPiApKHVpbnQzMl90IHNlbnNvcl9kZXZpY2VfaWQsIHVpbnQzMl90IGlkLCBpbnQzMl90IGF0dHJpYnV0ZSwgY2hhciAqKnZhbHVlLCBzaXplX3QgKmxlbik8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWYzY2RlZjM4ZTc5ODMwOWUyMjdmMTNjMTZhZjgwOWNjXCI+Zmx1c2g8XC9hPiApKHVpbnQzMl90IHNlbnNvcl9kZXZpY2VfaWQsIHVpbnQzMl90IGlkKTxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvblwiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhYzkzMzYyODJkZDUzYjk0NTJiNTM0NDgxYTliN2VjYzhcIj5zZW5zb3JfZGV2aWNlX3M6OmRpc2FibGU8XC9hPikodWludDMyX3Qgc2Vuc29yX2RldmljZV9pZCwgdWludDMyX3QgaWQpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGlzYWJsZSB0aGlzIHNlbnNvcjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhOTA1MjEwZmQ0MTdmMDg4OTRiYTFlZGNmMWIwNTI3N2RcIj5zZW5zb3JfZGV2aWNlX3M6OmVuYWJsZTxcL2E+KSh1aW50MzJfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbmFibGUgdGhpcyBzZW5zb3I8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWYzY2RlZjM4ZTc5ODMwOWUyMjdmMTNjMTZhZjgwOWNjXCI+c2Vuc29yX2RldmljZV9zOjpmbHVzaDxcL2E+KSh1aW50MzJfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5GbHVzaCBzZW5zb3IgZGF0YTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhYTEwOGY3MWFkM2UyZjY0ODUwMWM1MGNlM2Y5MzJiNjJcIj5zZW5zb3JfZGV2aWNlX3M6OmdldF9hdHRyaWJ1dGVfaW50PFwvYT4pKHVpbnQzMl90IHNlbnNvcl9kZXZpY2VfaWQsIHVpbnQzMl90IGlkLCBpbnQzMl90IGF0dHJpYnV0ZSwgaW50MzJfdCAqdmFsdWUpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+R2V0IGludGVnZXIgYXR0cmlidXRlIHZhbHVlPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FiMTZiNmI2MWEyOWYwMWEzMDdlNmUwNTk1YjI3MzVjN1wiPnNlbnNvcl9kZXZpY2Vfczo6Z2V0X2F0dHJpYnV0ZV9zdHI8XC9hPikodWludDMyX3Qgc2Vuc29yX2RldmljZV9pZCwgdWludDMyX3QgaWQsIGludDMyX3QgYXR0cmlidXRlLCBjaGFyICoqdmFsdWUsIHNpemVfdCAqbGVuKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkdldCBzdHJpbmcgYXR0cmlidXRlIHZhbHVlPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2E0MTZlZDJjMTJlYjgzNDVkY2FkM2E4ZDVjM2FmMmNiMFwiPnNlbnNvcl9kZXZpY2Vfczo6Z2V0X2RhdGE8XC9hPikodWludDMyX3Qgc2Vuc29yX2RldmljZV9pZCwgdWludDMyX3QgaWQsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI3N0cnVjdHNlbnNvcl9fZGF0YV9fdFwiPnNlbnNvcl9kYXRhX3Q8XC9hPiAqKmRhdGEsIHNpemVfdCAqbGVuZ3RoKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkdldCBzZW5zb3IgZGF0YTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhOTczMTU5ODQ1ZDg4YzE1YzE5MDc2YjBhYjMyNjhjZjNcIj5zZW5zb3JfZGV2aWNlX3M6OmdldF9wb2xsX2ZkPFwvYT4pKHVpbnQzMl90IHNlbnNvcl9kZXZpY2VfaWQsIGludCAqcG9sbF9mZCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5HZXQgcG9sbCBmZCBmb3IgZXZlbnQgbGlzdGVuaW5nPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2EyMTQxMDBlMTdmODEwNmQ2OWM2NzNhYjEyNjQxZTJjMVwiPnNlbnNvcl9kZXZpY2Vfczo6Z2V0X3NlbnNvcnM8XC9hPikodWludDMyX3Qgc2Vuc29yX2RldmljZV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjc3RydWN0c2Vuc29yX19pbmZvX190XCI+c2Vuc29yX2luZm9fdDxcL2E+ICoqc2Vuc29ycywgc2l6ZV90ICpzZW5zb3JzX2xlbik8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5HZXQgc2Vuc29yIGVudGl0aWVzPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2ExYzhkMjdhNDRkOGIzYzQ0YzI1OTJiNGQzZWY4NzZmMVwiPnNlbnNvcl9kZXZpY2Vfczo6cmVhZF9mZDxcL2E+KSh1aW50MzJfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCAqKmlkcywgc2l6ZV90ICppZHNfbGVuKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlJlYWQgc2Vuc29yIGFuZCByZXR1cm4gZXZlbnQgaWRzPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FhNTJiMTExMWIzZGQ5NzI1MGIxMTZjYjk3NTlmMDA0M1wiPnNlbnNvcl9kZXZpY2Vfczo6c2V0X2F0dHJpYnV0ZV9pbnQ8XC9hPikodWludDMyX3Qgc2Vuc29yX2RldmljZV9pZCwgdWludDMyX3QgaWQsIGludDMyX3QgYXR0cmlidXRlLCBpbnQzMl90IHZhbHVlKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNldCBhdHRyaWJ1dGUgYXMgYW4gaW50ZWdlciB2YWx1ZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhMTQwYjBkYzQ1MmM0NmY3NDEzNGRkMjU1ZGEzOTE1NGNcIj5zZW5zb3JfZGV2aWNlX3M6OnNldF9hdHRyaWJ1dGVfc3RyPFwvYT4pKHVpbnQzMl90IHNlbnNvcl9kZXZpY2VfaWQsIHVpbnQzMl90IGlkLCBpbnQzMl90IGF0dHJpYnV0ZSwgY29uc3QgY2hhciAqdmFsdWUsIHNpemVfdCBsZW4pPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U2V0IGF0dHJpYnV0ZSBhcyBhIHN0cmluZyB2YWx1ZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhYTg1YjA0NDA1NDY4MDAxNWNlZTNmNWYxOGY4OWM1MTVcIj5zZW5zb3JfZGV2aWNlX3M6OnNldF9iYXRjaF9sYXRlbmN5PFwvYT4pKHVpbnQzMl90IHNlbnNvcl9kZXZpY2VfaWQsIHVpbnQzMl90IGlkLCB1bnNpZ25lZCBsb25nIHZhbCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TZXQgYmF0Y2ggbGF0ZW5jeTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhYTI1ZTM4OTcyZDcyZjMxM2I5MzI2NWVlNjE5MWE0YmJcIj5zZW5zb3JfZGV2aWNlX3M6OnNldF9pbnRlcnZhbDxcL2E+KSh1aW50MzJfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCwgdW5zaWduZWQgbG9uZyB2YWwpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U2V0IHNlbnNvciB2YWx1ZSBpbnRlcnZhbDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgX2hhbF9iYWNrZW5kX3NlbnNvcl9mdW5jczxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3Igc2Vuc29yIGZ1bmN0aW9ucy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRU5TT1IgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkRhdGEgRmllbGRzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWQ5MmY2MWU5ZWNmZTdhMGVhOGI0M2RmMmMyYWU3MGNmXCI+Y3JlYXRlX3NlbnNvcjxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjc3RydWN0c2Vuc29yX19kZXZpY2VfX3NcIj5zZW5zb3JfZGV2aWNlX3M8XC9hPiAqKipzZW5zb3JfZGV2aWNlcywgc2l6ZV90ICpzZW5zb3JfZGV2aWNlc19sZW4pPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2E0NTcyNDUyNDRmZGVlOWZhNmRmZWVhMjFjOGEyMDVjNlwiPmRlbGV0ZV9zZW5zb3I8XC9hPiApKHVpbnQzMl90ICpzZW5zb3JfZGV2aWNlX2lkcywgc2l6ZV90IHNlbnNvcl9kZXZpY2VfaWRzX2xlbik8XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDQgaWQ9XCJjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMVwiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTFcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkZpZWxkIERvY3VtZW50YXRpb248XC9oND5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FkOTJmNjFlOWVjZmU3YTBlYThiNDNkZjJjMmFlNzBjZlwiPl9oYWxfYmFja2VuZF9zZW5zb3JfZnVuY3M6OmNyZWF0ZV9zZW5zb3I8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjc3RydWN0c2Vuc29yX19kZXZpY2VfX3NcIj5zZW5zb3JfZGV2aWNlX3M8XC9hPiAqKipzZW5zb3JfZGV2aWNlcywgc2l6ZV90ICpzZW5zb3JfZGV2aWNlc19sZW4pPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q3JlYXRlIHNlbnNvciBkZXZpY2VzPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2E0NTcyNDUyNDRmZGVlOWZhNmRmZWVhMjFjOGEyMDVjNlwiPl9oYWxfYmFja2VuZF9zZW5zb3JfZnVuY3M6OmRlbGV0ZV9zZW5zb3I8XC9hPikodWludDMyX3QgKnNlbnNvcl9kZXZpY2VfaWRzLCBzaXplX3Qgc2Vuc29yX2RldmljZV9pZHNfbGVuKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlbGV0ZSBzZW5zb3JzIHdpdGggdGhlaXIgaWRzPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnN0cnVjdCBzZW5zb3JfaW5mb190PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBzZW5zb3IgaW5mb3JtYXRpb24gZGF0YS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRU5TT1IgMS4wPFwvcD5cbjxwPkEgcGxhdGZvcm0gc2Vuc29yIGhhbmRsZXIgaXMgZ2VuZXJhdGVkIGJhc2VkIG9uIHRoaXMgaGFuZGxlLjxiciBcLz5cblRoZSAnaWQnIGNhbiBiZSBhc3NpZ25lZCBmcm9tIEhBTCBkZXZlbG9wZXIsIHNvIGl0IGhhcyB0byBiZTxiciBcLz5cbnVuaXF1ZSBwZXIgYSBzZW5zb3JfZGV2aWNlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD51aW50MzJfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2EwYWZhOTc0ZTlhZTQ1YzdmYTNhNWMwMjA4Y2FmMWQ4OFwiPmlkPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmNvbnN0IGNoYXIgKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2E0OTFmMjZhNmNmOWY2NTk1NGI0Yjc5NTcxNDAxZWRkM1wiPm5hbWU8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTBlZmQzNTBiNTUyZDlmMzkzMjQ4MzcyYTU4NjIxOWQ0XCI+dHlwZTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD51bnNpZ25lZCBpbnQ8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhZjFkMGI2ODBjZTdiYzYwZjMzNWMzODRhMGE4NGNmYTJcIj5ldmVudF90eXBlPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmNvbnN0IGNoYXIgKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FmYmVhMjU4MGYzZDBjNzQxYWViY2I0MmRmZGJhNDQ3NFwiPm1vZGVsX25hbWU8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+Y29uc3QgY2hhciAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWUwZGYyNGZlMmE4NDFlOWU4NjY3ODlmMTY3ZWEyZGVlXCI+dmVuZG9yPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmZsb2F0PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWFiMzk5Nzg1NmJlZWRhNzNiYjg4Mjg5MzE0NjA2ZGQ2XCI+bWluX3JhbmdlPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmZsb2F0PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWQ0MmY2OTY0OThiNmQ1ZGMwNTc0NmUxZTQ5OWRjNTIwXCI+bWF4X3JhbmdlPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmZsb2F0PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWU3ZmYwYTYxMDNkMjQ4YmIzY2Q3ZDMyMzI0ZjEwYTZhXCI+cmVzb2x1dGlvbjxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQ8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhMmMxMzZiNWM1MWVhYTU1MmUwYTA2ZTYzMDM2YzE3NjNcIj5taW5faW50ZXJ2YWw8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTQzZjEzMDk1ZTU0M2NlOGNkNjE3YTdmMDgzYzYyNjdlXCI+bWF4X2ludGVydmFsPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2EwZjRkZTcxZGFjYzBkOGE4ZjFmNDk1YWFmMjRkMTkyN1wiPm1heF9iYXRjaF9jb3VudDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5ib29sPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWU3MDYwYTNkZTBiNWZiNGFiZWE1Mjc5Mzg3ZmNmNmQ0XCI+d2FrZXVwX3N1cHBvcnRlZDxcL2E+PFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPGhyIFwvPlxuPGg0IGlkPVwiY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTJcIj48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0yXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51bnNpZ25lZCBpbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWYxZDBiNjgwY2U3YmM2MGYzMzVjMzg0YTBhODRjZmEyXCI+c2Vuc29yX2luZm9fdDo6ZXZlbnRfdHlwZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RXZlbnQgdHlwZSBmb3IgSW50ZXJuYWwgQVBJPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2EwYWZhOTc0ZTlhZTQ1YzdmYTNhNWMwMjA4Y2FmMWQ4OFwiPnNlbnNvcl9pbmZvX3Q6OmlkPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TZW5zb3IgaWQ8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2EwZjRkZTcxZGFjYzBkOGE4ZjFmNDk1YWFmMjRkMTkyN1wiPnNlbnNvcl9pbmZvX3Q6Om1heF9iYXRjaF9jb3VudDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+TWluaW11bSBiYXRjaCBjb3VudDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTQzZjEzMDk1ZTU0M2NlOGNkNjE3YTdmMDgzYzYyNjdlXCI+c2Vuc29yX2luZm9fdDo6bWF4X2ludGVydmFsPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5NYXhpbXVtIGludGVydmFsIG9mIHNlbnNvciB2YWx1ZSByZXRyaWV2YWw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZmxvYXQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWQ0MmY2OTY0OThiNmQ1ZGMwNTc0NmUxZTQ5OWRjNTIwXCI+c2Vuc29yX2luZm9fdDo6bWF4X3JhbmdlPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5NYXhpbXVtIHJhbmdlIG9mIHNlbnNvciB2YWx1ZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTJjMTM2YjVjNTFlYWE1NTJlMGEwNmU2MzAzNmMxNzYzXCI+c2Vuc29yX2luZm9fdDo6bWluX2ludGVydmFsPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5NaW5pbXVtIGludGVydmFsIG9mIHNlbnNvciB2YWx1ZSByZXRyaWV2YWw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZmxvYXQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWFiMzk5Nzg1NmJlZWRhNzNiYjg4Mjg5MzE0NjA2ZGQ2XCI+c2Vuc29yX2luZm9fdDo6bWluX3JhbmdlPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5NaW5pbXVtIHJhbmdlIG9mIHNlbnNvciB2YWx1ZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5jb25zdCBjaGFyKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhZmJlYTI1ODBmM2QwYzc0MWFlYmNiNDJkZmRiYTQ0NzRcIj5zZW5zb3JfaW5mb190Ojptb2RlbF9uYW1lPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5Nb2RlbCBuYW1lIG9mIHNlbnNvcjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5jb25zdCBjaGFyKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhNDkxZjI2YTZjZjlmNjU5NTRiNGI3OTU3MTQwMWVkZDNcIj5zZW5zb3JfaW5mb190OjpuYW1lPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TZW5zb3IgbmFtZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5mbG9hdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhZTdmZjBhNjEwM2QyNDhiYjNjZDdkMzIzMjRmMTBhNmFcIj5zZW5zb3JfaW5mb190OjpyZXNvbHV0aW9uPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5SZXNvbHV0aW9uIG9mIHNlbnNvciB2YWx1ZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTBlZmQzNTBiNTUyZDlmMzkzMjQ4MzcyYTU4NjIxOWQ0XCI+c2Vuc29yX2luZm9fdDo6dHlwZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U2Vuc29yIHR5cGUoc2Vuc29yX2RldmljZV90eXBlKTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5jb25zdCBjaGFyKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhZTBkZjI0ZmUyYTg0MWU5ZTg2Njc4OWYxNjdlYTJkZWVcIj5zZW5zb3JfaW5mb190Ojp2ZW5kb3I8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlZlbmRvciBvZiBzZW5zb3I8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+Ym9vbCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhZTcwNjBhM2RlMGI1ZmI0YWJlYTUyNzkzODdmY2Y2ZDRcIj5zZW5zb3JfaW5mb190Ojp3YWtldXBfc3VwcG9ydGVkPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdXBwb3J0IHdha2V1cCBvciBub3Q8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IHNlbnNvcl9kYXRhX3Q8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIHNlbnNvciBkYXRhLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFTlNPUiAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+aW50PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWRiOTk5YzU4OGM3MGU0MjdjMGZkNWJlZGY1MjBmYTljXCI+YWNjdXJhY3k8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dW5zaWduZWQgbG9uZyBsb25nPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWJmZWVkZTBhYjJjYjk3YWZhN2M0YzVmNjVmZTFiYzYyXCI+dGltZXN0YW1wPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2EyOTVhM2QzNzcwZTY1Nzg5OWE4NDI5Zjk5MDRlMzllZFwiPnZhbHVlX2NvdW50PFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmZsb2F0PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWE2NWUwMjhkMWRmMGU5M2MyZGE0NWEzN2IxNzhjOWQ1XCI+dmFsdWVzPFwvYT4gWzE2XTxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0zXCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tM1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FkYjk5OWM1ODhjNzBlNDI3YzBmZDViZWRmNTIwZmE5Y1wiPnNlbnNvcl9kYXRhX3Q6OmFjY3VyYWN5PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5BY2N1cmFjeSBvZiB2YWx1ZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51bnNpZ25lZCBsb25nIGxvbmcgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWJmZWVkZTBhYjJjYjk3YWZhN2M0YzVmNjVmZTFiYzYyXCI+c2Vuc29yX2RhdGFfdDo6dGltZXN0YW1wPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5UaW1lc3RhbXAgb2YgdmFsdWU8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2EyOTVhM2QzNzcwZTY1Nzg5OWE4NDI5Zjk5MDRlMzllZFwiPnNlbnNvcl9kYXRhX3Q6OnZhbHVlX2NvdW50PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5OdW1iZXIgb2YgdmFsdWVzIHByb3ZpZGVkPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmZsb2F0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FhNjVlMDI4ZDFkZjBlOTNjMmRhNDVhMzdiMTc4YzlkNVwiPnNlbnNvcl9kYXRhX3Q6OnZhbHVlczxcL2E+WzE2XTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNlbnNvciB2YWx1ZXMoYXJyYXkpPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnN0cnVjdCBzZW5zb3JodWJfZGF0YV90PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIG9mIHNlbnNvcmh1YiBkYXRhLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFTlNPUiAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+aW50PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTgxZDI2N2Q2YmFmYTY0OGM2NjdjODE2NzkzOTFhNGY1XCI+YWNjdXJhY3k8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dW5zaWduZWQgbG9uZyBsb25nPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWE0MjM2MzFhNDVlMGQ5NDQ0YWFiOWQzZTM0NTcwYzkwXCI+dGltZXN0YW1wPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVuaW9uIHs8XC90ZD5cbjx0ZD48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludFx1MDBhMFx1MDBhMFx1MDBhMDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FiOWM5YThhNmM4NDM4Nzg2MTcxM2U3NWE5OGFiMjI4YVwiPnZhbHVlX2NvdW50PFwvYT48XC90ZD5cbjx0ZD48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludFx1MDBhMFx1MDBhMFx1MDBhMDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FkNmJjZWU5OWEwODQ5MDU3NjJmNjMxNWRiZGU3Y2I5NVwiPmh1Yl9kYXRhX3NpemU8XC9hPjxcL3RkPlxuPHRkPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+fTs8XC90ZD5cbjx0ZD48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPlVuaW9uIG9mIG51bWJlciBvZiB2YWx1ZXMuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD51bmlvbiB7PFwvdGQ+XG48dGQ+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5jaGFyXHUwMGEwXHUwMGEwXHUwMGEwPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTU0MWU3Nzg2N2VkN2Y2MGQwYjI0ZTRiNjQ2OGVlYmZlXCI+dmFsdWVzPFwvYT4gWzQwOTZdPFwvdGQ+XG48dGQ+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5jaGFyXHUwMGEwXHUwMGEwXHUwMGEwPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWQ1M2FmZjY2MjE0NTc1YWI5M2Q4MjM4YzRhYThmZjc2XCI+aHViX2RhdGE8XC9hPiBbNDA5Nl08XC90ZD5cbjx0ZD48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPn07PFwvdGQ+XG48dGQ+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5VbmlvbiBvZiB2YWx1ZXMuPFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPGhyIFwvPlxuPGg0IGlkPVwiY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTRcIj48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi00XCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51bmlvbiB7IC4uLiB9PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VW5pb24gb2YgdmFsdWVzLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFTlNPUiAxLjA8XC9wPlxuPHA+VXNlICZxdW90O3ZhbHVlcyZxdW90OyBpbnN0ZWFkIG9mICZxdW90O2h1Yl9kYXRhJnF1b3Q7KHdpbGwgYmUgcmVtb3ZlZCBzb29uKTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51bmlvbiB7IC4uLiB9PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VW5pb24gb2YgbnVtYmVyIG9mIHZhbHVlcy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRU5TT1IgMS4wPFwvcD5cbjxwPlVzZSAmcXVvdDt2YWx1ZV9jb3VudCZxdW90OyBpbnN0ZWFkIG9mICZxdW90O2h1Yl9kYXRhX3NpemUmcXVvdDsod2lsbCBiZSByZW1vdmVkIHNvb24pPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhODFkMjY3ZDZiYWZhNjQ4YzY2N2M4MTY3OTM5MWE0ZjVcIj5zZW5zb3JodWJfZGF0YV90OjphY2N1cmFjeTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+QWNjdXJhY3kgb2YgdmFsdWU8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+Y2hhciA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhZDUzYWZmNjYyMTQ1NzVhYjkzZDgyMzhjNGFhOGZmNzZcIj5zZW5zb3JodWJfZGF0YV90OjpodWJfZGF0YTxcL2E+WzQwOTZdPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VmFsdWVzIG9mIHNlbnNvcmh1YiAoZGVwcmVjYXRlZCk8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FkNmJjZWU5OWEwODQ5MDU3NjJmNjMxNWRiZGU3Y2I5NVwiPnNlbnNvcmh1Yl9kYXRhX3Q6Omh1Yl9kYXRhX3NpemU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPk51bWJlciBvZiB2YWx1ZXMgKGRlcHJlY2F0ZWQpPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVuc2lnbmVkIGxvbmcgbG9uZyA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhYTQyMzYzMWE0NWUwZDk0NDRhYWI5ZDNlMzQ1NzBjOTBcIj5zZW5zb3JodWJfZGF0YV90Ojp0aW1lc3RhbXA8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlRpbWVzdGFtcCBvZiB2YWx1ZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWI5YzlhOGE2Yzg0Mzg3ODYxNzEzZTc1YTk4YWIyMjhhXCI+c2Vuc29yaHViX2RhdGFfdDo6dmFsdWVfY291bnQ8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPk51bWJlciBvZiB2YWx1ZXM8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+Y2hhciA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhNTQxZTc3ODY3ZWQ3ZjYwZDBiMjRlNGI2NDY4ZWViZmVcIj5zZW5zb3JodWJfZGF0YV90Ojp2YWx1ZXM8XC9hPls0MDk2XTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlZhbHVlcyBvZiBzZW5zb3JodWI8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IHNlbnNvcl9wZWRvbWV0ZXJfZGF0YV90PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIG9mIHBlZG9tZXRlciBkYXRhLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFTlNPUiAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+aW50PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWM5MmRiOTIxNTg3MzBhZDQ3ZGIxZGE2OTU0NjRiNjJiXCI+YWNjdXJhY3k8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dW5zaWduZWQgbG9uZyBsb25nPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTZjY2NjNjlhMGMwMDkwYzhkMTdiYjZiNDY1MzdkYWQ2XCI+dGltZXN0YW1wPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FlM2FkMTUyZDg5YWYwMjUyNGUwMjYwZjFkYjA3YWExMlwiPnZhbHVlX2NvdW50PFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmZsb2F0PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTRhN2M5M2QyYTI3MGVlN2M0YTQzZjYxYTVjOWQzYTFmXCI+dmFsdWVzPFwvYT4gWzE2XTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTMyNzk4ZjM5NjcyOTdjNjdlNGE5YzFjYWNiMjE5OTdlXCI+ZGlmZnNfY291bnQ8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+c3RydWN0ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjc3RydWN0c2Vuc29yX19wZWRvbWV0ZXJfX2RhdGFfX3RfMV8xZGlmZmVyZW5jZXNcIj5zZW5zb3JfcGVkb21ldGVyX2RhdGFfdDo6ZGlmZmVyZW5jZXM8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FiNjY2YjZmNDJiNTQzZTJkOTBkM2M4NzY0MjA1YTg3OVwiPmRpZmZzPFwvYT4gWzIwXTxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi01XCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tNVwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FjOTJkYjkyMTU4NzMwYWQ0N2RiMWRhNjk1NDY0YjYyYlwiPnNlbnNvcl9wZWRvbWV0ZXJfZGF0YV90OjphY2N1cmFjeTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+QWNjdXJhY3kgb2YgdmFsdWU8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI3N0cnVjdHNlbnNvcl9fcGVkb21ldGVyX19kYXRhX190XzFfMWRpZmZlcmVuY2VzXCI+c2Vuc29yX3BlZG9tZXRlcl9kYXRhX3Q6OmRpZmZlcmVuY2VzPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWI2NjZiNmY0MmI1NDNlMmQ5MGQzYzg3NjQyMDVhODc5XCI+c2Vuc29yX3BlZG9tZXRlcl9kYXRhX3Q6OmRpZmZzPFwvYT5bIDIwIF08XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5BcnJheSBvZiBkaWZmZXJlbmNlcyBvZiBwZWRvbWV0ZXIgZGF0YTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTMyNzk4ZjM5NjcyOTdjNjdlNGE5YzFjYWNiMjE5OTdlXCI+c2Vuc29yX3BlZG9tZXRlcl9kYXRhX3Q6OmRpZmZzX2NvdW50PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5OdW1iZXIgb2Ygc3RydWN0IGRpZmZlcmVuY2VzIEFkZGl0aW9uYWwgZGF0YSBhdHRyaWJ1dGVzIChub3QgaW4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjc3RydWN0c2Vuc29yX19kYXRhX190XCIgdGl0bGU9XCJTdHJ1Y3R1cmUgZm9yIHNlbnNvciBkYXRhLlwiPnNlbnNvcl9kYXRhX3Q8XC9hPik8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dW5zaWduZWQgbG9uZyBsb25nIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2E2Y2NjYzY5YTBjMDA5MGM4ZDE3YmI2YjQ2NTM3ZGFkNlwiPnNlbnNvcl9wZWRvbWV0ZXJfZGF0YV90Ojp0aW1lc3RhbXA8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlRpbWVzdGFtcCBvZiB2YWx1ZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWUzYWQxNTJkODlhZjAyNTI0ZTAyNjBmMWRiMDdhYTEyXCI+c2Vuc29yX3BlZG9tZXRlcl9kYXRhX3Q6OnZhbHVlX2NvdW50PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5OdW1iZXIgb2YgdmFsdWVzPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmZsb2F0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2E0YTdjOTNkMmEyNzBlZTdjNGE0M2Y2MWE1YzlkM2ExZlwiPnNlbnNvcl9wZWRvbWV0ZXJfZGF0YV90Ojp2YWx1ZXM8XC9hPlsxNl08XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5WYWx1ZXMgb2YgcGVkb21ldGVyIHNlbnNvciB2YWx1ZXMgPSB7c3RlcCBjb3VudCwgd2FsayBzdGVwIGNvdW50LCBydW4gc3RlcCBjb3VudCwgbW92aW5nIGRpc3RhbmNlLCBjYWxvcmllIGJ1cm5lZCwgbGFzdCBzcGVlZCwgbGFzdCBzdGVwcGluZyBmcmVxdWVuY3kgKHN0ZXBzIHBlciBzZWMpLCBsYXN0IHN0ZXAgc3RhdHVzICh3YWxraW5nLCBydW5uaW5nLCAuLi4pfTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3Qgc2Vuc29yX3BlZG9tZXRlcl9kYXRhX3Q6OmRpZmZlcmVuY2VzPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIG9mIGRpZmZlcmVuY2VzIG9mIHBlZG9tZXRlciBkYXRhLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFTlNPUiAxLjA8XC9wPlxuPHA+QWRkaXRpb25hbCBkYXRhIGF0dHJpYnV0ZXMgKG5vdCBpbiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNzdHJ1Y3RzZW5zb3JfX2RhdGFfX3RcIiB0aXRsZT1cIlN0cnVjdHVyZSBmb3Igc2Vuc29yIGRhdGEuXCI+c2Vuc29yX2RhdGFfdDxcL2E+KTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD5pbnQ8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhOTNmM2Y3M2ZiYzkwZmM5ZDlhMzM3N2M3MDJlMDVmNWZcIj50aW1lc3RhbXA8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWYyNzBkMzQzZWFlYTkwYjAyZTY4MTM3ODM2OWQ4NzBkXCI+c3RlcHM8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTUyMTUyZDY1N2MyYmE3NjFkNjQ4ZWJjMjdjNGEyZGI3XCI+d2Fsa19zdGVwczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQ8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhNWIwNWE0YjNkYzJmYjZiMTUwNjJiYjRmNDlhMzczNjlcIj5ydW5fc3RlcHM8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTQ1YTM5YTE3N2NmZDI5OWY1YjQ0MWM1MjQ0MjFkZWE3XCI+d2Fsa191cF9zdGVwczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQ8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhMDc3ZGJjMjY1MDVjMjBkYmE0NDIxMDA5MzEzNDUxZDJcIj53YWxrX2Rvd25fc3RlcHM8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTdmZjI4OWRjMWM3M2UyOWQ2YTU0Y2ZlZDRlMTY3NGVhXCI+cnVuX3VwX3N0ZXBzPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2E0OTAwOWVmOTI2MmFjZjAwYjQzZjIwMGE1YmQzNTA3NlwiPnJ1bl9kb3duX3N0ZXBzPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmZsb2F0PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTI1YzMwMDRjY2FhMzg4MWMwOTMxMTBjODk1NjkzMGIxXCI+ZGlzdGFuY2U8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+ZmxvYXQ8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhOGUxM2Q0MzVjYzM1NGQ1Mjk2MGI5ODU5MjhlMTQzZDVcIj5jYWxvcmllczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5mbG9hdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2E1N2JkMTFkZDQ0MGM0ZTNkZDVjMDFhNzRiZDhiMWVhY1wiPnNwZWVkPFwvYT48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDQgaWQ9XCJjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tNlwiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTZcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkZpZWxkIERvY3VtZW50YXRpb248XC9oND5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmZsb2F0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2E4ZTEzZDQzNWNjMzU0ZDUyOTYwYjk4NTkyOGUxNDNkNVwiPnNlbnNvcl9wZWRvbWV0ZXJfZGF0YV90OjpkaWZmZXJlbmNlczo6Y2Fsb3JpZXM8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRpZmZlcmVuY2Ugb2YgY2Fsb3JpZXM8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZmxvYXQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTI1YzMwMDRjY2FhMzg4MWMwOTMxMTBjODk1NjkzMGIxXCI+c2Vuc29yX3BlZG9tZXRlcl9kYXRhX3Q6OmRpZmZlcmVuY2VzOjpkaXN0YW5jZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGlmZmVyZW5jZSBvZiBkaXN0YW5jZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTQ5MDA5ZWY5MjYyYWNmMDBiNDNmMjAwYTViZDM1MDc2XCI+c2Vuc29yX3BlZG9tZXRlcl9kYXRhX3Q6OmRpZmZlcmVuY2VzOjpydW5fZG93bl9zdGVwczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGlmZmVyZW5jZSBvZiBydW4gZG93biBzdGVwczxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTViMDVhNGIzZGMyZmI2YjE1MDYyYmI0ZjQ5YTM3MzY5XCI+c2Vuc29yX3BlZG9tZXRlcl9kYXRhX3Q6OmRpZmZlcmVuY2VzOjpydW5fc3RlcHM8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRpZmZlcmVuY2Ugb2YgcnVuIHN0ZXBzPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhN2ZmMjg5ZGMxYzczZTI5ZDZhNTRjZmVkNGUxNjc0ZWFcIj5zZW5zb3JfcGVkb21ldGVyX2RhdGFfdDo6ZGlmZmVyZW5jZXM6OnJ1bl91cF9zdGVwczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGlmZmVyZW5jZSBvZiBydW4gdXAgc3RlcHM8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZmxvYXQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTU3YmQxMWRkNDQwYzRlM2RkNWMwMWE3NGJkOGIxZWFjXCI+c2Vuc29yX3BlZG9tZXRlcl9kYXRhX3Q6OmRpZmZlcmVuY2VzOjpzcGVlZDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGlmZmVyZW5jZSBvZiBzcGVlZDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWYyNzBkMzQzZWFlYTkwYjAyZTY4MTM3ODM2OWQ4NzBkXCI+c2Vuc29yX3BlZG9tZXRlcl9kYXRhX3Q6OmRpZmZlcmVuY2VzOjpzdGVwczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGlmZmVyZW5jZSBvZiBzdGVwczxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTkzZjNmNzNmYmM5MGZjOWQ5YTMzNzdjNzAyZTA1ZjVmXCI+c2Vuc29yX3BlZG9tZXRlcl9kYXRhX3Q6OmRpZmZlcmVuY2VzOjp0aW1lc3RhbXA8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlRpbWVzdGFtcCBvZiBkaWZmZXJlbmNlPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhMDc3ZGJjMjY1MDVjMjBkYmE0NDIxMDA5MzEzNDUxZDJcIj5zZW5zb3JfcGVkb21ldGVyX2RhdGFfdDo6ZGlmZmVyZW5jZXM6OndhbGtfZG93bl9zdGVwczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGlmZmVyZW5jZSBvZiB3YWxrIGRvd24gc3RlcHM8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2E1MjE1MmQ2NTdjMmJhNzYxZDY0OGViYzI3YzRhMmRiN1wiPnNlbnNvcl9wZWRvbWV0ZXJfZGF0YV90OjpkaWZmZXJlbmNlczo6d2Fsa19zdGVwczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGlmZmVyZW5jZSBvZiB3YWxrIHN0ZXBzPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhNDVhMzlhMTc3Y2ZkMjk5ZjViNDQxYzUyNDQyMWRlYTdcIj5zZW5zb3JfcGVkb21ldGVyX2RhdGFfdDo6ZGlmZmVyZW5jZXM6OndhbGtfdXBfc3RlcHM8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRpZmZlcmVuY2Ugb2Ygd2FsayB1cCBzdGVwczxcL3A+XG48aHIgXC8+XG48aDIgaWQ9XCJjb250ZW50LWRlZmluZS1kb2N1bWVudGF0aW9uXCI+PGEgaHJlZj1cIiNjb250ZW50LWRlZmluZS1kb2N1bWVudGF0aW9uXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5EZWZpbmUgRG9jdW1lbnRhdGlvbjxcL2gyPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNnYTU2ZTE4N2UxMDlhZDM1NWNkZDYyMmI0NDIxOTZlZGIzXCI+U0VOU09SX0RBVEFfVkFMVUVfU0laRTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwMTY8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIG9mIHNlbnNvciBkYXRhIHZhbHVlIHNpemUuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfU0VOU09SIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2dhNDc4ZDIxMTEyOTE3YzIxYzJjYTM1YzVjYzMyNWVhZTZcIj5TRU5TT1JfUEVET01FVEVSX0RBVEFfRElGRlNfU0laRTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwMjA8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIG9mIHBlZG9tZXRlciBkYXRhIGRpZmZlcmVuY2UgYXJyYXkgc2l6ZS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRU5TT1IgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjZ2FmZjM5Mzk3MDgyYzk2YzYzNDA5YWNjYzc2NTE2NDMwZVwiPlNFTlNPUkhVQl9EQVRBX1ZBTFVFX1NJWkU8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMDQwOTY8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIG9mIHNlbnNvcmh1YiBkYXRhIHZhbHVlIHNpemUuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfU0VOU09SIDEuMDxcL3A+XG48aHIgXC8+XG48aDIgaWQ9XCJjb250ZW50LXR5cGVkZWYtZG9jdW1lbnRhdGlvblwiPjxhIGhyZWY9XCIjY29udGVudC10eXBlZGVmLWRvY3VtZW50YXRpb25cIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlR5cGVkZWYgRG9jdW1lbnRhdGlvbjxcL2gyPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBzdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjc3RydWN0X19oYWxfX2JhY2tlbmRfX3NlbnNvcl9fZnVuY3NcIj5faGFsX2JhY2tlbmRfc2Vuc29yX2Z1bmNzPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjZ2FiMTQ5YTE1YWFlZGZmMDNmNThmODcwZjM5ZjI1NDU0OVwiPmhhbF9iYWNrZW5kX3NlbnNvcl9mdW5jczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBzZW5zb3IgZnVuY3Rpb25zLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFTlNPUiAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBzdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjc3RydWN0c2Vuc29yX19kYXRhX190XCI+c2Vuc29yX2RhdGFfdDxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI3N0cnVjdHNlbnNvcl9fZGF0YV9fdFwiPnNlbnNvcl9kYXRhX3Q8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3Igc2Vuc29yIGRhdGEuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfU0VOU09SIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNzdHJ1Y3RzZW5zb3JfX2luZm9fX3RcIj5zZW5zb3JfaW5mb190PFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjc3RydWN0c2Vuc29yX19pbmZvX190XCI+c2Vuc29yX2luZm9fdDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBzZW5zb3IgaW5mb3JtYXRpb24gZGF0YS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRU5TT1IgMS4wPFwvcD5cbjxwPkEgcGxhdGZvcm0gc2Vuc29yIGhhbmRsZXIgaXMgZ2VuZXJhdGVkIGJhc2VkIG9uIHRoaXMgaGFuZGxlLjxiciBcLz5cblRoZSAnaWQnIGNhbiBiZSBhc3NpZ25lZCBmcm9tIEhBTCBkZXZlbG9wZXIsIHNvIGl0IGhhcyB0byBiZTxiciBcLz5cbnVuaXF1ZSBwZXIgYSBzZW5zb3JfZGV2aWNlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNzdHJ1Y3RzZW5zb3JodWJfX2RhdGFfX3RcIj5zZW5zb3JodWJfZGF0YV90PFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjc3RydWN0c2Vuc29yaHViX19kYXRhX190XCI+c2Vuc29yaHViX2RhdGFfdDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIG9mIHNlbnNvcmh1YiBkYXRhLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFTlNPUiAxLjA8XC9wPlxuPGhyIFwvPlxuPGgyIGlkPVwiY29udGVudC1lbnVtZXJhdGlvbi10eXBlLWRvY3VtZW50YXRpb25cIj48YSBocmVmPVwiI2NvbnRlbnQtZW51bWVyYXRpb24tdHlwZS1kb2N1bWVudGF0aW9uXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5FbnVtZXJhdGlvbiBUeXBlIERvY3VtZW50YXRpb248XC9oMj5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjZ2E5ODhlYjViNDU5YWVmNjQ1N2UzZDM2NDQyMTljZjUwNlwiPmhhbF9zZW5zb3JfbGlkYXJfcG93ZXJfc3RhdGU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uKGhhbCkgZm9yIHBvd2VyIHN0YXRlIG9mIGxpZGFyLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFTlNPUiAxLjA8XC9wPlxuPHA+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjZ2dhMGRjYjY4NDJiYzk2OTQ5MmJkMWM5ZWI0OTcwODk0MGJhZjBjNzg1OGU0ZGJkZDZmNzc4ZTBjYzdkOWYyMzBkOWJcIj5IQUxfU0VOU09SX0FUVFJfTElEQVJfUE9XRVJfU1RBVEU8XC9hPiBhdHRyaWJ1dGUgdmFsdWU8XC9wPlxuPHA+PHN0cm9uZz5FbnVtZXJhdG9yOjxcL3N0cm9uZz5cbjogICB8IDxlbT5IQUxfU0VOU09SX0xJREFSX1BPV0VSX1NUQVRFX09GRjxcL2VtPiB8IE9mZiB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5IQUxfU0VOU09SX0xJREFSX1BPV0VSX1NUQVRFX09OPFwvZW0+IHwgT24gfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2dhNGYwNzcyNzcwY2UzNjBmMmVlMGQ0ZTk0YTdjM2RlY2JcIj5oYWxfc2Vuc29yX3Byb3hpbWl0eV9zZW5zaXRpdml0eV9sZXZlbDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24oaGFsKSBmb3Igc2Vuc2l0aXZpdHkgbGV2ZWwgb2YgcHJveGltaXR5IHNlbnNvci48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRU5TT1IgMS4wPFwvcD5cbjxwPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2dnYTBkY2I2ODQyYmM5Njk0OTJiZDFjOWViNDk3MDg5NDBiYTYxMTFlYzAxMGM3ZjNiY2NjNTVhNTU4ZDIxNzUzN2E2XCI+SEFMX1NFTlNPUl9BVFRSX1BST1hJTUlUWV9TRU5TSVRJVklUWV9MRVZFTDxcL2E+IGF0dHJpYnV0ZSB2YWx1ZTxcL3A+XG48cD48c3Ryb25nPkVudW1lcmF0b3I6PFwvc3Ryb25nPlxuOiAgIHwgPGVtPkhBTF9TRU5TT1JfUFJPWElNSVRZX1NFTlNJVElWSVRZX0xFVkVMX1dFQUs8XC9lbT4gfCBXZWFrIHxcbnwgLS0tIHwgLS0tIHxcbnwgPGVtPkhBTF9TRU5TT1JfUFJPWElNSVRZX1NFTlNJVElWSVRZX0xFVkVMX01FRElVTTxcL2VtPiB8IE1lZGl1bSB8XG58IDxlbT5IQUxfU0VOU09SX1BST1hJTUlUWV9TRU5TSVRJVklUWV9MRVZFTF9TVFJPTkc8XC9lbT4gfCBTdHJvbmcgfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2dhMTU0MGEwNThhMmM3NjNiOGViOGJlNzFjNGE4NmZmZGZcIj5zZW5zb3JfYWNjdXJhY3lfdDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIHNlbnNvciBhY2N1cmFjeS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRU5TT1IgMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+U0VOU09SX0FDQ1VSQUNZX1VOREVGSU5FRDxcL2VtPiB8IFVuZGVmaW5lZCBhY2N1cmFjeSB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5TRU5TT1JfQUNDVVJBQ1lfQkFEPFwvZW0+IHwgQmFkIGFjY3VyYWN5IHxcbnwgPGVtPlNFTlNPUl9BQ0NVUkFDWV9OT1JNQUw8XC9lbT4gfCBOb3JtYWwgYWNjdXJhY3kgfFxufCA8ZW0+U0VOU09SX0FDQ1VSQUNZX0dPT0Q8XC9lbT4gfCBHb29kIGFjY3VyYWN5IHxcbnwgPGVtPlNFTlNPUl9BQ0NVUkFDWV9WRVJZR09PRDxcL2VtPiB8IFZlcnkgZ29vZCBhY2N1cmFjeSB8PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjZ2FkZTIwZDhhMjI0ZWQxYjllYWIyMzIwMWMyZjI1Y2E2OFwiPnNlbnNvcl9hY3Rpdml0eTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIGFjdGl2aXR5LjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFTlNPUiAxLjA8XC9wPlxuPHA+PHN0cm9uZz5FbnVtZXJhdG9yOjxcL3N0cm9uZz5cbjogICB8IDxlbT5TRU5TT1JfQUNUSVZJVFlfVU5LTk9XTjxcL2VtPiB8IFVua25vd24gYWN0aXZpdHkgfFxufCAtLS0gfCAtLS0gfFxufCA8ZW0+U0VOU09SX0FDVElWSVRZX1NUSUxMPFwvZW0+IHwgU3RpbGwgfFxufCA8ZW0+U0VOU09SX0FDVElWSVRZX1dBTEtJTkc8XC9lbT4gfCBXYWxraW5nIHxcbnwgPGVtPlNFTlNPUl9BQ1RJVklUWV9SVU5OSU5HPFwvZW0+IHwgUnVubmluZyB8XG58IDxlbT5TRU5TT1JfQUNUSVZJVFlfSU5fVkVISUNMRTxcL2VtPiB8IEluIHZlaGljbGUgfFxufCA8ZW0+U0VOU09SX0FDVElWSVRZX09OX0JJQ1lDTEU8XC9lbT4gfCBPbiBiaWN5Y2xlIHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNnYTBkY2I2ODQyYmM5Njk0OTJiZDFjOWViNDk3MDg5NDBiXCI+c2Vuc29yX2F0dHJpYnV0ZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBhdHRyaWJ1dGVzIG9mIHNlbnNvci48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRU5TT1IgMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+U0VOU09SX0FUVFJfQUNDRUxFUk9NRVRFUl9JTkpFQ1RJT048XC9lbT4gfCBhY2NlbGVyb21ldGVyIGluamVjdGlvbiB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5TRU5TT1JfQVRUUl9BQ1RJVklUWTxcL2VtPiB8IGFjdGl2aXR5IHxcbnwgPGVtPlNFTlNPUl9BVFRSX0hSTV9CQVRDSF9PUFJfTU9ERTxcL2VtPiB8IEhSTSBiYXRjaCBvcHIgbW9kZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9IUk1fQkFUQ0hfQUNUSVZJVFlfVFlQRTxcL2VtPiB8IEhSTSBiYXRjaCBhY3Rpdml0eSB0eXBlIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0hSTV9CQVRDSF9CQVRDSF9EVVI8XC9lbT4gfCBIUk0gYmF0Y2ggYmF0Y2ggZHVyIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0hSTV9CQVRDSF9GTFVTSDxcL2VtPiB8IEhSTSBiYXRjaCBmbHVzaCB8XG58IDxlbT5TRU5TT1JfQVRUUl9IUk1fQkFUQ0hfRUxFVkFURURfRFVSPFwvZW0+IHwgSFJNIGJhdGNoIGVsZXZhdGVkIGR1ciB8XG58IDxlbT5TRU5TT1JfQVRUUl9IUk1fQkFUQ0hfRUxFVkFURURfVEhSPFwvZW0+IHwgSFJNIGJhdGNoIGVsZXZhdGVkIHRociB8XG58IDxlbT5TRU5TT1JfQVRUUl9IUk1fQkFUQ0hfQlBNX1JBVzxcL2VtPiB8IEhSTSBiYXRjaCBicG0gcmF3IHxcbnwgPGVtPlNFTlNPUl9BVFRSX0hSTV9CQVRDSF9MT1dfQUxFUlRfRFVSPFwvZW0+IHwgSFJNIGJhdGNoIGxvdyBhbGVydCBkdXIgfFxufCA8ZW0+U0VOU09SX0FUVFJfSFJNX0JBVENIX0xPV19BTEVSVF9USFI8XC9lbT4gfCBIUk0gYmF0Y2ggbG93IGFsZXJ0IHRociB8XG58IDxlbT5TRU5TT1JfQVRUUl9IUk1fTEVEX0dSRUVOX0JBVENIX1BPTExJTkdfSU5URVJWQUw8XC9lbT4gfCBIUk0gbGVkIGdyZWVuIGJhdGNoIHBvbGxpbmcgaW50ZXJ2YWwgfFxufCA8ZW0+U0VOU09SX0FUVFJfSFJNX0xFRF9HUkVFTl9CQVRDSF9GTFVTSDxcL2VtPiB8IEhSTSBsZWQgZ3JlZW4gYmF0Y2ggZmx1c2ggfFxufCA8ZW0+U0VOU09SX0FUVFJfSFJNX0xFRF9HUkVFTl9CQVRDSF9CQVRDSF9QRVJJT0Q8XC9lbT4gfCBIUk0gbGVkIGdyZWVuIGJhdGNoIGJhdGNoIHBlcmlvZCB8XG58IDxlbT5TRU5TT1JfQVRUUl9QRURPTUVURVJfSEVJR0hUPFwvZW0+IHwgcGVkb21ldGVyIGhlaWdodCB8XG58IDxlbT5TRU5TT1JfQVRUUl9QRURPTUVURVJfV0VJR0hUPFwvZW0+IHwgcGVkb21ldGVyIHdlaWdodCB8XG58IDxlbT5TRU5TT1JfQVRUUl9QRURPTUVURVJfR0VOREVSPFwvZW0+IHwgcGVkb21ldGVyIGdlbmRlciB8XG58IDxlbT5TRU5TT1JfQVRUUl9QRURPTUVURVJfQUdFPFwvZW0+IHwgcGVkb21ldGVyIGFnZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9QRURPTUVURVJfRkxVU0g8XC9lbT4gfCBwZWRvbWV0ZXIgZmx1c2ggfFxufCA8ZW0+U0VOU09SX0FUVFJfU1RSRVNTX01PTklUT1JfQUdFPFwvZW0+IHwgc3RyZXNzIG1vbml0b3IgYWdlIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0VYRVJDSVNFX1RZUEU8XC9lbT4gfCBleGVyY2lzZSB0eXBlIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0VYRVJDSVNFX0dQUzxcL2VtPiB8IGV4ZXJjaXNlIEdQUyB8XG58IDxlbT5TRU5TT1JfQVRUUl9FWEVSQ0lTRV9CQVRDSF9JTlRFUlZBTDxcL2VtPiB8IGV4ZXJjaXNlIGJhdGNoIGludGVydmFsIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0VYRVJDSVNFX1BTRVJWSUNFPFwvZW0+IHwgZXhlcmNpc2UgcGVyc29uYWwgc2VydmljZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9DWUNMRV9EVVJBVElPTjxcL2VtPiB8IGN5Y2xlIGR1cmF0aW9uIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0NZQ0xFX0hPTERJTkdfUE9TSVRJT048XC9lbT4gfCBjeWNsZSBob2xkaW5nIHBvc2l0aW9uIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0NZQ0xFX1ZFTE9DSVRZPFwvZW0+IHwgY3ljbGUgdmVsb2NpdHkgfFxufCA8ZW0+U0VOU09SX0FUVFJfQ1lDTEVfR0VUX0RBVEFfVFlQRTxcL2VtPiB8IGN5Y2xlIGdldCBkYXRhIHR5cGUgfFxufCA8ZW0+U0VOU09SX0FUVFJfQ1lDTEVfREFUQV9GTFVTSDxcL2VtPiB8IGN5Y2xlIGRhdGEgZmx1c2ggfFxufCA8ZW0+U0VOU09SX0FUVFJfQ1lDTEVfR1BTX0FHUkVFTUVOVDxcL2VtPiB8IGN5Y2xlIEdQUyBhZ3JlZW1lbnQgfFxufCA8ZW0+U0VOU09SX0FUVFJfV09SS09VVF9UWVBFPFwvZW0+IHwgd29ya291dCB0eXBlIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1dPUktPVVRfRFVSQVRJT048XC9lbT4gfCB3b3Jrb3V0IGR1cmF0aW9uIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1JFU1RJTkdfSFJfT1BSX01PREU8XC9lbT4gfCByZXN0aW5nIEhSIG9wciBtb2RlIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1JFU1RJTkdfSFJfTUFYX1JIUjxcL2VtPiB8IHJlc3RpbmcgSFIgbWF4IHJociB8XG58IDxlbT5TRU5TT1JfQVRUUl9SRVNUSU5HX0hSX01JTl9SSFI8XC9lbT4gfCByZXN0aW5nIEhSIG1pbiByaHIgfFxufCA8ZW0+U0VOU09SX0FUVFJfUkVTVElOR19IUl9BVkdfUkhSPFwvZW0+IHwgcmVzdGluZyBIUiBhdmcgcmhyIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1JFU1RJTkdfSFJfSE9VUjxcL2VtPiB8IHJlc3RpbmcgSFIgaG91ciB8XG58IDxlbT5TRU5TT1JfQVRUUl9SRVNUSU5HX0hSX01JTjxcL2VtPiB8IHJlc3RpbmcgSFIgbWluIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1JFU1RJTkdfSFJfU0VDPFwvZW0+IHwgcmVzdGluZyBIUiBzZWMgfFxufCA8ZW0+U0VOU09SX0FUVFJfUkVTVElOR19IUl9QUk9QRVJUWV9UWVBFPFwvZW0+IHwgcmVzdGluZyBIUiBwcm9wZXJ0eSB0eXBlIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1JFU1RJTkdfSFJfUFJPUEVSVFlfSFJfVFlQRTxcL2VtPiB8IHJlc3RpbmcgSFIgcHJvcGVydHkgSFIgdHlwZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9SRVNUSU5HX0hSX1BST1BFUlRZX0hSX1ZBTFVFPFwvZW0+IHwgcmVzdGluZyBIUiBwcm9wZXJ0eSBIUiB2YWx1ZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9SRVNUSU5HX0hSX1BST1BFUlRZX0RVUkFUSU9OPFwvZW0+IHwgcmVzdGluZyBIUiBwcm9wZXJ0eSBkdXJhdGlvbiB8XG58IDxlbT5TRU5TT1JfQVRUUl9SRVNUSU5HX0hSX1BST1BFUlRZX0FDVF9UWVBFPFwvZW0+IHwgcmVzdGluZyBIUiBwcm9wZXJ0eSBhY3QgdHlwZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9SRVNUSU5HX0hSX1BST1BFUlRZX0FDVF9EVVI8XC9lbT4gfCByZXN0aW5nIEhSIHByb3BlcnR5IGFjdCBkdXIgfFxufCA8ZW0+U0VOU09SX0FUVFJfUkVTVElOR19IUl9QUk9QRVJUWV9DT05UX0RVUjxcL2VtPiB8IHJlc3RpbmcgSFIgcHJvcGVydHkgY29udCBkdXIgfFxufCA8ZW0+U0VOU09SX0FUVFJfUkVTVElOR19IUl9EQVRBX1RZUEU8XC9lbT4gfCByZXN0aW5nIEhSIGRhdGEgdHlwZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9SRVNUSU5HX0hSX0RBVEFfRkxVU0g8XC9lbT4gfCByZXN0aW5nIEhSIGRhdGEgZmx1c2ggfFxufCA8ZW0+U0VOU09SX0FUVFJfU1RFUF9MRVZFTF9NT05JVE9SX0RXX0RVUkFUSU9OPFwvZW0+IHwgc3RlcCBsZXZlbCBtb25pdG9yIGR3IGR1cmF0aW9uIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0VYRVJDSVNFX0hSX09QUl9NT0RFPFwvZW0+IHwgZXhlcmNpc2UgSFIgb3ByIG1vZGUgfFxufCA8ZW0+U0VOU09SX0FUVFJfRVhFUkNJU0VfSFJfQUNUSVZJVFlfVFlQRTxcL2VtPiB8IGV4ZXJjaXNlIEhSIGFjdGl2aXR5IHR5cGUgfFxufCA8ZW0+U0VOU09SX0FUVFJfRVhFUkNJU0VfSFJfQkFUQ0hfRFVSPFwvZW0+IHwgZXhlcmNpc2UgSFIgYmF0Y2ggZHVyIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0VYRVJDSVNFX0hSX0ZMVVNIPFwvZW0+IHwgZXhlcmNpc2UgSFIgZmx1c2ggfFxufCA8ZW0+U0VOU09SX0FUVFJfRVhFUkNJU0VfSFJfRUxFVkFURURfRFVSPFwvZW0+IHwgZXhlcmNpc2UgSFIgZWxldmF0ZWQgZHVyIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0VYRVJDSVNFX0hSX0VMRVZBVEVEX1RIUjxcL2VtPiB8IGV4ZXJjaXNlIEhSIGVsZXZhdGVkIHRociB8XG58IDxlbT5TRU5TT1JfQVRUUl9FWEVSQ0lTRV9IUl9CUE1fUkFXPFwvZW0+IHwgZXhlcmNpc2UgSFIgYnBtIHJhdyB8XG58IDxlbT5TRU5TT1JfQVRUUl9FWEVSQ0lTRV9IUl9MT1dfQUxFUlRfRFVSPFwvZW0+IHwgZXhlcmNpc2UgSFIgbG93IGFsZXJ0IGR1ciB8XG58IDxlbT5TRU5TT1JfQVRUUl9FWEVSQ0lTRV9IUl9MT1dfQUxFUlRfVEhSPFwvZW0+IHwgZXhlcmNpc2UgSFIgbG93IGFsZXJ0IHRociB8XG58IDxlbT5TRU5TT1JfQVRUUl9QUkVTU1VSRV9JTkRJQ0FUT1JfU1RBUlQ8XC9lbT4gfCBwcmVzc3VyZSBpbmRpY2F0b3Igc3RhcnQgfFxufCA8ZW0+U0VOU09SX0FUVFJfUFJFU1NVUkVfSU5ESUNBVE9SX1NUT1A8XC9lbT4gfCBwcmVzc3VyZSBpbmRpY2F0b3Igc3RvcCB8XG58IDxlbT5TRU5TT1JfQVRUUl9QUkVTU1VSRV9JTkRJQ0FUT1JfRkxVU0g8XC9lbT4gfCBwcmVzc3VyZSBpbmRpY2F0b3IgZmx1c2ggfFxufCA8ZW0+U0VOU09SX0FUVFJfUFJFU1NVUkVfSU5ESUNBVE9SX1JFU1RPUkVfVElNRTxcL2VtPiB8IHByZXNzdXJlIGluZGljYXRvciByZXN0b3JlIHRpbWUgfFxufCA8ZW0+U0VOU09SX0FUVFJfUFJFU1NVUkVfSU5ESUNBVE9SX1JFU1RPUkVfVkFMVUU8XC9lbT4gfCBwcmVzc3VyZSBpbmRpY2F0b3IgcmVzdG9yZSB2YWx1ZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9QUkVTU1VSRV9JTkRJQ0FUT1JfQ1VSUkVOVF9USU1FPFwvZW0+IHwgcHJlc3N1cmUgaW5kaWNhdG9yIGN1cnJlbnQgdGltZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9QUkVTU1VSRV9BTEVSVF9TVEFSVDxcL2VtPiB8IHByZXNzdXJlIGFsZXJ0IHN0YXJ0IHxcbnwgPGVtPlNFTlNPUl9BVFRSX1BSRVNTVVJFX0FMRVJUX1NUT1A8XC9lbT4gfCBwcmVzc3VyZSBhbGVydCBzdG9wIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0hSX0NBTE9SSUVfQUdFPFwvZW0+IHwgSFIgY2Fsb3JpZSBhZ2UgfFxufCA8ZW0+U0VOU09SX0FUVFJfSFJfQ0FMT1JJRV9IRUlHSFQ8XC9lbT4gfCBIUiBjYWxvcmllIGhlaWdodCB8XG58IDxlbT5TRU5TT1JfQVRUUl9IUl9DQUxPUklFX1dFSUdIVDxcL2VtPiB8IEhSIGNhbG9yaWUgd2VpZ2h0IHxcbnwgPGVtPlNFTlNPUl9BVFRSX0hSX0NBTE9SSUVfR0VOREVSPFwvZW0+IHwgSFIgY2Fsb3JpZSBnZW5kZXIgfFxufCA8ZW0+U0VOU09SX0FUVFJfSFJfQ0FMT1JJRV9JTlNUPFwvZW0+IHwgSFIgY2Fsb3JpZSBpbnN0IHxcbnwgPGVtPlNFTlNPUl9BVFRSX0hSX0NBTE9SSUVfRVhFUkNJU0VfVFlQRTxcL2VtPiB8IEhSIGNhbG9yaWUgZXhlcmNpc2UgdHlwZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9IUl9DQUxPUklFX1RBUkdFVF9DQUw8XC9lbT4gfCBIUiBjYWxvcmllIHRhcmdldCBjYWwgfFxufCA8ZW0+U0VOU09SX0FUVFJfSFJfQ0FMT1JJRV9NQVhfSEVBUlRSQVRFPFwvZW0+IHwgSFIgY2Fsb3JpZSBtYXggaGVhcnRyYXRlIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0hSX0NBTE9SSUVfRkxVU0g8XC9lbT4gfCBIUiBjYWxvcmllIGZsdXNoIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1NXSU1NSU5HX1RSQUNLRVJfUExBQ0U8XC9lbT4gfCBzd2ltbWluZyB0cmFja2VyIHBsYWNlIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1NXSU1NSU5HX1RSQUNLRVJfRElTVEFOQ0U8XC9lbT4gfCBzd2ltbWluZyB0cmFja2VyIGRpc3RhbmNlIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1NXSU1NSU5HX1RSQUNLRVJfRkxVU0g8XC9lbT4gfCBzd2ltbWluZyB0cmFja2VyIGZsdXNoIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1NXSU1NSU5HX1RSQUNLRVJfQkFUQ0g8XC9lbT4gfCBzd2ltbWluZyB0cmFja2VyIGJhdGNoIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1NXSU1NSU5HX1RSQUNLRVJfR09BTF9DQUxPUklFUzxcL2VtPiB8IHN3aW1taW5nIHRyYWNrZXIgZ29hbCBjYWxvcmllcyB8XG58IDxlbT5TRU5TT1JfQVRUUl9TV0lNTUlOR19UUkFDS0VSX0dPQUxfTEFQUzxcL2VtPiB8IHN3aW1taW5nIHRyYWNrZXIgZ29hbCBsYXBzIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1NXSU1NSU5HX1RSQUNLRVJfVElNRV9SRVNUPFwvZW0+IHwgc3dpbW1pbmcgdHJhY2tlciB0aW1lIHJlc3QgfFxufCA8ZW0+U0VOU09SX0FUVFJfU1dJTU1JTkdfVFJBQ0tFUl9USU1FX1RVUk48XC9lbT4gfCBzd2ltbWluZyB0cmFja2VyIHRpbWUgdHVybiB8XG58IDxlbT5TRU5TT1JfQVRUUl9TV0lNTUlOR19PVVRET09SX1NFVF9CQVRDSF9MQVBfQ09VTlQ8XC9lbT4gfCBzd2ltbWluZyBvdXRkb29yIHNldCBiYXRjaCBsYXAgY291bnQgfFxufCA8ZW0+U0VOU09SX0FUVFJfU1dJTU1JTkdfT1VURE9PUl9TRVRHT0FMX0xFTkdUSDxcL2VtPiB8IHN3aW1taW5nIG91dGRvb3Igc2V0Z29hbCBsZW5ndGggfFxufCA8ZW0+U0VOU09SX0FUVFJfU1dJTU1JTkdfT1VURE9PUl9TRVRHT0FMX1RJTUU8XC9lbT4gfCBzd2ltbWluZyBvdXRkb29yIHNldGdvYWwgdGltZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9TV0lNTUlOR19PVVRET09SX1NFVF9HUFNfUEVSTUlTU0lPTjxcL2VtPiB8IHN3aW1taW5nIG91dGRvb3Igc2V0IEdQUyBwZXJtaXNzaW9uIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1NXSU1NSU5HX09VVERPT1JfRkxVU0g8XC9lbT4gfCBzd2ltbWluZyBvdXRkb29yIGZsdXNoIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0FVVE9fU1dJTU1JTkdfRFVSQVRJT048XC9lbT4gfCBhdXRvIHN3aW1taW5nIGR1cmF0aW9uIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0lOQUNUSVZJVFlfREVURUNUT1JfTEVWRUw8XC9lbT4gfCBpbmFjdGl2aXR5IGRldGVjdG9yIGxldmVsIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0lOQUNUSVZJVFlfREVURUNUT1JfRFVSQVRJT048XC9lbT4gfCBpbmFjdGl2aXR5IGRldGVjdG9yIGR1cmF0aW9uIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1NUUkVTU19UUkFDS0VSX0RVUjxcL2VtPiB8IHN0cmVzcyB0cmFja2VyIGR1ciB8XG58IDxlbT5TRU5TT1JfQVRUUl9TVFJFU1NfVFJBQ0tFUl9GTFVTSDxcL2VtPiB8IHN0cmVzcyB0cmFja2VyIGZsdXNoIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1NUUkVTU19NT05JVE9SX0JBU0VfSFI8XC9lbT4gfCBzdHJlc3MgbW9uaXRvciBiYXNlIEhSIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1NUUkVTU19NT05JVE9SX0hJU1RPX0lOREVYPFwvZW0+IHwgc3RyZXNzIG1vbml0b3IgaGlzdG8gaW5kZXggfFxufCA8ZW0+U0VOU09SX0FUVFJfU1RSRVNTX01PTklUT1JfSElTVE9fVkFMVUU8XC9lbT4gfCBzdHJlc3MgbW9uaXRvciBoaXN0byB2YWx1ZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9TVFJFU1NfTU9OSVRPUl9UVU5FX0lOREVYPFwvZW0+IHwgc3RyZXNzIG1vbml0b3IgdHVuZSBpbmRleCB8XG58IDxlbT5TRU5TT1JfQVRUUl9TVFJFU1NfTU9OSVRPUl9UVU5FX1ZBTFVFPFwvZW0+IHwgc3RyZXNzIG1vbml0b3IgdHVuZSB2YWx1ZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9TVFJFU1NfTU9OSVRPUl9GTFVTSDxcL2VtPiB8IHN0cmVzcyBtb25pdG9yIGZsdXNoIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1NUUkVTU19NT05JVE9SX09QRVJBVElPTjxcL2VtPiB8IHN0cmVzcyBtb25pdG9yIG9wZXJhdGlvbiB8XG58IDxlbT5TRU5TT1JfQVRUUl9TTEVFUF9NT05JVE9SX1NUT1A8XC9lbT4gfCBzbGVlcCBtb25pdG9yIHN0b3AgfFxufCA8ZW0+U0VOU09SX0FUVFJfU0xFRVBfTU9OSVRPUl9GTFVTSDxcL2VtPiB8IHNsZWVwIG1vbml0b3IgZmx1c2ggfFxufCA8ZW0+U0VOU09SX0FUVFJfU0xFRVBfREVURUNUT1JfU1RPUDxcL2VtPiB8IHNsZWVwIGRldGVjdG9yIHN0b3AgfFxufCA8ZW0+U0VOU09SX0FUVFJfU0xFRVBfREVURUNUT1JfU0VUVElORzxcL2VtPiB8IHNsZWVwIGRldGVjdG9yIHNldHRpbmcgfFxufCA8ZW0+U0VOU09SX0FUVFJfREFUQV9KT1VSTkFMX1NUQVJUPFwvZW0+IHwgZGF0YSBqb3VybmFsIHN0YXJ0IHxcbnwgPGVtPlNFTlNPUl9BVFRSX0RBVEFfSk9VUk5BTF9TVE9QPFwvZW0+IHwgZGF0YSBqb3VybmFsIHN0b3AgfFxufCA8ZW0+U0VOU09SX0FUVFJfR1BTX0JBVENIX09QUl9NT0RFPFwvZW0+IHwgR1BTIGJhdGNoIG9wciBtb2RlIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1BQR19CQVRDSF9QT0xMSU5HX0lOVEVSVkFMPFwvZW0+IHwgUFBHIGJhdGNoIHBvbGxpbmcgaW50ZXJ2YWwgfFxufCA8ZW0+U0VOU09SX0FUVFJfUFBHX0JBVENIX0ZMVVNIPFwvZW0+IHwgUFBHIGJhdGNoIGZsdXNoIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1JFR19DVFJMX1RZUEU8XC9lbT4gfCByZWcgY29udHJvbCB0eXBlIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1JFR19DVFJMX0FERFJFU1M8XC9lbT4gfCByZWcgY29udHJvbCBhZGRyZXNzIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1JFR19DVFJMX1ZBTFVFPFwvZW0+IHwgcmVnIGNvbnRyb2wgdmFsdWUgfFxufCA8ZW0+U0VOU09SX0FUVFJfUkVHX0NUUkxfTU9ERTxcL2VtPiB8IHJlZyBjb250cm9sIG1vZGUgfFxufCA8ZW0+U0VOU09SX0FUVFJfR1BTX0NUUkxfU0VUVElORzxcL2VtPiB8IEdQUyBjb250cm9sIHNldHRpbmcgfFxufCA8ZW0+U0VOU09SX0FUVFJfRkFLRV9NT1RJT05fRVZFTlRfSU5URVJWQUw8XC9lbT4gfCBmYWtlIG1vdGlvbiBldmVudCBpbnRlcnZhbCB8XG58IDxlbT5TRU5TT1JfQVRUUl9GQUtFX01PVElPTl9FVkVOVF9DT1VOVDxcL2VtPiB8IGZha2UgbW90aW9uIGV2ZW50IGNvdW50IHxcbnwgPGVtPlNFTlNPUl9BVFRSX0ZBS0VfTU9USU9OX1BBVVNFX0lOVEVSVkFMPFwvZW0+IHwgZmFrZSBtb3Rpb24gcGF1c2UgaW50ZXJ2YWwgfFxufCA8ZW0+U0VOU09SX0FUVFJfR0VPRkVOQ0VfSUQ8XC9lbT4gfCBnZW9mZW5jZSBpZCB8XG58IDxlbT5TRU5TT1JfQVRUUl9HRU9GRU5DRV9MQVQ8XC9lbT4gfCBnZW9mZW5jZSBsYXQgfFxufCA8ZW0+U0VOU09SX0FUVFJfR0VPRkVOQ0VfTE9OPFwvZW0+IHwgZ2VvZmVuY2UgbG9uIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0dFT0ZFTkNFX1JBRElVUzxcL2VtPiB8IGdlb2ZlbmNlIHJhZGl1cyB8XG58IDxlbT5TRU5TT1JfQVRUUl9HRU9GRU5DRV9QUk9WSURFUjxcL2VtPiB8IGdlb2ZlbmNlIHByb3ZpZGVyIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0dFT0ZFTkNFX0FDQ1VSQUNZPFwvZW0+IHwgZ2VvZmVuY2UgYWNjdXJhY3kgfFxufCA8ZW0+U0VOU09SX0FUVFJfR0VPRkVOQ0VfVElNRVNUQU1QPFwvZW0+IHwgZ2VvZmVuY2UgdGltZXN0YW1wIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0dFT0ZFTkNFX0NPTk5FQ1Q8XC9lbT4gfCBnZW9mZW5jZSBjb25uZWN0IHxcbnwgPGVtPlNFTlNPUl9BVFRSX0dFT0ZFTkNFX1NUQVJUPFwvZW0+IHwgZ2VvZmVuY2Ugc3RhcnQgfFxufCA8ZW0+U0VOU09SX0FUVFJfR0VPRkVOQ0VfU1RPUDxcL2VtPiB8IGdlb2ZlbmNlIHN0b3AgfFxufCA8ZW0+U0VOU09SX0FUVFJfR0VPRkVOQ0VfU0VUX0xPQ0FUSU9OPFwvZW0+IHwgZ2VvZmVuY2Ugc2V0IGxvY2F0aW9uIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0dFT0ZFTkNFX0JUX0NPTk5FQ1Q8XC9lbT4gfCBnZW9mZW5jZSBidCBjb25uZWN0IHxcbnwgPGVtPlNFTlNPUl9BVFRSX0ZBTExfREVURUNUSU9OX09QUl9NT0RFPFwvZW0+IHwgZmFsbCBkZXRlY3Rpb24gb3ByIG1vZGUgfFxufCA8ZW0+SEFMX1NFTlNPUl9BVFRSX1BST1hJTUlUWV9TRU5TSVRJVklUWV9MRVZFTDxcL2VtPiB8IGF0dHIgcHJveGltaXR5IHNlbnNpdGl2aXR5IGxldmVsIHxcbnwgPGVtPkhBTF9TRU5TT1JfQVRUUl9MSURBUl9QT1dFUl9TVEFURTxcL2VtPiB8IGF0dHIgbGlkYXIgcG93ZXIgc3RhdGUgfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2dhZDJmMDI3Y2JhOTM2ZTc2ODc4ODUxN2VmNTIwMGY3NjdcIj5zZW5zb3JfYXR0cmlidXRlX2NvbW1vbjxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIGNvbW1vbiBhdHRyaWJ1dGVzIG9mIHNlbnNvci48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRU5TT1IgMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+U0VOU09SX0FUVFJfQ09NTU9OX1NUQVJUPFwvZW0+IHwgU3RhcnQgb2YgZW51bSB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5TRU5TT1JfQVRUUl9QT1dFUl9TVEFURTxcL2VtPiB8IFBvd2VyIHN0YXRlIHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNnYWQyM2ZhNjFkOTFkNzZjNDUxZDU4ZjM4NjM3NWE2N2I0XCI+c2Vuc29yX2RldmljZV90eXBlPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbnVtZXJhdGlvbiBvZiBzZW5zb3IgdHlwZXMgZm9yIGNvbnRyb2xsaW5nIHRoZSBzZW5zb3JzLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFTlNPUiAxLjA8XC9wPlxuPHA+QmFzZSB1bml0PFwvcD5cbjx1bD5cbjxsaT5hY2NlbGVyYXRpb24gdmFsdWVzIDogbWV0ZXIgcGVyIHNlY29uZF4yIChtXC9zXjIpPFwvbGk+XG48bGk+bWFnbmV0aWMgdmFsdWVzIDogbWljcm8tVGVzbGEgKHVUKTxcL2xpPlxuPGxpPm9yaWVudGF0aW9uIHZhbHVlcyA6IGRlZ3JlZXM8XC9saT5cbjxsaT5neXJvc2NvcGUgdmFsdWVzIDogZGVncmVlXC9zPFwvbGk+XG48bGk+dGVtcGVyYXR1cmUgdmFsdWVzIDogZGVncmVlcyBjZW50aWdyYWRlPFwvbGk+XG48bGk+cHJveGltaXR5IHZhbHVlcyA6IGRpc3RhbmNlPFwvbGk+XG48bGk+bGlnaHQgdmFsdWVzIDogbHV4PFwvbGk+XG48bGk+cHJlc3N1cmUgdmFsdWVzIDogaGVjdG9wYXNjYWwgKGhQYSk8XC9saT5cbjxsaT5odW1pZGl0eSA6IHJlbGF0aXZlIGh1bWlkaXR5ICglKTxcL2xpPlxuPFwvdWw+XG48cD48c3Ryb25nPkVudW1lcmF0b3I6PFwvc3Ryb25nPlxuOiAgIHwgPGVtPlNFTlNPUl9ERVZJQ0VfVU5LTk9XTjxcL2VtPiB8IHVua25vd24gfFxufCAtLS0gfCAtLS0gfFxufCA8ZW0+U0VOU09SX0RFVklDRV9BTEw8XC9lbT4gfCBhbGwgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9BQ0NFTEVST01FVEVSPFwvZW0+IHwgYWNjZWxlcm9tZXRlciB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0dSQVZJVFk8XC9lbT4gfCBncmF2aXR5IHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfTElORUFSX0FDQ0VMRVJBVElPTjxcL2VtPiB8IGxpbmVhciBhY2NlbGVyYXRpb24gfFxufCA8ZW0+U0VOU09SX0RFVklDRV9HRU9NQUdORVRJQzxcL2VtPiB8IGdlb21hZ25ldGljIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfUk9UQVRJT05fVkVDVE9SPFwvZW0+IHwgcm90YXRpb24gdmVjdG9yIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfT1JJRU5UQVRJT048XC9lbT4gfCBvcmllbnRhdGlvbiB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0dZUk9TQ09QRTxcL2VtPiB8IGd5cm9zY29wZSB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0xJR0hUPFwvZW0+IHwgbGlnaHQgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9QUk9YSU1JVFk8XC9lbT4gfCBwcm94aW1pdHkgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9QUkVTU1VSRTxcL2VtPiB8IHByZXNzdXJlIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfVUxUUkFWSU9MRVQ8XC9lbT4gfCB1bHRyYXZpb2xldCB8XG58IDxlbT5TRU5TT1JfREVWSUNFX1RFTVBFUkFUVVJFPFwvZW0+IHwgdGVtcGVyYXR1cmUgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9IVU1JRElUWTxcL2VtPiB8IGh1bWlkaXR5IHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfSFJNPFwvZW0+IHwgSFJNIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfSFJNX0xFRF9HUkVFTjxcL2VtPiB8IEhSTSBsZWQgZ3JlZW4gfFxufCA8ZW0+U0VOU09SX0RFVklDRV9IUk1fTEVEX0lSPFwvZW0+IHwgSFJNIGxlZCBpciB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0hSTV9MRURfUkVEPFwvZW0+IHwgSFJNIGxlZCByZWQgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9HWVJPU0NPUEVfVU5DQUw8XC9lbT4gfCBneXJvc2NvcGUgdW5jYWxpYnJhdGVkIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfR0VPTUFHTkVUSUNfVU5DQUw8XC9lbT4gfCBnZW9tYWduZXRpYyB1bmNhbGlicmF0ZWQgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9HWVJPU0NPUEVfUlY8XC9lbT4gfCBneXJvc2NvcGUgUlYgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9HRU9NQUdORVRJQ19SVjxcL2VtPiB8IGdlb21hZ25ldGljIFJWIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfU0lHTklGSUNBTlRfTU9USU9OPFwvZW0+IHwgc2lnbmlmaWNhbnQgbW90aW9uIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfSFJNX0JBVENIPFwvZW0+IHwgSFJNIGJhdGNoIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfSFJNX0xFRF9HUkVFTl9CQVRDSDxcL2VtPiB8IEhSTSBsZWQgZ3JlZW4gYmF0Y2ggfFxufCA8ZW0+U0VOU09SX0RFVklDRV9IVU1BTl9QRURPTUVURVI8XC9lbT4gfCBodW1hbiBwZWRvbWV0ZXIgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9IVU1BTl9TTEVFUF9NT05JVE9SPFwvZW0+IHwgaHVtYW4gc2xlZXAgbW9uaXRvciB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0hVTUFOX1NMRUVQX0RFVEVDVE9SPFwvZW0+IHwgaHVtYW4gc2xlZXAgZGV0ZWN0b3IgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9IVU1BTl9TVFJFU1NfTU9OSVRPUjxcL2VtPiB8IGh1bWFuIHN0cmVzcyBtb25pdG9yIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfTElEQVI8XC9lbT4gfCBsaWRhciB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0VYRVJDSVNFX1dBTEtJTkc8XC9lbT4gfCBleGVyY2lzZSB3YWxraW5nIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfRVhFUkNJU0VfUlVOTklORzxcL2VtPiB8IGV4ZXJjaXNlIHJ1bm5pbmcgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9FWEVSQ0lTRV9ISUtJTkc8XC9lbT4gfCBleGVyY2lzZSBoaWtpbmcgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9FWEVSQ0lTRV9DWUNMSU5HPFwvZW0+IHwgZXhlcmNpc2UgY3ljbGluZyB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0VYRVJDSVNFX0VMTElQVElDQUw8XC9lbT4gfCBleGVyY2lzZSBlbGxpcHRpY2FsIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfRVhFUkNJU0VfSU5ET09SX0NZQ0xJTkc8XC9lbT4gfCBleGVyY2lzZSBpbmRvb3IgY3ljbGluZyB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0VYRVJDSVNFX1JPV0lORzxcL2VtPiB8IGV4ZXJjaXNlIHJvd2luZyB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0VYRVJDSVNFX1NURVBQRVI8XC9lbT4gfCBleGVyY2lzZSBzdGVwcGVyIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfREFUQV9KT1VSTkFMPFwvZW0+IHwgZGF0YSBqb3VybmFsIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfTU9USU9OX1NFTlNPUjxcL2VtPiB8IG1vdGlvbiBzZW5zb3IgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9GQUtFPFwvZW0+IHwgZmFrZSB8XG58IDxlbT5TRU5TT1JfREVWSUNFX1RBUF9TRU5TT1I8XC9lbT4gfCB0YXAgc2Vuc29yIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfQ09MT1JfU0VOU09SPFwvZW0+IHwgY29sb3Igc2Vuc29yIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfV0lGSV9NT1RJT05fREVURUNUT1I8XC9lbT4gfCB3aWZpIG1vdGlvbiBkZXRlY3RvciB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0ZVU0lPTjxcL2VtPiB8IGZ1c2lvbiB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0FVVE9fUk9UQVRJT048XC9lbT4gfCBhdXRvIHJvdGF0aW9uIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfQVVUT19CUklHSFRORVNTPFwvZW0+IHwgYXV0byBicmlnaHRuZXNzIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfTVlPVEVTVDxcL2VtPiB8IG15b3Rlc3QgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9HRVNUVVJFX01PVkVNRU5UPFwvZW0+IHwgZ2VzdHVyZSBtb3ZlbWVudCB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0dFU1RVUkVfV1JJU1RfVVA8XC9lbT4gfCBnZXN0dXJlIHdyaXN0IHVwIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfR0VTVFVSRV9XUklTVF9ET1dOPFwvZW0+IHwgZ2VzdHVyZSB3cmlzdCBkb3duIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfR0VTVFVSRV9NT1ZFTUVOVF9TVEFURTxcL2VtPiB8IGdlc3R1cmUgbW92ZW1lbnQgc3RhdGUgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9HRVNUVVJFX1BJQ0tfVVA8XC9lbT4gfCBnZXN0dXJlIHBpY2sgdXAgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9HRVNUVVJFX0ZBQ0VfRE9XTjxcL2VtPiB8IGdlc3R1cmUgZmFjZSBkb3duIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfQUNUSVZJVFlfVFJBQ0tFUjxcL2VtPiB8IGFjdGl2aXR5IHRyYWNrZXIgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9BQ1RJVklUWV9MRVZFTF9NT05JVE9SPFwvZW0+IHwgYWN0aXZpdHkgbGV2ZWwgbW9uaXRvciB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0dQU19CQVRDSDxcL2VtPiB8IEdQUyBiYXRjaCB8XG58IDxlbT5TRU5TT1JfREVWSUNFX1BQR19CQVRDSDxcL2VtPiB8IFBQRyBiYXRjaCB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0dQU19USU1FU1lOQzxcL2VtPiB8IEdQUyB0aW1lc3luYyB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0hSTV9DVFJMPFwvZW0+IHwgSFJNIGNvbnRyb2wgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9SRUdfQ1RSTDxcL2VtPiB8IHJlZyBjb250cm9sIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfR1BTX0NUUkw8XC9lbT4gfCBHUFMgY29udHJvbCB8XG58IDxlbT5TRU5TT1JfREVWSUNFX1dFQVJfU1RBVFVTPFwvZW0+IHwgd2VhciBzdGF0dXMgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9XRUFSX09OX01PTklUT1I8XC9lbT4gfCB3ZWFyIG9uIG1vbml0b3IgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9OT19NT1ZFX0RFVEVDVE9SPFwvZW0+IHwgbm8gbW92ZSBkZXRlY3RvciB8XG58IDxlbT5TRU5TT1JfREVWSUNFX1JFU1RJTkdfSFI8XC9lbT4gfCByZXN0aW5nIEhSIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfU1RFUF9MRVZFTF9NT05JVE9SPFwvZW0+IHwgc3RlcCBsZXZlbCBtb25pdG9yIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfRVhFUkNJU0VfU1RBTkRBTE9ORTxcL2VtPiB8IGV4ZXJjaXNlIHN0YW5kYWxvbmUgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9FWEVSQ0lTRV9IUjxcL2VtPiB8IGV4ZXJjaXNlIEhSIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfV09SS09VVDxcL2VtPiB8IHdvcmtvdXQgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9DWUNMRV9NT05JVE9SPFwvZW0+IHwgY3ljbGUgbW9uaXRvciB8XG58IDxlbT5TRU5TT1JfREVWSUNFX1NUQUlSX1RSQUNLRVI8XC9lbT4gfCBzdGFpciB0cmFja2VyIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfUFJFU1NVUkVfSU5ESUNBVE9SPFwvZW0+IHwgcHJlc3N1cmUgaW5kaWNhdG9yIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfUFJFU1NVUkVfQUxFUlQ8XC9lbT4gfCBwcmVzc3VyZSBhbGVydCB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0hSX0NBTE9SSUU8XC9lbT4gfCBIUiBjYWxvcmllIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfU1dJTU1JTkdfVFJBQ0tFUjxcL2VtPiB8IHN3aW1taW5nIHRyYWNrZXIgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9TVFJFU1NfVFJBQ0tFUjxcL2VtPiB8IHN0cmVzcyB0cmFja2VyIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfRkFLRV9NT1RJT048XC9lbT4gfCBmYWtlIG1vdGlvbiB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0dFT0ZFTkNFPFwvZW0+IHwgZ2VvZmVuY2UgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9TV0lNTUlOR19PVVRET09SPFwvZW0+IHwgc3dpbW1pbmcgb3V0ZG9vciB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0FVVE9fU1dJTU1JTkc8XC9lbT4gfCBhdXRvIHN3aW1taW5nIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfSU5BQ1RJVklUWV9ERVRFQ1RPUjxcL2VtPiB8IGluYWN0aXZpdHkgZGV0ZWN0b3IgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9IUk1fQlA8XC9lbT4gfCBIUk0gQlAgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9FQ0c8XC9lbT4gfCBFQ0cgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9GQUxMX0RFVEVDVElPTjxcL2VtPiB8IGZhbGwgZGV0ZWN0aW9uIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfQ09OVEVYVDxcL2VtPiB8IGNvbnRleHQgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9NT1RJT048XC9lbT4gfCBtb3Rpb24gfFxufCA8ZW0+U0VOU09SX0RFVklDRV9QSVI8XC9lbT4gfCBQSVIgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9QSVJfTE9ORzxcL2VtPiB8IFBJUiBsb25nIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfRFVTVDxcL2VtPiB8IGR1c3QgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9USEVSTU9NRVRFUjxcL2VtPiB8IHRoZXJtb21ldGVyIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfUEVET01FVEVSPFwvZW0+IHwgcGVkb21ldGVyIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfRkxBVDxcL2VtPiB8IGZsYXQgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9IUk1fUkFXPFwvZW0+IHwgSFJNIHJhdyB8XG58IDxlbT5TRU5TT1JfREVWSUNFX1RJTFQ8XC9lbT4gfCB0aWx0IHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfUk9UQVRJT05fVkVDVE9SX1JBVzxcL2VtPiB8IHJvdGF0aW9uIHZlY3RvciByYXcgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9HU1I8XC9lbT4gfCBHU1IgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9TSU1TRU5TRTxcL2VtPiB8IHNpbXNlbnNlIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfUFBHPFwvZW0+IHwgUFBHIHw8XC9wPlxuPGhyIFwvPlxuPHA+RXhjZXB0IGFzIG5vdGVkLCB0aGlzIGNvbnRlbnQgLSBleGNsdWRpbmcgdGhlIENvZGUgRXhhbXBsZXMgLSBpcyBsaWNlbnNlZCB1bmRlciA8YSBocmVmPVwiaHR0cDpcL1wvY3JlYXRpdmVjb21tb25zLm9yZ1wvbGljZW5zZXNcL2J5XC8zLjBcL2xlZ2FsY29kZVwiPkNyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24gMy4wPFwvYT5cbmFuZCBhbGwgb2YgdGhlIENvZGUgRXhhbXBsZXMgY29udGFpbmVkIGhlcmVpbiBhcmUgbGljZW5zZWQgdW5kZXIgPGEgaHJlZj1cImh0dHBzOlwvXC93d3cudGl6ZW4ub3JnXC9ic2QtMy1jbGF1c2UtbGljZW5zZVwiPkJTRC0zLUNsYXVzZTxcL2E+LjxiciBcLz5cbkZvciBkZXRhaWxzLCBzZWUgdGhlIDxhIGhyZWY9XCJodHRwczpcL1wvd3d3LnRpemVuLm9yZ1wvY29udGVudC1saWNlbnNlXCI+Q29udGVudCBMaWNlbnNlPFwvYT4uPFwvcD5cbiIsInRhYmxlX29mX2NvbnRlbnQiOiI8dWwgY2xhc3M9XCJ0YWJsZS1vZi1jb250ZW50c1wiPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1yZXF1aXJlZC1oZWFkZXJcIj5SZXF1aXJlZCBIZWFkZXI8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1vdmVydmlld1wiPk92ZXJ2aWV3PFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZGF0YS1zdHJ1Y3R1cmUtZG9jdW1lbnRhdGlvblwiPkRhdGEgU3RydWN0dXJlIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uXCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMVwiPkZpZWxkIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTJcIj5GaWVsZCBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0zXCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tNFwiPkZpZWxkIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTVcIj5GaWVsZCBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi02XCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWRlZmluZS1kb2N1bWVudGF0aW9uXCI+RGVmaW5lIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC10eXBlZGVmLWRvY3VtZW50YXRpb25cIj5UeXBlZGVmIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1lbnVtZXJhdGlvbi10eXBlLWRvY3VtZW50YXRpb25cIj5FbnVtZXJhdGlvbiBUeXBlIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPFwvdWw+XG4iLCJ0aXRsZSI6IlRpemVuIEhBTCBBUEk6IFNlbnNvciIsInJhdyI6bnVsbH0seyJjbGFzcyI6IkFwcFxcU2VydmljZXNcXERvY3VtZW50YXRpb25cXERhdGFcXFJlbmRlcmVkTWFya2Rvd24iLCJzIjoid3JibCJ9XX0seyJzIjoiYXJyIn1dfSwibWVtbyI6eyJpZCI6IkZIZE1PNWhhTXQ5d05pWTRMcGVxIiwibmFtZSI6Il9fbW91bnRQYXJhbXNDb250YWluZXIiLCJwYXRoIjoiZG9jc1wvcGxhdGZvcm1cL2hhbFwvYXBpXC8xLjAuMFwvZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRSIsIm1ldGhvZCI6IkdFVCIsInJlbGVhc2UiOiJhLWEtYSJ9LCJjaGVja3N1bSI6IjRlZGNmYjJlOTAyMTJhYzU4Nzc0ZGEzZWViNzcyZDgyNzEwZjBmMzE2NmFlODY4NzZjMmQ4MDVjOTViOGNmOTQifQ==')" >
Content License<\/a>.<\/p>\n","table_of_content":"<ul class=\"table-of-contents\">\n<li><a href=https://samsungtizenos.com/"#content-required-header\">Required Header<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-overview\">Overview<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-data-structure-documentation\">Data Structure Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-1\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-2\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-3\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-4\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-5\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-6\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-define-documentation\">Define Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-typedef-documentation\">Typedef Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-enumeration-type-documentation\">Enumeration Type Documentation<\/a><\/li>\n<\/ul>\n","title":"Tizen HAL API: Sensor","raw":null},{"class":"App\\Services\\Documentation\\Data\\RenderedMarkdown","s":"wrbl"}]},"memo":{"id":"4f8V8G8gW16O0mO7thGb","name":"documentation::article","path":"docs\/platform\/hal\/api\/1.0.0\/group__HALAPI__HAL__SENSOR__MODULE","method":"GET","release":"a-a-a","children":[],"scripts":[],"assets":[],"lazyLoaded":false,"lazyIsolated":true,"errors":[],"locale":"en","islands":[]},"checksum":"607aac72a821a23a0dd7c8b72a12adaa5802e619940c7405cba3fdd0eab944b8"}" wire:effects="[]" wire:id="4f8V8G8gW16O0mO7thGb" wire:name="documentation::article" x-init="$wire.__lazyLoad('eyJkYXRhIjp7ImZvck1vdW50IjpbeyJtYXJrZG93biI6W3siYm9keSI6IjxoMSBpZD1cImNvbnRlbnQtdGl6ZW4taGFsLWFwaS1zZW5zb3JcIj48YSBocmVmPVwiI2NvbnRlbnQtdGl6ZW4taGFsLWFwaS1zZW5zb3JcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlRpemVuIEhBTCBBUEk6IFNlbnNvcjxcL2gxPjxkaXYgZGF0YS1rbm93bGVkZ2UtYmFzZS1tZXRhZGF0YT48XC9kaXY+XG48aHIgXC8+XG48cD5UaGUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWRcIj5TZW5zb3I8XC9hPiBwcm92aWRlcyBmdW5jdGlvbnMgZm9yIGdldHRpbmdcL3B1dHRpbmcgYmFja2VuZCBhbmQgY3JlYXRpbmcgc2Vuc29yIGRldmljZXMuPFwvcD5cbjxoMiBpZD1cImNvbnRlbnQtcmVxdWlyZWQtaGVhZGVyXCI+PGEgaHJlZj1cIiNjb250ZW50LXJlcXVpcmVkLWhlYWRlclwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+UmVxdWlyZWQgSGVhZGVyPFwvaDI+XG48cD4jaW5jbHVkZSAmbHQ7aGFsLXNlbnNvci5oJmd0OzxcL3A+XG48aDIgaWQ9XCJjb250ZW50LW92ZXJ2aWV3XCI+PGEgaHJlZj1cIiNjb250ZW50LW92ZXJ2aWV3XCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5PdmVydmlldzxcL2gyPlxuPHA+VGhlIFNlbnNvciBwcm92aWRlcyBmdW5jdGlvbnMgdG8gZ2V0XC9wdXQgYmFja2VuZC48XC9wPlxuPHVsPlxuPGxpPmludCBoYWxfc2Vuc29yX2dldF9iYWNrZW5kKHZvaWQpOzxcL2xpPlxuPGxpPmludCBoYWxfc2Vuc29yX3B1dF9iYWNrZW5kKHZvaWQpOzxcL2xpPlxuPFwvdWw+XG48cD5UaGUgU2Vuc29yIHByb3ZpZGVzIGNyZWF0aW5nIGFuZCBkZWxldGluZyBmdW5jdGlvbnMuPFwvcD5cbjx1bD5cbjxsaT5pbnQgaGFsX3NlbnNvcl9jcmVhdGUodWludDY0X3QgKipzZW5zb3JfZGV2aWNlX2lkcywgc2l6ZV90ICpzZW5zb3JfZGV2aWNlX2lkc19sZW4pOzxcL2xpPlxuPGxpPmludCBoYWxfc2Vuc29yX2RlbGV0ZSh1aW50NjRfdCAqc2Vuc29yX2RldmljZV9pZHMsIHNpemVfdCBzZW5zb3JfZGV2aWNlX2lkc19sZW4pOzxcL2xpPlxuPFwvdWw+XG48cD5Gb3IgdGhlIHNlbnNvcnMgY3JlYXRlZCBieSBoYWxfc2Vuc29yX2NyZWF0ZSwgU2Vuc29yIHByb3ZpZGVzIG9wZXJhdGlvbnMuPFwvcD5cbjxwPkZ1bmN0aW9ucyB0byBnZXQgcG9sbCBmZCBhbmQgc2Vuc29yczo8XC9wPlxuPHVsPlxuPGxpPmludCBoYWxfc2Vuc29yX2dldF9wb2xsX2ZkKHVpbnQ2NF90IHNlbnNvcl9kZXZpY2VfaWQsIGludCAqcG9sbF9mZCk7PFwvbGk+XG48bGk+aW50IGhhbF9zZW5zb3JfZ2V0X3NlbnNvcnModWludDY0X3Qgc2Vuc29yX2RldmljZV9pZCwgY29uc3Qgc2Vuc29yX2luZm9fdCAqKnNlbnNvcnMsIHNpemVfdCAqc2Vuc29yc19sZW4pOzxcL2xpPlxuPFwvdWw+XG48cD5GdW5jdGlvbnMgdG8gbWFuaXB1bGF0ZSB0aGUgYmVoYXZpb3Igb2Ygc2Vuc29yczo8XC9wPlxuPHVsPlxuPGxpPmludCBoYWxfc2Vuc29yX2VuYWJsZSh1aW50NjRfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCk7PFwvbGk+XG48bGk+aW50IGhhbF9zZW5zb3JfZGlzYWJsZSh1aW50NjRfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCk7PFwvbGk+XG48bGk+aW50IGhhbF9zZW5zb3JfcmVhZF9mZCh1aW50NjRfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCAqKmlkcywgc2l6ZV90ICppZHNfbGVuKTs8XC9saT5cbjxsaT5pbnQgaGFsX3NlbnNvcl9nZXRfZGF0YSh1aW50NjRfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCwgc2Vuc29yX2RhdGFfdCAqKmRhdGEsIHNpemVfdCAqbGVuZ3RoKTs8XC9saT5cbjxsaT5pbnQgaGFsX3NlbnNvcl9zZXRfaW50ZXJ2YWwodWludDY0X3Qgc2Vuc29yX2RldmljZV9pZCwgdWludDMyX3QgaWQsIHVuc2lnbmVkIGxvbmcgdmFsKTs8XC9saT5cbjxsaT5pbnQgaGFsX3NlbnNvcl9zZXRfYmF0Y2hfbGF0ZW5jeSh1aW50NjRfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCwgdW5zaWduZWQgbG9uZyB2YWwpOzxcL2xpPlxuPFwvdWw+XG48cD5GdW5jdGlvbnMgdG8gZ2V0XC9zZXQgYXR0cmlidXRlcyBvZiBzZW5zb3JzOjxcL3A+XG48dWw+XG48bGk+aW50IGhhbF9zZW5zb3Jfc2V0X2F0dHJpYnV0ZV9pbnQodWludDY0X3Qgc2Vuc29yX2RldmljZV9pZCwgdWludDMyX3QgaWQsIGludDMyX3QgYXR0cmlidXRlLCBpbnQzMl90IHZhbHVlKTs8XC9saT5cbjxsaT5pbnQgaGFsX3NlbnNvcl9zZXRfYXR0cmlidXRlX3N0cih1aW50NjRfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCwgaW50MzJfdCBhdHRyaWJ1dGUsIGNvbnN0IGNoYXIgKnZhbHVlLCBzaXplX3QgbGVuKTs8XC9saT5cbjxsaT5pbnQgaGFsX3NlbnNvcl9nZXRfYXR0cmlidXRlX2ludCh1aW50NjRfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCwgaW50MzJfdCBhdHRyaWJ1dGUsIGludDMyX3QgKnZhbHVlKTs8XC9saT5cbjxsaT5pbnQgaGFsX3NlbnNvcl9nZXRfYXR0cmlidXRlX3N0cih1aW50NjRfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCwgaW50MzJfdCBhdHRyaWJ1dGUsIGNoYXIgKip2YWx1ZSwgc2l6ZV90ICpsZW4pOzxcL2xpPlxuPFwvdWw+XG48cD5GdW5jdGlvbiB0byBmbHVzaCBzZW5zb3IgZGF0YTo8XC9wPlxuPHVsPlxuPGxpPmludCBoYWxfc2Vuc29yX2ZsdXNoKHVpbnQ2NF90IHNlbnNvcl9kZXZpY2VfaWQsIHVpbnQzMl90IGlkKTs8XC9saT5cbjxcL3VsPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+VHlwZWRlZnM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+dHlwZWRlZiBzdHJ1Y3QgICA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNzdHJ1Y3RfX2hhbF9fYmFja2VuZF9fc2Vuc29yX19mdW5jc1wiPl9oYWxfYmFja2VuZF9zZW5zb3JfZnVuY3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2dhYjE0OWExNWFhZWRmZjAzZjU4Zjg3MGYzOWYyNTQ1NDlcIj5oYWxfYmFja2VuZF9zZW5zb3JfZnVuY3M8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+U3RydWN0dXJlIGZvciBzZW5zb3IgZnVuY3Rpb25zLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiBzdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjc3RydWN0c2Vuc29yX19pbmZvX190XCI+c2Vuc29yX2luZm9fdDxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjZ2FjZDdmN2I3OWYzNDA0YTY4ODEyNTM5ZjA5NWIxNTcyYlwiPnNlbnNvcl9pbmZvX3Q8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+U3RydWN0dXJlIGZvciBzZW5zb3IgaW5mb3JtYXRpb24gZGF0YS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgc3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI3N0cnVjdHNlbnNvcl9fZGF0YV9fdFwiPnNlbnNvcl9kYXRhX3Q8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2dhYzU0NDA2OGExZTY4NDRmZDBiYmQxMzUzODI2NWE4MDVcIj5zZW5zb3JfZGF0YV90PFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPlN0cnVjdHVyZSBmb3Igc2Vuc29yIGRhdGEuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNzdHJ1Y3RzZW5zb3JodWJfX2RhdGFfX3RcIj5zZW5zb3JodWJfZGF0YV90PFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNnYWUzYTk5YmZhYzQyNWI2YWU5ZTQ3ZGI0MjFiNDVjMmM1XCI+c2Vuc29yaHViX2RhdGFfdDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5TdHJ1Y3R1cmUgb2Ygc2Vuc29yaHViIGRhdGEuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5EZWZpbmVzPFwvdGQ+XG48dGQ+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjZ2E1NmUxODdlMTA5YWQzNTVjZGQ2MjJiNDQyMTk2ZWRiM1wiPlNFTlNPUl9EQVRBX1ZBTFVFX1NJWkU8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMDE2PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIG9mIHNlbnNvciBkYXRhIHZhbHVlIHNpemUuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD4jZGVmaW5lPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjZ2FmZjM5Mzk3MDgyYzk2YzYzNDA5YWNjYzc2NTE2NDMwZVwiPlNFTlNPUkhVQl9EQVRBX1ZBTFVFX1NJWkU8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMDQwOTY8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkRlZmluaXRpb24gb2Ygc2Vuc29yaHViIGRhdGEgdmFsdWUgc2l6ZS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPiNkZWZpbmU8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNnYTQ3OGQyMTExMjkxN2MyMWMyY2EzNWM1Y2MzMjVlYWU2XCI+U0VOU09SX1BFRE9NRVRFUl9EQVRBX0RJRkZTX1NJWkU8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMDIwPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5EZWZpbml0aW9uIG9mIHBlZG9tZXRlciBkYXRhIGRpZmZlcmVuY2UgYXJyYXkgc2l6ZS48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDIgaWQ9XCJjb250ZW50LWRhdGEtc3RydWN0dXJlLWRvY3VtZW50YXRpb25cIj48YSBocmVmPVwiI2NvbnRlbnQtZGF0YS1zdHJ1Y3R1cmUtZG9jdW1lbnRhdGlvblwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RGF0YSBTdHJ1Y3R1cmUgRG9jdW1lbnRhdGlvbjxcL2gyPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IHNlbnNvcl9kZXZpY2VfczxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3Igc2Vuc29yIGRldmljZSBmdW5jdGlvbnMuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfU0VOU09SIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2E5NzMxNTk4NDVkODhjMTVjMTkwNzZiMGFiMzI2OGNmM1wiPmdldF9wb2xsX2ZkPFwvYT4gKSh1aW50MzJfdCBzZW5zb3JfZGV2aWNlX2lkLCBpbnQgKnBvbGxfZmQpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2EyMTQxMDBlMTdmODEwNmQ2OWM2NzNhYjEyNjQxZTJjMVwiPmdldF9zZW5zb3JzPFwvYT4gKSh1aW50MzJfdCBzZW5zb3JfZGV2aWNlX2lkLCBjb25zdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNzdHJ1Y3RzZW5zb3JfX2luZm9fX3RcIj5zZW5zb3JfaW5mb190PFwvYT4gKipzZW5zb3JzLCBzaXplX3QgKnNlbnNvcnNfbGVuKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhOTA1MjEwZmQ0MTdmMDg4OTRiYTFlZGNmMWIwNTI3N2RcIj5lbmFibGU8XC9hPiApKHVpbnQzMl90IHNlbnNvcl9kZXZpY2VfaWQsIHVpbnQzMl90IGlkKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhYzkzMzYyODJkZDUzYjk0NTJiNTM0NDgxYTliN2VjYzhcIj5kaXNhYmxlPFwvYT4gKSh1aW50MzJfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTFjOGQyN2E0NGQ4YjNjNDRjMjU5MmI0ZDNlZjg3NmYxXCI+cmVhZF9mZDxcL2E+ICkodWludDMyX3Qgc2Vuc29yX2RldmljZV9pZCwgdWludDMyX3QgKippZHMsIHNpemVfdCAqaWRzX2xlbik8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTQxNmVkMmMxMmViODM0NWRjYWQzYThkNWMzYWYyY2IwXCI+Z2V0X2RhdGE8XC9hPiApKHVpbnQzMl90IHNlbnNvcl9kZXZpY2VfaWQsIHVpbnQzMl90IGlkLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNzdHJ1Y3RzZW5zb3JfX2RhdGFfX3RcIj5zZW5zb3JfZGF0YV90PFwvYT4gKipkYXRhLCBzaXplX3QgKmxlbmd0aCk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWEyNWUzODk3MmQ3MmYzMTNiOTMyNjVlZTYxOTFhNGJiXCI+c2V0X2ludGVydmFsPFwvYT4gKSh1aW50MzJfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCwgdW5zaWduZWQgbG9uZyB2YWwpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FhODViMDQ0MDU0NjgwMDE1Y2VlM2Y1ZjE4Zjg5YzUxNVwiPnNldF9iYXRjaF9sYXRlbmN5PFwvYT4gKSh1aW50MzJfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCwgdW5zaWduZWQgbG9uZyB2YWwpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FhNTJiMTExMWIzZGQ5NzI1MGIxMTZjYjk3NTlmMDA0M1wiPnNldF9hdHRyaWJ1dGVfaW50PFwvYT4gKSh1aW50MzJfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCwgaW50MzJfdCBhdHRyaWJ1dGUsIGludDMyX3QgdmFsdWUpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2ExNDBiMGRjNDUyYzQ2Zjc0MTM0ZGQyNTVkYTM5MTU0Y1wiPnNldF9hdHRyaWJ1dGVfc3RyPFwvYT4gKSh1aW50MzJfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCwgaW50MzJfdCBhdHRyaWJ1dGUsIGNvbnN0IGNoYXIgKnZhbHVlLCBzaXplX3QgbGVuKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhYTEwOGY3MWFkM2UyZjY0ODUwMWM1MGNlM2Y5MzJiNjJcIj5nZXRfYXR0cmlidXRlX2ludDxcL2E+ICkodWludDMyX3Qgc2Vuc29yX2RldmljZV9pZCwgdWludDMyX3QgaWQsIGludDMyX3QgYXR0cmlidXRlLCBpbnQzMl90ICp2YWx1ZSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWIxNmI2YjYxYTI5ZjAxYTMwN2U2ZTA1OTViMjczNWM3XCI+Z2V0X2F0dHJpYnV0ZV9zdHI8XC9hPiApKHVpbnQzMl90IHNlbnNvcl9kZXZpY2VfaWQsIHVpbnQzMl90IGlkLCBpbnQzMl90IGF0dHJpYnV0ZSwgY2hhciAqKnZhbHVlLCBzaXplX3QgKmxlbik8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWYzY2RlZjM4ZTc5ODMwOWUyMjdmMTNjMTZhZjgwOWNjXCI+Zmx1c2g8XC9hPiApKHVpbnQzMl90IHNlbnNvcl9kZXZpY2VfaWQsIHVpbnQzMl90IGlkKTxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvblwiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhYzkzMzYyODJkZDUzYjk0NTJiNTM0NDgxYTliN2VjYzhcIj5zZW5zb3JfZGV2aWNlX3M6OmRpc2FibGU8XC9hPikodWludDMyX3Qgc2Vuc29yX2RldmljZV9pZCwgdWludDMyX3QgaWQpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGlzYWJsZSB0aGlzIHNlbnNvcjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhOTA1MjEwZmQ0MTdmMDg4OTRiYTFlZGNmMWIwNTI3N2RcIj5zZW5zb3JfZGV2aWNlX3M6OmVuYWJsZTxcL2E+KSh1aW50MzJfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbmFibGUgdGhpcyBzZW5zb3I8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWYzY2RlZjM4ZTc5ODMwOWUyMjdmMTNjMTZhZjgwOWNjXCI+c2Vuc29yX2RldmljZV9zOjpmbHVzaDxcL2E+KSh1aW50MzJfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5GbHVzaCBzZW5zb3IgZGF0YTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhYTEwOGY3MWFkM2UyZjY0ODUwMWM1MGNlM2Y5MzJiNjJcIj5zZW5zb3JfZGV2aWNlX3M6OmdldF9hdHRyaWJ1dGVfaW50PFwvYT4pKHVpbnQzMl90IHNlbnNvcl9kZXZpY2VfaWQsIHVpbnQzMl90IGlkLCBpbnQzMl90IGF0dHJpYnV0ZSwgaW50MzJfdCAqdmFsdWUpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+R2V0IGludGVnZXIgYXR0cmlidXRlIHZhbHVlPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FiMTZiNmI2MWEyOWYwMWEzMDdlNmUwNTk1YjI3MzVjN1wiPnNlbnNvcl9kZXZpY2Vfczo6Z2V0X2F0dHJpYnV0ZV9zdHI8XC9hPikodWludDMyX3Qgc2Vuc29yX2RldmljZV9pZCwgdWludDMyX3QgaWQsIGludDMyX3QgYXR0cmlidXRlLCBjaGFyICoqdmFsdWUsIHNpemVfdCAqbGVuKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkdldCBzdHJpbmcgYXR0cmlidXRlIHZhbHVlPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2E0MTZlZDJjMTJlYjgzNDVkY2FkM2E4ZDVjM2FmMmNiMFwiPnNlbnNvcl9kZXZpY2Vfczo6Z2V0X2RhdGE8XC9hPikodWludDMyX3Qgc2Vuc29yX2RldmljZV9pZCwgdWludDMyX3QgaWQsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI3N0cnVjdHNlbnNvcl9fZGF0YV9fdFwiPnNlbnNvcl9kYXRhX3Q8XC9hPiAqKmRhdGEsIHNpemVfdCAqbGVuZ3RoKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkdldCBzZW5zb3IgZGF0YTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhOTczMTU5ODQ1ZDg4YzE1YzE5MDc2YjBhYjMyNjhjZjNcIj5zZW5zb3JfZGV2aWNlX3M6OmdldF9wb2xsX2ZkPFwvYT4pKHVpbnQzMl90IHNlbnNvcl9kZXZpY2VfaWQsIGludCAqcG9sbF9mZCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5HZXQgcG9sbCBmZCBmb3IgZXZlbnQgbGlzdGVuaW5nPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2EyMTQxMDBlMTdmODEwNmQ2OWM2NzNhYjEyNjQxZTJjMVwiPnNlbnNvcl9kZXZpY2Vfczo6Z2V0X3NlbnNvcnM8XC9hPikodWludDMyX3Qgc2Vuc29yX2RldmljZV9pZCwgY29uc3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjc3RydWN0c2Vuc29yX19pbmZvX190XCI+c2Vuc29yX2luZm9fdDxcL2E+ICoqc2Vuc29ycywgc2l6ZV90ICpzZW5zb3JzX2xlbik8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5HZXQgc2Vuc29yIGVudGl0aWVzPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2ExYzhkMjdhNDRkOGIzYzQ0YzI1OTJiNGQzZWY4NzZmMVwiPnNlbnNvcl9kZXZpY2Vfczo6cmVhZF9mZDxcL2E+KSh1aW50MzJfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCAqKmlkcywgc2l6ZV90ICppZHNfbGVuKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlJlYWQgc2Vuc29yIGFuZCByZXR1cm4gZXZlbnQgaWRzPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FhNTJiMTExMWIzZGQ5NzI1MGIxMTZjYjk3NTlmMDA0M1wiPnNlbnNvcl9kZXZpY2Vfczo6c2V0X2F0dHJpYnV0ZV9pbnQ8XC9hPikodWludDMyX3Qgc2Vuc29yX2RldmljZV9pZCwgdWludDMyX3QgaWQsIGludDMyX3QgYXR0cmlidXRlLCBpbnQzMl90IHZhbHVlKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNldCBhdHRyaWJ1dGUgYXMgYW4gaW50ZWdlciB2YWx1ZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhMTQwYjBkYzQ1MmM0NmY3NDEzNGRkMjU1ZGEzOTE1NGNcIj5zZW5zb3JfZGV2aWNlX3M6OnNldF9hdHRyaWJ1dGVfc3RyPFwvYT4pKHVpbnQzMl90IHNlbnNvcl9kZXZpY2VfaWQsIHVpbnQzMl90IGlkLCBpbnQzMl90IGF0dHJpYnV0ZSwgY29uc3QgY2hhciAqdmFsdWUsIHNpemVfdCBsZW4pPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U2V0IGF0dHJpYnV0ZSBhcyBhIHN0cmluZyB2YWx1ZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhYTg1YjA0NDA1NDY4MDAxNWNlZTNmNWYxOGY4OWM1MTVcIj5zZW5zb3JfZGV2aWNlX3M6OnNldF9iYXRjaF9sYXRlbmN5PFwvYT4pKHVpbnQzMl90IHNlbnNvcl9kZXZpY2VfaWQsIHVpbnQzMl90IGlkLCB1bnNpZ25lZCBsb25nIHZhbCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TZXQgYmF0Y2ggbGF0ZW5jeTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhYTI1ZTM4OTcyZDcyZjMxM2I5MzI2NWVlNjE5MWE0YmJcIj5zZW5zb3JfZGV2aWNlX3M6OnNldF9pbnRlcnZhbDxcL2E+KSh1aW50MzJfdCBzZW5zb3JfZGV2aWNlX2lkLCB1aW50MzJfdCBpZCwgdW5zaWduZWQgbG9uZyB2YWwpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U2V0IHNlbnNvciB2YWx1ZSBpbnRlcnZhbDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgX2hhbF9iYWNrZW5kX3NlbnNvcl9mdW5jczxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3Igc2Vuc29yIGZ1bmN0aW9ucy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRU5TT1IgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkRhdGEgRmllbGRzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWQ5MmY2MWU5ZWNmZTdhMGVhOGI0M2RmMmMyYWU3MGNmXCI+Y3JlYXRlX3NlbnNvcjxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjc3RydWN0c2Vuc29yX19kZXZpY2VfX3NcIj5zZW5zb3JfZGV2aWNlX3M8XC9hPiAqKipzZW5zb3JfZGV2aWNlcywgc2l6ZV90ICpzZW5zb3JfZGV2aWNlc19sZW4pPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2E0NTcyNDUyNDRmZGVlOWZhNmRmZWVhMjFjOGEyMDVjNlwiPmRlbGV0ZV9zZW5zb3I8XC9hPiApKHVpbnQzMl90ICpzZW5zb3JfZGV2aWNlX2lkcywgc2l6ZV90IHNlbnNvcl9kZXZpY2VfaWRzX2xlbik8XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDQgaWQ9XCJjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMVwiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTFcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkZpZWxkIERvY3VtZW50YXRpb248XC9oND5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FkOTJmNjFlOWVjZmU3YTBlYThiNDNkZjJjMmFlNzBjZlwiPl9oYWxfYmFja2VuZF9zZW5zb3JfZnVuY3M6OmNyZWF0ZV9zZW5zb3I8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjc3RydWN0c2Vuc29yX19kZXZpY2VfX3NcIj5zZW5zb3JfZGV2aWNlX3M8XC9hPiAqKipzZW5zb3JfZGV2aWNlcywgc2l6ZV90ICpzZW5zb3JfZGV2aWNlc19sZW4pPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q3JlYXRlIHNlbnNvciBkZXZpY2VzPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2E0NTcyNDUyNDRmZGVlOWZhNmRmZWVhMjFjOGEyMDVjNlwiPl9oYWxfYmFja2VuZF9zZW5zb3JfZnVuY3M6OmRlbGV0ZV9zZW5zb3I8XC9hPikodWludDMyX3QgKnNlbnNvcl9kZXZpY2VfaWRzLCBzaXplX3Qgc2Vuc29yX2RldmljZV9pZHNfbGVuKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRlbGV0ZSBzZW5zb3JzIHdpdGggdGhlaXIgaWRzPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnN0cnVjdCBzZW5zb3JfaW5mb190PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBzZW5zb3IgaW5mb3JtYXRpb24gZGF0YS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRU5TT1IgMS4wPFwvcD5cbjxwPkEgcGxhdGZvcm0gc2Vuc29yIGhhbmRsZXIgaXMgZ2VuZXJhdGVkIGJhc2VkIG9uIHRoaXMgaGFuZGxlLjxiciBcLz5cblRoZSAnaWQnIGNhbiBiZSBhc3NpZ25lZCBmcm9tIEhBTCBkZXZlbG9wZXIsIHNvIGl0IGhhcyB0byBiZTxiciBcLz5cbnVuaXF1ZSBwZXIgYSBzZW5zb3JfZGV2aWNlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD51aW50MzJfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2EwYWZhOTc0ZTlhZTQ1YzdmYTNhNWMwMjA4Y2FmMWQ4OFwiPmlkPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmNvbnN0IGNoYXIgKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2E0OTFmMjZhNmNmOWY2NTk1NGI0Yjc5NTcxNDAxZWRkM1wiPm5hbWU8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTBlZmQzNTBiNTUyZDlmMzkzMjQ4MzcyYTU4NjIxOWQ0XCI+dHlwZTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD51bnNpZ25lZCBpbnQ8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhZjFkMGI2ODBjZTdiYzYwZjMzNWMzODRhMGE4NGNmYTJcIj5ldmVudF90eXBlPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmNvbnN0IGNoYXIgKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FmYmVhMjU4MGYzZDBjNzQxYWViY2I0MmRmZGJhNDQ3NFwiPm1vZGVsX25hbWU8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+Y29uc3QgY2hhciAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWUwZGYyNGZlMmE4NDFlOWU4NjY3ODlmMTY3ZWEyZGVlXCI+dmVuZG9yPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmZsb2F0PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWFiMzk5Nzg1NmJlZWRhNzNiYjg4Mjg5MzE0NjA2ZGQ2XCI+bWluX3JhbmdlPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmZsb2F0PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWQ0MmY2OTY0OThiNmQ1ZGMwNTc0NmUxZTQ5OWRjNTIwXCI+bWF4X3JhbmdlPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmZsb2F0PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWU3ZmYwYTYxMDNkMjQ4YmIzY2Q3ZDMyMzI0ZjEwYTZhXCI+cmVzb2x1dGlvbjxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQ8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhMmMxMzZiNWM1MWVhYTU1MmUwYTA2ZTYzMDM2YzE3NjNcIj5taW5faW50ZXJ2YWw8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTQzZjEzMDk1ZTU0M2NlOGNkNjE3YTdmMDgzYzYyNjdlXCI+bWF4X2ludGVydmFsPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2EwZjRkZTcxZGFjYzBkOGE4ZjFmNDk1YWFmMjRkMTkyN1wiPm1heF9iYXRjaF9jb3VudDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5ib29sPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWU3MDYwYTNkZTBiNWZiNGFiZWE1Mjc5Mzg3ZmNmNmQ0XCI+d2FrZXVwX3N1cHBvcnRlZDxcL2E+PFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPGhyIFwvPlxuPGg0IGlkPVwiY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTJcIj48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0yXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51bnNpZ25lZCBpbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWYxZDBiNjgwY2U3YmM2MGYzMzVjMzg0YTBhODRjZmEyXCI+c2Vuc29yX2luZm9fdDo6ZXZlbnRfdHlwZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RXZlbnQgdHlwZSBmb3IgSW50ZXJuYWwgQVBJPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2EwYWZhOTc0ZTlhZTQ1YzdmYTNhNWMwMjA4Y2FmMWQ4OFwiPnNlbnNvcl9pbmZvX3Q6OmlkPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TZW5zb3IgaWQ8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2EwZjRkZTcxZGFjYzBkOGE4ZjFmNDk1YWFmMjRkMTkyN1wiPnNlbnNvcl9pbmZvX3Q6Om1heF9iYXRjaF9jb3VudDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+TWluaW11bSBiYXRjaCBjb3VudDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTQzZjEzMDk1ZTU0M2NlOGNkNjE3YTdmMDgzYzYyNjdlXCI+c2Vuc29yX2luZm9fdDo6bWF4X2ludGVydmFsPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5NYXhpbXVtIGludGVydmFsIG9mIHNlbnNvciB2YWx1ZSByZXRyaWV2YWw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZmxvYXQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWQ0MmY2OTY0OThiNmQ1ZGMwNTc0NmUxZTQ5OWRjNTIwXCI+c2Vuc29yX2luZm9fdDo6bWF4X3JhbmdlPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5NYXhpbXVtIHJhbmdlIG9mIHNlbnNvciB2YWx1ZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTJjMTM2YjVjNTFlYWE1NTJlMGEwNmU2MzAzNmMxNzYzXCI+c2Vuc29yX2luZm9fdDo6bWluX2ludGVydmFsPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5NaW5pbXVtIGludGVydmFsIG9mIHNlbnNvciB2YWx1ZSByZXRyaWV2YWw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZmxvYXQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWFiMzk5Nzg1NmJlZWRhNzNiYjg4Mjg5MzE0NjA2ZGQ2XCI+c2Vuc29yX2luZm9fdDo6bWluX3JhbmdlPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5NaW5pbXVtIHJhbmdlIG9mIHNlbnNvciB2YWx1ZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5jb25zdCBjaGFyKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhZmJlYTI1ODBmM2QwYzc0MWFlYmNiNDJkZmRiYTQ0NzRcIj5zZW5zb3JfaW5mb190Ojptb2RlbF9uYW1lPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5Nb2RlbCBuYW1lIG9mIHNlbnNvcjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5jb25zdCBjaGFyKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhNDkxZjI2YTZjZjlmNjU5NTRiNGI3OTU3MTQwMWVkZDNcIj5zZW5zb3JfaW5mb190OjpuYW1lPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TZW5zb3IgbmFtZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5mbG9hdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhZTdmZjBhNjEwM2QyNDhiYjNjZDdkMzIzMjRmMTBhNmFcIj5zZW5zb3JfaW5mb190OjpyZXNvbHV0aW9uPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5SZXNvbHV0aW9uIG9mIHNlbnNvciB2YWx1ZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTBlZmQzNTBiNTUyZDlmMzkzMjQ4MzcyYTU4NjIxOWQ0XCI+c2Vuc29yX2luZm9fdDo6dHlwZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U2Vuc29yIHR5cGUoc2Vuc29yX2RldmljZV90eXBlKTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5jb25zdCBjaGFyKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhZTBkZjI0ZmUyYTg0MWU5ZTg2Njc4OWYxNjdlYTJkZWVcIj5zZW5zb3JfaW5mb190Ojp2ZW5kb3I8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlZlbmRvciBvZiBzZW5zb3I8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+Ym9vbCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhZTcwNjBhM2RlMGI1ZmI0YWJlYTUyNzkzODdmY2Y2ZDRcIj5zZW5zb3JfaW5mb190Ojp3YWtldXBfc3VwcG9ydGVkPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdXBwb3J0IHdha2V1cCBvciBub3Q8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IHNlbnNvcl9kYXRhX3Q8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIHNlbnNvciBkYXRhLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFTlNPUiAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+aW50PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWRiOTk5YzU4OGM3MGU0MjdjMGZkNWJlZGY1MjBmYTljXCI+YWNjdXJhY3k8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dW5zaWduZWQgbG9uZyBsb25nPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWJmZWVkZTBhYjJjYjk3YWZhN2M0YzVmNjVmZTFiYzYyXCI+dGltZXN0YW1wPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2EyOTVhM2QzNzcwZTY1Nzg5OWE4NDI5Zjk5MDRlMzllZFwiPnZhbHVlX2NvdW50PFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmZsb2F0PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWE2NWUwMjhkMWRmMGU5M2MyZGE0NWEzN2IxNzhjOWQ1XCI+dmFsdWVzPFwvYT4gWzE2XTxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0zXCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tM1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FkYjk5OWM1ODhjNzBlNDI3YzBmZDViZWRmNTIwZmE5Y1wiPnNlbnNvcl9kYXRhX3Q6OmFjY3VyYWN5PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5BY2N1cmFjeSBvZiB2YWx1ZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51bnNpZ25lZCBsb25nIGxvbmcgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWJmZWVkZTBhYjJjYjk3YWZhN2M0YzVmNjVmZTFiYzYyXCI+c2Vuc29yX2RhdGFfdDo6dGltZXN0YW1wPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5UaW1lc3RhbXAgb2YgdmFsdWU8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2EyOTVhM2QzNzcwZTY1Nzg5OWE4NDI5Zjk5MDRlMzllZFwiPnNlbnNvcl9kYXRhX3Q6OnZhbHVlX2NvdW50PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5OdW1iZXIgb2YgdmFsdWVzIHByb3ZpZGVkPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmZsb2F0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FhNjVlMDI4ZDFkZjBlOTNjMmRhNDVhMzdiMTc4YzlkNVwiPnNlbnNvcl9kYXRhX3Q6OnZhbHVlczxcL2E+WzE2XTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNlbnNvciB2YWx1ZXMoYXJyYXkpPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnN0cnVjdCBzZW5zb3JodWJfZGF0YV90PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIG9mIHNlbnNvcmh1YiBkYXRhLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFTlNPUiAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+aW50PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTgxZDI2N2Q2YmFmYTY0OGM2NjdjODE2NzkzOTFhNGY1XCI+YWNjdXJhY3k8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dW5zaWduZWQgbG9uZyBsb25nPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWE0MjM2MzFhNDVlMGQ5NDQ0YWFiOWQzZTM0NTcwYzkwXCI+dGltZXN0YW1wPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVuaW9uIHs8XC90ZD5cbjx0ZD48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludFx1MDBhMFx1MDBhMFx1MDBhMDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FiOWM5YThhNmM4NDM4Nzg2MTcxM2U3NWE5OGFiMjI4YVwiPnZhbHVlX2NvdW50PFwvYT48XC90ZD5cbjx0ZD48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludFx1MDBhMFx1MDBhMFx1MDBhMDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FkNmJjZWU5OWEwODQ5MDU3NjJmNjMxNWRiZGU3Y2I5NVwiPmh1Yl9kYXRhX3NpemU8XC9hPjxcL3RkPlxuPHRkPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+fTs8XC90ZD5cbjx0ZD48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPlVuaW9uIG9mIG51bWJlciBvZiB2YWx1ZXMuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD51bmlvbiB7PFwvdGQ+XG48dGQ+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5jaGFyXHUwMGEwXHUwMGEwXHUwMGEwPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTU0MWU3Nzg2N2VkN2Y2MGQwYjI0ZTRiNjQ2OGVlYmZlXCI+dmFsdWVzPFwvYT4gWzQwOTZdPFwvdGQ+XG48dGQ+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5jaGFyXHUwMGEwXHUwMGEwXHUwMGEwPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWQ1M2FmZjY2MjE0NTc1YWI5M2Q4MjM4YzRhYThmZjc2XCI+aHViX2RhdGE8XC9hPiBbNDA5Nl08XC90ZD5cbjx0ZD48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPn07PFwvdGQ+XG48dGQ+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5VbmlvbiBvZiB2YWx1ZXMuPFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPGhyIFwvPlxuPGg0IGlkPVwiY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTRcIj48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi00XCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51bmlvbiB7IC4uLiB9PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VW5pb24gb2YgdmFsdWVzLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFTlNPUiAxLjA8XC9wPlxuPHA+VXNlICZxdW90O3ZhbHVlcyZxdW90OyBpbnN0ZWFkIG9mICZxdW90O2h1Yl9kYXRhJnF1b3Q7KHdpbGwgYmUgcmVtb3ZlZCBzb29uKTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51bmlvbiB7IC4uLiB9PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VW5pb24gb2YgbnVtYmVyIG9mIHZhbHVlcy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRU5TT1IgMS4wPFwvcD5cbjxwPlVzZSAmcXVvdDt2YWx1ZV9jb3VudCZxdW90OyBpbnN0ZWFkIG9mICZxdW90O2h1Yl9kYXRhX3NpemUmcXVvdDsod2lsbCBiZSByZW1vdmVkIHNvb24pPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhODFkMjY3ZDZiYWZhNjQ4YzY2N2M4MTY3OTM5MWE0ZjVcIj5zZW5zb3JodWJfZGF0YV90OjphY2N1cmFjeTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+QWNjdXJhY3kgb2YgdmFsdWU8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+Y2hhciA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhZDUzYWZmNjYyMTQ1NzVhYjkzZDgyMzhjNGFhOGZmNzZcIj5zZW5zb3JodWJfZGF0YV90OjpodWJfZGF0YTxcL2E+WzQwOTZdPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VmFsdWVzIG9mIHNlbnNvcmh1YiAoZGVwcmVjYXRlZCk8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FkNmJjZWU5OWEwODQ5MDU3NjJmNjMxNWRiZGU3Y2I5NVwiPnNlbnNvcmh1Yl9kYXRhX3Q6Omh1Yl9kYXRhX3NpemU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPk51bWJlciBvZiB2YWx1ZXMgKGRlcHJlY2F0ZWQpPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVuc2lnbmVkIGxvbmcgbG9uZyA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhYTQyMzYzMWE0NWUwZDk0NDRhYWI5ZDNlMzQ1NzBjOTBcIj5zZW5zb3JodWJfZGF0YV90Ojp0aW1lc3RhbXA8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlRpbWVzdGFtcCBvZiB2YWx1ZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWI5YzlhOGE2Yzg0Mzg3ODYxNzEzZTc1YTk4YWIyMjhhXCI+c2Vuc29yaHViX2RhdGFfdDo6dmFsdWVfY291bnQ8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPk51bWJlciBvZiB2YWx1ZXM8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+Y2hhciA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhNTQxZTc3ODY3ZWQ3ZjYwZDBiMjRlNGI2NDY4ZWViZmVcIj5zZW5zb3JodWJfZGF0YV90Ojp2YWx1ZXM8XC9hPls0MDk2XTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlZhbHVlcyBvZiBzZW5zb3JodWI8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IHNlbnNvcl9wZWRvbWV0ZXJfZGF0YV90PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIG9mIHBlZG9tZXRlciBkYXRhLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFTlNPUiAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+aW50PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWM5MmRiOTIxNTg3MzBhZDQ3ZGIxZGE2OTU0NjRiNjJiXCI+YWNjdXJhY3k8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dW5zaWduZWQgbG9uZyBsb25nPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTZjY2NjNjlhMGMwMDkwYzhkMTdiYjZiNDY1MzdkYWQ2XCI+dGltZXN0YW1wPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FlM2FkMTUyZDg5YWYwMjUyNGUwMjYwZjFkYjA3YWExMlwiPnZhbHVlX2NvdW50PFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmZsb2F0PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTRhN2M5M2QyYTI3MGVlN2M0YTQzZjYxYTVjOWQzYTFmXCI+dmFsdWVzPFwvYT4gWzE2XTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTMyNzk4ZjM5NjcyOTdjNjdlNGE5YzFjYWNiMjE5OTdlXCI+ZGlmZnNfY291bnQ8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+c3RydWN0ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjc3RydWN0c2Vuc29yX19wZWRvbWV0ZXJfX2RhdGFfX3RfMV8xZGlmZmVyZW5jZXNcIj5zZW5zb3JfcGVkb21ldGVyX2RhdGFfdDo6ZGlmZmVyZW5jZXM8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FiNjY2YjZmNDJiNTQzZTJkOTBkM2M4NzY0MjA1YTg3OVwiPmRpZmZzPFwvYT4gWzIwXTxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi01XCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tNVwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2FjOTJkYjkyMTU4NzMwYWQ0N2RiMWRhNjk1NDY0YjYyYlwiPnNlbnNvcl9wZWRvbWV0ZXJfZGF0YV90OjphY2N1cmFjeTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+QWNjdXJhY3kgb2YgdmFsdWU8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI3N0cnVjdHNlbnNvcl9fcGVkb21ldGVyX19kYXRhX190XzFfMWRpZmZlcmVuY2VzXCI+c2Vuc29yX3BlZG9tZXRlcl9kYXRhX3Q6OmRpZmZlcmVuY2VzPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWI2NjZiNmY0MmI1NDNlMmQ5MGQzYzg3NjQyMDVhODc5XCI+c2Vuc29yX3BlZG9tZXRlcl9kYXRhX3Q6OmRpZmZzPFwvYT5bIDIwIF08XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5BcnJheSBvZiBkaWZmZXJlbmNlcyBvZiBwZWRvbWV0ZXIgZGF0YTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTMyNzk4ZjM5NjcyOTdjNjdlNGE5YzFjYWNiMjE5OTdlXCI+c2Vuc29yX3BlZG9tZXRlcl9kYXRhX3Q6OmRpZmZzX2NvdW50PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5OdW1iZXIgb2Ygc3RydWN0IGRpZmZlcmVuY2VzIEFkZGl0aW9uYWwgZGF0YSBhdHRyaWJ1dGVzIChub3QgaW4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjc3RydWN0c2Vuc29yX19kYXRhX190XCIgdGl0bGU9XCJTdHJ1Y3R1cmUgZm9yIHNlbnNvciBkYXRhLlwiPnNlbnNvcl9kYXRhX3Q8XC9hPik8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dW5zaWduZWQgbG9uZyBsb25nIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2E2Y2NjYzY5YTBjMDA5MGM4ZDE3YmI2YjQ2NTM3ZGFkNlwiPnNlbnNvcl9wZWRvbWV0ZXJfZGF0YV90Ojp0aW1lc3RhbXA8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlRpbWVzdGFtcCBvZiB2YWx1ZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWUzYWQxNTJkODlhZjAyNTI0ZTAyNjBmMWRiMDdhYTEyXCI+c2Vuc29yX3BlZG9tZXRlcl9kYXRhX3Q6OnZhbHVlX2NvdW50PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5OdW1iZXIgb2YgdmFsdWVzPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmZsb2F0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2E0YTdjOTNkMmEyNzBlZTdjNGE0M2Y2MWE1YzlkM2ExZlwiPnNlbnNvcl9wZWRvbWV0ZXJfZGF0YV90Ojp2YWx1ZXM8XC9hPlsxNl08XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5WYWx1ZXMgb2YgcGVkb21ldGVyIHNlbnNvciB2YWx1ZXMgPSB7c3RlcCBjb3VudCwgd2FsayBzdGVwIGNvdW50LCBydW4gc3RlcCBjb3VudCwgbW92aW5nIGRpc3RhbmNlLCBjYWxvcmllIGJ1cm5lZCwgbGFzdCBzcGVlZCwgbGFzdCBzdGVwcGluZyBmcmVxdWVuY3kgKHN0ZXBzIHBlciBzZWMpLCBsYXN0IHN0ZXAgc3RhdHVzICh3YWxraW5nLCBydW5uaW5nLCAuLi4pfTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3Qgc2Vuc29yX3BlZG9tZXRlcl9kYXRhX3Q6OmRpZmZlcmVuY2VzPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIG9mIGRpZmZlcmVuY2VzIG9mIHBlZG9tZXRlciBkYXRhLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFTlNPUiAxLjA8XC9wPlxuPHA+QWRkaXRpb25hbCBkYXRhIGF0dHJpYnV0ZXMgKG5vdCBpbiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNzdHJ1Y3RzZW5zb3JfX2RhdGFfX3RcIiB0aXRsZT1cIlN0cnVjdHVyZSBmb3Igc2Vuc29yIGRhdGEuXCI+c2Vuc29yX2RhdGFfdDxcL2E+KTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD5pbnQ8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhOTNmM2Y3M2ZiYzkwZmM5ZDlhMzM3N2M3MDJlMDVmNWZcIj50aW1lc3RhbXA8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWYyNzBkMzQzZWFlYTkwYjAyZTY4MTM3ODM2OWQ4NzBkXCI+c3RlcHM8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTUyMTUyZDY1N2MyYmE3NjFkNjQ4ZWJjMjdjNGEyZGI3XCI+d2Fsa19zdGVwczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQ8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhNWIwNWE0YjNkYzJmYjZiMTUwNjJiYjRmNDlhMzczNjlcIj5ydW5fc3RlcHM8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTQ1YTM5YTE3N2NmZDI5OWY1YjQ0MWM1MjQ0MjFkZWE3XCI+d2Fsa191cF9zdGVwczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQ8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhMDc3ZGJjMjY1MDVjMjBkYmE0NDIxMDA5MzEzNDUxZDJcIj53YWxrX2Rvd25fc3RlcHM8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTdmZjI4OWRjMWM3M2UyOWQ2YTU0Y2ZlZDRlMTY3NGVhXCI+cnVuX3VwX3N0ZXBzPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2E0OTAwOWVmOTI2MmFjZjAwYjQzZjIwMGE1YmQzNTA3NlwiPnJ1bl9kb3duX3N0ZXBzPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmZsb2F0PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTI1YzMwMDRjY2FhMzg4MWMwOTMxMTBjODk1NjkzMGIxXCI+ZGlzdGFuY2U8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+ZmxvYXQ8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhOGUxM2Q0MzVjYzM1NGQ1Mjk2MGI5ODU5MjhlMTQzZDVcIj5jYWxvcmllczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5mbG9hdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2E1N2JkMTFkZDQ0MGM0ZTNkZDVjMDFhNzRiZDhiMWVhY1wiPnNwZWVkPFwvYT48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDQgaWQ9XCJjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tNlwiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTZcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkZpZWxkIERvY3VtZW50YXRpb248XC9oND5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmZsb2F0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2E4ZTEzZDQzNWNjMzU0ZDUyOTYwYjk4NTkyOGUxNDNkNVwiPnNlbnNvcl9wZWRvbWV0ZXJfZGF0YV90OjpkaWZmZXJlbmNlczo6Y2Fsb3JpZXM8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRpZmZlcmVuY2Ugb2YgY2Fsb3JpZXM8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZmxvYXQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTI1YzMwMDRjY2FhMzg4MWMwOTMxMTBjODk1NjkzMGIxXCI+c2Vuc29yX3BlZG9tZXRlcl9kYXRhX3Q6OmRpZmZlcmVuY2VzOjpkaXN0YW5jZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGlmZmVyZW5jZSBvZiBkaXN0YW5jZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTQ5MDA5ZWY5MjYyYWNmMDBiNDNmMjAwYTViZDM1MDc2XCI+c2Vuc29yX3BlZG9tZXRlcl9kYXRhX3Q6OmRpZmZlcmVuY2VzOjpydW5fZG93bl9zdGVwczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGlmZmVyZW5jZSBvZiBydW4gZG93biBzdGVwczxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTViMDVhNGIzZGMyZmI2YjE1MDYyYmI0ZjQ5YTM3MzY5XCI+c2Vuc29yX3BlZG9tZXRlcl9kYXRhX3Q6OmRpZmZlcmVuY2VzOjpydW5fc3RlcHM8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRpZmZlcmVuY2Ugb2YgcnVuIHN0ZXBzPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhN2ZmMjg5ZGMxYzczZTI5ZDZhNTRjZmVkNGUxNjc0ZWFcIj5zZW5zb3JfcGVkb21ldGVyX2RhdGFfdDo6ZGlmZmVyZW5jZXM6OnJ1bl91cF9zdGVwczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGlmZmVyZW5jZSBvZiBydW4gdXAgc3RlcHM8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZmxvYXQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTU3YmQxMWRkNDQwYzRlM2RkNWMwMWE3NGJkOGIxZWFjXCI+c2Vuc29yX3BlZG9tZXRlcl9kYXRhX3Q6OmRpZmZlcmVuY2VzOjpzcGVlZDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGlmZmVyZW5jZSBvZiBzcGVlZDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYWYyNzBkMzQzZWFlYTkwYjAyZTY4MTM3ODM2OWQ4NzBkXCI+c2Vuc29yX3BlZG9tZXRlcl9kYXRhX3Q6OmRpZmZlcmVuY2VzOjpzdGVwczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGlmZmVyZW5jZSBvZiBzdGVwczxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjYTkzZjNmNzNmYmM5MGZjOWQ5YTMzNzdjNzAyZTA1ZjVmXCI+c2Vuc29yX3BlZG9tZXRlcl9kYXRhX3Q6OmRpZmZlcmVuY2VzOjp0aW1lc3RhbXA8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlRpbWVzdGFtcCBvZiBkaWZmZXJlbmNlPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhMDc3ZGJjMjY1MDVjMjBkYmE0NDIxMDA5MzEzNDUxZDJcIj5zZW5zb3JfcGVkb21ldGVyX2RhdGFfdDo6ZGlmZmVyZW5jZXM6OndhbGtfZG93bl9zdGVwczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGlmZmVyZW5jZSBvZiB3YWxrIGRvd24gc3RlcHM8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2E1MjE1MmQ2NTdjMmJhNzYxZDY0OGViYzI3YzRhMmRiN1wiPnNlbnNvcl9wZWRvbWV0ZXJfZGF0YV90OjpkaWZmZXJlbmNlczo6d2Fsa19zdGVwczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGlmZmVyZW5jZSBvZiB3YWxrIHN0ZXBzPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNhNDVhMzlhMTc3Y2ZkMjk5ZjViNDQxYzUyNDQyMWRlYTdcIj5zZW5zb3JfcGVkb21ldGVyX2RhdGFfdDo6ZGlmZmVyZW5jZXM6OndhbGtfdXBfc3RlcHM8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRpZmZlcmVuY2Ugb2Ygd2FsayB1cCBzdGVwczxcL3A+XG48aHIgXC8+XG48aDIgaWQ9XCJjb250ZW50LWRlZmluZS1kb2N1bWVudGF0aW9uXCI+PGEgaHJlZj1cIiNjb250ZW50LWRlZmluZS1kb2N1bWVudGF0aW9uXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5EZWZpbmUgRG9jdW1lbnRhdGlvbjxcL2gyPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+I2RlZmluZSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNnYTU2ZTE4N2UxMDlhZDM1NWNkZDYyMmI0NDIxOTZlZGIzXCI+U0VOU09SX0RBVEFfVkFMVUVfU0laRTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwMTY8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIG9mIHNlbnNvciBkYXRhIHZhbHVlIHNpemUuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfU0VOU09SIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD4jZGVmaW5lIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2dhNDc4ZDIxMTEyOTE3YzIxYzJjYTM1YzVjYzMyNWVhZTZcIj5TRU5TT1JfUEVET01FVEVSX0RBVEFfRElGRlNfU0laRTxcL2E+XHUwMGEwXHUwMGEwXHUwMGEwMjA8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIG9mIHBlZG9tZXRlciBkYXRhIGRpZmZlcmVuY2UgYXJyYXkgc2l6ZS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRU5TT1IgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPiNkZWZpbmUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjZ2FmZjM5Mzk3MDgyYzk2YzYzNDA5YWNjYzc2NTE2NDMwZVwiPlNFTlNPUkhVQl9EQVRBX1ZBTFVFX1NJWkU8XC9hPlx1MDBhMFx1MDBhMFx1MDBhMDQwOTY8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZWZpbml0aW9uIG9mIHNlbnNvcmh1YiBkYXRhIHZhbHVlIHNpemUuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfU0VOU09SIDEuMDxcL3A+XG48aHIgXC8+XG48aDIgaWQ9XCJjb250ZW50LXR5cGVkZWYtZG9jdW1lbnRhdGlvblwiPjxhIGhyZWY9XCIjY29udGVudC10eXBlZGVmLWRvY3VtZW50YXRpb25cIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlR5cGVkZWYgRG9jdW1lbnRhdGlvbjxcL2gyPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBzdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjc3RydWN0X19oYWxfX2JhY2tlbmRfX3NlbnNvcl9fZnVuY3NcIj5faGFsX2JhY2tlbmRfc2Vuc29yX2Z1bmNzPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjZ2FiMTQ5YTE1YWFlZGZmMDNmNThmODcwZjM5ZjI1NDU0OVwiPmhhbF9iYWNrZW5kX3NlbnNvcl9mdW5jczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBzZW5zb3IgZnVuY3Rpb25zLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFTlNPUiAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBzdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjc3RydWN0c2Vuc29yX19kYXRhX190XCI+c2Vuc29yX2RhdGFfdDxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI3N0cnVjdHNlbnNvcl9fZGF0YV9fdFwiPnNlbnNvcl9kYXRhX3Q8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3Igc2Vuc29yIGRhdGEuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfU0VOU09SIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNzdHJ1Y3RzZW5zb3JfX2luZm9fX3RcIj5zZW5zb3JfaW5mb190PFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjc3RydWN0c2Vuc29yX19pbmZvX190XCI+c2Vuc29yX2luZm9fdDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBzZW5zb3IgaW5mb3JtYXRpb24gZGF0YS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRU5TT1IgMS4wPFwvcD5cbjxwPkEgcGxhdGZvcm0gc2Vuc29yIGhhbmRsZXIgaXMgZ2VuZXJhdGVkIGJhc2VkIG9uIHRoaXMgaGFuZGxlLjxiciBcLz5cblRoZSAnaWQnIGNhbiBiZSBhc3NpZ25lZCBmcm9tIEhBTCBkZXZlbG9wZXIsIHNvIGl0IGhhcyB0byBiZTxiciBcLz5cbnVuaXF1ZSBwZXIgYSBzZW5zb3JfZGV2aWNlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNzdHJ1Y3RzZW5zb3JodWJfX2RhdGFfX3RcIj5zZW5zb3JodWJfZGF0YV90PFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjc3RydWN0c2Vuc29yaHViX19kYXRhX190XCI+c2Vuc29yaHViX2RhdGFfdDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIG9mIHNlbnNvcmh1YiBkYXRhLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFTlNPUiAxLjA8XC9wPlxuPGhyIFwvPlxuPGgyIGlkPVwiY29udGVudC1lbnVtZXJhdGlvbi10eXBlLWRvY3VtZW50YXRpb25cIj48YSBocmVmPVwiI2NvbnRlbnQtZW51bWVyYXRpb24tdHlwZS1kb2N1bWVudGF0aW9uXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5FbnVtZXJhdGlvbiBUeXBlIERvY3VtZW50YXRpb248XC9oMj5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjZ2E5ODhlYjViNDU5YWVmNjQ1N2UzZDM2NDQyMTljZjUwNlwiPmhhbF9zZW5zb3JfbGlkYXJfcG93ZXJfc3RhdGU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uKGhhbCkgZm9yIHBvd2VyIHN0YXRlIG9mIGxpZGFyLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFTlNPUiAxLjA8XC9wPlxuPHA+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjZ2dhMGRjYjY4NDJiYzk2OTQ5MmJkMWM5ZWI0OTcwODk0MGJhZjBjNzg1OGU0ZGJkZDZmNzc4ZTBjYzdkOWYyMzBkOWJcIj5IQUxfU0VOU09SX0FUVFJfTElEQVJfUE9XRVJfU1RBVEU8XC9hPiBhdHRyaWJ1dGUgdmFsdWU8XC9wPlxuPHA+PHN0cm9uZz5FbnVtZXJhdG9yOjxcL3N0cm9uZz5cbjogICB8IDxlbT5IQUxfU0VOU09SX0xJREFSX1BPV0VSX1NUQVRFX09GRjxcL2VtPiB8IE9mZiB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5IQUxfU0VOU09SX0xJREFSX1BPV0VSX1NUQVRFX09OPFwvZW0+IHwgT24gfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2dhNGYwNzcyNzcwY2UzNjBmMmVlMGQ0ZTk0YTdjM2RlY2JcIj5oYWxfc2Vuc29yX3Byb3hpbWl0eV9zZW5zaXRpdml0eV9sZXZlbDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24oaGFsKSBmb3Igc2Vuc2l0aXZpdHkgbGV2ZWwgb2YgcHJveGltaXR5IHNlbnNvci48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRU5TT1IgMS4wPFwvcD5cbjxwPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2dnYTBkY2I2ODQyYmM5Njk0OTJiZDFjOWViNDk3MDg5NDBiYTYxMTFlYzAxMGM3ZjNiY2NjNTVhNTU4ZDIxNzUzN2E2XCI+SEFMX1NFTlNPUl9BVFRSX1BST1hJTUlUWV9TRU5TSVRJVklUWV9MRVZFTDxcL2E+IGF0dHJpYnV0ZSB2YWx1ZTxcL3A+XG48cD48c3Ryb25nPkVudW1lcmF0b3I6PFwvc3Ryb25nPlxuOiAgIHwgPGVtPkhBTF9TRU5TT1JfUFJPWElNSVRZX1NFTlNJVElWSVRZX0xFVkVMX1dFQUs8XC9lbT4gfCBXZWFrIHxcbnwgLS0tIHwgLS0tIHxcbnwgPGVtPkhBTF9TRU5TT1JfUFJPWElNSVRZX1NFTlNJVElWSVRZX0xFVkVMX01FRElVTTxcL2VtPiB8IE1lZGl1bSB8XG58IDxlbT5IQUxfU0VOU09SX1BST1hJTUlUWV9TRU5TSVRJVklUWV9MRVZFTF9TVFJPTkc8XC9lbT4gfCBTdHJvbmcgfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2dhMTU0MGEwNThhMmM3NjNiOGViOGJlNzFjNGE4NmZmZGZcIj5zZW5zb3JfYWNjdXJhY3lfdDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIHNlbnNvciBhY2N1cmFjeS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRU5TT1IgMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+U0VOU09SX0FDQ1VSQUNZX1VOREVGSU5FRDxcL2VtPiB8IFVuZGVmaW5lZCBhY2N1cmFjeSB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5TRU5TT1JfQUNDVVJBQ1lfQkFEPFwvZW0+IHwgQmFkIGFjY3VyYWN5IHxcbnwgPGVtPlNFTlNPUl9BQ0NVUkFDWV9OT1JNQUw8XC9lbT4gfCBOb3JtYWwgYWNjdXJhY3kgfFxufCA8ZW0+U0VOU09SX0FDQ1VSQUNZX0dPT0Q8XC9lbT4gfCBHb29kIGFjY3VyYWN5IHxcbnwgPGVtPlNFTlNPUl9BQ0NVUkFDWV9WRVJZR09PRDxcL2VtPiB8IFZlcnkgZ29vZCBhY2N1cmFjeSB8PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fU0VOU09SX19NT0RVTEUubWQjZ2FkZTIwZDhhMjI0ZWQxYjllYWIyMzIwMWMyZjI1Y2E2OFwiPnNlbnNvcl9hY3Rpdml0eTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIGFjdGl2aXR5LjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFTlNPUiAxLjA8XC9wPlxuPHA+PHN0cm9uZz5FbnVtZXJhdG9yOjxcL3N0cm9uZz5cbjogICB8IDxlbT5TRU5TT1JfQUNUSVZJVFlfVU5LTk9XTjxcL2VtPiB8IFVua25vd24gYWN0aXZpdHkgfFxufCAtLS0gfCAtLS0gfFxufCA8ZW0+U0VOU09SX0FDVElWSVRZX1NUSUxMPFwvZW0+IHwgU3RpbGwgfFxufCA8ZW0+U0VOU09SX0FDVElWSVRZX1dBTEtJTkc8XC9lbT4gfCBXYWxraW5nIHxcbnwgPGVtPlNFTlNPUl9BQ1RJVklUWV9SVU5OSU5HPFwvZW0+IHwgUnVubmluZyB8XG58IDxlbT5TRU5TT1JfQUNUSVZJVFlfSU5fVkVISUNMRTxcL2VtPiB8IEluIHZlaGljbGUgfFxufCA8ZW0+U0VOU09SX0FDVElWSVRZX09OX0JJQ1lDTEU8XC9lbT4gfCBPbiBiaWN5Y2xlIHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNnYTBkY2I2ODQyYmM5Njk0OTJiZDFjOWViNDk3MDg5NDBiXCI+c2Vuc29yX2F0dHJpYnV0ZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBhdHRyaWJ1dGVzIG9mIHNlbnNvci48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRU5TT1IgMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+U0VOU09SX0FUVFJfQUNDRUxFUk9NRVRFUl9JTkpFQ1RJT048XC9lbT4gfCBhY2NlbGVyb21ldGVyIGluamVjdGlvbiB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5TRU5TT1JfQVRUUl9BQ1RJVklUWTxcL2VtPiB8IGFjdGl2aXR5IHxcbnwgPGVtPlNFTlNPUl9BVFRSX0hSTV9CQVRDSF9PUFJfTU9ERTxcL2VtPiB8IEhSTSBiYXRjaCBvcHIgbW9kZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9IUk1fQkFUQ0hfQUNUSVZJVFlfVFlQRTxcL2VtPiB8IEhSTSBiYXRjaCBhY3Rpdml0eSB0eXBlIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0hSTV9CQVRDSF9CQVRDSF9EVVI8XC9lbT4gfCBIUk0gYmF0Y2ggYmF0Y2ggZHVyIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0hSTV9CQVRDSF9GTFVTSDxcL2VtPiB8IEhSTSBiYXRjaCBmbHVzaCB8XG58IDxlbT5TRU5TT1JfQVRUUl9IUk1fQkFUQ0hfRUxFVkFURURfRFVSPFwvZW0+IHwgSFJNIGJhdGNoIGVsZXZhdGVkIGR1ciB8XG58IDxlbT5TRU5TT1JfQVRUUl9IUk1fQkFUQ0hfRUxFVkFURURfVEhSPFwvZW0+IHwgSFJNIGJhdGNoIGVsZXZhdGVkIHRociB8XG58IDxlbT5TRU5TT1JfQVRUUl9IUk1fQkFUQ0hfQlBNX1JBVzxcL2VtPiB8IEhSTSBiYXRjaCBicG0gcmF3IHxcbnwgPGVtPlNFTlNPUl9BVFRSX0hSTV9CQVRDSF9MT1dfQUxFUlRfRFVSPFwvZW0+IHwgSFJNIGJhdGNoIGxvdyBhbGVydCBkdXIgfFxufCA8ZW0+U0VOU09SX0FUVFJfSFJNX0JBVENIX0xPV19BTEVSVF9USFI8XC9lbT4gfCBIUk0gYmF0Y2ggbG93IGFsZXJ0IHRociB8XG58IDxlbT5TRU5TT1JfQVRUUl9IUk1fTEVEX0dSRUVOX0JBVENIX1BPTExJTkdfSU5URVJWQUw8XC9lbT4gfCBIUk0gbGVkIGdyZWVuIGJhdGNoIHBvbGxpbmcgaW50ZXJ2YWwgfFxufCA8ZW0+U0VOU09SX0FUVFJfSFJNX0xFRF9HUkVFTl9CQVRDSF9GTFVTSDxcL2VtPiB8IEhSTSBsZWQgZ3JlZW4gYmF0Y2ggZmx1c2ggfFxufCA8ZW0+U0VOU09SX0FUVFJfSFJNX0xFRF9HUkVFTl9CQVRDSF9CQVRDSF9QRVJJT0Q8XC9lbT4gfCBIUk0gbGVkIGdyZWVuIGJhdGNoIGJhdGNoIHBlcmlvZCB8XG58IDxlbT5TRU5TT1JfQVRUUl9QRURPTUVURVJfSEVJR0hUPFwvZW0+IHwgcGVkb21ldGVyIGhlaWdodCB8XG58IDxlbT5TRU5TT1JfQVRUUl9QRURPTUVURVJfV0VJR0hUPFwvZW0+IHwgcGVkb21ldGVyIHdlaWdodCB8XG58IDxlbT5TRU5TT1JfQVRUUl9QRURPTUVURVJfR0VOREVSPFwvZW0+IHwgcGVkb21ldGVyIGdlbmRlciB8XG58IDxlbT5TRU5TT1JfQVRUUl9QRURPTUVURVJfQUdFPFwvZW0+IHwgcGVkb21ldGVyIGFnZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9QRURPTUVURVJfRkxVU0g8XC9lbT4gfCBwZWRvbWV0ZXIgZmx1c2ggfFxufCA8ZW0+U0VOU09SX0FUVFJfU1RSRVNTX01PTklUT1JfQUdFPFwvZW0+IHwgc3RyZXNzIG1vbml0b3IgYWdlIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0VYRVJDSVNFX1RZUEU8XC9lbT4gfCBleGVyY2lzZSB0eXBlIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0VYRVJDSVNFX0dQUzxcL2VtPiB8IGV4ZXJjaXNlIEdQUyB8XG58IDxlbT5TRU5TT1JfQVRUUl9FWEVSQ0lTRV9CQVRDSF9JTlRFUlZBTDxcL2VtPiB8IGV4ZXJjaXNlIGJhdGNoIGludGVydmFsIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0VYRVJDSVNFX1BTRVJWSUNFPFwvZW0+IHwgZXhlcmNpc2UgcGVyc29uYWwgc2VydmljZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9DWUNMRV9EVVJBVElPTjxcL2VtPiB8IGN5Y2xlIGR1cmF0aW9uIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0NZQ0xFX0hPTERJTkdfUE9TSVRJT048XC9lbT4gfCBjeWNsZSBob2xkaW5nIHBvc2l0aW9uIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0NZQ0xFX1ZFTE9DSVRZPFwvZW0+IHwgY3ljbGUgdmVsb2NpdHkgfFxufCA8ZW0+U0VOU09SX0FUVFJfQ1lDTEVfR0VUX0RBVEFfVFlQRTxcL2VtPiB8IGN5Y2xlIGdldCBkYXRhIHR5cGUgfFxufCA8ZW0+U0VOU09SX0FUVFJfQ1lDTEVfREFUQV9GTFVTSDxcL2VtPiB8IGN5Y2xlIGRhdGEgZmx1c2ggfFxufCA8ZW0+U0VOU09SX0FUVFJfQ1lDTEVfR1BTX0FHUkVFTUVOVDxcL2VtPiB8IGN5Y2xlIEdQUyBhZ3JlZW1lbnQgfFxufCA8ZW0+U0VOU09SX0FUVFJfV09SS09VVF9UWVBFPFwvZW0+IHwgd29ya291dCB0eXBlIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1dPUktPVVRfRFVSQVRJT048XC9lbT4gfCB3b3Jrb3V0IGR1cmF0aW9uIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1JFU1RJTkdfSFJfT1BSX01PREU8XC9lbT4gfCByZXN0aW5nIEhSIG9wciBtb2RlIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1JFU1RJTkdfSFJfTUFYX1JIUjxcL2VtPiB8IHJlc3RpbmcgSFIgbWF4IHJociB8XG58IDxlbT5TRU5TT1JfQVRUUl9SRVNUSU5HX0hSX01JTl9SSFI8XC9lbT4gfCByZXN0aW5nIEhSIG1pbiByaHIgfFxufCA8ZW0+U0VOU09SX0FUVFJfUkVTVElOR19IUl9BVkdfUkhSPFwvZW0+IHwgcmVzdGluZyBIUiBhdmcgcmhyIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1JFU1RJTkdfSFJfSE9VUjxcL2VtPiB8IHJlc3RpbmcgSFIgaG91ciB8XG58IDxlbT5TRU5TT1JfQVRUUl9SRVNUSU5HX0hSX01JTjxcL2VtPiB8IHJlc3RpbmcgSFIgbWluIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1JFU1RJTkdfSFJfU0VDPFwvZW0+IHwgcmVzdGluZyBIUiBzZWMgfFxufCA8ZW0+U0VOU09SX0FUVFJfUkVTVElOR19IUl9QUk9QRVJUWV9UWVBFPFwvZW0+IHwgcmVzdGluZyBIUiBwcm9wZXJ0eSB0eXBlIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1JFU1RJTkdfSFJfUFJPUEVSVFlfSFJfVFlQRTxcL2VtPiB8IHJlc3RpbmcgSFIgcHJvcGVydHkgSFIgdHlwZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9SRVNUSU5HX0hSX1BST1BFUlRZX0hSX1ZBTFVFPFwvZW0+IHwgcmVzdGluZyBIUiBwcm9wZXJ0eSBIUiB2YWx1ZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9SRVNUSU5HX0hSX1BST1BFUlRZX0RVUkFUSU9OPFwvZW0+IHwgcmVzdGluZyBIUiBwcm9wZXJ0eSBkdXJhdGlvbiB8XG58IDxlbT5TRU5TT1JfQVRUUl9SRVNUSU5HX0hSX1BST1BFUlRZX0FDVF9UWVBFPFwvZW0+IHwgcmVzdGluZyBIUiBwcm9wZXJ0eSBhY3QgdHlwZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9SRVNUSU5HX0hSX1BST1BFUlRZX0FDVF9EVVI8XC9lbT4gfCByZXN0aW5nIEhSIHByb3BlcnR5IGFjdCBkdXIgfFxufCA8ZW0+U0VOU09SX0FUVFJfUkVTVElOR19IUl9QUk9QRVJUWV9DT05UX0RVUjxcL2VtPiB8IHJlc3RpbmcgSFIgcHJvcGVydHkgY29udCBkdXIgfFxufCA8ZW0+U0VOU09SX0FUVFJfUkVTVElOR19IUl9EQVRBX1RZUEU8XC9lbT4gfCByZXN0aW5nIEhSIGRhdGEgdHlwZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9SRVNUSU5HX0hSX0RBVEFfRkxVU0g8XC9lbT4gfCByZXN0aW5nIEhSIGRhdGEgZmx1c2ggfFxufCA8ZW0+U0VOU09SX0FUVFJfU1RFUF9MRVZFTF9NT05JVE9SX0RXX0RVUkFUSU9OPFwvZW0+IHwgc3RlcCBsZXZlbCBtb25pdG9yIGR3IGR1cmF0aW9uIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0VYRVJDSVNFX0hSX09QUl9NT0RFPFwvZW0+IHwgZXhlcmNpc2UgSFIgb3ByIG1vZGUgfFxufCA8ZW0+U0VOU09SX0FUVFJfRVhFUkNJU0VfSFJfQUNUSVZJVFlfVFlQRTxcL2VtPiB8IGV4ZXJjaXNlIEhSIGFjdGl2aXR5IHR5cGUgfFxufCA8ZW0+U0VOU09SX0FUVFJfRVhFUkNJU0VfSFJfQkFUQ0hfRFVSPFwvZW0+IHwgZXhlcmNpc2UgSFIgYmF0Y2ggZHVyIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0VYRVJDSVNFX0hSX0ZMVVNIPFwvZW0+IHwgZXhlcmNpc2UgSFIgZmx1c2ggfFxufCA8ZW0+U0VOU09SX0FUVFJfRVhFUkNJU0VfSFJfRUxFVkFURURfRFVSPFwvZW0+IHwgZXhlcmNpc2UgSFIgZWxldmF0ZWQgZHVyIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0VYRVJDSVNFX0hSX0VMRVZBVEVEX1RIUjxcL2VtPiB8IGV4ZXJjaXNlIEhSIGVsZXZhdGVkIHRociB8XG58IDxlbT5TRU5TT1JfQVRUUl9FWEVSQ0lTRV9IUl9CUE1fUkFXPFwvZW0+IHwgZXhlcmNpc2UgSFIgYnBtIHJhdyB8XG58IDxlbT5TRU5TT1JfQVRUUl9FWEVSQ0lTRV9IUl9MT1dfQUxFUlRfRFVSPFwvZW0+IHwgZXhlcmNpc2UgSFIgbG93IGFsZXJ0IGR1ciB8XG58IDxlbT5TRU5TT1JfQVRUUl9FWEVSQ0lTRV9IUl9MT1dfQUxFUlRfVEhSPFwvZW0+IHwgZXhlcmNpc2UgSFIgbG93IGFsZXJ0IHRociB8XG58IDxlbT5TRU5TT1JfQVRUUl9QUkVTU1VSRV9JTkRJQ0FUT1JfU1RBUlQ8XC9lbT4gfCBwcmVzc3VyZSBpbmRpY2F0b3Igc3RhcnQgfFxufCA8ZW0+U0VOU09SX0FUVFJfUFJFU1NVUkVfSU5ESUNBVE9SX1NUT1A8XC9lbT4gfCBwcmVzc3VyZSBpbmRpY2F0b3Igc3RvcCB8XG58IDxlbT5TRU5TT1JfQVRUUl9QUkVTU1VSRV9JTkRJQ0FUT1JfRkxVU0g8XC9lbT4gfCBwcmVzc3VyZSBpbmRpY2F0b3IgZmx1c2ggfFxufCA8ZW0+U0VOU09SX0FUVFJfUFJFU1NVUkVfSU5ESUNBVE9SX1JFU1RPUkVfVElNRTxcL2VtPiB8IHByZXNzdXJlIGluZGljYXRvciByZXN0b3JlIHRpbWUgfFxufCA8ZW0+U0VOU09SX0FUVFJfUFJFU1NVUkVfSU5ESUNBVE9SX1JFU1RPUkVfVkFMVUU8XC9lbT4gfCBwcmVzc3VyZSBpbmRpY2F0b3IgcmVzdG9yZSB2YWx1ZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9QUkVTU1VSRV9JTkRJQ0FUT1JfQ1VSUkVOVF9USU1FPFwvZW0+IHwgcHJlc3N1cmUgaW5kaWNhdG9yIGN1cnJlbnQgdGltZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9QUkVTU1VSRV9BTEVSVF9TVEFSVDxcL2VtPiB8IHByZXNzdXJlIGFsZXJ0IHN0YXJ0IHxcbnwgPGVtPlNFTlNPUl9BVFRSX1BSRVNTVVJFX0FMRVJUX1NUT1A8XC9lbT4gfCBwcmVzc3VyZSBhbGVydCBzdG9wIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0hSX0NBTE9SSUVfQUdFPFwvZW0+IHwgSFIgY2Fsb3JpZSBhZ2UgfFxufCA8ZW0+U0VOU09SX0FUVFJfSFJfQ0FMT1JJRV9IRUlHSFQ8XC9lbT4gfCBIUiBjYWxvcmllIGhlaWdodCB8XG58IDxlbT5TRU5TT1JfQVRUUl9IUl9DQUxPUklFX1dFSUdIVDxcL2VtPiB8IEhSIGNhbG9yaWUgd2VpZ2h0IHxcbnwgPGVtPlNFTlNPUl9BVFRSX0hSX0NBTE9SSUVfR0VOREVSPFwvZW0+IHwgSFIgY2Fsb3JpZSBnZW5kZXIgfFxufCA8ZW0+U0VOU09SX0FUVFJfSFJfQ0FMT1JJRV9JTlNUPFwvZW0+IHwgSFIgY2Fsb3JpZSBpbnN0IHxcbnwgPGVtPlNFTlNPUl9BVFRSX0hSX0NBTE9SSUVfRVhFUkNJU0VfVFlQRTxcL2VtPiB8IEhSIGNhbG9yaWUgZXhlcmNpc2UgdHlwZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9IUl9DQUxPUklFX1RBUkdFVF9DQUw8XC9lbT4gfCBIUiBjYWxvcmllIHRhcmdldCBjYWwgfFxufCA8ZW0+U0VOU09SX0FUVFJfSFJfQ0FMT1JJRV9NQVhfSEVBUlRSQVRFPFwvZW0+IHwgSFIgY2Fsb3JpZSBtYXggaGVhcnRyYXRlIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0hSX0NBTE9SSUVfRkxVU0g8XC9lbT4gfCBIUiBjYWxvcmllIGZsdXNoIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1NXSU1NSU5HX1RSQUNLRVJfUExBQ0U8XC9lbT4gfCBzd2ltbWluZyB0cmFja2VyIHBsYWNlIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1NXSU1NSU5HX1RSQUNLRVJfRElTVEFOQ0U8XC9lbT4gfCBzd2ltbWluZyB0cmFja2VyIGRpc3RhbmNlIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1NXSU1NSU5HX1RSQUNLRVJfRkxVU0g8XC9lbT4gfCBzd2ltbWluZyB0cmFja2VyIGZsdXNoIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1NXSU1NSU5HX1RSQUNLRVJfQkFUQ0g8XC9lbT4gfCBzd2ltbWluZyB0cmFja2VyIGJhdGNoIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1NXSU1NSU5HX1RSQUNLRVJfR09BTF9DQUxPUklFUzxcL2VtPiB8IHN3aW1taW5nIHRyYWNrZXIgZ29hbCBjYWxvcmllcyB8XG58IDxlbT5TRU5TT1JfQVRUUl9TV0lNTUlOR19UUkFDS0VSX0dPQUxfTEFQUzxcL2VtPiB8IHN3aW1taW5nIHRyYWNrZXIgZ29hbCBsYXBzIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1NXSU1NSU5HX1RSQUNLRVJfVElNRV9SRVNUPFwvZW0+IHwgc3dpbW1pbmcgdHJhY2tlciB0aW1lIHJlc3QgfFxufCA8ZW0+U0VOU09SX0FUVFJfU1dJTU1JTkdfVFJBQ0tFUl9USU1FX1RVUk48XC9lbT4gfCBzd2ltbWluZyB0cmFja2VyIHRpbWUgdHVybiB8XG58IDxlbT5TRU5TT1JfQVRUUl9TV0lNTUlOR19PVVRET09SX1NFVF9CQVRDSF9MQVBfQ09VTlQ8XC9lbT4gfCBzd2ltbWluZyBvdXRkb29yIHNldCBiYXRjaCBsYXAgY291bnQgfFxufCA8ZW0+U0VOU09SX0FUVFJfU1dJTU1JTkdfT1VURE9PUl9TRVRHT0FMX0xFTkdUSDxcL2VtPiB8IHN3aW1taW5nIG91dGRvb3Igc2V0Z29hbCBsZW5ndGggfFxufCA8ZW0+U0VOU09SX0FUVFJfU1dJTU1JTkdfT1VURE9PUl9TRVRHT0FMX1RJTUU8XC9lbT4gfCBzd2ltbWluZyBvdXRkb29yIHNldGdvYWwgdGltZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9TV0lNTUlOR19PVVRET09SX1NFVF9HUFNfUEVSTUlTU0lPTjxcL2VtPiB8IHN3aW1taW5nIG91dGRvb3Igc2V0IEdQUyBwZXJtaXNzaW9uIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1NXSU1NSU5HX09VVERPT1JfRkxVU0g8XC9lbT4gfCBzd2ltbWluZyBvdXRkb29yIGZsdXNoIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0FVVE9fU1dJTU1JTkdfRFVSQVRJT048XC9lbT4gfCBhdXRvIHN3aW1taW5nIGR1cmF0aW9uIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0lOQUNUSVZJVFlfREVURUNUT1JfTEVWRUw8XC9lbT4gfCBpbmFjdGl2aXR5IGRldGVjdG9yIGxldmVsIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0lOQUNUSVZJVFlfREVURUNUT1JfRFVSQVRJT048XC9lbT4gfCBpbmFjdGl2aXR5IGRldGVjdG9yIGR1cmF0aW9uIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1NUUkVTU19UUkFDS0VSX0RVUjxcL2VtPiB8IHN0cmVzcyB0cmFja2VyIGR1ciB8XG58IDxlbT5TRU5TT1JfQVRUUl9TVFJFU1NfVFJBQ0tFUl9GTFVTSDxcL2VtPiB8IHN0cmVzcyB0cmFja2VyIGZsdXNoIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1NUUkVTU19NT05JVE9SX0JBU0VfSFI8XC9lbT4gfCBzdHJlc3MgbW9uaXRvciBiYXNlIEhSIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1NUUkVTU19NT05JVE9SX0hJU1RPX0lOREVYPFwvZW0+IHwgc3RyZXNzIG1vbml0b3IgaGlzdG8gaW5kZXggfFxufCA8ZW0+U0VOU09SX0FUVFJfU1RSRVNTX01PTklUT1JfSElTVE9fVkFMVUU8XC9lbT4gfCBzdHJlc3MgbW9uaXRvciBoaXN0byB2YWx1ZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9TVFJFU1NfTU9OSVRPUl9UVU5FX0lOREVYPFwvZW0+IHwgc3RyZXNzIG1vbml0b3IgdHVuZSBpbmRleCB8XG58IDxlbT5TRU5TT1JfQVRUUl9TVFJFU1NfTU9OSVRPUl9UVU5FX1ZBTFVFPFwvZW0+IHwgc3RyZXNzIG1vbml0b3IgdHVuZSB2YWx1ZSB8XG58IDxlbT5TRU5TT1JfQVRUUl9TVFJFU1NfTU9OSVRPUl9GTFVTSDxcL2VtPiB8IHN0cmVzcyBtb25pdG9yIGZsdXNoIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1NUUkVTU19NT05JVE9SX09QRVJBVElPTjxcL2VtPiB8IHN0cmVzcyBtb25pdG9yIG9wZXJhdGlvbiB8XG58IDxlbT5TRU5TT1JfQVRUUl9TTEVFUF9NT05JVE9SX1NUT1A8XC9lbT4gfCBzbGVlcCBtb25pdG9yIHN0b3AgfFxufCA8ZW0+U0VOU09SX0FUVFJfU0xFRVBfTU9OSVRPUl9GTFVTSDxcL2VtPiB8IHNsZWVwIG1vbml0b3IgZmx1c2ggfFxufCA8ZW0+U0VOU09SX0FUVFJfU0xFRVBfREVURUNUT1JfU1RPUDxcL2VtPiB8IHNsZWVwIGRldGVjdG9yIHN0b3AgfFxufCA8ZW0+U0VOU09SX0FUVFJfU0xFRVBfREVURUNUT1JfU0VUVElORzxcL2VtPiB8IHNsZWVwIGRldGVjdG9yIHNldHRpbmcgfFxufCA8ZW0+U0VOU09SX0FUVFJfREFUQV9KT1VSTkFMX1NUQVJUPFwvZW0+IHwgZGF0YSBqb3VybmFsIHN0YXJ0IHxcbnwgPGVtPlNFTlNPUl9BVFRSX0RBVEFfSk9VUk5BTF9TVE9QPFwvZW0+IHwgZGF0YSBqb3VybmFsIHN0b3AgfFxufCA8ZW0+U0VOU09SX0FUVFJfR1BTX0JBVENIX09QUl9NT0RFPFwvZW0+IHwgR1BTIGJhdGNoIG9wciBtb2RlIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1BQR19CQVRDSF9QT0xMSU5HX0lOVEVSVkFMPFwvZW0+IHwgUFBHIGJhdGNoIHBvbGxpbmcgaW50ZXJ2YWwgfFxufCA8ZW0+U0VOU09SX0FUVFJfUFBHX0JBVENIX0ZMVVNIPFwvZW0+IHwgUFBHIGJhdGNoIGZsdXNoIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1JFR19DVFJMX1RZUEU8XC9lbT4gfCByZWcgY29udHJvbCB0eXBlIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1JFR19DVFJMX0FERFJFU1M8XC9lbT4gfCByZWcgY29udHJvbCBhZGRyZXNzIHxcbnwgPGVtPlNFTlNPUl9BVFRSX1JFR19DVFJMX1ZBTFVFPFwvZW0+IHwgcmVnIGNvbnRyb2wgdmFsdWUgfFxufCA8ZW0+U0VOU09SX0FUVFJfUkVHX0NUUkxfTU9ERTxcL2VtPiB8IHJlZyBjb250cm9sIG1vZGUgfFxufCA8ZW0+U0VOU09SX0FUVFJfR1BTX0NUUkxfU0VUVElORzxcL2VtPiB8IEdQUyBjb250cm9sIHNldHRpbmcgfFxufCA8ZW0+U0VOU09SX0FUVFJfRkFLRV9NT1RJT05fRVZFTlRfSU5URVJWQUw8XC9lbT4gfCBmYWtlIG1vdGlvbiBldmVudCBpbnRlcnZhbCB8XG58IDxlbT5TRU5TT1JfQVRUUl9GQUtFX01PVElPTl9FVkVOVF9DT1VOVDxcL2VtPiB8IGZha2UgbW90aW9uIGV2ZW50IGNvdW50IHxcbnwgPGVtPlNFTlNPUl9BVFRSX0ZBS0VfTU9USU9OX1BBVVNFX0lOVEVSVkFMPFwvZW0+IHwgZmFrZSBtb3Rpb24gcGF1c2UgaW50ZXJ2YWwgfFxufCA8ZW0+U0VOU09SX0FUVFJfR0VPRkVOQ0VfSUQ8XC9lbT4gfCBnZW9mZW5jZSBpZCB8XG58IDxlbT5TRU5TT1JfQVRUUl9HRU9GRU5DRV9MQVQ8XC9lbT4gfCBnZW9mZW5jZSBsYXQgfFxufCA8ZW0+U0VOU09SX0FUVFJfR0VPRkVOQ0VfTE9OPFwvZW0+IHwgZ2VvZmVuY2UgbG9uIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0dFT0ZFTkNFX1JBRElVUzxcL2VtPiB8IGdlb2ZlbmNlIHJhZGl1cyB8XG58IDxlbT5TRU5TT1JfQVRUUl9HRU9GRU5DRV9QUk9WSURFUjxcL2VtPiB8IGdlb2ZlbmNlIHByb3ZpZGVyIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0dFT0ZFTkNFX0FDQ1VSQUNZPFwvZW0+IHwgZ2VvZmVuY2UgYWNjdXJhY3kgfFxufCA8ZW0+U0VOU09SX0FUVFJfR0VPRkVOQ0VfVElNRVNUQU1QPFwvZW0+IHwgZ2VvZmVuY2UgdGltZXN0YW1wIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0dFT0ZFTkNFX0NPTk5FQ1Q8XC9lbT4gfCBnZW9mZW5jZSBjb25uZWN0IHxcbnwgPGVtPlNFTlNPUl9BVFRSX0dFT0ZFTkNFX1NUQVJUPFwvZW0+IHwgZ2VvZmVuY2Ugc3RhcnQgfFxufCA8ZW0+U0VOU09SX0FUVFJfR0VPRkVOQ0VfU1RPUDxcL2VtPiB8IGdlb2ZlbmNlIHN0b3AgfFxufCA8ZW0+U0VOU09SX0FUVFJfR0VPRkVOQ0VfU0VUX0xPQ0FUSU9OPFwvZW0+IHwgZ2VvZmVuY2Ugc2V0IGxvY2F0aW9uIHxcbnwgPGVtPlNFTlNPUl9BVFRSX0dFT0ZFTkNFX0JUX0NPTk5FQ1Q8XC9lbT4gfCBnZW9mZW5jZSBidCBjb25uZWN0IHxcbnwgPGVtPlNFTlNPUl9BVFRSX0ZBTExfREVURUNUSU9OX09QUl9NT0RFPFwvZW0+IHwgZmFsbCBkZXRlY3Rpb24gb3ByIG1vZGUgfFxufCA8ZW0+SEFMX1NFTlNPUl9BVFRSX1BST1hJTUlUWV9TRU5TSVRJVklUWV9MRVZFTDxcL2VtPiB8IGF0dHIgcHJveGltaXR5IHNlbnNpdGl2aXR5IGxldmVsIHxcbnwgPGVtPkhBTF9TRU5TT1JfQVRUUl9MSURBUl9QT1dFUl9TVEFURTxcL2VtPiB8IGF0dHIgbGlkYXIgcG93ZXIgc3RhdGUgfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1NFTlNPUl9fTU9EVUxFLm1kI2dhZDJmMDI3Y2JhOTM2ZTc2ODc4ODUxN2VmNTIwMGY3NjdcIj5zZW5zb3JfYXR0cmlidXRlX2NvbW1vbjxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIGNvbW1vbiBhdHRyaWJ1dGVzIG9mIHNlbnNvci48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9TRU5TT1IgMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+U0VOU09SX0FUVFJfQ09NTU9OX1NUQVJUPFwvZW0+IHwgU3RhcnQgb2YgZW51bSB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5TRU5TT1JfQVRUUl9QT1dFUl9TVEFURTxcL2VtPiB8IFBvd2VyIHN0YXRlIHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRS5tZCNnYWQyM2ZhNjFkOTFkNzZjNDUxZDU4ZjM4NjM3NWE2N2I0XCI+c2Vuc29yX2RldmljZV90eXBlPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbnVtZXJhdGlvbiBvZiBzZW5zb3IgdHlwZXMgZm9yIGNvbnRyb2xsaW5nIHRoZSBzZW5zb3JzLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1NFTlNPUiAxLjA8XC9wPlxuPHA+QmFzZSB1bml0PFwvcD5cbjx1bD5cbjxsaT5hY2NlbGVyYXRpb24gdmFsdWVzIDogbWV0ZXIgcGVyIHNlY29uZF4yIChtXC9zXjIpPFwvbGk+XG48bGk+bWFnbmV0aWMgdmFsdWVzIDogbWljcm8tVGVzbGEgKHVUKTxcL2xpPlxuPGxpPm9yaWVudGF0aW9uIHZhbHVlcyA6IGRlZ3JlZXM8XC9saT5cbjxsaT5neXJvc2NvcGUgdmFsdWVzIDogZGVncmVlXC9zPFwvbGk+XG48bGk+dGVtcGVyYXR1cmUgdmFsdWVzIDogZGVncmVlcyBjZW50aWdyYWRlPFwvbGk+XG48bGk+cHJveGltaXR5IHZhbHVlcyA6IGRpc3RhbmNlPFwvbGk+XG48bGk+bGlnaHQgdmFsdWVzIDogbHV4PFwvbGk+XG48bGk+cHJlc3N1cmUgdmFsdWVzIDogaGVjdG9wYXNjYWwgKGhQYSk8XC9saT5cbjxsaT5odW1pZGl0eSA6IHJlbGF0aXZlIGh1bWlkaXR5ICglKTxcL2xpPlxuPFwvdWw+XG48cD48c3Ryb25nPkVudW1lcmF0b3I6PFwvc3Ryb25nPlxuOiAgIHwgPGVtPlNFTlNPUl9ERVZJQ0VfVU5LTk9XTjxcL2VtPiB8IHVua25vd24gfFxufCAtLS0gfCAtLS0gfFxufCA8ZW0+U0VOU09SX0RFVklDRV9BTEw8XC9lbT4gfCBhbGwgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9BQ0NFTEVST01FVEVSPFwvZW0+IHwgYWNjZWxlcm9tZXRlciB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0dSQVZJVFk8XC9lbT4gfCBncmF2aXR5IHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfTElORUFSX0FDQ0VMRVJBVElPTjxcL2VtPiB8IGxpbmVhciBhY2NlbGVyYXRpb24gfFxufCA8ZW0+U0VOU09SX0RFVklDRV9HRU9NQUdORVRJQzxcL2VtPiB8IGdlb21hZ25ldGljIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfUk9UQVRJT05fVkVDVE9SPFwvZW0+IHwgcm90YXRpb24gdmVjdG9yIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfT1JJRU5UQVRJT048XC9lbT4gfCBvcmllbnRhdGlvbiB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0dZUk9TQ09QRTxcL2VtPiB8IGd5cm9zY29wZSB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0xJR0hUPFwvZW0+IHwgbGlnaHQgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9QUk9YSU1JVFk8XC9lbT4gfCBwcm94aW1pdHkgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9QUkVTU1VSRTxcL2VtPiB8IHByZXNzdXJlIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfVUxUUkFWSU9MRVQ8XC9lbT4gfCB1bHRyYXZpb2xldCB8XG58IDxlbT5TRU5TT1JfREVWSUNFX1RFTVBFUkFUVVJFPFwvZW0+IHwgdGVtcGVyYXR1cmUgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9IVU1JRElUWTxcL2VtPiB8IGh1bWlkaXR5IHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfSFJNPFwvZW0+IHwgSFJNIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfSFJNX0xFRF9HUkVFTjxcL2VtPiB8IEhSTSBsZWQgZ3JlZW4gfFxufCA8ZW0+U0VOU09SX0RFVklDRV9IUk1fTEVEX0lSPFwvZW0+IHwgSFJNIGxlZCBpciB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0hSTV9MRURfUkVEPFwvZW0+IHwgSFJNIGxlZCByZWQgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9HWVJPU0NPUEVfVU5DQUw8XC9lbT4gfCBneXJvc2NvcGUgdW5jYWxpYnJhdGVkIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfR0VPTUFHTkVUSUNfVU5DQUw8XC9lbT4gfCBnZW9tYWduZXRpYyB1bmNhbGlicmF0ZWQgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9HWVJPU0NPUEVfUlY8XC9lbT4gfCBneXJvc2NvcGUgUlYgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9HRU9NQUdORVRJQ19SVjxcL2VtPiB8IGdlb21hZ25ldGljIFJWIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfU0lHTklGSUNBTlRfTU9USU9OPFwvZW0+IHwgc2lnbmlmaWNhbnQgbW90aW9uIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfSFJNX0JBVENIPFwvZW0+IHwgSFJNIGJhdGNoIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfSFJNX0xFRF9HUkVFTl9CQVRDSDxcL2VtPiB8IEhSTSBsZWQgZ3JlZW4gYmF0Y2ggfFxufCA8ZW0+U0VOU09SX0RFVklDRV9IVU1BTl9QRURPTUVURVI8XC9lbT4gfCBodW1hbiBwZWRvbWV0ZXIgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9IVU1BTl9TTEVFUF9NT05JVE9SPFwvZW0+IHwgaHVtYW4gc2xlZXAgbW9uaXRvciB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0hVTUFOX1NMRUVQX0RFVEVDVE9SPFwvZW0+IHwgaHVtYW4gc2xlZXAgZGV0ZWN0b3IgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9IVU1BTl9TVFJFU1NfTU9OSVRPUjxcL2VtPiB8IGh1bWFuIHN0cmVzcyBtb25pdG9yIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfTElEQVI8XC9lbT4gfCBsaWRhciB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0VYRVJDSVNFX1dBTEtJTkc8XC9lbT4gfCBleGVyY2lzZSB3YWxraW5nIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfRVhFUkNJU0VfUlVOTklORzxcL2VtPiB8IGV4ZXJjaXNlIHJ1bm5pbmcgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9FWEVSQ0lTRV9ISUtJTkc8XC9lbT4gfCBleGVyY2lzZSBoaWtpbmcgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9FWEVSQ0lTRV9DWUNMSU5HPFwvZW0+IHwgZXhlcmNpc2UgY3ljbGluZyB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0VYRVJDSVNFX0VMTElQVElDQUw8XC9lbT4gfCBleGVyY2lzZSBlbGxpcHRpY2FsIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfRVhFUkNJU0VfSU5ET09SX0NZQ0xJTkc8XC9lbT4gfCBleGVyY2lzZSBpbmRvb3IgY3ljbGluZyB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0VYRVJDSVNFX1JPV0lORzxcL2VtPiB8IGV4ZXJjaXNlIHJvd2luZyB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0VYRVJDSVNFX1NURVBQRVI8XC9lbT4gfCBleGVyY2lzZSBzdGVwcGVyIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfREFUQV9KT1VSTkFMPFwvZW0+IHwgZGF0YSBqb3VybmFsIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfTU9USU9OX1NFTlNPUjxcL2VtPiB8IG1vdGlvbiBzZW5zb3IgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9GQUtFPFwvZW0+IHwgZmFrZSB8XG58IDxlbT5TRU5TT1JfREVWSUNFX1RBUF9TRU5TT1I8XC9lbT4gfCB0YXAgc2Vuc29yIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfQ09MT1JfU0VOU09SPFwvZW0+IHwgY29sb3Igc2Vuc29yIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfV0lGSV9NT1RJT05fREVURUNUT1I8XC9lbT4gfCB3aWZpIG1vdGlvbiBkZXRlY3RvciB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0ZVU0lPTjxcL2VtPiB8IGZ1c2lvbiB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0FVVE9fUk9UQVRJT048XC9lbT4gfCBhdXRvIHJvdGF0aW9uIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfQVVUT19CUklHSFRORVNTPFwvZW0+IHwgYXV0byBicmlnaHRuZXNzIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfTVlPVEVTVDxcL2VtPiB8IG15b3Rlc3QgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9HRVNUVVJFX01PVkVNRU5UPFwvZW0+IHwgZ2VzdHVyZSBtb3ZlbWVudCB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0dFU1RVUkVfV1JJU1RfVVA8XC9lbT4gfCBnZXN0dXJlIHdyaXN0IHVwIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfR0VTVFVSRV9XUklTVF9ET1dOPFwvZW0+IHwgZ2VzdHVyZSB3cmlzdCBkb3duIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfR0VTVFVSRV9NT1ZFTUVOVF9TVEFURTxcL2VtPiB8IGdlc3R1cmUgbW92ZW1lbnQgc3RhdGUgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9HRVNUVVJFX1BJQ0tfVVA8XC9lbT4gfCBnZXN0dXJlIHBpY2sgdXAgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9HRVNUVVJFX0ZBQ0VfRE9XTjxcL2VtPiB8IGdlc3R1cmUgZmFjZSBkb3duIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfQUNUSVZJVFlfVFJBQ0tFUjxcL2VtPiB8IGFjdGl2aXR5IHRyYWNrZXIgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9BQ1RJVklUWV9MRVZFTF9NT05JVE9SPFwvZW0+IHwgYWN0aXZpdHkgbGV2ZWwgbW9uaXRvciB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0dQU19CQVRDSDxcL2VtPiB8IEdQUyBiYXRjaCB8XG58IDxlbT5TRU5TT1JfREVWSUNFX1BQR19CQVRDSDxcL2VtPiB8IFBQRyBiYXRjaCB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0dQU19USU1FU1lOQzxcL2VtPiB8IEdQUyB0aW1lc3luYyB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0hSTV9DVFJMPFwvZW0+IHwgSFJNIGNvbnRyb2wgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9SRUdfQ1RSTDxcL2VtPiB8IHJlZyBjb250cm9sIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfR1BTX0NUUkw8XC9lbT4gfCBHUFMgY29udHJvbCB8XG58IDxlbT5TRU5TT1JfREVWSUNFX1dFQVJfU1RBVFVTPFwvZW0+IHwgd2VhciBzdGF0dXMgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9XRUFSX09OX01PTklUT1I8XC9lbT4gfCB3ZWFyIG9uIG1vbml0b3IgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9OT19NT1ZFX0RFVEVDVE9SPFwvZW0+IHwgbm8gbW92ZSBkZXRlY3RvciB8XG58IDxlbT5TRU5TT1JfREVWSUNFX1JFU1RJTkdfSFI8XC9lbT4gfCByZXN0aW5nIEhSIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfU1RFUF9MRVZFTF9NT05JVE9SPFwvZW0+IHwgc3RlcCBsZXZlbCBtb25pdG9yIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfRVhFUkNJU0VfU1RBTkRBTE9ORTxcL2VtPiB8IGV4ZXJjaXNlIHN0YW5kYWxvbmUgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9FWEVSQ0lTRV9IUjxcL2VtPiB8IGV4ZXJjaXNlIEhSIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfV09SS09VVDxcL2VtPiB8IHdvcmtvdXQgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9DWUNMRV9NT05JVE9SPFwvZW0+IHwgY3ljbGUgbW9uaXRvciB8XG58IDxlbT5TRU5TT1JfREVWSUNFX1NUQUlSX1RSQUNLRVI8XC9lbT4gfCBzdGFpciB0cmFja2VyIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfUFJFU1NVUkVfSU5ESUNBVE9SPFwvZW0+IHwgcHJlc3N1cmUgaW5kaWNhdG9yIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfUFJFU1NVUkVfQUxFUlQ8XC9lbT4gfCBwcmVzc3VyZSBhbGVydCB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0hSX0NBTE9SSUU8XC9lbT4gfCBIUiBjYWxvcmllIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfU1dJTU1JTkdfVFJBQ0tFUjxcL2VtPiB8IHN3aW1taW5nIHRyYWNrZXIgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9TVFJFU1NfVFJBQ0tFUjxcL2VtPiB8IHN0cmVzcyB0cmFja2VyIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfRkFLRV9NT1RJT048XC9lbT4gfCBmYWtlIG1vdGlvbiB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0dFT0ZFTkNFPFwvZW0+IHwgZ2VvZmVuY2UgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9TV0lNTUlOR19PVVRET09SPFwvZW0+IHwgc3dpbW1pbmcgb3V0ZG9vciB8XG58IDxlbT5TRU5TT1JfREVWSUNFX0FVVE9fU1dJTU1JTkc8XC9lbT4gfCBhdXRvIHN3aW1taW5nIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfSU5BQ1RJVklUWV9ERVRFQ1RPUjxcL2VtPiB8IGluYWN0aXZpdHkgZGV0ZWN0b3IgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9IUk1fQlA8XC9lbT4gfCBIUk0gQlAgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9FQ0c8XC9lbT4gfCBFQ0cgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9GQUxMX0RFVEVDVElPTjxcL2VtPiB8IGZhbGwgZGV0ZWN0aW9uIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfQ09OVEVYVDxcL2VtPiB8IGNvbnRleHQgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9NT1RJT048XC9lbT4gfCBtb3Rpb24gfFxufCA8ZW0+U0VOU09SX0RFVklDRV9QSVI8XC9lbT4gfCBQSVIgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9QSVJfTE9ORzxcL2VtPiB8IFBJUiBsb25nIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfRFVTVDxcL2VtPiB8IGR1c3QgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9USEVSTU9NRVRFUjxcL2VtPiB8IHRoZXJtb21ldGVyIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfUEVET01FVEVSPFwvZW0+IHwgcGVkb21ldGVyIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfRkxBVDxcL2VtPiB8IGZsYXQgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9IUk1fUkFXPFwvZW0+IHwgSFJNIHJhdyB8XG58IDxlbT5TRU5TT1JfREVWSUNFX1RJTFQ8XC9lbT4gfCB0aWx0IHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfUk9UQVRJT05fVkVDVE9SX1JBVzxcL2VtPiB8IHJvdGF0aW9uIHZlY3RvciByYXcgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9HU1I8XC9lbT4gfCBHU1IgfFxufCA8ZW0+U0VOU09SX0RFVklDRV9TSU1TRU5TRTxcL2VtPiB8IHNpbXNlbnNlIHxcbnwgPGVtPlNFTlNPUl9ERVZJQ0VfUFBHPFwvZW0+IHwgUFBHIHw8XC9wPlxuPGhyIFwvPlxuPHA+RXhjZXB0IGFzIG5vdGVkLCB0aGlzIGNvbnRlbnQgLSBleGNsdWRpbmcgdGhlIENvZGUgRXhhbXBsZXMgLSBpcyBsaWNlbnNlZCB1bmRlciA8YSBocmVmPVwiaHR0cDpcL1wvY3JlYXRpdmVjb21tb25zLm9yZ1wvbGljZW5zZXNcL2J5XC8zLjBcL2xlZ2FsY29kZVwiPkNyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24gMy4wPFwvYT5cbmFuZCBhbGwgb2YgdGhlIENvZGUgRXhhbXBsZXMgY29udGFpbmVkIGhlcmVpbiBhcmUgbGljZW5zZWQgdW5kZXIgPGEgaHJlZj1cImh0dHBzOlwvXC93d3cudGl6ZW4ub3JnXC9ic2QtMy1jbGF1c2UtbGljZW5zZVwiPkJTRC0zLUNsYXVzZTxcL2E+LjxiciBcLz5cbkZvciBkZXRhaWxzLCBzZWUgdGhlIDxhIGhyZWY9XCJodHRwczpcL1wvd3d3LnRpemVuLm9yZ1wvY29udGVudC1saWNlbnNlXCI+Q29udGVudCBMaWNlbnNlPFwvYT4uPFwvcD5cbiIsInRhYmxlX29mX2NvbnRlbnQiOiI8dWwgY2xhc3M9XCJ0YWJsZS1vZi1jb250ZW50c1wiPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1yZXF1aXJlZC1oZWFkZXJcIj5SZXF1aXJlZCBIZWFkZXI8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1vdmVydmlld1wiPk92ZXJ2aWV3PFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZGF0YS1zdHJ1Y3R1cmUtZG9jdW1lbnRhdGlvblwiPkRhdGEgU3RydWN0dXJlIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uXCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMVwiPkZpZWxkIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTJcIj5GaWVsZCBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0zXCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tNFwiPkZpZWxkIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTVcIj5GaWVsZCBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi02XCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWRlZmluZS1kb2N1bWVudGF0aW9uXCI+RGVmaW5lIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC10eXBlZGVmLWRvY3VtZW50YXRpb25cIj5UeXBlZGVmIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1lbnVtZXJhdGlvbi10eXBlLWRvY3VtZW50YXRpb25cIj5FbnVtZXJhdGlvbiBUeXBlIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPFwvdWw+XG4iLCJ0aXRsZSI6IlRpemVuIEhBTCBBUEk6IFNlbnNvciIsInJhdyI6bnVsbH0seyJjbGFzcyI6IkFwcFxcU2VydmljZXNcXERvY3VtZW50YXRpb25cXERhdGFcXFJlbmRlcmVkTWFya2Rvd24iLCJzIjoid3JibCJ9XX0seyJzIjoiYXJyIn1dfSwibWVtbyI6eyJpZCI6IkZIZE1PNWhhTXQ5d05pWTRMcGVxIiwibmFtZSI6Il9fbW91bnRQYXJhbXNDb250YWluZXIiLCJwYXRoIjoiZG9jc1wvcGxhdGZvcm1cL2hhbFwvYXBpXC8xLjAuMFwvZ3JvdXBfX0hBTEFQSV9fSEFMX19TRU5TT1JfX01PRFVMRSIsIm1ldGhvZCI6IkdFVCIsInJlbGVhc2UiOiJhLWEtYSJ9LCJjaGVja3N1bSI6IjRlZGNmYjJlOTAyMTJhYzU4Nzc0ZGEzZWViNzcyZDgyNzEwZjBmMzE2NmFlODY4NzZjMmQ4MDVjOTViOGNmOTQifQ==')" >