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.ComponentBased.Common namespace, include it in your application:<\/p>\n<code class=\"language-C#\">using Tizen.Applications.componentbased.common\nusing Tizen.Applications.componentbased.default \/\/ if you want to use ELFComponentBasedApplication\n<\/code>\n<p><a name=\"application_monitoring\"><\/a><\/p>\n<h2 id=\"content-start-component-based-application\"><a href=https://samsungtizenos.com/"#content-start-component-based-application\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Start component based application<\/h2>\n<p>To start a component based application, you must register the component based application callbacks and start a main event loop as shown in the following code:<\/p>\n<code class=\"language-C#\">namespace CompBasedCsharp\n{\n internal class App : EFLComponentBasedApplication\n {\n App(IDictionary&lt;Type, string&gt; typeInfo) : base(typeInfo)\n {\n }\n\n static void Main(string[] args)\n {\n Elementary.Initialize();\n Elementary.ThemeOverlay();\n IDictionary&lt;Type, string&gt; typeInfo = new Dictionary&lt;Type, string&gt;();\n typeInfo.Add(typeof(FrameComp), &quot;csharp_frame&quot;);\n typeInfo.Add(typeof(ServiceComp), &quot;csharp_service&quot;);\n typeInfo.Add(typeof(WidgetComp), &quot;csharp_widget&quot;);\n App app = new App(typeInfo);\n app.Run(args);\n }\n }\n}\n<\/code>\n<p><a name=\"frame_component_monitoring\"><\/a><\/p>\n<h3 id=\"content-manage-frame-component\"><a href=https://samsungtizenos.com/"#content-manage-frame-component\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Manage frame component<\/h3>\n<p>To add and manage frame components, you must add a frame component and register the frame component object. Follow the steps below to manage frame compnents.<\/p>\n<ol>\n<li>\n<p>Declare a frame component in the manifest file:<\/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\">&lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">component-based-application<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">appid<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;org.tizen.base-component&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">exec<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;@BINDIR@\/base-component&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">nodisplay<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;false&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">multiple<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;false&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">type<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;dotnet&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;Base-component application&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">icon<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;@DESKTOP_ICON@&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">icon<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">frame-component<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">id<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;base-frame&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">launch_mode<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;caller&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">main<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;true&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">icon-display<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;false&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">taskmanage<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;true&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">icon<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;org.tizen.sample.png&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">icon<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;base-frame&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">xml:lang<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;en-us&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;base-frame&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">xml:lang<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;ko-kr&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;base-frame[KOR]&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">frame-component<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">component-based-application<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>\n<p>Add a frame component to the component based application:<\/p>\n<code class=\"language-C#\">public class FrameComp : FrameComponent\n{\n internal static readonly string LogTag = &quot;CompBasedCsharp&quot;;\n EFLWindowInfo win_;\n\n public override IWindowInfo CreateWindowInfo()\n {\n Window window = new Window(&quot;base-frame&quot;);\n win_ = new EFLWindowInfo(window);\n return win_;\n }\n public override bool OnCreate()\n {\n Log.Debug(LogTag, &quot;OnCreate Frame&quot;);\n return true;\n }\n public override void OnStart(AppControl control, bool restarted)\n {\n Log.Debug(LogTag, &quot;OnStart Frame&quot;);\n }\n public override void OnResume()\n {\n Log.Debug(LogTag, &quot;OnResume Frame&quot;);\n base.OnResume();\n }\n public override void OnPause()\n {\n Log.Debug(LogTag, &quot;OnPause Frame&quot;);\n base.OnPause();\n }\n public override void OnDestroy()\n {\n Log.Debug(LogTag, &quot;OnDestroy Frame&quot;);\n base.OnDestroy();\n }\n public override void OnStop()\n {\n Log.Debug(LogTag, &quot;OnStop Frame&quot;);\n base.OnStop();\n }\n}\n\nnamespace CompBasedCsharp\n{\n internal class App : EFLComponentBasedApplication\n {\n internal static readonly string LogTag = &quot;CompBasedCsharp&quot;;\n App(IDictionary&lt;Type, string&gt; typeInfo) : base(typeInfo)\n {\n }\n\n static void Main(string[] args)\n {\n Elementary.Initialize();\n Elementary.ThemeOverlay();\n Log.Error(LogTag, &quot;start&quot;);\n IDictionary&lt;Type, string&gt; typeInfo = new Dictionary&lt;Type, string&gt;();\n typeInfo.Add(typeof(FrameComp), &quot;base-frame&quot;);\n App app = new App(typeInfo);\n app.Run(args);\n }\n }\n}\n<\/code>\n<\/li>\n<\/ol>\n<p><a name=\"service_component_monitoring\"><\/a><\/p>\n<h3 id=\"content-manage-service-component\"><a href=https://samsungtizenos.com/"#content-manage-service-component\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Manage service component<\/h3>\n<p>To add and manage service component, you must add a service component and register the service component object. Follow the steps below to manage service components.<\/p>\n<ol>\n<li>\n<p>Declare a service component in the manifest file:<\/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\">&lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">component-based-application<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">appid<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;org.tizen.base-component&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">exec<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;@BINDIR@\/base-component&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">nodisplay<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;false&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">multiple<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;false&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">type<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;dotnet&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;Base-component application&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">icon<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;@DESKTOP_ICON@&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">icon<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">service-component<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">id<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;base-service&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">launch_mode<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;caller&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">main<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;false&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">icon-display<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;false&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">taskmanage<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;true&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">icon<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;org.tizen.sample.png&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">icon<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;base-service&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">xml:lang<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;en-us&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;base-service&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">xml:lang<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;ko-kr&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;base-service[KOR]&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">service-component<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">component-based-application<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>\n<p>Add a service component to the component based application:<\/p>\n<code class=\"language-C#\">public class ServiceComp : ServiceComponent\n{\n internal static readonly string LogTag = &quot;CompBasedCsharp&quot;;\n public override bool OnCreate()\n {\n Log.Debug(LogTag, &quot;OnCreate Service&quot;);\n return true;\n }\n public override void OnStartCommand(AppControl control, bool restarted)\n {\n Log.Debug(LogTag, &quot;OnStartCommand Service&quot;);\n }\n public override void OnDestroy()\n {\n Log.Debug(LogTag, &quot;OnDestroy Service&quot;);\n base.OnDestroy();\n }\n}\n\nnamespace CompBasedCsharp\n{\n internal class App : EFLComponentBasedApplication\n {\n internal static readonly string LogTag = &quot;CompBasedCsharp&quot;;\n App(IDictionary&lt;Type, string&gt; typeInfo) : base(typeInfo)\n {\n }\n\n static void Main(string[] args)\n {\n Elementary.Initialize();\n Elementary.ThemeOverlay();\n Log.Error(LogTag, &quot;start&quot;);\n IDictionary&lt;Type, string&gt; typeInfo = new Dictionary&lt;Type, string&gt;();\n typeInfo.Add(typeof(ServiceComp), &quot;base-service&quot;);\n App app = new App(typeInfo);\n app.Run(args);\n }\n }\n}\n<\/code>\n<\/li>\n<\/ol>\n<p><a name=\"widget_component_monitoring\"><\/a><\/p>\n<h3 id=\"content-manage-widget-component\"><a href=https://samsungtizenos.com/"#content-manage-widget-component\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Manage widget component<\/h3>\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>The widget component APIs are supported since Tizen 6.5<\/p>\n<\/div>\n<p>To add and manage widget components, you must add a widget component and register the widget component object. Follow the steps below to manage widget components.<\/p>\n<ol>\n<li>\n<p>Declare a widget component in the manifest file:<\/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\">&lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">component-based-application<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">appid<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;org.tizen.base-component&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">exec<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;@BINDIR@\/base-component&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">nodisplay<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;false&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">multiple<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;false&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">type<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;dotnet&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;Base-component application&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">icon<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;@DESKTOP_ICON@&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">icon<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">widget-component<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">id<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;base-widget&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">setup-appid<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;base-widget&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">max-instance<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=0&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">icon<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;org.tizen.sample.png&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">icon<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;base-widget&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">xml:lang<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;en-us&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;base-widget&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">xml:lang<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;ko-kr&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;base-widget[KOR]&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">support-size<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;2x2&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">support-size<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">widget-component<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">component-based-application<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>\n<p>Add a widget component to the component based application:<\/p>\n<code class=\"language-C#\">public class WidgetComp : WidgetComponent\n{\n internal static readonly string LogTag = &quot;CompBasedCsharp&quot;;\n MyWindowProxy win_;\n\n public override IWindowProxy CreateWindowInfo(int width, int height)\n {\n Window window = new Window(&quot;base-widget&quot;);\n win_ = new MyWindowProxy(window);\n return win_;\n }\n public override bool OnCreate(int width, int height)\n {\n Log.Debug(LogTag, &quot;OnCreate Widget&quot;);\n return true;\n }\n public override void OnStart(bool restarted)\n {\n Log.Debug(LogTag, &quot;OnStart Widget&quot;);\n }\n public override void OnResume()\n {\n Log.Debug(LogTag, &quot;OnResume Widget&quot;);\n base.OnResume();\n }\n public override void OnPause()\n {\n Log.Debug(LogTag, &quot;OnPause Widget&quot;);\n base.OnPause();\n }\n public override void OnDestroy(bool permanent)\n {\n Log.Debug(LogTag, &quot;OnDestroy Widget&quot;);\n base.OnDestroy(permanent);\n }\n public override void OnStop()\n {\n Log.Debug(LogTag, &quot;OnStop Widget&quot;);\n base.OnStop();\n }\n}\n\nnamespace CompBasedCsharp\n{\n internal class App : EFLComponentBasedApplication\n {\n internal static readonly string LogTag = &quot;CompBasedCsharp&quot;;\n App(IDictionary&lt;Type, string&gt; typeInfo) : base(typeInfo)\n {\n }\n\n static void Main(string[] args)\n {\n Elementary.Initialize();\n Elementary.ThemeOverlay();\n Log.Error(LogTag, &quot;start&quot;);\n IDictionary&lt;Type, string&gt; typeInfo = new Dictionary&lt;Type, string&gt;();\n typeInfo.Add(typeof(WidgetComp), &quot;base-widget&quot;);\n App app = new App(typeInfo);\n app.Run(args);\n }\n }\n}\n<\/code>\n<\/li>\n<\/ol>\n<p><a name=\"launch_application\"><\/a><\/p>\n<h2 id=\"content-launch-component-based-application\"><a href=https://samsungtizenos.com/"#content-launch-component-based-application\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Launch component based application<\/h2>\n<p>To launch a component based application, follow the steps below:<\/p>\n<ol>\n<li>\n<p>Declare the launch privilege in the manifest file:<\/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\">&lt;?<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">xml<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> version<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;1.0&quot;<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\"> encoding<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;utf-8&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">?&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">manifest<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">xmlns<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;http:\/\/tizen.org\/ns\/packages&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">api-version<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;9&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">package<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;@PACKAGE_NAME@&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">install-location<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;internal-only&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">version<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;0.1.1&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;Sample&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">author<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">email<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;tizenappfw@tizen.com&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">href<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;www.tizen.org&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;Tizen App Framework&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">author<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">description<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;Sample&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">description<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">ui-application<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">appid<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;org.tizen.sample&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">exec<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;@BINDIR@\/sample&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">nodisplay<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;false&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">multiple<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;false&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">type<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;dotnet&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">taskmanage<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;true&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">launch_mode<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">=<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&quot;caller&quot;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;Sample&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">icon<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;@DESKTOP_ICON@&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">icon<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">ui-application<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">privileges<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">privilege<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;http:\/\/tizen.org\/privilege\/appmanager.launch&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">privilege<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> &lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">privileges<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&lt;\/<\/span><span style=\"color:#22863A;--shiki-dark:#85E89D\">manifest<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">&gt;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>\n<p>Send launch request.<\/p>\n<p>You can send a launch request using <code>AppControl<\/code>. <code>AppControl<\/code> contains the component based application's ID and the component ID. The component ID is optional. If you do not set the component ID, the main component instance is created.<\/p>\n<p>You can launch a component based application as shown in the following code:<\/p>\n<code class=\"language-C#\">private void ButtonClickedCallback(object sender, EventArgs e)\n{\n AppControl control = new AppControl();\n control.ApplicationId = &quot;org.tizen.example.CompBasedCsharp&quot;;\n control.ComponentId = &quot;base-frame&quot;;\n control.LaunchMode = AppControlLaunchMode.Group;\n AppControl.SendLaunchRequestAsync(control, null);\n}\n<\/code>\n<\/li>\n<\/ol>\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>\n<p>Dependencies<\/p>\n<ul>\n<li>Tizen 5.5 and Higher<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>API References<\/p>\n<ul>\n<li><a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Applications.ComponentBased.Common.ComponentBasedApplication.md/">Tizen.Applications.ComponentBased.Common.ComponentBasedApplication class<\/li>\n<li><a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Applications.ComponentBased.Common.ServiceComponent.md/">Tizen.Applications.ComponentBased.Common.ServiceComponent class<\/li>\n<li><a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Applications.ComponentBased.Common.WidgetComponent.md/">Tizen.Applications.ComponentBased.Common.WidgetComponent class<\/li>\n<li><a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Applications.ComponentBased.Common.FrameComponent.md/">Tizen.Applications.ComponentBased.Common.FrameComponent class<\/li>\n<li><a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Applications.ComponentBased.Common.BaseComponent.md/">Tizen.Applications.ComponentBased.Common.BaseComponent 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-application-states\">Application states<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-application-event-callbacks\">Application event callbacks<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-components-states-and-event-callbacks\">Component's states and event callbacks<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-frame-component-states\">Frame component states<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-frame-component-event-callbacks\">Frame component event callbacks<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-service-component-states\">Service component states<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-service-component-event-callbacks\">Service component event callbacks<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-widget-component-states\">Widget component states<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-widget-component-event-callbacks\">Widget component event callbacks<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-application-attributes\">Application attributes<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-prerequisites\">Prerequisites<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-start-component-based-application\">Start component based application<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-manage-frame-component\">Manage frame component<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-manage-service-component\">Manage service component<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-manage-widget-component\">Manage widget component<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-launch-component-based-application\">Launch component based application<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-related-information\">Related information<\/a><\/li>\n<\/ul>\n","title":"Component Based Application","raw":null},{"class":"App\\Services\\Documentation\\Data\\RenderedMarkdown","s":"wrbl"}]},"memo":{"id":"ipLhTwYlxc95myKfsdd7","name":"documentation::article","path":"docs\/application\/dotnet\/guides\/applications\/uiapplication\/component-based-app","method":"GET","release":"a-a-a","children":[],"scripts":[],"assets":[],"lazyLoaded":false,"lazyIsolated":true,"errors":[],"locale":"en","islands":[]},"checksum":"576039e9af9afe2db00f00cacc8fce7122c74456fca3ab40af766258f074df95"}" wire:effects="[]" wire:id="ipLhTwYlxc95myKfsdd7" wire:name="documentation::article" x-init="$wire.__lazyLoad('eyJkYXRhIjp7ImZvck1vdW50IjpbeyJtYXJrZG93biI6W3siYm9keSI6IjxoMSBpZD1cImNvbnRlbnQtY29tcG9uZW50LWJhc2VkLWFwcGxpY2F0aW9uXCI+PGEgaHJlZj1cIiNjb250ZW50LWNvbXBvbmVudC1iYXNlZC1hcHBsaWNhdGlvblwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+Q29tcG9uZW50IEJhc2VkIEFwcGxpY2F0aW9uPFwvaDE+PGRpdiBkYXRhLWtub3dsZWRnZS1iYXNlLW1ldGFkYXRhPjxcL2Rpdj5cbjxkaXYgY2xhc3M9XCJtZC1hbGVydCBtZC1hbGVydC1ub3RlXCI+XG48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDpcL1wvd3d3LnczLm9yZ1wvMjAwMFwvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiPjxwYXRoIGQ9XCJNMCA4YTggOCAwIDEgMSAxNiAwQTggOCAwIDAgMSAwIDhabTgtNi41YTYuNSA2LjUgMCAxIDAgMCAxMyA2LjUgNi41IDAgMCAwIDAtMTNaTTYuNSA3Ljc1QS43NS43NSAwIDAgMSA3LjI1IDdoMWEuNzUuNzUgMCAwIDEgLjc1Ljc1djIuNzVoLjI1YS43NS43NSAwIDAgMSAwIDEuNWgtMmEuNzUuNzUgMCAwIDEgMC0xLjVoLjI1di0yaC0uMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTggNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJcLz48XC9zdmc+Tm90ZTxcL3NwYW4+XG48cD5FRkxDb21wb25lbnRCYXNlZEFwcGxpY2F0aW9uIGNsYXNzIGFuZCBFRkxXaW5kb3dJbmZvIGNsYXNzIGFyZSBkZXByZWNhdGVkIHNpbmNlIEFQSSBMZXZlbCAxMCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIEFQSSBMZXZlbCAxMi48XC9wPlxuPFwvZGl2PlxuPHA+VGhlIGNvbXBvbmVudCBiYXNlZCBhcHBsaWNhdGlvbiBpcyBvbmUgb2YgdGhlIFRpemVuIGFwcGxpY2F0aW9uIG1vZGVscy4gVGhpcyBhcHBsaWNhdGlvbiBtb2RlbCBlbmFibGVzIHlvdSB0byBjcmVhdGUgYW4gYXBwbGljYXRpb24gdGhhdCBwcm92aWRlcyBtdWx0aXBsZSBjb21wb25lbnRzIGluIG9uZSBwcm9jZXNzLlxuSW4gdGhlIGNvbXBvbmVudCBiYXNlZCBhcHBsaWNhdGlvbiBtb2RlbCwgdGhlcmUgYXJlIHRocmVlIHR5cGVzIG9mIGNvbXBvbmVudHMuIEVhY2ggY29tcG9uZW50IHR5cGUgaGFzIGl0cyBvd24gbGlmZSBjeWNsZS4gTmFtZWQgYmVsb3cgYXJlIHRoZSBjb21wb25lbnRzOjxcL3A+XG48dWw+XG48bGk+U2VydmljZSBjb21wb25lbnQ6IFRoZSBzZXJ2aWNlIGNvbXBvbmVudCBoYXMgYSBsaWZlIGN5Y2xlIGZvciBtYW5hZ2luZyBzZXJ2aWNlcyB3aXRob3V0IFVJLjxcL2xpPlxuPGxpPkZyYW1lIGNvbXBvbmVudDogVGhlIGZyYW1lIGNvbXBvbmVudCBoYXMgYSBsaWZlIGN5Y2xlIGZvciBtYW5hZ2luZyBVSSByZXNvdXJjZXMuPFwvbGk+XG48bGk+V2lkZ2V0IGNvbXBvbmVudDogVGhlIHdpZGdldCBjb21wb25lbnQgaGFzIGEgbGlmZSBjeWNsZSBmb3IgbWFuYWdpbmcgd2lkZ2V0IHJlc291cmNlcy48XC9saT5cbjxcL3VsPlxuPHA+QXMgeW91IGNyZWF0ZSBhIFRpemVuIHByb2plY3QsIHlvdSBjYW4gYWRkIGNvbXBvbmVudHMgdG8geW91ciBwcm9qZWN0LiBUaGUgcmVnaXN0ZXJlZCBjb21wb25lbnRzIGNyZWF0ZSBpbnN0YW5jZXMgd2hlbiB0aGUgY29tcG9uZW50IGJhc2VkIGFwcGxpY2F0aW9uIHJlY2VpdmVzIGEgbGF1bmNoIHJlcXVlc3QuPFwvcD5cbjxwPlRoZSBtYWluIGNvbXBvbmVudCBiYXNlZCBhcHBsaWNhdGlvbiBBUEkgZmVhdHVyZXMgaW5jbHVkZSB0aGUgZm9sbG93aW5nOjxcL3A+XG48dWw+XG48bGk+XG48cD5BcHBsaWNhdGlvbiBzdGF0ZXM8XC9wPlxuPHA+QSBUaXplbiBkb3RuZXQgY29tcG9uZW50IGJhc2VkIGFwcGxpY2F0aW9uIDxhIGhyZWY9XCIjYXBwbGljYXRpb25fc3RhdGVzXCI+dHJhbnNpdGlvbnMgdGhyb3VnaCB2YXJpb3VzIHN0YXRlczxcL2E+IGR1cmluZyBpdHMgbGlmZSBjeWNsZS48XC9wPlxuPFwvbGk+XG48bGk+XG48cD5BcHBsaWNhdGlvbiBldmVudCBjYWxsYmFja3M8XC9wPlxuPHA+VGhlIGNvbXBvbmVudCBiYXNlZCBhcHBsaWNhdGlvbiBjYW4gcmVjZWl2ZSBhcHBsaWNhdGlvbnMgc3RhdGUgY2hhbmdlIGV2ZW50cy4gWW91IGNhbiByZWdpc3RlciA8YSBocmVmPVwiI2FwcGxpY2F0aW9uX3JlZ2lzdGVyXCI+Y2FsbGJhY2tzIGZvciB0aGVzZSBldmVudHM8XC9hPiB0byByZWFjdCB0byB0aGVtLjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPkNvbXBvbmVudCdzIHN0YXRlcyBhbmQgZXZlbnQgY2FsbGJhY2tzPFwvcD5cbjx1bD5cbjxsaT5cbjxwPkZyYW1lIGNvbXBvbmVudCBzdGF0ZXM8XC9wPlxuPHA+QSBmcmFtZSBjb21wb25lbnQgPGEgaHJlZj1cIiNmcmFtZV9jb21wb25lbnRfc3RhdGVzXCI+dHJhbnNpdGlvbnMgdGhyb3VnaCB2YXJpb3VzIHN0YXRlczxcL2E+IGR1cmluZyBpdHMgbGlmZSBjeWNsZS48XC9wPlxuPFwvbGk+XG48bGk+XG48cD5GcmFtZSBjb21wb25lbnQgZXZlbnQgY2FsbGJhY2tzPFwvcD5cbjxwPlRoZSBjb21wb25lbnQgYmFzZWQgYXBwbGljYXRpb24gY2FuIHJlY2VpdmUgZnJhbWUgY29tcG9uZW50IHN0YXRlIGNoYW5nZSBldmVudHMuIFlvdSBjYW4gcmVnaXN0ZXIgPGEgaHJlZj1cIiNmcmFtZV9jb21wb25lbnRfY2FsbGJhY2tzXCI+Y2FsbGJhY2tzIGZvciB0aGVzZSBldmVudHM8XC9hPiB0byByZWFjdCB0byB0aGVtLjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPlNlcnZpY2UgY29tcG9uZW50IHN0YXRlczxcL3A+XG48cD5BIHNlcnZpY2UgY29tcG9uZW50IDxhIGhyZWY9XCIjc2VydmljZV9jb21wb25lbnRfc3RhdGVzXCI+dHJhbnNpdGlvbnMgdGhyb3VnaCB2YXJpb3VzIHN0YXRlczxcL2E+IGR1cmluZyBpdHMgbGlmZSBjeWNsZS48XC9wPlxuPFwvbGk+XG48bGk+XG48cD5TZXJ2aWNlIGNvbXBvbmVudCBldmVudCBjYWxsYmFja3M8XC9wPlxuPHA+VGhlIGNvbXBvbmVudCBiYXNlZCBhcHBsaWNhdGlvbiBjYW4gcmVjZWl2ZSBzZXJ2aWNlIGNvbXBvbmVudCBzdGF0ZSBjaGFuZ2UgZXZlbnRzLiBZb3UgY2FuIHJlZ2lzdGVyIDxhIGhyZWY9XCIjc2VydmljZV9jb21wb25lbnRfY2FsbGJhY2tzXCI+Y2FsbGJhY2tzIGZvciB0aGVzZSBldmVudHM8XC9hPiB0byByZWFjdCB0byB0aGVtLjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPldpZGdldCBjb21wb25lbnQgc3RhdGVzPFwvcD5cbjxwPkEgd2lkZ2V0IGNvbXBvbmVudCA8YSBocmVmPVwiI3dpZGdldF9jb21wb25lbnRfc3RhdGVzXCI+dHJhbnNpdGlvbnMgdGhyb3VnaCB2YXJpb3VzIHN0YXRlczxcL2E+IGR1cmluZyBpdHMgbGlmZSBjeWNsZS48XC9wPlxuPFwvbGk+XG48bGk+XG48cD5XaWRnZXQgY29tcG9uZW50IGV2ZW50IGNhbGxiYWNrczxcL3A+XG48cD5UaGUgY29tcG9uZW50IGJhc2VkIGFwcGxpY2F0aW9uIGNhbiByZWNlaXZlIHdpZGdldCBjb21wb25lbnQgc3RhdGUgY2hhbmdlIGV2ZW50cy4gWW91IGNhbiByZWdpc3RlciA8YSBocmVmPVwiI3dpZGdldF9jb21wb25lbnRfY2FsbGJhY2tzXCI+Y2FsbGJhY2tzIGZvciB0aGVzZSBldmVudHM8XC9hPiB0byByZWFjdCB0byB0aGVtLjxcL3A+XG48XC9saT5cbjxcL3VsPlxuPFwvbGk+XG48bGk+XG48cD5BcHBsaWNhdGlvbiBiZWhhdmlvciBhdHRyaWJ1dGVzPFwvcD5cbjxwPllvdSBjYW4gPGEgaHJlZj1cIiNhdHRyaWJ1dGVcIj5kZWNsYXJlIGNvbXBvbmVudHMgYW5kIHRoZWlyIHNwZWNpZmljIGF0dHJpYnV0ZXM8XC9hPiBpbiB0aGUgYXBwbGljYXRpb24gbWFuaWZlc3QgZmlsZS48XC9wPlxuPFwvbGk+XG48XC91bD5cbjxwPjxhIG5hbWU9XCJhcHBsaWNhdGlvbl9zdGF0ZXNcIj48XC9hPjxcL3A+XG48aDIgaWQ9XCJjb250ZW50LWFwcGxpY2F0aW9uLXN0YXRlc1wiPjxhIGhyZWY9XCIjY29udGVudC1hcHBsaWNhdGlvbi1zdGF0ZXNcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkFwcGxpY2F0aW9uIHN0YXRlczxcL2gyPlxuPHA+VGhlIGZvbGxvd2luZyBmaWd1cmUgYW5kIHRhYmxlIGRlc2NyaWJlIHRoZSBjb21wb25lbnQgYmFzZWQgYXBwbGljYXRpb24gc3RhdGVzOjxcL3A+XG48cD48aW1nIHNyYz1cIm1lZGlhXC9hcHBsaWNhdGlvbl9saWZlY3ljbGUuanBnXCIgYWx0PVwiUnVubmluZyBjb21wb25lbnQgYmFzZWQgYXBwbGljYXRpb25zXCIgXC8+PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPlN0YXRlPFwvdGg+XG48dGg+RGVzY3JpcHRpb248XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+PGNvZGU+UmVhZHk8XC9jb2RlPjxcL3RkPlxuPHRkPkFwcGxpY2F0aW9uIGlzIGxhdW5jaGVkLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+Q3JlYXRlPFwvY29kZT48XC90ZD5cbjx0ZD5BcHBsaWNhdGlvbiBzdGFydHMgdGhlIG1haW4gbG9vcC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlJ1bm5pbmc8XC9jb2RlPjxcL3RkPlxuPHRkPkFwcGxpY2F0aW9uIHJ1bnMgY29tcG9uZW50cy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlRlcm1pbmF0ZTxcL2NvZGU+PFwvdGQ+XG48dGQ+QXBwbGljYXRpb24gaXMgdGVybWluYXRlZC48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48ZGl2IGNsYXNzPVwibWQtYWxlcnQgbWQtYWxlcnQtbm90ZVwiPlxuPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6XC9cL3d3dy53My5vcmdcLzIwMDBcL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIj48cGF0aCBkPVwiTTAgOGE4IDggMCAxIDEgMTYgMEE4IDggMCAwIDEgMCA4Wm04LTYuNWE2LjUgNi41IDAgMSAwIDAgMTMgNi41IDYuNSAwIDAgMCAwLTEzWk02LjUgNy43NUEuNzUuNzUgMCAwIDEgNy4yNSA3aDFhLjc1Ljc1IDAgMCAxIC43NS43NXYyLjc1aC4yNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTJhLjc1Ljc1IDAgMCAxIDAtMS41aC4yNXYtMmgtLjI1YS43NS43NSAwIDAgMS0uNzUtLjc1Wk04IDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXC8+PFwvc3ZnPk5vdGU8XC9zcGFuPlxuPHA+VGhlIGNvbXBvbmVudCBiYXNlZCBhcHBsaWNhdGlvbiBpcyBjcmVhdGVkIGJ5IHJlcXVlc3RpbmcgdGhlIGNyZWF0aW9uIG9mIHRoZSBmaXJzdCBjb21wb25lbnQgYW5kIHRlcm1pbmF0ZXMgaWYgdGhlcmUgYXJlIG5vIHJ1bm5pbmcgaW5zdGFuY2VzLlxuSW4gdGhlIDxjb2RlPlJ1bm5pbmc8XC9jb2RlPiBzdGF0ZSwgdGhlIGNvbXBvbmVudCBiYXNlZCBhcHBsaWNhdGlvbiBjcmVhdGVzIGluc3RhbmNlcyBvZiByZWdpc3RlcmVkIGNvbXBvbmVudHMuIFRoZSByZWdpc3RlcmVkIGNvbXBvbmVudCBjYW4gaGF2ZSBtdWx0aXBsZSBpbnN0YW5jZXMuPFwvcD5cbjxcL2Rpdj5cbjxwPjxhIG5hbWU9XCJhcHBsaWNhdGlvbl9yZWdpc3RlclwiPjxcL2E+PFwvcD5cbjxoMiBpZD1cImNvbnRlbnQtYXBwbGljYXRpb24tZXZlbnQtY2FsbGJhY2tzXCI+PGEgaHJlZj1cIiNjb250ZW50LWFwcGxpY2F0aW9uLWV2ZW50LWNhbGxiYWNrc1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+QXBwbGljYXRpb24gZXZlbnQgY2FsbGJhY2tzPFwvaDI+XG48cD5Zb3UgY2FuIGNvbnRyb2wgdGhlIGNvbXBvbmVudCBiYXNlZCBhcHBsaWNhdGlvbiBleGVjdXRpb24gYnkgPGEgaHJlZj1cIiNhcHBsaWNhdGlvbl9tb25pdG9yaW5nXCI+bWFuYWdpbmcgdGhlIGFwcGxpY2F0aW9uIHN0YXRlIGV2ZW50czxcL2E+LjxcL3A+XG48cD5UaGUgZm9sbG93aW5nIHRhYmxlIGxpc3RzIHRoZSBjYWxsYmFja3MgZm9yIHRoZSBhcHBsaWNhdGlvbiBzdGF0ZSBldmVudHM6PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkNhbGxiYWNrPFwvdGg+XG48dGg+RGVzY3JpcHRpb248XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+PGNvZGU+T25Jbml0KCk8XC9jb2RlPjxcL3RkPlxuPHRkPlVzZWQgdG8gdGFrZSBuZWNlc3NhcnkgYWN0aW9ucyBiZWZvcmUgdGhlIG1haW4gZXZlbnQgbG9vcCBzdGFydHMuIFBsYWNlIHRoZSBpbml0aWFsaXphdGlvbiBjb2RlIChzdWNoIGFzIHNldHRpbmcgdXAgdGhlIGRidXMgY29ubmVjdGlvbikgYW5kIGFkZCBjb21wb25lbnRzIGhlcmUuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5PblJ1bigpPFwvY29kZT48XC90ZD5cbjx0ZD5Vc2VkIHRvIHRha2UgbmVjZXNzYXJ5IGFjdGlvbnMgYWZ0ZXIgdGhlIG1haW4gZXZlbnQgbG9vcCBzdGFydHMuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5PbkZpbmlzaGVkKCk8XC9jb2RlPjxcL3RkPlxuPHRkPlVzZWQgdG8gdGFrZSBuZWNlc3NhcnkgYWN0aW9ucyBhZnRlciB0aGUgbWFpbiBldmVudCBsb29wIGZpbmlzaGVzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+T25FeGl0KCk8XC9jb2RlPjxcL3RkPlxuPHRkPlVzZWQgdG8gdGFrZSBuZWNlc3NhcnkgYWN0aW9ucyB3aGVuIHRoZSBhcHBsaWNhdGlvbiB0ZXJtaW5hdGVzLiBUaGlzIGNhbGxiYWNrIHJlbGVhc2VzIGFsbCByZXNvdXJjZXMsIGVzcGVjaWFsbHkgdGhlIGFsbG9jYXRlZCBhbmQgc2hhcmVkIHJlc291cmNlcywgc28gdGhhdCB0aGUgb3RoZXIgcnVubmluZyBhcHBsaWNhdGlvbnMgY2FuIGZ1bGx5IHVzZSB0aGUgc2hhcmVkIHJlc291cmNlcy48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aDIgaWQ9XCJjb250ZW50LWNvbXBvbmVudHMtc3RhdGVzLWFuZC1ldmVudC1jYWxsYmFja3NcIj48YSBocmVmPVwiI2NvbnRlbnQtY29tcG9uZW50cy1zdGF0ZXMtYW5kLWV2ZW50LWNhbGxiYWNrc1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+Q29tcG9uZW50J3Mgc3RhdGVzIGFuZCBldmVudCBjYWxsYmFja3M8XC9oMj5cbjxwPkNvbXBvbmVudCBiYXNlZCBBUEkgcHJvdmlkZXMgc3RhdGUgYW5kIGV2ZW50IGNhbGxiYWNrcyBmb3IgZWFjaCBjb21wb25lbnQuPFwvcD5cbjxwPjxhIG5hbWU9XCJmcmFtZV9jb21wb25lbnRfc3RhdGVzXCI+PFwvYT48XC9wPlxuPGgzIGlkPVwiY29udGVudC1mcmFtZS1jb21wb25lbnQtc3RhdGVzXCI+PGEgaHJlZj1cIiNjb250ZW50LWZyYW1lLWNvbXBvbmVudC1zdGF0ZXNcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkZyYW1lIGNvbXBvbmVudCBzdGF0ZXM8XC9oMz5cbjxwPlRoZSBmb2xsb3dpbmcgZmlndXJlIGFuZCB0YWJsZSBkZXNjcmliZSB0aGUgZnJhbWUgY29tcG9uZW50IHN0YXRlczo8XC9wPlxuPHA+PGltZyBzcmM9XCJtZWRpYVwvZnJhbWVfbGlmZWN5Y2xlLmpwZ1wiIGFsdD1cIlJ1bm5pbmcgZnJhbWUgY29tcG9uZW50XCIgXC8+PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPlN0YXRlPFwvdGg+XG48dGg+RGVzY3JpcHRpb248XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+PGNvZGU+Q3JlYXRlPFwvY29kZT48XC90ZD5cbjx0ZD5UaGUgZnJhbWUgY29tcG9uZW50IGluc3RhbmNlIGlzIGNyZWF0ZWQuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5TdGFydDxcL2NvZGU+PFwvdGQ+XG48dGQ+VGhlIGZyYW1lIGNvbXBvbmVudCBpbnN0YW5jZSBpcyBzdGFydGVkIGFuZCBpcyByZWFkeSB0byByZWNlaXZlIHZpc2liaWxpdHkgZXZlbnRzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+UmVzdW1lPFwvY29kZT48XC90ZD5cbjx0ZD5UaGUgZnJhbWUgY29tcG9uZW50IGluc3RhbmNlIGlzIHZpc2libGUuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5QYXVzZTxcL2NvZGU+PFwvdGQ+XG48dGQ+VGhlIGZyYW1lIGNvbXBvbmVudCBpbnN0YW5jZSBpcyBpbnZpc2libGUuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5TdG9wPFwvY29kZT48XC90ZD5cbjx0ZD5UaGUgZnJhbWUgY29tcG9uZW50IGluc3RhbmNlIGlzIHN0b3BwZWQuIFRoZXJlZm9yZSwgaXQgc3RvcHMgcmVjZWl2aW5nIHZpc2liaWxpdHkgZXZlbnRzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+RGVzdHJveTxcL2NvZGU+PFwvdGQ+XG48dGQ+VGhlIGZyYW1lIGNvbXBvbmVudCBpbnN0YW5jZSBpcyBkZXN0cm95ZWQuPFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+PGEgbmFtZT1cImZyYW1lX2NvbXBvbmVudF9jYWxsYmFja3NcIj48XC9hPjxcL3A+XG48aDMgaWQ9XCJjb250ZW50LWZyYW1lLWNvbXBvbmVudC1ldmVudC1jYWxsYmFja3NcIj48YSBocmVmPVwiI2NvbnRlbnQtZnJhbWUtY29tcG9uZW50LWV2ZW50LWNhbGxiYWNrc1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RnJhbWUgY29tcG9uZW50IGV2ZW50IGNhbGxiYWNrczxcL2gzPlxuPHA+WW91IGNhbiBjb250cm9sIHRoZSBmcmFtZSBjb21wb25lbnQgbGlmZSBjeWNsZSBieSA8YSBocmVmPVwiI2ZyYW1lX2NvbXBvbmVudF9tb25pdG9yaW5nXCI+bWFuYWdpbmcgdGhlIGZyYW1lIGNvbXBvbmVudCBzdGF0ZSBldmVudHM8XC9hPi48XC9wPlxuPHA+VGhlIGZvbGxvd2luZyB0YWJsZSBsaXN0cyB0aGUgY2FsbGJhY2tzIGZvciB0aGUgZnJhbWUgY29tcG9uZW50IHN0YXRlIGV2ZW50czo8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+Q2FsbGJhY2s8XC90aD5cbjx0aD5EZXNjcmlwdGlvbjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD48Y29kZT5PbkNyZWF0ZSgpPFwvY29kZT48XC90ZD5cbjx0ZD5Vc2VkIHRvIHRha2UgbmVjZXNzYXJ5IGFjdGlvbnMgYmVmb3JlIHRoZSBsaWZlIGN5Y2xlIG9mIGEgZnJhbWUgY29tcG9uZW50IGluc3RhbmNlIHN0YXJ0cy4gUGxhY2UgdGhlIGluaXRpYWxpemF0aW9uIGNvZGUgaGVyZS4gWW91IG11c3QgY3JlYXRlIGEgd2luZG93IGF0IHRoaXMgcG9pbnQuIEl0IGlzIGNhbGxlZCBvbmNlIGluIHRoZSBpbnN0YW5jZSdzIGxpZmUgY3ljbGUuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5PblJlc3RvcmVDb250ZW50cygpPFwvY29kZT48XC90ZD5cbjx0ZD5Vc2VkIHRvIHJlc3RvcmUgdGhlIGN1cnJlbnQgc3RhdGUgb2YgYW4gaW5zdGFuY2UuIFRoZSBkYXRhIHN0b3JlZCBpbiAgPGNvZGU+T25TYXZlQ29udGVudCgpPFwvY29kZT4gaXMgcGFzc2VkIGJ5IHBhcmFtZXRlci48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPk9uU3RhcnQoKTxcL2NvZGU+PFwvdGQ+XG48dGQ+VXNlZCB0byBzdGFydCBhbiBpbnN0YW5jZS4gUmVxdWVzdGVkIDxjb2RlPkFwcENvbnRyb2w8XC9jb2RlPiBpcyBwYXNzZWQgYnkgcGFyYW1ldGVyLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+T25SZXN1bWUoKTxcL2NvZGU+PFwvdGQ+XG48dGQ+VXNlZCB0byB0YWtlIG5lY2Vzc2FyeSBhY3Rpb25zIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGJlY29tZXMgdmlzaWJsZS4gSWYgeW91IGhhdmUgcmVsZWFzZWQgYW55IHJlc291cmNlcyBpbiB0aGUgPGNvZGU+T25QYXVzZSgpPFwvY29kZT4gY2FsbGJhY2ssIHJlLWFsbG9jYXRlIHRob3NlIHJlc291cmNlcyBiZWZvcmUgdGhlIGFwcGxpY2F0aW9uIHJlc3VtZXMuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5PblBhdXNlKCk8XC9jb2RlPjxcL3RkPlxuPHRkPlVzZWQgdG8gdGFrZSBuZWNlc3NhcnkgYWN0aW9ucyB3aGVuIHRoZSBhcHBsaWNhdGlvbiBiZWNvbWVzIGludmlzaWJsZS4gRm9yIGV4YW1wbGUsIHJlbGVhc2UgdGhlIG1lbW9yeSByZXNvdXJjZXMgc28gdGhhdCBvdGhlciBhcHBsaWNhdGlvbnMgY2FuIHVzZSB0aGVtLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+T25TdG9wKCk8XC9jb2RlPjxcL3RkPlxuPHRkPlVzZWQgdG8gdGFrZSBuZWNlc3NhcnkgYWN0aW9ucyB3aGVuIHRoZSBmcmFtZSBjb21wb25lbnQgaW5zdGFuY2Ugd2luZG93IGlzIGxvd2VyZWQuIFRoZSB3aW5kb3cgaXMgbG93ZXJlZCB3aGVuIHRoZSBmcmFtZSBjb21wb25lbnQgd2luZG93IGlzIG5vdCBhY3RpdmF0ZWQgZm9yIGEgbG9uZyB0aW1lLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+T25TYXZlQ29udGVudCgpPFwvY29kZT48XC90ZD5cbjx0ZD5Vc2VkIHRvIHRha2UgbmVjZXNzYXJ5IGFjdGlvbnMgd2hlbiB0aGVyZSBpcyBhIG5lZWQgdG8gc3RvcmUgb3IgcmVzdG9yZSBkYXRhIGZvciBsYXVuY2hpbmcgdGhlIG5leHQgaW5zdGFuY2UuIFRoaXMgY2FsbGJhY2sgaXMgY2FsbGVkIHJpZ2h0IGJlZm9yZSA8Y29kZT5PbkRlc3Ryb3koKTxcL2NvZGU+LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+T25EZXN0cm95KCk8XC9jb2RlPjxcL3RkPlxuPHRkPlVzZWQgdG8gdGFrZSBuZWNlc3NhcnkgYWN0aW9ucyB3aGVuIHRoZSBmcmFtZSBjb21wb25lbnQgaW5zdGFuY2UgaXMgdGVybWluYXRpbmcuIFRoaXMgY2FsbGJhY2sgcmVsZWFzZXMgYWxsIHJlc291cmNlcywgZXNwZWNpYWxseSB0aGUgYWxsb2NhdGVkIGFuZCBzaGFyZWQgcmVzb3VyY2VzLjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlRoZSBmcmFtZSBjb21wb25lbnQgaW5zdGFuY2UgY2FuIGFsc28gcmVjZWl2ZSBzb21lIGJhc2ljIHN5c3RlbSBldmVudHMuIFRoZSBmb2xsb3dpbmcgdGFibGUgc2hvd3MgYXZhaWxhYmxlIHN5c3RlbSBldmVudHMgY2FsbGJhY2tzOjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5DYWxsYmFjazxcL3RoPlxuPHRoPkRlc2NyaXB0aW9uPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPjxjb2RlPk9uTG93TWVtb3J5Q2FsbGJhY2s8XC9jb2RlPjxcL3RkPlxuPHRkPkV2ZW50IHR5cGUgZm9yIHRoZSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciBzYXZpbmcgZGF0YSBmcm9tIHRoZSBtYWluIG1lbW9yeSB0byBhIHBlcnNpc3RlbnQgbWVtb3J5IG9yIHN0b3JhZ2UgdG8gYXZvaWQgZGF0YSBsb3NzLiBEYXRhIGxvc3MgY2FuIG9jY3VyIGlmIHRoZSBUaXplbiBwbGF0Zm9ybSBsb3cgbWVtb3J5IGtpbGxlciBraWxscyB5b3VyIGFwcGxpY2F0aW9uIHRvIGZyZWUgbW9yZSBtZW1vcnkuIFRoZSBjYWxsYmFjayBmdW5jdGlvbiBtdXN0IHJlbGVhc2UgYW55IGNhY2hlZCBkYXRhIGluIHRoZSBtYWluIG1lbW9yeSB0byBzZWN1cmUgbW9yZSBmcmVlIG1lbW9yeS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPk9uTG93QmF0dGVyeUNhbGxiYWNrPFwvY29kZT48XC90ZD5cbjx0ZD5FdmVudCB0eXBlIGZvciB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyByZXNwb25zaWJsZSBmb3Igc2F2aW5nIGRhdGEgZnJvbSB0aGUgbWFpbiBtZW1vcnkgdG8gYSBwZXJzaXN0ZW50IG1lbW9yeSBvciBzdG9yYWdlIHRvIGF2b2lkIGRhdGEgbG9zcyBpbiBjYXNlIG9mIGNvbXBsZXRlIHBvd2VyIGZhaWx1cmUuIFRoZSBjYWxsYmFjayBmdW5jdGlvbiBtdXN0IGFsc28gc3RvcCBoZWF2eSBDUFUgY29uc3VtcHRpb24gb3IgcG93ZXIgY29uc3VtcHRpb24gYWN0aXZpdGllcyB0byBzYXZlIHRoZSByZW1haW5pbmcgcG93ZXIuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5PbkRldmljZU9yaWVudGF0aW9uQ2hhbmdlZENhbGxiYWNrPFwvY29kZT48XC90ZD5cbjx0ZD5FdmVudCB0eXBlIGZvciB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyByZXNwb25zaWJsZSBmb3IgY2hhbmdpbmcgdGhlIGRpc3BsYXkgb3JpZW50YXRpb24gdG8gbWF0Y2ggdGhlIGRldmljZSBvcmllbnRhdGlvbi48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPk9uTGFuZ3VhZ2VDaGFuZ2VkQ2FsbGJhY2s8XC9jb2RlPjxcL3RkPlxuPHRkPkV2ZW50IHR5cGUgZm9yIHRoZSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciByZWZyZXNoaW5nIHRoZSBkaXNwbGF5IGludG8gYSBuZXcgbGFuZ3VhZ2UuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5PblJlZ2lvbkZvcm1hdENoYW5nZWRDYWxsYmFjazxcL2NvZGU+PFwvdGQ+XG48dGQ+RXZlbnQgdHlwZSBmb3IgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgcmVzcG9uc2libGUgZm9yIHJlZnJlc2hpbmcgdGhlIGRpc3BsYXkgaW50byBhIG5ldyB0aW1lIHpvbmUuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5PblN1c3BlbmRlZFN0YXRlQ2FsbGJhY2s8XC9jb2RlPjxcL3RkPlxuPHRkPkV2ZW50IHR5cGUgZm9yIHRoZSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciB0YWtpbmcgbmVjZXNzYXJ5IGFjdGlvbnMgYmVmb3JlIGVudGVyaW5nIHRoZSBzdXNwZW5kZWQgc3RhdGUsIG9yIGFmdGVyIGV4aXRpbmcgZnJvbSB0aGUgc3RhdGUuPFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+PGEgbmFtZT1cInNlcnZpY2VfY29tcG9uZW50X3N0YXRlc1wiPjxcL2E+PFwvcD5cbjxoMyBpZD1cImNvbnRlbnQtc2VydmljZS1jb21wb25lbnQtc3RhdGVzXCI+PGEgaHJlZj1cIiNjb250ZW50LXNlcnZpY2UtY29tcG9uZW50LXN0YXRlc1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+U2VydmljZSBjb21wb25lbnQgc3RhdGVzPFwvaDM+XG48cD5UaGUgZm9sbG93aW5nIGZpZ3VyZSBhbmQgdGFibGUgZGVzY3JpYmUgdGhlIHNlcnZpY2UgY29tcG9uZW50IHN0YXRlczo8XC9wPlxuPHA+PGltZyBzcmM9XCJtZWRpYVwvc2VydmljZV9saWZlY3ljbGUuanBnXCIgYWx0PVwiUnVubmluZyBzZXJ2aWNlIGNvbXBvbmVudFwiIFwvPjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5TdGF0ZTxcL3RoPlxuPHRoPkRlc2NyaXB0aW9uPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPjxjb2RlPkNyZWF0ZTxcL2NvZGU+PFwvdGQ+XG48dGQ+VGhlIHNlcnZpY2UgY29tcG9uZW50IGluc3RhbmNlIGlzIGNyZWF0ZWQuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5Qcm9jZXNzIENvbW1hbmQ8XC9jb2RlPjxcL3RkPlxuPHRkPlRoZSBzZXJ2aWNlIGNvbXBvbmVudCBpbnN0YW5jZSBoYW5kbGVzIHRoZSByZXF1ZXN0ZWQgY29tbWFuZC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPkRlc3Ryb3k8XC9jb2RlPjxcL3RkPlxuPHRkPlRoZSBzZXJ2aWNlIGNvbXBvbmVudCBpbnN0YW5jZSBpcyBkZXN0cm95ZWQuPFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+PGEgbmFtZT1cInNlcnZpY2VfY29tcG9uZW50X2NhbGxiYWNrc1wiPjxcL2E+PFwvcD5cbjxoMyBpZD1cImNvbnRlbnQtc2VydmljZS1jb21wb25lbnQtZXZlbnQtY2FsbGJhY2tzXCI+PGEgaHJlZj1cIiNjb250ZW50LXNlcnZpY2UtY29tcG9uZW50LWV2ZW50LWNhbGxiYWNrc1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+U2VydmljZSBjb21wb25lbnQgZXZlbnQgY2FsbGJhY2tzPFwvaDM+XG48cD5Zb3UgY2FuIGNvbnRyb2wgdGhlIHNlcnZpY2UgY29tcG9uZW50IGxpZmUgY3ljbGUgYnkgPGEgaHJlZj1cIiNzZXJ2aWNlX2NvbXBvbmVudF9tb25pdG9yaW5nXCI+bWFuYWdpbmcgdGhlIHNlcnZpY2UgY29tcG9uZW50IHN0YXRlIGV2ZW50czxcL2E+LjxcL3A+XG48cD5UaGUgZm9sbG93aW5nIHRhYmxlIGxpc3RzIHRoZSBjYWxsYmFja3MgZm9yIHRoZSBzZXJ2aWNlIGNvbXBvbmVudCBzdGF0ZSBldmVudHM6PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkNhbGxiYWNrPFwvdGg+XG48dGg+RGVzY3JpcHRpb248XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+PGNvZGU+T25DcmVhdGUoKTxcL2NvZGU+PFwvdGQ+XG48dGQ+VXNlZCB0byB0YWtlIG5lY2Vzc2FyeSBhY3Rpb25zIGJlZm9yZSB0aGUgbGlmZSBjeWNsZSBvZiBhIHNlcnZpY2UgY29tcG9uZW50IGluc3RhbmNlIHN0YXJ0cy4gUGxhY2UgdGhlIGluaXRpYWxpemF0aW9uIGNvZGUgaGVyZS4gSXQgaXMgY2FsbGVkIG9uY2UgaW4gdGhlIGluc3RhbmNlJ3MgbGlmZSBjeWNsZS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPk9uUmVzdG9yZUNvbnRlbnRzKCk8XC9jb2RlPjxcL3RkPlxuPHRkPlVzZWQgdG8gcmVzdG9yZSB0aGUgY3VycmVudCBzdGF0ZSBvZiBhbiBpbnN0YW5jZS4gVGhlIGRhdGEgc3RvcmVkIGluICA8Y29kZT5PblNhdmVDb250ZW50PFwvY29kZT4gaXMgcGFzc2VkIGJ5IHBhcmFtZXRlci48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPk9uU3RhcnRDb21tYW5kKCk8XC9jb2RlPjxcL3RkPlxuPHRkPlVzZWQgdG8gc3RhcnQgYW4gaW5zdGFuY2UuIFJlcXVlc3RlZCA8Y29kZT5BcHBDb250cm9sPFwvY29kZT4gaXMgcGFzc2VkIGJ5IHBhcmFtZXRlci48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPk9uU2F2ZUNvbnRlbnQoKTxcL2NvZGU+PFwvdGQ+XG48dGQ+VXNlZCB0byB0YWtlIG5lY2Vzc2FyeSBhY3Rpb25zIHdoZW4gdGhlcmUgaXMgYSBuZWVkIHRvIHN0b3JlIG9yIHJlc3RvcmUgZGF0YSBmb3IgbGF1bmNoaW5nIHRoZSBuZXh0IGluc3RhbmNlLiBUaGlzIGNhbGxiYWNrIGlzIGNhbGxlZCByaWdodCBiZWZvcmUgPGNvZGU+T25EZXN0cm95PFwvY29kZT4uPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5PbkRlc3Ryb3koKTxcL2NvZGU+PFwvdGQ+XG48dGQ+VXNlZCB0byB0YWtlIG5lY2Vzc2FyeSBhY3Rpb25zIHdoZW4gdGhlIGZyYW1lIGNvbXBvbmVudCBpbnN0YW5jZSBpcyB0ZXJtaW5hdGluZy4gVGhpcyBjYWxsYmFjayByZWxlYXNlcyBhbGwgcmVzb3VyY2VzLCBlc3BlY2lhbGx5IHRoZSBhbGxvY2F0ZWQgYW5kIHNoYXJlZCByZXNvdXJjZXMuPFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VGhlIHNlcnZpY2UgY29tcG9uZW50IGluc3RhbmNlIGNhbiBhbHNvIHJlY2VpdmUgc29tZSBiYXNpYyBzeXN0ZW0gZXZlbnRzLiBUaGUgZm9sbG93aW5nIHRhYmxlIHNob3dzIGF2YWlsYWJsZSBzeXN0ZW0gZXZlbnRzIGNhbGxiYWNrczo8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+Q2FsbGJhY2s8XC90aD5cbjx0aD5EZXNjcmlwdGlvbjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD48Y29kZT5Pbkxvd01lbW9yeUNhbGxiYWNrPFwvY29kZT48XC90ZD5cbjx0ZD5FdmVudCB0eXBlIGZvciB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyByZXNwb25zaWJsZSBmb3Igc2F2aW5nIGRhdGEgZnJvbSB0aGUgbWFpbiBtZW1vcnkgdG8gYSBwZXJzaXN0ZW50IG1lbW9yeSBvciBzdG9yYWdlIHRvIGF2b2lkIGRhdGEgbG9zcy4gRGF0YSBsb3NzIGNhbiBvY2N1ciBpZiB0aGUgVGl6ZW4gcGxhdGZvcm0gbG93IG1lbW9yeSBraWxsZXIga2lsbHMgeW91ciBhcHBsaWNhdGlvbiB0byBmcmVlIG1vcmUgbWVtb3J5LiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gbXVzdCByZWxlYXNlIGFueSBjYWNoZWQgZGF0YSBpbiB0aGUgbWFpbiBtZW1vcnkgdG8gc2VjdXJlIG1vcmUgZnJlZSBtZW1vcnkuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5Pbkxvd0JhdHRlcnlDYWxsYmFjazxcL2NvZGU+PFwvdGQ+XG48dGQ+RXZlbnQgdHlwZSBmb3IgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgcmVzcG9uc2libGUgZm9yIHNhdmluZyBkYXRhIGZyb20gdGhlIG1haW4gbWVtb3J5IHRvIGEgcGVyc2lzdGVudCBtZW1vcnkgb3Igc3RvcmFnZSB0byBhdm9pZCBkYXRhIGxvc3MgaW4gY2FzZSBvZiBjb21wbGV0ZSBwb3dlciBmYWlsdXJlLiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gbXVzdCBhbHNvIHN0b3AgaGVhdnkgQ1BVIGNvbnN1bXB0aW9uIG9yIHBvd2VyIGNvbnN1bXB0aW9uIGFjdGl2aXRpZXMgdG8gc2F2ZSB0aGUgcmVtYWluaW5nIHBvd2VyLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+T25EZXZpY2VPcmllbnRhdGlvbkNoYW5nZWRDYWxsYmFjazxcL2NvZGU+PFwvdGQ+XG48dGQ+RXZlbnQgdHlwZSBmb3IgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgcmVzcG9uc2libGUgZm9yIGNoYW5naW5nIHRoZSBkaXNwbGF5IG9yaWVudGF0aW9uIHRvIG1hdGNoIHRoZSBkZXZpY2Ugb3JpZW50YXRpb24uPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5Pbkxhbmd1YWdlQ2hhbmdlZENhbGxiYWNrPFwvY29kZT48XC90ZD5cbjx0ZD5FdmVudCB0eXBlIGZvciB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyByZXNwb25zaWJsZSBmb3IgcmVmcmVzaGluZyB0aGUgZGlzcGxheSBpbnRvIGEgbmV3IGxhbmd1YWdlLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+T25SZWdpb25Gb3JtYXRDaGFuZ2VkQ2FsbGJhY2s8XC9jb2RlPjxcL3RkPlxuPHRkPkV2ZW50IHR5cGUgZm9yIHRoZSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciByZWZyZXNoaW5nIHRoZSBkaXNwbGF5IGludG8gYSBuZXcgdGltZSB6b25lLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+T25TdXNwZW5kZWRTdGF0ZUNhbGxiYWNrPFwvY29kZT48XC90ZD5cbjx0ZD5FdmVudCB0eXBlIGZvciB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyByZXNwb25zaWJsZSBmb3IgdGFraW5nIG5lY2Vzc2FyeSBhY3Rpb25zIGJlZm9yZSBlbnRlcmluZyB0aGUgc3VzcGVuZGVkIHN0YXRlIG9yIGFmdGVyIGV4aXRpbmcgZnJvbSB0aGUgc3RhdGUuPFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+PGEgbmFtZT1cIndpZGdldF9jb21wb25lbnRfc3RhdGVzXCI+PFwvYT48XC9wPlxuPGgzIGlkPVwiY29udGVudC13aWRnZXQtY29tcG9uZW50LXN0YXRlc1wiPjxhIGhyZWY9XCIjY29udGVudC13aWRnZXQtY29tcG9uZW50LXN0YXRlc1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+V2lkZ2V0IGNvbXBvbmVudCBzdGF0ZXM8XC9oMz5cbjxkaXYgY2xhc3M9XCJtZC1hbGVydCBtZC1hbGVydC1ub3RlXCI+XG48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDpcL1wvd3d3LnczLm9yZ1wvMjAwMFwvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiPjxwYXRoIGQ9XCJNMCA4YTggOCAwIDEgMSAxNiAwQTggOCAwIDAgMSAwIDhabTgtNi41YTYuNSA2LjUgMCAxIDAgMCAxMyA2LjUgNi41IDAgMCAwIDAtMTNaTTYuNSA3Ljc1QS43NS43NSAwIDAgMSA3LjI1IDdoMWEuNzUuNzUgMCAwIDEgLjc1Ljc1djIuNzVoLjI1YS43NS43NSAwIDAgMSAwIDEuNWgtMmEuNzUuNzUgMCAwIDEgMC0xLjVoLjI1di0yaC0uMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTggNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJcLz48XC9zdmc+Tm90ZTxcL3NwYW4+XG48cD5UaGUgd2lkZ2V0IGNvbXBvbmVudCBBUElzIGFyZSBzdXBwb3J0ZWQgc2luY2UgVGl6ZW4gNi41PFwvcD5cbjxcL2Rpdj5cbjxwPlRoZSBmb2xsb3dpbmcgZmlndXJlIGFuZCB0YWJsZSBkZXNjcmliZSB0aGUgd2lkZ2V0IGNvbXBvbmVudCBzdGF0ZXM6PFwvcD5cbjxwPjxpbWcgc3JjPVwibWVkaWFcL3dpZGdldF9saWZlY3ljbGUuanBnXCIgYWx0PVwiUnVubmluZyB3aWRnZXQgY29tcG9uZW50XCIgXC8+PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPlN0YXRlPFwvdGg+XG48dGg+RGVzY3JpcHRpb248XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+PGNvZGU+Q3JlYXRlPFwvY29kZT48XC90ZD5cbjx0ZD5UaGUgd2lkZ2V0IGNvbXBvbmVudCBpbnN0YW5jZSBpcyBjcmVhdGVkLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+U3RhcnQ8XC9jb2RlPjxcL3RkPlxuPHRkPlRoZSB3aWRnZXQgY29tcG9uZW50IGluc3RhbmNlIGlzIHN0YXJ0ZWQgYW5kIGlzIHJlYWR5IHRvIHJlY2VpdmUgdmlzaWJpbGl0eSBldmVudHMuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5SZXN1bWU8XC9jb2RlPjxcL3RkPlxuPHRkPlRoZSB3aWRnZXQgY29tcG9uZW50IGluc3RhbmNlIGlzIHZpc2libGUuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5QYXVzZTxcL2NvZGU+PFwvdGQ+XG48dGQ+VGhlIHdpZGdldCBjb21wb25lbnQgaW5zdGFuY2UgaXMgaW52aXNpYmxlLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+U3RvcDxcL2NvZGU+PFwvdGQ+XG48dGQ+VGhlIHdpZGdldCBjb21wb25lbnQgaW5zdGFuY2UgaXMgc3RvcHBlZC4gVGhlcmVmb3JlLCBpdCBzdG9wcyByZWNlaXZpbmcgdmlzaWJpbGl0eSBldmVudHMuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5EZXN0cm95PFwvY29kZT48XC90ZD5cbjx0ZD5UaGUgd2lkZ2V0IGNvbXBvbmVudCBpbnN0YW5jZSBpcyBkZXN0cm95ZWQuPFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+PGEgbmFtZT1cIndpZGdldF9jb21wb25lbnRfY2FsbGJhY2tzXCI+PFwvYT48XC9wPlxuPGgzIGlkPVwiY29udGVudC13aWRnZXQtY29tcG9uZW50LWV2ZW50LWNhbGxiYWNrc1wiPjxhIGhyZWY9XCIjY29udGVudC13aWRnZXQtY29tcG9uZW50LWV2ZW50LWNhbGxiYWNrc1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+V2lkZ2V0IGNvbXBvbmVudCBldmVudCBjYWxsYmFja3M8XC9oMz5cbjxkaXYgY2xhc3M9XCJtZC1hbGVydCBtZC1hbGVydC1ub3RlXCI+XG48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDpcL1wvd3d3LnczLm9yZ1wvMjAwMFwvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiPjxwYXRoIGQ9XCJNMCA4YTggOCAwIDEgMSAxNiAwQTggOCAwIDAgMSAwIDhabTgtNi41YTYuNSA2LjUgMCAxIDAgMCAxMyA2LjUgNi41IDAgMCAwIDAtMTNaTTYuNSA3Ljc1QS43NS43NSAwIDAgMSA3LjI1IDdoMWEuNzUuNzUgMCAwIDEgLjc1Ljc1djIuNzVoLjI1YS43NS43NSAwIDAgMSAwIDEuNWgtMmEuNzUuNzUgMCAwIDEgMC0xLjVoLjI1di0yaC0uMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTggNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJcLz48XC9zdmc+Tm90ZTxcL3NwYW4+XG48cD5UaGUgd2lkZ2V0IGNvbXBvbmVudCBBUElzIGFyZSBzdXBwb3J0ZWQgc2luY2UgVGl6ZW4gNi41PFwvcD5cbjxcL2Rpdj5cbjxwPllvdSBjYW4gY29udHJvbCB0aGUgd2lkZ2V0IGNvbXBvbmVudCBsaWZlIGN5Y2xlIGJ5IDxhIGhyZWY9XCIjd2lkZ2V0X2NvbXBvbmVudF9tb25pdG9yaW5nXCI+bWFuYWdpbmcgdGhlIHdpZGdldCBjb21wb25lbnQgc3RhdGUgZXZlbnRzPFwvYT4uPFwvcD5cbjxwPlRoZSBmb2xsb3dpbmcgdGFibGUgbGlzdHMgdGhlIGNhbGxiYWNrcyBmb3IgdGhlIHdpZGdldCBjb21wb25lbnQgc3RhdGUgZXZlbnRzOjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5DYWxsYmFjazxcL3RoPlxuPHRoPkRlc2NyaXB0aW9uPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPjxjb2RlPk9uQ3JlYXRlKCk8XC9jb2RlPjxcL3RkPlxuPHRkPlVzZWQgdG8gdGFrZSBuZWNlc3NhcnkgYWN0aW9ucyBiZWZvcmUgdGhlIGxpZmUgY3ljbGUgb2YgYSB3aWRnZXQgY29tcG9uZW50IGluc3RhbmNlIHN0YXJ0cy4gUGxhY2UgdGhlIGluaXRpYWxpemF0aW9uIGNvZGUgaGVyZS4gWW91IG11c3QgY3JlYXRlIGEgd2luZG93IGF0IHRoaXMgcG9pbnQuIEl0IGlzIGNhbGxlZCBvbmNlIGluIHRoZSBpbnN0YW5jZSdzIGxpZmUgY3ljbGUuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5PblJlc3RvcmVDb250ZW50cygpPFwvY29kZT48XC90ZD5cbjx0ZD5Vc2VkIHRvIHJlc3RvcmUgdGhlIGN1cnJlbnQgc3RhdGUgb2YgYW4gaW5zdGFuY2UuIFRoZSBkYXRhIHN0b3JlZCBpbiAgPGNvZGU+T25TYXZlQ29udGVudDxcL2NvZGU+IGlzIHBhc3NlZCBieSBhIHBhcmFtZXRlci48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPk9uU3RhcnQoKTxcL2NvZGU+PFwvdGQ+XG48dGQ+VXNlZCB0byBzdGFydCBhbiBpbnN0YW5jZS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPk9uUmVzdW1lKCk8XC9jb2RlPjxcL3RkPlxuPHRkPlVzZWQgdG8gdGFrZSBuZWNlc3NhcnkgYWN0aW9ucyB3aGVuIHRoZSBhcHBsaWNhdGlvbiBiZWNvbWVzIHZpc2libGUuIElmIHlvdSBoYXZlIHJlbGVhc2VkIGFueSByZXNvdXJjZXMgaW4gdGhlIDxjb2RlPk9uUGF1c2UoKTxcL2NvZGU+IGNhbGxiYWNrLCByZS1hbGxvY2F0ZSB0aG9zZSByZXNvdXJjZXMgYmVmb3JlIHRoZSBhcHBsaWNhdGlvbiByZXN1bWVzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+T25QYXVzZSgpPFwvY29kZT48XC90ZD5cbjx0ZD5Vc2VkIHRvIHRha2UgbmVjZXNzYXJ5IGFjdGlvbnMgd2hlbiB0aGUgYXBwbGljYXRpb24gYmVjb21lcyBpbnZpc2libGUuIEZvciBleGFtcGxlLCByZWxlYXNlIHRoZSBtZW1vcnkgcmVzb3VyY2VzIHNvIHRoYXQgb3RoZXIgYXBwbGljYXRpb25zIGNhbiB1c2UgdGhlbS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPk9uU3RvcCgpPFwvY29kZT48XC90ZD5cbjx0ZD5Vc2VkIHRvIHRha2UgbmVjZXNzYXJ5IGFjdGlvbnMgd2hlbiB0aGUgd2lkZ2V0IGNvbXBvbmVudCBpbnN0YW5jZSB3aW5kb3cgaXMgbG93ZXJlZC4gVGhlIHdpbmRvdyBpcyBsb3dlcmVkIHdoZW4gdGhlIHdpZGdldCBjb21wb25lbnQgd2luZG93IGlzIG5vdCBhY3RpdmF0ZWQgZm9yIGEgbG9uZyB0aW1lLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+T25TYXZlQ29udGVudCgpPFwvY29kZT48XC90ZD5cbjx0ZD5Vc2VkIHRvIHRha2UgbmVjZXNzYXJ5IGFjdGlvbnMgd2hlbiB0aGVyZSBpcyBhIG5lZWQgdG8gc3RvcmUgb3IgcmVzdG9yZSBkYXRhIGZvciBsYXVuY2hpbmcgdGhlIG5leHQgaW5zdGFuY2UuIFRoaXMgY2FsbGJhY2sgaXMgY2FsbGVkIHJpZ2h0IGJlZm9yZSA8Y29kZT5PbkRlc3Ryb3k8XC9jb2RlPi48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPk9uRGVzdHJveSgpPFwvY29kZT48XC90ZD5cbjx0ZD5Vc2VkIHRvIHRha2UgbmVjZXNzYXJ5IGFjdGlvbnMgd2hlbiB0aGUgd2lkZ2V0IGNvbXBvbmVudCBpbnN0YW5jZSBpcyB0ZXJtaW5hdGluZy4gVGhpcyBjYWxsYmFjayByZWxlYXNlcyBhbGwgcmVzb3VyY2VzLCBlc3BlY2lhbGx5IHRoZSBhbGxvY2F0ZWQgYW5kIHNoYXJlZCByZXNvdXJjZXMuPFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VGhlIHdpZGdldCBjb21wb25lbnQgaW5zdGFuY2UgY2FuIGFsc28gcmVjZWl2ZSBzb21lIGJhc2ljIHN5c3RlbSBldmVudHMuIFRoZSBmb2xsb3dpbmcgdGFibGUgc2hvd3MgYXZhaWxhYmxlIHN5c3RlbSBldmVudHMgY2FsbGJhY2tzOjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5DYWxsYmFjazxcL3RoPlxuPHRoPkRlc2NyaXB0aW9uPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPjxjb2RlPk9uTG93TWVtb3J5Q2FsbGJhY2s8XC9jb2RlPjxcL3RkPlxuPHRkPkV2ZW50IHR5cGUgZm9yIHRoZSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciBzYXZpbmcgZGF0YSBmcm9tIHRoZSBtYWluIG1lbW9yeSB0byBhIHBlcnNpc3RlbnQgbWVtb3J5IG9yIHN0b3JhZ2UgdG8gYXZvaWQgZGF0YSBsb3NzLiBEYXRhIGxvc3MgY2FuIG9jY3VyIGlmIHRoZSBUaXplbiBwbGF0Zm9ybSBsb3cgbWVtb3J5IGtpbGxlciBraWxscyB5b3VyIGFwcGxpY2F0aW9uIHRvIGZyZWUgbW9yZSBtZW1vcnkuIFRoZSBjYWxsYmFjayBmdW5jdGlvbiBtdXN0IHJlbGVhc2UgYW55IGNhY2hlZCBkYXRhIGluIHRoZSBtYWluIG1lbW9yeSB0byBzZWN1cmUgbW9yZSBmcmVlIG1lbW9yeS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPk9uTG93QmF0dGVyeUNhbGxiYWNrPFwvY29kZT48XC90ZD5cbjx0ZD5FdmVudCB0eXBlIGZvciB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyByZXNwb25zaWJsZSBmb3Igc2F2aW5nIGRhdGEgZnJvbSB0aGUgbWFpbiBtZW1vcnkgdG8gYSBwZXJzaXN0ZW50IG1lbW9yeSBvciBzdG9yYWdlIHRvIGF2b2lkIGRhdGEgbG9zcyBpbiBjYXNlIG9mIGNvbXBsZXRlIHBvd2VyIGZhaWx1cmUuIFRoZSBjYWxsYmFjayBmdW5jdGlvbiBtdXN0IGFsc28gc3RvcCBoZWF2eSBDUFUgY29uc3VtcHRpb24gb3IgcG93ZXIgY29uc3VtcHRpb24gYWN0aXZpdGllcyB0byBzYXZlIHRoZSByZW1haW5pbmcgcG93ZXIuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5PbkRldmljZU9yaWVudGF0aW9uQ2hhbmdlZENhbGxiYWNrPFwvY29kZT48XC90ZD5cbjx0ZD5FdmVudCB0eXBlIGZvciB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyByZXNwb25zaWJsZSBmb3IgY2hhbmdpbmcgdGhlIGRpc3BsYXkgb3JpZW50YXRpb24gdG8gbWF0Y2ggdGhlIGRldmljZSBvcmllbnRhdGlvbi48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPk9uTGFuZ3VhZ2VDaGFuZ2VkQ2FsbGJhY2s8XC9jb2RlPjxcL3RkPlxuPHRkPkV2ZW50IHR5cGUgZm9yIHRoZSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciByZWZyZXNoaW5nIHRoZSBkaXNwbGF5IGludG8gYSBuZXcgbGFuZ3VhZ2UuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5PblJlZ2lvbkZvcm1hdENoYW5nZWRDYWxsYmFjazxcL2NvZGU+PFwvdGQ+XG48dGQ+RXZlbnQgdHlwZSBmb3IgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgcmVzcG9uc2libGUgZm9yIHJlZnJlc2hpbmcgdGhlIGRpc3BsYXkgaW50byBhIG5ldyB0aW1lIHpvbmUuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5PblN1c3BlbmRlZFN0YXRlQ2FsbGJhY2s8XC9jb2RlPjxcL3RkPlxuPHRkPkV2ZW50IHR5cGUgZm9yIHRoZSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciB0YWtpbmcgbmVjZXNzYXJ5IGFjdGlvbnMgYmVmb3JlIGVudGVyaW5nIHRoZSBzdXNwZW5kZWQgc3RhdGUgb3IgYWZ0ZXIgZXhpdGluZyBmcm9tIHRoZSBzdGF0ZS48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48cD48YSBuYW1lPVwiYXR0cmlidXRlXCI+PFwvYT48XC9wPlxuPGgyIGlkPVwiY29udGVudC1hcHBsaWNhdGlvbi1hdHRyaWJ1dGVzXCI+PGEgaHJlZj1cIiNjb250ZW50LWFwcGxpY2F0aW9uLWF0dHJpYnV0ZXNcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkFwcGxpY2F0aW9uIGF0dHJpYnV0ZXM8XC9oMj5cbjxwPkRlZmluZSB5b3VyIGNvbXBvbmVudCBiYXNlZCBhcHBsaWNhdGlvbiBhdHRyaWJ1dGVzIGluIHRoZSBtYW5pZmVzdCBmaWxlLiBUaGUgYXR0cmlidXRlcyBkZXRlcm1pbmUgdGhlIGFwcGxpY2F0aW9uIGJlaGF2aW9yLiBUaGUgZm9sbG93aW5nIGNvZGUgZXhhbXBsZSBpbGx1c3RyYXRlcyBob3cgeW91IGNhbiBkZWZpbmUgdGhlIGF0dHJpYnV0ZXM6PFwvcD5cbjxwcmUgY2xhc3M9XCJzaGlraSBzaGlraS10aGVtZXMgZ2l0aHViLWxpZ2h0IGdpdGh1Yi1kYXJrXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LS1zaGlraS1kYXJrLWJnOiMyNDI5MmU7Y29sb3I6IzI0MjkyZTstLXNoaWtpLWRhcms6I2UxZTRlODtcIj48Y29kZT48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mbHQ7PzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+eG1sPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj4gdmVyc2lvbjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7MS4wJnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj4gZW5jb2Rpbmc8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O3V0Zi04JnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4/Jmd0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZsdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPm1hbmlmZXN0PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj54bWxuczxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7aHR0cDpcL1wvdGl6ZW4ub3JnXC9uc1wvcGFja2FnZXMmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPmFwaS12ZXJzaW9uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDs5JnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5wYWNrYWdlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtAUEFDS0FHRV9OQU1FQCZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+aW5zdGFsbC1sb2NhdGlvbjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7aW50ZXJuYWwtb25seSZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+dmVyc2lvbjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7MC4xLjEmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgJmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+bGFiZWw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDtTYW1wbGUmbHQ7XC88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmxhYmVsPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICZsdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmF1dGhvcjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+ZW1haWw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O3RpemVuYXBwZndAc2Ftc3VuZy5jb20mcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPmhyZWY8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O3d3dy5zYW1zdW5nLmNvbSZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0O1RpemVuIEFwcCBGcmFtZXdvcmsmbHQ7XC88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmF1dGhvcjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAmbHQ7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5kZXNjcmlwdGlvbjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0O1NhbXBsZSZsdDtcLzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+ZGVzY3JpcHRpb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgJmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+Y29tcG9uZW50LWJhc2VkLWFwcGxpY2F0aW9uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5hcHBpZDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7b3JnLnRpemVuLmJhc2UtY29tcG9uZW50JnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5leGVjPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtAQklORElSQFwvYmFzZS1jb21wb25lbnQmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPnR5cGU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O2RvdG5ldCZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgJmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+bGFiZWw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDtCYXNlLWNvbXBvbmVudCBhcHBsaWNhdGlvbiZsdDtcLzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+bGFiZWw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICZsdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmljb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDtAREVTS1RPUF9JQ09OQCZsdDtcLzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+aWNvbjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgJmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+c2VydmljZS1jb21wb25lbnQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPmlkPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtiYXNlLXNlcnZpY2UmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPm1haW48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O2ZhbHNlJnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICAgICAgICAgJmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+bGFiZWw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDtiYXNlLXNlcnZpY2UmbHQ7XC88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmxhYmVsPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICAgICAmbHQ7XC88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPnNlcnZpY2UtY29tcG9uZW50PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICAgICAmbHQ7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5mcmFtZS1jb21wb25lbnQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPmlkPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtiYXNlLWZyYW1lJnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5sYXVuY2hfbW9kZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7Y2FsbGVyJnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5tYWluPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDt0cnVlJnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5pY29uLWRpc3BsYXk8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O3RydWUmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPnRhc2ttYW5hZ2U8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O3RydWUmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICAgICAmbHQ7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5pY29uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7b3JnLnRpemVuLnNhbXBsZS5wbmcmbHQ7XC88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmljb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICAgICAmbHQ7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5sYWJlbDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0O2Jhc2UtZnJhbWUmbHQ7XC88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmxhYmVsPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICAgICAgICAgJmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+bGFiZWw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPnhtbDpsYW5nPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtlbi11cyZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0O2Jhc2UtZnJhbWUmbHQ7XC88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmxhYmVsPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICAgICAgICAgJmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+bGFiZWw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPnhtbDpsYW5nPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtrby1rciZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0O2Jhc2UtZnJhbWVbS09SXSZsdDtcLzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+bGFiZWw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICZsdDtcLzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+ZnJhbWUtY29tcG9uZW50PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+XHQmbHQ7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj53aWRnZXQtY29tcG9uZW50PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5pZDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7YmFzZS13aWRnZXQmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPm1haW48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O2ZhbHNlJnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5zZXR1cC1hcHBpZDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7YmFzZS13aWRnZXQmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPnVwZGF0ZS1wZXJpb2Q8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj0wIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+bWF4LWluc3RhbmNlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49MCZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICAgICAmbHQ7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5pY29uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7b3JnLnRpemVuLnNhbXBsZS5wbmcmbHQ7XC88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmljb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICAgICAmbHQ7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5sYWJlbDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0O2Jhc2Utd2lkZ2V0Jmx0O1wvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5sYWJlbDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgICAgICZsdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmxhYmVsPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj54bWw6bGFuZzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7ZW4tdXMmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDtiYXNlLXdpZGdldCZsdDtcLzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+bGFiZWw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICAgICAmbHQ7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5sYWJlbDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+eG1sOmxhbmc8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O2tvLWtyJnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7YmFzZS13aWRnZXRbS09SXSZsdDtcLzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+bGFiZWw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICAgICAmbHQ7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5zdXBwb3J0LXNpemU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDsyeDImbHQ7XC88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPnN1cHBvcnQtc2l6ZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgJmx0O1wvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj53aWRnZXQtY29tcG9uZW50PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICZsdDtcLzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+Y29tcG9uZW50LWJhc2VkLWFwcGxpY2F0aW9uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICZsdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPnByaXZpbGVnZXM8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICZsdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPnByaXZpbGVnZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0O2h0dHA6XC9cL3RpemVuLm9yZ1wvcHJpdmlsZWdlXC9hcHBtYW5hZ2VyLmxhdW5jaCZsdDtcLzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+cHJpdmlsZWdlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICZsdDtcLzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+cHJpdmlsZWdlczxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZsdDtcLzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+bWFuaWZlc3Q8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPHA+Rm9sbG93aW5nIGFyZSB0aGUgbWFpbiBhcHBsaWNhdGlvbiBhdHRyaWJ1dGVzOjxcL3A+XG48dWw+XG48bGk+XG48cD48Y29kZT5pZDxcL2NvZGU+PFwvcD5cbjxwPkV2ZXJ5IGNvbXBvbmVudCBlbGVtZW50IGhhcyBhbiA8Y29kZT5pZDxcL2NvZGU+IGF0dHJpYnV0ZS4gVGhlIGF0dHJpYnV0ZSBJRCBtdXN0IGJlIGdsb2JhbGx5IHVuaXF1ZSBpbiBhIGRldmljZS4gSWYgbm90LCB0aGUgYXBwbGljYXRpb24gaW5zdGFsbGF0aW9uIGZhaWxzLiBUaGlzIGF0dHJpYnV0ZSBpcyBhbHNvIHVzZWQgYnkgb3RoZXIgYXBwbGljYXRpb25zIHRvIGNvbmZpcm0gd2hpY2ggY29tcG9uZW50IG11c3QgYmUgY3JlYXRlZC48XC9wPlxuPFwvbGk+XG48bGk+XG48cD48Y29kZT5tYWluPFwvY29kZT48XC9wPlxuPHA+Q29tcG9uZW50IGJhc2VkIGFwcGxpY2F0aW9ucyBjYW4gaGF2ZSBtdWx0aXBsZSBjb21wb25lbnRzIGFuZCB0aGVyZSBpcyBvbmUgbWFpbiBjb21wb25lbnQuIFRoZSBtYWluIGNvbXBvbmVudCBpcyB0aGUgY29tcG9uZW50IHRoYXQgaXMgY3JlYXRlZCB3aGVuIHRoZSBjb21wb25lbnQgYmFzZWQgYXBwbGljYXRpb24gcmVjZWl2ZXMgYSBsYXVuY2ggcmVxdWVzdCB3aXRob3V0IGEgc3BlY2lmaWMgY29tcG9uZW50IElELiBUbyBzZXQgdGhlIG1haW4gY29tcG9uZW50LCBzZXQgdGhlIDxjb2RlPm1haW48XC9jb2RlPiBhdHRyaWJ1dGUgdG8gPGNvZGU+dHJ1ZTxcL2NvZGU+LjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPjxjb2RlPmljb24tZGlzcGxheTxcL2NvZGU+PFwvcD5cbjxwPlRoaXMgYXR0cmlidXRlIGlzIG9ubHkgZm9yIHRoZSBmcmFtZSBjb21wb25lbnQgZWxlbWVudC4gSWYgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gPGNvZGU+dHJ1ZTxcL2NvZGU+LCB0aGUgaG9tZSBhcHBsaWNhdGlvbiBkaXNwbGF5cyBhbiBpY29uIG9uIHRoZSBhcHAgdHJheSBmb3IgdGhlIGZyYW1lIGNvbXBvbmVudHMuPFwvcD5cbjxcL2xpPlxuPGxpPlxuPHA+PGNvZGU+bGF1bmNoX21vZGU8XC9jb2RlPjxcL3A+XG48cD5UaGlzIGF0dHJpYnV0ZSBpcyBvbmx5IGZvciB0aGUgZnJhbWUgY29tcG9uZW50IGVsZW1lbnQuIEFwcGxpY2F0aW9uIGxhdW5jaCBtb2RlIHZhbHVlcyBhcmU6PFwvcD5cbjx1bD5cbjxsaT5TaW5nbGU6IExhdW5jaGVkIGFzIHRoZSBtYWluIGFwcGxpY2F0aW9uLjxcL2xpPlxuPGxpPkdyb3VwOiBMYXVuY2hlZCBhcyBhIHN1Yi1hcHBsaWNhdGlvbi48XC9saT5cbjxsaT5DYWxsZXI6IERlZmluZXMgdGhlIGxhdW5jaCBtb2RlIHdpdGggPGNvZGU+QXBwQ29udHJvbC5TZXRMYXVuY2hNb2RlKCk8XC9jb2RlPi48XC9saT5cbjxcL3VsPlxuPFwvbGk+XG48bGk+XG48cD48Y29kZT50YXNrbWFuYWdlPFwvY29kZT48XC9wPlxuPHA+VGhpcyBhdHRyaWJ1dGUgaXMgb25seSBmb3IgdGhlIGZyYW1lIGNvbXBvbmVudCBlbGVtZW50LiBUaGlzIGF0dHJpYnV0ZSBpbmRpY2F0ZXMgd2hldGhlciB0aGUgYXBwbGljYXRpb24gYXBwZWFycyBpbiB0aGUgdGFzayBtYW5hZ2VyIG9yIG5vdC4gVGhlIGF2YWlsYWJsZSB2YWx1ZXMgYXJlIDxjb2RlPnRydWU8XC9jb2RlPiBhbmQgPGNvZGU+ZmFsc2U8XC9jb2RlPi48XC9wPlxuPFwvbGk+XG48bGk+XG48cD48Y29kZT5zZXR1cC1hcHBpZDxcL2NvZGU+PFwvcD5cbjxwPlRoaXMgYXR0cmlidXRlIGlzIG9ubHkgZm9yIHRoZSB3aWRnZXQgY29tcG9uZW50IGVsZW1lbnQuXG5UaGlzIGF0dHJpYnV0ZSBpcyBhcHAgSUQgdGhhdCBpcyB1c2VkIHdoZW4gdGhlIHdpZGdldCBjb21wb25lbnQgZWxlbWVudCBpcyBsYXVuY2hlZC48XC9wPlxuPFwvbGk+XG48bGk+XG48cD48Y29kZT5tYXgtaW5zdGFuY2U8XC9jb2RlPjxcL3A+XG48cD5UaGlzIGF0dHJpYnV0ZSBpcyBvbmx5IGZvciB0aGUgd2lkZ2V0IGNvbXBvbmVudCBlbGVtZW50LlxuVGhpcyBhdHRyaWJ1dGUgbGltaXRzIHRoZSBudW1iZXIgb2Ygd2lkZ2V0IGluc3RhbmNlcyBjb25jdXJyZW50bHkgZXhlY3V0YWJsZSBmb3IgYSB3ZWIgYXBwbGljYXRpb24uIFdoZW4gb21pdHRlZCBvciBpdHMgdmFsdWUgaXMgMCwgdW5saW1pdGVkIG51bWJlciBvZiB3aWRnZXQgaW5zdGFuY2VzIGFyZSBzdXBwb3J0ZWQuIFRoZSBleHBlY3RlZCB2YWx1ZSBpcyBhbiBpbnRlZ2VyLjxcL3A+XG48XC9saT5cbjxcL3VsPlxuPGgyIGlkPVwiY29udGVudC1wcmVyZXF1aXNpdGVzXCI+PGEgaHJlZj1cIiNjb250ZW50LXByZXJlcXVpc2l0ZXNcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlByZXJlcXVpc2l0ZXM8XC9oMj5cbjxwPlRvIHVzZSB0aGUgZnVuY3Rpb25zIGFuZCBkYXRhIHR5cGVzIG9mIHRoZSA8YSBocmVmPVwiXC9hcHBsaWNhdGlvblwvZG90bmV0XC9hcGlcL1RpemVuRlhcL2xhdGVzdFwvYXBpXC9UaXplbi5BcHBsaWNhdGlvbnMuQ29tcG9uZW50QmFzZWQuQ29tbW9uLm1kXCI+VGl6ZW4uQXBwbGljYXRpb25zLkNvbXBvbmVudEJhc2VkLkNvbW1vbjxcL2E+IG5hbWVzcGFjZSwgaW5jbHVkZSBpdCBpbiB5b3VyIGFwcGxpY2F0aW9uOjxcL3A+XG48Y29kZSBjbGFzcz1cImxhbmd1YWdlLUMjXCI+dXNpbmcgVGl6ZW4uQXBwbGljYXRpb25zLmNvbXBvbmVudGJhc2VkLmNvbW1vblxudXNpbmcgVGl6ZW4uQXBwbGljYXRpb25zLmNvbXBvbmVudGJhc2VkLmRlZmF1bHQgIFwvXC8gaWYgeW91IHdhbnQgdG8gdXNlIEVMRkNvbXBvbmVudEJhc2VkQXBwbGljYXRpb25cbjxcL2NvZGU+XG48cD48YSBuYW1lPVwiYXBwbGljYXRpb25fbW9uaXRvcmluZ1wiPjxcL2E+PFwvcD5cbjxoMiBpZD1cImNvbnRlbnQtc3RhcnQtY29tcG9uZW50LWJhc2VkLWFwcGxpY2F0aW9uXCI+PGEgaHJlZj1cIiNjb250ZW50LXN0YXJ0LWNvbXBvbmVudC1iYXNlZC1hcHBsaWNhdGlvblwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+U3RhcnQgY29tcG9uZW50IGJhc2VkIGFwcGxpY2F0aW9uPFwvaDI+XG48cD5UbyBzdGFydCBhIGNvbXBvbmVudCBiYXNlZCBhcHBsaWNhdGlvbiwgeW91IG11c3QgcmVnaXN0ZXIgdGhlIGNvbXBvbmVudCBiYXNlZCBhcHBsaWNhdGlvbiBjYWxsYmFja3MgYW5kIHN0YXJ0IGEgbWFpbiBldmVudCBsb29wIGFzIHNob3duIGluIHRoZSBmb2xsb3dpbmcgY29kZTo8XC9wPlxuPGNvZGUgY2xhc3M9XCJsYW5ndWFnZS1DI1wiPm5hbWVzcGFjZSBDb21wQmFzZWRDc2hhcnBcbntcbiAgICBpbnRlcm5hbCBjbGFzcyBBcHAgOiBFRkxDb21wb25lbnRCYXNlZEFwcGxpY2F0aW9uXG4gICAge1xuICAgICAgICBBcHAoSURpY3Rpb25hcnkmbHQ7VHlwZSwgc3RyaW5nJmd0OyB0eXBlSW5mbykgOiBiYXNlKHR5cGVJbmZvKVxuICAgICAgICB7XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0aWMgdm9pZCBNYWluKHN0cmluZ1tdIGFyZ3MpXG4gICAgICAgIHtcbiAgICAgICAgICAgIEVsZW1lbnRhcnkuSW5pdGlhbGl6ZSgpO1xuICAgICAgICAgICAgRWxlbWVudGFyeS5UaGVtZU92ZXJsYXkoKTtcbiAgICAgICAgICAgIElEaWN0aW9uYXJ5Jmx0O1R5cGUsIHN0cmluZyZndDsgdHlwZUluZm8gPSBuZXcgRGljdGlvbmFyeSZsdDtUeXBlLCBzdHJpbmcmZ3Q7KCk7XG4gICAgICAgICAgICB0eXBlSW5mby5BZGQodHlwZW9mKEZyYW1lQ29tcCksICZxdW90O2NzaGFycF9mcmFtZSZxdW90Oyk7XG4gICAgICAgICAgICB0eXBlSW5mby5BZGQodHlwZW9mKFNlcnZpY2VDb21wKSwgJnF1b3Q7Y3NoYXJwX3NlcnZpY2UmcXVvdDspO1xuICAgICAgICAgICAgdHlwZUluZm8uQWRkKHR5cGVvZihXaWRnZXRDb21wKSwgJnF1b3Q7Y3NoYXJwX3dpZGdldCZxdW90Oyk7XG4gICAgICAgICAgICBBcHAgYXBwID0gbmV3IEFwcCh0eXBlSW5mbyk7XG4gICAgICAgICAgICBhcHAuUnVuKGFyZ3MpO1xuICAgICAgICB9XG4gICAgfVxufVxuPFwvY29kZT5cbjxwPjxhIG5hbWU9XCJmcmFtZV9jb21wb25lbnRfbW9uaXRvcmluZ1wiPjxcL2E+PFwvcD5cbjxoMyBpZD1cImNvbnRlbnQtbWFuYWdlLWZyYW1lLWNvbXBvbmVudFwiPjxhIGhyZWY9XCIjY29udGVudC1tYW5hZ2UtZnJhbWUtY29tcG9uZW50XCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5NYW5hZ2UgZnJhbWUgY29tcG9uZW50PFwvaDM+XG48cD5UbyBhZGQgYW5kIG1hbmFnZSBmcmFtZSBjb21wb25lbnRzLCB5b3UgbXVzdCBhZGQgYSBmcmFtZSBjb21wb25lbnQgYW5kIHJlZ2lzdGVyIHRoZSBmcmFtZSBjb21wb25lbnQgb2JqZWN0LiBGb2xsb3cgdGhlIHN0ZXBzIGJlbG93IHRvIG1hbmFnZSBmcmFtZSBjb21wbmVudHMuPFwvcD5cbjxvbD5cbjxsaT5cbjxwPkRlY2xhcmUgYSBmcmFtZSBjb21wb25lbnQgaW4gdGhlIG1hbmlmZXN0IGZpbGU6PFwvcD5cbjxwcmUgY2xhc3M9XCJzaGlraSBzaGlraS10aGVtZXMgZ2l0aHViLWxpZ2h0IGdpdGh1Yi1kYXJrXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LS1zaGlraS1kYXJrLWJnOiMyNDI5MmU7Y29sb3I6IzI0MjkyZTstLXNoaWtpLWRhcms6I2UxZTRlODtcIj48Y29kZT48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mbHQ7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5jb21wb25lbnQtYmFzZWQtYXBwbGljYXRpb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPmFwcGlkPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtvcmcudGl6ZW4uYmFzZS1jb21wb25lbnQmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPmV4ZWM8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O0BCSU5ESVJAXC9iYXNlLWNvbXBvbmVudCZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+bm9kaXNwbGF5PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtmYWxzZSZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+bXVsdGlwbGU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O2ZhbHNlJnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj50eXBlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtkb3RuZXQmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgJmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+bGFiZWw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDtCYXNlLWNvbXBvbmVudCBhcHBsaWNhdGlvbiZsdDtcLzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+bGFiZWw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgJmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+aWNvbjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0O0BERVNLVE9QX0lDT05AJmx0O1wvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5pY29uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICZsdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmZyYW1lLWNvbXBvbmVudDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+aWQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O2Jhc2UtZnJhbWUmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPmxhdW5jaF9tb2RlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtjYWxsZXImcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPm1haW48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O3RydWUmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPmljb24tZGlzcGxheTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7ZmFsc2UmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPnRhc2ttYW5hZ2U8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O3RydWUmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICZsdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmljb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDtvcmcudGl6ZW4uc2FtcGxlLnBuZyZsdDtcLzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+aWNvbjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgJmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+bGFiZWw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDtiYXNlLWZyYW1lJmx0O1wvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5sYWJlbDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgJmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+bGFiZWw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPnhtbDpsYW5nPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtlbi11cyZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0O2Jhc2UtZnJhbWUmbHQ7XC88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmxhYmVsPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICAgICAmbHQ7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5sYWJlbDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+eG1sOmxhbmc8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O2tvLWtyJnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7YmFzZS1mcmFtZVtLT1JdJmx0O1wvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5sYWJlbDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAmbHQ7XC88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmZyYW1lLWNvbXBvbmVudDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZsdDtcLzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+Y29tcG9uZW50LWJhc2VkLWFwcGxpY2F0aW9uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj48XC9jb2RlPjxcL3ByZT5cbjxcL2xpPlxuPGxpPlxuPHA+QWRkIGEgZnJhbWUgY29tcG9uZW50IHRvIHRoZSBjb21wb25lbnQgYmFzZWQgYXBwbGljYXRpb246PFwvcD5cbjxjb2RlIGNsYXNzPVwibGFuZ3VhZ2UtQyNcIj5wdWJsaWMgY2xhc3MgRnJhbWVDb21wIDogRnJhbWVDb21wb25lbnRcbntcbiAgICBpbnRlcm5hbCBzdGF0aWMgcmVhZG9ubHkgc3RyaW5nIExvZ1RhZyA9ICZxdW90O0NvbXBCYXNlZENzaGFycCZxdW90OztcbiAgICBFRkxXaW5kb3dJbmZvIHdpbl87XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgSVdpbmRvd0luZm8gQ3JlYXRlV2luZG93SW5mbygpXG4gICAge1xuICAgICAgICBXaW5kb3cgd2luZG93ID0gbmV3IFdpbmRvdygmcXVvdDtiYXNlLWZyYW1lJnF1b3Q7KTtcbiAgICAgICAgd2luXyA9IG5ldyBFRkxXaW5kb3dJbmZvKHdpbmRvdyk7XG4gICAgICAgIHJldHVybiB3aW5fO1xuICAgIH1cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYm9vbCBPbkNyZWF0ZSgpXG4gICAge1xuICAgICAgICBMb2cuRGVidWcoTG9nVGFnLCAmcXVvdDtPbkNyZWF0ZSBGcmFtZSZxdW90Oyk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBwdWJsaWMgb3ZlcnJpZGUgdm9pZCBPblN0YXJ0KEFwcENvbnRyb2wgY29udHJvbCwgYm9vbCByZXN0YXJ0ZWQpXG4gICAge1xuICAgICAgICBMb2cuRGVidWcoTG9nVGFnLCAmcXVvdDtPblN0YXJ0IEZyYW1lJnF1b3Q7KTtcbiAgICB9XG4gICAgcHVibGljIG92ZXJyaWRlIHZvaWQgT25SZXN1bWUoKVxuICAgIHtcbiAgICAgICAgTG9nLkRlYnVnKExvZ1RhZywgJnF1b3Q7T25SZXN1bWUgRnJhbWUmcXVvdDspO1xuICAgICAgICBiYXNlLk9uUmVzdW1lKCk7XG4gICAgfVxuICAgIHB1YmxpYyBvdmVycmlkZSB2b2lkIE9uUGF1c2UoKVxuICAgIHtcbiAgICAgICAgTG9nLkRlYnVnKExvZ1RhZywgJnF1b3Q7T25QYXVzZSBGcmFtZSZxdW90Oyk7XG4gICAgICAgIGJhc2UuT25QYXVzZSgpO1xuICAgIH1cbiAgICBwdWJsaWMgb3ZlcnJpZGUgdm9pZCBPbkRlc3Ryb3koKVxuICAgIHtcbiAgICAgICAgTG9nLkRlYnVnKExvZ1RhZywgJnF1b3Q7T25EZXN0cm95IEZyYW1lJnF1b3Q7KTtcbiAgICAgICAgYmFzZS5PbkRlc3Ryb3koKTtcbiAgICB9XG4gICAgcHVibGljIG92ZXJyaWRlIHZvaWQgT25TdG9wKClcbiAgICB7XG4gICAgICAgIExvZy5EZWJ1ZyhMb2dUYWcsICZxdW90O09uU3RvcCBGcmFtZSZxdW90Oyk7XG4gICAgICAgIGJhc2UuT25TdG9wKCk7XG4gICAgfVxufVxuXG5uYW1lc3BhY2UgQ29tcEJhc2VkQ3NoYXJwXG57XG4gICAgaW50ZXJuYWwgY2xhc3MgQXBwIDogRUZMQ29tcG9uZW50QmFzZWRBcHBsaWNhdGlvblxuICAgIHtcbiAgICAgICAgaW50ZXJuYWwgc3RhdGljIHJlYWRvbmx5IHN0cmluZyBMb2dUYWcgPSAmcXVvdDtDb21wQmFzZWRDc2hhcnAmcXVvdDs7XG4gICAgICAgIEFwcChJRGljdGlvbmFyeSZsdDtUeXBlLCBzdHJpbmcmZ3Q7IHR5cGVJbmZvKSA6IGJhc2UodHlwZUluZm8pXG4gICAgICAgIHtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXRpYyB2b2lkIE1haW4oc3RyaW5nW10gYXJncylcbiAgICAgICAge1xuICAgICAgICAgICAgRWxlbWVudGFyeS5Jbml0aWFsaXplKCk7XG4gICAgICAgICAgICBFbGVtZW50YXJ5LlRoZW1lT3ZlcmxheSgpO1xuICAgICAgICAgICAgTG9nLkVycm9yKExvZ1RhZywgJnF1b3Q7c3RhcnQmcXVvdDspO1xuICAgICAgICAgICAgSURpY3Rpb25hcnkmbHQ7VHlwZSwgc3RyaW5nJmd0OyB0eXBlSW5mbyA9IG5ldyBEaWN0aW9uYXJ5Jmx0O1R5cGUsIHN0cmluZyZndDsoKTtcbiAgICAgICAgICAgIHR5cGVJbmZvLkFkZCh0eXBlb2YoRnJhbWVDb21wKSwgJnF1b3Q7YmFzZS1mcmFtZSZxdW90Oyk7XG4gICAgICAgICAgICBBcHAgYXBwID0gbmV3IEFwcCh0eXBlSW5mbyk7XG4gICAgICAgICAgICBhcHAuUnVuKGFyZ3MpO1xuICAgICAgICB9XG4gICAgfVxufVxuPFwvY29kZT5cbjxcL2xpPlxuPFwvb2w+XG48cD48YSBuYW1lPVwic2VydmljZV9jb21wb25lbnRfbW9uaXRvcmluZ1wiPjxcL2E+PFwvcD5cbjxoMyBpZD1cImNvbnRlbnQtbWFuYWdlLXNlcnZpY2UtY29tcG9uZW50XCI+PGEgaHJlZj1cIiNjb250ZW50LW1hbmFnZS1zZXJ2aWNlLWNvbXBvbmVudFwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+TWFuYWdlIHNlcnZpY2UgY29tcG9uZW50PFwvaDM+XG48cD5UbyBhZGQgYW5kIG1hbmFnZSBzZXJ2aWNlIGNvbXBvbmVudCwgeW91IG11c3QgYWRkIGEgc2VydmljZSBjb21wb25lbnQgYW5kIHJlZ2lzdGVyIHRoZSBzZXJ2aWNlIGNvbXBvbmVudCBvYmplY3QuIEZvbGxvdyB0aGUgc3RlcHMgYmVsb3cgdG8gbWFuYWdlIHNlcnZpY2UgY29tcG9uZW50cy48XC9wPlxuPG9sPlxuPGxpPlxuPHA+RGVjbGFyZSBhIHNlcnZpY2UgY29tcG9uZW50IGluIHRoZSBtYW5pZmVzdCBmaWxlOjxcL3A+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+Y29tcG9uZW50LWJhc2VkLWFwcGxpY2F0aW9uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5hcHBpZDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7b3JnLnRpemVuLmJhc2UtY29tcG9uZW50JnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5leGVjPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtAQklORElSQFwvYmFzZS1jb21wb25lbnQmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPm5vZGlzcGxheTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7ZmFsc2UmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPm11bHRpcGxlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtmYWxzZSZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+dHlwZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7ZG90bmV0JnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICZsdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmxhYmVsPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7QmFzZS1jb21wb25lbnQgYXBwbGljYXRpb24mbHQ7XC88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmxhYmVsPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICZsdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmljb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDtAREVTS1RPUF9JQ09OQCZsdDtcLzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+aWNvbjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAmbHQ7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5zZXJ2aWNlLWNvbXBvbmVudDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+aWQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O2Jhc2Utc2VydmljZSZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+bGF1bmNoX21vZGU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O2NhbGxlciZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+bWFpbjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7ZmFsc2UmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPmljb24tZGlzcGxheTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7ZmFsc2UmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPnRhc2ttYW5hZ2U8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O3RydWUmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICZsdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmljb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDtvcmcudGl6ZW4uc2FtcGxlLnBuZyZsdDtcLzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+aWNvbjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgJmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+bGFiZWw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDtiYXNlLXNlcnZpY2UmbHQ7XC88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmxhYmVsPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICAgICAmbHQ7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5sYWJlbDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+eG1sOmxhbmc8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O2VuLXVzJnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7YmFzZS1zZXJ2aWNlJmx0O1wvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5sYWJlbDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgJmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+bGFiZWw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPnhtbDpsYW5nPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtrby1rciZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0O2Jhc2Utc2VydmljZVtLT1JdJmx0O1wvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5sYWJlbDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAmbHQ7XC88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPnNlcnZpY2UtY29tcG9uZW50PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmx0O1wvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5jb21wb25lbnQtYmFzZWQtYXBwbGljYXRpb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPFwvbGk+XG48bGk+XG48cD5BZGQgYSBzZXJ2aWNlIGNvbXBvbmVudCB0byB0aGUgY29tcG9uZW50IGJhc2VkIGFwcGxpY2F0aW9uOjxcL3A+XG48Y29kZSBjbGFzcz1cImxhbmd1YWdlLUMjXCI+cHVibGljIGNsYXNzIFNlcnZpY2VDb21wIDogU2VydmljZUNvbXBvbmVudFxue1xuICAgIGludGVybmFsIHN0YXRpYyByZWFkb25seSBzdHJpbmcgTG9nVGFnID0gJnF1b3Q7Q29tcEJhc2VkQ3NoYXJwJnF1b3Q7O1xuICAgIHB1YmxpYyBvdmVycmlkZSBib29sIE9uQ3JlYXRlKClcbiAgICB7XG4gICAgICAgIExvZy5EZWJ1ZyhMb2dUYWcsICZxdW90O09uQ3JlYXRlIFNlcnZpY2UmcXVvdDspO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcHVibGljIG92ZXJyaWRlIHZvaWQgT25TdGFydENvbW1hbmQoQXBwQ29udHJvbCBjb250cm9sLCBib29sIHJlc3RhcnRlZClcbiAgICB7XG4gICAgICAgIExvZy5EZWJ1ZyhMb2dUYWcsICZxdW90O09uU3RhcnRDb21tYW5kIFNlcnZpY2UmcXVvdDspO1xuICAgIH1cbiAgICBwdWJsaWMgb3ZlcnJpZGUgdm9pZCBPbkRlc3Ryb3koKVxuICAgIHtcbiAgICAgICAgTG9nLkRlYnVnKExvZ1RhZywgJnF1b3Q7T25EZXN0cm95IFNlcnZpY2UmcXVvdDspO1xuICAgICAgICBiYXNlLk9uRGVzdHJveSgpO1xuICAgIH1cbn1cblxubmFtZXNwYWNlIENvbXBCYXNlZENzaGFycFxue1xuICAgIGludGVybmFsIGNsYXNzIEFwcCA6IEVGTENvbXBvbmVudEJhc2VkQXBwbGljYXRpb25cbiAgICB7XG4gICAgICAgIGludGVybmFsIHN0YXRpYyByZWFkb25seSBzdHJpbmcgTG9nVGFnID0gJnF1b3Q7Q29tcEJhc2VkQ3NoYXJwJnF1b3Q7O1xuICAgICAgICBBcHAoSURpY3Rpb25hcnkmbHQ7VHlwZSwgc3RyaW5nJmd0OyB0eXBlSW5mbykgOiBiYXNlKHR5cGVJbmZvKVxuICAgICAgICB7XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0aWMgdm9pZCBNYWluKHN0cmluZ1tdIGFyZ3MpXG4gICAgICAgIHtcbiAgICAgICAgICAgIEVsZW1lbnRhcnkuSW5pdGlhbGl6ZSgpO1xuICAgICAgICAgICAgRWxlbWVudGFyeS5UaGVtZU92ZXJsYXkoKTtcbiAgICAgICAgICAgIExvZy5FcnJvcihMb2dUYWcsICZxdW90O3N0YXJ0JnF1b3Q7KTtcbiAgICAgICAgICAgIElEaWN0aW9uYXJ5Jmx0O1R5cGUsIHN0cmluZyZndDsgdHlwZUluZm8gPSBuZXcgRGljdGlvbmFyeSZsdDtUeXBlLCBzdHJpbmcmZ3Q7KCk7XG4gICAgICAgICAgICB0eXBlSW5mby5BZGQodHlwZW9mKFNlcnZpY2VDb21wKSwgJnF1b3Q7YmFzZS1zZXJ2aWNlJnF1b3Q7KTtcbiAgICAgICAgICAgIEFwcCBhcHAgPSBuZXcgQXBwKHR5cGVJbmZvKTtcbiAgICAgICAgICAgIGFwcC5SdW4oYXJncyk7XG4gICAgICAgIH1cbiAgICB9XG59XG48XC9jb2RlPlxuPFwvbGk+XG48XC9vbD5cbjxwPjxhIG5hbWU9XCJ3aWRnZXRfY29tcG9uZW50X21vbml0b3JpbmdcIj48XC9hPjxcL3A+XG48aDMgaWQ9XCJjb250ZW50LW1hbmFnZS13aWRnZXQtY29tcG9uZW50XCI+PGEgaHJlZj1cIiNjb250ZW50LW1hbmFnZS13aWRnZXQtY29tcG9uZW50XCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5NYW5hZ2Ugd2lkZ2V0IGNvbXBvbmVudDxcL2gzPlxuPGRpdiBjbGFzcz1cIm1kLWFsZXJ0IG1kLWFsZXJ0LW5vdGVcIj5cbjxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOlwvXC93d3cudzMub3JnXC8yMDAwXC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+PHBhdGggZD1cIk0wIDhhOCA4IDAgMSAxIDE2IDBBOCA4IDAgMCAxIDAgOFptOC02LjVhNi41IDYuNSAwIDEgMCAwIDEzIDYuNSA2LjUgMCAwIDAgMC0xM1pNNi41IDcuNzVBLjc1Ljc1IDAgMCAxIDcuMjUgN2gxYS43NS43NSAwIDAgMSAuNzUuNzV2Mi43NWguMjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0yYS43NS43NSAwIDAgMSAwLTEuNWguMjV2LTJoLS4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNOCA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIlwvPjxcL3N2Zz5Ob3RlPFwvc3Bhbj5cbjxwPlRoZSB3aWRnZXQgY29tcG9uZW50IEFQSXMgYXJlIHN1cHBvcnRlZCBzaW5jZSBUaXplbiA2LjU8XC9wPlxuPFwvZGl2PlxuPHA+VG8gYWRkIGFuZCBtYW5hZ2Ugd2lkZ2V0IGNvbXBvbmVudHMsIHlvdSBtdXN0IGFkZCBhIHdpZGdldCBjb21wb25lbnQgYW5kIHJlZ2lzdGVyIHRoZSB3aWRnZXQgY29tcG9uZW50IG9iamVjdC4gRm9sbG93IHRoZSBzdGVwcyBiZWxvdyB0byBtYW5hZ2Ugd2lkZ2V0IGNvbXBvbmVudHMuPFwvcD5cbjxvbD5cbjxsaT5cbjxwPkRlY2xhcmUgYSB3aWRnZXQgY29tcG9uZW50IGluIHRoZSBtYW5pZmVzdCBmaWxlOjxcL3A+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+Y29tcG9uZW50LWJhc2VkLWFwcGxpY2F0aW9uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5hcHBpZDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7b3JnLnRpemVuLmJhc2UtY29tcG9uZW50JnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5leGVjPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtAQklORElSQFwvYmFzZS1jb21wb25lbnQmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPm5vZGlzcGxheTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7ZmFsc2UmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPm11bHRpcGxlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtmYWxzZSZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+dHlwZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7ZG90bmV0JnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICZsdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmxhYmVsPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7QmFzZS1jb21wb25lbnQgYXBwbGljYXRpb24mbHQ7XC88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmxhYmVsPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICZsdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmljb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDtAREVTS1RPUF9JQ09OQCZsdDtcLzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+aWNvbjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAmbHQ7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj53aWRnZXQtY29tcG9uZW50PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5pZDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7YmFzZS13aWRnZXQmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPnNldHVwLWFwcGlkPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtiYXNlLXdpZGdldCZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+bWF4LWluc3RhbmNlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49MCZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICZsdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmljb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDtvcmcudGl6ZW4uc2FtcGxlLnBuZyZsdDtcLzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+aWNvbjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgJmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+bGFiZWw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDtiYXNlLXdpZGdldCZsdDtcLzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+bGFiZWw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICZsdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmxhYmVsPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj54bWw6bGFuZzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7ZW4tdXMmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDtiYXNlLXdpZGdldCZsdDtcLzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+bGFiZWw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICZsdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmxhYmVsPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj54bWw6bGFuZzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7a28ta3ImcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDtiYXNlLXdpZGdldFtLT1JdJmx0O1wvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5sYWJlbDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgJmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+c3VwcG9ydC1zaXplPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7MngyJmx0O1wvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5zdXBwb3J0LXNpemU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgJmx0O1wvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj53aWRnZXQtY29tcG9uZW50PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmx0O1wvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5jb21wb25lbnQtYmFzZWQtYXBwbGljYXRpb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPFwvbGk+XG48bGk+XG48cD5BZGQgYSB3aWRnZXQgY29tcG9uZW50IHRvIHRoZSBjb21wb25lbnQgYmFzZWQgYXBwbGljYXRpb246PFwvcD5cbjxjb2RlIGNsYXNzPVwibGFuZ3VhZ2UtQyNcIj5wdWJsaWMgY2xhc3MgV2lkZ2V0Q29tcCA6IFdpZGdldENvbXBvbmVudFxue1xuICAgIGludGVybmFsIHN0YXRpYyByZWFkb25seSBzdHJpbmcgTG9nVGFnID0gJnF1b3Q7Q29tcEJhc2VkQ3NoYXJwJnF1b3Q7O1xuICAgIE15V2luZG93UHJveHkgd2luXztcblxuICAgIHB1YmxpYyBvdmVycmlkZSBJV2luZG93UHJveHkgQ3JlYXRlV2luZG93SW5mbyhpbnQgd2lkdGgsIGludCBoZWlnaHQpXG4gICAge1xuICAgICAgICBXaW5kb3cgd2luZG93ID0gbmV3IFdpbmRvdygmcXVvdDtiYXNlLXdpZGdldCZxdW90Oyk7XG4gICAgICAgIHdpbl8gPSBuZXcgTXlXaW5kb3dQcm94eSh3aW5kb3cpO1xuICAgICAgICByZXR1cm4gd2luXztcbiAgICB9XG4gICAgcHVibGljIG92ZXJyaWRlIGJvb2wgT25DcmVhdGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KVxuICAgIHtcbiAgICAgICAgTG9nLkRlYnVnKExvZ1RhZywgJnF1b3Q7T25DcmVhdGUgV2lkZ2V0JnF1b3Q7KTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHB1YmxpYyBvdmVycmlkZSB2b2lkIE9uU3RhcnQoYm9vbCByZXN0YXJ0ZWQpXG4gICAge1xuICAgICAgICBMb2cuRGVidWcoTG9nVGFnLCAmcXVvdDtPblN0YXJ0IFdpZGdldCZxdW90Oyk7XG4gICAgfVxuICAgIHB1YmxpYyBvdmVycmlkZSB2b2lkIE9uUmVzdW1lKClcbiAgICB7XG4gICAgICAgIExvZy5EZWJ1ZyhMb2dUYWcsICZxdW90O09uUmVzdW1lIFdpZGdldCZxdW90Oyk7XG4gICAgICAgIGJhc2UuT25SZXN1bWUoKTtcbiAgICB9XG4gICAgcHVibGljIG92ZXJyaWRlIHZvaWQgT25QYXVzZSgpXG4gICAge1xuICAgICAgICBMb2cuRGVidWcoTG9nVGFnLCAmcXVvdDtPblBhdXNlIFdpZGdldCZxdW90Oyk7XG4gICAgICAgIGJhc2UuT25QYXVzZSgpO1xuICAgIH1cbiAgICBwdWJsaWMgb3ZlcnJpZGUgdm9pZCBPbkRlc3Ryb3koYm9vbCBwZXJtYW5lbnQpXG4gICAge1xuICAgICAgICBMb2cuRGVidWcoTG9nVGFnLCAmcXVvdDtPbkRlc3Ryb3kgV2lkZ2V0JnF1b3Q7KTtcbiAgICAgICAgYmFzZS5PbkRlc3Ryb3kocGVybWFuZW50KTtcbiAgICB9XG4gICAgcHVibGljIG92ZXJyaWRlIHZvaWQgT25TdG9wKClcbiAgICB7XG4gICAgICAgIExvZy5EZWJ1ZyhMb2dUYWcsICZxdW90O09uU3RvcCBXaWRnZXQmcXVvdDspO1xuICAgICAgICBiYXNlLk9uU3RvcCgpO1xuICAgIH1cbn1cblxubmFtZXNwYWNlIENvbXBCYXNlZENzaGFycFxue1xuICAgIGludGVybmFsIGNsYXNzIEFwcCA6IEVGTENvbXBvbmVudEJhc2VkQXBwbGljYXRpb25cbiAgICB7XG4gICAgICAgIGludGVybmFsIHN0YXRpYyByZWFkb25seSBzdHJpbmcgTG9nVGFnID0gJnF1b3Q7Q29tcEJhc2VkQ3NoYXJwJnF1b3Q7O1xuICAgICAgICBBcHAoSURpY3Rpb25hcnkmbHQ7VHlwZSwgc3RyaW5nJmd0OyB0eXBlSW5mbykgOiBiYXNlKHR5cGVJbmZvKVxuICAgICAgICB7XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0aWMgdm9pZCBNYWluKHN0cmluZ1tdIGFyZ3MpXG4gICAgICAgIHtcbiAgICAgICAgICAgIEVsZW1lbnRhcnkuSW5pdGlhbGl6ZSgpO1xuICAgICAgICAgICAgRWxlbWVudGFyeS5UaGVtZU92ZXJsYXkoKTtcbiAgICAgICAgICAgIExvZy5FcnJvcihMb2dUYWcsICZxdW90O3N0YXJ0JnF1b3Q7KTtcbiAgICAgICAgICAgIElEaWN0aW9uYXJ5Jmx0O1R5cGUsIHN0cmluZyZndDsgdHlwZUluZm8gPSBuZXcgRGljdGlvbmFyeSZsdDtUeXBlLCBzdHJpbmcmZ3Q7KCk7XG4gICAgICAgICAgICB0eXBlSW5mby5BZGQodHlwZW9mKFdpZGdldENvbXApLCAmcXVvdDtiYXNlLXdpZGdldCZxdW90Oyk7XG4gICAgICAgICAgICBBcHAgYXBwID0gbmV3IEFwcCh0eXBlSW5mbyk7XG4gICAgICAgICAgICBhcHAuUnVuKGFyZ3MpO1xuICAgICAgICB9XG4gICAgfVxufVxuPFwvY29kZT5cbjxcL2xpPlxuPFwvb2w+XG48cD48YSBuYW1lPVwibGF1bmNoX2FwcGxpY2F0aW9uXCI+PFwvYT48XC9wPlxuPGgyIGlkPVwiY29udGVudC1sYXVuY2gtY29tcG9uZW50LWJhc2VkLWFwcGxpY2F0aW9uXCI+PGEgaHJlZj1cIiNjb250ZW50LWxhdW5jaC1jb21wb25lbnQtYmFzZWQtYXBwbGljYXRpb25cIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkxhdW5jaCBjb21wb25lbnQgYmFzZWQgYXBwbGljYXRpb248XC9oMj5cbjxwPlRvIGxhdW5jaCBhIGNvbXBvbmVudCBiYXNlZCBhcHBsaWNhdGlvbiwgZm9sbG93IHRoZSBzdGVwcyBiZWxvdzo8XC9wPlxuPG9sPlxuPGxpPlxuPHA+RGVjbGFyZSB0aGUgbGF1bmNoIHByaXZpbGVnZSBpbiB0aGUgbWFuaWZlc3QgZmlsZTo8XC9wPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZsdDs/PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj54bWw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPiB2ZXJzaW9uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDsxLjAmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPiBlbmNvZGluZzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7dXRmLTgmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj8mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+bWFuaWZlc3Q8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPnhtbG5zPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtodHRwOlwvXC90aXplbi5vcmdcL25zXC9wYWNrYWdlcyZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+YXBpLXZlcnNpb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90OzkmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPnBhY2thZ2U8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O0BQQUNLQUdFX05BTUVAJnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5pbnN0YWxsLWxvY2F0aW9uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtpbnRlcm5hbC1vbmx5JnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj52ZXJzaW9uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDswLjEuMSZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAmbHQ7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5sYWJlbDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0O1NhbXBsZSZsdDtcLzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+bGFiZWw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgJmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+YXV0aG9yPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5lbWFpbDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7dGl6ZW5hcHBmd0B0aXplbi5jb20mcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPmhyZWY8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O3d3dy50aXplbi5vcmcmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDtUaXplbiBBcHAgRnJhbWV3b3JrJmx0O1wvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5hdXRob3I8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgJmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+ZGVzY3JpcHRpb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDtTYW1wbGUmbHQ7XC88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmRlc2NyaXB0aW9uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICZsdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPnVpLWFwcGxpY2F0aW9uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5hcHBpZDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7b3JnLnRpemVuLnNhbXBsZSZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+ZXhlYzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7QEJJTkRJUkBcL3NhbXBsZSZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+bm9kaXNwbGF5PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtmYWxzZSZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+bXVsdGlwbGU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O2ZhbHNlJnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj50eXBlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtkb3RuZXQmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPnRhc2ttYW5hZ2U8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O3RydWUmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPmxhdW5jaF9tb2RlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtjYWxsZXImcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICZsdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzIyODYzQTstLXNoaWtpLWRhcms6Izg1RTg5RFwiPmxhYmVsPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7U2FtcGxlJmx0O1wvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5sYWJlbDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgJmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+aWNvbjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0O0BERVNLVE9QX0lDT05AJmx0O1wvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5pY29uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICZsdDtcLzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+dWktYXBwbGljYXRpb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgJmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+cHJpdmlsZWdlczxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgJmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjI4NjNBOy0tc2hpa2ktZGFyazojODVFODlEXCI+cHJpdmlsZWdlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7aHR0cDpcL1wvdGl6ZW4ub3JnXC9wcml2aWxlZ2VcL2FwcG1hbmFnZXIubGF1bmNoJmx0O1wvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5wcml2aWxlZ2U8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgJmx0O1wvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5wcml2aWxlZ2VzPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmx0O1wvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyMjg2M0E7LS1zaGlraS1kYXJrOiM4NUU4OURcIj5tYW5pZmVzdDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmd0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+PFwvY29kZT48XC9wcmU+XG48XC9saT5cbjxsaT5cbjxwPlNlbmQgbGF1bmNoIHJlcXVlc3QuPFwvcD5cbjxwPllvdSBjYW4gc2VuZCBhIGxhdW5jaCByZXF1ZXN0IHVzaW5nIDxjb2RlPkFwcENvbnRyb2w8XC9jb2RlPi4gPGNvZGU+QXBwQ29udHJvbDxcL2NvZGU+IGNvbnRhaW5zIHRoZSBjb21wb25lbnQgYmFzZWQgYXBwbGljYXRpb24ncyBJRCBhbmQgdGhlIGNvbXBvbmVudCBJRC4gVGhlIGNvbXBvbmVudCBJRCBpcyBvcHRpb25hbC4gSWYgeW91IGRvIG5vdCBzZXQgdGhlIGNvbXBvbmVudCBJRCwgdGhlIG1haW4gY29tcG9uZW50IGluc3RhbmNlIGlzIGNyZWF0ZWQuPFwvcD5cbjxwPllvdSBjYW4gbGF1bmNoIGEgY29tcG9uZW50IGJhc2VkIGFwcGxpY2F0aW9uIGFzIHNob3duIGluIHRoZSBmb2xsb3dpbmcgY29kZTo8XC9wPlxuPGNvZGUgY2xhc3M9XCJsYW5ndWFnZS1DI1wiPnByaXZhdGUgdm9pZCBCdXR0b25DbGlja2VkQ2FsbGJhY2sob2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpXG57XG4gICAgQXBwQ29udHJvbCBjb250cm9sID0gbmV3IEFwcENvbnRyb2woKTtcbiAgICBjb250cm9sLkFwcGxpY2F0aW9uSWQgPSAmcXVvdDtvcmcudGl6ZW4uZXhhbXBsZS5Db21wQmFzZWRDc2hhcnAmcXVvdDs7XG4gICAgY29udHJvbC5Db21wb25lbnRJZCA9ICZxdW90O2Jhc2UtZnJhbWUmcXVvdDs7XG4gICAgY29udHJvbC5MYXVuY2hNb2RlID0gQXBwQ29udHJvbExhdW5jaE1vZGUuR3JvdXA7XG4gICAgQXBwQ29udHJvbC5TZW5kTGF1bmNoUmVxdWVzdEFzeW5jKGNvbnRyb2wsIG51bGwpO1xufVxuPFwvY29kZT5cbjxcL2xpPlxuPFwvb2w+XG48aDIgaWQ9XCJjb250ZW50LXJlbGF0ZWQtaW5mb3JtYXRpb25cIj48YSBocmVmPVwiI2NvbnRlbnQtcmVsYXRlZC1pbmZvcm1hdGlvblwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+UmVsYXRlZCBpbmZvcm1hdGlvbjxcL2gyPlxuPHVsPlxuPGxpPlxuPHA+RGVwZW5kZW5jaWVzPFwvcD5cbjx1bD5cbjxsaT5UaXplbiA1LjUgYW5kIEhpZ2hlcjxcL2xpPlxuPFwvdWw+XG48XC9saT5cbjxsaT5cbjxwPkFQSSBSZWZlcmVuY2VzPFwvcD5cbjx1bD5cbjxsaT48YSBocmVmPVwiXC9hcHBsaWNhdGlvblwvZG90bmV0XC9hcGlcL1RpemVuRlhcL2xhdGVzdFwvYXBpXC9UaXplbi5BcHBsaWNhdGlvbnMuQ29tcG9uZW50QmFzZWQuQ29tbW9uLkNvbXBvbmVudEJhc2VkQXBwbGljYXRpb24ubWRcIj5UaXplbi5BcHBsaWNhdGlvbnMuQ29tcG9uZW50QmFzZWQuQ29tbW9uLkNvbXBvbmVudEJhc2VkQXBwbGljYXRpb248XC9hPiBjbGFzczxcL2xpPlxuPGxpPjxhIGhyZWY9XCJcL2FwcGxpY2F0aW9uXC9kb3RuZXRcL2FwaVwvVGl6ZW5GWFwvbGF0ZXN0XC9hcGlcL1RpemVuLkFwcGxpY2F0aW9ucy5Db21wb25lbnRCYXNlZC5Db21tb24uU2VydmljZUNvbXBvbmVudC5tZFwiPlRpemVuLkFwcGxpY2F0aW9ucy5Db21wb25lbnRCYXNlZC5Db21tb24uU2VydmljZUNvbXBvbmVudDxcL2E+IGNsYXNzPFwvbGk+XG48bGk+PGEgaHJlZj1cIlwvYXBwbGljYXRpb25cL2RvdG5ldFwvYXBpXC9UaXplbkZYXC9sYXRlc3RcL2FwaVwvVGl6ZW4uQXBwbGljYXRpb25zLkNvbXBvbmVudEJhc2VkLkNvbW1vbi5XaWRnZXRDb21wb25lbnQubWRcIj5UaXplbi5BcHBsaWNhdGlvbnMuQ29tcG9uZW50QmFzZWQuQ29tbW9uLldpZGdldENvbXBvbmVudDxcL2E+IGNsYXNzPFwvbGk+XG48bGk+PGEgaHJlZj1cIlwvYXBwbGljYXRpb25cL2RvdG5ldFwvYXBpXC9UaXplbkZYXC9sYXRlc3RcL2FwaVwvVGl6ZW4uQXBwbGljYXRpb25zLkNvbXBvbmVudEJhc2VkLkNvbW1vbi5GcmFtZUNvbXBvbmVudC5tZFwiPlRpemVuLkFwcGxpY2F0aW9ucy5Db21wb25lbnRCYXNlZC5Db21tb24uRnJhbWVDb21wb25lbnQ8XC9hPiBjbGFzczxcL2xpPlxuPGxpPjxhIGhyZWY9XCJcL2FwcGxpY2F0aW9uXC9kb3RuZXRcL2FwaVwvVGl6ZW5GWFwvbGF0ZXN0XC9hcGlcL1RpemVuLkFwcGxpY2F0aW9ucy5Db21wb25lbnRCYXNlZC5Db21tb24uQmFzZUNvbXBvbmVudC5tZFwiPlRpemVuLkFwcGxpY2F0aW9ucy5Db21wb25lbnRCYXNlZC5Db21tb24uQmFzZUNvbXBvbmVudDxcL2E+IGNsYXNzPFwvbGk+XG48XC91bD5cbjxcL2xpPlxuPFwvdWw+XG4iLCJ0YWJsZV9vZl9jb250ZW50IjoiPHVsIGNsYXNzPVwidGFibGUtb2YtY29udGVudHNcIj5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtYXBwbGljYXRpb24tc3RhdGVzXCI+QXBwbGljYXRpb24gc3RhdGVzPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtYXBwbGljYXRpb24tZXZlbnQtY2FsbGJhY2tzXCI+QXBwbGljYXRpb24gZXZlbnQgY2FsbGJhY2tzPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtY29tcG9uZW50cy1zdGF0ZXMtYW5kLWV2ZW50LWNhbGxiYWNrc1wiPkNvbXBvbmVudCdzIHN0YXRlcyBhbmQgZXZlbnQgY2FsbGJhY2tzPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZnJhbWUtY29tcG9uZW50LXN0YXRlc1wiPkZyYW1lIGNvbXBvbmVudCBzdGF0ZXM8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1mcmFtZS1jb21wb25lbnQtZXZlbnQtY2FsbGJhY2tzXCI+RnJhbWUgY29tcG9uZW50IGV2ZW50IGNhbGxiYWNrczxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXNlcnZpY2UtY29tcG9uZW50LXN0YXRlc1wiPlNlcnZpY2UgY29tcG9uZW50IHN0YXRlczxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXNlcnZpY2UtY29tcG9uZW50LWV2ZW50LWNhbGxiYWNrc1wiPlNlcnZpY2UgY29tcG9uZW50IGV2ZW50IGNhbGxiYWNrczxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXdpZGdldC1jb21wb25lbnQtc3RhdGVzXCI+V2lkZ2V0IGNvbXBvbmVudCBzdGF0ZXM8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC13aWRnZXQtY29tcG9uZW50LWV2ZW50LWNhbGxiYWNrc1wiPldpZGdldCBjb21wb25lbnQgZXZlbnQgY2FsbGJhY2tzPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtYXBwbGljYXRpb24tYXR0cmlidXRlc1wiPkFwcGxpY2F0aW9uIGF0dHJpYnV0ZXM8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1wcmVyZXF1aXNpdGVzXCI+UHJlcmVxdWlzaXRlczxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXN0YXJ0LWNvbXBvbmVudC1iYXNlZC1hcHBsaWNhdGlvblwiPlN0YXJ0IGNvbXBvbmVudCBiYXNlZCBhcHBsaWNhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LW1hbmFnZS1mcmFtZS1jb21wb25lbnRcIj5NYW5hZ2UgZnJhbWUgY29tcG9uZW50PFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtbWFuYWdlLXNlcnZpY2UtY29tcG9uZW50XCI+TWFuYWdlIHNlcnZpY2UgY29tcG9uZW50PFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtbWFuYWdlLXdpZGdldC1jb21wb25lbnRcIj5NYW5hZ2Ugd2lkZ2V0IGNvbXBvbmVudDxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWxhdW5jaC1jb21wb25lbnQtYmFzZWQtYXBwbGljYXRpb25cIj5MYXVuY2ggY29tcG9uZW50IGJhc2VkIGFwcGxpY2F0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtcmVsYXRlZC1pbmZvcm1hdGlvblwiPlJlbGF0ZWQgaW5mb3JtYXRpb248XC9hPjxcL2xpPlxuPFwvdWw+XG4iLCJ0aXRsZSI6IkNvbXBvbmVudCBCYXNlZCBBcHBsaWNhdGlvbiIsInJhdyI6bnVsbH0seyJjbGFzcyI6IkFwcFxcU2VydmljZXNcXERvY3VtZW50YXRpb25cXERhdGFcXFJlbmRlcmVkTWFya2Rvd24iLCJzIjoid3JibCJ9XX0seyJzIjoiYXJyIn1dfSwibWVtbyI6eyJpZCI6IkdUdDg5OTM0VzQ4enpJMHVPdmdhIiwibmFtZSI6Il9fbW91bnRQYXJhbXNDb250YWluZXIiLCJwYXRoIjoiZG9jc1wvYXBwbGljYXRpb25cL2RvdG5ldFwvZ3VpZGVzXC9hcHBsaWNhdGlvbnNcL3VpYXBwbGljYXRpb25cL2NvbXBvbmVudC1iYXNlZC1hcHAiLCJtZXRob2QiOiJHRVQiLCJyZWxlYXNlIjoiYS1hLWEifSwiY2hlY2tzdW0iOiI3N2U5OTk2MGExZDYwOGE2ZjdjODcyOGJjY2U3YzhiM2JhMThjNWFkNjBjNzI4Mzk4ZThmNzAyNjhhM2RkZDY3In0=')" >

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.