TextLabel/a> is a class that displays a short text string. The <code>Tizen.NUI.BaseComponents<\/code> namespace and <code>Tizen.NUI<\/code> assembly contains the class:<\/p>\n<code class=\"language-xaml\">xmlns:base="clr-namespace:Tizen.NUI.BaseComponents;assembly=Tizen.NUI"\n<\/code>\n<p>The <code>TextLabel<\/code> class is lightweight, non-editable, and does not respond to user input. Text labels support multiple languages and scripts including right-to-left scripts such as Arabic. For more information on how to display a text using a text label, see <a href=https://samsungtizenos.com/"..//repos//tizen-docs//docs//application//dotnet//guides//user-interface//nui//get-started//first-app.md/">NUI hello world tutorial<\/a>.<\/p>\n<p><strong>Figure: Text label positioned to top left<\/strong><\/p>\n<p><img src=https://samsungtizenos.com/"media//TextLabelTopLeft.png/" alt=\"Text label example, positioned to top left\" \/><\/p>\n<p><a name=\"create\"><\/a><\/p>\n<h3 id=\"content-create-textlabel\"><a href=https://samsungtizenos.com/"#content-create-textlabel\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Create TextLabel<\/h3>\n<p>To create a text label, follow the steps below:<\/p>\n<ol>\n<li>\n<p>Create an instance of the <code>TextLabel<\/code> class and define the label text as a parameter. To make text visible, set the <code>TextColor<\/code> property to <code>Color.White<\/code>:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" Text="Hello World" TextColor="White"\/>\n<\/code>\n<p>You can also create the <code>TextLabel<\/code> class instance separately and define the label text by setting its <code>Text<\/code> property:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt"\/>\n<\/code>\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\">txt.Text <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"Hello World"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<div class=\"md-alert md-alert-caution\">\n<span><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z\"><\/path><\/svg>Caution<\/span>\n<p>To display the label properly, the <code>Text<\/code> property must be a UTF-8 string. Any <code>CR+LF<\/code> new line characters are replaced by <code>LF<\/code>.<\/p>\n<\/div>\n<\/li>\n<li>\n<p>Define the label position on-screen with the <code>ParentOrigin<\/code> property of the <code>TextLabel<\/code> class:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" ParentOrigin="TopLeft"\/>\n<\/code>\n<\/li>\n<\/ol>\n<p><a name=\"font\"><\/a><\/p>\n<h3 id=\"content-set-font-of-textlabel\"><a href=https://samsungtizenos.com/"#content-set-font-of-textlabel\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Set font of TextLabel<\/h3>\n<p>You can request a specific font using the <code>FontFamily<\/code>, the <code>FontStyle<\/code>, and the <code>PointSize<\/code> properties of the <code>TextLabel<\/code> class. The properties are described below:<\/p>\n<ul>\n<li>\n<p><code>FontFamily<\/code> is a string with the font family name, such as <code>FreeSerif<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>FontStyle<\/code> is a JSON-formatted string with the font style. The following list describes some possible keys and common values for them:<\/p>\n<ul>\n<li>\n<p>The <code>width<\/code> key defines the width occupied by each glyph. Some commonly used values include <code>condensed<\/code>, <code>semiCondensed<\/code>, <code>normal<\/code>, <code>semiExpanded<\/code>, and <code>expanded<\/code>.<\/p>\n<\/li>\n<li>\n<p>The <code>weight<\/code> key defines the thickness or darkness of the glyphs. Some commonly used values include <code>thin<\/code>, <code>light<\/code>, <code>normal<\/code>, <code>regular<\/code>, <code>medium<\/code>, and <code>bold<\/code>.<\/p>\n<\/li>\n<li>\n<p>The <code>slant<\/code> key defines whether to use italics. Some commonly used values include <code>normal<\/code>, <code>roman<\/code>, <code>italic<\/code>, and <code>oblique<\/code>.<\/p>\n<div class=\"md-alert md-alert-note\">\n<span><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><path d=\"M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z\"\/><\/svg>Note<\/span>\n<p>Usually <code>italic<\/code> is a separate font, while <code>oblique<\/code> is generated by applying a slant to the <code>normal<\/code> font.<\/p>\n<\/div>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><code>PointSize<\/code> is a type <code>float<\/code>. To calculate the point size from the height in pixels, use the following formula, where <code>vertical_dpi<\/code> is the vertical resolution of a device in dots per inch:<\/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\">point_size <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">72<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">*<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> pixels <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">\/<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> vertical_dpi;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<\/ul>\n<p>The following example code specifies the font properties:<\/p>\n<p><strong>Figure: Text with specifed font properties<\/strong><\/p>\n<p><img src=https://samsungtizenos.com/"media//textFontStyle.png/" alt=\"Font styled text\" \/><\/p>\n<code class=\"language-xaml\"> <base:TextLabel x:Name="txt" Text="Hello world" TextColor="White" FontFamily="FreeSerif" PointSize="12">\n <TextLabel.FontStyle>\n <PropertyMap>\n <KeyValue Key="width" Value="expanded" \/>\n <KeyValue Key="weight" Value="bold" \/>\n <KeyValue Key="slant" Value="italic" \/>\n <\/PropertyMap>\n <\/TextLabel.FontStyle>\n <\/TextLabel>\n<\/code>\n<p>If no font is specified, default styles are used, and a suitable font for displaying the text label is automatically selected from the platform. However, the automatically selected font may not render all the characters contained within the text label. For example, Latin fonts often do not provide Arabic glyphs.<\/p>\n<h3 id=\"content-set-font-styles-of-textlabel\"><a href=https://samsungtizenos.com/"#content-set-font-styles-of-textlabel\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Set font styles of TextLabel<\/h3>\n<p>Setting a font size programmatically is not ideal for applications that support multiple screen resolutions, and for platforms that support multiple logical font sizes. In addition, making systemwide changes to your font settings override the font sizes that have been programmatically set.<\/p>\n<p>A more flexible approach is to prepare various JSON stylesheets and request a different style for each platform. To change the font style for standard text controls, create the <code>theme.json<\/code> file in the resources directory and use the following JSON syntax:<\/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\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"styles"<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">:<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"CustomLabel"<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">:<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"fontFamily"<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">:<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"FreeSerif"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"fontStyle"<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">:<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"width"<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">:<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"expanded"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"weight"<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">:<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"bold"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"slant"<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">:<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"italic"<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> },<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"pointSize"<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">:<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">12<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"textColor"<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">:<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> [ <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">1<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">1<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">1<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">1<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> ]<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<p><a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.NUI.StyleManager.md/">StyleManager/a> provides the <code>ApplyTheme<\/code> method, where path to stylesheet is passed. Since stylesheet is loaded, <code>CustomLabel<\/code> style can be used on the created label by using the <code>SetStyleName<\/code> method of <code>TextLabel<\/code>:<\/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\">Tizen.NUI.StyleManager.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Get<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">().<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">ApplyTheme<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(DirectoryInfo.Resource <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">+<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"\/theme.json"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">TextLabel<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">label<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">new<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">TextLabel<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"Hello World"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">label.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">SetStyleName<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"CustomLabel"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">Window.Instance.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Add<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(label);<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<p>However, the same <code>pointSize<\/code> is unlikely to be suitable for all text controls in an application. To define custom styles for existing controls, set a style name for each case, and provide a style override in a JSON stylesheet.<\/p>\n<p>You can provide further flexibility for the various screens by mapping the logical size to a physical size in the stylesheet.<\/p>\n<h3 id=\"content-align-text-in-textlabel\"><a href=https://samsungtizenos.com/"#content-align-text-in-textlabel\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Align text in TextLabel<\/h3>\n<p>To align the text in a text label, follow these steps:<\/p>\n<ol>\n<li>\n<p>To enable text wrapping, use the <code>MultiLine<\/code> property of the <code>TextLabel<\/code> class:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" Text="Hello world" MultiLine="True"\/>\n<\/code>\n<\/li>\n<li>\n<p>To align the text horizontally to the beginning, center, or end of the available area, set the <code>HorizontalAlignment<\/code> property of the <code>TextLabel<\/code> class with the corresponding value of the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.NUI.HorizontalAlignment.md/">HorizontalAlignment/a> enumeration:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" Text="Hello world" HorizontalAlignment="Begin"\/>\n<base:TextLabel x:Name="txt" Text="Hello world" HorizontalAlignment="Center"\/>\n<base:TextLabel x:Name="txt" Text="Hello world" HorizontalAlignment="End"\/>\n<\/code>\n<p>The following table summarizes the available values of the <code>HorizontalAlignment<\/code> enumeration for both left-to-right (Latin) and right-to-left (Arabic) script. In addition, for the illustrated examples, it is assumed that the label size is greater than the minimum required size:<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Alignment<\/th>\n<th>Left-to-right script example<\/th>\n<th>Right-to-left script example<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>Begin<\/code><\/td>\n<td><img src=https://samsungtizenos.com/"media//LatinBegin.png/" alt=\"Latin script aligned to beginning\" \/><\/td>\n<td><img src=https://samsungtizenos.com/"media//ArabicBegin.png/" alt=\"Arabic script aligned to beginning\" \/><\/td>\n<\/tr>\n<tr>\n<td><code>Center<\/code><\/td>\n<td><img src=https://samsungtizenos.com/"media//LatinCenter.png/" alt=\"Latin script aligned to center\" \/><\/td>\n<td><img src=https://samsungtizenos.com/"media//ArabicCenter.png/" alt=\"Arabic script aligned to center\" \/><\/td>\n<\/tr>\n<tr>\n<td><code>End<\/code><\/td>\n<td><img src=https://samsungtizenos.com/"media//LatinEnd.png/" alt=\"Latin script aligned to end\" \/><\/td>\n<td><img src=https://samsungtizenos.com/"media//ArabicEnd.png/" alt=\"Arabic script aligned to end\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<\/li>\n<\/ol>\n<h3 id=\"content-utf-16-or-utf-32-character-encoding\"><a href=https://samsungtizenos.com/"#content-utf-16-or-utf-32-character-encoding\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>UTF-16 or UTF-32 character encoding<\/h3>\n<p>The text property can accept UTF-16 or UTF-32 character encoding:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt"\/>\n<\/code>\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\">txt.Text <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">\\U0001f601<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">; <\/span><span style=\"color:#6A737D;--shiki-dark:#6A737D\">\/\/UTF-32<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">txt.Text <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">+=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">\\ud83d\\ude01<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">; <\/span><span style=\"color:#6A737D;--shiki-dark:#6A737D\">\/\/UTF-16<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<h3 id=\"content-use-decorations-for-textlabel\"><a href=https://samsungtizenos.com/"#content-use-decorations-for-textlabel\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Use decorations for TextLabel<\/h3>\n<p>To use the text decoration, set the applicable property as described below:<\/p>\n<ol>\n<li>\n<p>To add a drop shadow to the text, set the <code>Shadow<\/code> property:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" Text="Text with Color Shadow"\/>\n<\/code>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PropertyMap<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">shadow<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">new<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PropertyMap<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">shadow.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Add<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"offset"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">new<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PropertyValue<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">new<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Vector2<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">2<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">2<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">)));<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">shadow.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Add<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"color"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">new<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PropertyValue<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(Color.Red));<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">txt.Shadow <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> shadow;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<p><strong>Figure: Text with red shadow<\/strong><\/p>\n<p><img src=https://samsungtizenos.com/"media//TextWithColorShadow.png/" alt=\"Text with color shadow\" \/><\/p>\n<p>Shadow parameters can also be set using a JSON string.<\/p>\n<\/li>\n<li>\n<p>To underline the text label, set the <code>Underline<\/code> property:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" Text="Text with Underline" TextColor="White">\n <base:TextLabel.Underline>\n <PropertyMap>\n <KeyValue Key="enable" Value="True"\/>\n <\/PropertyMap>\n <base:TextLabel.Underline>\n<\/base:TextLabel>\n\n<\/code>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PropertyMap<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">underline<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">new<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PropertyMap<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">underline.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Add<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"enable"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">new<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PropertyValue<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"True"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">));<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">txt.Underline <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> underline;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<p>By default, the underline height is based on the font metrics and the minimum height is one pixel. The underline color is based on the text color. For example, the following text figures are in one pixel height and the color is the same as the text color:<\/p>\n<p><strong>Figure: Text with underline<\/strong><\/p>\n<p><img src=https://samsungtizenos.com/"media//TextWithUnderline.png/" alt=\"Text with underline\" \/><\/p>\n<p>You can set the underline color and height using a property map:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" Text="Text with Color Underline" TextColor="White">\n <base:TextLabel.Underline>\n <PropertyMap>\n <KeyValue Key="enable" Value="True"\/>\n <KeyValue Key="color" Value="Green"\/>\n <KeyValue Key="height" Value="2.0"\/>\n <\/PropertyMap>\n <base:TextLabel.Underline>\n<\/base:TextLabel>\n<\/code>\n<p><strong>Figure: Text with colored underline<\/strong><\/p>\n<p><img src=https://samsungtizenos.com/"media//TextWithColorUnderline.png/" alt=\"Text with color underline\" \/><\/p>\n<\/li>\n<li>\n<p>To enable text scrolling, set the <code>EnableAutoScroll<\/code> property to <code>True<\/code>:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" EnableAutoScroll="True">\n\n<\/code>\n<p>After scrolling is enabled, scrolling continues until the loop count is reached or <code>EnableAutoScroll<\/code> is set to <code>False<\/code>. When <code>EnableAutoScroll<\/code> is set to <code>False<\/code>, the text completes its current scrolling loop before it stops scrolling.<\/p>\n<p><strong>Figure: Auto-scrolling text<\/strong><\/p>\n<p><img src=https://samsungtizenos.com/"media//AutoScroll.gif/" alt=\"Auto-scrolling text\" \/><\/p>\n<p>Auto-scrolling enables text to scroll within the text table. You can use it to show the full content if the text exceeds the boundary of the control. You can also scroll text that is smaller than the control. To ensure that the same part of the text is not visible in more than one place at the same time, you can configure the gap between repetitions. The left-to-right text always scrolls left and the right-to-left text always scrolls right.<\/p>\n<p>You can set the scroll speed, gap, and loop count in the stylesheet or using the following properties:<\/p>\n<ul>\n<li><code>AutoScrollSpeed<\/code> property defines the scrolling speed in pixels per second.<\/li>\n<li><code>AutoScrollLoopCount<\/code> property specifies the number of times the text completes a full scroll cycle. For example, if this property is set to <code>3<\/code>, the text scrolls across the control three times and then stops. If this property is set to <code>0<\/code>, the text scroll continues until <code>EnableAutoScroll<\/code> is set to <code>False<\/code>.\n<ul>\n<li>If <code>EnableAutoScroll<\/code> is set to <code>False<\/code>, the text stops to scroll and maintains the original loop count value for the next start.<\/li>\n<\/ul>\n<\/li>\n<li><code>AutoScrollGap<\/code> property specifies the amount of whitespace in pixels. The whitespace gets displayed before the scrolling text appears again. This gap automatically increases, if the given value is not large enough to prevent the same part of the text from appearing twice at the same time.<\/li>\n<\/ul>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" Text="Hello World"\n EnableAutoScroll="True" AutoScrollSpeed="100"\n AutoScrollLoopCount="0" AutoScrollGap="250" TextColor="White"\/>\n<\/code>\n<p>Auto-scrolling does not work with multi-line text; it is shown with the <code>Begin<\/code> alignment instead.<\/p>\n<\/li>\n<\/ol>\n<h3 id=\"content-use-markup-to-style-textlabel\"><a href=https://samsungtizenos.com/"#content-use-markup-to-style-textlabel\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Use markup to style TextLabel<\/h3>\n<p>You can use markup elements to change the style of the text. Since the text controls do not process markup elements by default, you must first set the <code>EnableMarkup<\/code> property of the <code>TextLabel<\/code> class to <code>True<\/code>:<\/p>\n<code class=\"language-xaml\"> <base:TextLabel x:Name="txt" EnableMarkup="True"\/>\n<\/code>\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 markup processor does not check for markup validity, and styles are rendered in priority order. Incorrect or incompatible elements can cause the text to be rendered incorrectly.<\/p>\n<\/div>\n<p>The following markup elements are currently supported:<\/p>\n<ul>\n<li>\n<p><code><color><\/code><\/p>\n<p>Sets the color for the characters inside the element. Use the <code>value<\/code> attribute to define the color. The supported attribute values are <code>red<\/code>, <code>green<\/code>, <code>blue<\/code>, <code>yellow<\/code>, <code>magenta<\/code>, <code>cyan<\/code>, <code>white<\/code>, <code>black<\/code>, and <code>transparent<\/code>. Web colors and colors represented in 32-bit hexadecimal <code>0xAARRGGBB<\/code> format are also supported.<\/p>\n<p>The following examples show text in red color:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" EnableMarkup="True" Text="<color value='red'>Red Text<\/color>"\/>\n<\/code>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" EnableMarkup="True" Text="<color value='0xFFFF0000'>Red Text<\/color>"\/>\n<\/code>\n<\/li>\n<li>\n<p><code><font><\/code><\/p>\n<p>Sets the font values for the characters inside the element.<\/p>\n<p>The following attributes are supported:<\/p>\n<ul>\n<li><code>family<\/code>: Font name<\/li>\n<li><code>size<\/code>: Font size in points<\/li>\n<li><code>weight<\/code>: Font weight<\/li>\n<li><code>width<\/code>: Font width<\/li>\n<li><code>slant<\/code>: Font slant<\/li>\n<\/ul>\n<p>For more information on the attribute values, see <a href=https://samsungtizenos.com/"#font\">select font<\/a>.<\/p>\n<p>The following example sets the font family and weight:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" EnableMarkup="True"\n Text="<font family='SamsungSans' weight='bold'>Hello world<\/font>"\/>\n<\/code>\n<\/li>\n<li>\n<p><code><b><\/code><\/p>\n<p>Sets Bold decoration for the characters inside the element.<\/p>\n<p>The following example shows how to apply it:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" EnableMarkup="True"\n Text="<b>Hello world<\/b>"\/>\n<\/code>\n<\/li>\n<li>\n<p><code><i><\/code><\/p>\n<p>Sets Italic decoration for the characters inside the element.<\/p>\n<p>The following example shows how to apply it:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" EnableMarkup="True"\n Text="<i>Hello world<\/i>"\/>\n<\/code>\n<\/li>\n<li>\n<p><code><background><\/code><\/p>\n<p>Sets the background color for the characters inside the element.<\/p>\n<p>The following example shows how to apply it:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" EnableMarkup="True"\n Text="<background color='yellow'>Hello world<\/background>"\/>\n<\/code>\n<\/li>\n<li>\n<p><code><u><\/code><\/p>\n<p>Sets the underlined values for the characters inside the element.<\/p>\n<p>The following attributes are supported:<\/p>\n<ul>\n<li><code>color<\/code>: The color of underline.<\/li>\n<li><code>height<\/code>: The height of underline.<\/li>\n<li><code>type<\/code>: The type of underline. The supported attribute values are <code>solid<\/code>, <code>dashed<\/code> and <code>double<\/code>.<\/li>\n<li><code>dash-gap<\/code>: The gap in pixels between the dashes of the dashed underline. Only valid when "DASHED" underline type is used.<\/li>\n<li><code>dash-width<\/code>: The width in pixels of the dashes of the dashed underline. Only valid when "DASHED" underline type is used.<\/li>\n<\/ul>\n<p>The following example shows how to apply it:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" EnableMarkup="True"\n Text="<u color='green' height='2.0f' type='dashed' dash-gap='2.0f' dash-width='3.0f'>Hello world<\/u>"\/>\n<\/code>\n<\/li>\n<li>\n<p><code><s><\/code><\/p>\n<p>Sets the strikethrough values for the characters inside the element.<\/p>\n<p>The following attributes are supported:<\/p>\n<ul>\n<li><code>color<\/code>: The color of strikethrough.<\/li>\n<li><code>height<\/code>: The height of strikethrough.<\/li>\n<\/ul>\n<p>The following example shows how to apply it:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" EnableMarkup="True"\n Text="<s color='green' height='2.0f' >Hello world<\/s>"\/>\n<\/code>\n<\/li>\n<li>\n<p><code><char-spacing><\/code><\/p>\n<p>Sets the character spacing values for the characters inside the element.<\/p>\n<p>Use the <code>value<\/code> attribute to define the spaces between characters in Pixels.<\/p>\n<p>A positive value will make the characters far apart (expanded) and a negative value will bring them closer (condensed).<\/p>\n<p>The following example shows how to apply it:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" EnableMarkup="True"\n Text="<char-spacing value='5.0f'>Hello world<\/char-spacing>"\/>\n<\/code>\n<\/li>\n<li>\n<p><code><p><\/code><\/p>\n<p>Use paragraph tag to set many styles on a paragraph's level for the lines inside the element.<\/p>\n<p>The following attributes are supported:<\/p>\n<ul>\n<li><code>align<\/code>: Use the <code>align<\/code> attribute to define the horizontal alignment of a paragraph. The supported attribute values are <code>begin<\/code>, <code>center<\/code> and <code>end<\/code> .<\/li>\n<li><code>rel-line-height<\/code>: The relative height of the line (a factor that will be multiplied by text height).<\/li>\n<\/ul>\n<p>The following example shows how to apply alignment:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" EnableMarkup="True"\n Text="text outside<p align='end'>Paragraph end<\/p>text outside<p align='center'>Paragraph center<\/p>text outside<p align='begin' >Paragraph begin<\/p>"\/>\n<\/code>\n<p>The following example shows how to apply relative height of line:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" EnableMarkup="True"\n Text="<p>line 1<\/p><p rel-line-height=0.5>line\\n2<\/p>line 3<p rel-line-height=3>line\\n4<\/p>line 5"\/>\n<\/code>\n<\/li>\n<li>\n<p><code><item><\/code><\/p>\n<p>Defines an embedded item within the text.<\/p>\n<p>The following attributes are supported:<\/p>\n<ul>\n<li><code>url<\/code>: The URL path of the image.<\/li>\n<li><code>width<\/code>: The width of the item.<\/li>\n<li><code>height<\/code>: The height of the item.<\/li>\n<li><code>color-blending<\/code>: Use the color-blending attribute to define whether the color of the image is multiplied by the color of the text.<\/li>\n<\/ul>\n<p>The following example shows how to apply it:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" EnableMarkup="True"\n Text="<item 'width'=26 'height'=26 'url'='path\/image.png' 'color-blending'='multiply'\/>"\/>\n<\/code>\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 URL of the image is optional. If there is no image the layout engine will use the width and height to create a space inside the text. This gap can be filled later.<\/p>\n<\/div>\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>A color blending mode can be set. The default is NONE, the image will use its own color. If MULTIPLY is set, the color of the image will be multiplied by the color of the text.<\/p>\n<\/div>\n<\/li>\n<li>\n<p><code><span><\/code><\/p>\n<p>Use span tag to set many styles on character's level for the characters inside the element.<\/p>\n<p>The following attributes are supported:<\/p>\n<ul>\n<li><code>font-family<\/code>: The font family attribute.<\/li>\n<li><code>font-size<\/code>: The font size attribute.<\/li>\n<li><code>font-width<\/code>: The font width attribute.<\/li>\n<li><code>font-slant<\/code>: The font slant attribute.<\/li>\n<li><code>text-color<\/code>: The frontcolor value attribute.<\/li>\n<li><code>background-color<\/code>: The undeline color attribute.<\/li>\n<li><code>u-color<\/code>: The undeline height attribute.<\/li>\n<li><code>u-height<\/code>: The font slant attribute.<\/li>\n<li><code>u-type<\/code>: The undeline type attribute.<\/li>\n<li><code>u-dash-gap<\/code>: The undeline dash-gap attribute.<\/li>\n<li><code>u-dash-width<\/code>: The undeline dash-width attribute.<\/li>\n<li><code>s-color<\/code>: The strikethrough color attribute.<\/li>\n<li><code>s-height<\/code>: The strikethrough height attribute.<\/li>\n<li><code>char-space-value<\/code>: The character-spacing value attribute.<\/li>\n<\/ul>\n<p>The following example shows how to apply it:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" EnableMarkup="True"\n Text="<span font-size='20' font-family='DejaVu Sans' font-width='condensed' font-slant='italic' text-color='green' char-space-value='10.0f'>Hello world<\/span>"\/>\n<\/code>\n<\/li>\n<\/ul>\n<h3 id=\"content-use-markup-to-represent-encoded-characters\"><a href=https://samsungtizenos.com/"#content-use-markup-to-represent-encoded-characters\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Use markup to represent encoded characters<\/h3>\n<p>Markup text is not allowed to contain some characters unless they are representing tags or entities such as "<", ">", or "&". To include these characters as a part of the text, you must use reserved entities such as <code>&lt;<\/code>, <code>&gt;<\/code>, or <code>&amp;<\/code>. The following example uses reserved entities:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" EnableMarkup="True" Text="&lt;&gt;"\/>\n<\/code>\n<p>Markup text can include character with UTF-32 representation as entities contain decimal or hexadecimal values.\nTo represent decimal value, you can use: <code>&#<\/code> + <code>utf32_decimal_value<\/code> + <code>;<\/code>\nTo represent hexadecimal value, you can use: <code>&#x<\/code> + <code>utf32_hexadecimal_value<\/code> + <code>;<\/code>\nThe following example uses UTF-32 entities:<\/p>\n<code class=\"language-xaml\"><base:TextLabel x:Name="txt" EnableMarkup="True" Text="&#9786; &#x263a;"\/>\n<\/code>\n<h3 id=\"content-textlabel-properties\"><a href=https://samsungtizenos.com/"#content-textlabel-properties\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>TextLabel properties<\/h3>\n<p>For text decorations, the <code>TextLabel<\/code> class provides several properties. All the properties are editable and none of them are animatable:<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Property<\/th>\n<th>Type<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>Text<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the text to display in UTF-8 format.<\/td>\n<\/tr>\n<tr>\n<td><code>FontFamily<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the requested font family.<\/td>\n<\/tr>\n<tr>\n<td><code>FontStyle<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the requested font style.<\/td>\n<\/tr>\n<tr>\n<td><code>MultiLine<\/code><\/td>\n<td>Boolean<\/td>\n<td>Specifies whether or not to use the multi-line layout option.<\/td>\n<\/tr>\n<tr>\n<td><code>HorizontalAlignment<\/code><\/td>\n<td>HorizontalAlignment<\/td>\n<td>Specifies the horizontal line alignment.<\/td>\n<\/tr>\n<tr>\n<td><code>VerticalAlignment<\/code><\/td>\n<td>VerticalAlignment<\/td>\n<td>Specifies the vertical line alignment.<\/td>\n<\/tr>\n<tr>\n<td><code>TextColor<\/code><\/td>\n<td>Color<\/td>\n<td>Specifies the color of the text.<\/td>\n<\/tr>\n<tr>\n<td><code>Shadow<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the shadow of the text.<\/td>\n<\/tr>\n<tr>\n<td><code>Underline<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies underline of the text.<\/td>\n<\/tr>\n<tr>\n<td><code>EnableMarkup<\/code><\/td>\n<td>Boolean<\/td>\n<td>Specifies whether to enable or disable the markup string to process text within the markup tags using DALi application.<strong>Note<\/strong>: By default, the markup string is disabled.<\/td>\n<\/tr>\n<tr>\n<td><code>EnableAutoScroll<\/code><\/td>\n<td>Boolean<\/td>\n<td>Specifies whether to enable or disable the auto scrolling.<\/td>\n<\/tr>\n<tr>\n<td><code>AutoScrollSpeed<\/code><\/td>\n<td>Integer<\/td>\n<td>Specifies the scrolling speed in pixels per second.<\/td>\n<\/tr>\n<tr>\n<td><code>AutoScrollLoopCount<\/code><\/td>\n<td>Integer<\/td>\n<td>Specifies the number of complete loops to scroll, when scrolling is enabled.<\/td>\n<\/tr>\n<tr>\n<td><code>AutoScrollGap<\/code><\/td>\n<td>Float<\/td>\n<td>Specifies the gap before scrolling wraps.<\/td>\n<\/tr>\n<tr>\n<td><code>LineSpacing<\/code><\/td>\n<td>Float<\/td>\n<td>Specifies the default spacing between lines in points.<\/td>\n<\/tr>\n<tr>\n<td><code>Underline<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the default underline parameters.<\/td>\n<\/tr>\n<tr>\n<td><code>Shadow<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the default shadow parameters.<\/td>\n<\/tr>\n<tr>\n<td><code>Emboss<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the default emboss parameters.<\/td>\n<\/tr>\n<tr>\n<td><code>Outline<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the default outline parameters.<\/td>\n<\/tr>\n<tr>\n<td><code>PixelSize<\/code><\/td>\n<td>Float<\/td>\n<td>Specifies the size of font in pixels.<\/td>\n<\/tr>\n<tr>\n<td><code>Ellipsis<\/code><\/td>\n<td>Boolean<\/td>\n<td>Specifies whether to enable or disable ellipsis, if required.<\/td>\n<\/tr>\n<tr>\n<td><code>AutoScrollLoopDelay<\/code><\/td>\n<td>Float<\/td>\n<td>Specifies the auto-scroll loop delay.<\/td>\n<\/tr>\n<tr>\n<td><code>AutoScrollStopMode<\/code><\/td>\n<td>AutoScrollStopMode<\/td>\n<td>Specifies the auto-scroll stop mode.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<p><a name=\"textField\"><\/a><\/p>\n<h2 id=\"content-textfield\"><a href=https://samsungtizenos.com/"#content-textfield\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>TextField<\/h2>\n<p>The <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.NUI.BaseComponents.TextField.md/">TextField/a> class provides a control that allows single line editable text field.<\/p>\n<p><strong>Figure: TextField<\/strong><\/p>\n<p><img src=https://samsungtizenos.com/"media//textfield.png/" alt=\"TextField\" \/><\/p>\n<h3 id=\"content-textfield-events\"><a href=https://samsungtizenos.com/"#content-textfield-events\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>TextField events<\/h3>\n<p>The following table lists the basic signals provided by the <code>TextField<\/code> class:<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Input signal<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>TextChanged<\/code><\/td>\n<td>Emitted when the text changes.<\/td>\n<\/tr>\n<tr>\n<td><code>MaxLengthReached<\/code><\/td>\n<td>Emitted when the inserted text exceeds the maximum character limit.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<h3 id=\"content-create-textfield\"><a href=https://samsungtizenos.com/"#content-create-textfield\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Create TextField<\/h3>\n<p>Before the text is entered, the <code>TextField<\/code> class displays a placeholder text. An alternative placeholder is displayed when <code>TextField<\/code> gets the keyboard focus. For example, the <code>TextField<\/code> that is used to enter a username initially displays the text <code>Unknown Name<\/code> and then the text <code>Enter Name<\/code>, when the cursor is visible.<\/p>\n<p>The following example illustrates the creation of a <code>TextField<\/code> object:<\/p>\n<code class=\"language-xaml\"><base:TextField x:Name="field" BackgroundColor="White"\n PlaceholderText="Unknown Name" PlaceholderTextFocused="Enter Name"\/>\n<\/code>\n<p>When the <code>TextField<\/code> is tapped, it automatically gets the keyboard focus. Key events correspond to entering the text. Additionally, the placeholder text is removed as soon as the text is entered. The text entered can be retrieved by using the <code>TEXT<\/code> property:<\/p>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#D73A49;--shiki-dark:#F97583\">string<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">fieldTextString<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> field.Text;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<h3 id=\"content-align-text-in-textfield\"><a href=https://samsungtizenos.com/"#content-align-text-in-textfield\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Align text in TextField<\/h3>\n<p>The <code>TextField<\/code> class displays a single line of text that scrolls in either of the following case:<\/p>\n<ul>\n<li>\n<p>If there is not enough space for the text to get displayed.<\/p>\n<\/li>\n<li>\n<p>If there is enough space, the text is aligned horizontally to the beginning, end, or center of the available area.<\/p>\n<\/li>\n<\/ul>\n<p>The following example illustrates text alignment:<\/p>\n<code class=\"language-xaml\"><base:TextField x:Name="field" HorizontalAlignment="Begin"\/>\n<\/code>\n<h3 id=\"content-use-input-properties-in-textfield\"><a href=https://samsungtizenos.com/"#content-use-input-properties-in-textfield\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Use input properties in TextField<\/h3>\n<p>To change the text settings for new input text, you can use the input properties of the <code>TextField<\/code> class, such as <code>InputColor<\/code>, <code>InputPointSize<\/code>, and so on.<\/p>\n<p>To use these properties there are some specific conditions. For instance, you can use these properties either when the <code>TextChanged<\/code> event occurs or when the <code>Clicked<\/code> event of button occurs.<\/p>\n<p>The following example illustrates how to use the <code>InputColor<\/code> property in a <code>TextField<\/code>:<\/p>\n<code class=\"language-xaml\"><base:TextField x:Name="field" TextChanged="OnTextChanged"\/>\n<\/code>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#D73A49;--shiki-dark:#F97583\">private<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">void<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">OnTextChanged<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">object<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">sender<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">TextField<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">TextCHangedEventArgs<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">e<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/ Do something in response to text change<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> e.TextField.InputColor <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> Color.Yellow;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<h3 id=\"content-textfield-properties\"><a href=https://samsungtizenos.com/"#content-textfield-properties\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>TextField properties<\/h3>\n<p>To change the look and feel of the text and text related elements, use the <code>TextField<\/code> properties.<\/p>\n<h3 id=\"content-use-decorations-for-textfield\"><a href=https://samsungtizenos.com/"#content-use-decorations-for-textfield\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Use decorations for TextField<\/h3>\n<p>For text decorations, the following <code>TextField<\/code> class properties are available. All properties are editable and none of them are animatable:<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Property<\/th>\n<th>Type<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>Text<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the text to display in UTF-8 format.<\/td>\n<\/tr>\n<tr>\n<td><code>PlaceholderText<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the text to display when the <code>TextField<\/code> is empty and inactive.<\/td>\n<\/tr>\n<tr>\n<td><code>PlaceholderTextFocused<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the text to display when the <code>TextField<\/code> is empty with key-input focus.<\/td>\n<\/tr>\n<tr>\n<td><code>FontFamily<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the requested font family.<\/td>\n<\/tr>\n<tr>\n<td><code>FontStyle<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the requested font style.<\/td>\n<\/tr>\n<tr>\n<td><code>PointSize<\/code><\/td>\n<td>Float<\/td>\n<td>Specifies the size of font in points.<\/td>\n<\/tr>\n<tr>\n<td><code>MaxLength<\/code><\/td>\n<td>Integer<\/td>\n<td>Specifies the maximum number of characters that can be inserted.<\/td>\n<\/tr>\n<tr>\n<td><code>ExceedPolicy<\/code><\/td>\n<td>Integer<\/td>\n<td>Specifies how the text is truncated when it does not fit.<\/td>\n<\/tr>\n<tr>\n<td><code>HorizontalAlignment<\/code><\/td>\n<td>HorizontalAlignment<\/td>\n<td>Specifies the horizontal line alignment.<\/td>\n<\/tr>\n<tr>\n<td><code>VerticalAlignment<\/code><\/td>\n<td>VerticalAlignment<\/td>\n<td>Specifies the vertical line alignment.<\/td>\n<\/tr>\n<tr>\n<td><code>TextColor<\/code><\/td>\n<td>Color<\/td>\n<td>Specifies the color of the text.<\/td>\n<\/tr>\n<tr>\n<td><code>PlaceholderTextColor<\/code><\/td>\n<td>Vector4<\/td>\n<td>Specifies the color of the placeholder text.<\/td>\n<\/tr>\n<tr>\n<td><code>PrimaryCursorColor<\/code><\/td>\n<td>Vector4<\/td>\n<td>Specifies the color that is applied to the primary cursor.<\/td>\n<\/tr>\n<tr>\n<td><code>SecondaryCursorColor<\/code><\/td>\n<td>Vector4<\/td>\n<td>Specifies the color that is applied to the secondary cursor.<\/td>\n<\/tr>\n<tr>\n<td><code>EnableCursorBlink<\/code><\/td>\n<td>Boolean<\/td>\n<td>Specifies whether to enable or disable the cursor blink.<\/td>\n<\/tr>\n<tr>\n<td><code>CursorBlinkInterval<\/code><\/td>\n<td>Float<\/td>\n<td>Specifies the time interval in seconds between the cursor on or off states.<\/td>\n<\/tr>\n<tr>\n<td><code>CursorBlinkDuration<\/code><\/td>\n<td>Float<\/td>\n<td>Specifies the time duration in seconds after which the cursor stops blinking.<\/td>\n<\/tr>\n<tr>\n<td><code>CursorWidth<\/code><\/td>\n<td>Integer<\/td>\n<td>Specifies the width of the cursor.<\/td>\n<\/tr>\n<tr>\n<td><code>GrabHandleImage<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the image to display for the grab handle.<\/td>\n<\/tr>\n<tr>\n<td><code>GrabHandlePressedImage<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the image to display when the grab handle is pressed.<\/td>\n<\/tr>\n<tr>\n<td><code>ScrollThreshold<\/code><\/td>\n<td>Float<\/td>\n<td>Specifies whether the horizontal scrolling will occur, if the cursor is closer to the control border.<\/td>\n<\/tr>\n<tr>\n<td><code>ScrollSpeed<\/code><\/td>\n<td>Float<\/td>\n<td>Specifies the scroll speed in pixels per second.<\/td>\n<\/tr>\n<tr>\n<td><code>SelectionHandleImageLeft<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the display image used for the left selection handle.<\/td>\n<\/tr>\n<tr>\n<td><code>SelectionHandleImageRight<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the display image used for the right selection handle.<\/td>\n<\/tr>\n<tr>\n<td><code>SelectionHandlePressedImageLeft<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the display image used when the left handle is pressed.<\/td>\n<\/tr>\n<tr>\n<td><code>SelectionHandlePressedImageRight<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the display image used when the right handle is pressed.<\/td>\n<\/tr>\n<tr>\n<td><code>SelectionHandleMarkerImageLeft<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the display image used for left selection handle marker.<\/td>\n<\/tr>\n<tr>\n<td><code>SelectionHandleMarkerImageRight<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the display image used for right selection handle marker.<\/td>\n<\/tr>\n<tr>\n<td><code>SelectionHighlightColor<\/code><\/td>\n<td>Vector4<\/td>\n<td>Specifies the selected highlight color.<\/td>\n<\/tr>\n<tr>\n<td><code>DecorationBoundingBox<\/code><\/td>\n<td>Rectangle<\/td>\n<td>Specifies the position of decoration such as handles and so on within the on-screen area.<\/td>\n<\/tr>\n<tr>\n<td><code>InputMethodSettings<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the settings related to the system input method, key, and value.<\/td>\n<\/tr>\n<tr>\n<td><code>InputColor<\/code><\/td>\n<td>Vector4<\/td>\n<td>Specifies the color of the new input text.<\/td>\n<\/tr>\n<tr>\n<td><code>EnableMarkup<\/code><\/td>\n<td>Boolean<\/td>\n<td>Specifies whether to enable or disable the markup string to process text within the markup tags using DALi application.<br><strong>Note<\/strong>: By default, the markup string is disabled.<\/td>\n<\/tr>\n<tr>\n<td><code>InputFontFamily<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the font family of the new input text.<\/td>\n<\/tr>\n<tr>\n<td><code>InputFontStyle<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the font style of the new input text.<\/td>\n<\/tr>\n<tr>\n<td><code>InputPointSize<\/code><\/td>\n<td>Float<\/td>\n<td>Specifies the font size of the new input text in points.<\/td>\n<\/tr>\n<tr>\n<td><code>Underline<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the default underline parameters.<\/td>\n<\/tr>\n<tr>\n<td><code>InputUnderline<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the underline parameters of the new input text.<\/td>\n<\/tr>\n<tr>\n<td><code>Shadow<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the default shadow parameters.<\/td>\n<\/tr>\n<tr>\n<td><code>InputShadow<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the shadow parameters of the new input text.<\/td>\n<\/tr>\n<tr>\n<td><code>Emboss<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the default emboss parameters.<\/td>\n<\/tr>\n<tr>\n<td><code>InputEmboss<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the emboss parameters of the new input text.<\/td>\n<\/tr>\n<tr>\n<td><code>Outline<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the default outline parameters.<\/td>\n<\/tr>\n<tr>\n<td><code>InputOutline<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the outline parameters of the new input text.<\/td>\n<\/tr>\n<tr>\n<td><code>HiddenInputSettings<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies hiding the input characters and showing default character for the password or pin entry.<\/td>\n<\/tr>\n<tr>\n<td><code>PixelSize<\/code><\/td>\n<td>Float<\/td>\n<td>Specifies the size of font in pixels.<\/td>\n<\/tr>\n<tr>\n<td><code>EnableSelection<\/code><\/td>\n<td>Boolean<\/td>\n<td>Specifies whether to enable or disable text selection.<\/td>\n<\/tr>\n<tr>\n<td><code>Placeholder<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the attributes of the <code>Placeholder<\/code> property. The attributes of this property are text, color, font family, font style, point size, and pixel size.<\/td>\n<\/tr>\n<tr>\n<td><code>Ellipsis<\/code><\/td>\n<td>Boolean<\/td>\n<td>Specifies whether to enable or disable ellipsis, if required.<\/td>\n<\/tr>\n<tr>\n<td><code>TranslatablePlaceholderText<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the <code>TranslatablePlaceholderText<\/code> property that sets the SID value.<\/td>\n<\/tr>\n<tr>\n<td><code>TranslatableText<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the <code>TranslatableText<\/code> property that sets the SID value.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<p><a name=\"textEditor\"><\/a><\/p>\n<h2 id=\"content-texteditor\"><a href=https://samsungtizenos.com/"#content-texteditor\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>TextEditor<\/h2>\n<p>The <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.NUI.BaseComponents.TextEditor.md/">TextEditor/a> class provides a control that allows multi-line text editing. It is similar to the <a href=https://samsungtizenos.com/"#textField\">TextField<\/a> control, where different formatting can be applied to different parts of the text. For example, you can change the font color, font style, point size, and font family.<\/p>\n<p>The <code>TextEditor<\/code> also supports markup, and text can be scrolled vertically within it.<\/p>\n<p><strong>Figure: TextEditor<\/strong><\/p>\n<p><img src=https://samsungtizenos.com/"media//dali_texteditor.png/" alt=\"TextEditor\" \/><\/p>\n<h3 id=\"content-texteditor-events\"><a href=https://samsungtizenos.com/"#content-texteditor-events\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>TextEditor events<\/h3>\n<p>The following table lists the basic signals provided by the <code>TextEditor<\/code> class:<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Input signal<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>TextChanged<\/code><\/td>\n<td>Emitted when the text changes.<\/td>\n<\/tr>\n<tr>\n<td><code>ScrollStateChanged<\/code><\/td>\n<td>Emitted when <code>TextEditor<\/code> scrolling is started or finished.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<h3 id=\"content-create-texteditor\"><a href=https://samsungtizenos.com/"#content-create-texteditor\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Create TextEditor<\/h3>\n<p>The following example shows how to create a <code>TextEditor<\/code> object:<\/p>\n<code class=\"language-xaml\"><base:TextField x:Name="editor" Position2D="10,10" Size2D="400,400"\n BackgroundColor="Red" PointSize="10" TextColor="White"\n Text="This is a multiline text.\\n I can write several lines.\\n"\/>\n<\/code>\n<h3 id=\"content-texteditor-properties\"><a href=https://samsungtizenos.com/"#content-texteditor-properties\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>TextEditor properties<\/h3>\n<p>You can modify the <code>TextEditor<\/code> appearance and behavior using its properties.<\/p>\n<p>The following table lists the available <code>TextEditor<\/code> properties:<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Property<\/th>\n<th>Type<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>Text<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the text to display in UTF-8 format.<\/td>\n<\/tr>\n<tr>\n<td><code>TextColor<\/code><\/td>\n<td>Vector4<\/td>\n<td>Specifies the color of the text.<\/td>\n<\/tr>\n<tr>\n<td><code>FontFamily<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the requested font family.<\/td>\n<\/tr>\n<tr>\n<td><code>FontStyle<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the requested font style.<\/td>\n<\/tr>\n<tr>\n<td><code>PointSize<\/code><\/td>\n<td>Float<\/td>\n<td>Specifies the size of font in points.<\/td>\n<\/tr>\n<tr>\n<td><code>HorizontalAlignment<\/code><\/td>\n<td>HorizontalAlignment<\/td>\n<td>Specifies the horizontal line alignment.<\/td>\n<\/tr>\n<tr>\n<td><code>ScrollThreshold<\/code><\/td>\n<td>Float<\/td>\n<td>Specifies whether the horizontal scrolling will occur, if the cursor is closer to the control border.<\/td>\n<\/tr>\n<tr>\n<td><code>ScrollSpeed<\/code><\/td>\n<td>Float<\/td>\n<td>Specifies the scroll speed in pixels per second.<\/td>\n<\/tr>\n<tr>\n<td><code>PrimaryCursorColor<\/code><\/td>\n<td>Vector4<\/td>\n<td>Specifies the color that is applied to the primary cursor.<\/td>\n<\/tr>\n<tr>\n<td><code>SecondaryCursorColor<\/code><\/td>\n<td>Vector4<\/td>\n<td>Specifies the color that is applied to the secondary cursor.<\/td>\n<\/tr>\n<tr>\n<td><code>EnableCursorBlink<\/code><\/td>\n<td>Boolean<\/td>\n<td>Specifies whether to enable or disable the cursor blink.<\/td>\n<\/tr>\n<tr>\n<td><code>CursorBlinkInterval<\/code><\/td>\n<td>Float<\/td>\n<td>Specifies the time interval in seconds between cursor on or off states.<\/td>\n<\/tr>\n<tr>\n<td><code>CursorBlinkDuration<\/code><\/td>\n<td>Float<\/td>\n<td>Specifies the time duration in seconds after which the cursor stops blinking.<\/td>\n<\/tr>\n<tr>\n<td><code>CursorWidth<\/code><\/td>\n<td>Integer<\/td>\n<td>Specifies the width of the cursor.<\/td>\n<\/tr>\n<tr>\n<td><code>GrabHandleImage<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the display image used for the grab handle.<\/td>\n<\/tr>\n<tr>\n<td><code>GrabHandlePressedImage<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the display image used when the grab handle is pressed.<\/td>\n<\/tr>\n<tr>\n<td><code>SelectionHandleImageLeft<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the display image used for the left selection handle.<\/td>\n<\/tr>\n<tr>\n<td><code>SelectionHandleImageRight<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the display image used for the right selection handle.<\/td>\n<\/tr>\n<tr>\n<td><code>SelectionHandlePressedImageLeft<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the display image used when the left handle is pressed.<\/td>\n<\/tr>\n<tr>\n<td><code>SelectionHandlePressedImageRight<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the display image used when the right handle is pressed.<\/td>\n<\/tr>\n<tr>\n<td><code>SelectionHandleMarkerImageLeft<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the display image used for the left selection handle marker.<\/td>\n<\/tr>\n<tr>\n<td><code>SelectionHandleMarkerImageRight<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the display image used for the right selection handle marker.<\/td>\n<\/tr>\n<tr>\n<td><code>SelectionHighlightColor<\/code><\/td>\n<td>Vector4<\/td>\n<td>Specifies the selected highlight color.<\/td>\n<\/tr>\n<tr>\n<td><code>DecorationBoundingBox<\/code><\/td>\n<td>Rectangle<\/td>\n<td>Specifies the position of decoration such as handles and so on within the on-screen area.<\/td>\n<\/tr>\n<tr>\n<td><code>EnableMarkup<\/code><\/td>\n<td>Boolean<\/td>\n<td>Specifies whether to enable or disable the markup string to process text within the markup tags using DALi application.<br><strong>Note<\/strong>: By default, the markup string is disabled.<\/td>\n<\/tr>\n<tr>\n<td><code>InputColor<\/code><\/td>\n<td>Vector4<\/td>\n<td>Specifies the color of the new input text.<\/td>\n<\/tr>\n<tr>\n<td><code>InputFontFamily<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the font family of the new input text.<\/td>\n<\/tr>\n<tr>\n<td><code>InputFontStyle<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the font style of the new input text.<\/td>\n<\/tr>\n<tr>\n<td><code>InputPointSize<\/code><\/td>\n<td>Float<\/td>\n<td>Specifies the font size of the new input text in points.<\/td>\n<\/tr>\n<tr>\n<td><code>LineSpacing<\/code><\/td>\n<td>Float<\/td>\n<td>Specifies the default extra space between lines in points.<\/td>\n<\/tr>\n<tr>\n<td><code>InputLineSpacing<\/code><\/td>\n<td>Float<\/td>\n<td>Specifies the extra space between lines in points.<\/td>\n<\/tr>\n<tr>\n<td><code>Underline<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the default underline parameters.<\/td>\n<\/tr>\n<tr>\n<td><code>InputUnderline<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the underline parameters of the new input text.<\/td>\n<\/tr>\n<tr>\n<td><code>Shadow<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the default shadow parameters.<\/td>\n<\/tr>\n<tr>\n<td><code>InputShadow<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the shadow parameters of the new input text.<\/td>\n<\/tr>\n<tr>\n<td><code>Emboss<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the default emboss parameters.<\/td>\n<\/tr>\n<tr>\n<td><code>InputEmboss<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the emboss parameters of the new input text.<\/td>\n<\/tr>\n<tr>\n<td><code>Outline<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the default outline parameters.<\/td>\n<\/tr>\n<tr>\n<td><code>InputOutline<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the outline parameters of the new input text.<\/td>\n<\/tr>\n<tr>\n<td><code>SmoothScroll<\/code><\/td>\n<td>Boolean<\/td>\n<td>Specifies whether to enable or disable the smooth scroll animation.<\/td>\n<\/tr>\n<tr>\n<td><code>SmoothScrollDuration<\/code><\/td>\n<td>Float<\/td>\n<td>Specifies the duration of smooth scroll animation.<\/td>\n<\/tr>\n<tr>\n<td><code>EnableScrollBar<\/code><\/td>\n<td>Boolean<\/td>\n<td>Specifies whether to enable or disable the scroll bar.<\/td>\n<\/tr>\n<tr>\n<td><code>ScrollBarShowDuration<\/code><\/td>\n<td>Float<\/td>\n<td>Specifies the duration of the scroll bar to show.<\/td>\n<\/tr>\n<tr>\n<td><code>ScrollBarFadeDuration<\/code><\/td>\n<td>Float<\/td>\n<td>Specifies the duration of the scroll bar to fade out.<\/td>\n<\/tr>\n<tr>\n<td><code>PixelSize<\/code><\/td>\n<td>Float<\/td>\n<td>Specifies the size of font in pixels.<\/td>\n<\/tr>\n<tr>\n<td><code>LineCount<\/code><\/td>\n<td>Integer<\/td>\n<td>Specifies the line count of text.<\/td>\n<\/tr>\n<tr>\n<td><code>EnableSelection<\/code><\/td>\n<td>Boolean<\/td>\n<td>Specifies whether to enable or disable text selection.<\/td>\n<\/tr>\n<tr>\n<td><code>Placeholder<\/code><\/td>\n<td>PropertyMap<\/td>\n<td>Specifies the attributes of the <code>Placeholder<\/code> property. The attributes of this property are text, color, font family, font style, point size, and pixel size.<\/td>\n<\/tr>\n<tr>\n<td><code>LineWrapMode<\/code><\/td>\n<td>LineWrapMode<\/td>\n<td>Specifies the line wrap mode when text lines are greater than the layout width.<\/td>\n<\/tr>\n<tr>\n<td><code>TranslatablePlaceholderText<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the <code>TranslatablePlaceholderText<\/code> property that sets the SID value.<\/td>\n<\/tr>\n<tr>\n<td><code>TranslatableText<\/code><\/td>\n<td>String<\/td>\n<td>Specifies the <code>TranslatableText<\/code> property that sets the SID value.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<h2 id=\"content-use-clipboard-and-selecttext-apis\"><a href=https://samsungtizenos.com/"#content-use-clipboard-and-selecttext-apis\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Use clipboard and SelectText APIs<\/h2>\n<p>These are a set of APIs that provide developers with the functionality of copy, cut, paste & select text.\nA sample code on how to benefit from them is shown below.<\/p>\n<p>Developers can define an action for users by writing the code below, i.e. when the user clicks a button.<\/p>\n<p>The following code is an example on how to copy and cut the text from source to destination text fields:<\/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:#6A737D;--shiki-dark:#6A737D\">\/\/ Create two TextField<\/span><\/span>\n<span class=\"line\"><span style=\"color:#D73A49;--shiki-dark:#F97583\">var<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">textFieldSrc<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">new<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">TextField<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(); <\/span><span style=\"color:#6A737D;--shiki-dark:#6A737D\">\/\/ Source TextField<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">textFieldSrc.Text <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"Welcome! This is a great world!"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#D73A49;--shiki-dark:#F97583\">var<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">textFieldDest<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">new<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">TextField<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(); <\/span><span style=\"color:#6A737D;--shiki-dark:#6A737D\">\/\/ Destination TextField<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">textFieldDest.Text <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">""<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<p><code>SelectText<\/code> is an API that takes two parameters, the start index and the end index.\nThis API selects text based on the start and end index declared by the user.<\/p>\n<div class=\"md-alert md-alert-note\">\n<span><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><path d=\"M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z\"\/><\/svg>Note<\/span>\n<p>The selected text includes the start index, but it does not include the end index.<\/p>\n<\/div>\n<p>The following code shows how to use <code>SelectText<\/code> on <code>TextField<\/code>:<\/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:#6A737D;--shiki-dark:#6A737D\">\/\/ Step 01: Select text from source text field<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">textFieldSrc.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">SelectText<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> (<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">9<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">16<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">); <\/span><span style=\"color:#6A737D;--shiki-dark:#6A737D\">\/\/"This is" is the selected text<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/ At this point:<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/ The TEXT in textFieldSrc is "Welcome! This is a great world!"<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/ The TEXT in textFieldDest is ""<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<p><code>TextUtils.CopyToClipboard<\/code> is an API that takes one parameter, either TextField or TextEditor.\nUsing this API, you can copy the text into the clipboard that was selected based on the declared indexes in the previous code.\nThe following code shows how to use <code>CopyToClipboard<\/code> with <code>TextField<\/code>:<\/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:#6A737D;--shiki-dark:#6A737D\">\/\/ Step 02: Copy text from source text field<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">string<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">copiedText<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> TextUtils.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">CopyToClipboard<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(textFieldSrc);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/ At this point:<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/ The TEXT in textFieldSrc is "Welcome! This is a great world!"<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/ The TEXT in textFieldDest is ""<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<p><code>TextUtils.PasteTo<\/code> is an API that takes one parameter, either TextField or TextEditor.\nUsing this API, you can paste the most recently copied\/cut text item from the clipboard into the text control.<\/p>\n<div class=\"md-alert md-alert-note\">\n<span><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><path d=\"M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z\"\/><\/svg>Note<\/span>\n<p>The pasted text will be inserted in the current cursor position and if the text control has no focus, the text will be appended to the last cursor position and the text control will gain focus. If some text inside the text control is selected, it will be replaced by the pasted text.<\/p>\n<\/div>\n<p>The following code shows how to use <code>PasteTo<\/code> with <code>TextField<\/code>:<\/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:#6A737D;--shiki-dark:#6A737D\">\/\/ Step 03: Paste text into destination text field<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> TextUtils.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PasteTo<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(textFieldDest);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/ At this point:<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/ The TEXT in textFieldSrc is "Welcome! This is a great world!"<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/ The TEXT in textFieldDest is "This is"<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<p><code>TextUtils.CutToClipboard<\/code> is an API that takes one parameter, either TextField or TextEditor.\nThis API helps you to cut the previously selected text from the text control into the clipboard. It returns the text that was cut based on the declared indexes.\nThe following codes show how to use <code>CutToClipboard<\/code> with <code>TextField<\/code>:<\/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:#6A737D;--shiki-dark:#6A737D\">\/\/ Step 04: Select text from source text field<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">textFieldSrc.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">SelectText<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> (<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">0<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">,<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">8<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">); <\/span><span style=\"color:#6A737D;--shiki-dark:#6A737D\">\/\/ "Welcome!" is the selected text<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/ At this point:<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/ The TEXT in textFieldSrc is "Welcome! This is a great world!"<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/ The TEXT in textFieldDest is "This is"<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\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:#6A737D;--shiki-dark:#6A737D\">\/\/ Step 05: Cut text from source text field<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">string<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">cutText<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> TextUtils.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">CutToClipboard<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(textFieldSrc);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/ At this point:<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/ The TEXT in textFieldSrc is " This is a great world!"<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/ The TEXT in textFieldDest is "This is"<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\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:#6A737D;--shiki-dark:#6A737D\">\/\/ Step 06: Paste text into destination text field<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> TextUtils.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PasteTo<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(textFieldDest);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/ At this point:<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/ The TEXT in textFieldSrc is " This is a great world!"<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/ The TEXT in textFieldDest is "This isWelcome!"<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<h2 id=\"content-related-information\"><a href=https://samsungtizenos.com/"#content-related-information\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Related information<\/h2>\n<ul>\n<li>Dependencies\n<ul>\n<li>Tizen 6.5 and Higher<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","table_of_content":"<ul class=\"table-of-contents\">\n<li><a href=https://samsungtizenos.com/"#content-text\">Text<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-textlabel\">TextLabel<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-create-textlabel\">Create TextLabel<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-set-font-of-textlabel\">Set font of TextLabel<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-set-font-styles-of-textlabel\">Set font styles of TextLabel<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-align-text-in-textlabel\">Align text in TextLabel<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-utf-16-or-utf-32-character-encoding\">UTF-16 or UTF-32 character encoding<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-use-decorations-for-textlabel\">Use decorations for TextLabel<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-use-markup-to-style-textlabel\">Use markup to style TextLabel<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-use-markup-to-represent-encoded-characters\">Use markup to represent encoded characters<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-textlabel-properties\">TextLabel properties<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-textfield\">TextField<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-textfield-events\">TextField events<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-create-textfield\">Create TextField<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-align-text-in-textfield\">Align text in TextField<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-use-input-properties-in-textfield\">Use input properties in TextField<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-textfield-properties\">TextField properties<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-use-decorations-for-textfield\">Use decorations for TextField<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-texteditor\">TextEditor<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-texteditor-events\">TextEditor events<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-create-texteditor\">Create TextEditor<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-texteditor-properties\">TextEditor properties<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-use-clipboard-and-selecttext-apis\">Use clipboard and SelectText APIs<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-related-information\">Related information<\/a><\/li>\n<\/ul>\n","title":"Text","raw":null},{"class":"App\\Services\\Documentation\\Data\\RenderedMarkdown","s":"wrbl"}]},"memo":{"id":"SE8pse8eXv9MDQ6vWiFq","name":"documentation::article","path":"docs\/application\/dotnet\/guides\/user-interface\/nui\/text","method":"GET","release":"a-a-a","children":[],"scripts":[],"assets":[],"lazyLoaded":false,"lazyIsolated":true,"errors":[],"locale":"en","islands":[]},"checksum":"1b5ee0808a8c74cd3a283e83a4c4ac5b1da89270c08efe555f1a69ca7277b323"}" wire:effects="[]" wire:id="SE8pse8eXv9MDQ6vWiFq" wire:name="documentation::article" x-init="$wire.__lazyLoad('eyJkYXRhIjp7ImZvck1vdW50IjpbeyJtYXJrZG93biI6W3siYm9keSI6IjxoMSBpZD1cImNvbnRlbnQtdGV4dFwiPjxhIGhyZWY9XCIjY29udGVudC10ZXh0XCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5UZXh0PFwvaDE+PGRpdiBkYXRhLWtub3dsZWRnZS1iYXNlLW1ldGFkYXRhPjxcL2Rpdj5cbjxwPlRoZXJlIGFyZSB0aHJlZSB0ZXh0IGNvbXBvbmVudHMgdG8gZGlzcGxheSBhbmQgZWRpdCB0ZXh0IG9uIHRoZSBzY3JlZW4sIHdoaWNoIGFyZSBhcyBmb2xsb3dzOjxcL3A+XG48dWw+XG48bGk+XG48cD5UaGUgPGEgaHJlZj1cIiN0ZXh0TGFiZWxcIj5UZXh0TGFiZWw8XC9hPiBkaXNwbGF5cyBhIHNob3J0IHRleHQgc3RyaW5nLjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPlRoZSA8YSBocmVmPVwiI3RleHRGaWVsZFwiPlRleHRGaWVsZDxcL2E+IGlzIHRvIGVkaXQgYSBzaW5nbGUgbGluZSB0ZXh0LjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPlRoZSA8YSBocmVmPVwiI3RleHRFZGl0b3JcIj5UZXh0RWRpdG9yPFwvYT4gaXMgdG8gZWRpdCBtdWx0aS1saW5lIHRleHQuPFwvcD5cbjxcL2xpPlxuPFwvdWw+XG48cD48YSBuYW1lPVwidGV4dExhYmVsXCI+PFwvYT48XC9wPlxuPGgyIGlkPVwiY29udGVudC10ZXh0bGFiZWxcIj48YSBocmVmPVwiI2NvbnRlbnQtdGV4dGxhYmVsXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5UZXh0TGFiZWw8XC9oMj5cbjxwPjxhIGhyZWY9XCJcL2FwcGxpY2F0aW9uXC9kb3RuZXRcL2FwaVwvVGl6ZW5GWFwvbGF0ZXN0XC9hcGlcL1RpemVuLk5VSS5CYXNlQ29tcG9uZW50cy5UZXh0TGFiZWwubWRcIj5UZXh0TGFiZWw8XC9hPiBpcyBhIGNsYXNzIHRoYXQgZGlzcGxheXMgYSBzaG9ydCB0ZXh0IHN0cmluZy4gVGhlIDxjb2RlPlRpemVuLk5VSS5CYXNlQ29tcG9uZW50czxcL2NvZGU+IG5hbWVzcGFjZSBhbmQgPGNvZGU+VGl6ZW4uTlVJPFwvY29kZT4gYXNzZW1ibHkgY29udGFpbnMgdGhlIGNsYXNzOjxcL3A+XG48Y29kZSBjbGFzcz1cImxhbmd1YWdlLXhhbWxcIj54bWxuczpiYXNlPSZxdW90O2Nsci1uYW1lc3BhY2U6VGl6ZW4uTlVJLkJhc2VDb21wb25lbnRzO2Fzc2VtYmx5PVRpemVuLk5VSSZxdW90O1xuPFwvY29kZT5cbjxwPlRoZSA8Y29kZT5UZXh0TGFiZWw8XC9jb2RlPiBjbGFzcyBpcyBsaWdodHdlaWdodCwgbm9uLWVkaXRhYmxlLCBhbmQgZG9lcyBub3QgcmVzcG9uZCB0byB1c2VyIGlucHV0LiBUZXh0IGxhYmVscyBzdXBwb3J0IG11bHRpcGxlIGxhbmd1YWdlcyBhbmQgc2NyaXB0cyBpbmNsdWRpbmcgcmlnaHQtdG8tbGVmdCBzY3JpcHRzIHN1Y2ggYXMgQXJhYmljLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBob3cgdG8gZGlzcGxheSBhIHRleHQgdXNpbmcgYSB0ZXh0IGxhYmVsLCBzZWUgPGEgaHJlZj1cIi4uXC8uLlwvLi5cLy4uXC8uLlwvLi5cLy4uXC9yZXBvc1wvdGl6ZW4tZG9jc1wvZG9jc1wvYXBwbGljYXRpb25cL2RvdG5ldFwvZ3VpZGVzXC91c2VyLWludGVyZmFjZVwvbnVpXC8uLlwvLi5cLy4uXC9nZXQtc3RhcnRlZFwvZmlyc3QtYXBwLm1kXCI+TlVJIGhlbGxvIHdvcmxkIHR1dG9yaWFsPFwvYT4uPFwvcD5cbjxwPjxzdHJvbmc+RmlndXJlOiBUZXh0IGxhYmVsIHBvc2l0aW9uZWQgdG8gdG9wIGxlZnQ8XC9zdHJvbmc+PFwvcD5cbjxwPjxpbWcgc3JjPVwibWVkaWFcL1RleHRMYWJlbFRvcExlZnQucG5nXCIgYWx0PVwiVGV4dCBsYWJlbCBleGFtcGxlLCBwb3NpdGlvbmVkIHRvIHRvcCBsZWZ0XCIgXC8+PFwvcD5cbjxwPjxhIG5hbWU9XCJjcmVhdGVcIj48XC9hPjxcL3A+XG48aDMgaWQ9XCJjb250ZW50LWNyZWF0ZS10ZXh0bGFiZWxcIj48YSBocmVmPVwiI2NvbnRlbnQtY3JlYXRlLXRleHRsYWJlbFwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+Q3JlYXRlIFRleHRMYWJlbDxcL2gzPlxuPHA+VG8gY3JlYXRlIGEgdGV4dCBsYWJlbCwgZm9sbG93IHRoZSBzdGVwcyBiZWxvdzo8XC9wPlxuPG9sPlxuPGxpPlxuPHA+Q3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoZSA8Y29kZT5UZXh0TGFiZWw8XC9jb2RlPiBjbGFzcyBhbmQgZGVmaW5lIHRoZSBsYWJlbCB0ZXh0IGFzIGEgcGFyYW1ldGVyLiBUbyBtYWtlIHRleHQgdmlzaWJsZSwgc2V0IHRoZSA8Y29kZT5UZXh0Q29sb3I8XC9jb2RlPiBwcm9wZXJ0eSB0byA8Y29kZT5Db2xvci5XaGl0ZTxcL2NvZGU+OjxcL3A+XG48Y29kZSBjbGFzcz1cImxhbmd1YWdlLXhhbWxcIj4mbHQ7YmFzZTpUZXh0TGFiZWwgeDpOYW1lPSZxdW90O3R4dCZxdW90OyBUZXh0PSZxdW90O0hlbGxvIFdvcmxkJnF1b3Q7IFRleHRDb2xvcj0mcXVvdDtXaGl0ZSZxdW90O1wvJmd0O1xuPFwvY29kZT5cbjxwPllvdSBjYW4gYWxzbyBjcmVhdGUgdGhlIDxjb2RlPlRleHRMYWJlbDxcL2NvZGU+IGNsYXNzIGluc3RhbmNlIHNlcGFyYXRlbHkgYW5kIGRlZmluZSB0aGUgbGFiZWwgdGV4dCBieSBzZXR0aW5nIGl0cyA8Y29kZT5UZXh0PFwvY29kZT4gcHJvcGVydHk6PFwvcD5cbjxjb2RlIGNsYXNzPVwibGFuZ3VhZ2UteGFtbFwiPiZsdDtiYXNlOlRleHRMYWJlbCB4Ok5hbWU9JnF1b3Q7dHh0JnF1b3Q7XC8mZ3Q7XG48XC9jb2RlPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPnR4dC5UZXh0IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7SGVsbG8gV29ybGQmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPjs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPGRpdiBjbGFzcz1cIm1kLWFsZXJ0IG1kLWFsZXJ0LWNhdXRpb25cIj5cbjxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOlwvXC93d3cudzMub3JnXC8yMDAwXC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZD1cIk00LjQ3LjIyQS43NDkuNzQ5IDAgMCAxIDUgMGg2Yy4xOTkgMCAuMzg5LjA3OS41My4yMmw0LjI1IDQuMjVjLjE0MS4xNC4yMi4zMzEuMjIuNTN2NmEuNzQ5Ljc0OSAwIDAgMS0uMjIuNTNsLTQuMjUgNC4yNUEuNzQ5Ljc0OSAwIDAgMSAxMSAxNkg1YS43NDkuNzQ5IDAgMCAxLS41My0uMjJMLjIyIDExLjUzQS43NDkuNzQ5IDAgMCAxIDAgMTFWNWMwLS4xOTkuMDc5LS4zODkuMjItLjUzWm0uODQgMS4yOEwxLjUgNS4zMXY1LjM4bDMuODEgMy44MWg1LjM4bDMuODEtMy44MVY1LjMxTDEwLjY5IDEuNVpNOCA0YS43NS43NSAwIDAgMSAuNzUuNzV2My41YS43NS43NSAwIDAgMS0xLjUgMHYtMy41QS43NS43NSAwIDAgMSA4IDRabTAgOGExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCI+PFwvcGF0aD48XC9zdmc+Q2F1dGlvbjxcL3NwYW4+XG48cD5UbyBkaXNwbGF5IHRoZSBsYWJlbCBwcm9wZXJseSwgdGhlIDxjb2RlPlRleHQ8XC9jb2RlPiBwcm9wZXJ0eSBtdXN0IGJlIGEgVVRGLTggc3RyaW5nLiBBbnkgPGNvZGU+Q1IrTEY8XC9jb2RlPiBuZXcgbGluZSBjaGFyYWN0ZXJzIGFyZSByZXBsYWNlZCBieSA8Y29kZT5MRjxcL2NvZGU+LjxcL3A+XG48XC9kaXY+XG48XC9saT5cbjxsaT5cbjxwPkRlZmluZSB0aGUgbGFiZWwgcG9zaXRpb24gb24tc2NyZWVuIHdpdGggdGhlIDxjb2RlPlBhcmVudE9yaWdpbjxcL2NvZGU+IHByb3BlcnR5IG9mIHRoZSA8Y29kZT5UZXh0TGFiZWw8XC9jb2RlPiBjbGFzczo8XC9wPlxuPGNvZGUgY2xhc3M9XCJsYW5ndWFnZS14YW1sXCI+Jmx0O2Jhc2U6VGV4dExhYmVsIHg6TmFtZT0mcXVvdDt0eHQmcXVvdDsgUGFyZW50T3JpZ2luPSZxdW90O1RvcExlZnQmcXVvdDtcLyZndDtcbjxcL2NvZGU+XG48XC9saT5cbjxcL29sPlxuPHA+PGEgbmFtZT1cImZvbnRcIj48XC9hPjxcL3A+XG48aDMgaWQ9XCJjb250ZW50LXNldC1mb250LW9mLXRleHRsYWJlbFwiPjxhIGhyZWY9XCIjY29udGVudC1zZXQtZm9udC1vZi10ZXh0bGFiZWxcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlNldCBmb250IG9mIFRleHRMYWJlbDxcL2gzPlxuPHA+WW91IGNhbiByZXF1ZXN0IGEgc3BlY2lmaWMgZm9udCB1c2luZyB0aGUgPGNvZGU+Rm9udEZhbWlseTxcL2NvZGU+LCB0aGUgPGNvZGU+Rm9udFN0eWxlPFwvY29kZT4sIGFuZCB0aGUgPGNvZGU+UG9pbnRTaXplPFwvY29kZT4gcHJvcGVydGllcyBvZiB0aGUgPGNvZGU+VGV4dExhYmVsPFwvY29kZT4gY2xhc3MuIFRoZSBwcm9wZXJ0aWVzIGFyZSBkZXNjcmliZWQgYmVsb3c6PFwvcD5cbjx1bD5cbjxsaT5cbjxwPjxjb2RlPkZvbnRGYW1pbHk8XC9jb2RlPiBpcyBhIHN0cmluZyB3aXRoIHRoZSBmb250IGZhbWlseSBuYW1lLCBzdWNoIGFzIDxjb2RlPkZyZWVTZXJpZjxcL2NvZGU+LjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPjxjb2RlPkZvbnRTdHlsZTxcL2NvZGU+IGlzIGEgSlNPTi1mb3JtYXR0ZWQgc3RyaW5nIHdpdGggdGhlIGZvbnQgc3R5bGUuIFRoZSBmb2xsb3dpbmcgbGlzdCBkZXNjcmliZXMgc29tZSBwb3NzaWJsZSBrZXlzIGFuZCBjb21tb24gdmFsdWVzIGZvciB0aGVtOjxcL3A+XG48dWw+XG48bGk+XG48cD5UaGUgPGNvZGU+d2lkdGg8XC9jb2RlPiBrZXkgZGVmaW5lcyB0aGUgd2lkdGggb2NjdXBpZWQgYnkgZWFjaCBnbHlwaC4gU29tZSBjb21tb25seSB1c2VkIHZhbHVlcyBpbmNsdWRlIDxjb2RlPmNvbmRlbnNlZDxcL2NvZGU+LCA8Y29kZT5zZW1pQ29uZGVuc2VkPFwvY29kZT4sIDxjb2RlPm5vcm1hbDxcL2NvZGU+LCA8Y29kZT5zZW1pRXhwYW5kZWQ8XC9jb2RlPiwgYW5kIDxjb2RlPmV4cGFuZGVkPFwvY29kZT4uPFwvcD5cbjxcL2xpPlxuPGxpPlxuPHA+VGhlIDxjb2RlPndlaWdodDxcL2NvZGU+IGtleSBkZWZpbmVzIHRoZSB0aGlja25lc3Mgb3IgZGFya25lc3Mgb2YgdGhlIGdseXBocy4gU29tZSBjb21tb25seSB1c2VkIHZhbHVlcyBpbmNsdWRlIDxjb2RlPnRoaW48XC9jb2RlPiwgPGNvZGU+bGlnaHQ8XC9jb2RlPiwgPGNvZGU+bm9ybWFsPFwvY29kZT4sIDxjb2RlPnJlZ3VsYXI8XC9jb2RlPiwgPGNvZGU+bWVkaXVtPFwvY29kZT4sIGFuZCA8Y29kZT5ib2xkPFwvY29kZT4uPFwvcD5cbjxcL2xpPlxuPGxpPlxuPHA+VGhlIDxjb2RlPnNsYW50PFwvY29kZT4ga2V5IGRlZmluZXMgd2hldGhlciB0byB1c2UgaXRhbGljcy4gU29tZSBjb21tb25seSB1c2VkIHZhbHVlcyBpbmNsdWRlIDxjb2RlPm5vcm1hbDxcL2NvZGU+LCA8Y29kZT5yb21hbjxcL2NvZGU+LCA8Y29kZT5pdGFsaWM8XC9jb2RlPiwgYW5kIDxjb2RlPm9ibGlxdWU8XC9jb2RlPi48XC9wPlxuPGRpdiBjbGFzcz1cIm1kLWFsZXJ0IG1kLWFsZXJ0LW5vdGVcIj5cbjxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOlwvXC93d3cudzMub3JnXC8yMDAwXC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+PHBhdGggZD1cIk0wIDhhOCA4IDAgMSAxIDE2IDBBOCA4IDAgMCAxIDAgOFptOC02LjVhNi41IDYuNSAwIDEgMCAwIDEzIDYuNSA2LjUgMCAwIDAgMC0xM1pNNi41IDcuNzVBLjc1Ljc1IDAgMCAxIDcuMjUgN2gxYS43NS43NSAwIDAgMSAuNzUuNzV2Mi43NWguMjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0yYS43NS43NSAwIDAgMSAwLTEuNWguMjV2LTJoLS4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNOCA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIlwvPjxcL3N2Zz5Ob3RlPFwvc3Bhbj5cbjxwPlVzdWFsbHkgPGNvZGU+aXRhbGljPFwvY29kZT4gaXMgYSBzZXBhcmF0ZSBmb250LCB3aGlsZSA8Y29kZT5vYmxpcXVlPFwvY29kZT4gaXMgZ2VuZXJhdGVkIGJ5IGFwcGx5aW5nIGEgc2xhbnQgdG8gdGhlIDxjb2RlPm5vcm1hbDxcL2NvZGU+IGZvbnQuPFwvcD5cbjxcL2Rpdj5cbjxcL2xpPlxuPFwvdWw+XG48XC9saT5cbjxsaT5cbjxwPjxjb2RlPlBvaW50U2l6ZTxcL2NvZGU+IGlzIGEgdHlwZSA8Y29kZT5mbG9hdDxcL2NvZGU+LiBUbyBjYWxjdWxhdGUgdGhlIHBvaW50IHNpemUgZnJvbSB0aGUgaGVpZ2h0IGluIHBpeGVscywgdXNlIHRoZSBmb2xsb3dpbmcgZm9ybXVsYSwgd2hlcmUgPGNvZGU+dmVydGljYWxfZHBpPFwvY29kZT4gaXMgdGhlIHZlcnRpY2FsIHJlc29sdXRpb24gb2YgYSBkZXZpY2UgaW4gZG90cyBwZXIgaW5jaDo8XC9wPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPnBvaW50X3NpemUgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj43MjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+KjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IHBpeGVscyA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPlwvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gdmVydGljYWxfZHBpOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+PFwvY29kZT48XC9wcmU+XG48XC9saT5cbjxcL3VsPlxuPHA+VGhlIGZvbGxvd2luZyBleGFtcGxlIGNvZGUgc3BlY2lmaWVzIHRoZSBmb250IHByb3BlcnRpZXM6PFwvcD5cbjxwPjxzdHJvbmc+RmlndXJlOiBUZXh0IHdpdGggc3BlY2lmZWQgZm9udCBwcm9wZXJ0aWVzPFwvc3Ryb25nPjxcL3A+XG48cD48aW1nIHNyYz1cIm1lZGlhXC90ZXh0Rm9udFN0eWxlLnBuZ1wiIGFsdD1cIkZvbnQgc3R5bGVkIHRleHRcIiBcLz48XC9wPlxuPGNvZGUgY2xhc3M9XCJsYW5ndWFnZS14YW1sXCI+ICAgICZsdDtiYXNlOlRleHRMYWJlbCB4Ok5hbWU9JnF1b3Q7dHh0JnF1b3Q7IFRleHQ9JnF1b3Q7SGVsbG8gd29ybGQmcXVvdDsgVGV4dENvbG9yPSZxdW90O1doaXRlJnF1b3Q7IEZvbnRGYW1pbHk9JnF1b3Q7RnJlZVNlcmlmJnF1b3Q7IFBvaW50U2l6ZT0mcXVvdDsxMiZxdW90OyZndDtcbiAgICAgICAgJmx0O1RleHRMYWJlbC5Gb250U3R5bGUmZ3Q7XG4gICAgICAgICAgICAmbHQ7UHJvcGVydHlNYXAmZ3Q7XG4gICAgICAgICAgICAgICAgJmx0O0tleVZhbHVlIEtleT0mcXVvdDt3aWR0aCZxdW90OyBWYWx1ZT0mcXVvdDtleHBhbmRlZCZxdW90OyBcLyZndDtcbiAgICAgICAgICAgICAgICAmbHQ7S2V5VmFsdWUgS2V5PSZxdW90O3dlaWdodCZxdW90OyBWYWx1ZT0mcXVvdDtib2xkJnF1b3Q7IFwvJmd0O1xuICAgICAgICAgICAgICAgICZsdDtLZXlWYWx1ZSBLZXk9JnF1b3Q7c2xhbnQmcXVvdDsgVmFsdWU9JnF1b3Q7aXRhbGljJnF1b3Q7IFwvJmd0O1xuICAgICAgICAgICAgJmx0O1wvUHJvcGVydHlNYXAmZ3Q7XG4gICAgICAgICZsdDtcL1RleHRMYWJlbC5Gb250U3R5bGUmZ3Q7XG4gICAgJmx0O1wvVGV4dExhYmVsJmd0O1xuPFwvY29kZT5cbjxwPklmIG5vIGZvbnQgaXMgc3BlY2lmaWVkLCBkZWZhdWx0IHN0eWxlcyBhcmUgdXNlZCwgYW5kIGEgc3VpdGFibGUgZm9udCBmb3IgZGlzcGxheWluZyB0aGUgdGV4dCBsYWJlbCBpcyBhdXRvbWF0aWNhbGx5IHNlbGVjdGVkIGZyb20gdGhlIHBsYXRmb3JtLiBIb3dldmVyLCB0aGUgYXV0b21hdGljYWxseSBzZWxlY3RlZCBmb250IG1heSBub3QgcmVuZGVyIGFsbCB0aGUgY2hhcmFjdGVycyBjb250YWluZWQgd2l0aGluIHRoZSB0ZXh0IGxhYmVsLiBGb3IgZXhhbXBsZSwgTGF0aW4gZm9udHMgb2Z0ZW4gZG8gbm90IHByb3ZpZGUgQXJhYmljIGdseXBocy48XC9wPlxuPGgzIGlkPVwiY29udGVudC1zZXQtZm9udC1zdHlsZXMtb2YtdGV4dGxhYmVsXCI+PGEgaHJlZj1cIiNjb250ZW50LXNldC1mb250LXN0eWxlcy1vZi10ZXh0bGFiZWxcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlNldCBmb250IHN0eWxlcyBvZiBUZXh0TGFiZWw8XC9oMz5cbjxwPlNldHRpbmcgYSBmb250IHNpemUgcHJvZ3JhbW1hdGljYWxseSBpcyBub3QgaWRlYWwgZm9yIGFwcGxpY2F0aW9ucyB0aGF0IHN1cHBvcnQgbXVsdGlwbGUgc2NyZWVuIHJlc29sdXRpb25zLCBhbmQgZm9yIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnQgbXVsdGlwbGUgbG9naWNhbCBmb250IHNpemVzLiBJbiBhZGRpdGlvbiwgbWFraW5nIHN5c3RlbXdpZGUgY2hhbmdlcyB0byB5b3VyIGZvbnQgc2V0dGluZ3Mgb3ZlcnJpZGUgdGhlIGZvbnQgc2l6ZXMgdGhhdCBoYXZlIGJlZW4gcHJvZ3JhbW1hdGljYWxseSBzZXQuPFwvcD5cbjxwPkEgbW9yZSBmbGV4aWJsZSBhcHByb2FjaCBpcyB0byBwcmVwYXJlIHZhcmlvdXMgSlNPTiBzdHlsZXNoZWV0cyBhbmQgcmVxdWVzdCBhIGRpZmZlcmVudCBzdHlsZSBmb3IgZWFjaCBwbGF0Zm9ybS4gVG8gY2hhbmdlIHRoZSBmb250IHN0eWxlIGZvciBzdGFuZGFyZCB0ZXh0IGNvbnRyb2xzLCBjcmVhdGUgdGhlIDxjb2RlPnRoZW1lLmpzb248XC9jb2RlPiBmaWxlIGluIHRoZSByZXNvdXJjZXMgZGlyZWN0b3J5IGFuZCB1c2UgdGhlIGZvbGxvd2luZyBKU09OIHN5bnRheDo8XC9wPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPns8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtzdHlsZXMmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPjo8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiB7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICAgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtDdXN0b21MYWJlbCZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+OjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IHs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7Zm9udEZhbWlseSZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+OjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7RnJlZVNlcmlmJnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4sPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICAgICA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O2ZvbnRTdHlsZSZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+OjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IHs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICAgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDt3aWR0aCZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+OjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7ZXhwYW5kZWQmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiw8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICAgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDt3ZWlnaHQmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPjo8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O2JvbGQmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiw8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICAgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtzbGFudCZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+OjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7aXRhbGljJnF1b3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICAgICB9LDxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtwb2ludFNpemUmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPjo8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPjEyPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4sPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICAgICA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O3RleHRDb2xvciZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+OjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IFsgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj4xPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4sIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+MTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+LCA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPjE8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiwgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj4xPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gXTxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgIH08XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgfTxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPn08XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPHA+PGEgaHJlZj1cIlwvYXBwbGljYXRpb25cL2RvdG5ldFwvYXBpXC9UaXplbkZYXC9sYXRlc3RcL2FwaVwvVGl6ZW4uTlVJLlN0eWxlTWFuYWdlci5tZFwiPlN0eWxlTWFuYWdlcjxcL2E+IHByb3ZpZGVzIHRoZSA8Y29kZT5BcHBseVRoZW1lPFwvY29kZT4gbWV0aG9kLCB3aGVyZSBwYXRoIHRvIHN0eWxlc2hlZXQgaXMgcGFzc2VkLiBTaW5jZSBzdHlsZXNoZWV0IGlzIGxvYWRlZCwgPGNvZGU+Q3VzdG9tTGFiZWw8XC9jb2RlPiBzdHlsZSBjYW4gYmUgdXNlZCBvbiB0aGUgY3JlYXRlZCBsYWJlbCBieSB1c2luZyB0aGUgPGNvZGU+U2V0U3R5bGVOYW1lPFwvY29kZT4gbWV0aG9kIG9mIDxjb2RlPlRleHRMYWJlbDxcL2NvZGU+OjxcL3A+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+VGl6ZW4uTlVJLlN0eWxlTWFuYWdlci48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPkdldDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KCkuPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5BcHBseVRoZW1lPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oRGlyZWN0b3J5SW5mby5SZXNvdXJjZSA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPis8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O1wvdGhlbWUuanNvbiZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5UZXh0TGFiZWw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPmxhYmVsPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5uZXc8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPlRleHRMYWJlbDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7SGVsbG8gV29ybGQmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPik7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+bGFiZWwuPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5TZXRTdHlsZU5hbWU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPig8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O0N1c3RvbUxhYmVsJnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4pOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPldpbmRvdy5JbnN0YW5jZS48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPkFkZDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KGxhYmVsKTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPHA+SG93ZXZlciwgdGhlIHNhbWUgPGNvZGU+cG9pbnRTaXplPFwvY29kZT4gaXMgdW5saWtlbHkgdG8gYmUgc3VpdGFibGUgZm9yIGFsbCB0ZXh0IGNvbnRyb2xzIGluIGFuIGFwcGxpY2F0aW9uLiBUbyBkZWZpbmUgY3VzdG9tIHN0eWxlcyBmb3IgZXhpc3RpbmcgY29udHJvbHMsIHNldCBhIHN0eWxlIG5hbWUgZm9yIGVhY2ggY2FzZSwgYW5kIHByb3ZpZGUgYSBzdHlsZSBvdmVycmlkZSBpbiBhIEpTT04gc3R5bGVzaGVldC48XC9wPlxuPHA+WW91IGNhbiBwcm92aWRlIGZ1cnRoZXIgZmxleGliaWxpdHkgZm9yIHRoZSB2YXJpb3VzIHNjcmVlbnMgYnkgbWFwcGluZyB0aGUgbG9naWNhbCBzaXplIHRvIGEgcGh5c2ljYWwgc2l6ZSBpbiB0aGUgc3R5bGVzaGVldC48XC9wPlxuPGgzIGlkPVwiY29udGVudC1hbGlnbi10ZXh0LWluLXRleHRsYWJlbFwiPjxhIGhyZWY9XCIjY29udGVudC1hbGlnbi10ZXh0LWluLXRleHRsYWJlbFwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+QWxpZ24gdGV4dCBpbiBUZXh0TGFiZWw8XC9oMz5cbjxwPlRvIGFsaWduIHRoZSB0ZXh0IGluIGEgdGV4dCBsYWJlbCwgZm9sbG93IHRoZXNlIHN0ZXBzOjxcL3A+XG48b2w+XG48bGk+XG48cD5UbyBlbmFibGUgdGV4dCB3cmFwcGluZywgdXNlIHRoZSA8Y29kZT5NdWx0aUxpbmU8XC9jb2RlPiBwcm9wZXJ0eSBvZiB0aGUgPGNvZGU+VGV4dExhYmVsPFwvY29kZT4gY2xhc3M6PFwvcD5cbjxjb2RlIGNsYXNzPVwibGFuZ3VhZ2UteGFtbFwiPiZsdDtiYXNlOlRleHRMYWJlbCB4Ok5hbWU9JnF1b3Q7dHh0JnF1b3Q7IFRleHQ9JnF1b3Q7SGVsbG8gd29ybGQmcXVvdDsgTXVsdGlMaW5lPSZxdW90O1RydWUmcXVvdDtcLyZndDtcbjxcL2NvZGU+XG48XC9saT5cbjxsaT5cbjxwPlRvIGFsaWduIHRoZSB0ZXh0IGhvcml6b250YWxseSB0byB0aGUgYmVnaW5uaW5nLCBjZW50ZXIsIG9yIGVuZCBvZiB0aGUgYXZhaWxhYmxlIGFyZWEsIHNldCB0aGUgPGNvZGU+SG9yaXpvbnRhbEFsaWdubWVudDxcL2NvZGU+IHByb3BlcnR5IG9mIHRoZSA8Y29kZT5UZXh0TGFiZWw8XC9jb2RlPiBjbGFzcyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIG9mIHRoZSA8YSBocmVmPVwiXC9hcHBsaWNhdGlvblwvZG90bmV0XC9hcGlcL1RpemVuRlhcL2xhdGVzdFwvYXBpXC9UaXplbi5OVUkuSG9yaXpvbnRhbEFsaWdubWVudC5tZFwiPkhvcml6b250YWxBbGlnbm1lbnQ8XC9hPiBlbnVtZXJhdGlvbjo8XC9wPlxuPGNvZGUgY2xhc3M9XCJsYW5ndWFnZS14YW1sXCI+Jmx0O2Jhc2U6VGV4dExhYmVsIHg6TmFtZT0mcXVvdDt0eHQmcXVvdDsgVGV4dD0mcXVvdDtIZWxsbyB3b3JsZCZxdW90OyBIb3Jpem9udGFsQWxpZ25tZW50PSZxdW90O0JlZ2luJnF1b3Q7XC8mZ3Q7XG4mbHQ7YmFzZTpUZXh0TGFiZWwgeDpOYW1lPSZxdW90O3R4dCZxdW90OyBUZXh0PSZxdW90O0hlbGxvIHdvcmxkJnF1b3Q7IEhvcml6b250YWxBbGlnbm1lbnQ9JnF1b3Q7Q2VudGVyJnF1b3Q7XC8mZ3Q7XG4mbHQ7YmFzZTpUZXh0TGFiZWwgeDpOYW1lPSZxdW90O3R4dCZxdW90OyBUZXh0PSZxdW90O0hlbGxvIHdvcmxkJnF1b3Q7IEhvcml6b250YWxBbGlnbm1lbnQ9JnF1b3Q7RW5kJnF1b3Q7XC8mZ3Q7XG48XC9jb2RlPlxuPHA+VGhlIGZvbGxvd2luZyB0YWJsZSBzdW1tYXJpemVzIHRoZSBhdmFpbGFibGUgdmFsdWVzIG9mIHRoZSA8Y29kZT5Ib3Jpem9udGFsQWxpZ25tZW50PFwvY29kZT4gZW51bWVyYXRpb24gZm9yIGJvdGggbGVmdC10by1yaWdodCAoTGF0aW4pIGFuZCByaWdodC10by1sZWZ0IChBcmFiaWMpIHNjcmlwdC4gSW4gYWRkaXRpb24sIGZvciB0aGUgaWxsdXN0cmF0ZWQgZXhhbXBsZXMsIGl0IGlzIGFzc3VtZWQgdGhhdCB0aGUgbGFiZWwgc2l6ZSBpcyBncmVhdGVyIHRoYW4gdGhlIG1pbmltdW0gcmVxdWlyZWQgc2l6ZTo8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+QWxpZ25tZW50PFwvdGg+XG48dGg+TGVmdC10by1yaWdodCBzY3JpcHQgZXhhbXBsZTxcL3RoPlxuPHRoPlJpZ2h0LXRvLWxlZnQgc2NyaXB0IGV4YW1wbGU8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+PGNvZGU+QmVnaW48XC9jb2RlPjxcL3RkPlxuPHRkPjxpbWcgc3JjPVwibWVkaWFcL0xhdGluQmVnaW4ucG5nXCIgYWx0PVwiTGF0aW4gc2NyaXB0IGFsaWduZWQgdG8gYmVnaW5uaW5nXCIgXC8+PFwvdGQ+XG48dGQ+PGltZyBzcmM9XCJtZWRpYVwvQXJhYmljQmVnaW4ucG5nXCIgYWx0PVwiQXJhYmljIHNjcmlwdCBhbGlnbmVkIHRvIGJlZ2lubmluZ1wiIFwvPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+Q2VudGVyPFwvY29kZT48XC90ZD5cbjx0ZD48aW1nIHNyYz1cIm1lZGlhXC9MYXRpbkNlbnRlci5wbmdcIiBhbHQ9XCJMYXRpbiBzY3JpcHQgYWxpZ25lZCB0byBjZW50ZXJcIiBcLz48XC90ZD5cbjx0ZD48aW1nIHNyYz1cIm1lZGlhXC9BcmFiaWNDZW50ZXIucG5nXCIgYWx0PVwiQXJhYmljIHNjcmlwdCBhbGlnbmVkIHRvIGNlbnRlclwiIFwvPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+RW5kPFwvY29kZT48XC90ZD5cbjx0ZD48aW1nIHNyYz1cIm1lZGlhXC9MYXRpbkVuZC5wbmdcIiBhbHQ9XCJMYXRpbiBzY3JpcHQgYWxpZ25lZCB0byBlbmRcIiBcLz48XC90ZD5cbjx0ZD48aW1nIHNyYz1cIm1lZGlhXC9BcmFiaWNFbmQucG5nXCIgYWx0PVwiQXJhYmljIHNjcmlwdCBhbGlnbmVkIHRvIGVuZFwiIFwvPjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxcL2xpPlxuPFwvb2w+XG48aDMgaWQ9XCJjb250ZW50LXV0Zi0xNi1vci11dGYtMzItY2hhcmFjdGVyLWVuY29kaW5nXCI+PGEgaHJlZj1cIiNjb250ZW50LXV0Zi0xNi1vci11dGYtMzItY2hhcmFjdGVyLWVuY29kaW5nXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5VVEYtMTYgb3IgVVRGLTMyIGNoYXJhY3RlciBlbmNvZGluZzxcL2gzPlxuPHA+VGhlIHRleHQgcHJvcGVydHkgY2FuIGFjY2VwdCBVVEYtMTYgb3IgVVRGLTMyIGNoYXJhY3RlciBlbmNvZGluZzo8XC9wPlxuPGNvZGUgY2xhc3M9XCJsYW5ndWFnZS14YW1sXCI+Jmx0O2Jhc2U6VGV4dExhYmVsIHg6TmFtZT0mcXVvdDt0eHQmcXVvdDtcLyZndDtcbjxcL2NvZGU+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+dHh0LlRleHQgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPlxcVTAwMDFmNjAxPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPjsgICAgICA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZBNzM3RDstLXNoaWtpLWRhcms6IzZBNzM3RFwiPlwvXC9VVEYtMzI8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj50eHQuVGV4dCA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPis9PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPlxcdWQ4M2RcXHVkZTAxPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPjsgICA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZBNzM3RDstLXNoaWtpLWRhcms6IzZBNzM3RFwiPlwvXC9VVEYtMTY8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPGgzIGlkPVwiY29udGVudC11c2UtZGVjb3JhdGlvbnMtZm9yLXRleHRsYWJlbFwiPjxhIGhyZWY9XCIjY29udGVudC11c2UtZGVjb3JhdGlvbnMtZm9yLXRleHRsYWJlbFwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+VXNlIGRlY29yYXRpb25zIGZvciBUZXh0TGFiZWw8XC9oMz5cbjxwPlRvIHVzZSB0aGUgdGV4dCBkZWNvcmF0aW9uLCBzZXQgdGhlIGFwcGxpY2FibGUgcHJvcGVydHkgYXMgZGVzY3JpYmVkIGJlbG93OjxcL3A+XG48b2w+XG48bGk+XG48cD5UbyBhZGQgYSBkcm9wIHNoYWRvdyB0byB0aGUgdGV4dCwgc2V0IHRoZSA8Y29kZT5TaGFkb3c8XC9jb2RlPiBwcm9wZXJ0eTo8XC9wPlxuPGNvZGUgY2xhc3M9XCJsYW5ndWFnZS14YW1sXCI+Jmx0O2Jhc2U6VGV4dExhYmVsIHg6TmFtZT0mcXVvdDt0eHQmcXVvdDsgVGV4dD0mcXVvdDtUZXh0IHdpdGggQ29sb3IgU2hhZG93JnF1b3Q7XC8mZ3Q7XG48XC9jb2RlPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPlByb3BlcnR5TWFwPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5zaGFkb3c8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPm5ldzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+UHJvcGVydHlNYXA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPigpOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPnNoYWRvdy48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPkFkZDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7b2Zmc2V0JnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4sIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+bmV3PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5Qcm9wZXJ0eVZhbHVlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5uZXc8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPlZlY3RvcjI8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPig8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPjI8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiwgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj4yPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4pKSk7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+c2hhZG93LjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+QWRkPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtjb2xvciZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+LCA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPm5ldzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+UHJvcGVydHlWYWx1ZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KENvbG9yLlJlZCkpOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPnR4dC5TaGFkb3cgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gc2hhZG93OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+PFwvY29kZT48XC9wcmU+XG48cD48c3Ryb25nPkZpZ3VyZTogVGV4dCB3aXRoIHJlZCBzaGFkb3c8XC9zdHJvbmc+PFwvcD5cbjxwPjxpbWcgc3JjPVwibWVkaWFcL1RleHRXaXRoQ29sb3JTaGFkb3cucG5nXCIgYWx0PVwiVGV4dCB3aXRoIGNvbG9yIHNoYWRvd1wiIFwvPjxcL3A+XG48cD5TaGFkb3cgcGFyYW1ldGVycyBjYW4gYWxzbyBiZSBzZXQgdXNpbmcgYSBKU09OIHN0cmluZy48XC9wPlxuPFwvbGk+XG48bGk+XG48cD5UbyB1bmRlcmxpbmUgdGhlIHRleHQgbGFiZWwsIHNldCB0aGUgPGNvZGU+VW5kZXJsaW5lPFwvY29kZT4gcHJvcGVydHk6PFwvcD5cbjxjb2RlIGNsYXNzPVwibGFuZ3VhZ2UteGFtbFwiPiZsdDtiYXNlOlRleHRMYWJlbCB4Ok5hbWU9JnF1b3Q7dHh0JnF1b3Q7IFRleHQ9JnF1b3Q7VGV4dCB3aXRoIFVuZGVybGluZSZxdW90OyBUZXh0Q29sb3I9JnF1b3Q7V2hpdGUmcXVvdDsmZ3Q7XG4gICAgJmx0O2Jhc2U6VGV4dExhYmVsLlVuZGVybGluZSZndDtcbiAgICAgICAgJmx0O1Byb3BlcnR5TWFwJmd0O1xuICAgICAgICAgICAgJmx0O0tleVZhbHVlIEtleT0mcXVvdDtlbmFibGUmcXVvdDsgVmFsdWU9JnF1b3Q7VHJ1ZSZxdW90O1wvJmd0O1xuICAgICAgICAmbHQ7XC9Qcm9wZXJ0eU1hcCZndDtcbiAgICAmbHQ7YmFzZTpUZXh0TGFiZWwuVW5kZXJsaW5lJmd0O1xuJmx0O1wvYmFzZTpUZXh0TGFiZWwmZ3Q7XG5cbjxcL2NvZGU+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+UHJvcGVydHlNYXA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPnVuZGVybGluZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+bmV3PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5Qcm9wZXJ0eU1hcDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KCk7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+dW5kZXJsaW5lLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+QWRkPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtlbmFibGUmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiwgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5uZXc8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPlByb3BlcnR5VmFsdWU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPig8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O1RydWUmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPikpOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPnR4dC5VbmRlcmxpbmUgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gdW5kZXJsaW5lOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+PFwvY29kZT48XC9wcmU+XG48cD5CeSBkZWZhdWx0LCB0aGUgdW5kZXJsaW5lIGhlaWdodCBpcyBiYXNlZCBvbiB0aGUgZm9udCBtZXRyaWNzIGFuZCB0aGUgbWluaW11bSBoZWlnaHQgaXMgb25lIHBpeGVsLiBUaGUgdW5kZXJsaW5lIGNvbG9yIGlzIGJhc2VkIG9uIHRoZSB0ZXh0IGNvbG9yLiBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyB0ZXh0IGZpZ3VyZXMgYXJlIGluIG9uZSBwaXhlbCBoZWlnaHQgYW5kIHRoZSBjb2xvciBpcyB0aGUgc2FtZSBhcyB0aGUgdGV4dCBjb2xvcjo8XC9wPlxuPHA+PHN0cm9uZz5GaWd1cmU6IFRleHQgd2l0aCB1bmRlcmxpbmU8XC9zdHJvbmc+PFwvcD5cbjxwPjxpbWcgc3JjPVwibWVkaWFcL1RleHRXaXRoVW5kZXJsaW5lLnBuZ1wiIGFsdD1cIlRleHQgd2l0aCB1bmRlcmxpbmVcIiBcLz48XC9wPlxuPHA+WW91IGNhbiBzZXQgdGhlIHVuZGVybGluZSBjb2xvciBhbmQgaGVpZ2h0IHVzaW5nIGEgcHJvcGVydHkgbWFwOjxcL3A+XG48Y29kZSBjbGFzcz1cImxhbmd1YWdlLXhhbWxcIj4mbHQ7YmFzZTpUZXh0TGFiZWwgeDpOYW1lPSZxdW90O3R4dCZxdW90OyBUZXh0PSZxdW90O1RleHQgd2l0aCBDb2xvciBVbmRlcmxpbmUmcXVvdDsgVGV4dENvbG9yPSZxdW90O1doaXRlJnF1b3Q7Jmd0O1xuICAgICZsdDtiYXNlOlRleHRMYWJlbC5VbmRlcmxpbmUmZ3Q7XG4gICAgICAgICZsdDtQcm9wZXJ0eU1hcCZndDtcbiAgICAgICAgICAgICZsdDtLZXlWYWx1ZSBLZXk9JnF1b3Q7ZW5hYmxlJnF1b3Q7IFZhbHVlPSZxdW90O1RydWUmcXVvdDtcLyZndDtcbiAgICAgICAgICAgICAgICAmbHQ7S2V5VmFsdWUgS2V5PSZxdW90O2NvbG9yJnF1b3Q7IFZhbHVlPSZxdW90O0dyZWVuJnF1b3Q7XC8mZ3Q7XG4gICAgICAgICAgICAgICAgJmx0O0tleVZhbHVlIEtleT0mcXVvdDtoZWlnaHQmcXVvdDsgVmFsdWU9JnF1b3Q7Mi4wJnF1b3Q7XC8mZ3Q7XG4gICAgICAgICZsdDtcL1Byb3BlcnR5TWFwJmd0O1xuICAgICZsdDtiYXNlOlRleHRMYWJlbC5VbmRlcmxpbmUmZ3Q7XG4mbHQ7XC9iYXNlOlRleHRMYWJlbCZndDtcbjxcL2NvZGU+XG48cD48c3Ryb25nPkZpZ3VyZTogVGV4dCB3aXRoIGNvbG9yZWQgdW5kZXJsaW5lPFwvc3Ryb25nPjxcL3A+XG48cD48aW1nIHNyYz1cIm1lZGlhXC9UZXh0V2l0aENvbG9yVW5kZXJsaW5lLnBuZ1wiIGFsdD1cIlRleHQgd2l0aCBjb2xvciB1bmRlcmxpbmVcIiBcLz48XC9wPlxuPFwvbGk+XG48bGk+XG48cD5UbyBlbmFibGUgdGV4dCBzY3JvbGxpbmcsIHNldCB0aGUgPGNvZGU+RW5hYmxlQXV0b1Njcm9sbDxcL2NvZGU+IHByb3BlcnR5IHRvIDxjb2RlPlRydWU8XC9jb2RlPjo8XC9wPlxuPGNvZGUgY2xhc3M9XCJsYW5ndWFnZS14YW1sXCI+Jmx0O2Jhc2U6VGV4dExhYmVsIHg6TmFtZT0mcXVvdDt0eHQmcXVvdDsgRW5hYmxlQXV0b1Njcm9sbD0mcXVvdDtUcnVlJnF1b3Q7Jmd0O1xuXG48XC9jb2RlPlxuPHA+QWZ0ZXIgc2Nyb2xsaW5nIGlzIGVuYWJsZWQsIHNjcm9sbGluZyBjb250aW51ZXMgdW50aWwgdGhlIGxvb3AgY291bnQgaXMgcmVhY2hlZCBvciA8Y29kZT5FbmFibGVBdXRvU2Nyb2xsPFwvY29kZT4gaXMgc2V0IHRvIDxjb2RlPkZhbHNlPFwvY29kZT4uIFdoZW4gPGNvZGU+RW5hYmxlQXV0b1Njcm9sbDxcL2NvZGU+IGlzIHNldCB0byA8Y29kZT5GYWxzZTxcL2NvZGU+LCB0aGUgdGV4dCBjb21wbGV0ZXMgaXRzIGN1cnJlbnQgc2Nyb2xsaW5nIGxvb3AgYmVmb3JlIGl0IHN0b3BzIHNjcm9sbGluZy48XC9wPlxuPHA+PHN0cm9uZz5GaWd1cmU6IEF1dG8tc2Nyb2xsaW5nIHRleHQ8XC9zdHJvbmc+PFwvcD5cbjxwPjxpbWcgc3JjPVwibWVkaWFcL0F1dG9TY3JvbGwuZ2lmXCIgYWx0PVwiQXV0by1zY3JvbGxpbmcgdGV4dFwiIFwvPjxcL3A+XG48cD5BdXRvLXNjcm9sbGluZyBlbmFibGVzIHRleHQgdG8gc2Nyb2xsIHdpdGhpbiB0aGUgdGV4dCB0YWJsZS4gWW91IGNhbiB1c2UgaXQgdG8gc2hvdyB0aGUgZnVsbCBjb250ZW50IGlmIHRoZSB0ZXh0IGV4Y2VlZHMgdGhlIGJvdW5kYXJ5IG9mIHRoZSBjb250cm9sLiBZb3UgY2FuIGFsc28gc2Nyb2xsIHRleHQgdGhhdCBpcyBzbWFsbGVyIHRoYW4gdGhlIGNvbnRyb2wuIFRvIGVuc3VyZSB0aGF0IHRoZSBzYW1lIHBhcnQgb2YgdGhlIHRleHQgaXMgbm90IHZpc2libGUgaW4gbW9yZSB0aGFuIG9uZSBwbGFjZSBhdCB0aGUgc2FtZSB0aW1lLCB5b3UgY2FuIGNvbmZpZ3VyZSB0aGUgZ2FwIGJldHdlZW4gcmVwZXRpdGlvbnMuIFRoZSBsZWZ0LXRvLXJpZ2h0IHRleHQgYWx3YXlzIHNjcm9sbHMgbGVmdCBhbmQgdGhlIHJpZ2h0LXRvLWxlZnQgdGV4dCBhbHdheXMgc2Nyb2xscyByaWdodC48XC9wPlxuPHA+WW91IGNhbiBzZXQgdGhlIHNjcm9sbCBzcGVlZCwgZ2FwLCBhbmQgbG9vcCBjb3VudCBpbiB0aGUgc3R5bGVzaGVldCBvciB1c2luZyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6PFwvcD5cbjx1bD5cbjxsaT48Y29kZT5BdXRvU2Nyb2xsU3BlZWQ8XC9jb2RlPiBwcm9wZXJ0eSBkZWZpbmVzIHRoZSBzY3JvbGxpbmcgc3BlZWQgaW4gcGl4ZWxzIHBlciBzZWNvbmQuPFwvbGk+XG48bGk+PGNvZGU+QXV0b1Njcm9sbExvb3BDb3VudDxcL2NvZGU+IHByb3BlcnR5IHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSB0ZXh0IGNvbXBsZXRlcyBhIGZ1bGwgc2Nyb2xsIGN5Y2xlLiBGb3IgZXhhbXBsZSwgaWYgdGhpcyBwcm9wZXJ0eSBpcyBzZXQgdG8gPGNvZGU+MzxcL2NvZGU+LCB0aGUgdGV4dCBzY3JvbGxzIGFjcm9zcyB0aGUgY29udHJvbCB0aHJlZSB0aW1lcyBhbmQgdGhlbiBzdG9wcy4gSWYgdGhpcyBwcm9wZXJ0eSBpcyBzZXQgdG8gPGNvZGU+MDxcL2NvZGU+LCB0aGUgdGV4dCBzY3JvbGwgY29udGludWVzIHVudGlsIDxjb2RlPkVuYWJsZUF1dG9TY3JvbGw8XC9jb2RlPiBpcyBzZXQgdG8gPGNvZGU+RmFsc2U8XC9jb2RlPi5cbjx1bD5cbjxsaT5JZiA8Y29kZT5FbmFibGVBdXRvU2Nyb2xsPFwvY29kZT4gaXMgc2V0IHRvIDxjb2RlPkZhbHNlPFwvY29kZT4sIHRoZSB0ZXh0IHN0b3BzIHRvIHNjcm9sbCBhbmQgbWFpbnRhaW5zIHRoZSBvcmlnaW5hbCBsb29wIGNvdW50IHZhbHVlIGZvciB0aGUgbmV4dCBzdGFydC48XC9saT5cbjxcL3VsPlxuPFwvbGk+XG48bGk+PGNvZGU+QXV0b1Njcm9sbEdhcDxcL2NvZGU+IHByb3BlcnR5IHNwZWNpZmllcyB0aGUgYW1vdW50IG9mIHdoaXRlc3BhY2UgaW4gcGl4ZWxzLiBUaGUgd2hpdGVzcGFjZSBnZXRzIGRpc3BsYXllZCBiZWZvcmUgdGhlIHNjcm9sbGluZyB0ZXh0IGFwcGVhcnMgYWdhaW4uIFRoaXMgZ2FwIGF1dG9tYXRpY2FsbHkgaW5jcmVhc2VzLCBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgbm90IGxhcmdlIGVub3VnaCB0byBwcmV2ZW50IHRoZSBzYW1lIHBhcnQgb2YgdGhlIHRleHQgZnJvbSBhcHBlYXJpbmcgdHdpY2UgYXQgdGhlIHNhbWUgdGltZS48XC9saT5cbjxcL3VsPlxuPGNvZGUgY2xhc3M9XCJsYW5ndWFnZS14YW1sXCI+Jmx0O2Jhc2U6VGV4dExhYmVsIHg6TmFtZT0mcXVvdDt0eHQmcXVvdDsgVGV4dD0mcXVvdDtIZWxsbyBXb3JsZCZxdW90O1xuICAgIEVuYWJsZUF1dG9TY3JvbGw9JnF1b3Q7VHJ1ZSZxdW90OyBBdXRvU2Nyb2xsU3BlZWQ9JnF1b3Q7MTAwJnF1b3Q7XG4gICAgQXV0b1Njcm9sbExvb3BDb3VudD0mcXVvdDswJnF1b3Q7IEF1dG9TY3JvbGxHYXA9JnF1b3Q7MjUwJnF1b3Q7IFRleHRDb2xvcj0mcXVvdDtXaGl0ZSZxdW90O1wvJmd0O1xuPFwvY29kZT5cbjxwPkF1dG8tc2Nyb2xsaW5nIGRvZXMgbm90IHdvcmsgd2l0aCBtdWx0aS1saW5lIHRleHQ7IGl0IGlzIHNob3duIHdpdGggdGhlIDxjb2RlPkJlZ2luPFwvY29kZT4gYWxpZ25tZW50IGluc3RlYWQuPFwvcD5cbjxcL2xpPlxuPFwvb2w+XG48aDMgaWQ9XCJjb250ZW50LXVzZS1tYXJrdXAtdG8tc3R5bGUtdGV4dGxhYmVsXCI+PGEgaHJlZj1cIiNjb250ZW50LXVzZS1tYXJrdXAtdG8tc3R5bGUtdGV4dGxhYmVsXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5Vc2UgbWFya3VwIHRvIHN0eWxlIFRleHRMYWJlbDxcL2gzPlxuPHA+WW91IGNhbiB1c2UgbWFya3VwIGVsZW1lbnRzIHRvIGNoYW5nZSB0aGUgc3R5bGUgb2YgdGhlIHRleHQuIFNpbmNlIHRoZSB0ZXh0IGNvbnRyb2xzIGRvIG5vdCBwcm9jZXNzIG1hcmt1cCBlbGVtZW50cyBieSBkZWZhdWx0LCB5b3UgbXVzdCBmaXJzdCBzZXQgdGhlIDxjb2RlPkVuYWJsZU1hcmt1cDxcL2NvZGU+IHByb3BlcnR5IG9mIHRoZSA8Y29kZT5UZXh0TGFiZWw8XC9jb2RlPiBjbGFzcyB0byA8Y29kZT5UcnVlPFwvY29kZT46PFwvcD5cbjxjb2RlIGNsYXNzPVwibGFuZ3VhZ2UteGFtbFwiPiAmbHQ7YmFzZTpUZXh0TGFiZWwgeDpOYW1lPSZxdW90O3R4dCZxdW90OyBFbmFibGVNYXJrdXA9JnF1b3Q7VHJ1ZSZxdW90O1wvJmd0O1xuPFwvY29kZT5cbjxkaXYgY2xhc3M9XCJtZC1hbGVydCBtZC1hbGVydC1ub3RlXCI+XG48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDpcL1wvd3d3LnczLm9yZ1wvMjAwMFwvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiPjxwYXRoIGQ9XCJNMCA4YTggOCAwIDEgMSAxNiAwQTggOCAwIDAgMSAwIDhabTgtNi41YTYuNSA2LjUgMCAxIDAgMCAxMyA2LjUgNi41IDAgMCAwIDAtMTNaTTYuNSA3Ljc1QS43NS43NSAwIDAgMSA3LjI1IDdoMWEuNzUuNzUgMCAwIDEgLjc1Ljc1djIuNzVoLjI1YS43NS43NSAwIDAgMSAwIDEuNWgtMmEuNzUuNzUgMCAwIDEgMC0xLjVoLjI1di0yaC0uMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTggNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJcLz48XC9zdmc+Tm90ZTxcL3NwYW4+XG48cD5UaGUgbWFya3VwIHByb2Nlc3NvciBkb2VzIG5vdCBjaGVjayBmb3IgbWFya3VwIHZhbGlkaXR5LCBhbmQgc3R5bGVzIGFyZSByZW5kZXJlZCBpbiBwcmlvcml0eSBvcmRlci4gSW5jb3JyZWN0IG9yIGluY29tcGF0aWJsZSBlbGVtZW50cyBjYW4gY2F1c2UgdGhlIHRleHQgdG8gYmUgcmVuZGVyZWQgaW5jb3JyZWN0bHkuPFwvcD5cbjxcL2Rpdj5cbjxwPlRoZSBmb2xsb3dpbmcgbWFya3VwIGVsZW1lbnRzIGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkOjxcL3A+XG48dWw+XG48bGk+XG48cD48Y29kZT4mbHQ7Y29sb3ImZ3Q7PFwvY29kZT48XC9wPlxuPHA+U2V0cyB0aGUgY29sb3IgZm9yIHRoZSBjaGFyYWN0ZXJzIGluc2lkZSB0aGUgZWxlbWVudC4gVXNlIHRoZSA8Y29kZT52YWx1ZTxcL2NvZGU+IGF0dHJpYnV0ZSB0byBkZWZpbmUgdGhlIGNvbG9yLiBUaGUgc3VwcG9ydGVkIGF0dHJpYnV0ZSB2YWx1ZXMgYXJlIDxjb2RlPnJlZDxcL2NvZGU+LCA8Y29kZT5ncmVlbjxcL2NvZGU+LCA8Y29kZT5ibHVlPFwvY29kZT4sIDxjb2RlPnllbGxvdzxcL2NvZGU+LCA8Y29kZT5tYWdlbnRhPFwvY29kZT4sIDxjb2RlPmN5YW48XC9jb2RlPiwgPGNvZGU+d2hpdGU8XC9jb2RlPiwgPGNvZGU+YmxhY2s8XC9jb2RlPiwgYW5kIDxjb2RlPnRyYW5zcGFyZW50PFwvY29kZT4uIFdlYiBjb2xvcnMgYW5kIGNvbG9ycyByZXByZXNlbnRlZCBpbiAzMi1iaXQgaGV4YWRlY2ltYWwgPGNvZGU+MHhBQVJSR0dCQjxcL2NvZGU+IGZvcm1hdCBhcmUgYWxzbyBzdXBwb3J0ZWQuPFwvcD5cbjxwPlRoZSBmb2xsb3dpbmcgZXhhbXBsZXMgc2hvdyB0ZXh0IGluIHJlZCBjb2xvcjo8XC9wPlxuPGNvZGUgY2xhc3M9XCJsYW5ndWFnZS14YW1sXCI+Jmx0O2Jhc2U6VGV4dExhYmVsIHg6TmFtZT0mcXVvdDt0eHQmcXVvdDsgRW5hYmxlTWFya3VwPSZxdW90O1RydWUmcXVvdDsgVGV4dD0mcXVvdDsmbHQ7Y29sb3IgdmFsdWU9J3JlZCcmZ3Q7UmVkIFRleHQmbHQ7XC9jb2xvciZndDsmcXVvdDtcLyZndDtcbjxcL2NvZGU+XG48Y29kZSBjbGFzcz1cImxhbmd1YWdlLXhhbWxcIj4mbHQ7YmFzZTpUZXh0TGFiZWwgeDpOYW1lPSZxdW90O3R4dCZxdW90OyBFbmFibGVNYXJrdXA9JnF1b3Q7VHJ1ZSZxdW90OyBUZXh0PSZxdW90OyZsdDtjb2xvciB2YWx1ZT0nMHhGRkZGMDAwMCcmZ3Q7UmVkIFRleHQmbHQ7XC9jb2xvciZndDsmcXVvdDtcLyZndDtcbjxcL2NvZGU+XG48XC9saT5cbjxsaT5cbjxwPjxjb2RlPiZsdDtmb250Jmd0OzxcL2NvZGU+PFwvcD5cbjxwPlNldHMgdGhlIGZvbnQgdmFsdWVzIGZvciB0aGUgY2hhcmFjdGVycyBpbnNpZGUgdGhlIGVsZW1lbnQuPFwvcD5cbjxwPlRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgc3VwcG9ydGVkOjxcL3A+XG48dWw+XG48bGk+PGNvZGU+ZmFtaWx5PFwvY29kZT46IEZvbnQgbmFtZTxcL2xpPlxuPGxpPjxjb2RlPnNpemU8XC9jb2RlPjogRm9udCBzaXplIGluIHBvaW50czxcL2xpPlxuPGxpPjxjb2RlPndlaWdodDxcL2NvZGU+OiBGb250IHdlaWdodDxcL2xpPlxuPGxpPjxjb2RlPndpZHRoPFwvY29kZT46IEZvbnQgd2lkdGg8XC9saT5cbjxsaT48Y29kZT5zbGFudDxcL2NvZGU+OiBGb250IHNsYW50PFwvbGk+XG48XC91bD5cbjxwPkZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBhdHRyaWJ1dGUgdmFsdWVzLCBzZWUgPGEgaHJlZj1cIiNmb250XCI+c2VsZWN0IGZvbnQ8XC9hPi48XC9wPlxuPHA+VGhlIGZvbGxvd2luZyBleGFtcGxlIHNldHMgdGhlIGZvbnQgZmFtaWx5IGFuZCB3ZWlnaHQ6PFwvcD5cbjxjb2RlIGNsYXNzPVwibGFuZ3VhZ2UteGFtbFwiPiZsdDtiYXNlOlRleHRMYWJlbCB4Ok5hbWU9JnF1b3Q7dHh0JnF1b3Q7IEVuYWJsZU1hcmt1cD0mcXVvdDtUcnVlJnF1b3Q7XG4gICAgVGV4dD0mcXVvdDsmbHQ7Zm9udCBmYW1pbHk9J1NhbXN1bmdTYW5zJyB3ZWlnaHQ9J2JvbGQnJmd0O0hlbGxvIHdvcmxkJmx0O1wvZm9udCZndDsmcXVvdDtcLyZndDtcbjxcL2NvZGU+XG48XC9saT5cbjxsaT5cbjxwPjxjb2RlPiZsdDtiJmd0OzxcL2NvZGU+PFwvcD5cbjxwPlNldHMgQm9sZCBkZWNvcmF0aW9uIGZvciB0aGUgY2hhcmFjdGVycyBpbnNpZGUgdGhlIGVsZW1lbnQuPFwvcD5cbjxwPlRoZSBmb2xsb3dpbmcgZXhhbXBsZSBzaG93cyBob3cgdG8gYXBwbHkgaXQ6PFwvcD5cbjxjb2RlIGNsYXNzPVwibGFuZ3VhZ2UteGFtbFwiPiZsdDtiYXNlOlRleHRMYWJlbCB4Ok5hbWU9JnF1b3Q7dHh0JnF1b3Q7IEVuYWJsZU1hcmt1cD0mcXVvdDtUcnVlJnF1b3Q7XG4gICAgVGV4dD0mcXVvdDsmbHQ7YiZndDtIZWxsbyB3b3JsZCZsdDtcL2ImZ3Q7JnF1b3Q7XC8mZ3Q7XG48XC9jb2RlPlxuPFwvbGk+XG48bGk+XG48cD48Y29kZT4mbHQ7aSZndDs8XC9jb2RlPjxcL3A+XG48cD5TZXRzIEl0YWxpYyBkZWNvcmF0aW9uIGZvciB0aGUgY2hhcmFjdGVycyBpbnNpZGUgdGhlIGVsZW1lbnQuPFwvcD5cbjxwPlRoZSBmb2xsb3dpbmcgZXhhbXBsZSBzaG93cyBob3cgdG8gYXBwbHkgaXQ6PFwvcD5cbjxjb2RlIGNsYXNzPVwibGFuZ3VhZ2UteGFtbFwiPiZsdDtiYXNlOlRleHRMYWJlbCB4Ok5hbWU9JnF1b3Q7dHh0JnF1b3Q7IEVuYWJsZU1hcmt1cD0mcXVvdDtUcnVlJnF1b3Q7XG4gICAgVGV4dD0mcXVvdDsmbHQ7aSZndDtIZWxsbyB3b3JsZCZsdDtcL2kmZ3Q7JnF1b3Q7XC8mZ3Q7XG48XC9jb2RlPlxuPFwvbGk+XG48bGk+XG48cD48Y29kZT4mbHQ7YmFja2dyb3VuZCZndDs8XC9jb2RlPjxcL3A+XG48cD5TZXRzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgY2hhcmFjdGVycyBpbnNpZGUgdGhlIGVsZW1lbnQuPFwvcD5cbjxwPlRoZSBmb2xsb3dpbmcgZXhhbXBsZSBzaG93cyBob3cgdG8gYXBwbHkgaXQ6PFwvcD5cbjxjb2RlIGNsYXNzPVwibGFuZ3VhZ2UteGFtbFwiPiZsdDtiYXNlOlRleHRMYWJlbCB4Ok5hbWU9JnF1b3Q7dHh0JnF1b3Q7IEVuYWJsZU1hcmt1cD0mcXVvdDtUcnVlJnF1b3Q7XG4gICAgVGV4dD0mcXVvdDsmbHQ7YmFja2dyb3VuZCBjb2xvcj0neWVsbG93JyZndDtIZWxsbyB3b3JsZCZsdDtcL2JhY2tncm91bmQmZ3Q7JnF1b3Q7XC8mZ3Q7XG48XC9jb2RlPlxuPFwvbGk+XG48bGk+XG48cD48Y29kZT4mbHQ7dSZndDs8XC9jb2RlPjxcL3A+XG48cD5TZXRzIHRoZSB1bmRlcmxpbmVkIHZhbHVlcyBmb3IgdGhlIGNoYXJhY3RlcnMgaW5zaWRlIHRoZSBlbGVtZW50LjxcL3A+XG48cD5UaGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMgYXJlIHN1cHBvcnRlZDo8XC9wPlxuPHVsPlxuPGxpPjxjb2RlPmNvbG9yPFwvY29kZT46IFRoZSBjb2xvciBvZiB1bmRlcmxpbmUuPFwvbGk+XG48bGk+PGNvZGU+aGVpZ2h0PFwvY29kZT46IFRoZSBoZWlnaHQgb2YgdW5kZXJsaW5lLjxcL2xpPlxuPGxpPjxjb2RlPnR5cGU8XC9jb2RlPjogVGhlIHR5cGUgb2YgdW5kZXJsaW5lLiBUaGUgc3VwcG9ydGVkIGF0dHJpYnV0ZSB2YWx1ZXMgYXJlIDxjb2RlPnNvbGlkPFwvY29kZT4sIDxjb2RlPmRhc2hlZDxcL2NvZGU+IGFuZCA8Y29kZT5kb3VibGU8XC9jb2RlPi48XC9saT5cbjxsaT48Y29kZT5kYXNoLWdhcDxcL2NvZGU+OiBUaGUgZ2FwIGluIHBpeGVscyBiZXR3ZWVuIHRoZSBkYXNoZXMgb2YgdGhlIGRhc2hlZCB1bmRlcmxpbmUuIE9ubHkgdmFsaWQgd2hlbiAmcXVvdDtEQVNIRUQmcXVvdDsgdW5kZXJsaW5lIHR5cGUgaXMgdXNlZC48XC9saT5cbjxsaT48Y29kZT5kYXNoLXdpZHRoPFwvY29kZT46IFRoZSB3aWR0aCBpbiBwaXhlbHMgb2YgdGhlIGRhc2hlcyBvZiB0aGUgZGFzaGVkIHVuZGVybGluZS4gT25seSB2YWxpZCB3aGVuICZxdW90O0RBU0hFRCZxdW90OyB1bmRlcmxpbmUgdHlwZSBpcyB1c2VkLjxcL2xpPlxuPFwvdWw+XG48cD5UaGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MgaG93IHRvIGFwcGx5IGl0OjxcL3A+XG48Y29kZSBjbGFzcz1cImxhbmd1YWdlLXhhbWxcIj4mbHQ7YmFzZTpUZXh0TGFiZWwgeDpOYW1lPSZxdW90O3R4dCZxdW90OyBFbmFibGVNYXJrdXA9JnF1b3Q7VHJ1ZSZxdW90O1xuICAgIFRleHQ9JnF1b3Q7Jmx0O3UgY29sb3I9J2dyZWVuJyBoZWlnaHQ9JzIuMGYnIHR5cGU9J2Rhc2hlZCcgZGFzaC1nYXA9JzIuMGYnIGRhc2gtd2lkdGg9JzMuMGYnJmd0O0hlbGxvIHdvcmxkJmx0O1wvdSZndDsmcXVvdDtcLyZndDtcbjxcL2NvZGU+XG48XC9saT5cbjxsaT5cbjxwPjxjb2RlPiZsdDtzJmd0OzxcL2NvZGU+PFwvcD5cbjxwPlNldHMgdGhlIHN0cmlrZXRocm91Z2ggdmFsdWVzIGZvciB0aGUgY2hhcmFjdGVycyBpbnNpZGUgdGhlIGVsZW1lbnQuPFwvcD5cbjxwPlRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgc3VwcG9ydGVkOjxcL3A+XG48dWw+XG48bGk+PGNvZGU+Y29sb3I8XC9jb2RlPjogVGhlIGNvbG9yIG9mIHN0cmlrZXRocm91Z2guPFwvbGk+XG48bGk+PGNvZGU+aGVpZ2h0PFwvY29kZT46IFRoZSBoZWlnaHQgb2Ygc3RyaWtldGhyb3VnaC48XC9saT5cbjxcL3VsPlxuPHA+VGhlIGZvbGxvd2luZyBleGFtcGxlIHNob3dzIGhvdyB0byBhcHBseSBpdDo8XC9wPlxuPGNvZGUgY2xhc3M9XCJsYW5ndWFnZS14YW1sXCI+Jmx0O2Jhc2U6VGV4dExhYmVsIHg6TmFtZT0mcXVvdDt0eHQmcXVvdDsgRW5hYmxlTWFya3VwPSZxdW90O1RydWUmcXVvdDtcbiAgICBUZXh0PSZxdW90OyZsdDtzIGNvbG9yPSdncmVlbicgaGVpZ2h0PScyLjBmJyAmZ3Q7SGVsbG8gd29ybGQmbHQ7XC9zJmd0OyZxdW90O1wvJmd0O1xuPFwvY29kZT5cbjxcL2xpPlxuPGxpPlxuPHA+PGNvZGU+Jmx0O2NoYXItc3BhY2luZyZndDs8XC9jb2RlPjxcL3A+XG48cD5TZXRzIHRoZSBjaGFyYWN0ZXIgc3BhY2luZyB2YWx1ZXMgZm9yIHRoZSBjaGFyYWN0ZXJzIGluc2lkZSB0aGUgZWxlbWVudC48XC9wPlxuPHA+VXNlIHRoZSA8Y29kZT52YWx1ZTxcL2NvZGU+IGF0dHJpYnV0ZSB0byBkZWZpbmUgdGhlIHNwYWNlcyBiZXR3ZWVuIGNoYXJhY3RlcnMgaW4gUGl4ZWxzLjxcL3A+XG48cD5BIHBvc2l0aXZlIHZhbHVlIHdpbGwgbWFrZSB0aGUgY2hhcmFjdGVycyBmYXIgYXBhcnQgKGV4cGFuZGVkKSBhbmQgYSBuZWdhdGl2ZSB2YWx1ZSB3aWxsIGJyaW5nIHRoZW0gY2xvc2VyIChjb25kZW5zZWQpLjxcL3A+XG48cD5UaGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MgaG93IHRvIGFwcGx5IGl0OjxcL3A+XG48Y29kZSBjbGFzcz1cImxhbmd1YWdlLXhhbWxcIj4mbHQ7YmFzZTpUZXh0TGFiZWwgeDpOYW1lPSZxdW90O3R4dCZxdW90OyBFbmFibGVNYXJrdXA9JnF1b3Q7VHJ1ZSZxdW90O1xuICAgIFRleHQ9JnF1b3Q7Jmx0O2NoYXItc3BhY2luZyB2YWx1ZT0nNS4wZicmZ3Q7SGVsbG8gd29ybGQmbHQ7XC9jaGFyLXNwYWNpbmcmZ3Q7JnF1b3Q7XC8mZ3Q7XG48XC9jb2RlPlxuPFwvbGk+XG48bGk+XG48cD48Y29kZT4mbHQ7cCZndDs8XC9jb2RlPjxcL3A+XG48cD5Vc2UgcGFyYWdyYXBoIHRhZyB0byBzZXQgbWFueSBzdHlsZXMgb24gYSBwYXJhZ3JhcGgncyBsZXZlbCBmb3IgdGhlIGxpbmVzIGluc2lkZSB0aGUgZWxlbWVudC48XC9wPlxuPHA+VGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIGFyZSBzdXBwb3J0ZWQ6PFwvcD5cbjx1bD5cbjxsaT48Y29kZT5hbGlnbjxcL2NvZGU+OiBVc2UgdGhlIDxjb2RlPmFsaWduPFwvY29kZT4gYXR0cmlidXRlIHRvIGRlZmluZSB0aGUgaG9yaXpvbnRhbCBhbGlnbm1lbnQgb2YgYSBwYXJhZ3JhcGguIFRoZSBzdXBwb3J0ZWQgYXR0cmlidXRlIHZhbHVlcyBhcmUgPGNvZGU+YmVnaW48XC9jb2RlPiwgPGNvZGU+Y2VudGVyPFwvY29kZT4gYW5kIDxjb2RlPmVuZDxcL2NvZGU+IC48XC9saT5cbjxsaT48Y29kZT5yZWwtbGluZS1oZWlnaHQ8XC9jb2RlPjogVGhlIHJlbGF0aXZlIGhlaWdodCBvZiB0aGUgbGluZSAoYSBmYWN0b3IgdGhhdCB3aWxsIGJlIG11bHRpcGxpZWQgYnkgdGV4dCBoZWlnaHQpLjxcL2xpPlxuPFwvdWw+XG48cD5UaGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MgaG93IHRvIGFwcGx5IGFsaWdubWVudDo8XC9wPlxuPGNvZGUgY2xhc3M9XCJsYW5ndWFnZS14YW1sXCI+Jmx0O2Jhc2U6VGV4dExhYmVsIHg6TmFtZT0mcXVvdDt0eHQmcXVvdDsgRW5hYmxlTWFya3VwPSZxdW90O1RydWUmcXVvdDtcbiAgICBUZXh0PSZxdW90O3RleHQgb3V0c2lkZSZsdDtwIGFsaWduPSdlbmQnJmd0O1BhcmFncmFwaCBlbmQmbHQ7XC9wJmd0O3RleHQgb3V0c2lkZSZsdDtwIGFsaWduPSdjZW50ZXInJmd0O1BhcmFncmFwaCBjZW50ZXImbHQ7XC9wJmd0O3RleHQgb3V0c2lkZSZsdDtwIGFsaWduPSdiZWdpbicgJmd0O1BhcmFncmFwaCBiZWdpbiZsdDtcL3AmZ3Q7JnF1b3Q7XC8mZ3Q7XG48XC9jb2RlPlxuPHA+VGhlIGZvbGxvd2luZyBleGFtcGxlIHNob3dzIGhvdyB0byBhcHBseSByZWxhdGl2ZSBoZWlnaHQgb2YgbGluZTo8XC9wPlxuPGNvZGUgY2xhc3M9XCJsYW5ndWFnZS14YW1sXCI+Jmx0O2Jhc2U6VGV4dExhYmVsIHg6TmFtZT0mcXVvdDt0eHQmcXVvdDsgRW5hYmxlTWFya3VwPSZxdW90O1RydWUmcXVvdDtcbiAgICBUZXh0PSZxdW90OyZsdDtwJmd0O2xpbmUgMSZsdDtcL3AmZ3Q7Jmx0O3AgcmVsLWxpbmUtaGVpZ2h0PTAuNSZndDtsaW5lXFxuMiZsdDtcL3AmZ3Q7bGluZSAzJmx0O3AgcmVsLWxpbmUtaGVpZ2h0PTMmZ3Q7bGluZVxcbjQmbHQ7XC9wJmd0O2xpbmUgNSZxdW90O1wvJmd0O1xuPFwvY29kZT5cbjxcL2xpPlxuPGxpPlxuPHA+PGNvZGU+Jmx0O2l0ZW0mZ3Q7PFwvY29kZT48XC9wPlxuPHA+RGVmaW5lcyBhbiBlbWJlZGRlZCBpdGVtIHdpdGhpbiB0aGUgdGV4dC48XC9wPlxuPHA+VGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIGFyZSBzdXBwb3J0ZWQ6PFwvcD5cbjx1bD5cbjxsaT48Y29kZT51cmw8XC9jb2RlPjogVGhlIFVSTCBwYXRoIG9mIHRoZSBpbWFnZS48XC9saT5cbjxsaT48Y29kZT53aWR0aDxcL2NvZGU+OiBUaGUgd2lkdGggb2YgdGhlIGl0ZW0uPFwvbGk+XG48bGk+PGNvZGU+aGVpZ2h0PFwvY29kZT46IFRoZSBoZWlnaHQgb2YgdGhlIGl0ZW0uPFwvbGk+XG48bGk+PGNvZGU+Y29sb3ItYmxlbmRpbmc8XC9jb2RlPjogVXNlIHRoZSBjb2xvci1ibGVuZGluZyBhdHRyaWJ1dGUgdG8gZGVmaW5lIHdoZXRoZXIgdGhlIGNvbG9yIG9mIHRoZSBpbWFnZSBpcyBtdWx0aXBsaWVkIGJ5IHRoZSBjb2xvciBvZiB0aGUgdGV4dC48XC9saT5cbjxcL3VsPlxuPHA+VGhlIGZvbGxvd2luZyBleGFtcGxlIHNob3dzIGhvdyB0byBhcHBseSBpdDo8XC9wPlxuPGNvZGUgY2xhc3M9XCJsYW5ndWFnZS14YW1sXCI+Jmx0O2Jhc2U6VGV4dExhYmVsIHg6TmFtZT0mcXVvdDt0eHQmcXVvdDsgRW5hYmxlTWFya3VwPSZxdW90O1RydWUmcXVvdDtcbiAgICBUZXh0PSZxdW90OyZsdDtpdGVtICd3aWR0aCc9MjYgJ2hlaWdodCc9MjYgJ3VybCc9J3BhdGhcL2ltYWdlLnBuZycgJ2NvbG9yLWJsZW5kaW5nJz0nbXVsdGlwbHknXC8mZ3Q7JnF1b3Q7XC8mZ3Q7XG48XC9jb2RlPlxuPGRpdiBjbGFzcz1cIm1kLWFsZXJ0IG1kLWFsZXJ0LW5vdGVcIj5cbjxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOlwvXC93d3cudzMub3JnXC8yMDAwXC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+PHBhdGggZD1cIk0wIDhhOCA4IDAgMSAxIDE2IDBBOCA4IDAgMCAxIDAgOFptOC02LjVhNi41IDYuNSAwIDEgMCAwIDEzIDYuNSA2LjUgMCAwIDAgMC0xM1pNNi41IDcuNzVBLjc1Ljc1IDAgMCAxIDcuMjUgN2gxYS43NS43NSAwIDAgMSAuNzUuNzV2Mi43NWguMjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0yYS43NS43NSAwIDAgMSAwLTEuNWguMjV2LTJoLS4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNOCA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIlwvPjxcL3N2Zz5Ob3RlPFwvc3Bhbj5cbjxwPlRoZSBVUkwgb2YgdGhlIGltYWdlIGlzIG9wdGlvbmFsLiBJZiB0aGVyZSBpcyBubyBpbWFnZSB0aGUgbGF5b3V0IGVuZ2luZSB3aWxsIHVzZSB0aGUgd2lkdGggYW5kIGhlaWdodCB0byBjcmVhdGUgYSBzcGFjZSBpbnNpZGUgdGhlIHRleHQuIFRoaXMgZ2FwIGNhbiBiZSBmaWxsZWQgbGF0ZXIuPFwvcD5cbjxcL2Rpdj5cbjxkaXYgY2xhc3M9XCJtZC1hbGVydCBtZC1hbGVydC1ub3RlXCI+XG48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDpcL1wvd3d3LnczLm9yZ1wvMjAwMFwvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiPjxwYXRoIGQ9XCJNMCA4YTggOCAwIDEgMSAxNiAwQTggOCAwIDAgMSAwIDhabTgtNi41YTYuNSA2LjUgMCAxIDAgMCAxMyA2LjUgNi41IDAgMCAwIDAtMTNaTTYuNSA3Ljc1QS43NS43NSAwIDAgMSA3LjI1IDdoMWEuNzUuNzUgMCAwIDEgLjc1Ljc1djIuNzVoLjI1YS43NS43NSAwIDAgMSAwIDEuNWgtMmEuNzUuNzUgMCAwIDEgMC0xLjVoLjI1di0yaC0uMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTggNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJcLz48XC9zdmc+Tm90ZTxcL3NwYW4+XG48cD5BIGNvbG9yIGJsZW5kaW5nIG1vZGUgY2FuIGJlIHNldC4gVGhlIGRlZmF1bHQgaXMgTk9ORSwgdGhlIGltYWdlIHdpbGwgdXNlIGl0cyBvd24gY29sb3IuIElmIE1VTFRJUExZIGlzIHNldCwgdGhlIGNvbG9yIG9mIHRoZSBpbWFnZSB3aWxsIGJlIG11bHRpcGxpZWQgYnkgdGhlIGNvbG9yIG9mIHRoZSB0ZXh0LjxcL3A+XG48XC9kaXY+XG48XC9saT5cbjxsaT5cbjxwPjxjb2RlPiZsdDtzcGFuJmd0OzxcL2NvZGU+PFwvcD5cbjxwPlVzZSBzcGFuIHRhZyB0byBzZXQgbWFueSBzdHlsZXMgb24gY2hhcmFjdGVyJ3MgbGV2ZWwgZm9yIHRoZSBjaGFyYWN0ZXJzIGluc2lkZSB0aGUgZWxlbWVudC48XC9wPlxuPHA+VGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIGFyZSBzdXBwb3J0ZWQ6PFwvcD5cbjx1bD5cbjxsaT48Y29kZT5mb250LWZhbWlseTxcL2NvZGU+OiBUaGUgZm9udCBmYW1pbHkgYXR0cmlidXRlLjxcL2xpPlxuPGxpPjxjb2RlPmZvbnQtc2l6ZTxcL2NvZGU+OiBUaGUgZm9udCBzaXplIGF0dHJpYnV0ZS48XC9saT5cbjxsaT48Y29kZT5mb250LXdpZHRoPFwvY29kZT46IFRoZSBmb250IHdpZHRoIGF0dHJpYnV0ZS48XC9saT5cbjxsaT48Y29kZT5mb250LXNsYW50PFwvY29kZT46IFRoZSBmb250IHNsYW50IGF0dHJpYnV0ZS48XC9saT5cbjxsaT48Y29kZT50ZXh0LWNvbG9yPFwvY29kZT46IFRoZSBmcm9udGNvbG9yIHZhbHVlIGF0dHJpYnV0ZS48XC9saT5cbjxsaT48Y29kZT5iYWNrZ3JvdW5kLWNvbG9yPFwvY29kZT46IFRoZSB1bmRlbGluZSBjb2xvciBhdHRyaWJ1dGUuPFwvbGk+XG48bGk+PGNvZGU+dS1jb2xvcjxcL2NvZGU+OiBUaGUgdW5kZWxpbmUgaGVpZ2h0IGF0dHJpYnV0ZS48XC9saT5cbjxsaT48Y29kZT51LWhlaWdodDxcL2NvZGU+OiBUaGUgZm9udCBzbGFudCBhdHRyaWJ1dGUuPFwvbGk+XG48bGk+PGNvZGU+dS10eXBlPFwvY29kZT46IFRoZSB1bmRlbGluZSB0eXBlIGF0dHJpYnV0ZS48XC9saT5cbjxsaT48Y29kZT51LWRhc2gtZ2FwPFwvY29kZT46IFRoZSB1bmRlbGluZSBkYXNoLWdhcCBhdHRyaWJ1dGUuPFwvbGk+XG48bGk+PGNvZGU+dS1kYXNoLXdpZHRoPFwvY29kZT46IFRoZSB1bmRlbGluZSBkYXNoLXdpZHRoIGF0dHJpYnV0ZS48XC9saT5cbjxsaT48Y29kZT5zLWNvbG9yPFwvY29kZT46IFRoZSBzdHJpa2V0aHJvdWdoIGNvbG9yIGF0dHJpYnV0ZS48XC9saT5cbjxsaT48Y29kZT5zLWhlaWdodDxcL2NvZGU+OiBUaGUgc3RyaWtldGhyb3VnaCBoZWlnaHQgYXR0cmlidXRlLjxcL2xpPlxuPGxpPjxjb2RlPmNoYXItc3BhY2UtdmFsdWU8XC9jb2RlPjogVGhlIGNoYXJhY3Rlci1zcGFjaW5nIHZhbHVlIGF0dHJpYnV0ZS48XC9saT5cbjxcL3VsPlxuPHA+VGhlIGZvbGxvd2luZyBleGFtcGxlIHNob3dzIGhvdyB0byBhcHBseSBpdDo8XC9wPlxuPGNvZGUgY2xhc3M9XCJsYW5ndWFnZS14YW1sXCI+Jmx0O2Jhc2U6VGV4dExhYmVsIHg6TmFtZT0mcXVvdDt0eHQmcXVvdDsgRW5hYmxlTWFya3VwPSZxdW90O1RydWUmcXVvdDtcbiAgICBUZXh0PSZxdW90OyZsdDtzcGFuIGZvbnQtc2l6ZT0nMjAnIGZvbnQtZmFtaWx5PSdEZWphVnUgU2FucycgZm9udC13aWR0aD0nY29uZGVuc2VkJyBmb250LXNsYW50PSdpdGFsaWMnIHRleHQtY29sb3I9J2dyZWVuJyBjaGFyLXNwYWNlLXZhbHVlPScxMC4wZicmZ3Q7SGVsbG8gd29ybGQmbHQ7XC9zcGFuJmd0OyZxdW90O1wvJmd0O1xuPFwvY29kZT5cbjxcL2xpPlxuPFwvdWw+XG48aDMgaWQ9XCJjb250ZW50LXVzZS1tYXJrdXAtdG8tcmVwcmVzZW50LWVuY29kZWQtY2hhcmFjdGVyc1wiPjxhIGhyZWY9XCIjY29udGVudC11c2UtbWFya3VwLXRvLXJlcHJlc2VudC1lbmNvZGVkLWNoYXJhY3RlcnNcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlVzZSBtYXJrdXAgdG8gcmVwcmVzZW50IGVuY29kZWQgY2hhcmFjdGVyczxcL2gzPlxuPHA+TWFya3VwIHRleHQgaXMgbm90IGFsbG93ZWQgdG8gY29udGFpbiBzb21lIGNoYXJhY3RlcnMgdW5sZXNzIHRoZXkgYXJlIHJlcHJlc2VudGluZyB0YWdzIG9yIGVudGl0aWVzIHN1Y2ggYXMgJnF1b3Q7Jmx0OyZxdW90OywgJnF1b3Q7Jmd0OyZxdW90Oywgb3IgJnF1b3Q7JmFtcDsmcXVvdDsuIFRvIGluY2x1ZGUgdGhlc2UgY2hhcmFjdGVycyBhcyBhIHBhcnQgb2YgdGhlIHRleHQsIHlvdSBtdXN0IHVzZSByZXNlcnZlZCBlbnRpdGllcyBzdWNoIGFzIDxjb2RlPiZhbXA7bHQ7PFwvY29kZT4sIDxjb2RlPiZhbXA7Z3Q7PFwvY29kZT4sIG9yIDxjb2RlPiZhbXA7YW1wOzxcL2NvZGU+LiBUaGUgZm9sbG93aW5nIGV4YW1wbGUgdXNlcyByZXNlcnZlZCBlbnRpdGllczo8XC9wPlxuPGNvZGUgY2xhc3M9XCJsYW5ndWFnZS14YW1sXCI+Jmx0O2Jhc2U6VGV4dExhYmVsIHg6TmFtZT0mcXVvdDt0eHQmcXVvdDsgRW5hYmxlTWFya3VwPSZxdW90O1RydWUmcXVvdDsgVGV4dD0mcXVvdDsmYW1wO2x0OyZhbXA7Z3Q7JnF1b3Q7XC8mZ3Q7XG48XC9jb2RlPlxuPHA+TWFya3VwIHRleHQgY2FuIGluY2x1ZGUgY2hhcmFjdGVyIHdpdGggVVRGLTMyIHJlcHJlc2VudGF0aW9uIGFzIGVudGl0aWVzIGNvbnRhaW4gZGVjaW1hbCBvciBoZXhhZGVjaW1hbCB2YWx1ZXMuXG5UbyByZXByZXNlbnQgZGVjaW1hbCB2YWx1ZSwgeW91IGNhbiB1c2U6IDxjb2RlPiZhbXA7IzxcL2NvZGU+ICsgPGNvZGU+dXRmMzJfZGVjaW1hbF92YWx1ZTxcL2NvZGU+ICsgPGNvZGU+OzxcL2NvZGU+XG5UbyByZXByZXNlbnQgaGV4YWRlY2ltYWwgdmFsdWUsIHlvdSBjYW4gdXNlOiA8Y29kZT4mYW1wOyN4PFwvY29kZT4gKyA8Y29kZT51dGYzMl9oZXhhZGVjaW1hbF92YWx1ZTxcL2NvZGU+ICsgPGNvZGU+OzxcL2NvZGU+XG5UaGUgZm9sbG93aW5nIGV4YW1wbGUgdXNlcyBVVEYtMzIgZW50aXRpZXM6PFwvcD5cbjxjb2RlIGNsYXNzPVwibGFuZ3VhZ2UteGFtbFwiPiZsdDtiYXNlOlRleHRMYWJlbCB4Ok5hbWU9JnF1b3Q7dHh0JnF1b3Q7IEVuYWJsZU1hcmt1cD0mcXVvdDtUcnVlJnF1b3Q7IFRleHQ9JnF1b3Q7JmFtcDsjOTc4NjsgJmFtcDsjeDI2M2E7JnF1b3Q7XC8mZ3Q7XG48XC9jb2RlPlxuPGgzIGlkPVwiY29udGVudC10ZXh0bGFiZWwtcHJvcGVydGllc1wiPjxhIGhyZWY9XCIjY29udGVudC10ZXh0bGFiZWwtcHJvcGVydGllc1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+VGV4dExhYmVsIHByb3BlcnRpZXM8XC9oMz5cbjxwPkZvciB0ZXh0IGRlY29yYXRpb25zLCB0aGUgPGNvZGU+VGV4dExhYmVsPFwvY29kZT4gY2xhc3MgcHJvdmlkZXMgc2V2ZXJhbCBwcm9wZXJ0aWVzLiBBbGwgdGhlIHByb3BlcnRpZXMgYXJlIGVkaXRhYmxlIGFuZCBub25lIG9mIHRoZW0gYXJlIGFuaW1hdGFibGU6PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPlByb3BlcnR5PFwvdGg+XG48dGg+VHlwZTxcL3RoPlxuPHRoPkRlc2NyaXB0aW9uPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPjxjb2RlPlRleHQ8XC9jb2RlPjxcL3RkPlxuPHRkPlN0cmluZzxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgdGV4dCB0byBkaXNwbGF5IGluIFVURi04IGZvcm1hdC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPkZvbnRGYW1pbHk8XC9jb2RlPjxcL3RkPlxuPHRkPlN0cmluZzxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgcmVxdWVzdGVkIGZvbnQgZmFtaWx5LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+Rm9udFN0eWxlPFwvY29kZT48XC90ZD5cbjx0ZD5Qcm9wZXJ0eU1hcDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgcmVxdWVzdGVkIGZvbnQgc3R5bGUuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5NdWx0aUxpbmU8XC9jb2RlPjxcL3RkPlxuPHRkPkJvb2xlYW48XC90ZD5cbjx0ZD5TcGVjaWZpZXMgd2hldGhlciBvciBub3QgdG8gdXNlIHRoZSBtdWx0aS1saW5lIGxheW91dCBvcHRpb24uPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5Ib3Jpem9udGFsQWxpZ25tZW50PFwvY29kZT48XC90ZD5cbjx0ZD5Ib3Jpem9udGFsQWxpZ25tZW50PFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBob3Jpem9udGFsIGxpbmUgYWxpZ25tZW50LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+VmVydGljYWxBbGlnbm1lbnQ8XC9jb2RlPjxcL3RkPlxuPHRkPlZlcnRpY2FsQWxpZ25tZW50PFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSB2ZXJ0aWNhbCBsaW5lIGFsaWdubWVudC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlRleHRDb2xvcjxcL2NvZGU+PFwvdGQ+XG48dGQ+Q29sb3I8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIGNvbG9yIG9mIHRoZSB0ZXh0LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+U2hhZG93PFwvY29kZT48XC90ZD5cbjx0ZD5Qcm9wZXJ0eU1hcDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgc2hhZG93IG9mIHRoZSB0ZXh0LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+VW5kZXJsaW5lPFwvY29kZT48XC90ZD5cbjx0ZD5Qcm9wZXJ0eU1hcDxcL3RkPlxuPHRkPlNwZWNpZmllcyB1bmRlcmxpbmUgb2YgdGhlIHRleHQuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5FbmFibGVNYXJrdXA8XC9jb2RlPjxcL3RkPlxuPHRkPkJvb2xlYW48XC90ZD5cbjx0ZD5TcGVjaWZpZXMgd2hldGhlciB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgbWFya3VwIHN0cmluZyB0byBwcm9jZXNzIHRleHQgd2l0aGluIHRoZSBtYXJrdXAgdGFncyB1c2luZyBEQUxpIGFwcGxpY2F0aW9uLjxzdHJvbmc+Tm90ZTxcL3N0cm9uZz46IEJ5IGRlZmF1bHQsIHRoZSBtYXJrdXAgc3RyaW5nIGlzIGRpc2FibGVkLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+RW5hYmxlQXV0b1Njcm9sbDxcL2NvZGU+PFwvdGQ+XG48dGQ+Qm9vbGVhbjxcL3RkPlxuPHRkPlNwZWNpZmllcyB3aGV0aGVyIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBhdXRvIHNjcm9sbGluZy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPkF1dG9TY3JvbGxTcGVlZDxcL2NvZGU+PFwvdGQ+XG48dGQ+SW50ZWdlcjxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgc2Nyb2xsaW5nIHNwZWVkIGluIHBpeGVscyBwZXIgc2Vjb25kLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+QXV0b1Njcm9sbExvb3BDb3VudDxcL2NvZGU+PFwvdGQ+XG48dGQ+SW50ZWdlcjxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGNvbXBsZXRlIGxvb3BzIHRvIHNjcm9sbCwgd2hlbiBzY3JvbGxpbmcgaXMgZW5hYmxlZC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPkF1dG9TY3JvbGxHYXA8XC9jb2RlPjxcL3RkPlxuPHRkPkZsb2F0PFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBnYXAgYmVmb3JlIHNjcm9sbGluZyB3cmFwcy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPkxpbmVTcGFjaW5nPFwvY29kZT48XC90ZD5cbjx0ZD5GbG9hdDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgZGVmYXVsdCBzcGFjaW5nIGJldHdlZW4gbGluZXMgaW4gcG9pbnRzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+VW5kZXJsaW5lPFwvY29kZT48XC90ZD5cbjx0ZD5Qcm9wZXJ0eU1hcDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgZGVmYXVsdCB1bmRlcmxpbmUgcGFyYW1ldGVycy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlNoYWRvdzxcL2NvZGU+PFwvdGQ+XG48dGQ+UHJvcGVydHlNYXA8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIGRlZmF1bHQgc2hhZG93IHBhcmFtZXRlcnMuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5FbWJvc3M8XC9jb2RlPjxcL3RkPlxuPHRkPlN0cmluZzxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgZGVmYXVsdCBlbWJvc3MgcGFyYW1ldGVycy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPk91dGxpbmU8XC9jb2RlPjxcL3RkPlxuPHRkPlByb3BlcnR5TWFwPFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBkZWZhdWx0IG91dGxpbmUgcGFyYW1ldGVycy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlBpeGVsU2l6ZTxcL2NvZGU+PFwvdGQ+XG48dGQ+RmxvYXQ8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIHNpemUgb2YgZm9udCBpbiBwaXhlbHMuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5FbGxpcHNpczxcL2NvZGU+PFwvdGQ+XG48dGQ+Qm9vbGVhbjxcL3RkPlxuPHRkPlNwZWNpZmllcyB3aGV0aGVyIHRvIGVuYWJsZSBvciBkaXNhYmxlIGVsbGlwc2lzLCBpZiByZXF1aXJlZC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPkF1dG9TY3JvbGxMb29wRGVsYXk8XC9jb2RlPjxcL3RkPlxuPHRkPkZsb2F0PFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBhdXRvLXNjcm9sbCBsb29wIGRlbGF5LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+QXV0b1Njcm9sbFN0b3BNb2RlPFwvY29kZT48XC90ZD5cbjx0ZD5BdXRvU2Nyb2xsU3RvcE1vZGU8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIGF1dG8tc2Nyb2xsIHN0b3AgbW9kZS48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48cD48YSBuYW1lPVwidGV4dEZpZWxkXCI+PFwvYT48XC9wPlxuPGgyIGlkPVwiY29udGVudC10ZXh0ZmllbGRcIj48YSBocmVmPVwiI2NvbnRlbnQtdGV4dGZpZWxkXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5UZXh0RmllbGQ8XC9oMj5cbjxwPlRoZSA8YSBocmVmPVwiXC9hcHBsaWNhdGlvblwvZG90bmV0XC9hcGlcL1RpemVuRlhcL2xhdGVzdFwvYXBpXC9UaXplbi5OVUkuQmFzZUNvbXBvbmVudHMuVGV4dEZpZWxkLm1kXCI+VGV4dEZpZWxkPFwvYT4gY2xhc3MgcHJvdmlkZXMgYSBjb250cm9sIHRoYXQgYWxsb3dzIHNpbmdsZSBsaW5lIGVkaXRhYmxlIHRleHQgZmllbGQuPFwvcD5cbjxwPjxzdHJvbmc+RmlndXJlOiBUZXh0RmllbGQ8XC9zdHJvbmc+PFwvcD5cbjxwPjxpbWcgc3JjPVwibWVkaWFcL3RleHRmaWVsZC5wbmdcIiBhbHQ9XCJUZXh0RmllbGRcIiBcLz48XC9wPlxuPGgzIGlkPVwiY29udGVudC10ZXh0ZmllbGQtZXZlbnRzXCI+PGEgaHJlZj1cIiNjb250ZW50LXRleHRmaWVsZC1ldmVudHNcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlRleHRGaWVsZCBldmVudHM8XC9oMz5cbjxwPlRoZSBmb2xsb3dpbmcgdGFibGUgbGlzdHMgdGhlIGJhc2ljIHNpZ25hbHMgcHJvdmlkZWQgYnkgdGhlIDxjb2RlPlRleHRGaWVsZDxcL2NvZGU+IGNsYXNzOjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5JbnB1dCBzaWduYWw8XC90aD5cbjx0aD5EZXNjcmlwdGlvbjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD48Y29kZT5UZXh0Q2hhbmdlZDxcL2NvZGU+PFwvdGQ+XG48dGQ+RW1pdHRlZCB3aGVuIHRoZSB0ZXh0IGNoYW5nZXMuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5NYXhMZW5ndGhSZWFjaGVkPFwvY29kZT48XC90ZD5cbjx0ZD5FbWl0dGVkIHdoZW4gdGhlIGluc2VydGVkIHRleHQgZXhjZWVkcyB0aGUgbWF4aW11bSBjaGFyYWN0ZXIgbGltaXQuPFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPGgzIGlkPVwiY29udGVudC1jcmVhdGUtdGV4dGZpZWxkXCI+PGEgaHJlZj1cIiNjb250ZW50LWNyZWF0ZS10ZXh0ZmllbGRcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkNyZWF0ZSBUZXh0RmllbGQ8XC9oMz5cbjxwPkJlZm9yZSB0aGUgdGV4dCBpcyBlbnRlcmVkLCB0aGUgPGNvZGU+VGV4dEZpZWxkPFwvY29kZT4gY2xhc3MgZGlzcGxheXMgYSBwbGFjZWhvbGRlciB0ZXh0LiBBbiBhbHRlcm5hdGl2ZSBwbGFjZWhvbGRlciBpcyBkaXNwbGF5ZWQgd2hlbiA8Y29kZT5UZXh0RmllbGQ8XC9jb2RlPiBnZXRzIHRoZSBrZXlib2FyZCBmb2N1cy4gRm9yIGV4YW1wbGUsIHRoZSA8Y29kZT5UZXh0RmllbGQ8XC9jb2RlPiB0aGF0IGlzIHVzZWQgdG8gZW50ZXIgYSB1c2VybmFtZSBpbml0aWFsbHkgZGlzcGxheXMgdGhlIHRleHQgPGNvZGU+VW5rbm93biBOYW1lPFwvY29kZT4gYW5kIHRoZW4gdGhlIHRleHQgPGNvZGU+RW50ZXIgTmFtZTxcL2NvZGU+LCB3aGVuIHRoZSBjdXJzb3IgaXMgdmlzaWJsZS48XC9wPlxuPHA+VGhlIGZvbGxvd2luZyBleGFtcGxlIGlsbHVzdHJhdGVzIHRoZSBjcmVhdGlvbiBvZiBhIDxjb2RlPlRleHRGaWVsZDxcL2NvZGU+IG9iamVjdDo8XC9wPlxuPGNvZGUgY2xhc3M9XCJsYW5ndWFnZS14YW1sXCI+Jmx0O2Jhc2U6VGV4dEZpZWxkIHg6TmFtZT0mcXVvdDtmaWVsZCZxdW90OyBCYWNrZ3JvdW5kQ29sb3I9JnF1b3Q7V2hpdGUmcXVvdDtcbiAgICBQbGFjZWhvbGRlclRleHQ9JnF1b3Q7VW5rbm93biBOYW1lJnF1b3Q7IFBsYWNlaG9sZGVyVGV4dEZvY3VzZWQ9JnF1b3Q7RW50ZXIgTmFtZSZxdW90O1wvJmd0O1xuPFwvY29kZT5cbjxwPldoZW4gdGhlIDxjb2RlPlRleHRGaWVsZDxcL2NvZGU+IGlzIHRhcHBlZCwgaXQgYXV0b21hdGljYWxseSBnZXRzIHRoZSBrZXlib2FyZCBmb2N1cy4gS2V5IGV2ZW50cyBjb3JyZXNwb25kIHRvIGVudGVyaW5nIHRoZSB0ZXh0LiBBZGRpdGlvbmFsbHksIHRoZSBwbGFjZWhvbGRlciB0ZXh0IGlzIHJlbW92ZWQgYXMgc29vbiBhcyB0aGUgdGV4dCBpcyBlbnRlcmVkLiBUaGUgdGV4dCBlbnRlcmVkIGNhbiBiZSByZXRyaWV2ZWQgYnkgdXNpbmcgdGhlIDxjb2RlPlRFWFQ8XC9jb2RlPiBwcm9wZXJ0eTo8XC9wPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPnN0cmluZzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+ZmllbGRUZXh0U3RyaW5nPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gZmllbGQuVGV4dDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPGgzIGlkPVwiY29udGVudC1hbGlnbi10ZXh0LWluLXRleHRmaWVsZFwiPjxhIGhyZWY9XCIjY29udGVudC1hbGlnbi10ZXh0LWluLXRleHRmaWVsZFwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+QWxpZ24gdGV4dCBpbiBUZXh0RmllbGQ8XC9oMz5cbjxwPlRoZSA8Y29kZT5UZXh0RmllbGQ8XC9jb2RlPiBjbGFzcyBkaXNwbGF5cyBhIHNpbmdsZSBsaW5lIG9mIHRleHQgdGhhdCBzY3JvbGxzIGluIGVpdGhlciBvZiB0aGUgZm9sbG93aW5nIGNhc2U6PFwvcD5cbjx1bD5cbjxsaT5cbjxwPklmIHRoZXJlIGlzIG5vdCBlbm91Z2ggc3BhY2UgZm9yIHRoZSB0ZXh0IHRvIGdldCBkaXNwbGF5ZWQuPFwvcD5cbjxcL2xpPlxuPGxpPlxuPHA+SWYgdGhlcmUgaXMgZW5vdWdoIHNwYWNlLCB0aGUgdGV4dCBpcyBhbGlnbmVkIGhvcml6b250YWxseSB0byB0aGUgYmVnaW5uaW5nLCBlbmQsIG9yIGNlbnRlciBvZiB0aGUgYXZhaWxhYmxlIGFyZWEuPFwvcD5cbjxcL2xpPlxuPFwvdWw+XG48cD5UaGUgZm9sbG93aW5nIGV4YW1wbGUgaWxsdXN0cmF0ZXMgdGV4dCBhbGlnbm1lbnQ6PFwvcD5cbjxjb2RlIGNsYXNzPVwibGFuZ3VhZ2UteGFtbFwiPiZsdDtiYXNlOlRleHRGaWVsZCB4Ok5hbWU9JnF1b3Q7ZmllbGQmcXVvdDsgSG9yaXpvbnRhbEFsaWdubWVudD0mcXVvdDtCZWdpbiZxdW90O1wvJmd0O1xuPFwvY29kZT5cbjxoMyBpZD1cImNvbnRlbnQtdXNlLWlucHV0LXByb3BlcnRpZXMtaW4tdGV4dGZpZWxkXCI+PGEgaHJlZj1cIiNjb250ZW50LXVzZS1pbnB1dC1wcm9wZXJ0aWVzLWluLXRleHRmaWVsZFwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+VXNlIGlucHV0IHByb3BlcnRpZXMgaW4gVGV4dEZpZWxkPFwvaDM+XG48cD5UbyBjaGFuZ2UgdGhlIHRleHQgc2V0dGluZ3MgZm9yIG5ldyBpbnB1dCB0ZXh0LCB5b3UgY2FuIHVzZSB0aGUgaW5wdXQgcHJvcGVydGllcyBvZiB0aGUgPGNvZGU+VGV4dEZpZWxkPFwvY29kZT4gY2xhc3MsIHN1Y2ggYXMgPGNvZGU+SW5wdXRDb2xvcjxcL2NvZGU+LCA8Y29kZT5JbnB1dFBvaW50U2l6ZTxcL2NvZGU+LCBhbmQgc28gb24uPFwvcD5cbjxwPlRvIHVzZSB0aGVzZSBwcm9wZXJ0aWVzIHRoZXJlIGFyZSBzb21lIHNwZWNpZmljIGNvbmRpdGlvbnMuIEZvciBpbnN0YW5jZSwgeW91IGNhbiB1c2UgdGhlc2UgcHJvcGVydGllcyBlaXRoZXIgd2hlbiB0aGUgPGNvZGU+VGV4dENoYW5nZWQ8XC9jb2RlPiBldmVudCBvY2N1cnMgb3Igd2hlbiB0aGUgPGNvZGU+Q2xpY2tlZDxcL2NvZGU+IGV2ZW50IG9mIGJ1dHRvbiBvY2N1cnMuPFwvcD5cbjxwPlRoZSBmb2xsb3dpbmcgZXhhbXBsZSBpbGx1c3RyYXRlcyBob3cgdG8gdXNlIHRoZSA8Y29kZT5JbnB1dENvbG9yPFwvY29kZT4gcHJvcGVydHkgaW4gYSA8Y29kZT5UZXh0RmllbGQ8XC9jb2RlPjo8XC9wPlxuPGNvZGUgY2xhc3M9XCJsYW5ndWFnZS14YW1sXCI+Jmx0O2Jhc2U6VGV4dEZpZWxkIHg6TmFtZT0mcXVvdDtmaWVsZCZxdW90OyBUZXh0Q2hhbmdlZD0mcXVvdDtPblRleHRDaGFuZ2VkJnF1b3Q7XC8mZ3Q7XG48XC9jb2RlPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPnByaXZhdGU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPnZvaWQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPk9uVGV4dENoYW5nZWQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPig8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPm9iamVjdDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+c2VuZGVyPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4sIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+VGV4dEZpZWxkPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5UZXh0Q0hhbmdlZEV2ZW50QXJnczxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+ZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KTxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPns8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiM2QTczN0Q7LS1zaGlraS1kYXJrOiM2QTczN0RcIj4gICAgXC9cLyBEbyBzb21ldGhpbmcgaW4gcmVzcG9uc2UgdG8gdGV4dCBjaGFuZ2U8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgZS5UZXh0RmllbGQuSW5wdXRDb2xvciA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiBDb2xvci5ZZWxsb3c7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+fTxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+PFwvY29kZT48XC9wcmU+XG48aDMgaWQ9XCJjb250ZW50LXRleHRmaWVsZC1wcm9wZXJ0aWVzXCI+PGEgaHJlZj1cIiNjb250ZW50LXRleHRmaWVsZC1wcm9wZXJ0aWVzXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5UZXh0RmllbGQgcHJvcGVydGllczxcL2gzPlxuPHA+VG8gY2hhbmdlIHRoZSBsb29rIGFuZCBmZWVsIG9mIHRoZSB0ZXh0IGFuZCB0ZXh0IHJlbGF0ZWQgZWxlbWVudHMsIHVzZSB0aGUgPGNvZGU+VGV4dEZpZWxkPFwvY29kZT4gcHJvcGVydGllcy48XC9wPlxuPGgzIGlkPVwiY29udGVudC11c2UtZGVjb3JhdGlvbnMtZm9yLXRleHRmaWVsZFwiPjxhIGhyZWY9XCIjY29udGVudC11c2UtZGVjb3JhdGlvbnMtZm9yLXRleHRmaWVsZFwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+VXNlIGRlY29yYXRpb25zIGZvciBUZXh0RmllbGQ8XC9oMz5cbjxwPkZvciB0ZXh0IGRlY29yYXRpb25zLCB0aGUgZm9sbG93aW5nIDxjb2RlPlRleHRGaWVsZDxcL2NvZGU+IGNsYXNzIHByb3BlcnRpZXMgYXJlIGF2YWlsYWJsZS4gQWxsIHByb3BlcnRpZXMgYXJlIGVkaXRhYmxlIGFuZCBub25lIG9mIHRoZW0gYXJlIGFuaW1hdGFibGU6PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPlByb3BlcnR5PFwvdGg+XG48dGg+VHlwZTxcL3RoPlxuPHRoPkRlc2NyaXB0aW9uPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPjxjb2RlPlRleHQ8XC9jb2RlPjxcL3RkPlxuPHRkPlN0cmluZzxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgdGV4dCB0byBkaXNwbGF5IGluIFVURi04IGZvcm1hdC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlBsYWNlaG9sZGVyVGV4dDxcL2NvZGU+PFwvdGQ+XG48dGQ+U3RyaW5nPFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSB0ZXh0IHRvIGRpc3BsYXkgd2hlbiB0aGUgPGNvZGU+VGV4dEZpZWxkPFwvY29kZT4gaXMgZW1wdHkgYW5kIGluYWN0aXZlLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+UGxhY2Vob2xkZXJUZXh0Rm9jdXNlZDxcL2NvZGU+PFwvdGQ+XG48dGQ+U3RyaW5nPFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSB0ZXh0IHRvIGRpc3BsYXkgd2hlbiB0aGUgPGNvZGU+VGV4dEZpZWxkPFwvY29kZT4gaXMgZW1wdHkgd2l0aCBrZXktaW5wdXQgZm9jdXMuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5Gb250RmFtaWx5PFwvY29kZT48XC90ZD5cbjx0ZD5TdHJpbmc8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIHJlcXVlc3RlZCBmb250IGZhbWlseS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPkZvbnRTdHlsZTxcL2NvZGU+PFwvdGQ+XG48dGQ+UHJvcGVydHlNYXA8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIHJlcXVlc3RlZCBmb250IHN0eWxlLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+UG9pbnRTaXplPFwvY29kZT48XC90ZD5cbjx0ZD5GbG9hdDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgc2l6ZSBvZiBmb250IGluIHBvaW50cy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPk1heExlbmd0aDxcL2NvZGU+PFwvdGQ+XG48dGQ+SW50ZWdlcjxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyB0aGF0IGNhbiBiZSBpbnNlcnRlZC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPkV4Y2VlZFBvbGljeTxcL2NvZGU+PFwvdGQ+XG48dGQ+SW50ZWdlcjxcL3RkPlxuPHRkPlNwZWNpZmllcyBob3cgdGhlIHRleHQgaXMgdHJ1bmNhdGVkIHdoZW4gaXQgZG9lcyBub3QgZml0LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+SG9yaXpvbnRhbEFsaWdubWVudDxcL2NvZGU+PFwvdGQ+XG48dGQ+SG9yaXpvbnRhbEFsaWdubWVudDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgaG9yaXpvbnRhbCBsaW5lIGFsaWdubWVudC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlZlcnRpY2FsQWxpZ25tZW50PFwvY29kZT48XC90ZD5cbjx0ZD5WZXJ0aWNhbEFsaWdubWVudDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgdmVydGljYWwgbGluZSBhbGlnbm1lbnQuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5UZXh0Q29sb3I8XC9jb2RlPjxcL3RkPlxuPHRkPkNvbG9yPFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBjb2xvciBvZiB0aGUgdGV4dC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlBsYWNlaG9sZGVyVGV4dENvbG9yPFwvY29kZT48XC90ZD5cbjx0ZD5WZWN0b3I0PFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBjb2xvciBvZiB0aGUgcGxhY2Vob2xkZXIgdGV4dC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlByaW1hcnlDdXJzb3JDb2xvcjxcL2NvZGU+PFwvdGQ+XG48dGQ+VmVjdG9yNDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgY29sb3IgdGhhdCBpcyBhcHBsaWVkIHRvIHRoZSBwcmltYXJ5IGN1cnNvci48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlNlY29uZGFyeUN1cnNvckNvbG9yPFwvY29kZT48XC90ZD5cbjx0ZD5WZWN0b3I0PFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBjb2xvciB0aGF0IGlzIGFwcGxpZWQgdG8gdGhlIHNlY29uZGFyeSBjdXJzb3IuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5FbmFibGVDdXJzb3JCbGluazxcL2NvZGU+PFwvdGQ+XG48dGQ+Qm9vbGVhbjxcL3RkPlxuPHRkPlNwZWNpZmllcyB3aGV0aGVyIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBjdXJzb3IgYmxpbmsuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5DdXJzb3JCbGlua0ludGVydmFsPFwvY29kZT48XC90ZD5cbjx0ZD5GbG9hdDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgdGltZSBpbnRlcnZhbCBpbiBzZWNvbmRzIGJldHdlZW4gdGhlIGN1cnNvciBvbiBvciBvZmYgc3RhdGVzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+Q3Vyc29yQmxpbmtEdXJhdGlvbjxcL2NvZGU+PFwvdGQ+XG48dGQ+RmxvYXQ8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIHRpbWUgZHVyYXRpb24gaW4gc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgY3Vyc29yIHN0b3BzIGJsaW5raW5nLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+Q3Vyc29yV2lkdGg8XC9jb2RlPjxcL3RkPlxuPHRkPkludGVnZXI8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIHdpZHRoIG9mIHRoZSBjdXJzb3IuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5HcmFiSGFuZGxlSW1hZ2U8XC9jb2RlPjxcL3RkPlxuPHRkPlN0cmluZzxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgaW1hZ2UgdG8gZGlzcGxheSBmb3IgdGhlIGdyYWIgaGFuZGxlLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+R3JhYkhhbmRsZVByZXNzZWRJbWFnZTxcL2NvZGU+PFwvdGQ+XG48dGQ+U3RyaW5nPFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBpbWFnZSB0byBkaXNwbGF5IHdoZW4gdGhlIGdyYWIgaGFuZGxlIGlzIHByZXNzZWQuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5TY3JvbGxUaHJlc2hvbGQ8XC9jb2RlPjxcL3RkPlxuPHRkPkZsb2F0PFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHdoZXRoZXIgdGhlIGhvcml6b250YWwgc2Nyb2xsaW5nIHdpbGwgb2NjdXIsIGlmIHRoZSBjdXJzb3IgaXMgY2xvc2VyIHRvIHRoZSBjb250cm9sIGJvcmRlci48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlNjcm9sbFNwZWVkPFwvY29kZT48XC90ZD5cbjx0ZD5GbG9hdDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgc2Nyb2xsIHNwZWVkIGluIHBpeGVscyBwZXIgc2Vjb25kLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+U2VsZWN0aW9uSGFuZGxlSW1hZ2VMZWZ0PFwvY29kZT48XC90ZD5cbjx0ZD5Qcm9wZXJ0eU1hcDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgZGlzcGxheSBpbWFnZSB1c2VkIGZvciB0aGUgbGVmdCBzZWxlY3Rpb24gaGFuZGxlLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+U2VsZWN0aW9uSGFuZGxlSW1hZ2VSaWdodDxcL2NvZGU+PFwvdGQ+XG48dGQ+UHJvcGVydHlNYXA8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIGRpc3BsYXkgaW1hZ2UgdXNlZCBmb3IgdGhlIHJpZ2h0IHNlbGVjdGlvbiBoYW5kbGUuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5TZWxlY3Rpb25IYW5kbGVQcmVzc2VkSW1hZ2VMZWZ0PFwvY29kZT48XC90ZD5cbjx0ZD5Qcm9wZXJ0eU1hcDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgZGlzcGxheSBpbWFnZSB1c2VkIHdoZW4gdGhlIGxlZnQgaGFuZGxlIGlzIHByZXNzZWQuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5TZWxlY3Rpb25IYW5kbGVQcmVzc2VkSW1hZ2VSaWdodDxcL2NvZGU+PFwvdGQ+XG48dGQ+UHJvcGVydHlNYXA8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIGRpc3BsYXkgaW1hZ2UgdXNlZCB3aGVuIHRoZSByaWdodCBoYW5kbGUgaXMgcHJlc3NlZC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlNlbGVjdGlvbkhhbmRsZU1hcmtlckltYWdlTGVmdDxcL2NvZGU+PFwvdGQ+XG48dGQ+UHJvcGVydHlNYXA8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIGRpc3BsYXkgaW1hZ2UgdXNlZCBmb3IgbGVmdCBzZWxlY3Rpb24gaGFuZGxlIG1hcmtlci48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlNlbGVjdGlvbkhhbmRsZU1hcmtlckltYWdlUmlnaHQ8XC9jb2RlPjxcL3RkPlxuPHRkPlByb3BlcnR5TWFwPFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBkaXNwbGF5IGltYWdlIHVzZWQgZm9yIHJpZ2h0IHNlbGVjdGlvbiBoYW5kbGUgbWFya2VyLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+U2VsZWN0aW9uSGlnaGxpZ2h0Q29sb3I8XC9jb2RlPjxcL3RkPlxuPHRkPlZlY3RvcjQ8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIHNlbGVjdGVkIGhpZ2hsaWdodCBjb2xvci48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPkRlY29yYXRpb25Cb3VuZGluZ0JveDxcL2NvZGU+PFwvdGQ+XG48dGQ+UmVjdGFuZ2xlPFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBwb3NpdGlvbiBvZiBkZWNvcmF0aW9uIHN1Y2ggYXMgaGFuZGxlcyBhbmQgc28gb24gd2l0aGluIHRoZSBvbi1zY3JlZW4gYXJlYS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPklucHV0TWV0aG9kU2V0dGluZ3M8XC9jb2RlPjxcL3RkPlxuPHRkPlByb3BlcnR5TWFwPFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBzZXR0aW5ncyByZWxhdGVkIHRvIHRoZSBzeXN0ZW0gaW5wdXQgbWV0aG9kLCBrZXksIGFuZCB2YWx1ZS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPklucHV0Q29sb3I8XC9jb2RlPjxcL3RkPlxuPHRkPlZlY3RvcjQ8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIGNvbG9yIG9mIHRoZSBuZXcgaW5wdXQgdGV4dC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPkVuYWJsZU1hcmt1cDxcL2NvZGU+PFwvdGQ+XG48dGQ+Qm9vbGVhbjxcL3RkPlxuPHRkPlNwZWNpZmllcyB3aGV0aGVyIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBtYXJrdXAgc3RyaW5nIHRvIHByb2Nlc3MgdGV4dCB3aXRoaW4gdGhlIG1hcmt1cCB0YWdzIHVzaW5nIERBTGkgYXBwbGljYXRpb24uPGJyPjxzdHJvbmc+Tm90ZTxcL3N0cm9uZz46IEJ5IGRlZmF1bHQsIHRoZSBtYXJrdXAgc3RyaW5nIGlzIGRpc2FibGVkLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+SW5wdXRGb250RmFtaWx5PFwvY29kZT48XC90ZD5cbjx0ZD5TdHJpbmc8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIGZvbnQgZmFtaWx5IG9mIHRoZSBuZXcgaW5wdXQgdGV4dC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPklucHV0Rm9udFN0eWxlPFwvY29kZT48XC90ZD5cbjx0ZD5Qcm9wZXJ0eU1hcDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgZm9udCBzdHlsZSBvZiB0aGUgbmV3IGlucHV0IHRleHQuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5JbnB1dFBvaW50U2l6ZTxcL2NvZGU+PFwvdGQ+XG48dGQ+RmxvYXQ8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIGZvbnQgc2l6ZSBvZiB0aGUgbmV3IGlucHV0IHRleHQgaW4gcG9pbnRzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+VW5kZXJsaW5lPFwvY29kZT48XC90ZD5cbjx0ZD5Qcm9wZXJ0eU1hcDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgZGVmYXVsdCB1bmRlcmxpbmUgcGFyYW1ldGVycy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPklucHV0VW5kZXJsaW5lPFwvY29kZT48XC90ZD5cbjx0ZD5TdHJpbmc8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIHVuZGVybGluZSBwYXJhbWV0ZXJzIG9mIHRoZSBuZXcgaW5wdXQgdGV4dC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlNoYWRvdzxcL2NvZGU+PFwvdGQ+XG48dGQ+UHJvcGVydHlNYXA8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIGRlZmF1bHQgc2hhZG93IHBhcmFtZXRlcnMuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5JbnB1dFNoYWRvdzxcL2NvZGU+PFwvdGQ+XG48dGQ+U3RyaW5nPFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBzaGFkb3cgcGFyYW1ldGVycyBvZiB0aGUgbmV3IGlucHV0IHRleHQuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5FbWJvc3M8XC9jb2RlPjxcL3RkPlxuPHRkPlN0cmluZzxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgZGVmYXVsdCBlbWJvc3MgcGFyYW1ldGVycy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPklucHV0RW1ib3NzPFwvY29kZT48XC90ZD5cbjx0ZD5TdHJpbmc8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIGVtYm9zcyBwYXJhbWV0ZXJzIG9mIHRoZSBuZXcgaW5wdXQgdGV4dC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPk91dGxpbmU8XC9jb2RlPjxcL3RkPlxuPHRkPlByb3BlcnR5TWFwPFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBkZWZhdWx0IG91dGxpbmUgcGFyYW1ldGVycy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPklucHV0T3V0bGluZTxcL2NvZGU+PFwvdGQ+XG48dGQ+U3RyaW5nPFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBvdXRsaW5lIHBhcmFtZXRlcnMgb2YgdGhlIG5ldyBpbnB1dCB0ZXh0LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+SGlkZGVuSW5wdXRTZXR0aW5nczxcL2NvZGU+PFwvdGQ+XG48dGQ+UHJvcGVydHlNYXA8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgaGlkaW5nIHRoZSBpbnB1dCBjaGFyYWN0ZXJzIGFuZCBzaG93aW5nIGRlZmF1bHQgY2hhcmFjdGVyIGZvciB0aGUgcGFzc3dvcmQgb3IgcGluIGVudHJ5LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+UGl4ZWxTaXplPFwvY29kZT48XC90ZD5cbjx0ZD5GbG9hdDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgc2l6ZSBvZiBmb250IGluIHBpeGVscy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPkVuYWJsZVNlbGVjdGlvbjxcL2NvZGU+PFwvdGQ+XG48dGQ+Qm9vbGVhbjxcL3RkPlxuPHRkPlNwZWNpZmllcyB3aGV0aGVyIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRleHQgc2VsZWN0aW9uLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+UGxhY2Vob2xkZXI8XC9jb2RlPjxcL3RkPlxuPHRkPlByb3BlcnR5TWFwPFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBhdHRyaWJ1dGVzIG9mIHRoZSA8Y29kZT5QbGFjZWhvbGRlcjxcL2NvZGU+IHByb3BlcnR5LiBUaGUgYXR0cmlidXRlcyBvZiB0aGlzIHByb3BlcnR5IGFyZSB0ZXh0LCBjb2xvciwgZm9udCBmYW1pbHksIGZvbnQgc3R5bGUsIHBvaW50IHNpemUsIGFuZCBwaXhlbCBzaXplLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+RWxsaXBzaXM8XC9jb2RlPjxcL3RkPlxuPHRkPkJvb2xlYW48XC90ZD5cbjx0ZD5TcGVjaWZpZXMgd2hldGhlciB0byBlbmFibGUgb3IgZGlzYWJsZSBlbGxpcHNpcywgaWYgcmVxdWlyZWQuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5UcmFuc2xhdGFibGVQbGFjZWhvbGRlclRleHQ8XC9jb2RlPjxcL3RkPlxuPHRkPlN0cmluZzxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgPGNvZGU+VHJhbnNsYXRhYmxlUGxhY2Vob2xkZXJUZXh0PFwvY29kZT4gcHJvcGVydHkgdGhhdCBzZXRzIHRoZSBTSUQgdmFsdWUuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5UcmFuc2xhdGFibGVUZXh0PFwvY29kZT48XC90ZD5cbjx0ZD5TdHJpbmc8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIDxjb2RlPlRyYW5zbGF0YWJsZVRleHQ8XC9jb2RlPiBwcm9wZXJ0eSB0aGF0IHNldHMgdGhlIFNJRCB2YWx1ZS48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48cD48YSBuYW1lPVwidGV4dEVkaXRvclwiPjxcL2E+PFwvcD5cbjxoMiBpZD1cImNvbnRlbnQtdGV4dGVkaXRvclwiPjxhIGhyZWY9XCIjY29udGVudC10ZXh0ZWRpdG9yXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5UZXh0RWRpdG9yPFwvaDI+XG48cD5UaGUgPGEgaHJlZj1cIlwvYXBwbGljYXRpb25cL2RvdG5ldFwvYXBpXC9UaXplbkZYXC9sYXRlc3RcL2FwaVwvVGl6ZW4uTlVJLkJhc2VDb21wb25lbnRzLlRleHRFZGl0b3IubWRcIj5UZXh0RWRpdG9yPFwvYT4gY2xhc3MgcHJvdmlkZXMgYSBjb250cm9sIHRoYXQgYWxsb3dzIG11bHRpLWxpbmUgdGV4dCBlZGl0aW5nLiBJdCBpcyBzaW1pbGFyIHRvIHRoZSA8YSBocmVmPVwiI3RleHRGaWVsZFwiPlRleHRGaWVsZDxcL2E+IGNvbnRyb2wsIHdoZXJlIGRpZmZlcmVudCBmb3JtYXR0aW5nIGNhbiBiZSBhcHBsaWVkIHRvIGRpZmZlcmVudCBwYXJ0cyBvZiB0aGUgdGV4dC4gRm9yIGV4YW1wbGUsIHlvdSBjYW4gY2hhbmdlIHRoZSBmb250IGNvbG9yLCBmb250IHN0eWxlLCBwb2ludCBzaXplLCBhbmQgZm9udCBmYW1pbHkuPFwvcD5cbjxwPlRoZSA8Y29kZT5UZXh0RWRpdG9yPFwvY29kZT4gYWxzbyBzdXBwb3J0cyBtYXJrdXAsIGFuZCB0ZXh0IGNhbiBiZSBzY3JvbGxlZCB2ZXJ0aWNhbGx5IHdpdGhpbiBpdC48XC9wPlxuPHA+PHN0cm9uZz5GaWd1cmU6IFRleHRFZGl0b3I8XC9zdHJvbmc+PFwvcD5cbjxwPjxpbWcgc3JjPVwibWVkaWFcL2RhbGlfdGV4dGVkaXRvci5wbmdcIiBhbHQ9XCJUZXh0RWRpdG9yXCIgXC8+PFwvcD5cbjxoMyBpZD1cImNvbnRlbnQtdGV4dGVkaXRvci1ldmVudHNcIj48YSBocmVmPVwiI2NvbnRlbnQtdGV4dGVkaXRvci1ldmVudHNcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlRleHRFZGl0b3IgZXZlbnRzPFwvaDM+XG48cD5UaGUgZm9sbG93aW5nIHRhYmxlIGxpc3RzIHRoZSBiYXNpYyBzaWduYWxzIHByb3ZpZGVkIGJ5IHRoZSA8Y29kZT5UZXh0RWRpdG9yPFwvY29kZT4gY2xhc3M6PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPklucHV0IHNpZ25hbDxcL3RoPlxuPHRoPkRlc2NyaXB0aW9uPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPjxjb2RlPlRleHRDaGFuZ2VkPFwvY29kZT48XC90ZD5cbjx0ZD5FbWl0dGVkIHdoZW4gdGhlIHRleHQgY2hhbmdlcy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlNjcm9sbFN0YXRlQ2hhbmdlZDxcL2NvZGU+PFwvdGQ+XG48dGQ+RW1pdHRlZCB3aGVuIDxjb2RlPlRleHRFZGl0b3I8XC9jb2RlPiBzY3JvbGxpbmcgaXMgc3RhcnRlZCBvciBmaW5pc2hlZC48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aDMgaWQ9XCJjb250ZW50LWNyZWF0ZS10ZXh0ZWRpdG9yXCI+PGEgaHJlZj1cIiNjb250ZW50LWNyZWF0ZS10ZXh0ZWRpdG9yXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5DcmVhdGUgVGV4dEVkaXRvcjxcL2gzPlxuPHA+VGhlIGZvbGxvd2luZyBleGFtcGxlIHNob3dzIGhvdyB0byBjcmVhdGUgYSA8Y29kZT5UZXh0RWRpdG9yPFwvY29kZT4gb2JqZWN0OjxcL3A+XG48Y29kZSBjbGFzcz1cImxhbmd1YWdlLXhhbWxcIj4mbHQ7YmFzZTpUZXh0RmllbGQgeDpOYW1lPSZxdW90O2VkaXRvciZxdW90OyBQb3NpdGlvbjJEPSZxdW90OzEwLDEwJnF1b3Q7IFNpemUyRD0mcXVvdDs0MDAsNDAwJnF1b3Q7XG4gICAgQmFja2dyb3VuZENvbG9yPSZxdW90O1JlZCZxdW90OyBQb2ludFNpemU9JnF1b3Q7MTAmcXVvdDsgVGV4dENvbG9yPSZxdW90O1doaXRlJnF1b3Q7XG4gICAgVGV4dD0mcXVvdDtUaGlzIGlzIGEgbXVsdGlsaW5lIHRleHQuXFxuIEkgY2FuIHdyaXRlIHNldmVyYWwgbGluZXMuXFxuJnF1b3Q7XC8mZ3Q7XG48XC9jb2RlPlxuPGgzIGlkPVwiY29udGVudC10ZXh0ZWRpdG9yLXByb3BlcnRpZXNcIj48YSBocmVmPVwiI2NvbnRlbnQtdGV4dGVkaXRvci1wcm9wZXJ0aWVzXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5UZXh0RWRpdG9yIHByb3BlcnRpZXM8XC9oMz5cbjxwPllvdSBjYW4gbW9kaWZ5IHRoZSA8Y29kZT5UZXh0RWRpdG9yPFwvY29kZT4gYXBwZWFyYW5jZSBhbmQgYmVoYXZpb3IgdXNpbmcgaXRzIHByb3BlcnRpZXMuPFwvcD5cbjxwPlRoZSBmb2xsb3dpbmcgdGFibGUgbGlzdHMgdGhlIGF2YWlsYWJsZSA8Y29kZT5UZXh0RWRpdG9yPFwvY29kZT4gcHJvcGVydGllczo8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+UHJvcGVydHk8XC90aD5cbjx0aD5UeXBlPFwvdGg+XG48dGg+RGVzY3JpcHRpb248XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+PGNvZGU+VGV4dDxcL2NvZGU+PFwvdGQ+XG48dGQ+U3RyaW5nPFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSB0ZXh0IHRvIGRpc3BsYXkgaW4gVVRGLTggZm9ybWF0LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+VGV4dENvbG9yPFwvY29kZT48XC90ZD5cbjx0ZD5WZWN0b3I0PFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBjb2xvciBvZiB0aGUgdGV4dC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPkZvbnRGYW1pbHk8XC9jb2RlPjxcL3RkPlxuPHRkPlN0cmluZzxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgcmVxdWVzdGVkIGZvbnQgZmFtaWx5LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+Rm9udFN0eWxlPFwvY29kZT48XC90ZD5cbjx0ZD5Qcm9wZXJ0eU1hcDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgcmVxdWVzdGVkIGZvbnQgc3R5bGUuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5Qb2ludFNpemU8XC9jb2RlPjxcL3RkPlxuPHRkPkZsb2F0PFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBzaXplIG9mIGZvbnQgaW4gcG9pbnRzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+SG9yaXpvbnRhbEFsaWdubWVudDxcL2NvZGU+PFwvdGQ+XG48dGQ+SG9yaXpvbnRhbEFsaWdubWVudDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgaG9yaXpvbnRhbCBsaW5lIGFsaWdubWVudC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlNjcm9sbFRocmVzaG9sZDxcL2NvZGU+PFwvdGQ+XG48dGQ+RmxvYXQ8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgd2hldGhlciB0aGUgaG9yaXpvbnRhbCBzY3JvbGxpbmcgd2lsbCBvY2N1ciwgaWYgdGhlIGN1cnNvciBpcyBjbG9zZXIgdG8gdGhlIGNvbnRyb2wgYm9yZGVyLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+U2Nyb2xsU3BlZWQ8XC9jb2RlPjxcL3RkPlxuPHRkPkZsb2F0PFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBzY3JvbGwgc3BlZWQgaW4gcGl4ZWxzIHBlciBzZWNvbmQuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5QcmltYXJ5Q3Vyc29yQ29sb3I8XC9jb2RlPjxcL3RkPlxuPHRkPlZlY3RvcjQ8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIGNvbG9yIHRoYXQgaXMgYXBwbGllZCB0byB0aGUgcHJpbWFyeSBjdXJzb3IuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5TZWNvbmRhcnlDdXJzb3JDb2xvcjxcL2NvZGU+PFwvdGQ+XG48dGQ+VmVjdG9yNDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgY29sb3IgdGhhdCBpcyBhcHBsaWVkIHRvIHRoZSBzZWNvbmRhcnkgY3Vyc29yLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+RW5hYmxlQ3Vyc29yQmxpbms8XC9jb2RlPjxcL3RkPlxuPHRkPkJvb2xlYW48XC90ZD5cbjx0ZD5TcGVjaWZpZXMgd2hldGhlciB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgY3Vyc29yIGJsaW5rLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+Q3Vyc29yQmxpbmtJbnRlcnZhbDxcL2NvZGU+PFwvdGQ+XG48dGQ+RmxvYXQ8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIHRpbWUgaW50ZXJ2YWwgaW4gc2Vjb25kcyBiZXR3ZWVuIGN1cnNvciBvbiBvciBvZmYgc3RhdGVzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+Q3Vyc29yQmxpbmtEdXJhdGlvbjxcL2NvZGU+PFwvdGQ+XG48dGQ+RmxvYXQ8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIHRpbWUgZHVyYXRpb24gaW4gc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgY3Vyc29yIHN0b3BzIGJsaW5raW5nLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+Q3Vyc29yV2lkdGg8XC9jb2RlPjxcL3RkPlxuPHRkPkludGVnZXI8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIHdpZHRoIG9mIHRoZSBjdXJzb3IuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5HcmFiSGFuZGxlSW1hZ2U8XC9jb2RlPjxcL3RkPlxuPHRkPlN0cmluZzxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgZGlzcGxheSBpbWFnZSB1c2VkIGZvciB0aGUgZ3JhYiBoYW5kbGUuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5HcmFiSGFuZGxlUHJlc3NlZEltYWdlPFwvY29kZT48XC90ZD5cbjx0ZD5TdHJpbmc8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIGRpc3BsYXkgaW1hZ2UgdXNlZCB3aGVuIHRoZSBncmFiIGhhbmRsZSBpcyBwcmVzc2VkLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+U2VsZWN0aW9uSGFuZGxlSW1hZ2VMZWZ0PFwvY29kZT48XC90ZD5cbjx0ZD5Qcm9wZXJ0eU1hcDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgZGlzcGxheSBpbWFnZSB1c2VkIGZvciB0aGUgbGVmdCBzZWxlY3Rpb24gaGFuZGxlLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+U2VsZWN0aW9uSGFuZGxlSW1hZ2VSaWdodDxcL2NvZGU+PFwvdGQ+XG48dGQ+UHJvcGVydHlNYXA8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIGRpc3BsYXkgaW1hZ2UgdXNlZCBmb3IgdGhlIHJpZ2h0IHNlbGVjdGlvbiBoYW5kbGUuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5TZWxlY3Rpb25IYW5kbGVQcmVzc2VkSW1hZ2VMZWZ0PFwvY29kZT48XC90ZD5cbjx0ZD5Qcm9wZXJ0eU1hcDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgZGlzcGxheSBpbWFnZSB1c2VkIHdoZW4gdGhlIGxlZnQgaGFuZGxlIGlzIHByZXNzZWQuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5TZWxlY3Rpb25IYW5kbGVQcmVzc2VkSW1hZ2VSaWdodDxcL2NvZGU+PFwvdGQ+XG48dGQ+UHJvcGVydHlNYXA8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIGRpc3BsYXkgaW1hZ2UgdXNlZCB3aGVuIHRoZSByaWdodCBoYW5kbGUgaXMgcHJlc3NlZC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlNlbGVjdGlvbkhhbmRsZU1hcmtlckltYWdlTGVmdDxcL2NvZGU+PFwvdGQ+XG48dGQ+UHJvcGVydHlNYXA8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIGRpc3BsYXkgaW1hZ2UgdXNlZCBmb3IgdGhlIGxlZnQgc2VsZWN0aW9uIGhhbmRsZSBtYXJrZXIuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5TZWxlY3Rpb25IYW5kbGVNYXJrZXJJbWFnZVJpZ2h0PFwvY29kZT48XC90ZD5cbjx0ZD5Qcm9wZXJ0eU1hcDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgZGlzcGxheSBpbWFnZSB1c2VkIGZvciB0aGUgcmlnaHQgc2VsZWN0aW9uIGhhbmRsZSBtYXJrZXIuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5TZWxlY3Rpb25IaWdobGlnaHRDb2xvcjxcL2NvZGU+PFwvdGQ+XG48dGQ+VmVjdG9yNDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgc2VsZWN0ZWQgaGlnaGxpZ2h0IGNvbG9yLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+RGVjb3JhdGlvbkJvdW5kaW5nQm94PFwvY29kZT48XC90ZD5cbjx0ZD5SZWN0YW5nbGU8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIHBvc2l0aW9uIG9mIGRlY29yYXRpb24gc3VjaCBhcyBoYW5kbGVzIGFuZCBzbyBvbiB3aXRoaW4gdGhlIG9uLXNjcmVlbiBhcmVhLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+RW5hYmxlTWFya3VwPFwvY29kZT48XC90ZD5cbjx0ZD5Cb29sZWFuPFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHdoZXRoZXIgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIG1hcmt1cCBzdHJpbmcgdG8gcHJvY2VzcyB0ZXh0IHdpdGhpbiB0aGUgbWFya3VwIHRhZ3MgdXNpbmcgREFMaSBhcHBsaWNhdGlvbi48YnI+PHN0cm9uZz5Ob3RlPFwvc3Ryb25nPjogQnkgZGVmYXVsdCwgdGhlIG1hcmt1cCBzdHJpbmcgaXMgZGlzYWJsZWQuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5JbnB1dENvbG9yPFwvY29kZT48XC90ZD5cbjx0ZD5WZWN0b3I0PFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBjb2xvciBvZiB0aGUgbmV3IGlucHV0IHRleHQuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5JbnB1dEZvbnRGYW1pbHk8XC9jb2RlPjxcL3RkPlxuPHRkPlN0cmluZzxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgZm9udCBmYW1pbHkgb2YgdGhlIG5ldyBpbnB1dCB0ZXh0LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+SW5wdXRGb250U3R5bGU8XC9jb2RlPjxcL3RkPlxuPHRkPlByb3BlcnR5TWFwPFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBmb250IHN0eWxlIG9mIHRoZSBuZXcgaW5wdXQgdGV4dC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPklucHV0UG9pbnRTaXplPFwvY29kZT48XC90ZD5cbjx0ZD5GbG9hdDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgZm9udCBzaXplIG9mIHRoZSBuZXcgaW5wdXQgdGV4dCBpbiBwb2ludHMuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5MaW5lU3BhY2luZzxcL2NvZGU+PFwvdGQ+XG48dGQ+RmxvYXQ8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIGRlZmF1bHQgZXh0cmEgc3BhY2UgYmV0d2VlbiBsaW5lcyBpbiBwb2ludHMuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5JbnB1dExpbmVTcGFjaW5nPFwvY29kZT48XC90ZD5cbjx0ZD5GbG9hdDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgZXh0cmEgc3BhY2UgYmV0d2VlbiBsaW5lcyBpbiBwb2ludHMuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5VbmRlcmxpbmU8XC9jb2RlPjxcL3RkPlxuPHRkPlByb3BlcnR5TWFwPFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBkZWZhdWx0IHVuZGVybGluZSBwYXJhbWV0ZXJzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+SW5wdXRVbmRlcmxpbmU8XC9jb2RlPjxcL3RkPlxuPHRkPlN0cmluZzxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgdW5kZXJsaW5lIHBhcmFtZXRlcnMgb2YgdGhlIG5ldyBpbnB1dCB0ZXh0LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+U2hhZG93PFwvY29kZT48XC90ZD5cbjx0ZD5Qcm9wZXJ0eU1hcDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgZGVmYXVsdCBzaGFkb3cgcGFyYW1ldGVycy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPklucHV0U2hhZG93PFwvY29kZT48XC90ZD5cbjx0ZD5TdHJpbmc8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIHNoYWRvdyBwYXJhbWV0ZXJzIG9mIHRoZSBuZXcgaW5wdXQgdGV4dC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPkVtYm9zczxcL2NvZGU+PFwvdGQ+XG48dGQ+U3RyaW5nPFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBkZWZhdWx0IGVtYm9zcyBwYXJhbWV0ZXJzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+SW5wdXRFbWJvc3M8XC9jb2RlPjxcL3RkPlxuPHRkPlN0cmluZzxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgZW1ib3NzIHBhcmFtZXRlcnMgb2YgdGhlIG5ldyBpbnB1dCB0ZXh0LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+T3V0bGluZTxcL2NvZGU+PFwvdGQ+XG48dGQ+UHJvcGVydHlNYXA8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIGRlZmF1bHQgb3V0bGluZSBwYXJhbWV0ZXJzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+SW5wdXRPdXRsaW5lPFwvY29kZT48XC90ZD5cbjx0ZD5TdHJpbmc8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIG91dGxpbmUgcGFyYW1ldGVycyBvZiB0aGUgbmV3IGlucHV0IHRleHQuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5TbW9vdGhTY3JvbGw8XC9jb2RlPjxcL3RkPlxuPHRkPkJvb2xlYW48XC90ZD5cbjx0ZD5TcGVjaWZpZXMgd2hldGhlciB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgc21vb3RoIHNjcm9sbCBhbmltYXRpb24uPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5TbW9vdGhTY3JvbGxEdXJhdGlvbjxcL2NvZGU+PFwvdGQ+XG48dGQ+RmxvYXQ8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIGR1cmF0aW9uIG9mIHNtb290aCBzY3JvbGwgYW5pbWF0aW9uLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+RW5hYmxlU2Nyb2xsQmFyPFwvY29kZT48XC90ZD5cbjx0ZD5Cb29sZWFuPFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHdoZXRoZXIgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIHNjcm9sbCBiYXIuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5TY3JvbGxCYXJTaG93RHVyYXRpb248XC9jb2RlPjxcL3RkPlxuPHRkPkZsb2F0PFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBkdXJhdGlvbiBvZiB0aGUgc2Nyb2xsIGJhciB0byBzaG93LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+U2Nyb2xsQmFyRmFkZUR1cmF0aW9uPFwvY29kZT48XC90ZD5cbjx0ZD5GbG9hdDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgZHVyYXRpb24gb2YgdGhlIHNjcm9sbCBiYXIgdG8gZmFkZSBvdXQuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5QaXhlbFNpemU8XC9jb2RlPjxcL3RkPlxuPHRkPkZsb2F0PFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBzaXplIG9mIGZvbnQgaW4gcGl4ZWxzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+TGluZUNvdW50PFwvY29kZT48XC90ZD5cbjx0ZD5JbnRlZ2VyPFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBsaW5lIGNvdW50IG9mIHRleHQuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5FbmFibGVTZWxlY3Rpb248XC9jb2RlPjxcL3RkPlxuPHRkPkJvb2xlYW48XC90ZD5cbjx0ZD5TcGVjaWZpZXMgd2hldGhlciB0byBlbmFibGUgb3IgZGlzYWJsZSB0ZXh0IHNlbGVjdGlvbi48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPlBsYWNlaG9sZGVyPFwvY29kZT48XC90ZD5cbjx0ZD5Qcm9wZXJ0eU1hcDxcL3RkPlxuPHRkPlNwZWNpZmllcyB0aGUgYXR0cmlidXRlcyBvZiB0aGUgPGNvZGU+UGxhY2Vob2xkZXI8XC9jb2RlPiBwcm9wZXJ0eS4gVGhlIGF0dHJpYnV0ZXMgb2YgdGhpcyBwcm9wZXJ0eSBhcmUgdGV4dCwgY29sb3IsIGZvbnQgZmFtaWx5LCBmb250IHN0eWxlLCBwb2ludCBzaXplLCBhbmQgcGl4ZWwgc2l6ZS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPkxpbmVXcmFwTW9kZTxcL2NvZGU+PFwvdGQ+XG48dGQ+TGluZVdyYXBNb2RlPFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSBsaW5lIHdyYXAgbW9kZSB3aGVuIHRleHQgbGluZXMgYXJlIGdyZWF0ZXIgdGhhbiB0aGUgbGF5b3V0IHdpZHRoLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+VHJhbnNsYXRhYmxlUGxhY2Vob2xkZXJUZXh0PFwvY29kZT48XC90ZD5cbjx0ZD5TdHJpbmc8XC90ZD5cbjx0ZD5TcGVjaWZpZXMgdGhlIDxjb2RlPlRyYW5zbGF0YWJsZVBsYWNlaG9sZGVyVGV4dDxcL2NvZGU+IHByb3BlcnR5IHRoYXQgc2V0cyB0aGUgU0lEIHZhbHVlLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+VHJhbnNsYXRhYmxlVGV4dDxcL2NvZGU+PFwvdGQ+XG48dGQ+U3RyaW5nPFwvdGQ+XG48dGQ+U3BlY2lmaWVzIHRoZSA8Y29kZT5UcmFuc2xhdGFibGVUZXh0PFwvY29kZT4gcHJvcGVydHkgdGhhdCBzZXRzIHRoZSBTSUQgdmFsdWUuPFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPGgyIGlkPVwiY29udGVudC11c2UtY2xpcGJvYXJkLWFuZC1zZWxlY3R0ZXh0LWFwaXNcIj48YSBocmVmPVwiI2NvbnRlbnQtdXNlLWNsaXBib2FyZC1hbmQtc2VsZWN0dGV4dC1hcGlzXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5Vc2UgY2xpcGJvYXJkIGFuZCBTZWxlY3RUZXh0IEFQSXM8XC9oMj5cbjxwPlRoZXNlIGFyZSBhIHNldCBvZiBBUElzIHRoYXQgcHJvdmlkZSBkZXZlbG9wZXJzIHdpdGggdGhlIGZ1bmN0aW9uYWxpdHkgb2YgY29weSwgY3V0LCBwYXN0ZSAmYW1wOyBzZWxlY3QgdGV4dC5cbkEgc2FtcGxlIGNvZGUgb24gaG93IHRvIGJlbmVmaXQgZnJvbSB0aGVtIGlzIHNob3duIGJlbG93LjxcL3A+XG48cD5EZXZlbG9wZXJzIGNhbiBkZWZpbmUgYW4gYWN0aW9uIGZvciB1c2VycyBieSB3cml0aW5nIHRoZSBjb2RlIGJlbG93LCBpLmUuIHdoZW4gdGhlIHVzZXIgY2xpY2tzIGEgYnV0dG9uLjxcL3A+XG48cD5UaGUgZm9sbG93aW5nIGNvZGUgaXMgYW4gZXhhbXBsZSBvbiBob3cgdG8gY29weSBhbmQgY3V0IHRoZSB0ZXh0IGZyb20gc291cmNlIHRvIGRlc3RpbmF0aW9uIHRleHQgZmllbGRzOjxcL3A+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkE3MzdEOy0tc2hpa2ktZGFyazojNkE3MzdEXCI+XC9cLyBDcmVhdGUgdHdvIFRleHRGaWVsZDxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPnZhcjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+dGV4dEZpZWxkU3JjPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5uZXc8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPlRleHRGaWVsZDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KCk7IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkE3MzdEOy0tc2hpa2ktZGFyazojNkE3MzdEXCI+XC9cLyBTb3VyY2UgVGV4dEZpZWxkPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+dGV4dEZpZWxkU3JjLlRleHQgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtXZWxjb21lISBUaGlzIGlzIGEgZ3JlYXQgd29ybGQhJnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj47PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPnZhcjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+dGV4dEZpZWxkRGVzdDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+bmV3PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5UZXh0RmllbGQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPigpOyA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZBNzM3RDstLXNoaWtpLWRhcms6IzZBNzM3RFwiPlwvXC8gRGVzdGluYXRpb24gVGV4dEZpZWxkPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+dGV4dEZpZWxkRGVzdC5UZXh0IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7JnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj47PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+PFwvY29kZT48XC9wcmU+XG48cD48Y29kZT5TZWxlY3RUZXh0PFwvY29kZT4gaXMgYW4gQVBJIHRoYXQgdGFrZXMgdHdvIHBhcmFtZXRlcnMsIHRoZSBzdGFydCBpbmRleCBhbmQgdGhlIGVuZCBpbmRleC5cblRoaXMgQVBJIHNlbGVjdHMgdGV4dCBiYXNlZCBvbiB0aGUgc3RhcnQgYW5kIGVuZCBpbmRleCBkZWNsYXJlZCBieSB0aGUgdXNlci48XC9wPlxuPGRpdiBjbGFzcz1cIm1kLWFsZXJ0IG1kLWFsZXJ0LW5vdGVcIj5cbjxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOlwvXC93d3cudzMub3JnXC8yMDAwXC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+PHBhdGggZD1cIk0wIDhhOCA4IDAgMSAxIDE2IDBBOCA4IDAgMCAxIDAgOFptOC02LjVhNi41IDYuNSAwIDEgMCAwIDEzIDYuNSA2LjUgMCAwIDAgMC0xM1pNNi41IDcuNzVBLjc1Ljc1IDAgMCAxIDcuMjUgN2gxYS43NS43NSAwIDAgMSAuNzUuNzV2Mi43NWguMjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0yYS43NS43NSAwIDAgMSAwLTEuNWguMjV2LTJoLS4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNOCA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIlwvPjxcL3N2Zz5Ob3RlPFwvc3Bhbj5cbjxwPlRoZSBzZWxlY3RlZCB0ZXh0IGluY2x1ZGVzIHRoZSBzdGFydCBpbmRleCwgYnV0IGl0IGRvZXMgbm90IGluY2x1ZGUgdGhlIGVuZCBpbmRleC48XC9wPlxuPFwvZGl2PlxuPHA+VGhlIGZvbGxvd2luZyBjb2RlIHNob3dzIGhvdyB0byB1c2UgPGNvZGU+U2VsZWN0VGV4dDxcL2NvZGU+IG9uIDxjb2RlPlRleHRGaWVsZDxcL2NvZGU+OjxcL3A+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkE3MzdEOy0tc2hpa2ktZGFyazojNkE3MzdEXCI+XC9cLyBTdGVwIDAxOiBTZWxlY3QgdGV4dCBmcm9tIHNvdXJjZSB0ZXh0IGZpZWxkPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+dGV4dEZpZWxkU3JjLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+U2VsZWN0VGV4dDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICg8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPjk8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPjE2PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4pOyA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZBNzM3RDstLXNoaWtpLWRhcms6IzZBNzM3RFwiPlwvXC8mcXVvdDtUaGlzIGlzJnF1b3Q7IGlzIHRoZSBzZWxlY3RlZCB0ZXh0PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZBNzM3RDstLXNoaWtpLWRhcms6IzZBNzM3RFwiPiBcL1wvIEF0IHRoaXMgcG9pbnQ6PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkE3MzdEOy0tc2hpa2ktZGFyazojNkE3MzdEXCI+IFwvXC8gVGhlIFRFWFQgaW4gdGV4dEZpZWxkU3JjIGlzICZxdW90O1dlbGNvbWUhIFRoaXMgaXMgYSBncmVhdCB3b3JsZCEmcXVvdDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiM2QTczN0Q7LS1zaGlraS1kYXJrOiM2QTczN0RcIj4gXC9cLyBUaGUgVEVYVCBpbiB0ZXh0RmllbGREZXN0IGlzICZxdW90OyZxdW90OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPHA+PGNvZGU+VGV4dFV0aWxzLkNvcHlUb0NsaXBib2FyZDxcL2NvZGU+IGlzIGFuIEFQSSB0aGF0IHRha2VzIG9uZSBwYXJhbWV0ZXIsIGVpdGhlciBUZXh0RmllbGQgb3IgVGV4dEVkaXRvci5cblVzaW5nIHRoaXMgQVBJLCB5b3UgY2FuIGNvcHkgdGhlIHRleHQgaW50byB0aGUgY2xpcGJvYXJkIHRoYXQgd2FzIHNlbGVjdGVkIGJhc2VkIG9uIHRoZSBkZWNsYXJlZCBpbmRleGVzIGluIHRoZSBwcmV2aW91cyBjb2RlLlxuVGhlIGZvbGxvd2luZyBjb2RlIHNob3dzIGhvdyB0byB1c2UgPGNvZGU+Q29weVRvQ2xpcGJvYXJkPFwvY29kZT4gd2l0aCA8Y29kZT5UZXh0RmllbGQ8XC9jb2RlPjo8XC9wPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZBNzM3RDstLXNoaWtpLWRhcms6IzZBNzM3RFwiPlwvXC8gU3RlcCAwMjogQ29weSB0ZXh0IGZyb20gc291cmNlIHRleHQgZmllbGQ8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5zdHJpbmc8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPmNvcGllZFRleHQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiBUZXh0VXRpbHMuPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5Db3B5VG9DbGlwYm9hcmQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPih0ZXh0RmllbGRTcmMpOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiM2QTczN0Q7LS1zaGlraS1kYXJrOiM2QTczN0RcIj4gXC9cLyBBdCB0aGlzIHBvaW50OjxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZBNzM3RDstLXNoaWtpLWRhcms6IzZBNzM3RFwiPiBcL1wvIFRoZSBURVhUIGluIHRleHRGaWVsZFNyYyBpcyAmcXVvdDtXZWxjb21lISBUaGlzIGlzIGEgZ3JlYXQgd29ybGQhJnF1b3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkE3MzdEOy0tc2hpa2ktZGFyazojNkE3MzdEXCI+IFwvXC8gVGhlIFRFWFQgaW4gdGV4dEZpZWxkRGVzdCBpcyAmcXVvdDsmcXVvdDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj48XC9jb2RlPjxcL3ByZT5cbjxwPjxjb2RlPlRleHRVdGlscy5QYXN0ZVRvPFwvY29kZT4gaXMgYW4gQVBJIHRoYXQgdGFrZXMgb25lIHBhcmFtZXRlciwgZWl0aGVyIFRleHRGaWVsZCBvciBUZXh0RWRpdG9yLlxuVXNpbmcgdGhpcyBBUEksIHlvdSBjYW4gcGFzdGUgdGhlIG1vc3QgcmVjZW50bHkgY29waWVkXC9jdXQgdGV4dCBpdGVtIGZyb20gdGhlIGNsaXBib2FyZCBpbnRvIHRoZSB0ZXh0IGNvbnRyb2wuPFwvcD5cbjxkaXYgY2xhc3M9XCJtZC1hbGVydCBtZC1hbGVydC1ub3RlXCI+XG48c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDpcL1wvd3d3LnczLm9yZ1wvMjAwMFwvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiPjxwYXRoIGQ9XCJNMCA4YTggOCAwIDEgMSAxNiAwQTggOCAwIDAgMSAwIDhabTgtNi41YTYuNSA2LjUgMCAxIDAgMCAxMyA2LjUgNi41IDAgMCAwIDAtMTNaTTYuNSA3Ljc1QS43NS43NSAwIDAgMSA3LjI1IDdoMWEuNzUuNzUgMCAwIDEgLjc1Ljc1djIuNzVoLjI1YS43NS43NSAwIDAgMSAwIDEuNWgtMmEuNzUuNzUgMCAwIDEgMC0xLjVoLjI1di0yaC0uMjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVaTTggNmExIDEgMCAxIDEgMC0yIDEgMSAwIDAgMSAwIDJaXCJcLz48XC9zdmc+Tm90ZTxcL3NwYW4+XG48cD5UaGUgcGFzdGVkIHRleHQgd2lsbCBiZSBpbnNlcnRlZCBpbiB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24gYW5kIGlmIHRoZSB0ZXh0IGNvbnRyb2wgaGFzIG5vIGZvY3VzLCB0aGUgdGV4dCB3aWxsIGJlIGFwcGVuZGVkIHRvIHRoZSBsYXN0IGN1cnNvciBwb3NpdGlvbiBhbmQgdGhlIHRleHQgY29udHJvbCB3aWxsIGdhaW4gZm9jdXMuIElmIHNvbWUgdGV4dCBpbnNpZGUgdGhlIHRleHQgY29udHJvbCBpcyBzZWxlY3RlZCwgaXQgd2lsbCBiZSByZXBsYWNlZCBieSB0aGUgcGFzdGVkIHRleHQuPFwvcD5cbjxcL2Rpdj5cbjxwPlRoZSBmb2xsb3dpbmcgY29kZSBzaG93cyBob3cgdG8gdXNlIDxjb2RlPlBhc3RlVG88XC9jb2RlPiB3aXRoIDxjb2RlPlRleHRGaWVsZDxcL2NvZGU+OjxcL3A+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkE3MzdEOy0tc2hpa2ktZGFyazojNkE3MzdEXCI+XC9cLyBTdGVwIDAzOiBQYXN0ZSB0ZXh0IGludG8gZGVzdGluYXRpb24gdGV4dCBmaWVsZDxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiBUZXh0VXRpbHMuPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5QYXN0ZVRvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4odGV4dEZpZWxkRGVzdCk7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZBNzM3RDstLXNoaWtpLWRhcms6IzZBNzM3RFwiPiBcL1wvIEF0IHRoaXMgcG9pbnQ6PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkE3MzdEOy0tc2hpa2ktZGFyazojNkE3MzdEXCI+IFwvXC8gVGhlIFRFWFQgaW4gdGV4dEZpZWxkU3JjIGlzICZxdW90O1dlbGNvbWUhIFRoaXMgaXMgYSBncmVhdCB3b3JsZCEmcXVvdDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiM2QTczN0Q7LS1zaGlraS1kYXJrOiM2QTczN0RcIj4gXC9cLyBUaGUgVEVYVCBpbiB0ZXh0RmllbGREZXN0IGlzICZxdW90O1RoaXMgaXMmcXVvdDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj48XC9jb2RlPjxcL3ByZT5cbjxwPjxjb2RlPlRleHRVdGlscy5DdXRUb0NsaXBib2FyZDxcL2NvZGU+IGlzIGFuIEFQSSB0aGF0IHRha2VzIG9uZSBwYXJhbWV0ZXIsIGVpdGhlciBUZXh0RmllbGQgb3IgVGV4dEVkaXRvci5cblRoaXMgQVBJIGhlbHBzIHlvdSB0byBjdXQgdGhlIHByZXZpb3VzbHkgc2VsZWN0ZWQgdGV4dCBmcm9tIHRoZSB0ZXh0IGNvbnRyb2wgaW50byB0aGUgY2xpcGJvYXJkLiBJdCByZXR1cm5zIHRoZSB0ZXh0IHRoYXQgd2FzIGN1dCBiYXNlZCBvbiB0aGUgZGVjbGFyZWQgaW5kZXhlcy5cblRoZSBmb2xsb3dpbmcgY29kZXMgc2hvdyBob3cgdG8gdXNlIDxjb2RlPkN1dFRvQ2xpcGJvYXJkPFwvY29kZT4gd2l0aCA8Y29kZT5UZXh0RmllbGQ8XC9jb2RlPjo8XC9wPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZBNzM3RDstLXNoaWtpLWRhcms6IzZBNzM3RFwiPlwvXC8gU3RlcCAwNDogU2VsZWN0IHRleHQgZnJvbSBzb3VyY2UgdGV4dCBmaWVsZDxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPnRleHRGaWVsZFNyYy48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPlNlbGVjdFRleHQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAoPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj4wPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4sPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj44PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4pOyA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZBNzM3RDstLXNoaWtpLWRhcms6IzZBNzM3RFwiPlwvXC8gJnF1b3Q7V2VsY29tZSEmcXVvdDsgaXMgdGhlIHNlbGVjdGVkIHRleHQ8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkE3MzdEOy0tc2hpa2ktZGFyazojNkE3MzdEXCI+IFwvXC8gQXQgdGhpcyBwb2ludDo8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiM2QTczN0Q7LS1zaGlraS1kYXJrOiM2QTczN0RcIj4gXC9cLyBUaGUgVEVYVCBpbiB0ZXh0RmllbGRTcmMgaXMgJnF1b3Q7V2VsY29tZSEgVGhpcyBpcyBhIGdyZWF0IHdvcmxkISZxdW90OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZBNzM3RDstLXNoaWtpLWRhcms6IzZBNzM3RFwiPiBcL1wvIFRoZSBURVhUIGluIHRleHRGaWVsZERlc3QgaXMgJnF1b3Q7VGhpcyBpcyZxdW90OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZBNzM3RDstLXNoaWtpLWRhcms6IzZBNzM3RFwiPlwvXC8gU3RlcCAwNTogQ3V0IHRleHQgZnJvbSBzb3VyY2UgdGV4dCBmaWVsZDxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPnN0cmluZzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+Y3V0VGV4dDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IFRleHRVdGlscy48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPkN1dFRvQ2xpcGJvYXJkPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4odGV4dEZpZWxkU3JjKTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkE3MzdEOy0tc2hpa2ktZGFyazojNkE3MzdEXCI+IFwvXC8gQXQgdGhpcyBwb2ludDo8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiM2QTczN0Q7LS1zaGlraS1kYXJrOiM2QTczN0RcIj4gXC9cLyBUaGUgVEVYVCBpbiB0ZXh0RmllbGRTcmMgaXMgJnF1b3Q7IFRoaXMgaXMgYSBncmVhdCB3b3JsZCEmcXVvdDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiM2QTczN0Q7LS1zaGlraS1kYXJrOiM2QTczN0RcIj4gXC9cLyBUaGUgVEVYVCBpbiB0ZXh0RmllbGREZXN0IGlzICZxdW90O1RoaXMgaXMmcXVvdDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZBNzM3RDstLXNoaWtpLWRhcms6IzZBNzM3RFwiPlwvXC8gU3RlcCAwNjogUGFzdGUgdGV4dCBpbnRvIGRlc3RpbmF0aW9uIHRleHQgZmllbGQ8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gVGV4dFV0aWxzLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+UGFzdGVUbzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KHRleHRGaWVsZERlc3QpOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiM2QTczN0Q7LS1zaGlraS1kYXJrOiM2QTczN0RcIj4gXC9cLyBBdCB0aGlzIHBvaW50OjxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZBNzM3RDstLXNoaWtpLWRhcms6IzZBNzM3RFwiPiBcL1wvIFRoZSBURVhUIGluIHRleHRGaWVsZFNyYyBpcyAmcXVvdDsgVGhpcyBpcyBhIGdyZWF0IHdvcmxkISZxdW90OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZBNzM3RDstLXNoaWtpLWRhcms6IzZBNzM3RFwiPiBcL1wvIFRoZSBURVhUIGluIHRleHRGaWVsZERlc3QgaXMgJnF1b3Q7VGhpcyBpc1dlbGNvbWUhJnF1b3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+PFwvY29kZT48XC9wcmU+XG48aDIgaWQ9XCJjb250ZW50LXJlbGF0ZWQtaW5mb3JtYXRpb25cIj48YSBocmVmPVwiI2NvbnRlbnQtcmVsYXRlZC1pbmZvcm1hdGlvblwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+UmVsYXRlZCBpbmZvcm1hdGlvbjxcL2gyPlxuPHVsPlxuPGxpPkRlcGVuZGVuY2llc1xuPHVsPlxuPGxpPlRpemVuIDYuNSBhbmQgSGlnaGVyPFwvbGk+XG48XC91bD5cbjxcL2xpPlxuPFwvdWw+XG4iLCJ0YWJsZV9vZl9jb250ZW50IjoiPHVsIGNsYXNzPVwidGFibGUtb2YtY29udGVudHNcIj5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtdGV4dFwiPlRleHQ8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC10ZXh0bGFiZWxcIj5UZXh0TGFiZWw8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1jcmVhdGUtdGV4dGxhYmVsXCI+Q3JlYXRlIFRleHRMYWJlbDxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXNldC1mb250LW9mLXRleHRsYWJlbFwiPlNldCBmb250IG9mIFRleHRMYWJlbDxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXNldC1mb250LXN0eWxlcy1vZi10ZXh0bGFiZWxcIj5TZXQgZm9udCBzdHlsZXMgb2YgVGV4dExhYmVsPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtYWxpZ24tdGV4dC1pbi10ZXh0bGFiZWxcIj5BbGlnbiB0ZXh0IGluIFRleHRMYWJlbDxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXV0Zi0xNi1vci11dGYtMzItY2hhcmFjdGVyLWVuY29kaW5nXCI+VVRGLTE2IG9yIFVURi0zMiBjaGFyYWN0ZXIgZW5jb2Rpbmc8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC11c2UtZGVjb3JhdGlvbnMtZm9yLXRleHRsYWJlbFwiPlVzZSBkZWNvcmF0aW9ucyBmb3IgVGV4dExhYmVsPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtdXNlLW1hcmt1cC10by1zdHlsZS10ZXh0bGFiZWxcIj5Vc2UgbWFya3VwIHRvIHN0eWxlIFRleHRMYWJlbDxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXVzZS1tYXJrdXAtdG8tcmVwcmVzZW50LWVuY29kZWQtY2hhcmFjdGVyc1wiPlVzZSBtYXJrdXAgdG8gcmVwcmVzZW50IGVuY29kZWQgY2hhcmFjdGVyczxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXRleHRsYWJlbC1wcm9wZXJ0aWVzXCI+VGV4dExhYmVsIHByb3BlcnRpZXM8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC10ZXh0ZmllbGRcIj5UZXh0RmllbGQ8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC10ZXh0ZmllbGQtZXZlbnRzXCI+VGV4dEZpZWxkIGV2ZW50czxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWNyZWF0ZS10ZXh0ZmllbGRcIj5DcmVhdGUgVGV4dEZpZWxkPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtYWxpZ24tdGV4dC1pbi10ZXh0ZmllbGRcIj5BbGlnbiB0ZXh0IGluIFRleHRGaWVsZDxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXVzZS1pbnB1dC1wcm9wZXJ0aWVzLWluLXRleHRmaWVsZFwiPlVzZSBpbnB1dCBwcm9wZXJ0aWVzIGluIFRleHRGaWVsZDxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXRleHRmaWVsZC1wcm9wZXJ0aWVzXCI+VGV4dEZpZWxkIHByb3BlcnRpZXM8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC11c2UtZGVjb3JhdGlvbnMtZm9yLXRleHRmaWVsZFwiPlVzZSBkZWNvcmF0aW9ucyBmb3IgVGV4dEZpZWxkPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtdGV4dGVkaXRvclwiPlRleHRFZGl0b3I8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC10ZXh0ZWRpdG9yLWV2ZW50c1wiPlRleHRFZGl0b3IgZXZlbnRzPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtY3JlYXRlLXRleHRlZGl0b3JcIj5DcmVhdGUgVGV4dEVkaXRvcjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXRleHRlZGl0b3ItcHJvcGVydGllc1wiPlRleHRFZGl0b3IgcHJvcGVydGllczxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXVzZS1jbGlwYm9hcmQtYW5kLXNlbGVjdHRleHQtYXBpc1wiPlVzZSBjbGlwYm9hcmQgYW5kIFNlbGVjdFRleHQgQVBJczxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXJlbGF0ZWQtaW5mb3JtYXRpb25cIj5SZWxhdGVkIGluZm9ybWF0aW9uPFwvYT48XC9saT5cbjxcL3VsPlxuIiwidGl0bGUiOiJUZXh0IiwicmF3IjpudWxsfSx7ImNsYXNzIjoiQXBwXFxTZXJ2aWNlc1xcRG9jdW1lbnRhdGlvblxcRGF0YVxcUmVuZGVyZWRNYXJrZG93biIsInMiOiJ3cmJsIn1dfSx7InMiOiJhcnIifV19LCJtZW1vIjp7ImlkIjoiRmtySWl3VVRWZ1V6eUt4bFBiUVQiLCJuYW1lIjoiX19tb3VudFBhcmFtc0NvbnRhaW5lciIsInBhdGgiOiJkb2NzXC9hcHBsaWNhdGlvblwvZG90bmV0XC9ndWlkZXNcL3VzZXItaW50ZXJmYWNlXC9udWlcL3RleHQiLCJtZXRob2QiOiJHRVQiLCJyZWxlYXNlIjoiYS1hLWEifSwiY2hlY2tzdW0iOiJkMWFjY2I2MDk3ZGI5N2JkNTYxOTQxMWQ0YzkzMDAxNWQ4Y2Y3NDE0ZDYyZTg1YjVkOTI2OWNkY2ZlYjgxMmUwIn0=')" >