Platform

Choose application
HAL
Power provides functions for getting and setting hardware information.<\/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 &lt;hal-power.h&gt;<\/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 Power provides functions to get and set hardware information.<\/p>\n<p>The type of hardware information includes:<\/p>\n<ul>\n<li>DVFS (Dynamic Voltage Frequency Scaling)<\/li>\n<li>CPU Hotplug<\/li>\n<li>Thermal<\/li>\n<li>Memory<\/li>\n<\/ul>\n<p>The hardware operations provided by DVFS involve getting or setting information related to CPU frequency.<br \/>\nThis information includes governor, available governor, current frequency, minimum\/maximum frequency, available minimum\/maximum frequency, up threshold, and load table.<\/p>\n<p>The Power functions of DVFS includes:<\/p>\n<ul>\n<li>hal_power_dvfs_get_curr_governor<\/li>\n<li>hal_power_dvfs_set_curr_governor<\/li>\n<li>hal_power_dvfs_get_avail_governor<\/li>\n<li>hal_power_dvfs_get_curr_freq<\/li>\n<li>hal_power_dvfs_get_min_freq<\/li>\n<li>hal_power_dvfs_set_min_freq<\/li>\n<li>hal_power_dvfs_get_max_freq<\/li>\n<li>hal_power_dvfs_set_max_freq<\/li>\n<li>hal_power_dvfs_get_available_min_freq<\/li>\n<li>hal_power_dvfs_get_available_max_freq<\/li>\n<li>hal_power_dvfs_get_up_threshold<\/li>\n<li>hal_power_dvfs_set_up_threshold<\/li>\n<li>hal_power_dvfs_get_load_table<\/li>\n<\/ul>\n<p>The hardware operations provided by CPU hotplug involve getting or setting information related to online CPU.<br \/>\nThis information includes online CPU list and the number of minimum\/maximum online CPU.<\/p>\n<p>The Power functions of CPU hotplug includes:<\/p>\n<ul>\n<li>hal_power_hotplug_get_online_state<\/li>\n<li>hal_power_hotplug_set_online_state<\/li>\n<li>hal_power_hotplug_get_online_min_num<\/li>\n<li>hal_power_hotplug_set_online_min_num<\/li>\n<li>hal_power_hotplug_get_online_max_num<\/li>\n<li>hal_power_hotplug_set_online_max_num<\/li>\n<\/ul>\n<p>The hardware operations provided by thermal involve getting or setting information related to temperature, cooling device, and battery.<br \/>\nThis information includes current temperature, policy of thermal management unit, state and maximum state of thermal cooling device, and state of battery charging and current.<\/p>\n<p>The Power functions of thermal includes:<\/p>\n<ul>\n<li>hal_power_thermal_get_temp<\/li>\n<li>hal_power_thermal_get_policy<\/li>\n<li>hal_power_thermal_set_cooling_device_state<\/li>\n<li>hal_power_thermal_get_cooling_device_state<\/li>\n<li>hal_power_thermal_get_cooling_device_max_state<\/li>\n<li>hal_power_battery_set_charging_status<\/li>\n<li>hal_power_battery_get_charging_status<\/li>\n<li>hal_power_battery_set_charging_current<\/li>\n<li>hal_power_battery_get_charging_current<\/li>\n<\/ul>\n<p>The hardware operations provided by memory involve getting or setting information related to fault around bytes.<br \/>\nThis information includes the number of bytes read in after a page fault.<\/p>\n<p>The Power functions of memory includes:<\/p>\n<ul>\n<li>hal_power_memory_get_fault_around_bytes<\/li>\n<li>hal_power_memory_set_fault_around_bytes<\/li>\n<\/ul>\n<p>For more information on the Power features and the macros, see HAL Power programming guides and tutorials.<\/p>\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__POWER__MODULE.md#struct__hal__backend__power__funcs\">_hal_backend_power_funcs<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#gaab58db4a7c7837ecda778481e446c246\">hal_backend_power_funcs<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for power functions.<\/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 hal_power_resource_dvfs_ops<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for DVFS (Dynamic Volt. &amp; Freq. Scaling) operations.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_POWER 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__POWER__MODULE.md#a688fa4f125822e0af0350079be7cf7cb\">get_curr_governor<\/a> )(char *res_name, char *governor)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#abc40f425bb4124153e82c0f8b85fb94e\">set_curr_governor<\/a> )(char *res_name, char *governor)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#ac8d2d14106dc0bb021e688ec765fdd99\">get_avail_governor<\/a> )(char *res_name, char **avail_governor)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#ae22d241040c85ed6bb5bdac05d0f6786\">get_curr_freq<\/a> )(char *res_name)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#afd1158a9aac83ddce89c1585a62c9f37\">get_min_freq<\/a> )(char *res_name)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#ae4d33379f7b7fab906f0b5aa6fcf3e3f\">set_min_freq<\/a> )(char *res_name, int freq)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a1ac1b1a97ee3f65c1172af863d6b4883\">get_max_freq<\/a> )(char *res_name)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a4d606b5065bbafbd31b2e8e046398503\">set_max_freq<\/a> )(char *res_name, int freq)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a276d8fd781cea938e3b31931b57aa8ba\">get_available_min_freq<\/a> )(char *res_name)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a19a57774fdad71802324bbb43c740794\">get_available_max_freq<\/a> )(char *res_name)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a58649957167b8e1c91bda14e85b6fa0e\">get_up_threshold<\/a> )(char *res_name)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a781280642b5e2b4b21e0b0727f5ec207\">set_up_threshold<\/a> )(char *res_name, int up_threshold)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#aae51a1a9831d4f69d2d9f62f19e2b742\">get_load_table<\/a> )(char *name, void *hal_power_cpu_load_table)<\/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__POWER__MODULE.md#ac8d2d14106dc0bb021e688ec765fdd99\">hal_power_resource_dvfs_ops::get_avail_governor<\/a>)(char *res_name, char **avail_governor)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get the available governor<\/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__POWER__MODULE.md#a19a57774fdad71802324bbb43c740794\">hal_power_resource_dvfs_ops::get_available_max_freq<\/a>)(char *res_name)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get the maximum frequency which can be set to resource<\/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__POWER__MODULE.md#a276d8fd781cea938e3b31931b57aa8ba\">hal_power_resource_dvfs_ops::get_available_min_freq<\/a>)(char *res_name)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get the minimum frequency which can be set to resource<\/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__POWER__MODULE.md#ae22d241040c85ed6bb5bdac05d0f6786\">hal_power_resource_dvfs_ops::get_curr_freq<\/a>)(char *res_name)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get the current frequency<\/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__POWER__MODULE.md#a688fa4f125822e0af0350079be7cf7cb\">hal_power_resource_dvfs_ops::get_curr_governor<\/a>)(char *res_name, char *governor)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get the current governor<\/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__POWER__MODULE.md#aae51a1a9831d4f69d2d9f62f19e2b742\">hal_power_resource_dvfs_ops::get_load_table<\/a>)(char *name, void *hal_power_cpu_load_table)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get the load_table of each resource to estimate the system load<\/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__POWER__MODULE.md#a1ac1b1a97ee3f65c1172af863d6b4883\">hal_power_resource_dvfs_ops::get_max_freq<\/a>)(char *res_name)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get the maximum frequency<\/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__POWER__MODULE.md#afd1158a9aac83ddce89c1585a62c9f37\">hal_power_resource_dvfs_ops::get_min_freq<\/a>)(char *res_name)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get the minimum frequency<\/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__POWER__MODULE.md#a58649957167b8e1c91bda14e85b6fa0e\">hal_power_resource_dvfs_ops::get_up_threshold<\/a>)(char *res_name)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get the up_threshold to support boosting<\/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__POWER__MODULE.md#abc40f425bb4124153e82c0f8b85fb94e\">hal_power_resource_dvfs_ops::set_curr_governor<\/a>)(char *res_name, char *governor)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Set the current governor<\/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__POWER__MODULE.md#a4d606b5065bbafbd31b2e8e046398503\">hal_power_resource_dvfs_ops::set_max_freq<\/a>)(char *res_name, int freq)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Set the maximum frequency<\/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__POWER__MODULE.md#ae4d33379f7b7fab906f0b5aa6fcf3e3f\">hal_power_resource_dvfs_ops::set_min_freq<\/a>)(char *res_name, int freq)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Set the minimum frequency<\/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__POWER__MODULE.md#a781280642b5e2b4b21e0b0727f5ec207\">hal_power_resource_dvfs_ops::set_up_threshold<\/a>)(char *res_name, int up_threshold)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Set the up_threshold to support boosting<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct hal_power_resource_hotplug_ops<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for CPU hotplug operations.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_POWER 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__POWER__MODULE.md#a18954ab917c3115f7385e95802f3021a\">get_online_state<\/a> )(char *res_name, int cpu)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a72e6d1f2926b5c0ea0a8aeae3c640f09\">set_online_state<\/a> )(char *res_name, int cpu, int on)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a85457ee6607bbafa5fb7223da416d1ba\">get_online_max_num<\/a> )(char *res_name)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#ae517c6c30976b96a7b091293c1b1d52f\">set_online_max_num<\/a> )(char *res_name, int max_num)<\/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__POWER__MODULE.md#a85457ee6607bbafa5fb7223da416d1ba\">hal_power_resource_hotplug_ops::get_online_max_num<\/a>)(char *res_name)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get the maximum number of online CPUs<\/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__POWER__MODULE.md#a18954ab917c3115f7385e95802f3021a\">hal_power_resource_hotplug_ops::get_online_state<\/a>)(char *res_name, int cpu)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get the online status of resource<\/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__POWER__MODULE.md#ae517c6c30976b96a7b091293c1b1d52f\">hal_power_resource_hotplug_ops::set_online_max_num<\/a>)(char *res_name, int max_num)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Set the maximum number of online CPUs<\/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__POWER__MODULE.md#a72e6d1f2926b5c0ea0a8aeae3c640f09\">hal_power_resource_hotplug_ops::set_online_state<\/a>)(char *res_name, int cpu, int on)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Set the online status of resource<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct hal_power_resource_tmu_ops<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for TMU (Thermal Management Unit) operations.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_POWER 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__POWER__MODULE.md#a41f2ea769e0e68b5dc7a832892620170\">get_temp<\/a> )(char *res_thermal_name)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a13c46b0a0177fc645b6e629a58832076\">get_policy<\/a> )(char *res_thermal_name, char *policy)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a9a0edcd4a15d2c0f7b195d57366e90ff\">set_cooling_device_state<\/a> )(char *cooling_device_name, int state)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a8eaee0d580f8a0e5234d6e54fc56277d\">get_cooling_device_state<\/a> )(char *cooling_device_name)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#aff3829d7aa6789910fb11618959e0d0b\">get_cooling_device_max_state<\/a> )(char *cooling_device_name)<\/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>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#aff3829d7aa6789910fb11618959e0d0b\">hal_power_resource_tmu_ops::get_cooling_device_max_state<\/a>)(char *cooling_device_name)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get the maximum state of thermal cooling-device<\/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__POWER__MODULE.md#a8eaee0d580f8a0e5234d6e54fc56277d\">hal_power_resource_tmu_ops::get_cooling_device_state<\/a>)(char *cooling_device_name)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get the state of thermal cooling-device<\/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__POWER__MODULE.md#a13c46b0a0177fc645b6e629a58832076\">hal_power_resource_tmu_ops::get_policy<\/a>)(char *res_thermal_name, char *policy)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get the policy of thermal management unit<\/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__POWER__MODULE.md#a41f2ea769e0e68b5dc7a832892620170\">hal_power_resource_tmu_ops::get_temp<\/a>)(char *res_thermal_name)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get the current temperature of resource<\/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__POWER__MODULE.md#a9a0edcd4a15d2c0f7b195d57366e90ff\">hal_power_resource_tmu_ops::set_cooling_device_state<\/a>)(char *cooling_device_name, int state)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Set the state of thermal cooling-device<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct hal_power_resource_battery_ops<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for battery operations.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_POWER 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__POWER__MODULE.md#a535aa38a67c77615ce9e242a9ceb9c69\">set_charging_status<\/a> )(char *res_name, int state)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a40b44270d162e1766a43d7c48ea4cbd0\">get_charging_status<\/a> )(char *res_name)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#af012d20f0d81725f0603bbaf6b0bb424\">set_charging_current<\/a> )(char *res_name, int charging_current_uA)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a735f6f92d38c3dd4e4cbda8a8e476c84\">get_charging_current<\/a> )(char *res_name)<\/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__POWER__MODULE.md#a735f6f92d38c3dd4e4cbda8a8e476c84\">hal_power_resource_battery_ops::get_charging_current<\/a>)(char *res_name)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get the battery charging current (unit: uA)<\/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__POWER__MODULE.md#a40b44270d162e1766a43d7c48ea4cbd0\">hal_power_resource_battery_ops::get_charging_status<\/a>)(char *res_name)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get the state of battery charging<\/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__POWER__MODULE.md#af012d20f0d81725f0603bbaf6b0bb424\">hal_power_resource_battery_ops::set_charging_current<\/a>)(char *res_name, int charging_current_uA)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Set the battery charging current (unit: uA)<\/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__POWER__MODULE.md#a535aa38a67c77615ce9e242a9ceb9c69\">hal_power_resource_battery_ops::set_charging_status<\/a>)(char *res_name, int state)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Set the state of battery charging<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct hal_power_resource_cpu<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for CPU H\/W.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_POWER 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>struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#structhal__power__resource__dvfs__ops\">hal_power_resource_dvfs_ops<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a86547b20a74aeb7b76526409a56b08e8\">dvfs<\/a><\/td>\n<\/tr>\n<tr>\n<td>struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#structhal__power__resource__tmu__ops\">hal_power_resource_tmu_ops<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a7f7f4eda7db6c42fd1ecbdd610b85ce6\">tmu<\/a><\/td>\n<\/tr>\n<tr>\n<td>struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#structhal__power__resource__hotplug__ops\">hal_power_resource_hotplug_ops<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a6451a7010b6206b0adbc149aa1711dfc\">hotplug<\/a><\/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>struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#structhal__power__resource__dvfs__ops\">hal_power_resource_dvfs_ops<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a86547b20a74aeb7b76526409a56b08e8\">hal_power_resource_cpu::dvfs<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Function lists for DVFS (Dynamic Volt. &amp; Freq. Scaling)<\/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__POWER__MODULE.md#structhal__power__resource__hotplug__ops\">hal_power_resource_hotplug_ops<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a6451a7010b6206b0adbc149aa1711dfc\">hal_power_resource_cpu::hotplug<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Function lists for the CPU on\/off<\/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__POWER__MODULE.md#structhal__power__resource__tmu__ops\">hal_power_resource_tmu_ops<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a7f7f4eda7db6c42fd1ecbdd610b85ce6\">hal_power_resource_cpu::tmu<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Function lists for function lists for the TMU (Thermal Management Unit)<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct hal_power_resource_bus<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for Memory Bus H\/W.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_POWER 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>struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#structhal__power__resource__dvfs__ops\">hal_power_resource_dvfs_ops<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a0a14d2e9d5afdad80b6853f8a45031be\">dvfs<\/a><\/td>\n<\/tr>\n<tr>\n<td>struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#structhal__power__resource__tmu__ops\">hal_power_resource_tmu_ops<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a1b9fd554d98a43d1beaec45a49550c16\">tmu<\/a><\/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>struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#structhal__power__resource__dvfs__ops\">hal_power_resource_dvfs_ops<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a0a14d2e9d5afdad80b6853f8a45031be\">hal_power_resource_bus::dvfs<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Function lists for DVFS (Dynamic Volt. &amp; Freq. Scaling)<\/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__POWER__MODULE.md#structhal__power__resource__tmu__ops\">hal_power_resource_tmu_ops<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a1b9fd554d98a43d1beaec45a49550c16\">hal_power_resource_bus::tmu<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Function lists for function lists for the TMU (Thermal Management Unit)<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct hal_power_resource_gpu<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for GPU H\/W.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_POWER 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>struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#structhal__power__resource__dvfs__ops\">hal_power_resource_dvfs_ops<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a86fe005a19efbb80a6432792d4486c5f\">dvfs<\/a><\/td>\n<\/tr>\n<tr>\n<td>struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#structhal__power__resource__tmu__ops\">hal_power_resource_tmu_ops<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a90de8b849abf01cbd174424845ef9482\">tmu<\/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>struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#structhal__power__resource__dvfs__ops\">hal_power_resource_dvfs_ops<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a86fe005a19efbb80a6432792d4486c5f\">hal_power_resource_gpu::dvfs<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Function lists for DVFS (Dynamic Volt. &amp; Freq. Scaling)<\/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__POWER__MODULE.md#structhal__power__resource__tmu__ops\">hal_power_resource_tmu_ops<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a90de8b849abf01cbd174424845ef9482\">hal_power_resource_gpu::tmu<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Function lists for function lists for the TMU (Thermal Management Unit)<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct hal_power_resource_memory<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for Memory H\/W.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_POWER 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__POWER__MODULE.md#a88ba334230a1c1ac41062cc7d6261323\">get_fault_around_bytes<\/a> )(char *res_name)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a239fbf439fe906bcb88ea2300f12aafb\">set_fault_around_bytes<\/a> )(char *res_name, int fault_around_bytes)<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-7\"><a href=https://samsungtizenos.com/"#content-field-documentation-7\" 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__POWER__MODULE.md#a88ba334230a1c1ac41062cc7d6261323\">hal_power_resource_memory::get_fault_around_bytes<\/a>)(char *res_name)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Get the \/sys\/kernel\/debug\/fault_around_bytes<\/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__POWER__MODULE.md#a239fbf439fe906bcb88ea2300f12aafb\">hal_power_resource_memory::set_fault_around_bytes<\/a>)(char *res_name, int fault_around_bytes)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Set the \/sys\/kernel\/debug\/fault_around_bytes<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct hal_power_resource_battery<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for Battery H\/W.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_POWER 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>struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#structhal__power__resource__tmu__ops\">hal_power_resource_tmu_ops<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a2e6f6662950cbae825b7041863d32f50\">tmu<\/a><\/td>\n<\/tr>\n<tr>\n<td>struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#structhal__power__resource__battery__ops\">hal_power_resource_battery_ops<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#abca329bdb584df97aa41bfb46ac54168\">battery<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-8\"><a href=https://samsungtizenos.com/"#content-field-documentation-8\" 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>struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#structhal__power__resource__battery__ops\">hal_power_resource_battery_ops<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#abca329bdb584df97aa41bfb46ac54168\">hal_power_resource_battery::battery<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Function lists for battery<\/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__POWER__MODULE.md#structhal__power__resource__tmu__ops\">hal_power_resource_tmu_ops<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a2e6f6662950cbae825b7041863d32f50\">hal_power_resource_battery::tmu<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Function lists for thermal management unit<\/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_power_funcs<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for power functions.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_POWER 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>struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#structhal__power__resource__cpu\">hal_power_resource_cpu<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#aaaccd1cf72fc39d86fec3f6090c54bd9\">cpu<\/a><\/td>\n<\/tr>\n<tr>\n<td>struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#structhal__power__resource__bus\">hal_power_resource_bus<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a17c058f3dfe43c9643a6c5cb76c33c89\">bus<\/a><\/td>\n<\/tr>\n<tr>\n<td>struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#structhal__power__resource__gpu\">hal_power_resource_gpu<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a44d2f0a8e5314dc7ba871d23d237bbd8\">gpu<\/a><\/td>\n<\/tr>\n<tr>\n<td>struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#structhal__power__resource__memory\">hal_power_resource_memory<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#aee79a71477cd6fb282ccc28cce220f72\">memory<\/a><\/td>\n<\/tr>\n<tr>\n<td>struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#structhal__power__resource__battery\">hal_power_resource_battery<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#ae72c061cc7590e3df4aa863c09391d83\">battery<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-9\"><a href=https://samsungtizenos.com/"#content-field-documentation-9\" 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>struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#structhal__power__resource__battery\">hal_power_resource_battery<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#ae72c061cc7590e3df4aa863c09391d83\">_hal_backend_power_funcs::battery<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Function lists for battery<\/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__POWER__MODULE.md#structhal__power__resource__bus\">hal_power_resource_bus<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a17c058f3dfe43c9643a6c5cb76c33c89\">_hal_backend_power_funcs::bus<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Function lists for bus<\/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__POWER__MODULE.md#structhal__power__resource__cpu\">hal_power_resource_cpu<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#aaaccd1cf72fc39d86fec3f6090c54bd9\">_hal_backend_power_funcs::cpu<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Function lists for CPU<\/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__POWER__MODULE.md#structhal__power__resource__gpu\">hal_power_resource_gpu<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#a44d2f0a8e5314dc7ba871d23d237bbd8\">_hal_backend_power_funcs::gpu<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Function lists for GPU<\/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__POWER__MODULE.md#structhal__power__resource__memory\">hal_power_resource_memory<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#aee79a71477cd6fb282ccc28cce220f72\">_hal_backend_power_funcs::memory<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Function lists for memory<\/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__POWER__MODULE.md#struct__hal__backend__power__funcs\">_hal_backend_power_funcs<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__POWER__MODULE.md#gaab58db4a7c7837ecda778481e446c246\">hal_backend_power_funcs<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for power functions.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_POWER 1.0<\/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.
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-field-documentation-7\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-8\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-9\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-typedef-documentation\">Typedef Documentation<\/a><\/li>\n<\/ul>\n","title":"Tizen HAL API: Power","raw":null},{"class":"App\\Services\\Documentation\\Data\\RenderedMarkdown","s":"wrbl"}]},"memo":{"id":"ZyHuNem94RyoPlZSssDW","name":"documentation::article","path":"docs\/platform\/hal\/api\/1.0.0\/group__HALAPI__HAL__POWER__MODULE","method":"GET","release":"a-a-a","children":[],"scripts":[],"assets":[],"lazyLoaded":false,"lazyIsolated":true,"errors":[],"locale":"en","islands":[]},"checksum":"02a70800673d686f2dbb78902586d02565b066068ead31302937d9f3626bc8fa"}" wire:effects="[]" wire:id="ZyHuNem94RyoPlZSssDW" wire:name="documentation::article" x-init="$wire.__lazyLoad('eyJkYXRhIjp7ImZvck1vdW50IjpbeyJtYXJrZG93biI6W3siYm9keSI6IjxoMSBpZD1cImNvbnRlbnQtdGl6ZW4taGFsLWFwaS1wb3dlclwiPjxhIGhyZWY9XCIjY29udGVudC10aXplbi1oYWwtYXBpLXBvd2VyXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5UaXplbiBIQUwgQVBJOiBQb3dlcjxcL2gxPjxkaXYgZGF0YS1rbm93bGVkZ2UtYmFzZS1tZXRhZGF0YT48XC9kaXY+XG48aHIgXC8+XG48cD5UaGUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZFwiPlBvd2VyPFwvYT4gcHJvdmlkZXMgZnVuY3Rpb25zIGZvciBnZXR0aW5nIGFuZCBzZXR0aW5nIGhhcmR3YXJlIGluZm9ybWF0aW9uLjxcL3A+XG48aDIgaWQ9XCJjb250ZW50LXJlcXVpcmVkLWhlYWRlclwiPjxhIGhyZWY9XCIjY29udGVudC1yZXF1aXJlZC1oZWFkZXJcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlJlcXVpcmVkIEhlYWRlcjxcL2gyPlxuPHA+I2luY2x1ZGUgJmx0O2hhbC1wb3dlci5oJmd0OzxcL3A+XG48aDIgaWQ9XCJjb250ZW50LW92ZXJ2aWV3XCI+PGEgaHJlZj1cIiNjb250ZW50LW92ZXJ2aWV3XCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5PdmVydmlldzxcL2gyPlxuPHA+VGhlIFBvd2VyIHByb3ZpZGVzIGZ1bmN0aW9ucyB0byBnZXQgYW5kIHNldCBoYXJkd2FyZSBpbmZvcm1hdGlvbi48XC9wPlxuPHA+VGhlIHR5cGUgb2YgaGFyZHdhcmUgaW5mb3JtYXRpb24gaW5jbHVkZXM6PFwvcD5cbjx1bD5cbjxsaT5EVkZTIChEeW5hbWljIFZvbHRhZ2UgRnJlcXVlbmN5IFNjYWxpbmcpPFwvbGk+XG48bGk+Q1BVIEhvdHBsdWc8XC9saT5cbjxsaT5UaGVybWFsPFwvbGk+XG48bGk+TWVtb3J5PFwvbGk+XG48XC91bD5cbjxwPlRoZSBoYXJkd2FyZSBvcGVyYXRpb25zIHByb3ZpZGVkIGJ5IERWRlMgaW52b2x2ZSBnZXR0aW5nIG9yIHNldHRpbmcgaW5mb3JtYXRpb24gcmVsYXRlZCB0byBDUFUgZnJlcXVlbmN5LjxiciBcLz5cblRoaXMgaW5mb3JtYXRpb24gaW5jbHVkZXMgZ292ZXJub3IsIGF2YWlsYWJsZSBnb3Zlcm5vciwgY3VycmVudCBmcmVxdWVuY3ksIG1pbmltdW1cL21heGltdW0gZnJlcXVlbmN5LCBhdmFpbGFibGUgbWluaW11bVwvbWF4aW11bSBmcmVxdWVuY3ksIHVwIHRocmVzaG9sZCwgYW5kIGxvYWQgdGFibGUuPFwvcD5cbjxwPlRoZSBQb3dlciBmdW5jdGlvbnMgb2YgRFZGUyBpbmNsdWRlczo8XC9wPlxuPHVsPlxuPGxpPmhhbF9wb3dlcl9kdmZzX2dldF9jdXJyX2dvdmVybm9yPFwvbGk+XG48bGk+aGFsX3Bvd2VyX2R2ZnNfc2V0X2N1cnJfZ292ZXJub3I8XC9saT5cbjxsaT5oYWxfcG93ZXJfZHZmc19nZXRfYXZhaWxfZ292ZXJub3I8XC9saT5cbjxsaT5oYWxfcG93ZXJfZHZmc19nZXRfY3Vycl9mcmVxPFwvbGk+XG48bGk+aGFsX3Bvd2VyX2R2ZnNfZ2V0X21pbl9mcmVxPFwvbGk+XG48bGk+aGFsX3Bvd2VyX2R2ZnNfc2V0X21pbl9mcmVxPFwvbGk+XG48bGk+aGFsX3Bvd2VyX2R2ZnNfZ2V0X21heF9mcmVxPFwvbGk+XG48bGk+aGFsX3Bvd2VyX2R2ZnNfc2V0X21heF9mcmVxPFwvbGk+XG48bGk+aGFsX3Bvd2VyX2R2ZnNfZ2V0X2F2YWlsYWJsZV9taW5fZnJlcTxcL2xpPlxuPGxpPmhhbF9wb3dlcl9kdmZzX2dldF9hdmFpbGFibGVfbWF4X2ZyZXE8XC9saT5cbjxsaT5oYWxfcG93ZXJfZHZmc19nZXRfdXBfdGhyZXNob2xkPFwvbGk+XG48bGk+aGFsX3Bvd2VyX2R2ZnNfc2V0X3VwX3RocmVzaG9sZDxcL2xpPlxuPGxpPmhhbF9wb3dlcl9kdmZzX2dldF9sb2FkX3RhYmxlPFwvbGk+XG48XC91bD5cbjxwPlRoZSBoYXJkd2FyZSBvcGVyYXRpb25zIHByb3ZpZGVkIGJ5IENQVSBob3RwbHVnIGludm9sdmUgZ2V0dGluZyBvciBzZXR0aW5nIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gb25saW5lIENQVS48YnIgXC8+XG5UaGlzIGluZm9ybWF0aW9uIGluY2x1ZGVzIG9ubGluZSBDUFUgbGlzdCBhbmQgdGhlIG51bWJlciBvZiBtaW5pbXVtXC9tYXhpbXVtIG9ubGluZSBDUFUuPFwvcD5cbjxwPlRoZSBQb3dlciBmdW5jdGlvbnMgb2YgQ1BVIGhvdHBsdWcgaW5jbHVkZXM6PFwvcD5cbjx1bD5cbjxsaT5oYWxfcG93ZXJfaG90cGx1Z19nZXRfb25saW5lX3N0YXRlPFwvbGk+XG48bGk+aGFsX3Bvd2VyX2hvdHBsdWdfc2V0X29ubGluZV9zdGF0ZTxcL2xpPlxuPGxpPmhhbF9wb3dlcl9ob3RwbHVnX2dldF9vbmxpbmVfbWluX251bTxcL2xpPlxuPGxpPmhhbF9wb3dlcl9ob3RwbHVnX3NldF9vbmxpbmVfbWluX251bTxcL2xpPlxuPGxpPmhhbF9wb3dlcl9ob3RwbHVnX2dldF9vbmxpbmVfbWF4X251bTxcL2xpPlxuPGxpPmhhbF9wb3dlcl9ob3RwbHVnX3NldF9vbmxpbmVfbWF4X251bTxcL2xpPlxuPFwvdWw+XG48cD5UaGUgaGFyZHdhcmUgb3BlcmF0aW9ucyBwcm92aWRlZCBieSB0aGVybWFsIGludm9sdmUgZ2V0dGluZyBvciBzZXR0aW5nIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gdGVtcGVyYXR1cmUsIGNvb2xpbmcgZGV2aWNlLCBhbmQgYmF0dGVyeS48YnIgXC8+XG5UaGlzIGluZm9ybWF0aW9uIGluY2x1ZGVzIGN1cnJlbnQgdGVtcGVyYXR1cmUsIHBvbGljeSBvZiB0aGVybWFsIG1hbmFnZW1lbnQgdW5pdCwgc3RhdGUgYW5kIG1heGltdW0gc3RhdGUgb2YgdGhlcm1hbCBjb29saW5nIGRldmljZSwgYW5kIHN0YXRlIG9mIGJhdHRlcnkgY2hhcmdpbmcgYW5kIGN1cnJlbnQuPFwvcD5cbjxwPlRoZSBQb3dlciBmdW5jdGlvbnMgb2YgdGhlcm1hbCBpbmNsdWRlczo8XC9wPlxuPHVsPlxuPGxpPmhhbF9wb3dlcl90aGVybWFsX2dldF90ZW1wPFwvbGk+XG48bGk+aGFsX3Bvd2VyX3RoZXJtYWxfZ2V0X3BvbGljeTxcL2xpPlxuPGxpPmhhbF9wb3dlcl90aGVybWFsX3NldF9jb29saW5nX2RldmljZV9zdGF0ZTxcL2xpPlxuPGxpPmhhbF9wb3dlcl90aGVybWFsX2dldF9jb29saW5nX2RldmljZV9zdGF0ZTxcL2xpPlxuPGxpPmhhbF9wb3dlcl90aGVybWFsX2dldF9jb29saW5nX2RldmljZV9tYXhfc3RhdGU8XC9saT5cbjxsaT5oYWxfcG93ZXJfYmF0dGVyeV9zZXRfY2hhcmdpbmdfc3RhdHVzPFwvbGk+XG48bGk+aGFsX3Bvd2VyX2JhdHRlcnlfZ2V0X2NoYXJnaW5nX3N0YXR1czxcL2xpPlxuPGxpPmhhbF9wb3dlcl9iYXR0ZXJ5X3NldF9jaGFyZ2luZ19jdXJyZW50PFwvbGk+XG48bGk+aGFsX3Bvd2VyX2JhdHRlcnlfZ2V0X2NoYXJnaW5nX2N1cnJlbnQ8XC9saT5cbjxcL3VsPlxuPHA+VGhlIGhhcmR3YXJlIG9wZXJhdGlvbnMgcHJvdmlkZWQgYnkgbWVtb3J5IGludm9sdmUgZ2V0dGluZyBvciBzZXR0aW5nIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gZmF1bHQgYXJvdW5kIGJ5dGVzLjxiciBcLz5cblRoaXMgaW5mb3JtYXRpb24gaW5jbHVkZXMgdGhlIG51bWJlciBvZiBieXRlcyByZWFkIGluIGFmdGVyIGEgcGFnZSBmYXVsdC48XC9wPlxuPHA+VGhlIFBvd2VyIGZ1bmN0aW9ucyBvZiBtZW1vcnkgaW5jbHVkZXM6PFwvcD5cbjx1bD5cbjxsaT5oYWxfcG93ZXJfbWVtb3J5X2dldF9mYXVsdF9hcm91bmRfYnl0ZXM8XC9saT5cbjxsaT5oYWxfcG93ZXJfbWVtb3J5X3NldF9mYXVsdF9hcm91bmRfYnl0ZXM8XC9saT5cbjxcL3VsPlxuPHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhlIFBvd2VyIGZlYXR1cmVzIGFuZCB0aGUgbWFjcm9zLCBzZWUgSEFMIFBvd2VyIHByb2dyYW1taW5nIGd1aWRlcyBhbmQgdHV0b3JpYWxzLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5UeXBlZGVmczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD50eXBlZGVmIHN0cnVjdCAgIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjc3RydWN0X19oYWxfX2JhY2tlbmRfX3Bvd2VyX19mdW5jc1wiPl9oYWxfYmFja2VuZF9wb3dlcl9mdW5jczxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNnYWFiNThkYjRhN2M3ODM3ZWNkYTc3ODQ4MWU0NDZjMjQ2XCI+aGFsX2JhY2tlbmRfcG93ZXJfZnVuY3M8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+U3RydWN0dXJlIGZvciBwb3dlciBmdW5jdGlvbnMuPFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPGhyIFwvPlxuPGgyIGlkPVwiY29udGVudC1kYXRhLXN0cnVjdHVyZS1kb2N1bWVudGF0aW9uXCI+PGEgaHJlZj1cIiNjb250ZW50LWRhdGEtc3RydWN0dXJlLWRvY3VtZW50YXRpb25cIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkRhdGEgU3RydWN0dXJlIERvY3VtZW50YXRpb248XC9oMj5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnN0cnVjdCBoYWxfcG93ZXJfcmVzb3VyY2VfZHZmc19vcHM8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIERWRlMgKER5bmFtaWMgVm9sdC4gJmFtcDsgRnJlcS4gU2NhbGluZykgb3BlcmF0aW9ucy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9QT1dFUiAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2E2ODhmYTRmMTI1ODIyZTBhZjAzNTAwNzliZTdjZjdjYlwiPmdldF9jdXJyX2dvdmVybm9yPFwvYT4gKShjaGFyICpyZXNfbmFtZSwgY2hhciAqZ292ZXJub3IpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYWJjNDBmNDI1YmI0MTI0MTUzZTgyYzBmOGI4NWZiOTRlXCI+c2V0X2N1cnJfZ292ZXJub3I8XC9hPiApKGNoYXIgKnJlc19uYW1lLCBjaGFyICpnb3Zlcm5vcik8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhYzhkMmQxNDEwNmRjMGJiMDIxZTY4OGVjNzY1ZmRkOTlcIj5nZXRfYXZhaWxfZ292ZXJub3I8XC9hPiApKGNoYXIgKnJlc19uYW1lLCBjaGFyICoqYXZhaWxfZ292ZXJub3IpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYWUyMmQyNDEwNDBjODVlZDZiYjViZGFjMDVkMGY2Nzg2XCI+Z2V0X2N1cnJfZnJlcTxcL2E+ICkoY2hhciAqcmVzX25hbWUpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYWZkMTE1OGE5YWFjODNkZGNlODljMTU4NWE2MmM5ZjM3XCI+Z2V0X21pbl9mcmVxPFwvYT4gKShjaGFyICpyZXNfbmFtZSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhZTRkMzMzNzlmN2I3ZmFiOTA2ZjBiNWFhNmZjZjNlM2ZcIj5zZXRfbWluX2ZyZXE8XC9hPiApKGNoYXIgKnJlc19uYW1lLCBpbnQgZnJlcSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhMWFjMWIxYTk3ZWUzZjY1YzExNzJhZjg2M2Q2YjQ4ODNcIj5nZXRfbWF4X2ZyZXE8XC9hPiApKGNoYXIgKnJlc19uYW1lKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2E0ZDYwNmI1MDY1YmJhZmJkMzFiMmU4ZTA0NjM5ODUwM1wiPnNldF9tYXhfZnJlcTxcL2E+ICkoY2hhciAqcmVzX25hbWUsIGludCBmcmVxKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2EyNzZkOGZkNzgxY2VhOTM4ZTNiMzE5MzFiNTdhYThiYVwiPmdldF9hdmFpbGFibGVfbWluX2ZyZXE8XC9hPiApKGNoYXIgKnJlc19uYW1lKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2ExOWE1Nzc3NGZkYWQ3MTgwMjMyNGJiYjQzYzc0MDc5NFwiPmdldF9hdmFpbGFibGVfbWF4X2ZyZXE8XC9hPiApKGNoYXIgKnJlc19uYW1lKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2E1ODY0OTk1NzE2N2I4ZTFjOTFiZGExNGU4NWI2ZmEwZVwiPmdldF91cF90aHJlc2hvbGQ8XC9hPiApKGNoYXIgKnJlc19uYW1lKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2E3ODEyODA2NDJiNWUyYjRiMjFlMGIwNzI3ZjVlYzIwN1wiPnNldF91cF90aHJlc2hvbGQ8XC9hPiApKGNoYXIgKnJlc19uYW1lLCBpbnQgdXBfdGhyZXNob2xkKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2FhZTUxYTFhOTgzMWQ0ZjY5ZDJkOWY2MmYxOWUyYjc0MlwiPmdldF9sb2FkX3RhYmxlPFwvYT4gKShjaGFyICpuYW1lLCB2b2lkICpoYWxfcG93ZXJfY3B1X2xvYWRfdGFibGUpPFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPGhyIFwvPlxuPGg0IGlkPVwiY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uXCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb25cIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkZpZWxkIERvY3VtZW50YXRpb248XC9oND5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYWM4ZDJkMTQxMDZkYzBiYjAyMWU2ODhlYzc2NWZkZDk5XCI+aGFsX3Bvd2VyX3Jlc291cmNlX2R2ZnNfb3BzOjpnZXRfYXZhaWxfZ292ZXJub3I8XC9hPikoY2hhciAqcmVzX25hbWUsIGNoYXIgKiphdmFpbF9nb3Zlcm5vcik8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5HZXQgdGhlIGF2YWlsYWJsZSBnb3Zlcm5vcjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2ExOWE1Nzc3NGZkYWQ3MTgwMjMyNGJiYjQzYzc0MDc5NFwiPmhhbF9wb3dlcl9yZXNvdXJjZV9kdmZzX29wczo6Z2V0X2F2YWlsYWJsZV9tYXhfZnJlcTxcL2E+KShjaGFyICpyZXNfbmFtZSk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5HZXQgdGhlIG1heGltdW0gZnJlcXVlbmN5IHdoaWNoIGNhbiBiZSBzZXQgdG8gcmVzb3VyY2U8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhMjc2ZDhmZDc4MWNlYTkzOGUzYjMxOTMxYjU3YWE4YmFcIj5oYWxfcG93ZXJfcmVzb3VyY2VfZHZmc19vcHM6OmdldF9hdmFpbGFibGVfbWluX2ZyZXE8XC9hPikoY2hhciAqcmVzX25hbWUpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+R2V0IHRoZSBtaW5pbXVtIGZyZXF1ZW5jeSB3aGljaCBjYW4gYmUgc2V0IHRvIHJlc291cmNlPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYWUyMmQyNDEwNDBjODVlZDZiYjViZGFjMDVkMGY2Nzg2XCI+aGFsX3Bvd2VyX3Jlc291cmNlX2R2ZnNfb3BzOjpnZXRfY3Vycl9mcmVxPFwvYT4pKGNoYXIgKnJlc19uYW1lKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkdldCB0aGUgY3VycmVudCBmcmVxdWVuY3k8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhNjg4ZmE0ZjEyNTgyMmUwYWYwMzUwMDc5YmU3Y2Y3Y2JcIj5oYWxfcG93ZXJfcmVzb3VyY2VfZHZmc19vcHM6OmdldF9jdXJyX2dvdmVybm9yPFwvYT4pKGNoYXIgKnJlc19uYW1lLCBjaGFyICpnb3Zlcm5vcik8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5HZXQgdGhlIGN1cnJlbnQgZ292ZXJub3I8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhYWU1MWExYTk4MzFkNGY2OWQyZDlmNjJmMTllMmI3NDJcIj5oYWxfcG93ZXJfcmVzb3VyY2VfZHZmc19vcHM6OmdldF9sb2FkX3RhYmxlPFwvYT4pKGNoYXIgKm5hbWUsIHZvaWQgKmhhbF9wb3dlcl9jcHVfbG9hZF90YWJsZSk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5HZXQgdGhlIGxvYWRfdGFibGUgb2YgZWFjaCByZXNvdXJjZSB0byBlc3RpbWF0ZSB0aGUgc3lzdGVtIGxvYWQ8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhMWFjMWIxYTk3ZWUzZjY1YzExNzJhZjg2M2Q2YjQ4ODNcIj5oYWxfcG93ZXJfcmVzb3VyY2VfZHZmc19vcHM6OmdldF9tYXhfZnJlcTxcL2E+KShjaGFyICpyZXNfbmFtZSk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5HZXQgdGhlIG1heGltdW0gZnJlcXVlbmN5PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYWZkMTE1OGE5YWFjODNkZGNlODljMTU4NWE2MmM5ZjM3XCI+aGFsX3Bvd2VyX3Jlc291cmNlX2R2ZnNfb3BzOjpnZXRfbWluX2ZyZXE8XC9hPikoY2hhciAqcmVzX25hbWUpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+R2V0IHRoZSBtaW5pbXVtIGZyZXF1ZW5jeTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2E1ODY0OTk1NzE2N2I4ZTFjOTFiZGExNGU4NWI2ZmEwZVwiPmhhbF9wb3dlcl9yZXNvdXJjZV9kdmZzX29wczo6Z2V0X3VwX3RocmVzaG9sZDxcL2E+KShjaGFyICpyZXNfbmFtZSk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5HZXQgdGhlIHVwX3RocmVzaG9sZCB0byBzdXBwb3J0IGJvb3N0aW5nPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYWJjNDBmNDI1YmI0MTI0MTUzZTgyYzBmOGI4NWZiOTRlXCI+aGFsX3Bvd2VyX3Jlc291cmNlX2R2ZnNfb3BzOjpzZXRfY3Vycl9nb3Zlcm5vcjxcL2E+KShjaGFyICpyZXNfbmFtZSwgY2hhciAqZ292ZXJub3IpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U2V0IHRoZSBjdXJyZW50IGdvdmVybm9yPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYTRkNjA2YjUwNjViYmFmYmQzMWIyZThlMDQ2Mzk4NTAzXCI+aGFsX3Bvd2VyX3Jlc291cmNlX2R2ZnNfb3BzOjpzZXRfbWF4X2ZyZXE8XC9hPikoY2hhciAqcmVzX25hbWUsIGludCBmcmVxKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNldCB0aGUgbWF4aW11bSBmcmVxdWVuY3k8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhZTRkMzMzNzlmN2I3ZmFiOTA2ZjBiNWFhNmZjZjNlM2ZcIj5oYWxfcG93ZXJfcmVzb3VyY2VfZHZmc19vcHM6OnNldF9taW5fZnJlcTxcL2E+KShjaGFyICpyZXNfbmFtZSwgaW50IGZyZXEpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U2V0IHRoZSBtaW5pbXVtIGZyZXF1ZW5jeTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2E3ODEyODA2NDJiNWUyYjRiMjFlMGIwNzI3ZjVlYzIwN1wiPmhhbF9wb3dlcl9yZXNvdXJjZV9kdmZzX29wczo6c2V0X3VwX3RocmVzaG9sZDxcL2E+KShjaGFyICpyZXNfbmFtZSwgaW50IHVwX3RocmVzaG9sZCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TZXQgdGhlIHVwX3RocmVzaG9sZCB0byBzdXBwb3J0IGJvb3N0aW5nPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnN0cnVjdCBoYWxfcG93ZXJfcmVzb3VyY2VfaG90cGx1Z19vcHM8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIENQVSBob3RwbHVnIG9wZXJhdGlvbnMuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfUE9XRVIgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkRhdGEgRmllbGRzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhMTg5NTRhYjkxN2MzMTE1ZjczODVlOTU4MDJmMzAyMWFcIj5nZXRfb25saW5lX3N0YXRlPFwvYT4gKShjaGFyICpyZXNfbmFtZSwgaW50IGNwdSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhNzJlNmQxZjI5MjZiNWMwZWEwYThhZWFlM2M2NDBmMDlcIj5zZXRfb25saW5lX3N0YXRlPFwvYT4gKShjaGFyICpyZXNfbmFtZSwgaW50IGNwdSwgaW50IG9uKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2E4NTQ1N2VlNjYwN2JiYWZhNWZiNzIyM2RhNDE2ZDFiYVwiPmdldF9vbmxpbmVfbWF4X251bTxcL2E+ICkoY2hhciAqcmVzX25hbWUpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYWU1MTdjNmMzMDk3NmI5NmE3YjA5MTI5M2MxYjFkNTJmXCI+c2V0X29ubGluZV9tYXhfbnVtPFwvYT4gKShjaGFyICpyZXNfbmFtZSwgaW50IG1heF9udW0pPFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPGhyIFwvPlxuPGg0IGlkPVwiY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTFcIj48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0xXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2E4NTQ1N2VlNjYwN2JiYWZhNWZiNzIyM2RhNDE2ZDFiYVwiPmhhbF9wb3dlcl9yZXNvdXJjZV9ob3RwbHVnX29wczo6Z2V0X29ubGluZV9tYXhfbnVtPFwvYT4pKGNoYXIgKnJlc19uYW1lKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkdldCB0aGUgbWF4aW11bSBudW1iZXIgb2Ygb25saW5lIENQVXM8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhMTg5NTRhYjkxN2MzMTE1ZjczODVlOTU4MDJmMzAyMWFcIj5oYWxfcG93ZXJfcmVzb3VyY2VfaG90cGx1Z19vcHM6OmdldF9vbmxpbmVfc3RhdGU8XC9hPikoY2hhciAqcmVzX25hbWUsIGludCBjcHUpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+R2V0IHRoZSBvbmxpbmUgc3RhdHVzIG9mIHJlc291cmNlPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYWU1MTdjNmMzMDk3NmI5NmE3YjA5MTI5M2MxYjFkNTJmXCI+aGFsX3Bvd2VyX3Jlc291cmNlX2hvdHBsdWdfb3BzOjpzZXRfb25saW5lX21heF9udW08XC9hPikoY2hhciAqcmVzX25hbWUsIGludCBtYXhfbnVtKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNldCB0aGUgbWF4aW11bSBudW1iZXIgb2Ygb25saW5lIENQVXM8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhNzJlNmQxZjI5MjZiNWMwZWEwYThhZWFlM2M2NDBmMDlcIj5oYWxfcG93ZXJfcmVzb3VyY2VfaG90cGx1Z19vcHM6OnNldF9vbmxpbmVfc3RhdGU8XC9hPikoY2hhciAqcmVzX25hbWUsIGludCBjcHUsIGludCBvbik8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TZXQgdGhlIG9ubGluZSBzdGF0dXMgb2YgcmVzb3VyY2U8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IGhhbF9wb3dlcl9yZXNvdXJjZV90bXVfb3BzPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBUTVUgKFRoZXJtYWwgTWFuYWdlbWVudCBVbml0KSBvcGVyYXRpb25zLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1BPV0VSIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYTQxZjJlYTc2OWUwZTY4YjVkYzdhODMyODkyNjIwMTcwXCI+Z2V0X3RlbXA8XC9hPiApKGNoYXIgKnJlc190aGVybWFsX25hbWUpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYTEzYzQ2YjBhMDE3N2ZjNjQ1YjZlNjI5YTU4ODMyMDc2XCI+Z2V0X3BvbGljeTxcL2E+ICkoY2hhciAqcmVzX3RoZXJtYWxfbmFtZSwgY2hhciAqcG9saWN5KTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2E5YTBlZGNkNGExNWQyYzBmN2IxOTVkNTczNjZlOTBmZlwiPnNldF9jb29saW5nX2RldmljZV9zdGF0ZTxcL2E+ICkoY2hhciAqY29vbGluZ19kZXZpY2VfbmFtZSwgaW50IHN0YXRlKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2E4ZWFlZTBkNTgwZjhhMGU1MjM0ZDZlNTRmYzU2Mjc3ZFwiPmdldF9jb29saW5nX2RldmljZV9zdGF0ZTxcL2E+ICkoY2hhciAqY29vbGluZ19kZXZpY2VfbmFtZSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhZmYzODI5ZDdhYTY3ODk5MTBmYjExNjE4OTU5ZTBkMGJcIj5nZXRfY29vbGluZ19kZXZpY2VfbWF4X3N0YXRlPFwvYT4gKShjaGFyICpjb29saW5nX2RldmljZV9uYW1lKTxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0yXCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMlwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhZmYzODI5ZDdhYTY3ODk5MTBmYjExNjE4OTU5ZTBkMGJcIj5oYWxfcG93ZXJfcmVzb3VyY2VfdG11X29wczo6Z2V0X2Nvb2xpbmdfZGV2aWNlX21heF9zdGF0ZTxcL2E+KShjaGFyICpjb29saW5nX2RldmljZV9uYW1lKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkdldCB0aGUgbWF4aW11bSBzdGF0ZSBvZiB0aGVybWFsIGNvb2xpbmctZGV2aWNlPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYThlYWVlMGQ1ODBmOGEwZTUyMzRkNmU1NGZjNTYyNzdkXCI+aGFsX3Bvd2VyX3Jlc291cmNlX3RtdV9vcHM6OmdldF9jb29saW5nX2RldmljZV9zdGF0ZTxcL2E+KShjaGFyICpjb29saW5nX2RldmljZV9uYW1lKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkdldCB0aGUgc3RhdGUgb2YgdGhlcm1hbCBjb29saW5nLWRldmljZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2ExM2M0NmIwYTAxNzdmYzY0NWI2ZTYyOWE1ODgzMjA3NlwiPmhhbF9wb3dlcl9yZXNvdXJjZV90bXVfb3BzOjpnZXRfcG9saWN5PFwvYT4pKGNoYXIgKnJlc190aGVybWFsX25hbWUsIGNoYXIgKnBvbGljeSk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5HZXQgdGhlIHBvbGljeSBvZiB0aGVybWFsIG1hbmFnZW1lbnQgdW5pdDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2E0MWYyZWE3NjllMGU2OGI1ZGM3YTgzMjg5MjYyMDE3MFwiPmhhbF9wb3dlcl9yZXNvdXJjZV90bXVfb3BzOjpnZXRfdGVtcDxcL2E+KShjaGFyICpyZXNfdGhlcm1hbF9uYW1lKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkdldCB0aGUgY3VycmVudCB0ZW1wZXJhdHVyZSBvZiByZXNvdXJjZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2E5YTBlZGNkNGExNWQyYzBmN2IxOTVkNTczNjZlOTBmZlwiPmhhbF9wb3dlcl9yZXNvdXJjZV90bXVfb3BzOjpzZXRfY29vbGluZ19kZXZpY2Vfc3RhdGU8XC9hPikoY2hhciAqY29vbGluZ19kZXZpY2VfbmFtZSwgaW50IHN0YXRlKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNldCB0aGUgc3RhdGUgb2YgdGhlcm1hbCBjb29saW5nLWRldmljZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgaGFsX3Bvd2VyX3Jlc291cmNlX2JhdHRlcnlfb3BzPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBiYXR0ZXJ5IG9wZXJhdGlvbnMuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfUE9XRVIgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkRhdGEgRmllbGRzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhNTM1YWEzOGE2N2M3NzYxNWNlOWUyNDJhOWNlYjljNjlcIj5zZXRfY2hhcmdpbmdfc3RhdHVzPFwvYT4gKShjaGFyICpyZXNfbmFtZSwgaW50IHN0YXRlKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2E0MGI0NDI3MGQxNjJlMTc2NmE0M2Q3YzQ4ZWE0Y2JkMFwiPmdldF9jaGFyZ2luZ19zdGF0dXM8XC9hPiApKGNoYXIgKnJlc19uYW1lKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2FmMDEyZDIwZjBkODE3MjVmMDYwM2JiYWY2YjBiYjQyNFwiPnNldF9jaGFyZ2luZ19jdXJyZW50PFwvYT4gKShjaGFyICpyZXNfbmFtZSwgaW50IGNoYXJnaW5nX2N1cnJlbnRfdUEpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYTczNWY2ZjkyZDM4YzNkZDRlNGNiZGE4YThlNDc2Yzg0XCI+Z2V0X2NoYXJnaW5nX2N1cnJlbnQ8XC9hPiApKGNoYXIgKnJlc19uYW1lKTxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0zXCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tM1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhNzM1ZjZmOTJkMzhjM2RkNGU0Y2JkYThhOGU0NzZjODRcIj5oYWxfcG93ZXJfcmVzb3VyY2VfYmF0dGVyeV9vcHM6OmdldF9jaGFyZ2luZ19jdXJyZW50PFwvYT4pKGNoYXIgKnJlc19uYW1lKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkdldCB0aGUgYmF0dGVyeSBjaGFyZ2luZyBjdXJyZW50ICh1bml0OiB1QSk8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhNDBiNDQyNzBkMTYyZTE3NjZhNDNkN2M0OGVhNGNiZDBcIj5oYWxfcG93ZXJfcmVzb3VyY2VfYmF0dGVyeV9vcHM6OmdldF9jaGFyZ2luZ19zdGF0dXM8XC9hPikoY2hhciAqcmVzX25hbWUpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+R2V0IHRoZSBzdGF0ZSBvZiBiYXR0ZXJ5IGNoYXJnaW5nPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYWYwMTJkMjBmMGQ4MTcyNWYwNjAzYmJhZjZiMGJiNDI0XCI+aGFsX3Bvd2VyX3Jlc291cmNlX2JhdHRlcnlfb3BzOjpzZXRfY2hhcmdpbmdfY3VycmVudDxcL2E+KShjaGFyICpyZXNfbmFtZSwgaW50IGNoYXJnaW5nX2N1cnJlbnRfdUEpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U2V0IHRoZSBiYXR0ZXJ5IGNoYXJnaW5nIGN1cnJlbnQgKHVuaXQ6IHVBKTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2E1MzVhYTM4YTY3Yzc3NjE1Y2U5ZTI0MmE5Y2ViOWM2OVwiPmhhbF9wb3dlcl9yZXNvdXJjZV9iYXR0ZXJ5X29wczo6c2V0X2NoYXJnaW5nX3N0YXR1czxcL2E+KShjaGFyICpyZXNfbmFtZSwgaW50IHN0YXRlKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNldCB0aGUgc3RhdGUgb2YgYmF0dGVyeSBjaGFyZ2luZzxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgaGFsX3Bvd2VyX3Jlc291cmNlX2NwdTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3IgQ1BVIEhcL1cuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfUE9XRVIgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkRhdGEgRmllbGRzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPnN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI3N0cnVjdGhhbF9fcG93ZXJfX3Jlc291cmNlX19kdmZzX19vcHNcIj5oYWxfcG93ZXJfcmVzb3VyY2VfZHZmc19vcHM8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYTg2NTQ3YjIwYTc0YWViN2I3NjUyNjQwOWE1NmIwOGU4XCI+ZHZmczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5zdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3Bvd2VyX19yZXNvdXJjZV9fdG11X19vcHNcIj5oYWxfcG93ZXJfcmVzb3VyY2VfdG11X29wczxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhN2Y3ZjRlZGE3ZGI2YzQyZmQxZWNiZGQ2MTBiODVjZTZcIj50bXU8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+c3RydWN0ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3Bvd2VyX19yZXNvdXJjZV9faG90cGx1Z19fb3BzXCI+aGFsX3Bvd2VyX3Jlc291cmNlX2hvdHBsdWdfb3BzPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2E2NDUxYTcwMTBiNjIwNmIwYWRiYzE0OWFhMTcxMWRmY1wiPmhvdHBsdWc8XC9hPjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi00XCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tNFwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjc3RydWN0aGFsX19wb3dlcl9fcmVzb3VyY2VfX2R2ZnNfX29wc1wiPmhhbF9wb3dlcl9yZXNvdXJjZV9kdmZzX29wczxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYTg2NTQ3YjIwYTc0YWViN2I3NjUyNjQwOWE1NmIwOGU4XCI+aGFsX3Bvd2VyX3Jlc291cmNlX2NwdTo6ZHZmczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RnVuY3Rpb24gbGlzdHMgZm9yIERWRlMgKER5bmFtaWMgVm9sdC4gJmFtcDsgRnJlcS4gU2NhbGluZyk8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjc3RydWN0aGFsX19wb3dlcl9fcmVzb3VyY2VfX2hvdHBsdWdfX29wc1wiPmhhbF9wb3dlcl9yZXNvdXJjZV9ob3RwbHVnX29wczxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYTY0NTFhNzAxMGI2MjA2YjBhZGJjMTQ5YWExNzExZGZjXCI+aGFsX3Bvd2VyX3Jlc291cmNlX2NwdTo6aG90cGx1ZzxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RnVuY3Rpb24gbGlzdHMgZm9yIHRoZSBDUFUgb25cL29mZjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3Bvd2VyX19yZXNvdXJjZV9fdG11X19vcHNcIj5oYWxfcG93ZXJfcmVzb3VyY2VfdG11X29wczxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYTdmN2Y0ZWRhN2RiNmM0MmZkMWVjYmRkNjEwYjg1Y2U2XCI+aGFsX3Bvd2VyX3Jlc291cmNlX2NwdTo6dG11PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5GdW5jdGlvbiBsaXN0cyBmb3IgZnVuY3Rpb24gbGlzdHMgZm9yIHRoZSBUTVUgKFRoZXJtYWwgTWFuYWdlbWVudCBVbml0KTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgaGFsX3Bvd2VyX3Jlc291cmNlX2J1czxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3IgTWVtb3J5IEJ1cyBIXC9XLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1BPV0VSIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD5zdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3Bvd2VyX19yZXNvdXJjZV9fZHZmc19fb3BzXCI+aGFsX3Bvd2VyX3Jlc291cmNlX2R2ZnNfb3BzPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2EwYTE0ZDJlOWQ1YWZkYWQ4MGI2ODUzZjhhNDUwMzFiZVwiPmR2ZnM8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+c3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjc3RydWN0aGFsX19wb3dlcl9fcmVzb3VyY2VfX3RtdV9fb3BzXCI+aGFsX3Bvd2VyX3Jlc291cmNlX3RtdV9vcHM8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYTFiOWZkNTU0ZDk4YTQzZDFiZWFlYzQ1YTQ5NTUwYzE2XCI+dG11PFwvYT48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDQgaWQ9XCJjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tNVwiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTVcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkZpZWxkIERvY3VtZW50YXRpb248XC9oND5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI3N0cnVjdGhhbF9fcG93ZXJfX3Jlc291cmNlX19kdmZzX19vcHNcIj5oYWxfcG93ZXJfcmVzb3VyY2VfZHZmc19vcHM8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2EwYTE0ZDJlOWQ1YWZkYWQ4MGI2ODUzZjhhNDUwMzFiZVwiPmhhbF9wb3dlcl9yZXNvdXJjZV9idXM6OmR2ZnM8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkZ1bmN0aW9uIGxpc3RzIGZvciBEVkZTIChEeW5hbWljIFZvbHQuICZhbXA7IEZyZXEuIFNjYWxpbmcpPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI3N0cnVjdGhhbF9fcG93ZXJfX3Jlc291cmNlX190bXVfX29wc1wiPmhhbF9wb3dlcl9yZXNvdXJjZV90bXVfb3BzPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhMWI5ZmQ1NTRkOThhNDNkMWJlYWVjNDVhNDk1NTBjMTZcIj5oYWxfcG93ZXJfcmVzb3VyY2VfYnVzOjp0bXU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkZ1bmN0aW9uIGxpc3RzIGZvciBmdW5jdGlvbiBsaXN0cyBmb3IgdGhlIFRNVSAoVGhlcm1hbCBNYW5hZ2VtZW50IFVuaXQpPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnN0cnVjdCBoYWxfcG93ZXJfcmVzb3VyY2VfZ3B1PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBHUFUgSFwvVy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9QT1dFUiAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+c3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjc3RydWN0aGFsX19wb3dlcl9fcmVzb3VyY2VfX2R2ZnNfX29wc1wiPmhhbF9wb3dlcl9yZXNvdXJjZV9kdmZzX29wczxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhODZmZTAwNWExOWVmYmI4MGE2NDMyNzkyZDQ0ODZjNWZcIj5kdmZzPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI3N0cnVjdGhhbF9fcG93ZXJfX3Jlc291cmNlX190bXVfX29wc1wiPmhhbF9wb3dlcl9yZXNvdXJjZV90bXVfb3BzPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2E5MGRlOGI4NDlhYmYwMWNiZDE3NDQyNDg0NWVmOTQ4MlwiPnRtdTxcL2E+PFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPGhyIFwvPlxuPGg0IGlkPVwiY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTZcIj48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi02XCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3Bvd2VyX19yZXNvdXJjZV9fZHZmc19fb3BzXCI+aGFsX3Bvd2VyX3Jlc291cmNlX2R2ZnNfb3BzPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhODZmZTAwNWExOWVmYmI4MGE2NDMyNzkyZDQ0ODZjNWZcIj5oYWxfcG93ZXJfcmVzb3VyY2VfZ3B1OjpkdmZzPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5GdW5jdGlvbiBsaXN0cyBmb3IgRFZGUyAoRHluYW1pYyBWb2x0LiAmYW1wOyBGcmVxLiBTY2FsaW5nKTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3Bvd2VyX19yZXNvdXJjZV9fdG11X19vcHNcIj5oYWxfcG93ZXJfcmVzb3VyY2VfdG11X29wczxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYTkwZGU4Yjg0OWFiZjAxY2JkMTc0NDI0ODQ1ZWY5NDgyXCI+aGFsX3Bvd2VyX3Jlc291cmNlX2dwdTo6dG11PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5GdW5jdGlvbiBsaXN0cyBmb3IgZnVuY3Rpb24gbGlzdHMgZm9yIHRoZSBUTVUgKFRoZXJtYWwgTWFuYWdlbWVudCBVbml0KTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgaGFsX3Bvd2VyX3Jlc291cmNlX21lbW9yeTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3IgTWVtb3J5IEhcL1cuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfUE9XRVIgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkRhdGEgRmllbGRzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhODhiYTMzNDIzMGExYzFhYzQxMDYyY2M3ZDYyNjEzMjNcIj5nZXRfZmF1bHRfYXJvdW5kX2J5dGVzPFwvYT4gKShjaGFyICpyZXNfbmFtZSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhMjM5ZmJmNDM5ZmU5MDZiY2I4OGVhMjMwMGYxMmFhZmJcIj5zZXRfZmF1bHRfYXJvdW5kX2J5dGVzPFwvYT4gKShjaGFyICpyZXNfbmFtZSwgaW50IGZhdWx0X2Fyb3VuZF9ieXRlcyk8XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDQgaWQ9XCJjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tN1wiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTdcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkZpZWxkIERvY3VtZW50YXRpb248XC9oND5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYTg4YmEzMzQyMzBhMWMxYWM0MTA2MmNjN2Q2MjYxMzIzXCI+aGFsX3Bvd2VyX3Jlc291cmNlX21lbW9yeTo6Z2V0X2ZhdWx0X2Fyb3VuZF9ieXRlczxcL2E+KShjaGFyICpyZXNfbmFtZSk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5HZXQgdGhlIFwvc3lzXC9rZXJuZWxcL2RlYnVnXC9mYXVsdF9hcm91bmRfYnl0ZXM8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhMjM5ZmJmNDM5ZmU5MDZiY2I4OGVhMjMwMGYxMmFhZmJcIj5oYWxfcG93ZXJfcmVzb3VyY2VfbWVtb3J5OjpzZXRfZmF1bHRfYXJvdW5kX2J5dGVzPFwvYT4pKGNoYXIgKnJlc19uYW1lLCBpbnQgZmF1bHRfYXJvdW5kX2J5dGVzKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNldCB0aGUgXC9zeXNcL2tlcm5lbFwvZGVidWdcL2ZhdWx0X2Fyb3VuZF9ieXRlczxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgaGFsX3Bvd2VyX3Jlc291cmNlX2JhdHRlcnk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIEJhdHRlcnkgSFwvVy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9QT1dFUiAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+c3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjc3RydWN0aGFsX19wb3dlcl9fcmVzb3VyY2VfX3RtdV9fb3BzXCI+aGFsX3Bvd2VyX3Jlc291cmNlX3RtdV9vcHM8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYTJlNmY2NjYyOTUwY2JhZTgyNWI3MDQxODYzZDMyZjUwXCI+dG11PFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnN0cnVjdCAgIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjc3RydWN0aGFsX19wb3dlcl9fcmVzb3VyY2VfX2JhdHRlcnlfX29wc1wiPmhhbF9wb3dlcl9yZXNvdXJjZV9iYXR0ZXJ5X29wczxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhYmNhMzI5YmRiNTg0ZGY5N2FhNDFiZmI0NmFjNTQxNjhcIj5iYXR0ZXJ5PFwvYT48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDQgaWQ9XCJjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tOFwiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLThcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkZpZWxkIERvY3VtZW50YXRpb248XC9oND5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI3N0cnVjdGhhbF9fcG93ZXJfX3Jlc291cmNlX19iYXR0ZXJ5X19vcHNcIj5oYWxfcG93ZXJfcmVzb3VyY2VfYmF0dGVyeV9vcHM8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2FiY2EzMjliZGI1ODRkZjk3YWE0MWJmYjQ2YWM1NDE2OFwiPmhhbF9wb3dlcl9yZXNvdXJjZV9iYXR0ZXJ5OjpiYXR0ZXJ5PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5GdW5jdGlvbiBsaXN0cyBmb3IgYmF0dGVyeTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3Bvd2VyX19yZXNvdXJjZV9fdG11X19vcHNcIj5oYWxfcG93ZXJfcmVzb3VyY2VfdG11X29wczxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYTJlNmY2NjYyOTUwY2JhZTgyNWI3MDQxODYzZDMyZjUwXCI+aGFsX3Bvd2VyX3Jlc291cmNlX2JhdHRlcnk6OnRtdTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RnVuY3Rpb24gbGlzdHMgZm9yIHRoZXJtYWwgbWFuYWdlbWVudCB1bml0PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnN0cnVjdCBfaGFsX2JhY2tlbmRfcG93ZXJfZnVuY3M8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIHBvd2VyIGZ1bmN0aW9ucy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9QT1dFUiAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+c3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjc3RydWN0aGFsX19wb3dlcl9fcmVzb3VyY2VfX2NwdVwiPmhhbF9wb3dlcl9yZXNvdXJjZV9jcHU8XC9hPiAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhYWFjY2QxY2Y3MmZjMzlkODZmZWMzZjYwOTBjNTRiZDlcIj5jcHU8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+c3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjc3RydWN0aGFsX19wb3dlcl9fcmVzb3VyY2VfX2J1c1wiPmhhbF9wb3dlcl9yZXNvdXJjZV9idXM8XC9hPiAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhMTdjMDU4ZjNkZmU0M2M5NjQzYTZjNWNiNzZjMzNjODlcIj5idXM8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+c3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjc3RydWN0aGFsX19wb3dlcl9fcmVzb3VyY2VfX2dwdVwiPmhhbF9wb3dlcl9yZXNvdXJjZV9ncHU8XC9hPiAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhNDRkMmYwYThlNTMxNGRjN2JhODcxZDIzZDIzN2JiZDhcIj5ncHU8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+c3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjc3RydWN0aGFsX19wb3dlcl9fcmVzb3VyY2VfX21lbW9yeVwiPmhhbF9wb3dlcl9yZXNvdXJjZV9tZW1vcnk8XC9hPiAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhZWU3OWE3MTQ3N2NkNmZiMjgyY2NjMjhjY2UyMjBmNzJcIj5tZW1vcnk8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+c3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjc3RydWN0aGFsX19wb3dlcl9fcmVzb3VyY2VfX2JhdHRlcnlcIj5oYWxfcG93ZXJfcmVzb3VyY2VfYmF0dGVyeTxcL2E+ICo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2FlNzJjMDYxY2M3NTkwZTNkZjRhYTg2M2MwOTM5MWQ4M1wiPmJhdHRlcnk8XC9hPjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi05XCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tOVwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjc3RydWN0aGFsX19wb3dlcl9fcmVzb3VyY2VfX2JhdHRlcnlcIj5oYWxfcG93ZXJfcmVzb3VyY2VfYmF0dGVyeTxcL2E+KiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2FlNzJjMDYxY2M3NTkwZTNkZjRhYTg2M2MwOTM5MWQ4M1wiPl9oYWxfYmFja2VuZF9wb3dlcl9mdW5jczo6YmF0dGVyeTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RnVuY3Rpb24gbGlzdHMgZm9yIGJhdHRlcnk8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjc3RydWN0aGFsX19wb3dlcl9fcmVzb3VyY2VfX2J1c1wiPmhhbF9wb3dlcl9yZXNvdXJjZV9idXM8XC9hPiogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhMTdjMDU4ZjNkZmU0M2M5NjQzYTZjNWNiNzZjMzNjODlcIj5faGFsX2JhY2tlbmRfcG93ZXJfZnVuY3M6OmJ1czxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RnVuY3Rpb24gbGlzdHMgZm9yIGJ1czxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNzdHJ1Y3RoYWxfX3Bvd2VyX19yZXNvdXJjZV9fY3B1XCI+aGFsX3Bvd2VyX3Jlc291cmNlX2NwdTxcL2E+KiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI2FhYWNjZDFjZjcyZmMzOWQ4NmZlYzNmNjA5MGM1NGJkOVwiPl9oYWxfYmFja2VuZF9wb3dlcl9mdW5jczo6Y3B1PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5GdW5jdGlvbiBsaXN0cyBmb3IgQ1BVPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFLm1kI3N0cnVjdGhhbF9fcG93ZXJfX3Jlc291cmNlX19ncHVcIj5oYWxfcG93ZXJfcmVzb3VyY2VfZ3B1PFwvYT4qIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjYTQ0ZDJmMGE4ZTUzMTRkYzdiYTg3MWQyM2QyMzdiYmQ4XCI+X2hhbF9iYWNrZW5kX3Bvd2VyX2Z1bmNzOjpncHU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkZ1bmN0aW9uIGxpc3RzIGZvciBHUFU8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX1BPV0VSX19NT0RVTEUubWQjc3RydWN0aGFsX19wb3dlcl9fcmVzb3VyY2VfX21lbW9yeVwiPmhhbF9wb3dlcl9yZXNvdXJjZV9tZW1vcnk8XC9hPiogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNhZWU3OWE3MTQ3N2NkNmZiMjgyY2NjMjhjY2UyMjBmNzJcIj5faGFsX2JhY2tlbmRfcG93ZXJfZnVuY3M6Om1lbW9yeTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RnVuY3Rpb24gbGlzdHMgZm9yIG1lbW9yeTxcL3A+XG48aHIgXC8+XG48aDIgaWQ9XCJjb250ZW50LXR5cGVkZWYtZG9jdW1lbnRhdGlvblwiPjxhIGhyZWY9XCIjY29udGVudC10eXBlZGVmLWRvY3VtZW50YXRpb25cIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlR5cGVkZWYgRG9jdW1lbnRhdGlvbjxcL2gyPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBzdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNzdHJ1Y3RfX2hhbF9fYmFja2VuZF9fcG93ZXJfX2Z1bmNzXCI+X2hhbF9iYWNrZW5kX3Bvd2VyX2Z1bmNzPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fUE9XRVJfX01PRFVMRS5tZCNnYWFiNThkYjRhN2M3ODM3ZWNkYTc3ODQ4MWU0NDZjMjQ2XCI+aGFsX2JhY2tlbmRfcG93ZXJfZnVuY3M8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3IgcG93ZXIgZnVuY3Rpb25zLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX1BPV0VSIDEuMDxcL3A+XG48aHIgXC8+XG48cD5FeGNlcHQgYXMgbm90ZWQsIHRoaXMgY29udGVudCAtIGV4Y2x1ZGluZyB0aGUgQ29kZSBFeGFtcGxlcyAtIGlzIGxpY2Vuc2VkIHVuZGVyIDxhIGhyZWY9XCJodHRwOlwvXC9jcmVhdGl2ZWNvbW1vbnMub3JnXC9saWNlbnNlc1wvYnlcLzMuMFwvbGVnYWxjb2RlXCI+Q3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbiAzLjA8XC9hPlxuYW5kIGFsbCBvZiB0aGUgQ29kZSBFeGFtcGxlcyBjb250YWluZWQgaGVyZWluIGFyZSBsaWNlbnNlZCB1bmRlciA8YSBocmVmPVwiaHR0cHM6XC9cL3d3dy50aXplbi5vcmdcL2JzZC0zLWNsYXVzZS1saWNlbnNlXCI+QlNELTMtQ2xhdXNlPFwvYT4uPGJyIFwvPlxuRm9yIGRldGFpbHMsIHNlZSB0aGUgPGEgaHJlZj1cImh0dHBzOlwvXC93d3cudGl6ZW4ub3JnXC9jb250ZW50LWxpY2Vuc2VcIj5Db250ZW50IExpY2Vuc2U8XC9hPi48XC9wPlxuIiwidGFibGVfb2ZfY29udGVudCI6Ijx1bCBjbGFzcz1cInRhYmxlLW9mLWNvbnRlbnRzXCI+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXJlcXVpcmVkLWhlYWRlclwiPlJlcXVpcmVkIEhlYWRlcjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LW92ZXJ2aWV3XCI+T3ZlcnZpZXc8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1kYXRhLXN0cnVjdHVyZS1kb2N1bWVudGF0aW9uXCI+RGF0YSBTdHJ1Y3R1cmUgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb25cIj5GaWVsZCBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0xXCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMlwiPkZpZWxkIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTNcIj5GaWVsZCBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi00XCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tNVwiPkZpZWxkIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTZcIj5GaWVsZCBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi03XCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tOFwiPkZpZWxkIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTlcIj5GaWVsZCBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtdHlwZWRlZi1kb2N1bWVudGF0aW9uXCI+VHlwZWRlZiBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxcL3VsPlxuIiwidGl0bGUiOiJUaXplbiBIQUwgQVBJOiBQb3dlciIsInJhdyI6bnVsbH0seyJjbGFzcyI6IkFwcFxcU2VydmljZXNcXERvY3VtZW50YXRpb25cXERhdGFcXFJlbmRlcmVkTWFya2Rvd24iLCJzIjoid3JibCJ9XX0seyJzIjoiYXJyIn1dfSwibWVtbyI6eyJpZCI6ImtVYTVpN2pKc1Z4RkhZV1V6YmwyIiwibmFtZSI6Il9fbW91bnRQYXJhbXNDb250YWluZXIiLCJwYXRoIjoiZG9jc1wvcGxhdGZvcm1cL2hhbFwvYXBpXC8xLjAuMFwvZ3JvdXBfX0hBTEFQSV9fSEFMX19QT1dFUl9fTU9EVUxFIiwibWV0aG9kIjoiR0VUIiwicmVsZWFzZSI6ImEtYS1hIn0sImNoZWNrc3VtIjoiY2U3NjFkOTAzZjVlZTU3NzA1NWFlMjM3MjVlNGQ5MjgyZmM5OTQ4ZTc1YjdhODgyNjU5NTQ4MDA2ZjIzOWQzZiJ9')" >

For the best experience,
Please visit us from a computer

Copyright © 2026 SAMSUNG. All rights reserved.

Customize your cookie preferences

You can enable or disable non-essential cookies. Essential cookies are always on to ensure the site works properly and to keep you signed in.

Necessary

These cookies are necessary for the website to function properly and cannot be switched off. They help with things like logging in and setting your privacy preferences.

Always on

Analytics

These cookies help us improve the site by tracking which pages are most popular and how visitors move around the site.

Enable analytics cookies
Public Forum Public Forum
Employees only. Please sign in with your company account.