Tizen.Multimedia.Player/a> class is triggered when the application is interrupted by another application. The player is paused or moved to the <code>Idle<\/code> state according to the audio session manager (ASM) policy. You must check the state of the current instance and take appropriate action.<\/p>\n<p><a name=\"video\"><\/a><\/p>\n<h2 id=\"content-video-player\"><a href=https://samsungtizenos.com/"#content-video-player\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Video Player<\/h2>\n<p>Tizen enables your application to <a href=https://samsungtizenos.com/"#play_video\">play video<\/a>, and it uses its own user surface. The surface requires a drawing area, so you have to get an overlay region and set it to the player instance to display the drawing area. To get an overlay region and set it to the player instance, follow the steps below:<\/p>\n<ol>\n<li>\n<p>Get the UI component to display from the graphics module.<\/p>\n<p>You can display video on a UI layer of NUI.<\/p>\n<\/li>\n<li>\n<p>Create the player instance.<\/p>\n<\/li>\n<li>\n<p>Create the display instance with the UI component you got.<\/p>\n<\/li>\n<li>\n<p>Set the display to the player using the <code>Display<\/code> property of the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Multimedia.Player.md/">Tizen.Multimedia.Player/a> class.<\/p>\n<\/li>\n<\/ol>\n<p>The supported video formats include WMV, ASF, MP4, 3GP, AVI, MKV, and OGG. The available formats depend on the target device.<\/p>\n<p>In the case of a video interruption, the player state can be <code>Ready<\/code> due to the resource restriction in the system.<\/p>\n<p>The following figure illustrates what happens when the player gets interrupted by the system.<\/p>\n<p><strong>Figure: Player states when interrupted by system<\/strong><\/p>\n<p><img src=https://samsungtizenos.com/"media//videoplayer_interrupted_state_cs.png/" alt=\"Player states when interrupted by system\" \/><\/p>\n<p><a name=\"features\"><\/a><\/p>\n<h2 id=\"content-player-features\"><a href=https://samsungtizenos.com/"#content-player-features\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Player Features<\/h2>\n<p>The <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Multimedia.Player.md/">Tizen.Multimedia.Player/a> class provides the following features:<\/p>\n<ul>\n<li>\n<p>Operating general controls for the <a href=https://samsungtizenos.com/"#audio\">audio<\/a> and <a href=https://samsungtizenos.com/"#video\">video<\/a> content, such as play, pause, resume, and stop<\/p>\n<p>The player has events you can use to receive notifications of player status changes during playback. Since the player engine works asynchronously, you must implement event handlers to ensure that the player flows correctly. When each player's operation is completed, the <code>PlaybackCompleted<\/code> event of the <code>Tizen.Multimedia.Player<\/code> class is raised. If an error occurs in the player engine, you can be notified through the <code>ErrorOccurred<\/code> event.<\/p>\n<\/li>\n<li>\n<p>Modifying playback properties<\/p>\n<p>After the player state is changed to <code>Ready<\/code>, you can modify various playback properties, such as volume, sound type, latency mode, mute mode, and looping mode.<\/p>\n<\/li>\n<li>\n<p>Moving the audio and video content based on time<\/p>\n<\/li>\n<li>\n<p>Controlling the volume of the audio and video content based on each instance<\/p>\n<p>The player works based on the audio session manager policy. This means that an application can be interrupted by another application. You can change the policy directly by using the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Multimedia.AudioStreamPolicy.md/">Tizen.Multimedia.AudioStreamPolicy/a> class.<\/p>\n<\/li>\n<li>\n<p>Getting information about the audio and video content<\/p>\n<p>After the player state is changed to <code>Ready<\/code>, the multimedia resource is available and you can get content information from the media. You can also get content information in the <code>Playing<\/code> state, in some cases of playback streaming.<\/p>\n<\/li>\n<li>\n<p>Playing multiple audio streams<\/p>\n<p>The maximum number of player instances is limited by the system and multimedia resources. The maximum number is a system-wide count and it can be applied depending on the CPU model, CPU speed, CPU core number, CPU load from other applications, and the available memory. Thus, the exact number can be smaller than the maximum number, in which case the prepare methods fail. A reasonable working player number is under 10. To free up system resources, <a href=https://samsungtizenos.com/"#release\">stop unneeded players<\/a>.<\/p>\n<\/li>\n<li>\n<p>Display<\/p>\n<p>Use the <code>Display<\/code> property of the <code>Tizen.Multimedia.Player<\/code> class to play a video stream.<\/p>\n<p>After the player state is changed to <code>Idle<\/code>, create the display and <a href=https://samsungtizenos.com/"#set_parameters\">set the display settings<\/a>.<\/p>\n<\/li>\n<li>\n<p>Stream information<\/p>\n<p>Use the <code>StreamInfo<\/code> property of the <code>Tizen.Multimedia.Player<\/code> class to play a video stream.<\/p>\n<p>After the player state is changed to <code>Ready<\/code>, you can <a href=https://samsungtizenos.com/"#get_stream\">retrieve stream properties<\/a>.<\/p>\n<\/li>\n<li>\n<p>Audio effect<\/p>\n<p>Use the <code>AudioEffect<\/code> property of the <code>Tizen.Multimedia.Player<\/code> class to set and get audio effects for the playback.<\/p>\n<p>After the player state is changed to <code>Idle<\/code>, you can adjust the audio effects.<\/p>\n<\/li>\n<li>\n<p>Subtitles<\/p>\n<p>Use the <code>SetSubtitle()<\/code> method of the <code>Tizen.Multimedia.Player<\/code> class to set a path for inserting subtitles into a video file.<\/p>\n<p>After the player state is changed to <code>Ready<\/code>, you can <a href=https://samsungtizenos.com/"#insert\">read the subtitle track<\/a>.<\/p>\n<\/li>\n<li>\n<p>Spherical Video Playback<\/p>\n<p>Use the <code>SphericalVideo<\/code> property of the <code>Tizen.Multimedia.Player<\/code> class to set the rendering attributes for spherical video playback.<\/p>\n<\/li>\n<\/ul>\n<p><a name=\"stream\"><\/a><\/p>\n<h2 id=\"content-playback-streams\"><a href=https://samsungtizenos.com/"#content-playback-streams\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Playback streams<\/h2>\n<p>You can set specific URLs for streaming media playback with the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Multimedia.MediaUriSource.md/">Tizen.Multimedia.MediaUriSource/a> class.<\/p>\n<p>Both Hypertext Transfer Protocol (HTTP) and Real Time Streaming Protocol (RTSP) protocols support streaming media playback. The HTTP request header supports the playback of both complete and download-in-progress media files. The index table (atoms) must be moved in front of the file for progressive download.<\/p>\n<p>For HTTP streaming, buffering can happen when the player is prepared. You can receive the status using the <code>BufferingProgressChanged<\/code> event of the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Multimedia.Player.md/">Tizen.Multimedia.Player/a> class.<\/p>\n<p>The following table lists the streaming protocol features supported by the player.<\/p>\n<p><strong>Table: Supported streaming protocol features<\/strong><\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Streaming protocol<\/th>\n<th>Supported feature<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Hypertext Transfer Protocol (HTTP)<\/td>\n<td>HTTP streaming<\/td>\n<\/tr>\n<tr>\n<td>Hypertext Transfer Protocol (HTTP)<\/td>\n<td>HTTP live streaming<\/td>\n<\/tr>\n<tr>\n<td>Hypertext Transfer Protocol (HTTP)<\/td>\n<td>HTTP progressive download play<\/td>\n<\/tr>\n<tr>\n<td>Real Time Streaming Protocol (RTSP)<\/td>\n<td>RTSP streaming<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<h2 id=\"content-prerequisites\"><a href=https://samsungtizenos.com/"#content-prerequisites\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Prerequisites<\/h2>\n<p>To use the methods and properties of the media playback classes, include the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Multimedia.md/">Tizen.Multimedia/a> namespace in your application:<\/p>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#D73A49;--shiki-dark:#F97583\">using<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Tizen<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Multimedia<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<p><a name=\"prepare\"><\/a><\/p>\n<h2 id=\"content-prepare-the-player\"><a href=https://samsungtizenos.com/"#content-prepare-the-player\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Prepare the player<\/h2>\n<p>To initialize the player for use, proceed as follows:<\/p>\n<ol>\n<li>\n<p>Create a instance of the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Multimedia.Player.md/">Tizen.Multimedia.Player/a> class:<\/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\">var<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">player<\/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\">Player<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>\n<p>To receive notifications, add event handlers to the appropriate events of the <code>Tizen.Multimedia.Player<\/code> class:<\/p>\n<ul>\n<li>\n<p>To receive notifications about playback interruptions, register an event handler for the <code>PlaybackInterrupted<\/code> event:<\/p>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">player.PlaybackInterrupted <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">+=<\/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\"> sender, PlaybackInterruptedEventArgs e)<\/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\"> Tizen.Log.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Info<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(LogTag, <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">$"Current player state is <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">{<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">player<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">State<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">}<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/\/ If the state is Paused, update the UI (for example, button)<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">};<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<p>The playback is interrupted and the event is raised when, for example, another multimedia application is run. The player state automatically changes to <code>Paused<\/code> or <code>Idle<\/code> according to the session policy.<\/p>\n<\/li>\n<li>\n<p>To receive a notification when the playback ends, register an event handler for the <code>PlaybackCompleted<\/code> event:<\/p>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">player.PlaybackCompleted <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">+=<\/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\"> sender, EventArgs e)<\/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\"> Tizen.Log.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Info<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(LogTag, <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"Playback End"<\/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><\/code><\/pre>\n<\/li>\n<li>\n<p>To receive notifications about player errors during playback, register an event handler for the <code>ErrorOccurred<\/code> event:<\/p>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">player.ErrorOccurred <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">+=<\/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\"> sender, PlayerErrorOccurredEventArgs e)<\/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\"> Tizen.Log.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Error<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(LogTag, <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">$"Playback failed, error = <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">{<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">e<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">Error<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">}<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"<\/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><\/code><\/pre>\n<p>The player error event is raised when the player stops working due to an error. You can use the event to try to recover from the error. For example, try to change the player state to <code>Ready<\/code> by calling the <code>Stop()<\/code> method of the <code>Tizen.Multimedia.Player<\/code> class, and then reset the player by calling the <code>Unprepare()<\/code> method.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><a name=\"play_audio\"><\/a><\/p>\n<h2 id=\"content-play-an-audio-file\"><a href=https://samsungtizenos.com/"#content-play-an-audio-file\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Play an audio file<\/h2>\n<p>To play an audio file, proceed as follows:<\/p>\n<ol>\n<li>\n<p>After creating the player, specify the audio file to play by creating an instance of the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Multimedia.MediaUriSource.md/">Tizen.Multimedia.MediaUriSource/a> class with the path to the audio file, and setting that as the <code>Source<\/code> property of the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Multimedia.Player.md/">Tizen.Multimedia.Player/a> class instance you want to play the file with:<\/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\">player.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">SetSource<\/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\">MediaUriSource<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(audioPath));<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>\n<p>Prepare the player for playback using the <code>PrepareAsync()<\/code> method of the <code>Tizen.Multimedia.Player<\/code> class:<\/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\">await<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> player.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PrepareAsync<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<p>The method changes the player state from <code>Idle<\/code> to <code>Ready<\/code>, which is required to start playback.<\/p>\n<\/li>\n<li>\n<p>Start playing the audio file using the <code>Start()<\/code> method:<\/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\">player.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Start<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<p>This changes the player state from <code>Ready<\/code> to <code>Playing<\/code>. The audio file plays until you call the <code>Stop()<\/code> or <code>Pause()<\/code> method.<\/p>\n<\/li>\n<\/ol>\n<p><a name=\"play_video\"><\/a><\/p>\n<h2 id=\"content-play-a-video-file\"><a href=https://samsungtizenos.com/"#content-play-a-video-file\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Play a video file<\/h2>\n<p>To play a video file, proceed as follows:<\/p>\n<ol>\n<li>\n<p>After creating the player, specify the video file to play by creating an instance of the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Multimedia.MediaUriSource.md/">Tizen.Multimedia.MediaUriSource/a> class with the path to the audio file, and setting that as the <code>Source<\/code> property of the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Multimedia.Player.md/">Tizen.Multimedia.Player/a> class instance you want to play the file with:<\/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\">player.Source <\/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\">MediaUriSource<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(videoPath);<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>\n<p>Set the display for showing video by using the <code>Display<\/code> property of the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Multimedia.Player.md/">Tizen.Multimedia.Player/a> class with <code>NUI.Window<\/code> class.<\/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 new NUI window or set NUI window to be rendered<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\">\/\/ `nuiWindow` of the following code is the instance of `NUI.Window` class.<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">player.Display <\/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\">Display<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(nuiWindow);<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>\n<p>Prepare the player for playback using the <code>PrepareAsync()<\/code> method of the <code>Tizen.Multimedia.Player<\/code> class:<\/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\">await<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> player.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PrepareAsync<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<p>This method changes the player state from <code>Idle<\/code> to <code>Ready<\/code>, which is required to start playback.<\/p>\n<\/li>\n<li>\n<p>Play the video file, using the <code>Start()<\/code> method:<\/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\">player.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Start<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<p>This changes the player state from <code>Ready<\/code> to <code>Playing<\/code>. The video file plays until you call the <code>Stop()<\/code> or <code>Pause()<\/code> method.<\/p>\n<\/li>\n<\/ol>\n<p><a name=\"release\"><\/a><\/p>\n<h2 id=\"content-stop-the-player\"><a href=https://samsungtizenos.com/"#content-stop-the-player\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Stop the player<\/h2>\n<p>To stop and reset the player, proceed as follows:<\/p>\n<ol>\n<li>\n<p>Stop the player using the <code>Stop()<\/code> method of the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Multimedia.Player.md/">Tizen.Multimedia.Player/a> class:<\/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\">player.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Stop<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>\n<p>Reset the player using the <code>Unprepare()<\/code> method:<\/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\">player.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Unprepare<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<p>After the player is reset, it is in the <code>Idle<\/code> state.<\/p>\n<\/li>\n<\/ol>\n<p><a name=\"set_parameters\"><\/a><\/p>\n<h2 id=\"content-configure-the-video-playback-display\"><a href=https://samsungtizenos.com/"#content-configure-the-video-playback-display\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Configure the video playback display<\/h2>\n<p>You set the display parameters of a video file with the <code>DisplaySettings<\/code> property of the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Multimedia.Player.md/">Tizen.Multimedia.Player/a> class, which takes an instance of the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Multimedia.PlayerDisplaySettings.md/">Tizen.Multimedia.PlayerDisplaySettings/a> class as its value:<\/p>\n<ol>\n<li>\n<p>Make sure that the <a href=https://samsungtizenos.com/"#play_video\">display is set, and the player prepared and started<\/a>.<\/p>\n<\/li>\n<li>\n<p>To make the display visible:<\/p>\n<ul>\n<li>\n<p>Check whether the display is already visible using the <code>IsVisible<\/code> property of the <code>Tizen.Multimedia.PlayerDisplaySettings<\/code> class:<\/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.Log.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Info<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(LogTag, <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">$"Display visible = <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">{<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">player<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">DisplaySettings<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">IsVisible<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">}<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>\n<p>If the display is not visible, make it visible by setting the <code>IsVisible<\/code> property to <code>true<\/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:#D73A49;--shiki-dark:#F97583\">if<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> (player.DisplaySettings.IsVisible <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">==<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">false<\/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\"> player.DisplaySettings.IsVisible <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">true<\/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><\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Set the display mode using the <code>Mode<\/code> property, which takes the display mode as a value of the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Multimedia.PlayerDisplayMode.md/">Tizen.Multimedia.PlayerDisplayMode/a> enumeration:<\/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\">player.DisplaySettings.Mode <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> PlayerDisplayMode.FullScreen;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>\n<p>Set the display rotation using the <code>Rotation<\/code> property, which takes the display rotation as a value of the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Multimedia.Rotation.md/">Tizen.Multimedia.Rotation/a> enumeration:<\/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\">player.DisplaySettings.Rotation <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> Rotation.Rotate90;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<\/ol>\n<p><a name=\"get_stream\"><\/a><\/p>\n<h2 id=\"content-retrieve-stream-information\"><a href=https://samsungtizenos.com/"#content-retrieve-stream-information\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Retrieve stream information<\/h2>\n<p>To retrieve information about the audio and video streams, proceed as follows:<\/p>\n<ol>\n<li>\n<p><a href=https://samsungtizenos.com/"#play_video\">Prepare and start the player<\/a>, and <a href=https://samsungtizenos.com/"#set_parameters\">set the display parameters<\/a>.<\/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>To retrieve the stream information, the player state must be either <code>Playing<\/code> or <code>Paused<\/code>.<\/p>\n<\/div>\n<\/li>\n<li>\n<p>Retrieve the following stream information:<\/p>\n<ul>\n<li>\n<p>Duration<\/p>\n<p>Retrieve the total media running time (in milliseconds) using the <code>GetDuration()<\/code> method of the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Multimedia.StreamInfo.md/">Tizen.Multimedia.StreamInfo/a> class:<\/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.Log.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Info<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(LogTag, <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">$"Duration = <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">{<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">player<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">StreamInfo<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">GetDuration<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">()}<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>\n<p>Audio stream details<\/p>\n<p>Retrieve the audio stream details using the <code>GetAudioProperties()<\/code> method. The method returns an instance of the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Multimedia.AudioStreamProperties.md/">Tizen.Multimedia.AudioStreamProperties/a> struct containing the audio sample rate (in Hz), number of audio channels (1 for mono or 2 for stereo), and audio bit rate (in Hz):<\/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\">var<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">audioProperties<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> player.StreamInfo.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">GetAudioProperties<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">Tizen.Log.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Info<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(LogTag, <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">$"Sample rate = <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">{<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">audioProperties<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">SampleRate<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">}<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">, Channels = <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">{<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">audioProperties<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">Channels<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">}<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">, Bit rate = <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">{<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">audioProperties<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">BitRate<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">}<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>\n<p>Video stream details<\/p>\n<p>Retrieve the video stream details using the <code>GetVideoProperties()<\/code> method. The method returns an instance of the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Multimedia.VideoStreamProperties.md/">Tizen.Multimedia.VideoStreamProperties/a> struct containing the video size, number of frames per second, and video bit rate (in Hz):<\/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\">var<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">videoProperties<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> player.StreamInfo.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">GetVideoProperties<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">Tizen.Log.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Info<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(LogTag, <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">$"Video size = <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">{<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">videoProperties<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">Size<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">}<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">, Fps = <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">{<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">videoProperties<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">Fps<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">}<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">, Bit rate = <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">{<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">videoProperties<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">BitRate<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">}<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>\n<p>Audio and video codec names<\/p>\n<p>Retrieve the audio and video codec names using the <code>GetAudioCodec()<\/code> and the <code>GetVideoCodec()<\/code> methods:<\/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.Log.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Info<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(LogTag, <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">$"Audio codec = <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">{<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">player<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">StreamInfo<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">GetAudioCodec<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">()}<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">Tizen.Log.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Info<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(LogTag, <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">$"Video codec = <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">{<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">player<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">StreamInfo<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">GetVideoCodec<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">()}<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>\n<p>Content metadata<\/p>\n<p>Retrieve information about the album, artist, author, genre, title, and year using the <code>GetMetadata()<\/code> method. The available metadata attributes are defined in the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Multimedia.StreamMetadataKey.md/">Tizen.Multimedia.StreamMetadataKey/a> enumeration:<\/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.Log.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Info<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(LogTag, <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">$"Album = <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">{<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">player<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">StreamInfo<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">GetMetadata<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">(<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">StreamMetadataKey<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">Album<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">)}<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">Tizen.Log.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Info<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(LogTag, <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">$"Artist = <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">{<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">player<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">StreamInfo<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">GetMetadata<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">(<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">StreamMetadataKey<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">Artist<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">)}<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">Tizen.Log.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Info<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(LogTag, <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">$"Author = <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">{<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">player<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">StreamInfo<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">GetMetadata<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">(<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">StreamMetadataKey<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">Author<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">)}<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">Tizen.Log.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Info<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(LogTag, <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">$"Genre = <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">{<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">player<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">StreamInfo<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">GetMetadata<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">(<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">StreamMetadataKey<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">Genre<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">)}<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">Tizen.Log.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Info<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(LogTag, <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">$"Title = <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">{<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">player<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">StreamInfo<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">GetMetadata<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">(<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">StreamMetadataKey<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">Title<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">)}<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">Tizen.Log.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Info<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(LogTag, <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">$"Year = <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">{<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">player<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">StreamInfo<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">GetMetadata<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">(<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">StreamMetadataKey<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">Year<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">)}<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>\n<p>Album artwork<\/p>\n<p>Retrieve the album artwork using the <code>GetAlbumArt()<\/code> method. The method returns the encoded artwork image:<\/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\">byte<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">[] <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">imageData<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> player.StreamInfo.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">GetAlbumArt<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><a name=\"insert\"><\/a><\/p>\n<h2 id=\"content-insert-subtitles\"><a href=https://samsungtizenos.com/"#content-insert-subtitles\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Insert subtitles<\/h2>\n<p>To insert subtitles to a video file, set the subtitle path using the <code>SetSubtitle()<\/code> method of the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Multimedia.Player.md/">Tizen.Multimedia.Player/a> class:<\/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\">player.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">SetSubtitle<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(subtitlePath);<\/span><\/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 4.0 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-audio-player\">Audio Player<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-video-player\">Video Player<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-player-features\">Player Features<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-playback-streams\">Playback streams<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-prerequisites\">Prerequisites<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-prepare-the-player\">Prepare the player<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-play-an-audio-file\">Play an audio file<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-play-a-video-file\">Play a video file<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-stop-the-player\">Stop the player<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-configure-the-video-playback-display\">Configure the video playback display<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-retrieve-stream-information\">Retrieve stream information<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-insert-subtitles\">Insert subtitles<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-related-information\">Related information<\/a><\/li>\n<\/ul>\n","title":"Media Playback","raw":null},{"class":"App\\Services\\Documentation\\Data\\RenderedMarkdown","s":"wrbl"}]},"memo":{"id":"srxsfuichBiicWxl43l9","name":"documentation::article","path":"docs\/application\/dotnet\/guides\/multimedia\/media-playback","method":"GET","release":"a-a-a","children":[],"scripts":[],"assets":[],"lazyLoaded":false,"lazyIsolated":true,"errors":[],"locale":"en","islands":[]},"checksum":"568d1ed467072307496937e3ee5d9ae1e78f660acf2ac422d797f5f9ac074f44"}" wire:effects="[]" wire:id="srxsfuichBiicWxl43l9" wire:name="documentation::article" x-init="$wire.__lazyLoad('eyJkYXRhIjp7ImZvck1vdW50IjpbeyJtYXJrZG93biI6W3siYm9keSI6IjxoMSBpZD1cImNvbnRlbnQtbWVkaWEtcGxheWJhY2tcIj48YSBocmVmPVwiI2NvbnRlbnQtbWVkaWEtcGxheWJhY2tcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPk1lZGlhIFBsYXliYWNrPFwvaDE+PGRpdiBkYXRhLWtub3dsZWRnZS1iYXNlLW1ldGFkYXRhPjxcL2Rpdj5cbjxwPllvdSBjYW4gcGxheSBkaWZmZXJlbnQgYXVkaW8gZm9ybWF0cyBhbmQgdmlkZW8gaW4geW91ciBhcHBsaWNhdGlvbi48XC9wPlxuPHA+VGhlIG1haW4gbWVkaWEgcGxheWJhY2sgZmVhdHVyZXMgYXJlIGRlc2NyaWJlZCBiZWxvdzo8XC9wPlxuPHVsPlxuPGxpPlxuPHA+SGFuZGxpbmcgYXVkaW88XC9wPlxuPHA+RW5hYmxlcyB5b3UgdG8gcGxheSA8YSBocmVmPVwiI2F1ZGlvXCI+YXVkaW88XC9hPiBhbmQgY29udHJvbCB0aGUgcGxheWJhY2suPFwvcD5cbjxcL2xpPlxuPGxpPlxuPHA+SGFuZGxpbmcgdmlkZW88XC9wPlxuPHA+RW5hYmxlcyB5b3UgdG8gcGxheSA8YSBocmVmPVwiI3ZpZGVvXCI+dmlkZW88XC9hPi48XC9wPlxuPFwvbGk+XG48bGk+XG48cD5Vc2luZyB0aGUgcGxheWVyIDxhIGhyZWY9XCIjZmVhdHVyZXNcIj5mZWF0dXJlczxcL2E+PFwvcD5cbjxwPkVuYWJsZXMgeW91IHRvIG1hbmFnZSB0aGUgcGxheWVyIGFuZCBjb250cm9sIHRoZSB2b2x1bWUsIHNvdW5kIG1vZGUsIGRpc3BsYXksIHN0cmVhbSBpbmZvLCBhbmQgYXVkaW8gZWZmZWN0cy48XC9wPlxuPFwvbGk+XG48bGk+XG48cD5TdHJlYW1pbmcgcGxheWJhY2s8XC9wPlxuPHA+RW5hYmxlcyB5b3UgdG8gc2V0IHNwZWNpZmljIFVSTHMgZm9yIDxhIGhyZWY9XCIjc3RyZWFtXCI+c3RyZWFtaW5nIG1lZGlhIHBsYXliYWNrPFwvYT4uPFwvcD5cbjxcL2xpPlxuPFwvdWw+XG48cD5CZWZvcmUgeW91IHN0YXJ0LCA8YSBocmVmPVwiI3ByZXBhcmVcIj5zZXQgdXAgdGhlIHBsYXllcjxcL2E+LjxcL3A+XG48cD48YSBuYW1lPVwiYXVkaW9cIj48XC9hPjxcL3A+XG48aDIgaWQ9XCJjb250ZW50LWF1ZGlvLXBsYXllclwiPjxhIGhyZWY9XCIjY29udGVudC1hdWRpby1wbGF5ZXJcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkF1ZGlvIFBsYXllcjxcL2gyPlxuPHA+WW91IGNhbiA8YSBocmVmPVwiI3BsYXlfYXVkaW9cIj5wbGF5IGF1ZGlvPFwvYT4gYW5kIGNvbnRyb2wgZnVuY3Rpb25zIGZvciB1c2luZyBhdWRpbyByZXNvdXJjZXMuIFRoZSByZXNvdXJjZXMgY2FuIGJlIG1lZGlhIGZpbGVzIHN0b3JlZCBvbiB0aGUgZGV2aWNlIGluIGEgZmlsZSBvciBtZW1vcnksIG9yIHRoZXkgY2FuIGJlIHN0cmVhbWVkIGZyb20gYSBzdHJlYW1pbmcgc2VydmVyIChkZWZpbmVkIHdpdGggYSBVUkkpIHRocm91Z2ggdGhlIG5ldHdvcmsuPFwvcD5cbjxwPlRoZSBzdXBwb3J0ZWQgYXVkaW8gZm9ybWF0cyBpbmNsdWRlIE1QMywgQUFDLCBXTUEsIE00QSwgM0dBLCBXQVYsIGFuZCBBTVIuIFRoZSBhdmFpbGFibGUgZm9ybWF0cyBkZXBlbmQgb24gdGhlIHRhcmdldCBkZXZpY2UuPFwvcD5cbjxwPllvdSBjYW4gdXNlIG11bHRpcGxlIGluc3RhbmNlcyBvZiB0aGUgcGxheWVyIHRvIHBsYXkgc2V2ZXJhbCBhdWRpbyBkYXRhIHN0cmVhbXMgY29uY3VycmVudGx5LiBUaGlzIG1lYW5zIHRoYXQgeW91ciBhcHBsaWNhdGlvbiBjYW4gcGxheSBtdWx0aXBsZSB1bmNvbXByZXNzZWQgYXVkaW8gZmlsZXMgYXQgdGhlIHNhbWUgdGltZS48XC9wPlxuPHA+VGhlIGZvbGxvd2luZyBmaWd1cmUgaWxsdXN0cmF0ZXMgdGhlIGdlbmVyYWwgcGxheWVyIHN0YXRlIGNoYW5nZXMuPFwvcD5cbjxwPjxzdHJvbmc+RmlndXJlOiBQbGF5ZXIgc3RhdGUgY2hhbmdlczxcL3N0cm9uZz48XC9wPlxuPHA+PGltZyBzcmM9XCJtZWRpYVwvcGxheWVyX3N0YXRlX2NzLnBuZ1wiIGFsdD1cIlBsYXllciBzdGF0ZSBjaGFuZ2VzXCIgXC8+PFwvcD5cbjxwPlRoZSA8Y29kZT5QbGF5YmFja0ludGVycnVwdGVkPFwvY29kZT4gZXZlbnQgb2YgdGhlIDxhIGhyZWY9XCJcL2FwcGxpY2F0aW9uXC9kb3RuZXRcL2FwaVwvVGl6ZW5GWFwvbGF0ZXN0XC9hcGlcL1RpemVuLk11bHRpbWVkaWEuUGxheWVyLm1kXCI+VGl6ZW4uTXVsdGltZWRpYS5QbGF5ZXI8XC9hPiBjbGFzcyBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgYXBwbGljYXRpb24gaXMgaW50ZXJydXB0ZWQgYnkgYW5vdGhlciBhcHBsaWNhdGlvbi4gVGhlIHBsYXllciBpcyBwYXVzZWQgb3IgbW92ZWQgdG8gdGhlIDxjb2RlPklkbGU8XC9jb2RlPiBzdGF0ZSBhY2NvcmRpbmcgdG8gdGhlIGF1ZGlvIHNlc3Npb24gbWFuYWdlciAoQVNNKSBwb2xpY3kuIFlvdSBtdXN0IGNoZWNrIHRoZSBzdGF0ZSBvZiB0aGUgY3VycmVudCBpbnN0YW5jZSBhbmQgdGFrZSBhcHByb3ByaWF0ZSBhY3Rpb24uPFwvcD5cbjxwPjxhIG5hbWU9XCJ2aWRlb1wiPjxcL2E+PFwvcD5cbjxoMiBpZD1cImNvbnRlbnQtdmlkZW8tcGxheWVyXCI+PGEgaHJlZj1cIiNjb250ZW50LXZpZGVvLXBsYXllclwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+VmlkZW8gUGxheWVyPFwvaDI+XG48cD5UaXplbiBlbmFibGVzIHlvdXIgYXBwbGljYXRpb24gdG8gPGEgaHJlZj1cIiNwbGF5X3ZpZGVvXCI+cGxheSB2aWRlbzxcL2E+LCBhbmQgaXQgdXNlcyBpdHMgb3duIHVzZXIgc3VyZmFjZS4gVGhlIHN1cmZhY2UgcmVxdWlyZXMgYSBkcmF3aW5nIGFyZWEsIHNvIHlvdSBoYXZlIHRvIGdldCBhbiBvdmVybGF5IHJlZ2lvbiBhbmQgc2V0IGl0IHRvIHRoZSBwbGF5ZXIgaW5zdGFuY2UgdG8gZGlzcGxheSB0aGUgZHJhd2luZyBhcmVhLiBUbyBnZXQgYW4gb3ZlcmxheSByZWdpb24gYW5kIHNldCBpdCB0byB0aGUgcGxheWVyIGluc3RhbmNlLCBmb2xsb3cgdGhlIHN0ZXBzIGJlbG93OjxcL3A+XG48b2w+XG48bGk+XG48cD5HZXQgdGhlIFVJIGNvbXBvbmVudCB0byBkaXNwbGF5IGZyb20gdGhlIGdyYXBoaWNzIG1vZHVsZS48XC9wPlxuPHA+WW91IGNhbiBkaXNwbGF5IHZpZGVvIG9uIGEgVUkgbGF5ZXIgb2YgTlVJLjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPkNyZWF0ZSB0aGUgcGxheWVyIGluc3RhbmNlLjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPkNyZWF0ZSB0aGUgZGlzcGxheSBpbnN0YW5jZSB3aXRoIHRoZSBVSSBjb21wb25lbnQgeW91IGdvdC48XC9wPlxuPFwvbGk+XG48bGk+XG48cD5TZXQgdGhlIGRpc3BsYXkgdG8gdGhlIHBsYXllciB1c2luZyB0aGUgPGNvZGU+RGlzcGxheTxcL2NvZGU+IHByb3BlcnR5IG9mIHRoZSA8YSBocmVmPVwiXC9hcHBsaWNhdGlvblwvZG90bmV0XC9hcGlcL1RpemVuRlhcL2xhdGVzdFwvYXBpXC9UaXplbi5NdWx0aW1lZGlhLlBsYXllci5tZFwiPlRpemVuLk11bHRpbWVkaWEuUGxheWVyPFwvYT4gY2xhc3MuPFwvcD5cbjxcL2xpPlxuPFwvb2w+XG48cD5UaGUgc3VwcG9ydGVkIHZpZGVvIGZvcm1hdHMgaW5jbHVkZSBXTVYsIEFTRiwgTVA0LCAzR1AsIEFWSSwgTUtWLCBhbmQgT0dHLiBUaGUgYXZhaWxhYmxlIGZvcm1hdHMgZGVwZW5kIG9uIHRoZSB0YXJnZXQgZGV2aWNlLjxcL3A+XG48cD5JbiB0aGUgY2FzZSBvZiBhIHZpZGVvIGludGVycnVwdGlvbiwgdGhlIHBsYXllciBzdGF0ZSBjYW4gYmUgPGNvZGU+UmVhZHk8XC9jb2RlPiBkdWUgdG8gdGhlIHJlc291cmNlIHJlc3RyaWN0aW9uIGluIHRoZSBzeXN0ZW0uPFwvcD5cbjxwPlRoZSBmb2xsb3dpbmcgZmlndXJlIGlsbHVzdHJhdGVzIHdoYXQgaGFwcGVucyB3aGVuIHRoZSBwbGF5ZXIgZ2V0cyBpbnRlcnJ1cHRlZCBieSB0aGUgc3lzdGVtLjxcL3A+XG48cD48c3Ryb25nPkZpZ3VyZTogUGxheWVyIHN0YXRlcyB3aGVuIGludGVycnVwdGVkIGJ5IHN5c3RlbTxcL3N0cm9uZz48XC9wPlxuPHA+PGltZyBzcmM9XCJtZWRpYVwvdmlkZW9wbGF5ZXJfaW50ZXJydXB0ZWRfc3RhdGVfY3MucG5nXCIgYWx0PVwiUGxheWVyIHN0YXRlcyB3aGVuIGludGVycnVwdGVkIGJ5IHN5c3RlbVwiIFwvPjxcL3A+XG48cD48YSBuYW1lPVwiZmVhdHVyZXNcIj48XC9hPjxcL3A+XG48aDIgaWQ9XCJjb250ZW50LXBsYXllci1mZWF0dXJlc1wiPjxhIGhyZWY9XCIjY29udGVudC1wbGF5ZXItZmVhdHVyZXNcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlBsYXllciBGZWF0dXJlczxcL2gyPlxuPHA+VGhlIDxhIGhyZWY9XCJcL2FwcGxpY2F0aW9uXC9kb3RuZXRcL2FwaVwvVGl6ZW5GWFwvbGF0ZXN0XC9hcGlcL1RpemVuLk11bHRpbWVkaWEuUGxheWVyLm1kXCI+VGl6ZW4uTXVsdGltZWRpYS5QbGF5ZXI8XC9hPiBjbGFzcyBwcm92aWRlcyB0aGUgZm9sbG93aW5nIGZlYXR1cmVzOjxcL3A+XG48dWw+XG48bGk+XG48cD5PcGVyYXRpbmcgZ2VuZXJhbCBjb250cm9scyBmb3IgdGhlIDxhIGhyZWY9XCIjYXVkaW9cIj5hdWRpbzxcL2E+IGFuZCA8YSBocmVmPVwiI3ZpZGVvXCI+dmlkZW88XC9hPiBjb250ZW50LCBzdWNoIGFzIHBsYXksIHBhdXNlLCByZXN1bWUsIGFuZCBzdG9wPFwvcD5cbjxwPlRoZSBwbGF5ZXIgaGFzIGV2ZW50cyB5b3UgY2FuIHVzZSB0byByZWNlaXZlIG5vdGlmaWNhdGlvbnMgb2YgcGxheWVyIHN0YXR1cyBjaGFuZ2VzIGR1cmluZyBwbGF5YmFjay4gU2luY2UgdGhlIHBsYXllciBlbmdpbmUgd29ya3MgYXN5bmNocm9ub3VzbHksIHlvdSBtdXN0IGltcGxlbWVudCBldmVudCBoYW5kbGVycyB0byBlbnN1cmUgdGhhdCB0aGUgcGxheWVyIGZsb3dzIGNvcnJlY3RseS4gV2hlbiBlYWNoIHBsYXllcidzIG9wZXJhdGlvbiBpcyBjb21wbGV0ZWQsIHRoZSA8Y29kZT5QbGF5YmFja0NvbXBsZXRlZDxcL2NvZGU+IGV2ZW50IG9mIHRoZSA8Y29kZT5UaXplbi5NdWx0aW1lZGlhLlBsYXllcjxcL2NvZGU+IGNsYXNzIGlzIHJhaXNlZC4gSWYgYW4gZXJyb3Igb2NjdXJzIGluIHRoZSBwbGF5ZXIgZW5naW5lLCB5b3UgY2FuIGJlIG5vdGlmaWVkIHRocm91Z2ggdGhlIDxjb2RlPkVycm9yT2NjdXJyZWQ8XC9jb2RlPiBldmVudC48XC9wPlxuPFwvbGk+XG48bGk+XG48cD5Nb2RpZnlpbmcgcGxheWJhY2sgcHJvcGVydGllczxcL3A+XG48cD5BZnRlciB0aGUgcGxheWVyIHN0YXRlIGlzIGNoYW5nZWQgdG8gPGNvZGU+UmVhZHk8XC9jb2RlPiwgeW91IGNhbiBtb2RpZnkgdmFyaW91cyBwbGF5YmFjayBwcm9wZXJ0aWVzLCBzdWNoIGFzIHZvbHVtZSwgc291bmQgdHlwZSwgbGF0ZW5jeSBtb2RlLCBtdXRlIG1vZGUsIGFuZCBsb29waW5nIG1vZGUuPFwvcD5cbjxcL2xpPlxuPGxpPlxuPHA+TW92aW5nIHRoZSBhdWRpbyBhbmQgdmlkZW8gY29udGVudCBiYXNlZCBvbiB0aW1lPFwvcD5cbjxcL2xpPlxuPGxpPlxuPHA+Q29udHJvbGxpbmcgdGhlIHZvbHVtZSBvZiB0aGUgYXVkaW8gYW5kIHZpZGVvIGNvbnRlbnQgYmFzZWQgb24gZWFjaCBpbnN0YW5jZTxcL3A+XG48cD5UaGUgcGxheWVyIHdvcmtzIGJhc2VkIG9uIHRoZSBhdWRpbyBzZXNzaW9uIG1hbmFnZXIgcG9saWN5LiBUaGlzIG1lYW5zIHRoYXQgYW4gYXBwbGljYXRpb24gY2FuIGJlIGludGVycnVwdGVkIGJ5IGFub3RoZXIgYXBwbGljYXRpb24uIFlvdSBjYW4gY2hhbmdlIHRoZSBwb2xpY3kgZGlyZWN0bHkgYnkgdXNpbmcgdGhlIDxhIGhyZWY9XCJcL2FwcGxpY2F0aW9uXC9kb3RuZXRcL2FwaVwvVGl6ZW5GWFwvbGF0ZXN0XC9hcGlcL1RpemVuLk11bHRpbWVkaWEuQXVkaW9TdHJlYW1Qb2xpY3kubWRcIj5UaXplbi5NdWx0aW1lZGlhLkF1ZGlvU3RyZWFtUG9saWN5PFwvYT4gY2xhc3MuPFwvcD5cbjxcL2xpPlxuPGxpPlxuPHA+R2V0dGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYXVkaW8gYW5kIHZpZGVvIGNvbnRlbnQ8XC9wPlxuPHA+QWZ0ZXIgdGhlIHBsYXllciBzdGF0ZSBpcyBjaGFuZ2VkIHRvIDxjb2RlPlJlYWR5PFwvY29kZT4sIHRoZSBtdWx0aW1lZGlhIHJlc291cmNlIGlzIGF2YWlsYWJsZSBhbmQgeW91IGNhbiBnZXQgY29udGVudCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBtZWRpYS4gWW91IGNhbiBhbHNvIGdldCBjb250ZW50IGluZm9ybWF0aW9uIGluIHRoZSA8Y29kZT5QbGF5aW5nPFwvY29kZT4gc3RhdGUsIGluIHNvbWUgY2FzZXMgb2YgcGxheWJhY2sgc3RyZWFtaW5nLjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPlBsYXlpbmcgbXVsdGlwbGUgYXVkaW8gc3RyZWFtczxcL3A+XG48cD5UaGUgbWF4aW11bSBudW1iZXIgb2YgcGxheWVyIGluc3RhbmNlcyBpcyBsaW1pdGVkIGJ5IHRoZSBzeXN0ZW0gYW5kIG11bHRpbWVkaWEgcmVzb3VyY2VzLiBUaGUgbWF4aW11bSBudW1iZXIgaXMgYSBzeXN0ZW0td2lkZSBjb3VudCBhbmQgaXQgY2FuIGJlIGFwcGxpZWQgZGVwZW5kaW5nIG9uIHRoZSBDUFUgbW9kZWwsIENQVSBzcGVlZCwgQ1BVIGNvcmUgbnVtYmVyLCBDUFUgbG9hZCBmcm9tIG90aGVyIGFwcGxpY2F0aW9ucywgYW5kIHRoZSBhdmFpbGFibGUgbWVtb3J5LiBUaHVzLCB0aGUgZXhhY3QgbnVtYmVyIGNhbiBiZSBzbWFsbGVyIHRoYW4gdGhlIG1heGltdW0gbnVtYmVyLCBpbiB3aGljaCBjYXNlIHRoZSBwcmVwYXJlIG1ldGhvZHMgZmFpbC4gQSByZWFzb25hYmxlIHdvcmtpbmcgcGxheWVyIG51bWJlciBpcyB1bmRlciAxMC4gVG8gZnJlZSB1cCBzeXN0ZW0gcmVzb3VyY2VzLCA8YSBocmVmPVwiI3JlbGVhc2VcIj5zdG9wIHVubmVlZGVkIHBsYXllcnM8XC9hPi48XC9wPlxuPFwvbGk+XG48bGk+XG48cD5EaXNwbGF5PFwvcD5cbjxwPlVzZSB0aGUgPGNvZGU+RGlzcGxheTxcL2NvZGU+IHByb3BlcnR5IG9mIHRoZSA8Y29kZT5UaXplbi5NdWx0aW1lZGlhLlBsYXllcjxcL2NvZGU+IGNsYXNzIHRvIHBsYXkgYSB2aWRlbyBzdHJlYW0uPFwvcD5cbjxwPkFmdGVyIHRoZSBwbGF5ZXIgc3RhdGUgaXMgY2hhbmdlZCB0byA8Y29kZT5JZGxlPFwvY29kZT4sIGNyZWF0ZSB0aGUgZGlzcGxheSBhbmQgPGEgaHJlZj1cIiNzZXRfcGFyYW1ldGVyc1wiPnNldCB0aGUgZGlzcGxheSBzZXR0aW5nczxcL2E+LjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPlN0cmVhbSBpbmZvcm1hdGlvbjxcL3A+XG48cD5Vc2UgdGhlIDxjb2RlPlN0cmVhbUluZm88XC9jb2RlPiBwcm9wZXJ0eSBvZiB0aGUgPGNvZGU+VGl6ZW4uTXVsdGltZWRpYS5QbGF5ZXI8XC9jb2RlPiBjbGFzcyB0byBwbGF5IGEgdmlkZW8gc3RyZWFtLjxcL3A+XG48cD5BZnRlciB0aGUgcGxheWVyIHN0YXRlIGlzIGNoYW5nZWQgdG8gPGNvZGU+UmVhZHk8XC9jb2RlPiwgeW91IGNhbiA8YSBocmVmPVwiI2dldF9zdHJlYW1cIj5yZXRyaWV2ZSBzdHJlYW0gcHJvcGVydGllczxcL2E+LjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPkF1ZGlvIGVmZmVjdDxcL3A+XG48cD5Vc2UgdGhlIDxjb2RlPkF1ZGlvRWZmZWN0PFwvY29kZT4gcHJvcGVydHkgb2YgdGhlIDxjb2RlPlRpemVuLk11bHRpbWVkaWEuUGxheWVyPFwvY29kZT4gY2xhc3MgdG8gc2V0IGFuZCBnZXQgYXVkaW8gZWZmZWN0cyBmb3IgdGhlIHBsYXliYWNrLjxcL3A+XG48cD5BZnRlciB0aGUgcGxheWVyIHN0YXRlIGlzIGNoYW5nZWQgdG8gPGNvZGU+SWRsZTxcL2NvZGU+LCB5b3UgY2FuIGFkanVzdCB0aGUgYXVkaW8gZWZmZWN0cy48XC9wPlxuPFwvbGk+XG48bGk+XG48cD5TdWJ0aXRsZXM8XC9wPlxuPHA+VXNlIHRoZSA8Y29kZT5TZXRTdWJ0aXRsZSgpPFwvY29kZT4gbWV0aG9kIG9mIHRoZSA8Y29kZT5UaXplbi5NdWx0aW1lZGlhLlBsYXllcjxcL2NvZGU+IGNsYXNzIHRvIHNldCBhIHBhdGggZm9yIGluc2VydGluZyBzdWJ0aXRsZXMgaW50byBhIHZpZGVvIGZpbGUuPFwvcD5cbjxwPkFmdGVyIHRoZSBwbGF5ZXIgc3RhdGUgaXMgY2hhbmdlZCB0byA8Y29kZT5SZWFkeTxcL2NvZGU+LCB5b3UgY2FuIDxhIGhyZWY9XCIjaW5zZXJ0XCI+cmVhZCB0aGUgc3VidGl0bGUgdHJhY2s8XC9hPi48XC9wPlxuPFwvbGk+XG48bGk+XG48cD5TcGhlcmljYWwgVmlkZW8gUGxheWJhY2s8XC9wPlxuPHA+VXNlIHRoZSA8Y29kZT5TcGhlcmljYWxWaWRlbzxcL2NvZGU+IHByb3BlcnR5IG9mIHRoZSA8Y29kZT5UaXplbi5NdWx0aW1lZGlhLlBsYXllcjxcL2NvZGU+IGNsYXNzIHRvIHNldCB0aGUgcmVuZGVyaW5nIGF0dHJpYnV0ZXMgZm9yIHNwaGVyaWNhbCB2aWRlbyBwbGF5YmFjay48XC9wPlxuPFwvbGk+XG48XC91bD5cbjxwPjxhIG5hbWU9XCJzdHJlYW1cIj48XC9hPjxcL3A+XG48aDIgaWQ9XCJjb250ZW50LXBsYXliYWNrLXN0cmVhbXNcIj48YSBocmVmPVwiI2NvbnRlbnQtcGxheWJhY2stc3RyZWFtc1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+UGxheWJhY2sgc3RyZWFtczxcL2gyPlxuPHA+WW91IGNhbiBzZXQgc3BlY2lmaWMgVVJMcyBmb3Igc3RyZWFtaW5nIG1lZGlhIHBsYXliYWNrIHdpdGggdGhlIDxhIGhyZWY9XCJcL2FwcGxpY2F0aW9uXC9kb3RuZXRcL2FwaVwvVGl6ZW5GWFwvbGF0ZXN0XC9hcGlcL1RpemVuLk11bHRpbWVkaWEuTWVkaWFVcmlTb3VyY2UubWRcIj5UaXplbi5NdWx0aW1lZGlhLk1lZGlhVXJpU291cmNlPFwvYT4gY2xhc3MuPFwvcD5cbjxwPkJvdGggSHlwZXJ0ZXh0IFRyYW5zZmVyIFByb3RvY29sIChIVFRQKSBhbmQgUmVhbCBUaW1lIFN0cmVhbWluZyBQcm90b2NvbCAoUlRTUCkgcHJvdG9jb2xzIHN1cHBvcnQgc3RyZWFtaW5nIG1lZGlhIHBsYXliYWNrLiBUaGUgSFRUUCByZXF1ZXN0IGhlYWRlciBzdXBwb3J0cyB0aGUgcGxheWJhY2sgb2YgYm90aCBjb21wbGV0ZSBhbmQgZG93bmxvYWQtaW4tcHJvZ3Jlc3MgbWVkaWEgZmlsZXMuIFRoZSBpbmRleCB0YWJsZSAoYXRvbXMpIG11c3QgYmUgbW92ZWQgaW4gZnJvbnQgb2YgdGhlIGZpbGUgZm9yIHByb2dyZXNzaXZlIGRvd25sb2FkLjxcL3A+XG48cD5Gb3IgSFRUUCBzdHJlYW1pbmcsIGJ1ZmZlcmluZyBjYW4gaGFwcGVuIHdoZW4gdGhlIHBsYXllciBpcyBwcmVwYXJlZC4gWW91IGNhbiByZWNlaXZlIHRoZSBzdGF0dXMgdXNpbmcgdGhlIDxjb2RlPkJ1ZmZlcmluZ1Byb2dyZXNzQ2hhbmdlZDxcL2NvZGU+IGV2ZW50IG9mIHRoZSA8YSBocmVmPVwiXC9hcHBsaWNhdGlvblwvZG90bmV0XC9hcGlcL1RpemVuRlhcL2xhdGVzdFwvYXBpXC9UaXplbi5NdWx0aW1lZGlhLlBsYXllci5tZFwiPlRpemVuLk11bHRpbWVkaWEuUGxheWVyPFwvYT4gY2xhc3MuPFwvcD5cbjxwPlRoZSBmb2xsb3dpbmcgdGFibGUgbGlzdHMgdGhlIHN0cmVhbWluZyBwcm90b2NvbCBmZWF0dXJlcyBzdXBwb3J0ZWQgYnkgdGhlIHBsYXllci48XC9wPlxuPHA+PHN0cm9uZz5UYWJsZTogU3VwcG9ydGVkIHN0cmVhbWluZyBwcm90b2NvbCBmZWF0dXJlczxcL3N0cm9uZz48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+U3RyZWFtaW5nIHByb3RvY29sPFwvdGg+XG48dGg+U3VwcG9ydGVkIGZlYXR1cmU8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+SHlwZXJ0ZXh0IFRyYW5zZmVyIFByb3RvY29sIChIVFRQKTxcL3RkPlxuPHRkPkhUVFAgc3RyZWFtaW5nPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5IeXBlcnRleHQgVHJhbnNmZXIgUHJvdG9jb2wgKEhUVFApPFwvdGQ+XG48dGQ+SFRUUCBsaXZlIHN0cmVhbWluZzxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+SHlwZXJ0ZXh0IFRyYW5zZmVyIFByb3RvY29sIChIVFRQKTxcL3RkPlxuPHRkPkhUVFAgcHJvZ3Jlc3NpdmUgZG93bmxvYWQgcGxheTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+UmVhbCBUaW1lIFN0cmVhbWluZyBQcm90b2NvbCAoUlRTUCk8XC90ZD5cbjx0ZD5SVFNQIHN0cmVhbWluZzxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxoMiBpZD1cImNvbnRlbnQtcHJlcmVxdWlzaXRlc1wiPjxhIGhyZWY9XCIjY29udGVudC1wcmVyZXF1aXNpdGVzXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5QcmVyZXF1aXNpdGVzPFwvaDI+XG48cD5UbyB1c2UgdGhlIG1ldGhvZHMgYW5kIHByb3BlcnRpZXMgb2YgdGhlIG1lZGlhIHBsYXliYWNrIGNsYXNzZXMsIGluY2x1ZGUgdGhlIDxhIGhyZWY9XCJcL2FwcGxpY2F0aW9uXC9kb3RuZXRcL2FwaVwvVGl6ZW5GWFwvbGF0ZXN0XC9hcGlcL1RpemVuLk11bHRpbWVkaWEubWRcIj5UaXplbi5NdWx0aW1lZGlhPFwvYT4gbmFtZXNwYWNlIGluIHlvdXIgYXBwbGljYXRpb246PFwvcD5cbjxwcmUgY2xhc3M9XCJzaGlraSBzaGlraS10aGVtZXMgZ2l0aHViLWxpZ2h0IGdpdGh1Yi1kYXJrXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LS1zaGlraS1kYXJrLWJnOiMyNDI5MmU7Y29sb3I6IzI0MjkyZTstLXNoaWtpLWRhcms6I2UxZTRlODtcIj48Y29kZT48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj51c2luZzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+VGl6ZW48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPi48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPk11bHRpbWVkaWE8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPjs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPHA+PGEgbmFtZT1cInByZXBhcmVcIj48XC9hPjxcL3A+XG48aDIgaWQ9XCJjb250ZW50LXByZXBhcmUtdGhlLXBsYXllclwiPjxhIGhyZWY9XCIjY29udGVudC1wcmVwYXJlLXRoZS1wbGF5ZXJcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlByZXBhcmUgdGhlIHBsYXllcjxcL2gyPlxuPHA+VG8gaW5pdGlhbGl6ZSB0aGUgcGxheWVyIGZvciB1c2UsIHByb2NlZWQgYXMgZm9sbG93czo8XC9wPlxuPG9sPlxuPGxpPlxuPHA+Q3JlYXRlIGEgaW5zdGFuY2Ugb2YgdGhlIDxhIGhyZWY9XCJcL2FwcGxpY2F0aW9uXC9kb3RuZXRcL2FwaVwvVGl6ZW5GWFwvbGF0ZXN0XC9hcGlcL1RpemVuLk11bHRpbWVkaWEuUGxheWVyLm1kXCI+VGl6ZW4uTXVsdGltZWRpYS5QbGF5ZXI8XC9hPiBjbGFzczo8XC9wPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPnZhcjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+cGxheWVyPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5uZXc8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPlBsYXllcjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KCk7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj48XC9jb2RlPjxcL3ByZT5cbjxcL2xpPlxuPGxpPlxuPHA+VG8gcmVjZWl2ZSBub3RpZmljYXRpb25zLCBhZGQgZXZlbnQgaGFuZGxlcnMgdG8gdGhlIGFwcHJvcHJpYXRlIGV2ZW50cyBvZiB0aGUgPGNvZGU+VGl6ZW4uTXVsdGltZWRpYS5QbGF5ZXI8XC9jb2RlPiBjbGFzczo8XC9wPlxuPHVsPlxuPGxpPlxuPHA+VG8gcmVjZWl2ZSBub3RpZmljYXRpb25zIGFib3V0IHBsYXliYWNrIGludGVycnVwdGlvbnMsIHJlZ2lzdGVyIGFuIGV2ZW50IGhhbmRsZXIgZm9yIHRoZSA8Y29kZT5QbGF5YmFja0ludGVycnVwdGVkPFwvY29kZT4gZXZlbnQ6PFwvcD5cbjxwcmUgY2xhc3M9XCJzaGlraSBzaGlraS10aGVtZXMgZ2l0aHViLWxpZ2h0IGdpdGh1Yi1kYXJrXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LS1zaGlraS1kYXJrLWJnOiMyNDI5MmU7Y29sb3I6IzI0MjkyZTstLXNoaWtpLWRhcms6I2UxZTRlODtcIj48Y29kZT48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5wbGF5ZXIuUGxheWJhY2tJbnRlcnJ1cHRlZCA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPis9PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gKDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+b2JqZWN0PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gc2VuZGVyLCBQbGF5YmFja0ludGVycnVwdGVkRXZlbnRBcmdzIGUpPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ezxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICBUaXplbi5Mb2cuPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5JbmZvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oTG9nVGFnLCA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiQmcXVvdDtDdXJyZW50IHBsYXllciBzdGF0ZSBpcyA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPns8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPnBsYXllcjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+LjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+U3RhdGU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPn08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiM2QTczN0Q7LS1zaGlraS1kYXJrOiM2QTczN0RcIj4gICAgXC9cL1wvIElmIHRoZSBzdGF0ZSBpcyBQYXVzZWQsIHVwZGF0ZSB0aGUgVUkgKGZvciBleGFtcGxlLCBidXR0b24pPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+fTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPHA+VGhlIHBsYXliYWNrIGlzIGludGVycnVwdGVkIGFuZCB0aGUgZXZlbnQgaXMgcmFpc2VkIHdoZW4sIGZvciBleGFtcGxlLCBhbm90aGVyIG11bHRpbWVkaWEgYXBwbGljYXRpb24gaXMgcnVuLiBUaGUgcGxheWVyIHN0YXRlIGF1dG9tYXRpY2FsbHkgY2hhbmdlcyB0byA8Y29kZT5QYXVzZWQ8XC9jb2RlPiBvciA8Y29kZT5JZGxlPFwvY29kZT4gYWNjb3JkaW5nIHRvIHRoZSBzZXNzaW9uIHBvbGljeS48XC9wPlxuPFwvbGk+XG48bGk+XG48cD5UbyByZWNlaXZlIGEgbm90aWZpY2F0aW9uIHdoZW4gdGhlIHBsYXliYWNrIGVuZHMsIHJlZ2lzdGVyIGFuIGV2ZW50IGhhbmRsZXIgZm9yIHRoZSA8Y29kZT5QbGF5YmFja0NvbXBsZXRlZDxcL2NvZGU+IGV2ZW50OjxcL3A+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+cGxheWVyLlBsYXliYWNrQ29tcGxldGVkIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+Kz08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAoPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5vYmplY3Q8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiBzZW5kZXIsIEV2ZW50QXJncyBlKTxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPns8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICBUaXplbi5Mb2cuPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5JbmZvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oTG9nVGFnLCA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O1BsYXliYWNrIEVuZCZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj59OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+PFwvY29kZT48XC9wcmU+XG48XC9saT5cbjxsaT5cbjxwPlRvIHJlY2VpdmUgbm90aWZpY2F0aW9ucyBhYm91dCBwbGF5ZXIgZXJyb3JzIGR1cmluZyBwbGF5YmFjaywgcmVnaXN0ZXIgYW4gZXZlbnQgaGFuZGxlciBmb3IgdGhlIDxjb2RlPkVycm9yT2NjdXJyZWQ8XC9jb2RlPiBldmVudDo8XC9wPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPnBsYXllci5FcnJvck9jY3VycmVkIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+Kz08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAoPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5vYmplY3Q8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiBzZW5kZXIsIFBsYXllckVycm9yT2NjdXJyZWRFdmVudEFyZ3MgZSk8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj57PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgIFRpemVuLkxvZy48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPkVycm9yPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oTG9nVGFnLCA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiQmcXVvdDtQbGF5YmFjayBmYWlsZWQsIGVycm9yID0gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj57PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5lPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5FcnJvcjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+fTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4pOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPn07PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj48XC9jb2RlPjxcL3ByZT5cbjxwPlRoZSBwbGF5ZXIgZXJyb3IgZXZlbnQgaXMgcmFpc2VkIHdoZW4gdGhlIHBsYXllciBzdG9wcyB3b3JraW5nIGR1ZSB0byBhbiBlcnJvci4gWW91IGNhbiB1c2UgdGhlIGV2ZW50IHRvIHRyeSB0byByZWNvdmVyIGZyb20gdGhlIGVycm9yLiBGb3IgZXhhbXBsZSwgdHJ5IHRvIGNoYW5nZSB0aGUgcGxheWVyIHN0YXRlIHRvIDxjb2RlPlJlYWR5PFwvY29kZT4gYnkgY2FsbGluZyB0aGUgPGNvZGU+U3RvcCgpPFwvY29kZT4gbWV0aG9kIG9mIHRoZSA8Y29kZT5UaXplbi5NdWx0aW1lZGlhLlBsYXllcjxcL2NvZGU+IGNsYXNzLCBhbmQgdGhlbiByZXNldCB0aGUgcGxheWVyIGJ5IGNhbGxpbmcgdGhlIDxjb2RlPlVucHJlcGFyZSgpPFwvY29kZT4gbWV0aG9kLjxcL3A+XG48XC9saT5cbjxcL3VsPlxuPFwvbGk+XG48XC9vbD5cbjxwPjxhIG5hbWU9XCJwbGF5X2F1ZGlvXCI+PFwvYT48XC9wPlxuPGgyIGlkPVwiY29udGVudC1wbGF5LWFuLWF1ZGlvLWZpbGVcIj48YSBocmVmPVwiI2NvbnRlbnQtcGxheS1hbi1hdWRpby1maWxlXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5QbGF5IGFuIGF1ZGlvIGZpbGU8XC9oMj5cbjxwPlRvIHBsYXkgYW4gYXVkaW8gZmlsZSwgcHJvY2VlZCBhcyBmb2xsb3dzOjxcL3A+XG48b2w+XG48bGk+XG48cD5BZnRlciBjcmVhdGluZyB0aGUgcGxheWVyLCBzcGVjaWZ5IHRoZSBhdWRpbyBmaWxlIHRvIHBsYXkgYnkgY3JlYXRpbmcgYW4gaW5zdGFuY2Ugb2YgdGhlIDxhIGhyZWY9XCJcL2FwcGxpY2F0aW9uXC9kb3RuZXRcL2FwaVwvVGl6ZW5GWFwvbGF0ZXN0XC9hcGlcL1RpemVuLk11bHRpbWVkaWEuTWVkaWFVcmlTb3VyY2UubWRcIj5UaXplbi5NdWx0aW1lZGlhLk1lZGlhVXJpU291cmNlPFwvYT4gY2xhc3Mgd2l0aCB0aGUgcGF0aCB0byB0aGUgYXVkaW8gZmlsZSwgYW5kIHNldHRpbmcgdGhhdCBhcyB0aGUgPGNvZGU+U291cmNlPFwvY29kZT4gcHJvcGVydHkgb2YgdGhlIDxhIGhyZWY9XCJcL2FwcGxpY2F0aW9uXC9kb3RuZXRcL2FwaVwvVGl6ZW5GWFwvbGF0ZXN0XC9hcGlcL1RpemVuLk11bHRpbWVkaWEuUGxheWVyLm1kXCI+VGl6ZW4uTXVsdGltZWRpYS5QbGF5ZXI8XC9hPiBjbGFzcyBpbnN0YW5jZSB5b3Ugd2FudCB0byBwbGF5IHRoZSBmaWxlIHdpdGg6PFwvcD5cbjxwcmUgY2xhc3M9XCJzaGlraSBzaGlraS10aGVtZXMgZ2l0aHViLWxpZ2h0IGdpdGh1Yi1kYXJrXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LS1zaGlraS1kYXJrLWJnOiMyNDI5MmU7Y29sb3I6IzI0MjkyZTstLXNoaWtpLWRhcms6I2UxZTRlODtcIj48Y29kZT48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5wbGF5ZXIuPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5TZXRTb3VyY2U8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPig8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPm5ldzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+TWVkaWFVcmlTb3VyY2U8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPihhdWRpb1BhdGgpKTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPFwvbGk+XG48bGk+XG48cD5QcmVwYXJlIHRoZSBwbGF5ZXIgZm9yIHBsYXliYWNrIHVzaW5nIHRoZSA8Y29kZT5QcmVwYXJlQXN5bmMoKTxcL2NvZGU+IG1ldGhvZCBvZiB0aGUgPGNvZGU+VGl6ZW4uTXVsdGltZWRpYS5QbGF5ZXI8XC9jb2RlPiBjbGFzczo8XC9wPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPmF3YWl0PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gcGxheWVyLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+UHJlcGFyZUFzeW5jPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oKTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPHA+VGhlIG1ldGhvZCBjaGFuZ2VzIHRoZSBwbGF5ZXIgc3RhdGUgZnJvbSA8Y29kZT5JZGxlPFwvY29kZT4gdG8gPGNvZGU+UmVhZHk8XC9jb2RlPiwgd2hpY2ggaXMgcmVxdWlyZWQgdG8gc3RhcnQgcGxheWJhY2suPFwvcD5cbjxcL2xpPlxuPGxpPlxuPHA+U3RhcnQgcGxheWluZyB0aGUgYXVkaW8gZmlsZSB1c2luZyB0aGUgPGNvZGU+U3RhcnQoKTxcL2NvZGU+IG1ldGhvZDo8XC9wPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPnBsYXllci48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPlN0YXJ0PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oKTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPHA+VGhpcyBjaGFuZ2VzIHRoZSBwbGF5ZXIgc3RhdGUgZnJvbSA8Y29kZT5SZWFkeTxcL2NvZGU+IHRvIDxjb2RlPlBsYXlpbmc8XC9jb2RlPi4gVGhlIGF1ZGlvIGZpbGUgcGxheXMgdW50aWwgeW91IGNhbGwgdGhlIDxjb2RlPlN0b3AoKTxcL2NvZGU+IG9yIDxjb2RlPlBhdXNlKCk8XC9jb2RlPiBtZXRob2QuPFwvcD5cbjxcL2xpPlxuPFwvb2w+XG48cD48YSBuYW1lPVwicGxheV92aWRlb1wiPjxcL2E+PFwvcD5cbjxoMiBpZD1cImNvbnRlbnQtcGxheS1hLXZpZGVvLWZpbGVcIj48YSBocmVmPVwiI2NvbnRlbnQtcGxheS1hLXZpZGVvLWZpbGVcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlBsYXkgYSB2aWRlbyBmaWxlPFwvaDI+XG48cD5UbyBwbGF5IGEgdmlkZW8gZmlsZSwgcHJvY2VlZCBhcyBmb2xsb3dzOjxcL3A+XG48b2w+XG48bGk+XG48cD5BZnRlciBjcmVhdGluZyB0aGUgcGxheWVyLCBzcGVjaWZ5IHRoZSB2aWRlbyBmaWxlIHRvIHBsYXkgYnkgY3JlYXRpbmcgYW4gaW5zdGFuY2Ugb2YgdGhlIDxhIGhyZWY9XCJcL2FwcGxpY2F0aW9uXC9kb3RuZXRcL2FwaVwvVGl6ZW5GWFwvbGF0ZXN0XC9hcGlcL1RpemVuLk11bHRpbWVkaWEuTWVkaWFVcmlTb3VyY2UubWRcIj5UaXplbi5NdWx0aW1lZGlhLk1lZGlhVXJpU291cmNlPFwvYT4gY2xhc3Mgd2l0aCB0aGUgcGF0aCB0byB0aGUgYXVkaW8gZmlsZSwgYW5kIHNldHRpbmcgdGhhdCBhcyB0aGUgPGNvZGU+U291cmNlPFwvY29kZT4gcHJvcGVydHkgb2YgdGhlIDxhIGhyZWY9XCJcL2FwcGxpY2F0aW9uXC9kb3RuZXRcL2FwaVwvVGl6ZW5GWFwvbGF0ZXN0XC9hcGlcL1RpemVuLk11bHRpbWVkaWEuUGxheWVyLm1kXCI+VGl6ZW4uTXVsdGltZWRpYS5QbGF5ZXI8XC9hPiBjbGFzcyBpbnN0YW5jZSB5b3Ugd2FudCB0byBwbGF5IHRoZSBmaWxlIHdpdGg6PFwvcD5cbjxwcmUgY2xhc3M9XCJzaGlraSBzaGlraS10aGVtZXMgZ2l0aHViLWxpZ2h0IGdpdGh1Yi1kYXJrXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LS1zaGlraS1kYXJrLWJnOiMyNDI5MmU7Y29sb3I6IzI0MjkyZTstLXNoaWtpLWRhcms6I2UxZTRlODtcIj48Y29kZT48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5wbGF5ZXIuU291cmNlIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+bmV3PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5NZWRpYVVyaVNvdXJjZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KHZpZGVvUGF0aCk7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj48XC9jb2RlPjxcL3ByZT5cbjxcL2xpPlxuPGxpPlxuPHA+U2V0IHRoZSBkaXNwbGF5IGZvciBzaG93aW5nIHZpZGVvIGJ5IHVzaW5nIHRoZSA8Y29kZT5EaXNwbGF5PFwvY29kZT4gcHJvcGVydHkgb2YgdGhlIDxhIGhyZWY9XCJcL2FwcGxpY2F0aW9uXC9kb3RuZXRcL2FwaVwvVGl6ZW5GWFwvbGF0ZXN0XC9hcGlcL1RpemVuLk11bHRpbWVkaWEuUGxheWVyLm1kXCI+VGl6ZW4uTXVsdGltZWRpYS5QbGF5ZXI8XC9hPiBjbGFzcyB3aXRoIDxjb2RlPk5VSS5XaW5kb3c8XC9jb2RlPiBjbGFzcy48XC9wPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZBNzM3RDstLXNoaWtpLWRhcms6IzZBNzM3RFwiPlwvXC8gQ3JlYXRlIG5ldyBOVUkgd2luZG93IG9yIHNldCBOVUkgd2luZG93IHRvIGJlIHJlbmRlcmVkPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkE3MzdEOy0tc2hpa2ktZGFyazojNkE3MzdEXCI+XC9cLyBgbnVpV2luZG93YCBvZiB0aGUgZm9sbG93aW5nIGNvZGUgaXMgdGhlIGluc3RhbmNlIG9mIGBOVUkuV2luZG93YCBjbGFzcy48XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5wbGF5ZXIuRGlzcGxheSA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPm5ldzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+RGlzcGxheTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KG51aVdpbmRvdyk7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj48XC9jb2RlPjxcL3ByZT5cbjxcL2xpPlxuPGxpPlxuPHA+UHJlcGFyZSB0aGUgcGxheWVyIGZvciBwbGF5YmFjayB1c2luZyB0aGUgPGNvZGU+UHJlcGFyZUFzeW5jKCk8XC9jb2RlPiBtZXRob2Qgb2YgdGhlIDxjb2RlPlRpemVuLk11bHRpbWVkaWEuUGxheWVyPFwvY29kZT4gY2xhc3M6PFwvcD5cbjxwcmUgY2xhc3M9XCJzaGlraSBzaGlraS10aGVtZXMgZ2l0aHViLWxpZ2h0IGdpdGh1Yi1kYXJrXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LS1zaGlraS1kYXJrLWJnOiMyNDI5MmU7Y29sb3I6IzI0MjkyZTstLXNoaWtpLWRhcms6I2UxZTRlODtcIj48Y29kZT48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5hd2FpdDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IHBsYXllci48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPlByZXBhcmVBc3luYzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KCk7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj48XC9jb2RlPjxcL3ByZT5cbjxwPlRoaXMgbWV0aG9kIGNoYW5nZXMgdGhlIHBsYXllciBzdGF0ZSBmcm9tIDxjb2RlPklkbGU8XC9jb2RlPiB0byA8Y29kZT5SZWFkeTxcL2NvZGU+LCB3aGljaCBpcyByZXF1aXJlZCB0byBzdGFydCBwbGF5YmFjay48XC9wPlxuPFwvbGk+XG48bGk+XG48cD5QbGF5IHRoZSB2aWRlbyBmaWxlLCB1c2luZyB0aGUgPGNvZGU+U3RhcnQoKTxcL2NvZGU+IG1ldGhvZDo8XC9wPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPnBsYXllci48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPlN0YXJ0PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oKTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPHA+VGhpcyBjaGFuZ2VzIHRoZSBwbGF5ZXIgc3RhdGUgZnJvbSA8Y29kZT5SZWFkeTxcL2NvZGU+IHRvIDxjb2RlPlBsYXlpbmc8XC9jb2RlPi4gVGhlIHZpZGVvIGZpbGUgcGxheXMgdW50aWwgeW91IGNhbGwgdGhlIDxjb2RlPlN0b3AoKTxcL2NvZGU+IG9yIDxjb2RlPlBhdXNlKCk8XC9jb2RlPiBtZXRob2QuPFwvcD5cbjxcL2xpPlxuPFwvb2w+XG48cD48YSBuYW1lPVwicmVsZWFzZVwiPjxcL2E+PFwvcD5cbjxoMiBpZD1cImNvbnRlbnQtc3RvcC10aGUtcGxheWVyXCI+PGEgaHJlZj1cIiNjb250ZW50LXN0b3AtdGhlLXBsYXllclwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+U3RvcCB0aGUgcGxheWVyPFwvaDI+XG48cD5UbyBzdG9wIGFuZCByZXNldCB0aGUgcGxheWVyLCBwcm9jZWVkIGFzIGZvbGxvd3M6PFwvcD5cbjxvbD5cbjxsaT5cbjxwPlN0b3AgdGhlIHBsYXllciB1c2luZyB0aGUgPGNvZGU+U3RvcCgpPFwvY29kZT4gbWV0aG9kIG9mIHRoZSA8YSBocmVmPVwiXC9hcHBsaWNhdGlvblwvZG90bmV0XC9hcGlcL1RpemVuRlhcL2xhdGVzdFwvYXBpXC9UaXplbi5NdWx0aW1lZGlhLlBsYXllci5tZFwiPlRpemVuLk11bHRpbWVkaWEuUGxheWVyPFwvYT4gY2xhc3M6PFwvcD5cbjxwcmUgY2xhc3M9XCJzaGlraSBzaGlraS10aGVtZXMgZ2l0aHViLWxpZ2h0IGdpdGh1Yi1kYXJrXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LS1zaGlraS1kYXJrLWJnOiMyNDI5MmU7Y29sb3I6IzI0MjkyZTstLXNoaWtpLWRhcms6I2UxZTRlODtcIj48Y29kZT48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5wbGF5ZXIuPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5TdG9wPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oKTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPFwvbGk+XG48bGk+XG48cD5SZXNldCB0aGUgcGxheWVyIHVzaW5nIHRoZSA8Y29kZT5VbnByZXBhcmUoKTxcL2NvZGU+IG1ldGhvZDo8XC9wPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPnBsYXllci48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPlVucHJlcGFyZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KCk7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj48XC9jb2RlPjxcL3ByZT5cbjxwPkFmdGVyIHRoZSBwbGF5ZXIgaXMgcmVzZXQsIGl0IGlzIGluIHRoZSA8Y29kZT5JZGxlPFwvY29kZT4gc3RhdGUuPFwvcD5cbjxcL2xpPlxuPFwvb2w+XG48cD48YSBuYW1lPVwic2V0X3BhcmFtZXRlcnNcIj48XC9hPjxcL3A+XG48aDIgaWQ9XCJjb250ZW50LWNvbmZpZ3VyZS10aGUtdmlkZW8tcGxheWJhY2stZGlzcGxheVwiPjxhIGhyZWY9XCIjY29udGVudC1jb25maWd1cmUtdGhlLXZpZGVvLXBsYXliYWNrLWRpc3BsYXlcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkNvbmZpZ3VyZSB0aGUgdmlkZW8gcGxheWJhY2sgZGlzcGxheTxcL2gyPlxuPHA+WW91IHNldCB0aGUgZGlzcGxheSBwYXJhbWV0ZXJzIG9mIGEgdmlkZW8gZmlsZSB3aXRoIHRoZSA8Y29kZT5EaXNwbGF5U2V0dGluZ3M8XC9jb2RlPiBwcm9wZXJ0eSBvZiB0aGUgPGEgaHJlZj1cIlwvYXBwbGljYXRpb25cL2RvdG5ldFwvYXBpXC9UaXplbkZYXC9sYXRlc3RcL2FwaVwvVGl6ZW4uTXVsdGltZWRpYS5QbGF5ZXIubWRcIj5UaXplbi5NdWx0aW1lZGlhLlBsYXllcjxcL2E+IGNsYXNzLCB3aGljaCB0YWtlcyBhbiBpbnN0YW5jZSBvZiB0aGUgPGEgaHJlZj1cIlwvYXBwbGljYXRpb25cL2RvdG5ldFwvYXBpXC9UaXplbkZYXC9sYXRlc3RcL2FwaVwvVGl6ZW4uTXVsdGltZWRpYS5QbGF5ZXJEaXNwbGF5U2V0dGluZ3MubWRcIj5UaXplbi5NdWx0aW1lZGlhLlBsYXllckRpc3BsYXlTZXR0aW5nczxcL2E+IGNsYXNzIGFzIGl0cyB2YWx1ZTo8XC9wPlxuPG9sPlxuPGxpPlxuPHA+TWFrZSBzdXJlIHRoYXQgdGhlIDxhIGhyZWY9XCIjcGxheV92aWRlb1wiPmRpc3BsYXkgaXMgc2V0LCBhbmQgdGhlIHBsYXllciBwcmVwYXJlZCBhbmQgc3RhcnRlZDxcL2E+LjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPlRvIG1ha2UgdGhlIGRpc3BsYXkgdmlzaWJsZTo8XC9wPlxuPHVsPlxuPGxpPlxuPHA+Q2hlY2sgd2hldGhlciB0aGUgZGlzcGxheSBpcyBhbHJlYWR5IHZpc2libGUgdXNpbmcgdGhlIDxjb2RlPklzVmlzaWJsZTxcL2NvZGU+IHByb3BlcnR5IG9mIHRoZSA8Y29kZT5UaXplbi5NdWx0aW1lZGlhLlBsYXllckRpc3BsYXlTZXR0aW5nczxcL2NvZGU+IGNsYXNzOjxcL3A+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+VGl6ZW4uTG9nLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+SW5mbzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KExvZ1RhZywgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4kJnF1b3Q7RGlzcGxheSB2aXNpYmxlID0gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj57PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5wbGF5ZXI8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPi48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPkRpc3BsYXlTZXR0aW5nczxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+LjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+SXNWaXNpYmxlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj59PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPik7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj48XC9jb2RlPjxcL3ByZT5cbjxcL2xpPlxuPGxpPlxuPHA+SWYgdGhlIGRpc3BsYXkgaXMgbm90IHZpc2libGUsIG1ha2UgaXQgdmlzaWJsZSBieSBzZXR0aW5nIHRoZSA8Y29kZT5Jc1Zpc2libGU8XC9jb2RlPiBwcm9wZXJ0eSB0byA8Y29kZT50cnVlPFwvY29kZT46PFwvcD5cbjxwcmUgY2xhc3M9XCJzaGlraSBzaGlraS10aGVtZXMgZ2l0aHViLWxpZ2h0IGdpdGh1Yi1kYXJrXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LS1zaGlraS1kYXJrLWJnOiMyNDI5MmU7Y29sb3I6IzI0MjkyZTstLXNoaWtpLWRhcms6I2UxZTRlODtcIj48Y29kZT48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5pZjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IChwbGF5ZXIuRGlzcGxheVNldHRpbmdzLklzVmlzaWJsZSA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPj09PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5mYWxzZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KTxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPns8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgcGxheWVyLkRpc3BsYXlTZXR0aW5ncy5Jc1Zpc2libGUgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj50cnVlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj47PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+fTxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+PFwvY29kZT48XC9wcmU+XG48XC9saT5cbjxcL3VsPlxuPFwvbGk+XG48bGk+XG48cD5TZXQgdGhlIGRpc3BsYXkgbW9kZSB1c2luZyB0aGUgPGNvZGU+TW9kZTxcL2NvZGU+IHByb3BlcnR5LCB3aGljaCB0YWtlcyB0aGUgZGlzcGxheSBtb2RlIGFzIGEgdmFsdWUgb2YgdGhlIDxhIGhyZWY9XCJcL2FwcGxpY2F0aW9uXC9kb3RuZXRcL2FwaVwvVGl6ZW5GWFwvbGF0ZXN0XC9hcGlcL1RpemVuLk11bHRpbWVkaWEuUGxheWVyRGlzcGxheU1vZGUubWRcIj5UaXplbi5NdWx0aW1lZGlhLlBsYXllckRpc3BsYXlNb2RlPFwvYT4gZW51bWVyYXRpb246PFwvcD5cbjxwcmUgY2xhc3M9XCJzaGlraSBzaGlraS10aGVtZXMgZ2l0aHViLWxpZ2h0IGdpdGh1Yi1kYXJrXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LS1zaGlraS1kYXJrLWJnOiMyNDI5MmU7Y29sb3I6IzI0MjkyZTstLXNoaWtpLWRhcms6I2UxZTRlODtcIj48Y29kZT48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5wbGF5ZXIuRGlzcGxheVNldHRpbmdzLk1vZGUgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gUGxheWVyRGlzcGxheU1vZGUuRnVsbFNjcmVlbjs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPFwvbGk+XG48bGk+XG48cD5TZXQgdGhlIGRpc3BsYXkgcm90YXRpb24gdXNpbmcgdGhlIDxjb2RlPlJvdGF0aW9uPFwvY29kZT4gcHJvcGVydHksIHdoaWNoIHRha2VzIHRoZSBkaXNwbGF5IHJvdGF0aW9uIGFzIGEgdmFsdWUgb2YgdGhlIDxhIGhyZWY9XCJcL2FwcGxpY2F0aW9uXC9kb3RuZXRcL2FwaVwvVGl6ZW5GWFwvbGF0ZXN0XC9hcGlcL1RpemVuLk11bHRpbWVkaWEuUm90YXRpb24ubWRcIj5UaXplbi5NdWx0aW1lZGlhLlJvdGF0aW9uPFwvYT4gZW51bWVyYXRpb246PFwvcD5cbjxwcmUgY2xhc3M9XCJzaGlraSBzaGlraS10aGVtZXMgZ2l0aHViLWxpZ2h0IGdpdGh1Yi1kYXJrXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LS1zaGlraS1kYXJrLWJnOiMyNDI5MmU7Y29sb3I6IzI0MjkyZTstLXNoaWtpLWRhcms6I2UxZTRlODtcIj48Y29kZT48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5wbGF5ZXIuRGlzcGxheVNldHRpbmdzLlJvdGF0aW9uIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IFJvdGF0aW9uLlJvdGF0ZTkwOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+PFwvY29kZT48XC9wcmU+XG48XC9saT5cbjxcL29sPlxuPHA+PGEgbmFtZT1cImdldF9zdHJlYW1cIj48XC9hPjxcL3A+XG48aDIgaWQ9XCJjb250ZW50LXJldHJpZXZlLXN0cmVhbS1pbmZvcm1hdGlvblwiPjxhIGhyZWY9XCIjY29udGVudC1yZXRyaWV2ZS1zdHJlYW0taW5mb3JtYXRpb25cIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlJldHJpZXZlIHN0cmVhbSBpbmZvcm1hdGlvbjxcL2gyPlxuPHA+VG8gcmV0cmlldmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGF1ZGlvIGFuZCB2aWRlbyBzdHJlYW1zLCBwcm9jZWVkIGFzIGZvbGxvd3M6PFwvcD5cbjxvbD5cbjxsaT5cbjxwPjxhIGhyZWY9XCIjcGxheV92aWRlb1wiPlByZXBhcmUgYW5kIHN0YXJ0IHRoZSBwbGF5ZXI8XC9hPiwgYW5kIDxhIGhyZWY9XCIjc2V0X3BhcmFtZXRlcnNcIj5zZXQgdGhlIGRpc3BsYXkgcGFyYW1ldGVyczxcL2E+LjxcL3A+XG48ZGl2IGNsYXNzPVwibWQtYWxlcnQgbWQtYWxlcnQtbm90ZVwiPlxuPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6XC9cL3d3dy53My5vcmdcLzIwMDBcL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIj48cGF0aCBkPVwiTTAgOGE4IDggMCAxIDEgMTYgMEE4IDggMCAwIDEgMCA4Wm04LTYuNWE2LjUgNi41IDAgMSAwIDAgMTMgNi41IDYuNSAwIDAgMCAwLTEzWk02LjUgNy43NUEuNzUuNzUgMCAwIDEgNy4yNSA3aDFhLjc1Ljc1IDAgMCAxIC43NS43NXYyLjc1aC4yNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTJhLjc1Ljc1IDAgMCAxIDAtMS41aC4yNXYtMmgtLjI1YS43NS43NSAwIDAgMS0uNzUtLjc1Wk04IDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXC8+PFwvc3ZnPk5vdGU8XC9zcGFuPlxuPHA+VG8gcmV0cmlldmUgdGhlIHN0cmVhbSBpbmZvcm1hdGlvbiwgdGhlIHBsYXllciBzdGF0ZSBtdXN0IGJlIGVpdGhlciA8Y29kZT5QbGF5aW5nPFwvY29kZT4gb3IgPGNvZGU+UGF1c2VkPFwvY29kZT4uPFwvcD5cbjxcL2Rpdj5cbjxcL2xpPlxuPGxpPlxuPHA+UmV0cmlldmUgdGhlIGZvbGxvd2luZyBzdHJlYW0gaW5mb3JtYXRpb246PFwvcD5cbjx1bD5cbjxsaT5cbjxwPkR1cmF0aW9uPFwvcD5cbjxwPlJldHJpZXZlIHRoZSB0b3RhbCBtZWRpYSBydW5uaW5nIHRpbWUgKGluIG1pbGxpc2Vjb25kcykgdXNpbmcgdGhlIDxjb2RlPkdldER1cmF0aW9uKCk8XC9jb2RlPiBtZXRob2Qgb2YgdGhlIDxhIGhyZWY9XCJcL2FwcGxpY2F0aW9uXC9kb3RuZXRcL2FwaVwvVGl6ZW5GWFwvbGF0ZXN0XC9hcGlcL1RpemVuLk11bHRpbWVkaWEuU3RyZWFtSW5mby5tZFwiPlRpemVuLk11bHRpbWVkaWEuU3RyZWFtSW5mbzxcL2E+IGNsYXNzOjxcL3A+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+VGl6ZW4uTG9nLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+SW5mbzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KExvZ1RhZywgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4kJnF1b3Q7RHVyYXRpb24gPSA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPns8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPnBsYXllcjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+LjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+U3RyZWFtSW5mbzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+LjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+R2V0RHVyYXRpb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPigpfTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4pOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+PFwvY29kZT48XC9wcmU+XG48XC9saT5cbjxsaT5cbjxwPkF1ZGlvIHN0cmVhbSBkZXRhaWxzPFwvcD5cbjxwPlJldHJpZXZlIHRoZSBhdWRpbyBzdHJlYW0gZGV0YWlscyB1c2luZyB0aGUgPGNvZGU+R2V0QXVkaW9Qcm9wZXJ0aWVzKCk8XC9jb2RlPiBtZXRob2QuIFRoZSBtZXRob2QgcmV0dXJucyBhbiBpbnN0YW5jZSBvZiB0aGUgPGEgaHJlZj1cIlwvYXBwbGljYXRpb25cL2RvdG5ldFwvYXBpXC9UaXplbkZYXC9sYXRlc3RcL2FwaVwvVGl6ZW4uTXVsdGltZWRpYS5BdWRpb1N0cmVhbVByb3BlcnRpZXMubWRcIj5UaXplbi5NdWx0aW1lZGlhLkF1ZGlvU3RyZWFtUHJvcGVydGllczxcL2E+IHN0cnVjdCBjb250YWluaW5nIHRoZSBhdWRpbyBzYW1wbGUgcmF0ZSAoaW4gSHopLCBudW1iZXIgb2YgYXVkaW8gY2hhbm5lbHMgKDEgZm9yIG1vbm8gb3IgMiBmb3Igc3RlcmVvKSwgYW5kIGF1ZGlvIGJpdCByYXRlIChpbiBIeik6PFwvcD5cbjxwcmUgY2xhc3M9XCJzaGlraSBzaGlraS10aGVtZXMgZ2l0aHViLWxpZ2h0IGdpdGh1Yi1kYXJrXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LS1zaGlraS1kYXJrLWJnOiMyNDI5MmU7Y29sb3I6IzI0MjkyZTstLXNoaWtpLWRhcms6I2UxZTRlODtcIj48Y29kZT48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj52YXI8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPmF1ZGlvUHJvcGVydGllczxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IHBsYXllci5TdHJlYW1JbmZvLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+R2V0QXVkaW9Qcm9wZXJ0aWVzPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oKTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+VGl6ZW4uTG9nLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+SW5mbzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KExvZ1RhZywgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4kJnF1b3Q7U2FtcGxlIHJhdGUgPSA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPns8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPmF1ZGlvUHJvcGVydGllczxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+LjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+U2FtcGxlUmF0ZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+fTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+LCBDaGFubmVscyA9IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+ezxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+YXVkaW9Qcm9wZXJ0aWVzPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5DaGFubmVsczxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+fTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+LCBCaXQgcmF0ZSA9IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+ezxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+YXVkaW9Qcm9wZXJ0aWVzPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5CaXRSYXRlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj59PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPik7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj48XC9jb2RlPjxcL3ByZT5cbjxcL2xpPlxuPGxpPlxuPHA+VmlkZW8gc3RyZWFtIGRldGFpbHM8XC9wPlxuPHA+UmV0cmlldmUgdGhlIHZpZGVvIHN0cmVhbSBkZXRhaWxzIHVzaW5nIHRoZSA8Y29kZT5HZXRWaWRlb1Byb3BlcnRpZXMoKTxcL2NvZGU+IG1ldGhvZC4gVGhlIG1ldGhvZCByZXR1cm5zIGFuIGluc3RhbmNlIG9mIHRoZSA8YSBocmVmPVwiXC9hcHBsaWNhdGlvblwvZG90bmV0XC9hcGlcL1RpemVuRlhcL2xhdGVzdFwvYXBpXC9UaXplbi5NdWx0aW1lZGlhLlZpZGVvU3RyZWFtUHJvcGVydGllcy5tZFwiPlRpemVuLk11bHRpbWVkaWEuVmlkZW9TdHJlYW1Qcm9wZXJ0aWVzPFwvYT4gc3RydWN0IGNvbnRhaW5pbmcgdGhlIHZpZGVvIHNpemUsIG51bWJlciBvZiBmcmFtZXMgcGVyIHNlY29uZCwgYW5kIHZpZGVvIGJpdCByYXRlIChpbiBIeik6PFwvcD5cbjxwcmUgY2xhc3M9XCJzaGlraSBzaGlraS10aGVtZXMgZ2l0aHViLWxpZ2h0IGdpdGh1Yi1kYXJrXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LS1zaGlraS1kYXJrLWJnOiMyNDI5MmU7Y29sb3I6IzI0MjkyZTstLXNoaWtpLWRhcms6I2UxZTRlODtcIj48Y29kZT48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj52YXI8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPnZpZGVvUHJvcGVydGllczxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IHBsYXllci5TdHJlYW1JbmZvLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+R2V0VmlkZW9Qcm9wZXJ0aWVzPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oKTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+VGl6ZW4uTG9nLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+SW5mbzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KExvZ1RhZywgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4kJnF1b3Q7VmlkZW8gc2l6ZSA9IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+ezxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+dmlkZW9Qcm9wZXJ0aWVzPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5TaXplPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj59PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4sIEZwcyA9IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+ezxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+dmlkZW9Qcm9wZXJ0aWVzPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5GcHM8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPn08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiwgQml0IHJhdGUgPSA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPns8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPnZpZGVvUHJvcGVydGllczxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+LjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Qml0UmF0ZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+fTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4pOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+PFwvY29kZT48XC9wcmU+XG48XC9saT5cbjxsaT5cbjxwPkF1ZGlvIGFuZCB2aWRlbyBjb2RlYyBuYW1lczxcL3A+XG48cD5SZXRyaWV2ZSB0aGUgYXVkaW8gYW5kIHZpZGVvIGNvZGVjIG5hbWVzIHVzaW5nIHRoZSA8Y29kZT5HZXRBdWRpb0NvZGVjKCk8XC9jb2RlPiBhbmQgdGhlIDxjb2RlPkdldFZpZGVvQ29kZWMoKTxcL2NvZGU+IG1ldGhvZHM6PFwvcD5cbjxwcmUgY2xhc3M9XCJzaGlraSBzaGlraS10aGVtZXMgZ2l0aHViLWxpZ2h0IGdpdGh1Yi1kYXJrXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LS1zaGlraS1kYXJrLWJnOiMyNDI5MmU7Y29sb3I6IzI0MjkyZTstLXNoaWtpLWRhcms6I2UxZTRlODtcIj48Y29kZT48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5UaXplbi5Mb2cuPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5JbmZvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oTG9nVGFnLCA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiQmcXVvdDtBdWRpbyBjb2RlYyA9IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+ezxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+cGxheWVyPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5TdHJlYW1JbmZvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5HZXRBdWRpb0NvZGVjPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4oKX08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5UaXplbi5Mb2cuPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5JbmZvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oTG9nVGFnLCA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiQmcXVvdDtWaWRlbyBjb2RlYyA9IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+ezxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+cGxheWVyPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5TdHJlYW1JbmZvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5HZXRWaWRlb0NvZGVjPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4oKX08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPFwvbGk+XG48bGk+XG48cD5Db250ZW50IG1ldGFkYXRhPFwvcD5cbjxwPlJldHJpZXZlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBhbGJ1bSwgYXJ0aXN0LCBhdXRob3IsIGdlbnJlLCB0aXRsZSwgYW5kIHllYXIgdXNpbmcgdGhlIDxjb2RlPkdldE1ldGFkYXRhKCk8XC9jb2RlPiBtZXRob2QuIFRoZSBhdmFpbGFibGUgbWV0YWRhdGEgYXR0cmlidXRlcyBhcmUgZGVmaW5lZCBpbiB0aGUgPGEgaHJlZj1cIlwvYXBwbGljYXRpb25cL2RvdG5ldFwvYXBpXC9UaXplbkZYXC9sYXRlc3RcL2FwaVwvVGl6ZW4uTXVsdGltZWRpYS5TdHJlYW1NZXRhZGF0YUtleS5tZFwiPlRpemVuLk11bHRpbWVkaWEuU3RyZWFtTWV0YWRhdGFLZXk8XC9hPiBlbnVtZXJhdGlvbjo8XC9wPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPlRpemVuLkxvZy48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPkluZm88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPihMb2dUYWcsIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JCZxdW90O0FsYnVtID0gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj57PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5wbGF5ZXI8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPi48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPlN0cmVhbUluZm88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPi48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPkdldE1ldGFkYXRhPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4oPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5TdHJlYW1NZXRhZGF0YUtleTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+LjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+QWxidW08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPil9PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPik7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+VGl6ZW4uTG9nLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+SW5mbzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KExvZ1RhZywgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4kJnF1b3Q7QXJ0aXN0ID0gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj57PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5wbGF5ZXI8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPi48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPlN0cmVhbUluZm88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPi48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPkdldE1ldGFkYXRhPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4oPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5TdHJlYW1NZXRhZGF0YUtleTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+LjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+QXJ0aXN0PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4pfTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4pOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPlRpemVuLkxvZy48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPkluZm88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPihMb2dUYWcsIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JCZxdW90O0F1dGhvciA9IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+ezxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+cGxheWVyPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5TdHJlYW1JbmZvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5HZXRNZXRhZGF0YTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+KDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+U3RyZWFtTWV0YWRhdGFLZXk8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPi48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPkF1dGhvcjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+KX08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5UaXplbi5Mb2cuPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5JbmZvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oTG9nVGFnLCA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiQmcXVvdDtHZW5yZSA9IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+ezxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+cGxheWVyPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5TdHJlYW1JbmZvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5HZXRNZXRhZGF0YTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+KDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+U3RyZWFtTWV0YWRhdGFLZXk8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPi48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPkdlbnJlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4pfTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4pOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPlRpemVuLkxvZy48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPkluZm88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPihMb2dUYWcsIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JCZxdW90O1RpdGxlID0gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj57PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5wbGF5ZXI8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPi48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPlN0cmVhbUluZm88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPi48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPkdldE1ldGFkYXRhPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4oPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5TdHJlYW1NZXRhZGF0YUtleTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+LjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+VGl0bGU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPil9PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPik7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+VGl6ZW4uTG9nLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+SW5mbzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KExvZ1RhZywgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4kJnF1b3Q7WWVhciA9IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+ezxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+cGxheWVyPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5TdHJlYW1JbmZvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5HZXRNZXRhZGF0YTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+KDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+U3RyZWFtTWV0YWRhdGFLZXk8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPi48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPlllYXI8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPil9PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPik7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj48XC9jb2RlPjxcL3ByZT5cbjxcL2xpPlxuPGxpPlxuPHA+QWxidW0gYXJ0d29yazxcL3A+XG48cD5SZXRyaWV2ZSB0aGUgYWxidW0gYXJ0d29yayB1c2luZyB0aGUgPGNvZGU+R2V0QWxidW1BcnQoKTxcL2NvZGU+IG1ldGhvZC4gVGhlIG1ldGhvZCByZXR1cm5zIHRoZSBlbmNvZGVkIGFydHdvcmsgaW1hZ2U6PFwvcD5cbjxwcmUgY2xhc3M9XCJzaGlraSBzaGlraS10aGVtZXMgZ2l0aHViLWxpZ2h0IGdpdGh1Yi1kYXJrXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LS1zaGlraS1kYXJrLWJnOiMyNDI5MmU7Y29sb3I6IzI0MjkyZTstLXNoaWtpLWRhcms6I2UxZTRlODtcIj48Y29kZT48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5ieXRlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5bXSA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPmltYWdlRGF0YTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IHBsYXllci5TdHJlYW1JbmZvLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+R2V0QWxidW1BcnQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPigpOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+PFwvY29kZT48XC9wcmU+XG48XC9saT5cbjxcL3VsPlxuPFwvbGk+XG48XC9vbD5cbjxwPjxhIG5hbWU9XCJpbnNlcnRcIj48XC9hPjxcL3A+XG48aDIgaWQ9XCJjb250ZW50LWluc2VydC1zdWJ0aXRsZXNcIj48YSBocmVmPVwiI2NvbnRlbnQtaW5zZXJ0LXN1YnRpdGxlc1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+SW5zZXJ0IHN1YnRpdGxlczxcL2gyPlxuPHA+VG8gaW5zZXJ0IHN1YnRpdGxlcyB0byBhIHZpZGVvIGZpbGUsIHNldCB0aGUgc3VidGl0bGUgcGF0aCB1c2luZyB0aGUgPGNvZGU+U2V0U3VidGl0bGUoKTxcL2NvZGU+IG1ldGhvZCBvZiB0aGUgPGEgaHJlZj1cIlwvYXBwbGljYXRpb25cL2RvdG5ldFwvYXBpXC9UaXplbkZYXC9sYXRlc3RcL2FwaVwvVGl6ZW4uTXVsdGltZWRpYS5QbGF5ZXIubWRcIj5UaXplbi5NdWx0aW1lZGlhLlBsYXllcjxcL2E+IGNsYXNzOjxcL3A+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+cGxheWVyLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+U2V0U3VidGl0bGU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPihzdWJ0aXRsZVBhdGgpOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+PFwvY29kZT48XC9wcmU+XG48aDIgaWQ9XCJjb250ZW50LXJlbGF0ZWQtaW5mb3JtYXRpb25cIj48YSBocmVmPVwiI2NvbnRlbnQtcmVsYXRlZC1pbmZvcm1hdGlvblwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+UmVsYXRlZCBpbmZvcm1hdGlvbjxcL2gyPlxuPHVsPlxuPGxpPkRlcGVuZGVuY2llc1xuPHVsPlxuPGxpPlRpemVuIDQuMCBhbmQgSGlnaGVyPFwvbGk+XG48XC91bD5cbjxcL2xpPlxuPFwvdWw+XG4iLCJ0YWJsZV9vZl9jb250ZW50IjoiPHVsIGNsYXNzPVwidGFibGUtb2YtY29udGVudHNcIj5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtYXVkaW8tcGxheWVyXCI+QXVkaW8gUGxheWVyPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtdmlkZW8tcGxheWVyXCI+VmlkZW8gUGxheWVyPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtcGxheWVyLWZlYXR1cmVzXCI+UGxheWVyIEZlYXR1cmVzPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtcGxheWJhY2stc3RyZWFtc1wiPlBsYXliYWNrIHN0cmVhbXM8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1wcmVyZXF1aXNpdGVzXCI+UHJlcmVxdWlzaXRlczxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXByZXBhcmUtdGhlLXBsYXllclwiPlByZXBhcmUgdGhlIHBsYXllcjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXBsYXktYW4tYXVkaW8tZmlsZVwiPlBsYXkgYW4gYXVkaW8gZmlsZTxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXBsYXktYS12aWRlby1maWxlXCI+UGxheSBhIHZpZGVvIGZpbGU8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1zdG9wLXRoZS1wbGF5ZXJcIj5TdG9wIHRoZSBwbGF5ZXI8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1jb25maWd1cmUtdGhlLXZpZGVvLXBsYXliYWNrLWRpc3BsYXlcIj5Db25maWd1cmUgdGhlIHZpZGVvIHBsYXliYWNrIGRpc3BsYXk8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1yZXRyaWV2ZS1zdHJlYW0taW5mb3JtYXRpb25cIj5SZXRyaWV2ZSBzdHJlYW0gaW5mb3JtYXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1pbnNlcnQtc3VidGl0bGVzXCI+SW5zZXJ0IHN1YnRpdGxlczxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXJlbGF0ZWQtaW5mb3JtYXRpb25cIj5SZWxhdGVkIGluZm9ybWF0aW9uPFwvYT48XC9saT5cbjxcL3VsPlxuIiwidGl0bGUiOiJNZWRpYSBQbGF5YmFjayIsInJhdyI6bnVsbH0seyJjbGFzcyI6IkFwcFxcU2VydmljZXNcXERvY3VtZW50YXRpb25cXERhdGFcXFJlbmRlcmVkTWFya2Rvd24iLCJzIjoid3JibCJ9XX0seyJzIjoiYXJyIn1dfSwibWVtbyI6eyJpZCI6Imh1QmhxUGd4NTl6Wk9YMEdmZzZLIiwibmFtZSI6Il9fbW91bnRQYXJhbXNDb250YWluZXIiLCJwYXRoIjoiZG9jc1wvYXBwbGljYXRpb25cL2RvdG5ldFwvZ3VpZGVzXC9tdWx0aW1lZGlhXC9tZWRpYS1wbGF5YmFjayIsIm1ldGhvZCI6IkdFVCIsInJlbGVhc2UiOiJhLWEtYSJ9LCJjaGVja3N1bSI6ImYxNzNiZGVmOWI5NGE0Mjc2YWMzODcyNmNhZDgyODZmZDQ1ZjI3MTEzZjgyNzk5MjZiYWQwZDIyNjk4Y2RmOGEifQ==')" >