Application

Chose application
.NET Native Web Flutter
Chose version
ver. 14.0 ver. 13.0 ver. 12.0 ver. 11.0 ver. 10.0 ver. 9.0 ver. 8.0 ver. 7.0 ver. 6.0 ver. 5.0 ver. 4.0
Choose device
Tizen.Applications.EventManager.ApplicationEventManager class.<\/p>\n<\/li>\n<li>\n<p>Event subscription<\/p>\n<p>You can <a href=https://samsungtizenos.com/"#manage\">subscribe to an event<\/a> using the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Applications.EventManager.EventReceiver.md/">Tizen.Applications.EventManager.EventReceiver class.<\/p>\n<\/li>\n<li>\n<p>Launch-On-Events<\/p>\n<p>You can <a href=https://samsungtizenos.com/"#launch\">launch<\/a> the service applications when the desired target event occurs.<\/p>\n<\/li>\n<\/ul>\n<p>The application can be suspended while in the background, causing a pause in event handling. Since the application cannot receive events in the suspended state, they are all delivered in series after the application exits the suspended state. Following are the two methods to manage this situation and prevent the application from being flooded with events:<\/p>\n<ul>\n<li>To handle events in the background without going to a suspended state, <a href=https://samsungtizenos.com/"..//applications//uiapplication//ui-app.md#allow_bg\">declare a background category<\/a>.<\/li>\n<li>To avoid receiving any events that are triggered while the application is suspended, remove the event handler before entering the suspended state and add it back after exiting the suspended state. You can <a href=https://samsungtizenos.com/"..//applications//uiapplication//ui-app.md#callback\">manage the event handler<\/a> addition and removal in the <code>APP_EVENT_SUSPENDED_STATE_CHANGED<\/code> event callback, which is triggered each time the application enters and exist the suspended state.<\/li>\n<\/ul>\n<h2 id=\"content-prerequisites\"><a href=https://samsungtizenos.com/"#content-prerequisites\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Prerequisites<\/h2>\n<p>To enable your application to use the event functionality, follow these steps:<\/p>\n<ol>\n<li>\n<p>To use the methods and properties of the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Applications.EventManager.ApplicationEventManager.md/">Tizen.Applications.EventManager.ApplcationManager and <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Applications.EventManager.EventReceiver.md/">Tizen.Applications.EventManager.EventReceiver classes, include the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Applications.EventManager.md/">Tizen.Applications.EventManager namespace in your application:<\/p>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#D73A49;--shiki-dark:#F97583\">using<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#24292E;--shiki-dark:#B392F0\">Tizen<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">.<\/span><span style=\"color:#24292E;--shiki-dark:#B392F0\">Applications<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">.<\/span><span style=\"color:#24292E;--shiki-dark:#B392F0\">EventManager<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>\n<p>To use Launch-On-Events in your application, define the <code>http:\/\/tizen.org\/appcontrol\/operation\/launch_on_event<\/code> operation in the <code>tizen-manifest.xml<\/code> file.<\/p>\n<p>The URI name for the operation represents the event name in the Launch-On-Event format (<code>event:\/\/{Event_Name}<\/code>):<\/p>\n<code class=\"language-XML\">&lt;app-control&gt;\n &lt;operation name=&quot;http:\/\/tizen.org\/appcontrol\/operation\/launch_on_event&quot;\/&gt;\n &lt;uri name=&quot;event:\/\/tizen.system.event.battery_charger_status&quot;\/&gt;\n&lt;\/app-control&gt;\n<\/code>\n<\/li>\n<\/ol>\n<p><a name=\"broadcast\"><\/a><\/p>\n<h2 id=\"content-publish-an-event\"><a href=https://samsungtizenos.com/"#content-publish-an-event\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Publish an event<\/h2>\n<p>To publish an event to all receivers, follow these steps:<\/p>\n<ol>\n<li>\n<p>Create the bundle for publishing the event data:<\/p>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Bundle<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">bundle<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">new<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Bundle<\/span><span style=\"color:#6F42C1;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">bundle.<\/span><span style=\"color:#24292E;--shiki-dark:#B392F0\">AddItem<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;key&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;value&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>\n<p>Use the <code>Publish()<\/code> method to publish the event:<\/p>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">ApplicationEventManager.<\/span><span style=\"color:#24292E;--shiki-dark:#B392F0\">Publish<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#24292E;--shiki-dark:#9ECBFF\">&quot;event.org.tizen.example.AppEventTestApp.AppEvent&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, bundle);<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<\/ol>\n<p><a name=\"manage\"><\/a><\/p>\n<h2 id=\"content-subscribe-to-an-event\"><a href=https://samsungtizenos.com/"#content-subscribe-to-an-event\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Subscribe to an event<\/h2>\n<p>To subscribe to a predefined system event or user-defined event, follow these steps:<\/p>\n<ol>\n<li>\n<p>Add an event handler.<\/p>\n<p>One event can have multiple event handlers, and one handler can be registered multiple times.<\/p>\n<ul>\n<li>\n<p>Add an event handler for a system event:<\/p>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#D73A49;--shiki-dark:#F97583\">void<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">OnReceived<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">object<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">sender<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">EventManagerEventArgs<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">e<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> LogUtils.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Write<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(LogUtils.DEBUG, LOG_TAG, <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;On Received : &quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">+<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> e.Name);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\">\/* Register the event handler *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">EventReceiver<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">receiver<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">new<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">EventReceiver<\/span><span style=\"color:#6F42C1;--shiki-dark:#E1E4E8\">(SystemEvents.BatteryChargerStatus.EventName);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">receiver.Received <\/span><span style=\"color:#24292E;--shiki-dark:#F97583\">+=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> OnReceived;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>\n<p>Add an event handler for a user-defined event:<\/p>\n<p>When defining an event name for a user event such as <code>event.org.tizen.senderapp.user_event<\/code>, the name format is <code>event.{sender appid}.{user-defined name}<\/code>. The <code>{user-defined name}<\/code> must include the following:<\/p>\n<ul>\n<li>Contain only the ASCII characters &quot;[A-Z][a-z][0-9]_&quot; and not begin with a digit.<\/li>\n<li>Not contain a '.' (period) character.<\/li>\n<li>Not exceed the maximum name length (127 bytes).<\/li>\n<li>Be at least 1 byte in length.<\/li>\n<\/ul>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">EventReceiver<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">receiver<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#24292E;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#24292E;--shiki-dark:#F97583\">new<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#24292E;--shiki-dark:#B392F0\">EventReceiver<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#24292E;--shiki-dark:#9ECBFF\">&quot;event.org.tizen.example.AppEventTestApp.AppEvent&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#E1E4E8\">receiver<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#E1E4E8\">Received<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#24292E;--shiki-dark:#F97583\">+<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> OnReceived;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Remove the event handler when no longer needed.<\/p>\n<p>A registered handler can be removed when the application is running. All the registered handlers can be removed when the application is terminated:<\/p>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">receiver.Received <\/span><span style=\"color:#24292E;--shiki-dark:#F97583\">-=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> OnReceived;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<\/ol>\n<p><a name=\"launch\"><\/a><\/p>\n<h2 id=\"content-manage-launch-on-events\"><a href=https://samsungtizenos.com/"#content-manage-launch-on-events\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Manage Launch-On-Events<\/h2>\n<p>To register an interest in a Launch-On-Event, define the <code>http:\/\/tizen.org\/appcontrol\/operation\/launch_on_event<\/code> operation in the <code>tizen-manifest.xml<\/code> file.<\/p>\n<div class=\"md-alert md-alert-note\">\n<span><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><path d=\"M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z\"\/><\/svg>Note<\/span>\n<p>Only service applications can register and receive Launch-On-Events.<\/p>\n<p>The Launch-On-Event operation cannot be requested using the <code>AppControl.SendLaunchRequest()<\/code> method, unlike other application control operations.<\/p>\n<\/div>\n<p>The following table shows the system events that support Launch-On-Event:<\/p>\n<p><strong>Table: System events supporting Launch-On-Event<\/strong><\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Name<\/th>\n<th>Condition<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>SystemEvents.BatteryChargerStatus.EventName<\/code><\/td>\n<td>When the charger state is <code>SystemEvents.BatteryChargerStatus.StatusValueConnected<\/code>.<\/td>\n<\/tr>\n<tr>\n<td><code>SystemEvents.UsbStatus.EventName<\/code><\/td>\n<td>When the USB state is <code>SystemEvents.UsbStatus.StatusValueConnected<\/code>.<\/td>\n<\/tr>\n<tr>\n<td><code>SystemEvents.EarjackStatus.EventName<\/code><\/td>\n<td>When the earjack state is <code>SystemEvents.EarjackStatus.StatusValueConnected<\/code>.<\/td>\n<\/tr>\n<tr>\n<td><code>SystemEvents.IncomingMsg.EventName<\/code><\/td>\n<td>When the <code>SystemEvents.IncomingMsg.TypeKey<\/code> and <code>SystemEvents.IncomingMsg.IdKey<\/code> exist.<\/td>\n<\/tr>\n<tr>\n<td><code>SystemEvents.WifiState.EventName<\/code><\/td>\n<td>When the Wi-Fi state is <code>SystemEvents.WifiState.StateValueConnected<\/code>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<p>To receive the Launch-On-Event:<\/p>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#D73A49;--shiki-dark:#F97583\">void<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">AppControlReplyReceivedCallback<\/span><span style=\"color:#6F42C1;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Tizen<\/span><span style=\"color:#6F42C1;--shiki-dark:#E1E4E8\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Applications<\/span><span style=\"color:#6F42C1;--shiki-dark:#E1E4E8\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">AppControl<\/span><span style=\"color:#6F42C1;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">launchRequest<\/span><span style=\"color:#6F42C1;--shiki-dark:#E1E4E8\">, <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Tizen<\/span><span style=\"color:#6F42C1;--shiki-dark:#E1E4E8\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Applications<\/span><span style=\"color:#6F42C1;--shiki-dark:#E1E4E8\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">AppControl<\/span><span style=\"color:#6F42C1;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">replyRequest<\/span><span style=\"color:#6F42C1;--shiki-dark:#E1E4E8\">, <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">AppControlReplyResult<\/span><span style=\"color:#6F42C1;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">result<\/span><span style=\"color:#6F42C1;--shiki-dark:#E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">string<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">eventUri<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;event:\/\/&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">+<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> SystemEvents.BatteryChargerStatus.EventName;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">if<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> (launchRequest.Operation.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Equals<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(SystemEvents.BatteryChargerStatus.EventName))<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">if<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> (launchRequest.Uri.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Equals<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(eventUri))<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">string<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">batteryValue<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> launchRequest.ExtraData.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Get<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(SystemEvents.BatteryChargerStatus.StatusKey);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> LogUtils.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Write<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(LogUtils.DEBUG, LOG_TAG, <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;Status value : &quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">+<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> batteryValue);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<p>The application can get the event name and data in the first <code>AppControlReplyCallback()<\/code> callback, which is called after the application state changes to <code>created<\/code>.<\/p>\n<p><a name=\"platform\"><\/a><\/p>\n<h2 id=\"content-platform-event-types\"><a href=https://samsungtizenos.com/"#content-platform-event-types\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Platform event types<\/h2>\n<p>The following list shows the events of modules:<\/p>\n<ul>\n<li>\n<p>capi-system-device<\/p>\n<ul>\n<li>\n<p>battery<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Event name<\/th>\n<th>Event data key<\/th>\n<th>Event data value<\/th>\n<th>Condition<\/th>\n<th>Notes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>SystemEvents.BatteryChargerStatus.EventName<\/code><\/td>\n<td><code>SystemEvents.BatteryChargerStatus.StatusKey<\/code><\/td>\n<td>- <code>SystemEvents.BatteryChargerStatus.StatusValueDisconnected<\/code> : Charger is not connected<br>- <code>SystemEvents.BatteryChargerStatus.StatusValueConnected<\/code>: Charger is connected<br>- <code>SystemEvents.BatteryChargerStatus.StatusValueCharging<\/code>: Charging is enabled<br>- <code>SystemEvents.BatteryChargerStatus.StatusValueDischarging<\/code>: Charging is disabled (for example, 100% full state)<\/td>\n<td>When the charger has been connected or disconnected, or when the charging state has changed (charging or not charging).<\/td>\n<td>If there is an earlier occurrence regarding this event, you receive the event as soon as you register an event handler for this event. You can use this earlier event data as the initial value.<\/td>\n<\/tr>\n<tr>\n<td><code>SystemEvents.BatteryLevelStatus.EventName<\/code><\/td>\n<td><code>SystemEvents.BatteryLevelStatus.StatusKey<\/code><\/td>\n<td>- <code>SystemEvents.BatteryLevelStatus.StatusValueEmpty<\/code> <br>- <code>SystemEvents.BatteryLevelStatus.StatusValueCritical<\/code> <br>- <code>SystemEvents.BatteryLevelStatus.StatusValueLow<\/code> <br>- <code>SystemEvents.BatteryLevelStatus.StatusValueHigh<\/code> <br>- <code>SystemEvents.BatteryLevelStatus.StatusValueFull<\/code><\/td>\n<td>When the battery level has changed.<\/td>\n<td>You can get the current value with the <code>Tizen.System.Battery.Level<\/code> property.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>deviced<\/p>\n<ul>\n<li>\n<p>usb<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Event name<\/th>\n<th>Event data key<\/th>\n<th>Event data value<\/th>\n<th>Condition<\/th>\n<th>Notes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>SystemEvents.UsbStatus.EventName<\/code><\/td>\n<td><code>SystemEvents.UsbStatus.StatusKey<\/code><\/td>\n<td>- <code>SystemEvents.UsbStatus.StatusValueDisconnected<\/code>: USB cable is not connected<br>- <code>SystemEvents.UsbStatus.StatusValueConnected<\/code>: USB cable is connected, but the service is not available<br>- <code>SystemEvents.UsbStatus.StatusValueAvailable<\/code>: USB service is available (for example, mtp or SDB)<\/td>\n<td>When the USB cable has been connected or disconnected, or when the USB service state has changed.<\/td>\n<td>N\/A<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<\/li>\n<li>\n<p>earjack<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Event name<\/th>\n<th>Event data key<\/th>\n<th>Event data value<\/th>\n<th>Condition<\/th>\n<th>Notes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>SystemEvents.EarjackStatus.EventName<\/code><\/td>\n<td><code>SystemEvents.EarjackStatus.StatusKey<\/code><\/td>\n<td>- <code>SystemEvents.EarjackStatus.StatusValueDisconnected<\/code>: Earjack is not connected <br>- <code>SystemEvents.EarjackStatus.StatusValueConnected<\/code>: Earjack is connected<\/td>\n<td>When the earjack connection state has changed.<\/td>\n<td>You can get the current value using <code>System.Information.SetCallback<\/code> with the <code>http:\/\/tizen.org\/runtimefeature\/audiojack.connected<\/code> key.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<\/li>\n<li>\n<p>display<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Event name<\/th>\n<th>Event data key<\/th>\n<th>Event data value<\/th>\n<th>Condition<\/th>\n<th>Notes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>SystemEvents.DisplayState.EventName<\/code><\/td>\n<td><code>SystemEvents.DisplayState.StateKey<\/code><\/td>\n<td>- <code>SystemEvents.DisplayState.StateValueNormal<\/code>: Display on, normal brightness<br>- <code>SystemEvents.DisplayState.StateValueDim<\/code>: Display on, dimmed brightness<br>- <code>SystemEvents.DisplayState.StateValueOff<\/code>: Display off<\/td>\n<td>When the display state has changed.<\/td>\n<td>You can get the current value with the <code>System.Display.State<\/code> property.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>systemd<\/p>\n<ul>\n<li>\n<p>system<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Event name<\/th>\n<th>Event data key<\/th>\n<th>Event data value<\/th>\n<th>Condition<\/th>\n<th>Notes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>SystemEvents.BootCompleted.EventName<\/code><\/td>\n<td>N\/A<\/td>\n<td>N\/A<\/td>\n<td>When the platform has completed booting.<\/td>\n<td>You can treat the initial value as <code>false<\/code> before you receive this event. If the application is already in a boot-completed state before you register an event handler, you receive the event as soon as you register the event handler.<\/td>\n<\/tr>\n<tr>\n<td><code>SystemEvents.SystemShutdown.EventName<\/code><\/td>\n<td>N\/A<\/td>\n<td>N\/A<\/td>\n<td>When the system power off has been started.<\/td>\n<td>You can treat the initial value as <code>false<\/code> before you receive this event. If the application is already in a shutting-down state before you register an event handler, you receive the event as soon as you register the event handler.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>resourced<\/p>\n<ul>\n<li>\n<p>ram memory<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Event name<\/th>\n<th>Event data key<\/th>\n<th>Event data value<\/th>\n<th>Condition<\/th>\n<th>Notes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>SystemEvents.LowMemory.EventName<\/code><\/td>\n<td><code>SystemEvents.LowMemory.Key<\/code><\/td>\n<td>- <code>SystemEvents.LowMemory.ValueNormal<\/code>: Available &gt; 200MB <br> - <code>SystemEvents.LowMemory.ValueSoftWarning<\/code>: 100MB &lt; available &lt;= 200MB <br>- <code>SystemEvents.LowMemory.ValueHardWarning<\/code>: Available &lt;= 100MB <br> <strong>Note<\/strong><br> The above numbers can vary depending on the total RAM size of the target device.<\/td>\n<td>When the size of available memory has changed.<\/td>\n<td>If there is an earlier occurrence regarding this event, you receive the event as soon as you register an event handler for this event. You can use this earlier event data as the initial value.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>network<\/p>\n<ul>\n<li>\n<p>connectivity<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Event name<\/th>\n<th>Event data key<\/th>\n<th>Event data value<\/th>\n<th>Condition<\/th>\n<th>Notes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>SystemEvents.WifiState.EventName<\/code><\/td>\n<td><code>SystemEvents.WifiState.StateKey<\/code><\/td>\n<td>- <code>SystemEvents.WifiState.StateValueOn<\/code>: Wi-Fi on <br>- <code>SystemEvents.WifiState.StateValueOff<\/code>: Wi-Fi off <br>- <code>SystemEvents.WifiState.StateValueConnected<\/code>: Wi-Fi connection established<\/td>\n<td>When the Wi-Fi state has changed.<\/td>\n<td>You can get the current value with the <code>Network.Connection.ConnectionManager.WiFiState<\/code> property.<\/td>\n<\/tr>\n<tr>\n<td><code>SystemEvents.Btstate.EventName<\/code><\/td>\n<td><code>SystemEvents.Btstate.StateKey<\/code><\/td>\n<td>- <code>SystemEvents.Btstate.StateValueOff<\/code>: Legacy Bluetooth off <br>- <code>SystemEvents.Btstate.StateValueOn<\/code>: Legacy Bluetooth on<\/td>\n<td>When the Bluetooth state has changed.<\/td>\n<td>You can get the current value with the <code>Network.Bluetooth.BluetoothAdapter.IsBluetoothEnabled<\/code> property.<\/td>\n<\/tr>\n<tr>\n<td><code>SystemEvents.Btstate.EventName<\/code><\/td>\n<td><code>SystemEvents.Btstate.LeStateKey<\/code><\/td>\n<td>- <code>SystemEvents.Btstate.LeStateValueOff<\/code>: LE function off <br>- <code>SystemEvents.Btstate.LeStateValueOn<\/code>: LE function on<\/td>\n<td>When Bluetooth LE state has changed.<\/td>\n<td>-<\/td>\n<\/tr>\n<tr>\n<td><code>SystemEvents.Btstate.EventName<\/code><\/td>\n<td><code>SystemEvents.Btstate.TransferStateKey<\/code><\/td>\n<td>- <code>SystemEvents.Btstate.TransferStateValueNontransfering<\/code>: Idle state <br>- <code>SystemEvents.Btstate.TransferStateValueTransfering<\/code>: File is transferring<\/td>\n<td>When the file transfer state has changed.<\/td>\n<td>-<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>libslp-location<\/p>\n<ul>\n<li>\n<p>location<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Event name<\/th>\n<th>Event data key<\/th>\n<th>Event data value<\/th>\n<th>Condition<\/th>\n<th>Notes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>SystemEvents.LocatingEnableState.EventName<\/code><\/td>\n<td><code>SystemEvents.LocatingEnableState.StateKey<\/code><\/td>\n<td>- <code>SystemEvents.LocatingEnableState.StateValueDisabled<\/code>: Location disabled <br>- <code>SystemEvents.LocatingEnableState.StateValueEnabled<\/code>: Location enabled<\/td>\n<td>When the <code>location_enable_state<\/code> has changed, for example, by the user toggling the location setting in the settings menu or quick panel.<\/td>\n<td>You can get the current value with the <code>Location.LocatorHelper.IsEnabledType<\/code> property.<\/td>\n<\/tr>\n<tr>\n<td><code>SystemEvents.GpsEnableState.EventName<\/code><\/td>\n<td><code>SystemEvents.GpsEnableState.StateKey<\/code><\/td>\n<td>- <code>SystemEvents.GpsEnableState.StateValueDisabled<\/code>: GPS disabled <br>- <code>SystemEvents.GpsEnableState.StateValueEnabled<\/code>: GPS enabled<\/td>\n<td>When the <code>gps_enable_state<\/code> has changed.<\/td>\n<td>You can get the current value with the <code>Location.LocatorHelper.IsEnabledType<\/code> property.<\/td>\n<\/tr>\n<tr>\n<td><code>SystemEvents.NpsEnableState.EventName<\/code><\/td>\n<td><code>SystemEvents.NpsEnableState.StateKey<\/code><\/td>\n<td>- <code>SystemEvents.NpsEnableState.StateValueDisabled<\/code>: NPS disabled <br>- <code>SystemEvents.NpsEnableState.StateValueEnabled<\/code>: NPS enabled<\/td>\n<td>When the NPS setting has changed, for example, by the user toggling the location settings.<\/td>\n<td>You can get the current value with the <code>Location.LocatorHelper.IsEnabledType<\/code> property.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>msg-service<\/p>\n<ul>\n<li>\n<p>message<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Event name<\/th>\n<th>Event data key<\/th>\n<th>Event data value<\/th>\n<th>Condition<\/th>\n<th>Notes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>SystemEvents.IncomingMsg.EventName<\/code><\/td>\n<td><code>SystemEvents.IncomingMsg.TypeKey<\/code><\/td>\n<td>- <code>SystemEvents.IncomingMsg.TypeValueSms<\/code>: SMS-type message <br>- <code>SystemEvents.IncomingMsg.TypeValueMms<\/code>: MMS-type message <br>- <code>SystemEvents.IncomingMsg.TypeValuePush<\/code>: Push-type message <br>- <code>SystemEvents.IncomingMsg.TypeValueCb<\/code>: Cb-type message<\/td>\n<td>When an SMS, MMS, push, or CB message has been received.<\/td>\n<td>-<\/td>\n<\/tr>\n<tr>\n<td><code>SystemEvents.IncomingMsg.EventName<\/code><\/td>\n<td><code>SystemEvents.IncomingMsg.IdKey<\/code><\/td>\n<td><code>msg_id<\/code>: Message ID of the received message (string of the unsigned <code>int<\/code> type value)<\/td>\n<td>-<\/td>\n<td>-<\/td>\n<\/tr>\n<tr>\n<td><code>SystemEvents.OutgoingMsg.EventName<\/code><\/td>\n<td><code>SystemEvents.OutgoingMsg.TypeKey<\/code><\/td>\n<td>- <code>SystemEvents.OutgoingMsg.TypeValueSms<\/code>: SMS-type message <br>- <code>SystemEvents.OutgoingMsg.TypeValueMms<\/code>: MMS-type message<\/td>\n<td>When an SMS or MMS message has been sent.<\/td>\n<td>-<\/td>\n<\/tr>\n<tr>\n<td><code>SystemEvents.OutgoingMsg.EventName<\/code><\/td>\n<td><code>SystemEvents.OutgoingMsg.IdKey<\/code><\/td>\n<td><code>msg_id<\/code>: Message ID of the sent message (string of the unsigned <code>int<\/code> type value)<\/td>\n<td>-<\/td>\n<td>-<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>alarm-manager<\/p>\n<ul>\n<li>\n<p>time<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Event name<\/th>\n<th>Event data key<\/th>\n<th>Event data value<\/th>\n<th>Condition<\/th>\n<th>Notes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>SystemEvents.TimeChanged.EventName<\/code><\/td>\n<td>N\/A<\/td>\n<td>N\/A<\/td>\n<td>When the system time setting has changed.<\/td>\n<td>You can get the current value with the <code>Applications.AlarmManager.GetCurrentTime<\/code> method.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>setting<\/p>\n<ul>\n<li>\n<p>time<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Event name<\/th>\n<th>Event data key<\/th>\n<th>Event data value<\/th>\n<th>Condition<\/th>\n<th>Notes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>SystemEvents.TimeZone.EventName<\/code><\/td>\n<td><code>SystemEvents.TimeZone.Key<\/code><\/td>\n<td>The value of this key is the time zone value of the time zone database, for example, &quot;Asia\/Seoul&quot;, &quot;America\/New_York&quot;. For more information, see the IANA Time Zone Database.<\/td>\n<td>When the time zone has changed.<\/td>\n<td>You can get the current value with the <code>System.SystemSettings.LocaleTimeZone<\/code> property.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<\/li>\n<li>\n<p>locale<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Event name<\/th>\n<th>Event data key<\/th>\n<th>Event data value<\/th>\n<th>Condition<\/th>\n<th>Notes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>SystemEvents.HourFormat.EventName<\/code><\/td>\n<td><code>SystemEvents.HourFormat.Key<\/code><\/td>\n<td>- <code>SystemEvents.HourFormat.Value12<\/code> <br>- <code>SystemEvents.HourFormat.Value24<\/code><\/td>\n<td>When the <code>hour_format<\/code> has changed, for example, by the user toggling the date and time settings for the 24-hour clock (where <strong>OFF<\/strong> stands for the 12-hour clock).<\/td>\n<td>You can get the current value with the <code>System.SystemSettings.LocaleTimeFormat24HourEnabled<\/code> property.<\/td>\n<\/tr>\n<tr>\n<td><code>SystemEvents.LanguageSet.EventName<\/code><\/td>\n<td><code>SystemEvents.LanguageSet.Key<\/code><\/td>\n<td>The value of this key is the full name of the locale, for example, <code>ko_KR.UTF8<\/code> for Korean and <code>en_US.UTF8<\/code> for American English. For more information, see the Linux locale information.<\/td>\n<td>When the <code>language_set<\/code> has changed.<\/td>\n<td>You can get the current value with the <code>System.SystemSettings.LocaleLanguage<\/code> property.<\/td>\n<\/tr>\n<tr>\n<td><code>SystemEvents.RegionFormat.EventName<\/code><\/td>\n<td><code>SystemEvents.RegionFormat.Key<\/code><\/td>\n<td>The value of this key is the full name of the locale, for example, <code>ko_KR.UTF8<\/code> for the Korean region format and <code>en_US.UTF8<\/code> for the USA region format. For more information, see the Linux locale information.<\/td>\n<td>When the <code>region_format<\/code> has changed.<\/td>\n<td>You can get the current value with the <code>System.SystemSettings.LocaleCountry<\/code> property.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<\/li>\n<li>\n<p>sound<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Event name<\/th>\n<th>Event data key<\/th>\n<th>Event data value<\/th>\n<th>Condition<\/th>\n<th>Notes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>SystemEvents.SilentMode.EventName<\/code><\/td>\n<td><code>SystemEvents.SilentMode.Key<\/code><\/td>\n<td>- <code>SystemEvents.SilentMode.ValueOn<\/code> <br> - <code>SystemEvents.SilentMode.ValueOff<\/code><\/td>\n<td>When the ringtone has changed to 0 or another mode. For example, if the call slider has been changed to 0, <code>silent_mode<\/code> is <code>&quot;on&quot;<\/code>. Otherwise, <code>silent_mode<\/code> is <code>&quot;off&quot;<\/code>.<\/td>\n<td>You can get the current value with the <code>System.SystemSettings.SoundSilentModeEnabled<\/code> property.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<\/li>\n<li>\n<p>vibration<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Event name<\/th>\n<th>Event data key<\/th>\n<th>Event data value<\/th>\n<th>Condition<\/th>\n<th>Notes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>SystemEvents.VibrationState.EventName<\/code><\/td>\n<td><code>SystemEvents.VibrationState.StateKey<\/code><\/td>\n<td>- <code>SystemEvents.VibrationState.StateValueOn<\/code> <br> - <code>SystemEvents.VibrationState.StateValueOff<\/code><\/td>\n<td>When the vibration state has changed.<\/td>\n<td>You can get the current value using <code>System.Information.SetCallback<\/code> with the <code>http:\/\/tizen.org\/runtimefeature\/vibration<\/code> property.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<\/li>\n<li>\n<p>screen<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Event name<\/th>\n<th>Event data key<\/th>\n<th>Event data value<\/th>\n<th>Condition<\/th>\n<th>Notes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>SystemEvents.AutoRotateState.EventName<\/code><\/td>\n<td><code>SystemEvents.AutoRotateState.StateKey<\/code><\/td>\n<td>- <code>SystemEvents.AutoRotateState.StateOn<\/code> <br> - <code>SystemEvents.AutoRotateState.StateOff<\/code><\/td>\n<td>When the screen autorotate state has changed, for example, by the user toggling the display settings.<\/td>\n<td>You can get the current value with the <code>System.SystemSettings.DisplayScreenRotationAutoEnabled<\/code> property.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<\/li>\n<li>\n<p>mobile<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Event name<\/th>\n<th>Event data key<\/th>\n<th>Event data value<\/th>\n<th>Condition<\/th>\n<th>Notes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>SystemEvents.MobileDataState.EventName<\/code><\/td>\n<td><code>SystemEvents.MobileDataState.StateKey<\/code><\/td>\n<td>- <code>SystemEvents.MobileDataState.StateValueOn<\/code> <br> - <code>SystemEvents.MobileDataState.StateValueOff<\/code><\/td>\n<td>When the mobile data state has changed, for example, by the user toggling the network settings.<\/td>\n<td>You can get the current value with the <code>System.SystemSettings.Data3GNetworkEnabled<\/code> property.<\/td>\n<\/tr>\n<tr>\n<td><code>SystemEvents.DataRoamingState.EventName<\/code><\/td>\n<td><code>SystemEvents.DataRoamingState.StateKey<\/code><\/td>\n<td>- <code>SystemEvents.DataRoamingState.StateValueOn<\/code> <br> - <code>SystemEvents.DataRoamingState.StateValueOff<\/code><\/td>\n<td>When the data roaming state has changed, for example, by the user toggling the network settings.<\/td>\n<td>You can get the current value using <code>System.Information.SetCallback<\/code> with the <code>http:\/\/tizen.org\/runtimefeature\/dataroaming<\/code> key.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<\/li>\n<li>\n<p>font<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Event name<\/th>\n<th>Event data key<\/th>\n<th>Event data value<\/th>\n<th>Condition<\/th>\n<th>Notes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>SystemEvents.FontSet.EventName<\/code><\/td>\n<td><code>SystemEvents.FontSet.Key<\/code><\/td>\n<td>The value of this key is the font name of the string type by font-config.<\/td>\n<td>When the font has changed.<\/td>\n<td>You can get the current value with the <code>System.SystemSettings.FontType<\/code> property.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"content-related-information\"><a href=https://samsungtizenos.com/"#content-related-information\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Related information<\/h2>\n<ul>\n<li>Dependencies\n<ul>\n<li>Tizen 5.5 and Higher<\/li>\n<\/ul>\n<\/li>\n<li>API References\n<ul>\n<li><a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Applications.EventManager/">Tizen.Applications.EventManager namespace<\/li>\n<li><a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Applications.EventManager.ApplicationEventManager/">Tizen.Applications.EventManager.ApplicationEventManager class<\/li>\n<li><a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Applications.EventManager.EventReceiver/">Tizen.Applications.EventManager.EventReceiver class<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","table_of_content":"<ul class=\"table-of-contents\">\n<li><a href=https://samsungtizenos.com/"#content-prerequisites\">Prerequisites<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-publish-an-event\">Publish an event<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-subscribe-to-an-event\">Subscribe to an event<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-manage-launch-on-events\">Manage Launch-On-Events<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-platform-event-types\">Platform event types<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-related-information\">Related information<\/a><\/li>\n<\/ul>\n","title":"Event Broadcast and Subscription","raw":null},{"class":"App\\Services\\Documentation\\Data\\RenderedMarkdown","s":"wrbl"}]},"memo":{"id":"yxHAQDjtmMNleeX1qj4w","name":"documentation::article","path":"docs\/application\/dotnet\/guides\/exchange-data-between-apps\/event","method":"GET","release":"a-a-a","children":[],"scripts":[],"assets":[],"lazyLoaded":false,"lazyIsolated":true,"errors":[],"locale":"en","islands":[]},"checksum":"ffcabd6295767695a2b2c7ee065da62babcb7f100991502998ed281fa0ec1d44"}" wire:effects="[]" wire:id="yxHAQDjtmMNleeX1qj4w" wire:name="documentation::article" x-init="$wire.__lazyLoad('eyJkYXRhIjp7ImZvck1vdW50IjpbeyJtYXJrZG93biI6W3siYm9keSI6IjxoMSBpZD1cImNvbnRlbnQtZXZlbnQtYnJvYWRjYXN0LWFuZC1zdWJzY3JpcHRpb25cIj48YSBocmVmPVwiI2NvbnRlbnQtZXZlbnQtYnJvYWRjYXN0LWFuZC1zdWJzY3JpcHRpb25cIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkV2ZW50IEJyb2FkY2FzdCBhbmQgU3Vic2NyaXB0aW9uPFwvaDE+PGRpdiBkYXRhLWtub3dsZWRnZS1iYXNlLW1ldGFkYXRhPjxcL2Rpdj5cbjxwPlRoZSBhcHBsaWNhdGlvbiBjYW4gYnJvYWRjYXN0IGl0cyBvd24gZXZlbnRzIHRvIGFsbCBsaXN0ZW5lcnMgd2hvIHdhbnQgdG8gbGlzdGVuLiBUaGUgZXZlbnRzIGNhbiBlaXRoZXIgYmUgcHJlZGVmaW5lZCA8YSBocmVmPVwiI3BsYXRmb3JtXCI+c3lzdGVtIGV2ZW50cyBmcm9tIHRoZSBwbGF0Zm9ybTxcL2E+IG9yIHVzZXItZGVmaW5lZCBldmVudHMuIFBsYXRmb3JtIG1vZHVsZXMgY2FuIGJyb2FkY2FzdCBzeXN0ZW0gZXZlbnRzIHdoZXJlYXMgVUkgYW5kIHNlcnZpY2UgYXBwbGljYXRpb25zIGJyb2FkY2FzdCB1c2VyLWRlZmluZWQgZXZlbnRzLjxcL3A+XG48cD5UaGUgbWFpbiBmZWF0dXJlcyBvZiB0aGUgRXZlbnQgQVBJIGFyZSBhcyBmb2xsb3dzOjxcL3A+XG48dWw+XG48bGk+XG48cD5FdmVudCBwdWJsaWNhdGlvbjxcL3A+XG48cD5Zb3UgY2FuIDxhIGhyZWY9XCIjYnJvYWRjYXN0XCI+cHVibGlzaCBhbiBldmVudDxcL2E+IHVzaW5nIHRoZSA8YSBocmVmPVwiXC9hcHBsaWNhdGlvblwvZG90bmV0XC9hcGlcL1RpemVuRlhcL2xhdGVzdFwvYXBpXC9UaXplbi5BcHBsaWNhdGlvbnMuRXZlbnRNYW5hZ2VyLkFwcGxpY2F0aW9uRXZlbnRNYW5hZ2VyLm1kXCI+VGl6ZW4uQXBwbGljYXRpb25zLkV2ZW50TWFuYWdlci5BcHBsaWNhdGlvbkV2ZW50TWFuYWdlcjxcL2E+IGNsYXNzLjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPkV2ZW50IHN1YnNjcmlwdGlvbjxcL3A+XG48cD5Zb3UgY2FuIDxhIGhyZWY9XCIjbWFuYWdlXCI+c3Vic2NyaWJlIHRvIGFuIGV2ZW50PFwvYT4gdXNpbmcgdGhlIDxhIGhyZWY9XCJcL2FwcGxpY2F0aW9uXC9kb3RuZXRcL2FwaVwvVGl6ZW5GWFwvbGF0ZXN0XC9hcGlcL1RpemVuLkFwcGxpY2F0aW9ucy5FdmVudE1hbmFnZXIuRXZlbnRSZWNlaXZlci5tZFwiPlRpemVuLkFwcGxpY2F0aW9ucy5FdmVudE1hbmFnZXIuRXZlbnRSZWNlaXZlcjxcL2E+IGNsYXNzLjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPkxhdW5jaC1Pbi1FdmVudHM8XC9wPlxuPHA+WW91IGNhbiA8YSBocmVmPVwiI2xhdW5jaFwiPmxhdW5jaDxcL2E+IHRoZSBzZXJ2aWNlIGFwcGxpY2F0aW9ucyB3aGVuIHRoZSBkZXNpcmVkIHRhcmdldCBldmVudCBvY2N1cnMuPFwvcD5cbjxcL2xpPlxuPFwvdWw+XG48cD5UaGUgYXBwbGljYXRpb24gY2FuIGJlIHN1c3BlbmRlZCB3aGlsZSBpbiB0aGUgYmFja2dyb3VuZCwgY2F1c2luZyBhIHBhdXNlIGluIGV2ZW50IGhhbmRsaW5nLiBTaW5jZSB0aGUgYXBwbGljYXRpb24gY2Fubm90IHJlY2VpdmUgZXZlbnRzIGluIHRoZSBzdXNwZW5kZWQgc3RhdGUsIHRoZXkgYXJlIGFsbCBkZWxpdmVyZWQgaW4gc2VyaWVzIGFmdGVyIHRoZSBhcHBsaWNhdGlvbiBleGl0cyB0aGUgc3VzcGVuZGVkIHN0YXRlLiBGb2xsb3dpbmcgYXJlIHRoZSB0d28gbWV0aG9kcyB0byBtYW5hZ2UgdGhpcyBzaXR1YXRpb24gYW5kIHByZXZlbnQgdGhlIGFwcGxpY2F0aW9uIGZyb20gYmVpbmcgZmxvb2RlZCB3aXRoIGV2ZW50czo8XC9wPlxuPHVsPlxuPGxpPlRvIGhhbmRsZSBldmVudHMgaW4gdGhlIGJhY2tncm91bmQgd2l0aG91dCBnb2luZyB0byBhIHN1c3BlbmRlZCBzdGF0ZSwgPGEgaHJlZj1cIi4uXC9hcHBsaWNhdGlvbnNcL3VpYXBwbGljYXRpb25cL3VpLWFwcC5tZCNhbGxvd19iZ1wiPmRlY2xhcmUgYSBiYWNrZ3JvdW5kIGNhdGVnb3J5PFwvYT4uPFwvbGk+XG48bGk+VG8gYXZvaWQgcmVjZWl2aW5nIGFueSBldmVudHMgdGhhdCBhcmUgdHJpZ2dlcmVkIHdoaWxlIHRoZSBhcHBsaWNhdGlvbiBpcyBzdXNwZW5kZWQsIHJlbW92ZSB0aGUgZXZlbnQgaGFuZGxlciBiZWZvcmUgZW50ZXJpbmcgdGhlIHN1c3BlbmRlZCBzdGF0ZSBhbmQgYWRkIGl0IGJhY2sgYWZ0ZXIgZXhpdGluZyB0aGUgc3VzcGVuZGVkIHN0YXRlLiBZb3UgY2FuIDxhIGhyZWY9XCIuLlwvYXBwbGljYXRpb25zXC91aWFwcGxpY2F0aW9uXC91aS1hcHAubWQjY2FsbGJhY2tcIj5tYW5hZ2UgdGhlIGV2ZW50IGhhbmRsZXI8XC9hPiBhZGRpdGlvbiBhbmQgcmVtb3ZhbCBpbiB0aGUgPGNvZGU+QVBQX0VWRU5UX1NVU1BFTkRFRF9TVEFURV9DSEFOR0VEPFwvY29kZT4gZXZlbnQgY2FsbGJhY2ssIHdoaWNoIGlzIHRyaWdnZXJlZCBlYWNoIHRpbWUgdGhlIGFwcGxpY2F0aW9uIGVudGVycyBhbmQgZXhpc3QgdGhlIHN1c3BlbmRlZCBzdGF0ZS48XC9saT5cbjxcL3VsPlxuPGgyIGlkPVwiY29udGVudC1wcmVyZXF1aXNpdGVzXCI+PGEgaHJlZj1cIiNjb250ZW50LXByZXJlcXVpc2l0ZXNcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlByZXJlcXVpc2l0ZXM8XC9oMj5cbjxwPlRvIGVuYWJsZSB5b3VyIGFwcGxpY2F0aW9uIHRvIHVzZSB0aGUgZXZlbnQgZnVuY3Rpb25hbGl0eSwgZm9sbG93IHRoZXNlIHN0ZXBzOjxcL3A+XG48b2w+XG48bGk+XG48cD5UbyB1c2UgdGhlIG1ldGhvZHMgYW5kIHByb3BlcnRpZXMgb2YgdGhlIDxhIGhyZWY9XCJcL2FwcGxpY2F0aW9uXC9kb3RuZXRcL2FwaVwvVGl6ZW5GWFwvbGF0ZXN0XC9hcGlcL1RpemVuLkFwcGxpY2F0aW9ucy5FdmVudE1hbmFnZXIuQXBwbGljYXRpb25FdmVudE1hbmFnZXIubWRcIj5UaXplbi5BcHBsaWNhdGlvbnMuRXZlbnRNYW5hZ2VyLkFwcGxjYXRpb25NYW5hZ2VyPFwvYT4gYW5kIDxhIGhyZWY9XCJcL2FwcGxpY2F0aW9uXC9kb3RuZXRcL2FwaVwvVGl6ZW5GWFwvbGF0ZXN0XC9hcGlcL1RpemVuLkFwcGxpY2F0aW9ucy5FdmVudE1hbmFnZXIuRXZlbnRSZWNlaXZlci5tZFwiPlRpemVuLkFwcGxpY2F0aW9ucy5FdmVudE1hbmFnZXIuRXZlbnRSZWNlaXZlcjxcL2E+IGNsYXNzZXMsIGluY2x1ZGUgdGhlIDxhIGhyZWY9XCJcL2FwcGxpY2F0aW9uXC9kb3RuZXRcL2FwaVwvVGl6ZW5GWFwvbGF0ZXN0XC9hcGlcL1RpemVuLkFwcGxpY2F0aW9ucy5FdmVudE1hbmFnZXIubWRcIj5UaXplbi5BcHBsaWNhdGlvbnMuRXZlbnRNYW5hZ2VyPFwvYT4gbmFtZXNwYWNlIGluIHlvdXIgYXBwbGljYXRpb246PFwvcD5cbjxwcmUgY2xhc3M9XCJzaGlraSBzaGlraS10aGVtZXMgZ2l0aHViLWxpZ2h0IGdpdGh1Yi1kYXJrXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LS1zaGlraS1kYXJrLWJnOiMyNDI5MmU7Y29sb3I6IzI0MjkyZTstLXNoaWtpLWRhcms6I2UxZTRlODtcIj48Y29kZT48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj51c2luZzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+VGl6ZW48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPi48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPkFwcGxpY2F0aW9uczxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+LjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+RXZlbnRNYW5hZ2VyPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj48XC9jb2RlPjxcL3ByZT5cbjxcL2xpPlxuPGxpPlxuPHA+VG8gdXNlIExhdW5jaC1Pbi1FdmVudHMgaW4geW91ciBhcHBsaWNhdGlvbiwgZGVmaW5lIHRoZSA8Y29kZT5odHRwOlwvXC90aXplbi5vcmdcL2FwcGNvbnRyb2xcL29wZXJhdGlvblwvbGF1bmNoX29uX2V2ZW50PFwvY29kZT4gb3BlcmF0aW9uIGluIHRoZSA8Y29kZT50aXplbi1tYW5pZmVzdC54bWw8XC9jb2RlPiBmaWxlLjxcL3A+XG48cD5UaGUgVVJJIG5hbWUgZm9yIHRoZSBvcGVyYXRpb24gcmVwcmVzZW50cyB0aGUgZXZlbnQgbmFtZSBpbiB0aGUgTGF1bmNoLU9uLUV2ZW50IGZvcm1hdCAoPGNvZGU+ZXZlbnQ6XC9cL3tFdmVudF9OYW1lfTxcL2NvZGU+KTo8XC9wPlxuPGNvZGUgY2xhc3M9XCJsYW5ndWFnZS1YTUxcIj4mbHQ7YXBwLWNvbnRyb2wmZ3Q7XG4gICAmbHQ7b3BlcmF0aW9uIG5hbWU9JnF1b3Q7aHR0cDpcL1wvdGl6ZW4ub3JnXC9hcHBjb250cm9sXC9vcGVyYXRpb25cL2xhdW5jaF9vbl9ldmVudCZxdW90O1wvJmd0O1xuICAgJmx0O3VyaSBuYW1lPSZxdW90O2V2ZW50OlwvXC90aXplbi5zeXN0ZW0uZXZlbnQuYmF0dGVyeV9jaGFyZ2VyX3N0YXR1cyZxdW90O1wvJmd0O1xuJmx0O1wvYXBwLWNvbnRyb2wmZ3Q7XG48XC9jb2RlPlxuPFwvbGk+XG48XC9vbD5cbjxwPjxhIG5hbWU9XCJicm9hZGNhc3RcIj48XC9hPjxcL3A+XG48aDIgaWQ9XCJjb250ZW50LXB1Ymxpc2gtYW4tZXZlbnRcIj48YSBocmVmPVwiI2NvbnRlbnQtcHVibGlzaC1hbi1ldmVudFwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+UHVibGlzaCBhbiBldmVudDxcL2gyPlxuPHA+VG8gcHVibGlzaCBhbiBldmVudCB0byBhbGwgcmVjZWl2ZXJzLCBmb2xsb3cgdGhlc2Ugc3RlcHM6PFwvcD5cbjxvbD5cbjxsaT5cbjxwPkNyZWF0ZSB0aGUgYnVuZGxlIGZvciBwdWJsaXNoaW5nIHRoZSBldmVudCBkYXRhOjxcL3A+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+QnVuZGxlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5idW5kbGU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPm5ldzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+QnVuZGxlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oKTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5idW5kbGUuPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5BZGRJdGVtPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtrZXkmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiwgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDt2YWx1ZSZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPFwvbGk+XG48bGk+XG48cD5Vc2UgdGhlIDxjb2RlPlB1Ymxpc2goKTxcL2NvZGU+IG1ldGhvZCB0byBwdWJsaXNoIHRoZSBldmVudDo8XC9wPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPkFwcGxpY2F0aW9uRXZlbnRNYW5hZ2VyLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+UHVibGlzaDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7ZXZlbnQub3JnLnRpemVuLmV4YW1wbGUuQXBwRXZlbnRUZXN0QXBwLkFwcEV2ZW50JnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4sIGJ1bmRsZSk7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj48XC9jb2RlPjxcL3ByZT5cbjxcL2xpPlxuPFwvb2w+XG48cD48YSBuYW1lPVwibWFuYWdlXCI+PFwvYT48XC9wPlxuPGgyIGlkPVwiY29udGVudC1zdWJzY3JpYmUtdG8tYW4tZXZlbnRcIj48YSBocmVmPVwiI2NvbnRlbnQtc3Vic2NyaWJlLXRvLWFuLWV2ZW50XCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5TdWJzY3JpYmUgdG8gYW4gZXZlbnQ8XC9oMj5cbjxwPlRvIHN1YnNjcmliZSB0byBhIHByZWRlZmluZWQgc3lzdGVtIGV2ZW50IG9yIHVzZXItZGVmaW5lZCBldmVudCwgZm9sbG93IHRoZXNlIHN0ZXBzOjxcL3A+XG48b2w+XG48bGk+XG48cD5BZGQgYW4gZXZlbnQgaGFuZGxlci48XC9wPlxuPHA+T25lIGV2ZW50IGNhbiBoYXZlIG11bHRpcGxlIGV2ZW50IGhhbmRsZXJzLCBhbmQgb25lIGhhbmRsZXIgY2FuIGJlIHJlZ2lzdGVyZWQgbXVsdGlwbGUgdGltZXMuPFwvcD5cbjx1bD5cbjxsaT5cbjxwPkFkZCBhbiBldmVudCBoYW5kbGVyIGZvciBhIHN5c3RlbSBldmVudDo8XC9wPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPnZvaWQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPk9uUmVjZWl2ZWQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPig8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPm9iamVjdDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+c2VuZGVyPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4sIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+RXZlbnRNYW5hZ2VyRXZlbnRBcmdzPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5lPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4pPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ezxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICBMb2dVdGlscy48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPldyaXRlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oTG9nVXRpbHMuREVCVUcsIExPR19UQUcsIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7T24gUmVjZWl2ZWQgOiAmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPis8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiBlLk5hbWUpOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPn08XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkE3MzdEOy0tc2hpa2ktZGFyazojNkE3MzdEXCI+XC8qIFJlZ2lzdGVyIHRoZSBldmVudCBoYW5kbGVyICpcLzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPkV2ZW50UmVjZWl2ZXI8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPnJlY2VpdmVyPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5uZXc8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPkV2ZW50UmVjZWl2ZXI8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPihTeXN0ZW1FdmVudHMuQmF0dGVyeUNoYXJnZXJTdGF0dXMuRXZlbnROYW1lKTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5yZWNlaXZlci5SZWNlaXZlZCA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPis9PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gT25SZWNlaXZlZDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPFwvbGk+XG48bGk+XG48cD5BZGQgYW4gZXZlbnQgaGFuZGxlciBmb3IgYSB1c2VyLWRlZmluZWQgZXZlbnQ6PFwvcD5cbjxwPldoZW4gZGVmaW5pbmcgYW4gZXZlbnQgbmFtZSBmb3IgYSB1c2VyIGV2ZW50IHN1Y2ggYXMgPGNvZGU+ZXZlbnQub3JnLnRpemVuLnNlbmRlcmFwcC51c2VyX2V2ZW50PFwvY29kZT4sIHRoZSBuYW1lIGZvcm1hdCBpcyA8Y29kZT5ldmVudC57c2VuZGVyIGFwcGlkfS57dXNlci1kZWZpbmVkIG5hbWV9PFwvY29kZT4uIFRoZSA8Y29kZT57dXNlci1kZWZpbmVkIG5hbWV9PFwvY29kZT4gbXVzdCBpbmNsdWRlIHRoZSBmb2xsb3dpbmc6PFwvcD5cbjx1bD5cbjxsaT5Db250YWluIG9ubHkgdGhlIEFTQ0lJIGNoYXJhY3RlcnMgJnF1b3Q7W0EtWl1bYS16XVswLTldXyZxdW90OyBhbmQgbm90IGJlZ2luIHdpdGggYSBkaWdpdC48XC9saT5cbjxsaT5Ob3QgY29udGFpbiBhICcuJyAocGVyaW9kKSBjaGFyYWN0ZXIuPFwvbGk+XG48bGk+Tm90IGV4Y2VlZCB0aGUgbWF4aW11bSBuYW1lIGxlbmd0aCAoMTI3IGJ5dGVzKS48XC9saT5cbjxsaT5CZSBhdCBsZWFzdCAxIGJ5dGUgaW4gbGVuZ3RoLjxcL2xpPlxuPFwvdWw+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+RXZlbnRSZWNlaXZlcjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+cmVjZWl2ZXI8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPm5ldzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+RXZlbnRSZWNlaXZlcjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7ZXZlbnQub3JnLnRpemVuLmV4YW1wbGUuQXBwRXZlbnRUZXN0QXBwLkFwcEV2ZW50JnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4pOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPnJlY2VpdmVyPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5SZWNlaXZlZDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRjk3NTgzXCI+KzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IE9uUmVjZWl2ZWQ7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj48XC9jb2RlPjxcL3ByZT5cbjxcL2xpPlxuPFwvdWw+XG48XC9saT5cbjxsaT5cbjxwPlJlbW92ZSB0aGUgZXZlbnQgaGFuZGxlciB3aGVuIG5vIGxvbmdlciBuZWVkZWQuPFwvcD5cbjxwPkEgcmVnaXN0ZXJlZCBoYW5kbGVyIGNhbiBiZSByZW1vdmVkIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGlzIHJ1bm5pbmcuIEFsbCB0aGUgcmVnaXN0ZXJlZCBoYW5kbGVycyBjYW4gYmUgcmVtb3ZlZCB3aGVuIHRoZSBhcHBsaWNhdGlvbiBpcyB0ZXJtaW5hdGVkOjxcL3A+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+cmVjZWl2ZXIuUmVjZWl2ZWQgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj4tPTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IE9uUmVjZWl2ZWQ7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj48XC9jb2RlPjxcL3ByZT5cbjxcL2xpPlxuPFwvb2w+XG48cD48YSBuYW1lPVwibGF1bmNoXCI+PFwvYT48XC9wPlxuPGgyIGlkPVwiY29udGVudC1tYW5hZ2UtbGF1bmNoLW9uLWV2ZW50c1wiPjxhIGhyZWY9XCIjY29udGVudC1tYW5hZ2UtbGF1bmNoLW9uLWV2ZW50c1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+TWFuYWdlIExhdW5jaC1Pbi1FdmVudHM8XC9oMj5cbjxwPlRvIHJlZ2lzdGVyIGFuIGludGVyZXN0IGluIGEgTGF1bmNoLU9uLUV2ZW50LCBkZWZpbmUgdGhlIDxjb2RlPmh0dHA6XC9cL3RpemVuLm9yZ1wvYXBwY29udHJvbFwvb3BlcmF0aW9uXC9sYXVuY2hfb25fZXZlbnQ8XC9jb2RlPiBvcGVyYXRpb24gaW4gdGhlIDxjb2RlPnRpemVuLW1hbmlmZXN0LnhtbDxcL2NvZGU+IGZpbGUuPFwvcD5cbjxkaXYgY2xhc3M9XCJtZC1hbGVydCBtZC1hbGVydC1ub3RlXCI+XG48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDpcL1wvd3d3LnczLm9yZ1wvMjAwMFwvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiPjxwYXRoIGQ9XCJNMCA4YTggOCAwIDEgMSAxNiAwQTggOCAwIDAgMSAwIDhabTgtNi41YTYuNSA2LjUgMCAxIDAgMCAxMyA2LjUgNi41IDAgMCAwIDAtMTNaTTYuNSA3Ljc1QS43NS43NSAwIDAgMSA3LjI1IDdoMWEuNzUuNzUgMCAwIDEgLjc1Ljc1djIuNzVoLjI1YS43NS43NSAwIDAgMSAwIDEuNWgtMmEuNzUuNzUgMCAwIDEgMC0xLjVoLjI1di0yaC0uMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTggNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJcLz48XC9zdmc+Tm90ZTxcL3NwYW4+XG48cD5Pbmx5IHNlcnZpY2UgYXBwbGljYXRpb25zIGNhbiByZWdpc3RlciBhbmQgcmVjZWl2ZSBMYXVuY2gtT24tRXZlbnRzLjxcL3A+XG48cD5UaGUgTGF1bmNoLU9uLUV2ZW50IG9wZXJhdGlvbiBjYW5ub3QgYmUgcmVxdWVzdGVkIHVzaW5nIHRoZSA8Y29kZT5BcHBDb250cm9sLlNlbmRMYXVuY2hSZXF1ZXN0KCk8XC9jb2RlPiBtZXRob2QsIHVubGlrZSBvdGhlciBhcHBsaWNhdGlvbiBjb250cm9sIG9wZXJhdGlvbnMuPFwvcD5cbjxcL2Rpdj5cbjxwPlRoZSBmb2xsb3dpbmcgdGFibGUgc2hvd3MgdGhlIHN5c3RlbSBldmVudHMgdGhhdCBzdXBwb3J0IExhdW5jaC1Pbi1FdmVudDo8XC9wPlxuPHA+PHN0cm9uZz5UYWJsZTogU3lzdGVtIGV2ZW50cyBzdXBwb3J0aW5nIExhdW5jaC1Pbi1FdmVudDxcL3N0cm9uZz48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+TmFtZTxcL3RoPlxuPHRoPkNvbmRpdGlvbjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD48Y29kZT5TeXN0ZW1FdmVudHMuQmF0dGVyeUNoYXJnZXJTdGF0dXMuRXZlbnROYW1lPFwvY29kZT48XC90ZD5cbjx0ZD5XaGVuIHRoZSBjaGFyZ2VyIHN0YXRlIGlzIDxjb2RlPlN5c3RlbUV2ZW50cy5CYXR0ZXJ5Q2hhcmdlclN0YXR1cy5TdGF0dXNWYWx1ZUNvbm5lY3RlZDxcL2NvZGU+LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+U3lzdGVtRXZlbnRzLlVzYlN0YXR1cy5FdmVudE5hbWU8XC9jb2RlPjxcL3RkPlxuPHRkPldoZW4gdGhlIFVTQiBzdGF0ZSBpcyA8Y29kZT5TeXN0ZW1FdmVudHMuVXNiU3RhdHVzLlN0YXR1c1ZhbHVlQ29ubmVjdGVkPFwvY29kZT4uPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5TeXN0ZW1FdmVudHMuRWFyamFja1N0YXR1cy5FdmVudE5hbWU8XC9jb2RlPjxcL3RkPlxuPHRkPldoZW4gdGhlIGVhcmphY2sgc3RhdGUgaXMgPGNvZGU+U3lzdGVtRXZlbnRzLkVhcmphY2tTdGF0dXMuU3RhdHVzVmFsdWVDb25uZWN0ZWQ8XC9jb2RlPi48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlN5c3RlbUV2ZW50cy5JbmNvbWluZ01zZy5FdmVudE5hbWU8XC9jb2RlPjxcL3RkPlxuPHRkPldoZW4gdGhlIDxjb2RlPlN5c3RlbUV2ZW50cy5JbmNvbWluZ01zZy5UeXBlS2V5PFwvY29kZT4gYW5kIDxjb2RlPlN5c3RlbUV2ZW50cy5JbmNvbWluZ01zZy5JZEtleTxcL2NvZGU+IGV4aXN0LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+U3lzdGVtRXZlbnRzLldpZmlTdGF0ZS5FdmVudE5hbWU8XC9jb2RlPjxcL3RkPlxuPHRkPldoZW4gdGhlIFdpLUZpIHN0YXRlIGlzIDxjb2RlPlN5c3RlbUV2ZW50cy5XaWZpU3RhdGUuU3RhdGVWYWx1ZUNvbm5lY3RlZDxcL2NvZGU+LjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlRvIHJlY2VpdmUgdGhlIExhdW5jaC1Pbi1FdmVudDo8XC9wPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPnZvaWQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPkFwcENvbnRyb2xSZXBseVJlY2VpdmVkQ2FsbGJhY2s8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPig8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPlRpemVuPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5BcHBsaWNhdGlvbnM8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPi48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPkFwcENvbnRyb2w8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPmxhdW5jaFJlcXVlc3Q8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiwgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5UaXplbjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+LjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+QXBwbGljYXRpb25zPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5BcHBDb250cm9sPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5yZXBseVJlcXVlc3Q8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiwgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5BcHBDb250cm9sUmVwbHlSZXN1bHQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPnJlc3VsdDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KTxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPns8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5zdHJpbmc8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPmV2ZW50VXJpPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtldmVudDpcL1wvJnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj4rPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gU3lzdGVtRXZlbnRzLkJhdHRlcnlDaGFyZ2VyU3RhdHVzLkV2ZW50TmFtZTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+aWY8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAobGF1bmNoUmVxdWVzdC5PcGVyYXRpb24uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5FcXVhbHM8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPihTeXN0ZW1FdmVudHMuQmF0dGVyeUNoYXJnZXJTdGF0dXMuRXZlbnROYW1lKSk8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgIHs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICAgICA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPmlmPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gKGxhdW5jaFJlcXVlc3QuVXJpLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+RXF1YWxzPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oZXZlbnRVcmkpKTxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgICAgIHs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICAgICAgICAgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5zdHJpbmc8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPmJhdHRlcnlWYWx1ZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IGxhdW5jaFJlcXVlc3QuRXh0cmFEYXRhLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+R2V0PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oU3lzdGVtRXZlbnRzLkJhdHRlcnlDaGFyZ2VyU3RhdHVzLlN0YXR1c0tleSk7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICAgICAgICAgICAgIExvZ1V0aWxzLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+V3JpdGU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPihMb2dVdGlscy5ERUJVRywgTE9HX1RBRywgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtTdGF0dXMgdmFsdWUgOiAmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPis8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiBiYXR0ZXJ5VmFsdWUpOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgICAgIH08XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgIH08XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj59PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj48XC9jb2RlPjxcL3ByZT5cbjxwPlRoZSBhcHBsaWNhdGlvbiBjYW4gZ2V0IHRoZSBldmVudCBuYW1lIGFuZCBkYXRhIGluIHRoZSBmaXJzdCA8Y29kZT5BcHBDb250cm9sUmVwbHlDYWxsYmFjaygpPFwvY29kZT4gY2FsbGJhY2ssIHdoaWNoIGlzIGNhbGxlZCBhZnRlciB0aGUgYXBwbGljYXRpb24gc3RhdGUgY2hhbmdlcyB0byA8Y29kZT5jcmVhdGVkPFwvY29kZT4uPFwvcD5cbjxwPjxhIG5hbWU9XCJwbGF0Zm9ybVwiPjxcL2E+PFwvcD5cbjxoMiBpZD1cImNvbnRlbnQtcGxhdGZvcm0tZXZlbnQtdHlwZXNcIj48YSBocmVmPVwiI2NvbnRlbnQtcGxhdGZvcm0tZXZlbnQtdHlwZXNcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlBsYXRmb3JtIGV2ZW50IHR5cGVzPFwvaDI+XG48cD5UaGUgZm9sbG93aW5nIGxpc3Qgc2hvd3MgdGhlIGV2ZW50cyBvZiBtb2R1bGVzOjxcL3A+XG48dWw+XG48bGk+XG48cD5jYXBpLXN5c3RlbS1kZXZpY2U8XC9wPlxuPHVsPlxuPGxpPlxuPHA+YmF0dGVyeTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5FdmVudCBuYW1lPFwvdGg+XG48dGg+RXZlbnQgZGF0YSBrZXk8XC90aD5cbjx0aD5FdmVudCBkYXRhIHZhbHVlPFwvdGg+XG48dGg+Q29uZGl0aW9uPFwvdGg+XG48dGg+Tm90ZXM8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+PGNvZGU+U3lzdGVtRXZlbnRzLkJhdHRlcnlDaGFyZ2VyU3RhdHVzLkV2ZW50TmFtZTxcL2NvZGU+PFwvdGQ+XG48dGQ+PGNvZGU+U3lzdGVtRXZlbnRzLkJhdHRlcnlDaGFyZ2VyU3RhdHVzLlN0YXR1c0tleTxcL2NvZGU+PFwvdGQ+XG48dGQ+LSA8Y29kZT5TeXN0ZW1FdmVudHMuQmF0dGVyeUNoYXJnZXJTdGF0dXMuU3RhdHVzVmFsdWVEaXNjb25uZWN0ZWQ8XC9jb2RlPiA6IENoYXJnZXIgaXMgbm90IGNvbm5lY3RlZDxicj4tIDxjb2RlPlN5c3RlbUV2ZW50cy5CYXR0ZXJ5Q2hhcmdlclN0YXR1cy5TdGF0dXNWYWx1ZUNvbm5lY3RlZDxcL2NvZGU+OiBDaGFyZ2VyIGlzIGNvbm5lY3RlZDxicj4tIDxjb2RlPlN5c3RlbUV2ZW50cy5CYXR0ZXJ5Q2hhcmdlclN0YXR1cy5TdGF0dXNWYWx1ZUNoYXJnaW5nPFwvY29kZT46IENoYXJnaW5nIGlzIGVuYWJsZWQ8YnI+LSA8Y29kZT5TeXN0ZW1FdmVudHMuQmF0dGVyeUNoYXJnZXJTdGF0dXMuU3RhdHVzVmFsdWVEaXNjaGFyZ2luZzxcL2NvZGU+OiBDaGFyZ2luZyBpcyBkaXNhYmxlZCAoZm9yIGV4YW1wbGUsIDEwMCUgZnVsbCAgc3RhdGUpPFwvdGQ+XG48dGQ+V2hlbiB0aGUgY2hhcmdlciBoYXMgYmVlbiBjb25uZWN0ZWQgb3IgZGlzY29ubmVjdGVkLCBvciB3aGVuIHRoZSBjaGFyZ2luZyBzdGF0ZSBoYXMgY2hhbmdlZCAoY2hhcmdpbmcgb3Igbm90IGNoYXJnaW5nKS48XC90ZD5cbjx0ZD5JZiB0aGVyZSBpcyBhbiBlYXJsaWVyIG9jY3VycmVuY2UgcmVnYXJkaW5nIHRoaXMgZXZlbnQsIHlvdSByZWNlaXZlIHRoZSBldmVudCBhcyBzb29uIGFzIHlvdSAgcmVnaXN0ZXIgYW4gZXZlbnQgaGFuZGxlciBmb3IgdGhpcyBldmVudC4gWW91IGNhbiB1c2UgdGhpcyBlYXJsaWVyIGV2ZW50IGRhdGEgYXMgdGhlIGluaXRpYWwgdmFsdWUuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5TeXN0ZW1FdmVudHMuQmF0dGVyeUxldmVsU3RhdHVzLkV2ZW50TmFtZTxcL2NvZGU+PFwvdGQ+XG48dGQ+PGNvZGU+U3lzdGVtRXZlbnRzLkJhdHRlcnlMZXZlbFN0YXR1cy5TdGF0dXNLZXk8XC9jb2RlPjxcL3RkPlxuPHRkPi0gPGNvZGU+U3lzdGVtRXZlbnRzLkJhdHRlcnlMZXZlbFN0YXR1cy5TdGF0dXNWYWx1ZUVtcHR5PFwvY29kZT4gPGJyPi0gPGNvZGU+U3lzdGVtRXZlbnRzLkJhdHRlcnlMZXZlbFN0YXR1cy5TdGF0dXNWYWx1ZUNyaXRpY2FsPFwvY29kZT4gPGJyPi0gPGNvZGU+U3lzdGVtRXZlbnRzLkJhdHRlcnlMZXZlbFN0YXR1cy5TdGF0dXNWYWx1ZUxvdzxcL2NvZGU+IDxicj4tIDxjb2RlPlN5c3RlbUV2ZW50cy5CYXR0ZXJ5TGV2ZWxTdGF0dXMuU3RhdHVzVmFsdWVIaWdoPFwvY29kZT4gPGJyPi0gPGNvZGU+U3lzdGVtRXZlbnRzLkJhdHRlcnlMZXZlbFN0YXR1cy5TdGF0dXNWYWx1ZUZ1bGw8XC9jb2RlPjxcL3RkPlxuPHRkPldoZW4gdGhlICBiYXR0ZXJ5IGxldmVsIGhhcyBjaGFuZ2VkLjxcL3RkPlxuPHRkPllvdSBjYW4gZ2V0IHRoZSAgY3VycmVudCB2YWx1ZSB3aXRoIHRoZSA8Y29kZT5UaXplbi5TeXN0ZW0uQmF0dGVyeS5MZXZlbDxcL2NvZGU+IHByb3BlcnR5LjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxcL2xpPlxuPFwvdWw+XG48XC9saT5cbjxsaT5cbjxwPmRldmljZWQ8XC9wPlxuPHVsPlxuPGxpPlxuPHA+dXNiPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkV2ZW50IG5hbWU8XC90aD5cbjx0aD5FdmVudCBkYXRhIGtleTxcL3RoPlxuPHRoPkV2ZW50IGRhdGEgdmFsdWU8XC90aD5cbjx0aD5Db25kaXRpb248XC90aD5cbjx0aD5Ob3RlczxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD48Y29kZT5TeXN0ZW1FdmVudHMuVXNiU3RhdHVzLkV2ZW50TmFtZTxcL2NvZGU+PFwvdGQ+XG48dGQ+PGNvZGU+U3lzdGVtRXZlbnRzLlVzYlN0YXR1cy5TdGF0dXNLZXk8XC9jb2RlPjxcL3RkPlxuPHRkPi0gPGNvZGU+U3lzdGVtRXZlbnRzLlVzYlN0YXR1cy5TdGF0dXNWYWx1ZURpc2Nvbm5lY3RlZDxcL2NvZGU+OiAgVVNCIGNhYmxlIGlzIG5vdCBjb25uZWN0ZWQ8YnI+LSA8Y29kZT5TeXN0ZW1FdmVudHMuVXNiU3RhdHVzLlN0YXR1c1ZhbHVlQ29ubmVjdGVkPFwvY29kZT46IFVTQiBjYWJsZSBpcyBjb25uZWN0ZWQsIGJ1dCB0aGUgc2VydmljZSBpcyBub3QgIGF2YWlsYWJsZTxicj4tICA8Y29kZT5TeXN0ZW1FdmVudHMuVXNiU3RhdHVzLlN0YXR1c1ZhbHVlQXZhaWxhYmxlPFwvY29kZT46IFVTQiBzZXJ2aWNlIGlzIGF2YWlsYWJsZSAoZm9yIGV4YW1wbGUsIG10cCBvciBTREIpPFwvdGQ+XG48dGQ+V2hlbiB0aGUgVVNCICBjYWJsZSBoYXMgYmVlbiBjb25uZWN0ZWQgb3IgZGlzY29ubmVjdGVkLCBvciB3aGVuIHRoZSBVU0Igc2VydmljZSBzdGF0ZSBoYXMgIGNoYW5nZWQuPFwvdGQ+XG48dGQ+TlwvQTxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxcL2xpPlxuPGxpPlxuPHA+ZWFyamFjazxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5FdmVudCBuYW1lPFwvdGg+XG48dGg+RXZlbnQgZGF0YSBrZXk8XC90aD5cbjx0aD5FdmVudCBkYXRhIHZhbHVlPFwvdGg+XG48dGg+Q29uZGl0aW9uPFwvdGg+XG48dGg+Tm90ZXM8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+PGNvZGU+U3lzdGVtRXZlbnRzLkVhcmphY2tTdGF0dXMuRXZlbnROYW1lPFwvY29kZT48XC90ZD5cbjx0ZD48Y29kZT5TeXN0ZW1FdmVudHMuRWFyamFja1N0YXR1cy5TdGF0dXNLZXk8XC9jb2RlPjxcL3RkPlxuPHRkPi0gPGNvZGU+U3lzdGVtRXZlbnRzLkVhcmphY2tTdGF0dXMuU3RhdHVzVmFsdWVEaXNjb25uZWN0ZWQ8XC9jb2RlPjogIEVhcmphY2sgaXMgbm90IGNvbm5lY3RlZCA8YnI+LSA8Y29kZT5TeXN0ZW1FdmVudHMuRWFyamFja1N0YXR1cy5TdGF0dXNWYWx1ZUNvbm5lY3RlZDxcL2NvZGU+OiBFYXJqYWNrIGlzIGNvbm5lY3RlZDxcL3RkPlxuPHRkPldoZW4gdGhlICBlYXJqYWNrIGNvbm5lY3Rpb24gc3RhdGUgaGFzIGNoYW5nZWQuPFwvdGQ+XG48dGQ+WW91IGNhbiBnZXQgdGhlIGN1cnJlbnQgdmFsdWUgdXNpbmcgPGNvZGU+U3lzdGVtLkluZm9ybWF0aW9uLlNldENhbGxiYWNrPFwvY29kZT4gd2l0aCB0aGUgPGNvZGU+aHR0cDpcL1wvdGl6ZW4ub3JnXC9ydW50aW1lZmVhdHVyZVwvYXVkaW9qYWNrLmNvbm5lY3RlZDxcL2NvZGU+IGtleS48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48XC9saT5cbjxsaT5cbjxwPmRpc3BsYXk8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RXZlbnQgbmFtZTxcL3RoPlxuPHRoPkV2ZW50IGRhdGEga2V5PFwvdGg+XG48dGg+RXZlbnQgZGF0YSB2YWx1ZTxcL3RoPlxuPHRoPkNvbmRpdGlvbjxcL3RoPlxuPHRoPk5vdGVzPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPjxjb2RlPlN5c3RlbUV2ZW50cy5EaXNwbGF5U3RhdGUuRXZlbnROYW1lPFwvY29kZT48XC90ZD5cbjx0ZD48Y29kZT5TeXN0ZW1FdmVudHMuRGlzcGxheVN0YXRlLlN0YXRlS2V5PFwvY29kZT48XC90ZD5cbjx0ZD4tIDxjb2RlPlN5c3RlbUV2ZW50cy5EaXNwbGF5U3RhdGUuU3RhdGVWYWx1ZU5vcm1hbDxcL2NvZGU+OiAgRGlzcGxheSBvbiwgbm9ybWFsIGJyaWdodG5lc3M8YnI+LSA8Y29kZT5TeXN0ZW1FdmVudHMuRGlzcGxheVN0YXRlLlN0YXRlVmFsdWVEaW08XC9jb2RlPjogRGlzcGxheSBvbiwgZGltbWVkIGJyaWdodG5lc3M8YnI+LSA8Y29kZT5TeXN0ZW1FdmVudHMuRGlzcGxheVN0YXRlLlN0YXRlVmFsdWVPZmY8XC9jb2RlPjogRGlzcGxheSBvZmY8XC90ZD5cbjx0ZD5XaGVuIHRoZSAgZGlzcGxheSBzdGF0ZSBoYXMgY2hhbmdlZC48XC90ZD5cbjx0ZD5Zb3UgY2FuIGdldCB0aGUgIGN1cnJlbnQgdmFsdWUgd2l0aCB0aGUgPGNvZGU+U3lzdGVtLkRpc3BsYXkuU3RhdGU8XC9jb2RlPiBwcm9wZXJ0eS48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48XC9saT5cbjxcL3VsPlxuPFwvbGk+XG48bGk+XG48cD5zeXN0ZW1kPFwvcD5cbjx1bD5cbjxsaT5cbjxwPnN5c3RlbTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5FdmVudCBuYW1lPFwvdGg+XG48dGg+RXZlbnQgZGF0YSBrZXk8XC90aD5cbjx0aD5FdmVudCBkYXRhIHZhbHVlPFwvdGg+XG48dGg+Q29uZGl0aW9uPFwvdGg+XG48dGg+Tm90ZXM8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+PGNvZGU+U3lzdGVtRXZlbnRzLkJvb3RDb21wbGV0ZWQuRXZlbnROYW1lPFwvY29kZT48XC90ZD5cbjx0ZD5OXC9BPFwvdGQ+XG48dGQ+TlwvQTxcL3RkPlxuPHRkPldoZW4gdGhlICBwbGF0Zm9ybSBoYXMgY29tcGxldGVkIGJvb3RpbmcuPFwvdGQ+XG48dGQ+WW91IGNhbiB0cmVhdCAgdGhlIGluaXRpYWwgdmFsdWUgYXMgPGNvZGU+ZmFsc2U8XC9jb2RlPiAgYmVmb3JlIHlvdSByZWNlaXZlIHRoaXMgZXZlbnQuIElmIHRoZSBhcHBsaWNhdGlvbiBpcyBhbHJlYWR5IGluIGEgIGJvb3QtY29tcGxldGVkIHN0YXRlIGJlZm9yZSB5b3UgcmVnaXN0ZXIgYW4gZXZlbnQgaGFuZGxlciwgeW91IHJlY2VpdmUgdGhlICBldmVudCBhcyBzb29uIGFzIHlvdSByZWdpc3RlciB0aGUgZXZlbnQgaGFuZGxlci48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlN5c3RlbUV2ZW50cy5TeXN0ZW1TaHV0ZG93bi5FdmVudE5hbWU8XC9jb2RlPjxcL3RkPlxuPHRkPk5cL0E8XC90ZD5cbjx0ZD5OXC9BPFwvdGQ+XG48dGQ+V2hlbiAgdGhlIHN5c3RlbSBwb3dlciBvZmYgaGFzIGJlZW4gc3RhcnRlZC48XC90ZD5cbjx0ZD5Zb3UgIGNhbiB0cmVhdCB0aGUgaW5pdGlhbCB2YWx1ZSBhcyA8Y29kZT5mYWxzZTxcL2NvZGU+IGJlZm9yZSB5b3UgcmVjZWl2ZSB0aGlzIGV2ZW50LiBJZiB0aGUgYXBwbGljYXRpb24gaXMgYWxyZWFkeSAgaW4gYSBzaHV0dGluZy1kb3duIHN0YXRlIGJlZm9yZSB5b3UgcmVnaXN0ZXIgYW4gZXZlbnQgaGFuZGxlciwgeW91IHJlY2VpdmUgIHRoZSBldmVudCBhcyBzb29uIGFzIHlvdSByZWdpc3RlciB0aGUgZXZlbnQgaGFuZGxlci48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48XC9saT5cbjxcL3VsPlxuPFwvbGk+XG48bGk+XG48cD5yZXNvdXJjZWQ8XC9wPlxuPHVsPlxuPGxpPlxuPHA+cmFtIG1lbW9yeTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5FdmVudCBuYW1lPFwvdGg+XG48dGg+RXZlbnQgZGF0YSBrZXk8XC90aD5cbjx0aD5FdmVudCBkYXRhIHZhbHVlPFwvdGg+XG48dGg+Q29uZGl0aW9uPFwvdGg+XG48dGg+Tm90ZXM8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+PGNvZGU+U3lzdGVtRXZlbnRzLkxvd01lbW9yeS5FdmVudE5hbWU8XC9jb2RlPjxcL3RkPlxuPHRkPjxjb2RlPlN5c3RlbUV2ZW50cy5Mb3dNZW1vcnkuS2V5PFwvY29kZT48XC90ZD5cbjx0ZD4tIDxjb2RlPlN5c3RlbUV2ZW50cy5Mb3dNZW1vcnkuVmFsdWVOb3JtYWw8XC9jb2RlPjogIEF2YWlsYWJsZSAmZ3Q7IDIwME1CIDxicj4gLSA8Y29kZT5TeXN0ZW1FdmVudHMuTG93TWVtb3J5LlZhbHVlU29mdFdhcm5pbmc8XC9jb2RlPjogMTAwTUIgJmx0OyBhdmFpbGFibGUgJmx0Oz0gMjAwTUIgPGJyPi0gPGNvZGU+U3lzdGVtRXZlbnRzLkxvd01lbW9yeS5WYWx1ZUhhcmRXYXJuaW5nPFwvY29kZT46IEF2YWlsYWJsZSAmbHQ7PSAxMDBNQiAgICA8YnI+IDxzdHJvbmc+Tm90ZTxcL3N0cm9uZz48YnI+IFRoZSBhYm92ZSBudW1iZXJzIGNhbiB2YXJ5IGRlcGVuZGluZyBvbiB0aGUgdG90YWwgUkFNIHNpemUgb2YgdGhlICB0YXJnZXQgZGV2aWNlLjxcL3RkPlxuPHRkPldoZW4gIHRoZSBzaXplIG9mIGF2YWlsYWJsZSBtZW1vcnkgaGFzIGNoYW5nZWQuPFwvdGQ+XG48dGQ+SWYgIHRoZXJlIGlzIGFuIGVhcmxpZXIgb2NjdXJyZW5jZSByZWdhcmRpbmcgdGhpcyBldmVudCwgeW91IHJlY2VpdmUgdGhlIGV2ZW50IGFzICBzb29uIGFzIHlvdSByZWdpc3RlciBhbiBldmVudCBoYW5kbGVyIGZvciB0aGlzIGV2ZW50LiBZb3UgY2FuIHVzZSB0aGlzICBlYXJsaWVyIGV2ZW50IGRhdGEgYXMgdGhlIGluaXRpYWwgdmFsdWUuPFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPFwvbGk+XG48XC91bD5cbjxcL2xpPlxuPGxpPlxuPHA+bmV0d29yazxcL3A+XG48dWw+XG48bGk+XG48cD5jb25uZWN0aXZpdHk8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RXZlbnQgbmFtZTxcL3RoPlxuPHRoPkV2ZW50IGRhdGEga2V5PFwvdGg+XG48dGg+RXZlbnQgZGF0YSB2YWx1ZTxcL3RoPlxuPHRoPkNvbmRpdGlvbjxcL3RoPlxuPHRoPk5vdGVzPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPjxjb2RlPlN5c3RlbUV2ZW50cy5XaWZpU3RhdGUuRXZlbnROYW1lPFwvY29kZT48XC90ZD5cbjx0ZD48Y29kZT5TeXN0ZW1FdmVudHMuV2lmaVN0YXRlLlN0YXRlS2V5PFwvY29kZT48XC90ZD5cbjx0ZD4tIDxjb2RlPlN5c3RlbUV2ZW50cy5XaWZpU3RhdGUuU3RhdGVWYWx1ZU9uPFwvY29kZT46ICBXaS1GaSBvbiA8YnI+LSAgPGNvZGU+U3lzdGVtRXZlbnRzLldpZmlTdGF0ZS5TdGF0ZVZhbHVlT2ZmPFwvY29kZT46IFdpLUZpIG9mZiA8YnI+LSA8Y29kZT5TeXN0ZW1FdmVudHMuV2lmaVN0YXRlLlN0YXRlVmFsdWVDb25uZWN0ZWQ8XC9jb2RlPjogV2ktRmkgY29ubmVjdGlvbiBlc3RhYmxpc2hlZDxcL3RkPlxuPHRkPldoZW4gdGhlIFdpLUZpICBzdGF0ZSBoYXMgY2hhbmdlZC48XC90ZD5cbjx0ZD5Zb3UgY2FuIGdldCB0aGUgIGN1cnJlbnQgdmFsdWUgd2l0aCB0aGUgPGNvZGU+TmV0d29yay5Db25uZWN0aW9uLkNvbm5lY3Rpb25NYW5hZ2VyLldpRmlTdGF0ZTxcL2NvZGU+IHByb3BlcnR5LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+U3lzdGVtRXZlbnRzLkJ0c3RhdGUuRXZlbnROYW1lPFwvY29kZT48XC90ZD5cbjx0ZD48Y29kZT5TeXN0ZW1FdmVudHMuQnRzdGF0ZS5TdGF0ZUtleTxcL2NvZGU+PFwvdGQ+XG48dGQ+LSA8Y29kZT5TeXN0ZW1FdmVudHMuQnRzdGF0ZS5TdGF0ZVZhbHVlT2ZmPFwvY29kZT46ICBMZWdhY3kgQmx1ZXRvb3RoIG9mZiA8YnI+LSAgPGNvZGU+U3lzdGVtRXZlbnRzLkJ0c3RhdGUuU3RhdGVWYWx1ZU9uPFwvY29kZT46IExlZ2FjeSBCbHVldG9vdGggb248XC90ZD5cbjx0ZD5XaGVuIHRoZSAgQmx1ZXRvb3RoIHN0YXRlIGhhcyBjaGFuZ2VkLjxcL3RkPlxuPHRkPllvdSBjYW4gZ2V0IHRoZSAgY3VycmVudCB2YWx1ZSB3aXRoIHRoZSA8Y29kZT5OZXR3b3JrLkJsdWV0b290aC5CbHVldG9vdGhBZGFwdGVyLklzQmx1ZXRvb3RoRW5hYmxlZDxcL2NvZGU+IHByb3BlcnR5LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+U3lzdGVtRXZlbnRzLkJ0c3RhdGUuRXZlbnROYW1lPFwvY29kZT48XC90ZD5cbjx0ZD48Y29kZT5TeXN0ZW1FdmVudHMuQnRzdGF0ZS5MZVN0YXRlS2V5PFwvY29kZT48XC90ZD5cbjx0ZD4tIDxjb2RlPlN5c3RlbUV2ZW50cy5CdHN0YXRlLkxlU3RhdGVWYWx1ZU9mZjxcL2NvZGU+OiAgTEUgZnVuY3Rpb24gb2ZmIDxicj4tIDxjb2RlPlN5c3RlbUV2ZW50cy5CdHN0YXRlLkxlU3RhdGVWYWx1ZU9uPFwvY29kZT46IExFIGZ1bmN0aW9uIG9uPFwvdGQ+XG48dGQ+V2hlbiBCbHVldG9vdGggIExFIHN0YXRlIGhhcyBjaGFuZ2VkLjxcL3RkPlxuPHRkPi08XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlN5c3RlbUV2ZW50cy5CdHN0YXRlLkV2ZW50TmFtZTxcL2NvZGU+PFwvdGQ+XG48dGQ+PGNvZGU+U3lzdGVtRXZlbnRzLkJ0c3RhdGUuVHJhbnNmZXJTdGF0ZUtleTxcL2NvZGU+PFwvdGQ+XG48dGQ+LSA8Y29kZT5TeXN0ZW1FdmVudHMuQnRzdGF0ZS5UcmFuc2ZlclN0YXRlVmFsdWVOb250cmFuc2ZlcmluZzxcL2NvZGU+OiAgSWRsZSBzdGF0ZSAgPGJyPi0gIDxjb2RlPlN5c3RlbUV2ZW50cy5CdHN0YXRlLlRyYW5zZmVyU3RhdGVWYWx1ZVRyYW5zZmVyaW5nPFwvY29kZT46IEZpbGUgaXMgdHJhbnNmZXJyaW5nPFwvdGQ+XG48dGQ+V2hlbiB0aGUgZmlsZSAgdHJhbnNmZXIgc3RhdGUgaGFzIGNoYW5nZWQuPFwvdGQ+XG48dGQ+LTxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxcL2xpPlxuPFwvdWw+XG48XC9saT5cbjxsaT5cbjxwPmxpYnNscC1sb2NhdGlvbjxcL3A+XG48dWw+XG48bGk+XG48cD5sb2NhdGlvbjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5FdmVudCBuYW1lPFwvdGg+XG48dGg+RXZlbnQgZGF0YSBrZXk8XC90aD5cbjx0aD5FdmVudCBkYXRhIHZhbHVlPFwvdGg+XG48dGg+Q29uZGl0aW9uPFwvdGg+XG48dGg+Tm90ZXM8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+PGNvZGU+U3lzdGVtRXZlbnRzLkxvY2F0aW5nRW5hYmxlU3RhdGUuRXZlbnROYW1lPFwvY29kZT48XC90ZD5cbjx0ZD48Y29kZT5TeXN0ZW1FdmVudHMuTG9jYXRpbmdFbmFibGVTdGF0ZS5TdGF0ZUtleTxcL2NvZGU+PFwvdGQ+XG48dGQ+LSA8Y29kZT5TeXN0ZW1FdmVudHMuTG9jYXRpbmdFbmFibGVTdGF0ZS5TdGF0ZVZhbHVlRGlzYWJsZWQ8XC9jb2RlPjogIExvY2F0aW9uIGRpc2FibGVkIDxicj4tICA8Y29kZT5TeXN0ZW1FdmVudHMuTG9jYXRpbmdFbmFibGVTdGF0ZS5TdGF0ZVZhbHVlRW5hYmxlZDxcL2NvZGU+OiBMb2NhdGlvbiBlbmFibGVkPFwvdGQ+XG48dGQ+V2hlbiB0aGUgPGNvZGU+bG9jYXRpb25fZW5hYmxlX3N0YXRlPFwvY29kZT4gaGFzICBjaGFuZ2VkLCBmb3IgZXhhbXBsZSwgYnkgdGhlIHVzZXIgdG9nZ2xpbmcgdGhlIGxvY2F0aW9uIHNldHRpbmcgaW4gdGhlICBzZXR0aW5ncyBtZW51IG9yIHF1aWNrIHBhbmVsLjxcL3RkPlxuPHRkPllvdSBjYW4gZ2V0IHRoZSAgY3VycmVudCB2YWx1ZSB3aXRoIHRoZSA8Y29kZT5Mb2NhdGlvbi5Mb2NhdG9ySGVscGVyLklzRW5hYmxlZFR5cGU8XC9jb2RlPiBwcm9wZXJ0eS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlN5c3RlbUV2ZW50cy5HcHNFbmFibGVTdGF0ZS5FdmVudE5hbWU8XC9jb2RlPjxcL3RkPlxuPHRkPjxjb2RlPlN5c3RlbUV2ZW50cy5HcHNFbmFibGVTdGF0ZS5TdGF0ZUtleTxcL2NvZGU+PFwvdGQ+XG48dGQ+LSA8Y29kZT5TeXN0ZW1FdmVudHMuR3BzRW5hYmxlU3RhdGUuU3RhdGVWYWx1ZURpc2FibGVkPFwvY29kZT46ICBHUFMgZGlzYWJsZWQgIDxicj4tIDxjb2RlPlN5c3RlbUV2ZW50cy5HcHNFbmFibGVTdGF0ZS5TdGF0ZVZhbHVlRW5hYmxlZDxcL2NvZGU+OiBHUFMgZW5hYmxlZDxcL3RkPlxuPHRkPldoZW4gdGhlIDxjb2RlPmdwc19lbmFibGVfc3RhdGU8XC9jb2RlPiBoYXMgY2hhbmdlZC48XC90ZD5cbjx0ZD5Zb3UgY2FuIGdldCB0aGUgIGN1cnJlbnQgdmFsdWUgd2l0aCB0aGUgPGNvZGU+TG9jYXRpb24uTG9jYXRvckhlbHBlci5Jc0VuYWJsZWRUeXBlPFwvY29kZT4gcHJvcGVydHkuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5TeXN0ZW1FdmVudHMuTnBzRW5hYmxlU3RhdGUuRXZlbnROYW1lPFwvY29kZT48XC90ZD5cbjx0ZD48Y29kZT5TeXN0ZW1FdmVudHMuTnBzRW5hYmxlU3RhdGUuU3RhdGVLZXk8XC9jb2RlPjxcL3RkPlxuPHRkPi0gPGNvZGU+U3lzdGVtRXZlbnRzLk5wc0VuYWJsZVN0YXRlLlN0YXRlVmFsdWVEaXNhYmxlZDxcL2NvZGU+OiAgTlBTIGRpc2FibGVkIDxicj4tICA8Y29kZT5TeXN0ZW1FdmVudHMuTnBzRW5hYmxlU3RhdGUuU3RhdGVWYWx1ZUVuYWJsZWQ8XC9jb2RlPjogTlBTIGVuYWJsZWQ8XC90ZD5cbjx0ZD5XaGVuIHRoZSBOUFMgIHNldHRpbmcgaGFzIGNoYW5nZWQsIGZvciBleGFtcGxlLCBieSB0aGUgdXNlciB0b2dnbGluZyB0aGUgbG9jYXRpb24gIHNldHRpbmdzLjxcL3RkPlxuPHRkPllvdSBjYW4gZ2V0IHRoZSAgY3VycmVudCB2YWx1ZSB3aXRoIHRoZSA8Y29kZT5Mb2NhdGlvbi5Mb2NhdG9ySGVscGVyLklzRW5hYmxlZFR5cGU8XC9jb2RlPiBwcm9wZXJ0eS48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48XC9saT5cbjxcL3VsPlxuPFwvbGk+XG48bGk+XG48cD5tc2ctc2VydmljZTxcL3A+XG48dWw+XG48bGk+XG48cD5tZXNzYWdlPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkV2ZW50IG5hbWU8XC90aD5cbjx0aD5FdmVudCBkYXRhIGtleTxcL3RoPlxuPHRoPkV2ZW50IGRhdGEgdmFsdWU8XC90aD5cbjx0aD5Db25kaXRpb248XC90aD5cbjx0aD5Ob3RlczxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD48Y29kZT5TeXN0ZW1FdmVudHMuSW5jb21pbmdNc2cuRXZlbnROYW1lPFwvY29kZT48XC90ZD5cbjx0ZD48Y29kZT5TeXN0ZW1FdmVudHMuSW5jb21pbmdNc2cuVHlwZUtleTxcL2NvZGU+PFwvdGQ+XG48dGQ+LSA8Y29kZT5TeXN0ZW1FdmVudHMuSW5jb21pbmdNc2cuVHlwZVZhbHVlU21zPFwvY29kZT46ICBTTVMtdHlwZSBtZXNzYWdlIDxicj4tICA8Y29kZT5TeXN0ZW1FdmVudHMuSW5jb21pbmdNc2cuVHlwZVZhbHVlTW1zPFwvY29kZT46IE1NUy10eXBlIG1lc3NhZ2UgPGJyPi0gIDxjb2RlPlN5c3RlbUV2ZW50cy5JbmNvbWluZ01zZy5UeXBlVmFsdWVQdXNoPFwvY29kZT46IFB1c2gtdHlwZSBtZXNzYWdlIDxicj4tICA8Y29kZT5TeXN0ZW1FdmVudHMuSW5jb21pbmdNc2cuVHlwZVZhbHVlQ2I8XC9jb2RlPjogQ2ItdHlwZSBtZXNzYWdlPFwvdGQ+XG48dGQ+V2hlbiBhbiBTTVMsIE1NUywgcHVzaCwgb3IgQ0IgbWVzc2FnZSBoYXMgYmVlbiByZWNlaXZlZC48XC90ZD5cbjx0ZD4tPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5TeXN0ZW1FdmVudHMuSW5jb21pbmdNc2cuRXZlbnROYW1lPFwvY29kZT48XC90ZD5cbjx0ZD48Y29kZT5TeXN0ZW1FdmVudHMuSW5jb21pbmdNc2cuSWRLZXk8XC9jb2RlPjxcL3RkPlxuPHRkPjxjb2RlPm1zZ19pZDxcL2NvZGU+OiBNZXNzYWdlIElEIG9mIHRoZSByZWNlaXZlZCBtZXNzYWdlIChzdHJpbmcgb2YgdGhlIHVuc2lnbmVkIDxjb2RlPmludDxcL2NvZGU+IHR5cGUgdmFsdWUpPFwvdGQ+XG48dGQ+LTxcL3RkPlxuPHRkPi08XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlN5c3RlbUV2ZW50cy5PdXRnb2luZ01zZy5FdmVudE5hbWU8XC9jb2RlPjxcL3RkPlxuPHRkPjxjb2RlPlN5c3RlbUV2ZW50cy5PdXRnb2luZ01zZy5UeXBlS2V5PFwvY29kZT48XC90ZD5cbjx0ZD4tIDxjb2RlPlN5c3RlbUV2ZW50cy5PdXRnb2luZ01zZy5UeXBlVmFsdWVTbXM8XC9jb2RlPjogIFNNUy10eXBlIG1lc3NhZ2UgPGJyPi0gIDxjb2RlPlN5c3RlbUV2ZW50cy5PdXRnb2luZ01zZy5UeXBlVmFsdWVNbXM8XC9jb2RlPjogTU1TLXR5cGUgbWVzc2FnZTxcL3RkPlxuPHRkPldoZW4gYW4gU01TIG9yIE1NUyBtZXNzYWdlIGhhcyBiZWVuIHNlbnQuPFwvdGQ+XG48dGQ+LTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+U3lzdGVtRXZlbnRzLk91dGdvaW5nTXNnLkV2ZW50TmFtZTxcL2NvZGU+PFwvdGQ+XG48dGQ+PGNvZGU+U3lzdGVtRXZlbnRzLk91dGdvaW5nTXNnLklkS2V5PFwvY29kZT48XC90ZD5cbjx0ZD48Y29kZT5tc2dfaWQ8XC9jb2RlPjogTWVzc2FnZSBJRCBvZiB0aGUgc2VudCBtZXNzYWdlIChzdHJpbmcgb2YgdGhlIHVuc2lnbmVkIDxjb2RlPmludDxcL2NvZGU+IHR5cGUgdmFsdWUpPFwvdGQ+XG48dGQ+LTxcL3RkPlxuPHRkPi08XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48XC9saT5cbjxcL3VsPlxuPFwvbGk+XG48bGk+XG48cD5hbGFybS1tYW5hZ2VyPFwvcD5cbjx1bD5cbjxsaT5cbjxwPnRpbWU8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RXZlbnQgbmFtZTxcL3RoPlxuPHRoPkV2ZW50IGRhdGEga2V5PFwvdGg+XG48dGg+RXZlbnQgZGF0YSB2YWx1ZTxcL3RoPlxuPHRoPkNvbmRpdGlvbjxcL3RoPlxuPHRoPk5vdGVzPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPjxjb2RlPlN5c3RlbUV2ZW50cy5UaW1lQ2hhbmdlZC5FdmVudE5hbWU8XC9jb2RlPjxcL3RkPlxuPHRkPk5cL0E8XC90ZD5cbjx0ZD5OXC9BPFwvdGQ+XG48dGQ+V2hlbiAgdGhlIHN5c3RlbSB0aW1lIHNldHRpbmcgaGFzIGNoYW5nZWQuPFwvdGQ+XG48dGQ+WW91ICBjYW4gZ2V0IHRoZSBjdXJyZW50IHZhbHVlIHdpdGggdGhlIDxjb2RlPkFwcGxpY2F0aW9ucy5BbGFybU1hbmFnZXIuR2V0Q3VycmVudFRpbWU8XC9jb2RlPiBtZXRob2QuPFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPFwvbGk+XG48XC91bD5cbjxcL2xpPlxuPGxpPlxuPHA+c2V0dGluZzxcL3A+XG48dWw+XG48bGk+XG48cD50aW1lPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkV2ZW50IG5hbWU8XC90aD5cbjx0aD5FdmVudCBkYXRhIGtleTxcL3RoPlxuPHRoPkV2ZW50IGRhdGEgdmFsdWU8XC90aD5cbjx0aD5Db25kaXRpb248XC90aD5cbjx0aD5Ob3RlczxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD48Y29kZT5TeXN0ZW1FdmVudHMuVGltZVpvbmUuRXZlbnROYW1lPFwvY29kZT48XC90ZD5cbjx0ZD48Y29kZT5TeXN0ZW1FdmVudHMuVGltZVpvbmUuS2V5PFwvY29kZT48XC90ZD5cbjx0ZD5UaGUgIHZhbHVlIG9mIHRoaXMga2V5IGlzIHRoZSB0aW1lIHpvbmUgdmFsdWUgb2YgdGhlIHRpbWUgem9uZSBkYXRhYmFzZSwgZm9yICBleGFtcGxlLCAmcXVvdDtBc2lhXC9TZW91bCZxdW90OywgJnF1b3Q7QW1lcmljYVwvTmV3X1lvcmsmcXVvdDsuIEZvciBtb3JlICBpbmZvcm1hdGlvbiwgc2VlIHRoZSBJQU5BIFRpbWUgWm9uZSBEYXRhYmFzZS48XC90ZD5cbjx0ZD5XaGVuICB0aGUgdGltZSB6b25lIGhhcyBjaGFuZ2VkLjxcL3RkPlxuPHRkPllvdSAgY2FuIGdldCB0aGUgY3VycmVudCB2YWx1ZSB3aXRoIHRoZSA8Y29kZT5TeXN0ZW0uU3lzdGVtU2V0dGluZ3MuTG9jYWxlVGltZVpvbmU8XC9jb2RlPiBwcm9wZXJ0eS48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48XC9saT5cbjxsaT5cbjxwPmxvY2FsZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5FdmVudCBuYW1lPFwvdGg+XG48dGg+RXZlbnQgZGF0YSBrZXk8XC90aD5cbjx0aD5FdmVudCBkYXRhIHZhbHVlPFwvdGg+XG48dGg+Q29uZGl0aW9uPFwvdGg+XG48dGg+Tm90ZXM8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+PGNvZGU+U3lzdGVtRXZlbnRzLkhvdXJGb3JtYXQuRXZlbnROYW1lPFwvY29kZT48XC90ZD5cbjx0ZD48Y29kZT5TeXN0ZW1FdmVudHMuSG91ckZvcm1hdC5LZXk8XC9jb2RlPjxcL3RkPlxuPHRkPi0gPGNvZGU+U3lzdGVtRXZlbnRzLkhvdXJGb3JtYXQuVmFsdWUxMjxcL2NvZGU+IDxicj4tIDxjb2RlPlN5c3RlbUV2ZW50cy5Ib3VyRm9ybWF0LlZhbHVlMjQ8XC9jb2RlPjxcL3RkPlxuPHRkPldoZW4gIHRoZSA8Y29kZT5ob3VyX2Zvcm1hdDxcL2NvZGU+IGhhcyBjaGFuZ2VkLCAgZm9yIGV4YW1wbGUsIGJ5IHRoZSB1c2VyIHRvZ2dsaW5nIHRoZSBkYXRlIGFuZCB0aW1lIHNldHRpbmdzIGZvciB0aGUgMjQtaG91ciAgY2xvY2sgKHdoZXJlIDxzdHJvbmc+T0ZGPFwvc3Ryb25nPiBzdGFuZHMgIGZvciB0aGUgMTItaG91ciBjbG9jaykuPFwvdGQ+XG48dGQ+WW91ICBjYW4gZ2V0IHRoZSBjdXJyZW50IHZhbHVlIHdpdGggdGhlIDxjb2RlPlN5c3RlbS5TeXN0ZW1TZXR0aW5ncy5Mb2NhbGVUaW1lRm9ybWF0MjRIb3VyRW5hYmxlZDxcL2NvZGU+IHByb3BlcnR5LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+U3lzdGVtRXZlbnRzLkxhbmd1YWdlU2V0LkV2ZW50TmFtZTxcL2NvZGU+PFwvdGQ+XG48dGQ+PGNvZGU+U3lzdGVtRXZlbnRzLkxhbmd1YWdlU2V0LktleTxcL2NvZGU+PFwvdGQ+XG48dGQ+VGhlIHZhbHVlIG9mICB0aGlzIGtleSBpcyB0aGUgZnVsbCBuYW1lIG9mIHRoZSBsb2NhbGUsIGZvciBleGFtcGxlLCA8Y29kZT5rb19LUi5VVEY4PFwvY29kZT4gZm9yIEtvcmVhbiBhbmQgPGNvZGU+ZW5fVVMuVVRGODxcL2NvZGU+IGZvciBBbWVyaWNhbiBFbmdsaXNoLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBMaW51eCAgbG9jYWxlIGluZm9ybWF0aW9uLjxcL3RkPlxuPHRkPldoZW4gdGhlIDxjb2RlPmxhbmd1YWdlX3NldDxcL2NvZGU+IGhhcyBjaGFuZ2VkLjxcL3RkPlxuPHRkPllvdSBjYW4gZ2V0IHRoZSAgY3VycmVudCB2YWx1ZSB3aXRoIHRoZSA8Y29kZT5TeXN0ZW0uU3lzdGVtU2V0dGluZ3MuTG9jYWxlTGFuZ3VhZ2U8XC9jb2RlPiBwcm9wZXJ0eS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlN5c3RlbUV2ZW50cy5SZWdpb25Gb3JtYXQuRXZlbnROYW1lPFwvY29kZT48XC90ZD5cbjx0ZD48Y29kZT5TeXN0ZW1FdmVudHMuUmVnaW9uRm9ybWF0LktleTxcL2NvZGU+PFwvdGQ+XG48dGQ+VGhlICB2YWx1ZSBvZiB0aGlzIGtleSBpcyB0aGUgZnVsbCBuYW1lIG9mIHRoZSBsb2NhbGUsIGZvciBleGFtcGxlLCA8Y29kZT5rb19LUi5VVEY4PFwvY29kZT4gZm9yIHRoZSBLb3JlYW4gcmVnaW9uICBmb3JtYXQgYW5kIDxjb2RlPmVuX1VTLlVURjg8XC9jb2RlPiAgZm9yIHRoZSBVU0EgcmVnaW9uIGZvcm1hdC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgTGludXggbG9jYWxlICBpbmZvcm1hdGlvbi48XC90ZD5cbjx0ZD5XaGVuICB0aGUgPGNvZGU+cmVnaW9uX2Zvcm1hdDxcL2NvZGU+IGhhcyBjaGFuZ2VkLjxcL3RkPlxuPHRkPllvdSAgY2FuIGdldCB0aGUgY3VycmVudCB2YWx1ZSB3aXRoIHRoZSA8Y29kZT5TeXN0ZW0uU3lzdGVtU2V0dGluZ3MuTG9jYWxlQ291bnRyeTxcL2NvZGU+IHByb3BlcnR5LjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxcL2xpPlxuPGxpPlxuPHA+c291bmQ8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RXZlbnQgbmFtZTxcL3RoPlxuPHRoPkV2ZW50IGRhdGEga2V5PFwvdGg+XG48dGg+RXZlbnQgZGF0YSB2YWx1ZTxcL3RoPlxuPHRoPkNvbmRpdGlvbjxcL3RoPlxuPHRoPk5vdGVzPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPjxjb2RlPlN5c3RlbUV2ZW50cy5TaWxlbnRNb2RlLkV2ZW50TmFtZTxcL2NvZGU+PFwvdGQ+XG48dGQ+PGNvZGU+U3lzdGVtRXZlbnRzLlNpbGVudE1vZGUuS2V5PFwvY29kZT48XC90ZD5cbjx0ZD4tIDxjb2RlPlN5c3RlbUV2ZW50cy5TaWxlbnRNb2RlLlZhbHVlT248XC9jb2RlPiA8YnI+IC0gPGNvZGU+U3lzdGVtRXZlbnRzLlNpbGVudE1vZGUuVmFsdWVPZmY8XC9jb2RlPjxcL3RkPlxuPHRkPldoZW4gIHRoZSByaW5ndG9uZSBoYXMgY2hhbmdlZCB0byAwIG9yIGFub3RoZXIgbW9kZS4gRm9yIGV4YW1wbGUsIGlmIHRoZSBjYWxsICBzbGlkZXIgaGFzIGJlZW4gY2hhbmdlZCB0byAwLCA8Y29kZT5zaWxlbnRfbW9kZTxcL2NvZGU+IGlzIDxjb2RlPiZxdW90O29uJnF1b3Q7PFwvY29kZT4uIE90aGVyd2lzZSwgPGNvZGU+c2lsZW50X21vZGU8XC9jb2RlPiBpcyA8Y29kZT4mcXVvdDtvZmYmcXVvdDs8XC9jb2RlPi48XC90ZD5cbjx0ZD5Zb3UgIGNhbiBnZXQgdGhlIGN1cnJlbnQgdmFsdWUgd2l0aCB0aGUgPGNvZGU+U3lzdGVtLlN5c3RlbVNldHRpbmdzLlNvdW5kU2lsZW50TW9kZUVuYWJsZWQ8XC9jb2RlPiBwcm9wZXJ0eS48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48XC9saT5cbjxsaT5cbjxwPnZpYnJhdGlvbjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5FdmVudCBuYW1lPFwvdGg+XG48dGg+RXZlbnQgZGF0YSBrZXk8XC90aD5cbjx0aD5FdmVudCBkYXRhIHZhbHVlPFwvdGg+XG48dGg+Q29uZGl0aW9uPFwvdGg+XG48dGg+Tm90ZXM8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+PGNvZGU+U3lzdGVtRXZlbnRzLlZpYnJhdGlvblN0YXRlLkV2ZW50TmFtZTxcL2NvZGU+PFwvdGQ+XG48dGQ+PGNvZGU+U3lzdGVtRXZlbnRzLlZpYnJhdGlvblN0YXRlLlN0YXRlS2V5PFwvY29kZT48XC90ZD5cbjx0ZD4tIDxjb2RlPlN5c3RlbUV2ZW50cy5WaWJyYXRpb25TdGF0ZS5TdGF0ZVZhbHVlT248XC9jb2RlPiA8YnI+IC0gPGNvZGU+U3lzdGVtRXZlbnRzLlZpYnJhdGlvblN0YXRlLlN0YXRlVmFsdWVPZmY8XC9jb2RlPjxcL3RkPlxuPHRkPldoZW4gdGhlICB2aWJyYXRpb24gc3RhdGUgaGFzIGNoYW5nZWQuPFwvdGQ+XG48dGQ+WW91IGNhbiBnZXQgdGhlIGN1cnJlbnQgdmFsdWUgdXNpbmcgPGNvZGU+U3lzdGVtLkluZm9ybWF0aW9uLlNldENhbGxiYWNrPFwvY29kZT4gd2l0aCB0aGUgPGNvZGU+aHR0cDpcL1wvdGl6ZW4ub3JnXC9ydW50aW1lZmVhdHVyZVwvdmlicmF0aW9uPFwvY29kZT4gcHJvcGVydHkuPFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPFwvbGk+XG48bGk+XG48cD5zY3JlZW48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RXZlbnQgbmFtZTxcL3RoPlxuPHRoPkV2ZW50IGRhdGEga2V5PFwvdGg+XG48dGg+RXZlbnQgZGF0YSB2YWx1ZTxcL3RoPlxuPHRoPkNvbmRpdGlvbjxcL3RoPlxuPHRoPk5vdGVzPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPjxjb2RlPlN5c3RlbUV2ZW50cy5BdXRvUm90YXRlU3RhdGUuRXZlbnROYW1lPFwvY29kZT48XC90ZD5cbjx0ZD48Y29kZT5TeXN0ZW1FdmVudHMuQXV0b1JvdGF0ZVN0YXRlLlN0YXRlS2V5PFwvY29kZT48XC90ZD5cbjx0ZD4tIDxjb2RlPlN5c3RlbUV2ZW50cy5BdXRvUm90YXRlU3RhdGUuU3RhdGVPbjxcL2NvZGU+IDxicj4gLSA8Y29kZT5TeXN0ZW1FdmVudHMuQXV0b1JvdGF0ZVN0YXRlLlN0YXRlT2ZmPFwvY29kZT48XC90ZD5cbjx0ZD5XaGVuIHRoZSBzY3JlZW4gYXV0b3JvdGF0ZSBzdGF0ZSAgaGFzICBjaGFuZ2VkLCBmb3IgZXhhbXBsZSwgYnkgdGhlIHVzZXIgdG9nZ2xpbmcgdGhlIGRpc3BsYXkgc2V0dGluZ3MuPFwvdGQ+XG48dGQ+WW91IGNhbiBnZXQgdGhlICBjdXJyZW50IHZhbHVlIHdpdGggdGhlIDxjb2RlPlN5c3RlbS5TeXN0ZW1TZXR0aW5ncy5EaXNwbGF5U2NyZWVuUm90YXRpb25BdXRvRW5hYmxlZDxcL2NvZGU+IHByb3BlcnR5LjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxcL2xpPlxuPGxpPlxuPHA+bW9iaWxlPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkV2ZW50IG5hbWU8XC90aD5cbjx0aD5FdmVudCBkYXRhIGtleTxcL3RoPlxuPHRoPkV2ZW50IGRhdGEgdmFsdWU8XC90aD5cbjx0aD5Db25kaXRpb248XC90aD5cbjx0aD5Ob3RlczxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD48Y29kZT5TeXN0ZW1FdmVudHMuTW9iaWxlRGF0YVN0YXRlLkV2ZW50TmFtZTxcL2NvZGU+PFwvdGQ+XG48dGQ+PGNvZGU+U3lzdGVtRXZlbnRzLk1vYmlsZURhdGFTdGF0ZS5TdGF0ZUtleTxcL2NvZGU+PFwvdGQ+XG48dGQ+LSA8Y29kZT5TeXN0ZW1FdmVudHMuTW9iaWxlRGF0YVN0YXRlLlN0YXRlVmFsdWVPbjxcL2NvZGU+IDxicj4gLSA8Y29kZT5TeXN0ZW1FdmVudHMuTW9iaWxlRGF0YVN0YXRlLlN0YXRlVmFsdWVPZmY8XC9jb2RlPjxcL3RkPlxuPHRkPldoZW4gdGhlIG1vYmlsZSBkYXRhIHN0YXRlIGhhcyBjaGFuZ2VkLCAgZm9yIGV4YW1wbGUsIGJ5IHRoZSB1c2VyIHRvZ2dsaW5nIHRoZSBuZXR3b3JrIHNldHRpbmdzLjxcL3RkPlxuPHRkPllvdSBjYW4gZ2V0IHRoZSAgY3VycmVudCB2YWx1ZSB3aXRoIHRoZSA8Y29kZT5TeXN0ZW0uU3lzdGVtU2V0dGluZ3MuRGF0YTNHTmV0d29ya0VuYWJsZWQ8XC9jb2RlPiBwcm9wZXJ0eS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlN5c3RlbUV2ZW50cy5EYXRhUm9hbWluZ1N0YXRlLkV2ZW50TmFtZTxcL2NvZGU+PFwvdGQ+XG48dGQ+PGNvZGU+U3lzdGVtRXZlbnRzLkRhdGFSb2FtaW5nU3RhdGUuU3RhdGVLZXk8XC9jb2RlPjxcL3RkPlxuPHRkPi0gPGNvZGU+U3lzdGVtRXZlbnRzLkRhdGFSb2FtaW5nU3RhdGUuU3RhdGVWYWx1ZU9uPFwvY29kZT4gPGJyPiAtIDxjb2RlPlN5c3RlbUV2ZW50cy5EYXRhUm9hbWluZ1N0YXRlLlN0YXRlVmFsdWVPZmY8XC9jb2RlPjxcL3RkPlxuPHRkPldoZW4gdGhlIGRhdGEgcm9hbWluZyBzdGF0ZSAgaGFzIGNoYW5nZWQsICBmb3IgZXhhbXBsZSwgYnkgdGhlIHVzZXIgdG9nZ2xpbmcgdGhlIG5ldHdvcmsgc2V0dGluZ3MuPFwvdGQ+XG48dGQ+WW91IGNhbiBnZXQgdGhlIGN1cnJlbnQgdmFsdWUgdXNpbmcgPGNvZGU+U3lzdGVtLkluZm9ybWF0aW9uLlNldENhbGxiYWNrPFwvY29kZT4gd2l0aCB0aGUgPGNvZGU+aHR0cDpcL1wvdGl6ZW4ub3JnXC9ydW50aW1lZmVhdHVyZVwvZGF0YXJvYW1pbmc8XC9jb2RlPiBrZXkuPFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPFwvbGk+XG48bGk+XG48cD5mb250PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkV2ZW50IG5hbWU8XC90aD5cbjx0aD5FdmVudCBkYXRhIGtleTxcL3RoPlxuPHRoPkV2ZW50IGRhdGEgdmFsdWU8XC90aD5cbjx0aD5Db25kaXRpb248XC90aD5cbjx0aD5Ob3RlczxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD48Y29kZT5TeXN0ZW1FdmVudHMuRm9udFNldC5FdmVudE5hbWU8XC9jb2RlPjxcL3RkPlxuPHRkPjxjb2RlPlN5c3RlbUV2ZW50cy5Gb250U2V0LktleTxcL2NvZGU+PFwvdGQ+XG48dGQ+VGhlIHZhbHVlIG9mICB0aGlzIGtleSBpcyB0aGUgZm9udCBuYW1lIG9mIHRoZSBzdHJpbmcgdHlwZSBieSBmb250LWNvbmZpZy48XC90ZD5cbjx0ZD5XaGVuIHRoZSBmb250ICBoYXMgY2hhbmdlZC48XC90ZD5cbjx0ZD5Zb3UgY2FuIGdldCB0aGUgIGN1cnJlbnQgdmFsdWUgd2l0aCB0aGUgPGNvZGU+U3lzdGVtLlN5c3RlbVNldHRpbmdzLkZvbnRUeXBlPFwvY29kZT4gcHJvcGVydHkuPFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPFwvbGk+XG48XC91bD5cbjxcL2xpPlxuPFwvdWw+XG48aDIgaWQ9XCJjb250ZW50LXJlbGF0ZWQtaW5mb3JtYXRpb25cIj48YSBocmVmPVwiI2NvbnRlbnQtcmVsYXRlZC1pbmZvcm1hdGlvblwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+UmVsYXRlZCBpbmZvcm1hdGlvbjxcL2gyPlxuPHVsPlxuPGxpPkRlcGVuZGVuY2llc1xuPHVsPlxuPGxpPlRpemVuIDUuNSBhbmQgSGlnaGVyPFwvbGk+XG48XC91bD5cbjxcL2xpPlxuPGxpPkFQSSBSZWZlcmVuY2VzXG48dWw+XG48bGk+PGEgaHJlZj1cIlwvYXBwbGljYXRpb25cL2RvdG5ldFwvYXBpXC9UaXplbkZYXC9sYXRlc3RcL2FwaVwvVGl6ZW4uQXBwbGljYXRpb25zLkV2ZW50TWFuYWdlclwiPlRpemVuLkFwcGxpY2F0aW9ucy5FdmVudE1hbmFnZXI8XC9hPiBuYW1lc3BhY2U8XC9saT5cbjxsaT48YSBocmVmPVwiXC9hcHBsaWNhdGlvblwvZG90bmV0XC9hcGlcL1RpemVuRlhcL2xhdGVzdFwvYXBpXC9UaXplbi5BcHBsaWNhdGlvbnMuRXZlbnRNYW5hZ2VyLkFwcGxpY2F0aW9uRXZlbnRNYW5hZ2VyXCI+VGl6ZW4uQXBwbGljYXRpb25zLkV2ZW50TWFuYWdlci5BcHBsaWNhdGlvbkV2ZW50TWFuYWdlcjxcL2E+IGNsYXNzPFwvbGk+XG48bGk+PGEgaHJlZj1cIlwvYXBwbGljYXRpb25cL2RvdG5ldFwvYXBpXC9UaXplbkZYXC9sYXRlc3RcL2FwaVwvVGl6ZW4uQXBwbGljYXRpb25zLkV2ZW50TWFuYWdlci5FdmVudFJlY2VpdmVyXCI+VGl6ZW4uQXBwbGljYXRpb25zLkV2ZW50TWFuYWdlci5FdmVudFJlY2VpdmVyPFwvYT4gY2xhc3M8XC9saT5cbjxcL3VsPlxuPFwvbGk+XG48XC91bD5cbiIsInRhYmxlX29mX2NvbnRlbnQiOiI8dWwgY2xhc3M9XCJ0YWJsZS1vZi1jb250ZW50c1wiPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1wcmVyZXF1aXNpdGVzXCI+UHJlcmVxdWlzaXRlczxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXB1Ymxpc2gtYW4tZXZlbnRcIj5QdWJsaXNoIGFuIGV2ZW50PFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtc3Vic2NyaWJlLXRvLWFuLWV2ZW50XCI+U3Vic2NyaWJlIHRvIGFuIGV2ZW50PFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtbWFuYWdlLWxhdW5jaC1vbi1ldmVudHNcIj5NYW5hZ2UgTGF1bmNoLU9uLUV2ZW50czxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXBsYXRmb3JtLWV2ZW50LXR5cGVzXCI+UGxhdGZvcm0gZXZlbnQgdHlwZXM8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1yZWxhdGVkLWluZm9ybWF0aW9uXCI+UmVsYXRlZCBpbmZvcm1hdGlvbjxcL2E+PFwvbGk+XG48XC91bD5cbiIsInRpdGxlIjoiRXZlbnQgQnJvYWRjYXN0IGFuZCBTdWJzY3JpcHRpb24iLCJyYXciOm51bGx9LHsiY2xhc3MiOiJBcHBcXFNlcnZpY2VzXFxEb2N1bWVudGF0aW9uXFxEYXRhXFxSZW5kZXJlZE1hcmtkb3duIiwicyI6IndyYmwifV19LHsicyI6ImFyciJ9XX0sIm1lbW8iOnsiaWQiOiI5U1hCUEVBUktYaE5RSE9BUmtUYSIsIm5hbWUiOiJfX21vdW50UGFyYW1zQ29udGFpbmVyIiwicGF0aCI6ImRvY3NcL2FwcGxpY2F0aW9uXC9kb3RuZXRcL2d1aWRlc1wvZXhjaGFuZ2UtZGF0YS1iZXR3ZWVuLWFwcHNcL2V2ZW50IiwibWV0aG9kIjoiR0VUIiwicmVsZWFzZSI6ImEtYS1hIn0sImNoZWNrc3VtIjoiZjk0MmU2MzdkNTBkOTBhODNjODdkYTlhNDRmM2JkZTRhODllZWI2NjU2YzM1MGI5ZDE2YWE4ODE3YWQ2Zjg2OCJ9')" >

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.