SDK/Tools

Choose application
.NET Native Web
Choose application
VS Code Visual Studio
Emulator Manager<\/a> to create and launch a Virtual Machine (emulator) instance. You can communicate with the emulator instance using the <a href=https://samsungtizenos.com/"smart-development-bridge.md/">Smart Development Bridge (SDB)<\/a>.<\/p>\n<p>The emulator provides the following main features:<\/p>\n<ul>\n<li>Full system emulation, including CPU, memory, and peripheral devices.<\/li>\n<li>Event simulation with the <a href=https://samsungtizenos.com/"emulator-control-panel.md/">Emulator Control Panel<\/a>.<\/li>\n<li>Guest operation acceleration using a host CPU or GPU.<\/li>\n<\/ul>\n<p>For more information, see <a href=https://samsungtizenos.com/"#supported\">Supported Features<\/a>.<\/p>\n<h2 id=\"content-running-an-application-in-the-emulator\"><a href=https://samsungtizenos.com/"#content-running-an-application-in-the-emulator\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Running an Application in the Emulator<\/h2>\n<p>To use the emulator, you need the Tizen Extension. If you do not have the Tizen Extension, install it from the Visual Studio Marketplace.<\/p>\n<p>To start the emulator and run an application:<\/p>\n<ol>\n<li>\n<p>Access the <a href=https://samsungtizenos.com/"emulator-manager.md#access\">Emulator Manager<\/a> panel.<\/p>\n<p>If you do not have an applicable emulator instance, <a href=https://samsungtizenos.com/"emulator-manager.md#download_platform\">download a platform<\/a> and <a href=https://samsungtizenos.com/"emulator-manager.md#create\">create one<\/a>.<\/p>\n<\/li>\n<li>\n<p>Click <strong>Start<\/strong> (<img src=https://samsungtizenos.com/"media//em_start.png/" alt=\"Start\" \/>).<\/p>\n<\/li>\n<li>\n<p>Test your application in the emulator. You can launch your application in 2 ways:<\/p>\n<ul>\n<li>In VS Code, select the project and run it while the emulator is running.<\/li>\n<li>Drag an application package file (for example, the <code>.tpk<\/code> file) to the emulator to install and launch the application on the emulator.<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>To close the emulator, right-click the emulator and select <strong>Close<\/strong>, or click and hold the <strong>Power<\/strong> key.<\/p>\n<\/li>\n<\/ol>\n<p>The emulator device stores the installed application so you can run it again if needed. To remove the application, you must uninstall it. If you run the project again on the same emulator, the emulator replaces the application with the new version.<\/p>\n<p>In the Emulator Manager, in addition to creating new emulator instances according to the environments you need, you can also <a href=https://samsungtizenos.com/"emulator-manager.md#manage\">modify and delete emulator instances<\/a>.<\/p>\n<p><a name=\"speed\"><\/a><\/p>\n<h2 id=\"content-increasing-the-application-execution-speed\"><a href=https://samsungtizenos.com/"#content-increasing-the-application-execution-speed\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Increasing the Application Execution Speed<\/h2>\n<p>The Tizen x86 Emulator exploits <a href=https://samsungtizenos.com/"http:////www.linux-kvm.org//page//Main_Page/">KVM (Kernel-based Virtual Machine in Linux) or <a href=https://samsungtizenos.com/"..//setup//hardware-accelerated-execution-manager.md/">HAX (Hardware Accelerated eXecution in Windows\u00ae and macOS) with HW virtualization support.<\/p>\n<p>If the CPU VT is disabled in the <strong>Emulator Configuration<\/strong> view on the Emulator Manager, check the following prerequisites and install KVM or HAX:<\/p>\n<ol>\n<li>\n<p><strong>Prerequisites for using HW virtualization:<\/strong><\/p>\n<ul>\n<li>\n<p><strong>In Ubuntu:<\/strong><\/p>\n<p>To use KVM, you need a processor that supports HW virtualization. Both Intel and AMD have developed those extensions for their processors (Intel VT-x\/AMD-V). Check whether the CPU supports HW virtualization with the following command:<\/p>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">egrep<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">-c<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">&#39;(vmx|svm)&#39;<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">\/proc\/cpuinfo<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<p>If the output of the command is 0, the CPU does not support HW virtualization. Otherwise, it does.<\/p>\n<p>The HW virtualization feature can also be disabled in the BIOS setting. Check the setting and enable it if you need the feature.<\/p>\n<\/li>\n<li>\n<p><strong>In Windows\u00ae:<\/strong><\/p>\n<p>To use HAX, you need an Intel VT-x-supported CPU, and you must enable the NX-related setting in the PC BIOS.<\/p>\n<\/li>\n<li>\n<p><strong>In macOS:<\/strong><\/p>\n<p>To use HAX, install EFI-related updates on your Intel-based Mac computer.<\/p>\n<p>For more information, see <a href=https://samsungtizenos.com/"http:////support.apple.com//kb//HT1237/">EFI and SMC firmware updates for Intel-based Mac computers<\/a>.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>Installing KVM or HAX:<\/strong><\/p>\n<ul>\n<li>\n<p><strong>In Ubuntu:<\/strong><\/p>\n<p>No installation is required for KVM.<\/p>\n<\/li>\n<li>\n<p><strong>In Windows\u00ae and macOS:<\/strong><\/p>\n<p>The HAXM driver is installed during the Tizen Studio installation. For more information on installing HAXM, see <a href=https://samsungtizenos.com/"..//setup//hardware-accelerated-execution-manager.md/">Hardware Accelerated Execution Manager<\/a>.<\/p>\n<\/li>\n<\/ul>\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>If the installation fails with a VT-related message, check the CPU feature and BIOS settings. If the installation fails with an NX-related message, enable the NX (or PAE and DEP) related item in the BIOS. In addition, make sure that the operating system supports the NX feature (for more information, see <a href=https://samsungtizenos.com/"http:////msdn.microsoft.com//en-us//library//windows//hardware//ff542275(v=vs.85).aspx/">MSDN)./n/n

No configuration is required for KVM or HAX.<\/p>\n<\/li>\n<\/ol>\n<h3 id=\"content-working-with-the-hw-virtualization-settings-and-help\"><a href=https://samsungtizenos.com/"#content-working-with-the-hw-virtualization-settings-and-help\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Working with the HW Virtualization, Settings, and Help<\/h3>\n<p>To run the emulator with HW virtualization support in the Emulator Manager, set the <strong>CPU VT<\/strong> field to <strong>ON<\/strong>. The field is disabled if your system cannot support HW virtualization.<\/p>\n<p>You can also run the emulator with HW virtualization support from the command line by including the <code>-enable-kvm<\/code> (in Ubuntu) or <code>-enable-hax<\/code> (in Windows\u00ae and macOS) option in the start-up command.<\/p>\n<p><a name=\"supported\"><\/a><\/p>\n<h2 id=\"content-supported-features\"><a href=https://samsungtizenos.com/"#content-supported-features\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Supported Features<\/h2>\n<p>The emulator provides various virtual HW, media formats, codecs, and <a href=https://samsungtizenos.com/"#opengl\">OpenGL\u00ae ES acceleration<\/a>. For better performance of the OpenGL\u00ae ES support, the Tizen Emulator exploits the latest feature of the graphic driver, so always <a href=https://samsungtizenos.com/"..//setup//prerequisites.md#emulator\">install the latest vendor-provided graphic driver<\/a>. The emulator, however, has some limitations and <a href=https://samsungtizenos.com/"#target\">differences compared to physical target devices<\/a>.<\/p>\n<p>The following table lists the basic features supported in the emulator.<\/p>\n<p><strong>Table: Supported emulator features<\/strong><\/p>\n<table>\n\t<thead>\n\t\t<tr>\n\t\t\t<th>Feature<\/th>\n\t\t\t<th>Detail<\/th>\n\t\t\t<th>Status<\/th>\n\t\t\t<th>Notes<\/th>\n\t\t<\/tr>\n\t<\/thead>\n\t<tbody>\n\t\t<tr>\n\t\t\t<td>Skin<\/td>\n\t\t\t<td>Skins are fitted to the screen resolution:\n\t\t\t<p>Mobile:<\/p>\n\t\t\t<ul>\n\t\t\t\t<li>WVGA (480 x 800, default)<\/li>\n\t\t\t\t<li>qHD (540 x 960)<\/li>\n\t\t\t\t<li>HD (720 x 1280)<\/li>\n\t\t\t<\/ul>\n\t\t\t<p>Wearable:<\/p>\n\t\t\t<ul>\n\t\t\t\t<li>320 x 320<\/li>\n\t\t\t\t<li>360 x 360 (default)<\/li>\n\t\t\t\t<li>360 x 480<\/li>\n\t\t\t<\/ul>\n\t\t\t<p>4 orientation modes are supported:<\/p>\n\t\t\t<p>Portrait (default), landscape, reverse portrait, and reverse landscape<\/p>\n\t\t\t<\/td>\n\t\t\t<td>Supported<\/td>\n\t\t\t<td>2 skin layout types are supported:\n\t\t\t<ul>\n\t\t\t\t<li>Profile-specific skin<\/li>\n\t\t\t\t<li>General-purpose skin<\/li>\n\t\t\t<\/ul>\n\t\t\t<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Touch<\/td>\n\t\t\t<td>Maru touchscreen device<\/td>\n\t\t\t<td>Supported<\/td>\n\t\t\t<td>Multi-touch is supported.<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Key<\/td>\n\t\t\t<td>HW keys, host keyboard, and SW keypad<\/td>\n\t\t\t<td>Supported<\/td>\n\t\t\t<td>The host keyboard is not supported for the wearable emulator.<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Rotary<\/td>\n\t\t\t<td>360 levels of clockwise or counter-clockwise rotation<\/td>\n\t\t\t<td>Supported<\/td>\n\t\t\t<td>-<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Display<\/td>\n\t\t\t<td>VGA card with 100 levels of brightness control<\/td>\n\t\t\t<td>Supported<\/td>\n\t\t\t<td>-<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>OpenGL&reg; ES<\/td>\n\t\t\t<td>Compatible with OpenGL&reg; ES 1.1 and 2.0\n\t\t\t<p>OpenGL&reg; ES API pass-through through PCI<\/p>\n\t\t\t<\/td>\n\t\t\t<td>Supported<\/td>\n\t\t\t<td>The OpenGL&reg; ES 1.1 functionality is not guaranteed on the emulator, unless the graphics hardware of your computer supports OpenGL&reg; 1.5.\n\t\t\t<p>The OpenGL&reg; ES 2.0 functionality is not guaranteed on the emulator, unless the graphics hardware of your computer supports OpenGL&reg; 2.1.<\/p>\n\t\t\t<p>The host machine must support OpenGL&reg; 1.4.<\/p>\n\t\t\t<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Sound<\/td>\n\t\t\t<td>AC97 device<\/td>\n\t\t\t<td>Supported<\/td>\n\t\t\t<td><strong>Audio in:<\/strong>\n\t\t\t<p>Make sure that the input volume of the microphone is enough to record your voice or songs on the host machine.<\/p>\n\t\t\t<p>On Windows&reg; 7, inject the microphone into the host machine before starting the emulator.<\/p>\n\t\t\t<p><strong>Audio out:<\/strong><\/p>\n\t\t\t<p>On Windows&reg; 7, enable at least 1 audio out device before starting the emulator. Make sure that the volume icon in the tray is not disabled.<\/p>\n\t\t\t<p>While the emulator is running, do not disable the audio out device, as it can lock the audio system of the guest platform.<\/p>\n\t\t\t<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Network connection<\/td>\n\t\t\t<td>Virtio<\/td>\n\t\t\t<td>Supported<\/td>\n\t\t\t<td>Raw socket protocol, such as ICMP, is not supported.<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Emulator Control Panel<\/td>\n\t\t\t<td>The Emulator Control Panel (ECP) supports different features depending on the device profile:\n\t\t\t<p>Mobile:<\/p>\n\t\t\t<ul>\n\t\t\t\t<li>Device Manager: Device Tree, Network, Host Directory Sharing<\/li>\n\t\t\t\t<li>Event Injector: Battery, RSSI, 3-Axis Sensor, Light, Proximity, Pressure, Ultraviolet, Heart Rate Monitor, Motion, Ear Jack, USB, SDCard, Location, Telephony<\/li>\n\t\t\t<\/ul>\n\t\t\t<p>Wearable:<\/p>\n\t\t\t<ul>\n\t\t\t\t<li>Device Manager: Network, Host Directory Sharing<\/li>\n\t\t\t\t<li>App Manager: Uninstaller<\/li>\n\t\t\t\t<li>Event Injector: Battery, 3-Axis Sensor, Light, Proximity, Pedometer, Pressure, Ultraviolet, Heart Rate Monitor, Gesture, USB<\/li>\n\t\t\t<\/ul>\n\t\t\t<\/td>\n\t\t\t<td>Supported<\/td>\n\t\t\t<td>The ECP is a standalone tool, which replaces the Event Injector. It helps to control and monitor the emulator features, and can be launched from the emulator context menu.<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Camera<\/td>\n\t\t\t<td>Virtual camera device connecting a host machine's Webcam:\n\t\t\t<ul>\n\t\t\t\t<li>Support: preview, capture, and record<\/li>\n\t\t\t\t<li>Image format: YUYV, I420, and YV12<\/li>\n\t\t\t\t<li>Attributes: brightness and contrast<\/li>\n\t\t\t\t<li>Resolution: 160 x 120, 176 x 144, 320 x 240, 352 x 288, and 640 x 480<\/li>\n\t\t\t\t<li>Video resolution: 1280 x 720 for the WVGA, 320 x 240 for the WQVGA, and 640 x 480 for the HVGA devices<\/li>\n\t\t\t\t<li>Supported video codecs: MPEG-4, H.263, H.264, and VC-1 for both encoding and decoding<\/li>\n\t\t\t<\/ul>\n\t\t\t<\/td>\n\t\t\t<td>Supported<\/td>\n\t\t\t<td>While recording a video using the emulator, an audio-video synchronization error can occur depending on your computer hardware and performance.<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Bluetooth<\/td>\n\t\t\t<td>-<\/td>\n\t\t\t<td>Not supported<\/td>\n\t\t\t<td>-<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Wi-Fi<\/td>\n\t\t\t<td>-<\/td>\n\t\t\t<td>Not supported<\/td>\n\t\t\t<td>-<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Wi-Fi Direct&reg;<\/td>\n\t\t\t<td>-<\/td>\n\t\t\t<td>Not supported<\/td>\n\t\t\t<td>-<\/td>\n\t\t<\/tr>\n\t<\/tbody>\n<\/table>\n<p><a name=\"opengl\"><\/a><\/p>\n<h3 id=\"content-opengl-es-acceleration-support\"><a href=https://samsungtizenos.com/"#content-opengl-es-acceleration-support\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>OpenGL\u00ae ES Acceleration Support<\/h3>\n<p>For the emulator to support OpenGL\u00ae ES acceleration, you need:<\/p>\n<ul>\n<li>Graphics chipset driver that supports OpenGL\u00ae 1.4 installed on the host machine.<\/li>\n<li>All chipset vendors and driver versions available to support the OpenGL\u00ae 1.4 standard.<\/li>\n<\/ul>\n<div class=\"md-alert md-alert-note\">\n<span><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><path d=\"M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z\"\/><\/svg>Note<\/span>\n<p>The emulator supports only ES 1.1, ES 2.0, and EGL\u2122 1.4 versions.<\/p>\n<\/div>\n<p><a name=\"target\"><\/a><\/p>\n<h3 id=\"content-differences-between-the-emulator-and-target\"><a href=https://samsungtizenos.com/"#content-differences-between-the-emulator-and-target\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Differences Between the Emulator and Target<\/h3>\n<p>The following tables describe the differences between a real target device and the emulator. For more information, see the detailed differences in:<\/p>\n<ul>\n<li><a href=https://samsungtizenos.com/"#input\">Input system<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#graphics\">Graphics and display<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#sensor\">Virtual sensor<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#telephony\">Telephony<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#power\">Power management<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#codec\">Supported media formats and codecs<\/a><\/li>\n<\/ul>\n<p><strong>Table: Comparison summary<\/strong><\/p>\n<table>\n\t<thead>\n\t\t<tr>\n\t\t\t<th>Category<\/th>\n\t\t\t<th>Subject<\/th>\n\t\t\t<th>Physical target<\/th>\n\t\t\t<th>Emulator<\/th>\n\t\t<\/tr>\n\t<\/thead>\n\t<tbody>\n\t\t<tr>\n\t\t\t<td rowspan=\"5\">Development environment<\/td>\n\t\t\t<td>Target<\/td>\n\t\t\t<td>Buy a target device or reference board (by model)<\/td>\n\t\t\t<td>Download Tizen Studio (multi-profile and multi-model support)<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Network<\/td>\n\t\t\t<td>Need Bluetooth<\/td>\n\t\t\t<td>Only the network environment<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Target connection<\/td>\n\t\t\t<td>USB<\/td>\n\t\t\t<td>IPC (TCP\/UDP)<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Source and package management<\/td>\n\t\t\t<td>Source and package for target<\/td>\n\t\t\t<td>Source and package for the emulator<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Host Directory Sharing<\/td>\n\t\t\t<td>Not supported<\/td>\n\t\t\t<td>Supported<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td rowspan=\"10\">Portability<\/td>\n\t\t\t<td>Screen resolution<\/td>\n\t\t\t<td>Fixed<\/td>\n\t\t\t<td>Configurable<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>RAM, storage size<\/td>\n\t\t\t<td>Fixed<\/td>\n\t\t\t<td>Configurable<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>2D and 3D acceleration API<\/td>\n\t\t\t<td>GPU-dependent<\/td>\n\t\t\t<td>GPU-independent (common set)<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>CP, telephony<\/td>\n\t\t\t<td>Fully supported<\/td>\n\t\t\t<td>Partially supported (only SMS and voice call)<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Wi-Fi<\/td>\n\t\t\t<td>Fully supported<\/td>\n\t\t\t<td>Partially supported (using Ethernet)<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Sensor<\/td>\n\t\t\t<td>Fully supported<\/td>\n\t\t\t<td>Partially supported (using the Emulator Control Panel)<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>PnP, external connection<\/td>\n\t\t\t<td>Fully supported<\/td>\n\t\t\t<td>Partially supported (using the Emulator Control Panel)<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Camera<\/td>\n\t\t\t<td>Fully supported<\/td>\n\t\t\t<td>Partially supported (preview, capture, recording, contrast, and brightness)<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Vibration, haptic<\/td>\n\t\t\t<td>Fully supported<\/td>\n\t\t\t<td>Not supported<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Bluetooth<\/td>\n\t\t\t<td>Fully supported<\/td>\n\t\t\t<td>Not supported<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td rowspan=\"3\">Performance<\/td>\n\t\t\t<td>CPU performance<\/td>\n\t\t\t<td>Mobile CPU<\/td>\n\t\t\t<td>Desktop CPU (with hardware virtualization)<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>GPU performance<\/td>\n\t\t\t<td>Real GPU<\/td>\n\t\t\t<td>Desktop GPU (relatively slow)<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>I\/O performance<\/td>\n\t\t\t<td>Real HW I\/O<\/td>\n\t\t\t<td>Emulated I\/O (relatively slow)<\/td>\n\t\t<\/tr>\n\t<\/tbody>\n<\/table>\n<p><a name=\"input\"><\/a><\/p>\n<h4 id=\"content-input-system\"><a href=https://samsungtizenos.com/"#content-input-system\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Input System<\/h4>\n<p><strong>Table: Input differences<\/strong><\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Category<\/th>\n<th>Physical target<\/th>\n<th>Emulator<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Touch screen panel<\/td>\n<td>Real device and driver<\/td>\n<td>Virtual (VirtIO) device and driver<\/td>\n<\/tr>\n<tr>\n<td>Host keyboard and hardware key<\/td>\n<td>Real device and driver<\/td>\n<td>Virtual (VirtIO) device and driver<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<p><a name=\"graphics\"><\/a><\/p>\n<h4 id=\"content-graphics-and-display\"><a href=https://samsungtizenos.com/"#content-graphics-and-display\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Graphics and Display<\/h4>\n<p><strong>Table: Graphics and display differences<\/strong><\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Category<\/th>\n<th>Physical target<\/th>\n<th>Emulator<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Framebuffer device<\/td>\n<td>Display controller in the processor<\/td>\n<td>Virtual VGA card<\/td>\n<\/tr>\n<tr>\n<td>Backlight control<\/td>\n<td>LDI (LCD Driver IC) command<\/td>\n<td>Additional virtual device and driver<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<p><a name=\"sensor\"><\/a><\/p>\n<h4 id=\"content-virtual-sensor-emulator-control-panel\"><a href=https://samsungtizenos.com/"#content-virtual-sensor-emulator-control-panel\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Virtual Sensor (Emulator Control Panel)<\/h4>\n<p><strong>Table: Virtual sensor differences<\/strong><\/p>\n<table>\n\t<thead>\n\t\t<tr>\n\t\t\t<th colspan=\"2\">Category<\/th>\n\t\t\t<th>Physical target<\/th>\n\t\t\t<th>Emulator<\/th>\n\t\t<\/tr>\n\t<\/thead>\n\t<tbody>\n\t\t<tr>\n\t\t\t<td rowspan=\"8\">Sensor<\/td>\n\t\t\t<td>Acceleration<\/td>\n\t\t\t<td>Receives the actual acceleration value of the device.<\/td>\n\t\t\t<td>Receives the virtual acceleration value through the Emulator Control Panel.\n\t\t\t<p>When the emulated device is stationary and vertical in portrait orientation, the acceleration values are 0, 1, and 0 g.<\/p>\n\t\t\t<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Gyro<\/td>\n\t\t\t<td>Receives the actual gyroscope value of the device.<\/td>\n\t\t\t<td>Receives the virtual gyroscope value through the Emulator Control Panel.<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Geomagnetic<\/td>\n\t\t\t<td>Receives the actual geomagnetic value of the device.<\/td>\n\t\t\t<td>Receives the virtual geomagnetic value through the Emulator Control Panel.\n\t\t\t<p>When the emulated device is stationary and vertical in portrait orientation, the Y axis is at true north and the magnetic field strength values are 1, 0, and -10 \u00b5T.<\/p>\n\t\t\t<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Proximity<\/td>\n\t\t\t<td>Receives the actual proximity value of the device.<\/td>\n\t\t\t<td>Receives the virtual proximity value through the Emulator Control Panel.\n\t\t\t<p>You can register an event handler for the proximity sensor and test it with the Emulator Control Panel. However, the screen does not power off during the event because the emulator does not connect to the power manager.<\/p>\n\t\t\t<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Light<\/td>\n\t\t\t<td>Receives the actual ambient light value of the device.<\/td>\n\t\t\t<td>Receives the virtual ambient light value through the Emulator Control Panel.\n\t\t\t<p>You can register an event handler for the light sensor and test it with the Emulator Control Panel. However, in order to test the screen brightness change, the brightness setting must be automatic in the setting application.<\/p>\n\t\t\t<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Pressure<\/td>\n\t\t\t<td>Receives the actual pressure value of the device.<\/td>\n\t\t\t<td>Receives the virtual actual pressure value through the Emulator Control Panel.<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Ultraviolet<\/td>\n\t\t\t<td>Receives the actual ultraviolet value of the device.<\/td>\n\t\t\t<td>Receives the virtual actual ultraviolet value through the Emulator Control Panel.<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Heart Rate Monitor<\/td>\n\t\t\t<td>Receives the actual heart rate and peak-to-peak values of the device.<\/td>\n\t\t\t<td>Receives the virtual actual heart rate and peak-to-peak values through the Emulator Control Panel.<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td rowspan=\"4\">Device<\/td>\n\t\t\t<td>Battery<\/td>\n\t\t\t<td>Receives the actual battery value of the device.<\/td>\n\t\t\t<td>Receives the virtual battery value through the Emulator Control Panel.\n\t\t\t<p>You can change the battery level and the charger connection status.<\/p>\n\t\t\t<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Earjack<\/td>\n\t\t\t<td>Receives the actual earjack connection event of the device.<\/td>\n\t\t\t<td>Receives the earjack connection event through the Emulator Control Panel.\n\t\t\t<p>You can select a 3-wire or 4-wire connection, or set the earjack as disconnected.<\/p>\n\t\t\t<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>USB<\/td>\n\t\t\t<td>Receives the actual USB connection event of the device.<\/td>\n\t\t\t<td>Receives the USB connection event through the Emulator Control Panel.<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>RSSI<\/td>\n\t\t\t<td>Receives the actual RSSI value of the device.<\/td>\n\t\t\t<td>Receives the virtual RSSI value through the Emulator Control Panel.<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td rowspan=\"4\">Location<\/td>\n\t\t\t<td>Log<\/td>\n\t\t\t<td>Supported by lbsFW.<\/td>\n\t\t\t<td>Receives the virtual GPS log file through the Emulator Control Panel.\n\t\t\t<p>You can use a log file of the NMEA format.<\/p>\n\t\t\t<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Manual<\/td>\n\t\t\t<td>Not supported.<\/td>\n\t\t\t<td>Receives the virtual longitude and latitude values through the Emulator Control Panel.<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Map<\/td>\n\t\t\t<td>Not supported.<\/td>\n\t\t\t<td>Receives the virtual longitude, latitude, altitude, and horizontal accuracy values through the Emulator Control Panel map.<\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td>Auto<\/td>\n\t\t\t<td>Receives the actual GPS coordinates of the device.<\/td>\n\t\t\t<td>Not supported.<\/td>\n\t\t<\/tr>\n\t<\/tbody>\n<\/table>\n<p><a name=\"telephony\"><\/a><\/p>\n<h4 id=\"content-telephony\"><a href=https://samsungtizenos.com/"#content-telephony\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Telephony<\/h4>\n<p><strong>Table: Telephony differences<\/strong><\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Category<\/th>\n<th>Physical target<\/th>\n<th>Emulator<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Call<\/td>\n<td>Calls and video calls are supported.<\/td>\n<td>Call waiting, outgoing call barring, and voice calls with the Emulator Control Panel are supported. <br>Video calls, call forwarding, incoming call barring, and emulator-to-emulator calls are not supported.<\/td>\n<\/tr>\n<tr>\n<td>SMS<\/td>\n<td>SMS messaging is supported.<\/td>\n<td>SMS messaging with the Emulator Control Panel is supported. <br>Sending emulator-to-emulator SMS messages is not supported.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<p><a name=\"power\"><\/a><\/p>\n<h4 id=\"content-power-management\"><a href=https://samsungtizenos.com/"#content-power-management\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Power Management<\/h4>\n<p><strong>Table: Power management differences<\/strong><\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Mode<\/th>\n<th>Physical target<\/th>\n<th>Emulator<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Display on\/off<\/td>\n<td>Display controller in the processor<\/td>\n<td>Internal emulation<\/td>\n<\/tr>\n<tr>\n<td>Power off<\/td>\n<td>Power management in the processor<\/td>\n<td>ACPI (Advanced Configuration and Power Interface)<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<p><a name=\"codec\"><\/a><\/p>\n<h4 id=\"content-supported-media-formats-and-codecs\"><a href=https://samsungtizenos.com/"#content-supported-media-formats-and-codecs\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Supported Media Formats and Codecs<\/h4>\n<p><strong>Table: Media format and codec differences<\/strong><\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Category<\/th>\n<th><\/th>\n<th>Physical target<\/th>\n<th>Emulator<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Decoder<\/td>\n<td>FLAC<\/td>\n<td>Supported<\/td>\n<td>Not supported<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n","table_of_content":"<ul class=\"table-of-contents\">\n<li><a href=https://samsungtizenos.com/"#content-running-an-application-in-the-emulator\">Running an Application in the Emulator<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-increasing-the-application-execution-speed\">Increasing the Application Execution Speed<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-working-with-the-hw-virtualization-settings-and-help\">Working with the HW Virtualization, Settings, and Help<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-supported-features\">Supported Features<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-opengl-es-acceleration-support\">OpenGL\u00ae ES Acceleration Support<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-differences-between-the-emulator-and-target\">Differences Between the Emulator and Target<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-input-system\">Input System<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-graphics-and-display\">Graphics and Display<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-virtual-sensor-emulator-control-panel\">Virtual Sensor (Emulator Control Panel)<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-telephony\">Telephony<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-power-management\">Power Management<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-supported-media-formats-and-codecs\">Supported Media Formats and Codecs<\/a><\/li>\n<\/ul>\n","title":"Running Applications on the Emulator","raw":null},{"class":"App\\Services\\Documentation\\Data\\RenderedMarkdown","s":"wrbl"}]},"memo":{"id":"sW88NdBsf6seYgeXZFp0","name":"documentation::article","path":"docs\/sdk-tools\/dotnet\/vscode\/vscode-ext\/tools\/emulator","method":"GET","release":"a-a-a","children":[],"scripts":[],"assets":[],"lazyLoaded":false,"lazyIsolated":true,"errors":[],"locale":"en","islands":[]},"checksum":"cbe4a2e076db1f9754b0bb26dc743c51d63c0fd2419b66578e2ac2cf703ad6e7"}" wire:effects="[]" wire:id="sW88NdBsf6seYgeXZFp0" wire:name="documentation::article" x-init="$wire.__lazyLoad('eyJkYXRhIjp7ImZvck1vdW50IjpbeyJtYXJrZG93biI6W3siYm9keSI6IjxoMSBpZD1cImNvbnRlbnQtcnVubmluZy1hcHBsaWNhdGlvbnMtb24tdGhlLWVtdWxhdG9yXCI+PGEgaHJlZj1cIiNjb250ZW50LXJ1bm5pbmctYXBwbGljYXRpb25zLW9uLXRoZS1lbXVsYXRvclwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+UnVubmluZyBBcHBsaWNhdGlvbnMgb24gdGhlIEVtdWxhdG9yPFwvaDE+PGRpdiBkYXRhLWtub3dsZWRnZS1iYXNlLW1ldGFkYXRhPjxcL2Rpdj5cbjxwPlRoZSBUaXplbiBFbXVsYXRvciBpcyBhIHRvb2wgdGhhdCByZWR1Y2VzIHRoZSBpbmNvbnZlbmllbmNlIG9mIHRlc3RpbmcgdGhlIGFwcGxpY2F0aW9uIG9uIGEgcmVhbCBkZXZpY2UgYnkgcHJvdmlkaW5nIGFuIGVudmlyb25tZW50IHNpbWlsYXIgdG8gYSByZWFsIGRldmljZS4gSW4gb3RoZXIgd29yZHMsIGlmIHlvdSBkbyBub3QgaGF2ZSB0aGUgcmVhbCBkZXZpY2UsIHlvdSBjYW4gdGVzdCBvbiBhIHZpcnR1YWwgZGV2aWNlIHdpdGggc2ltaWxhciBmZWF0dXJlcy48XC9wPlxuPHA+VXNpbmcgdGhlIEVtdWxhdG9yIE1hbmFnZXIsIHlvdSBjYW4gY3JlYXRlIGEgdmFyaWV0eSBvZiBlbnZpcm9ubWVudHMgKGRpZmZlcmVudCBkZXZpY2UgdHlwZXMpIGFuZCB5b3UgY2FuIHByZXZpZXcgdGhlIHByb2JsZW1zIGR1cmluZyB0aGUgZGV2ZWxvcG1lbnQgcHJvY2Vzcy4gVGhlIGVtdWxhdG9yIHByb3ZpZGVzIHRoZSBhY3R1YWwgaGFyZHdhcmUgc2ltaWxhciB0byByZWFsIGRldmljZSBjb250cm9scywgYW5kIHlvdSBjYW4gY2hlY2sgdGhlIGFwcGxpY2F0aW9uIGZlYXR1cmVzLCBzdWNoIGFzIGRhdGEgcHJvY2Vzc2luZyBhbmQgdXNlciBzY2VuYXJpb3MuPFwvcD5cbjxwPlRoZSBlbXVsYXRvciBpcyBiYXNlZCBvbiB0aGUgb3Blbi1zb3VyY2UgUUVNVSBwcm9qZWN0IGFuZCBjb25zaXN0cyBvZiBhIHZpcnR1YWwgQ1BVLCBtZW1vcnksIGFuZCB2YXJpb3VzIHBlcmlwaGVyYWxzLiBDdXJyZW50bHksIFRpemVuIGVtdWxhdG9ycyBvbmx5IHN1cHBvcnQgeDg2IGFuZCB4NjQgYXJjaGl0ZWN0dXJlIGhvc3RzLjxcL3A+XG48cD5Zb3UgY2FuIHVzZSB0aGUgPGEgaHJlZj1cImVtdWxhdG9yLW1hbmFnZXIubWRcIj5FbXVsYXRvciBNYW5hZ2VyPFwvYT4gdG8gY3JlYXRlIGFuZCBsYXVuY2ggYSBWaXJ0dWFsIE1hY2hpbmUgKGVtdWxhdG9yKSBpbnN0YW5jZS4gWW91IGNhbiBjb21tdW5pY2F0ZSB3aXRoIHRoZSBlbXVsYXRvciBpbnN0YW5jZSB1c2luZyB0aGUgPGEgaHJlZj1cInNtYXJ0LWRldmVsb3BtZW50LWJyaWRnZS5tZFwiPlNtYXJ0IERldmVsb3BtZW50IEJyaWRnZSAoU0RCKTxcL2E+LjxcL3A+XG48cD5UaGUgZW11bGF0b3IgcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBtYWluIGZlYXR1cmVzOjxcL3A+XG48dWw+XG48bGk+RnVsbCBzeXN0ZW0gZW11bGF0aW9uLCBpbmNsdWRpbmcgQ1BVLCBtZW1vcnksIGFuZCBwZXJpcGhlcmFsIGRldmljZXMuPFwvbGk+XG48bGk+RXZlbnQgc2ltdWxhdGlvbiB3aXRoIHRoZSA8YSBocmVmPVwiZW11bGF0b3ItY29udHJvbC1wYW5lbC5tZFwiPkVtdWxhdG9yIENvbnRyb2wgUGFuZWw8XC9hPi48XC9saT5cbjxsaT5HdWVzdCBvcGVyYXRpb24gYWNjZWxlcmF0aW9uIHVzaW5nIGEgaG9zdCBDUFUgb3IgR1BVLjxcL2xpPlxuPFwvdWw+XG48cD5Gb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIDxhIGhyZWY9XCIjc3VwcG9ydGVkXCI+U3VwcG9ydGVkIEZlYXR1cmVzPFwvYT4uPFwvcD5cbjxoMiBpZD1cImNvbnRlbnQtcnVubmluZy1hbi1hcHBsaWNhdGlvbi1pbi10aGUtZW11bGF0b3JcIj48YSBocmVmPVwiI2NvbnRlbnQtcnVubmluZy1hbi1hcHBsaWNhdGlvbi1pbi10aGUtZW11bGF0b3JcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlJ1bm5pbmcgYW4gQXBwbGljYXRpb24gaW4gdGhlIEVtdWxhdG9yPFwvaDI+XG48cD5UbyB1c2UgdGhlIGVtdWxhdG9yLCB5b3UgbmVlZCB0aGUgVGl6ZW4gRXh0ZW5zaW9uLiBJZiB5b3UgZG8gbm90IGhhdmUgdGhlIFRpemVuIEV4dGVuc2lvbiwgaW5zdGFsbCBpdCBmcm9tIHRoZSBWaXN1YWwgU3R1ZGlvIE1hcmtldHBsYWNlLjxcL3A+XG48cD5UbyBzdGFydCB0aGUgZW11bGF0b3IgYW5kIHJ1biBhbiBhcHBsaWNhdGlvbjo8XC9wPlxuPG9sPlxuPGxpPlxuPHA+QWNjZXNzIHRoZSA8YSBocmVmPVwiZW11bGF0b3ItbWFuYWdlci5tZCNhY2Nlc3NcIj5FbXVsYXRvciBNYW5hZ2VyPFwvYT4gcGFuZWwuPFwvcD5cbjxwPklmIHlvdSBkbyBub3QgaGF2ZSBhbiBhcHBsaWNhYmxlIGVtdWxhdG9yIGluc3RhbmNlLCA8YSBocmVmPVwiZW11bGF0b3ItbWFuYWdlci5tZCNkb3dubG9hZF9wbGF0Zm9ybVwiPmRvd25sb2FkIGEgcGxhdGZvcm08XC9hPiBhbmQgPGEgaHJlZj1cImVtdWxhdG9yLW1hbmFnZXIubWQjY3JlYXRlXCI+Y3JlYXRlIG9uZTxcL2E+LjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPkNsaWNrIDxzdHJvbmc+U3RhcnQ8XC9zdHJvbmc+ICg8aW1nIHNyYz1cIm1lZGlhXC9lbV9zdGFydC5wbmdcIiBhbHQ9XCJTdGFydFwiIFwvPikuPFwvcD5cbjxcL2xpPlxuPGxpPlxuPHA+VGVzdCB5b3VyIGFwcGxpY2F0aW9uIGluIHRoZSBlbXVsYXRvci4gWW91IGNhbiBsYXVuY2ggeW91ciBhcHBsaWNhdGlvbiBpbiAyIHdheXM6PFwvcD5cbjx1bD5cbjxsaT5JbiBWUyBDb2RlLCBzZWxlY3QgdGhlIHByb2plY3QgYW5kIHJ1biBpdCB3aGlsZSB0aGUgZW11bGF0b3IgaXMgcnVubmluZy48XC9saT5cbjxsaT5EcmFnIGFuIGFwcGxpY2F0aW9uIHBhY2thZ2UgZmlsZSAoZm9yIGV4YW1wbGUsIHRoZSA8Y29kZT4udHBrPFwvY29kZT4gZmlsZSkgdG8gdGhlIGVtdWxhdG9yIHRvIGluc3RhbGwgYW5kIGxhdW5jaCB0aGUgYXBwbGljYXRpb24gb24gdGhlIGVtdWxhdG9yLjxcL2xpPlxuPFwvdWw+XG48XC9saT5cbjxsaT5cbjxwPlRvIGNsb3NlIHRoZSBlbXVsYXRvciwgcmlnaHQtY2xpY2sgdGhlIGVtdWxhdG9yIGFuZCBzZWxlY3QgPHN0cm9uZz5DbG9zZTxcL3N0cm9uZz4sIG9yIGNsaWNrIGFuZCBob2xkIHRoZSA8c3Ryb25nPlBvd2VyPFwvc3Ryb25nPiBrZXkuPFwvcD5cbjxcL2xpPlxuPFwvb2w+XG48cD5UaGUgZW11bGF0b3IgZGV2aWNlIHN0b3JlcyB0aGUgaW5zdGFsbGVkIGFwcGxpY2F0aW9uIHNvIHlvdSBjYW4gcnVuIGl0IGFnYWluIGlmIG5lZWRlZC4gVG8gcmVtb3ZlIHRoZSBhcHBsaWNhdGlvbiwgeW91IG11c3QgdW5pbnN0YWxsIGl0LiBJZiB5b3UgcnVuIHRoZSBwcm9qZWN0IGFnYWluIG9uIHRoZSBzYW1lIGVtdWxhdG9yLCB0aGUgZW11bGF0b3IgcmVwbGFjZXMgdGhlIGFwcGxpY2F0aW9uIHdpdGggdGhlIG5ldyB2ZXJzaW9uLjxcL3A+XG48cD5JbiB0aGUgRW11bGF0b3IgTWFuYWdlciwgaW4gYWRkaXRpb24gdG8gY3JlYXRpbmcgbmV3IGVtdWxhdG9yIGluc3RhbmNlcyBhY2NvcmRpbmcgdG8gdGhlIGVudmlyb25tZW50cyB5b3UgbmVlZCwgeW91IGNhbiBhbHNvIDxhIGhyZWY9XCJlbXVsYXRvci1tYW5hZ2VyLm1kI21hbmFnZVwiPm1vZGlmeSBhbmQgZGVsZXRlIGVtdWxhdG9yIGluc3RhbmNlczxcL2E+LjxcL3A+XG48cD48YSBuYW1lPVwic3BlZWRcIj48XC9hPjxcL3A+XG48aDIgaWQ9XCJjb250ZW50LWluY3JlYXNpbmctdGhlLWFwcGxpY2F0aW9uLWV4ZWN1dGlvbi1zcGVlZFwiPjxhIGhyZWY9XCIjY29udGVudC1pbmNyZWFzaW5nLXRoZS1hcHBsaWNhdGlvbi1leGVjdXRpb24tc3BlZWRcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkluY3JlYXNpbmcgdGhlIEFwcGxpY2F0aW9uIEV4ZWN1dGlvbiBTcGVlZDxcL2gyPlxuPHA+VGhlIFRpemVuIHg4NiBFbXVsYXRvciBleHBsb2l0cyA8YSBocmVmPVwiaHR0cDpcL1wvd3d3LmxpbnV4LWt2bS5vcmdcL3BhZ2VcL01haW5fUGFnZVwiPktWTTxcL2E+IChLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIGluIExpbnV4KSBvciA8YSBocmVmPVwiLi5cL3NldHVwXC9oYXJkd2FyZS1hY2NlbGVyYXRlZC1leGVjdXRpb24tbWFuYWdlci5tZFwiPkhBWDxcL2E+IChIYXJkd2FyZSBBY2NlbGVyYXRlZCBlWGVjdXRpb24gaW4gV2luZG93c1x1MDBhZSBhbmQgbWFjT1MpIHdpdGggSFcgdmlydHVhbGl6YXRpb24gc3VwcG9ydC48XC9wPlxuPHA+SWYgdGhlIENQVSBWVCBpcyBkaXNhYmxlZCBpbiB0aGUgPHN0cm9uZz5FbXVsYXRvciBDb25maWd1cmF0aW9uPFwvc3Ryb25nPiB2aWV3IG9uIHRoZSBFbXVsYXRvciBNYW5hZ2VyLCBjaGVjayB0aGUgZm9sbG93aW5nIHByZXJlcXVpc2l0ZXMgYW5kIGluc3RhbGwgS1ZNIG9yIEhBWDo8XC9wPlxuPG9sPlxuPGxpPlxuPHA+PHN0cm9uZz5QcmVyZXF1aXNpdGVzIGZvciB1c2luZyBIVyB2aXJ0dWFsaXphdGlvbjo8XC9zdHJvbmc+PFwvcD5cbjx1bD5cbjxsaT5cbjxwPjxzdHJvbmc+SW4gVWJ1bnR1OjxcL3N0cm9uZz48XC9wPlxuPHA+VG8gdXNlIEtWTSwgeW91IG5lZWQgYSBwcm9jZXNzb3IgdGhhdCBzdXBwb3J0cyBIVyB2aXJ0dWFsaXphdGlvbi4gQm90aCBJbnRlbCBhbmQgQU1EIGhhdmUgZGV2ZWxvcGVkIHRob3NlIGV4dGVuc2lvbnMgZm9yIHRoZWlyIHByb2Nlc3NvcnMgKEludGVsIFZULXhcL0FNRC1WKS4gQ2hlY2sgd2hldGhlciB0aGUgQ1BVIHN1cHBvcnRzIEhXIHZpcnR1YWxpemF0aW9uIHdpdGggdGhlIGZvbGxvd2luZyBjb21tYW5kOjxcL3A+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+ZWdyZXA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPi1jPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mIzM5Oyh2bXh8c3ZtKSYjMzk7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj5cL3Byb2NcL2NwdWluZm88XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPHA+SWYgdGhlIG91dHB1dCBvZiB0aGUgY29tbWFuZCBpcyAwLCB0aGUgQ1BVIGRvZXMgbm90IHN1cHBvcnQgSFcgdmlydHVhbGl6YXRpb24uIE90aGVyd2lzZSwgaXQgZG9lcy48XC9wPlxuPHA+VGhlIEhXIHZpcnR1YWxpemF0aW9uIGZlYXR1cmUgY2FuIGFsc28gYmUgZGlzYWJsZWQgaW4gdGhlIEJJT1Mgc2V0dGluZy4gQ2hlY2sgdGhlIHNldHRpbmcgYW5kIGVuYWJsZSBpdCBpZiB5b3UgbmVlZCB0aGUgZmVhdHVyZS48XC9wPlxuPFwvbGk+XG48bGk+XG48cD48c3Ryb25nPkluIFdpbmRvd3NcdTAwYWU6PFwvc3Ryb25nPjxcL3A+XG48cD5UbyB1c2UgSEFYLCB5b3UgbmVlZCBhbiBJbnRlbCBWVC14LXN1cHBvcnRlZCBDUFUsIGFuZCB5b3UgbXVzdCBlbmFibGUgdGhlIE5YLXJlbGF0ZWQgc2V0dGluZyBpbiB0aGUgUEMgQklPUy48XC9wPlxuPFwvbGk+XG48bGk+XG48cD48c3Ryb25nPkluIG1hY09TOjxcL3N0cm9uZz48XC9wPlxuPHA+VG8gdXNlIEhBWCwgaW5zdGFsbCBFRkktcmVsYXRlZCB1cGRhdGVzIG9uIHlvdXIgSW50ZWwtYmFzZWQgTWFjIGNvbXB1dGVyLjxcL3A+XG48cD5Gb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIDxhIGhyZWY9XCJodHRwOlwvXC9zdXBwb3J0LmFwcGxlLmNvbVwva2JcL0hUMTIzN1wiPkVGSSBhbmQgU01DIGZpcm13YXJlIHVwZGF0ZXMgZm9yIEludGVsLWJhc2VkIE1hYyBjb21wdXRlcnM8XC9hPi48XC9wPlxuPFwvbGk+XG48XC91bD5cbjxcL2xpPlxuPGxpPlxuPHA+PHN0cm9uZz5JbnN0YWxsaW5nIEtWTSBvciBIQVg6PFwvc3Ryb25nPjxcL3A+XG48dWw+XG48bGk+XG48cD48c3Ryb25nPkluIFVidW50dTo8XC9zdHJvbmc+PFwvcD5cbjxwPk5vIGluc3RhbGxhdGlvbiBpcyByZXF1aXJlZCBmb3IgS1ZNLjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPjxzdHJvbmc+SW4gV2luZG93c1x1MDBhZSBhbmQgbWFjT1M6PFwvc3Ryb25nPjxcL3A+XG48cD5UaGUgSEFYTSBkcml2ZXIgaXMgaW5zdGFsbGVkIGR1cmluZyB0aGUgVGl6ZW4gU3R1ZGlvIGluc3RhbGxhdGlvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaW5zdGFsbGluZyBIQVhNLCBzZWUgPGEgaHJlZj1cIi4uXC9zZXR1cFwvaGFyZHdhcmUtYWNjZWxlcmF0ZWQtZXhlY3V0aW9uLW1hbmFnZXIubWRcIj5IYXJkd2FyZSBBY2NlbGVyYXRlZCBFeGVjdXRpb24gTWFuYWdlcjxcL2E+LjxcL3A+XG48XC9saT5cbjxcL3VsPlxuPGRpdiBjbGFzcz1cIm1kLWFsZXJ0IG1kLWFsZXJ0LW5vdGVcIj5cbjxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOlwvXC93d3cudzMub3JnXC8yMDAwXC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+PHBhdGggZD1cIk0wIDhhOCA4IDAgMSAxIDE2IDBBOCA4IDAgMCAxIDAgOFptOC02LjVhNi41IDYuNSAwIDEgMCAwIDEzIDYuNSA2LjUgMCAwIDAgMC0xM1pNNi41IDcuNzVBLjc1Ljc1IDAgMCAxIDcuMjUgN2gxYS43NS43NSAwIDAgMSAuNzUuNzV2Mi43NWguMjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0yYS43NS43NSAwIDAgMSAwLTEuNWguMjV2LTJoLS4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNOCA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIlwvPjxcL3N2Zz5Ob3RlPFwvc3Bhbj5cbjxwPklmIHRoZSBpbnN0YWxsYXRpb24gZmFpbHMgd2l0aCBhIFZULXJlbGF0ZWQgbWVzc2FnZSwgY2hlY2sgdGhlIENQVSBmZWF0dXJlIGFuZCBCSU9TIHNldHRpbmdzLiBJZiB0aGUgaW5zdGFsbGF0aW9uIGZhaWxzIHdpdGggYW4gTlgtcmVsYXRlZCBtZXNzYWdlLCBlbmFibGUgdGhlIE5YIChvciBQQUUgYW5kIERFUCkgcmVsYXRlZCBpdGVtIGluIHRoZSBCSU9TLiBJbiBhZGRpdGlvbiwgbWFrZSBzdXJlIHRoYXQgdGhlIG9wZXJhdGluZyBzeXN0ZW0gc3VwcG9ydHMgdGhlIE5YIGZlYXR1cmUgKGZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgPGEgaHJlZj1cImh0dHA6XC9cL21zZG4ubWljcm9zb2Z0LmNvbVwvZW4tdXNcL2xpYnJhcnlcL3dpbmRvd3NcL2hhcmR3YXJlXC9mZjU0MjI3NSUyOHY9dnMuODUlMjkuYXNweFwiPk1TRE48XC9hPikuPFwvcD5cbjxcL2Rpdj5cbjxwPk5vIGNvbmZpZ3VyYXRpb24gaXMgcmVxdWlyZWQgZm9yIEtWTSBvciBIQVguPFwvcD5cbjxcL2xpPlxuPFwvb2w+XG48aDMgaWQ9XCJjb250ZW50LXdvcmtpbmctd2l0aC10aGUtaHctdmlydHVhbGl6YXRpb24tc2V0dGluZ3MtYW5kLWhlbHBcIj48YSBocmVmPVwiI2NvbnRlbnQtd29ya2luZy13aXRoLXRoZS1ody12aXJ0dWFsaXphdGlvbi1zZXR0aW5ncy1hbmQtaGVscFwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+V29ya2luZyB3aXRoIHRoZSBIVyBWaXJ0dWFsaXphdGlvbiwgU2V0dGluZ3MsIGFuZCBIZWxwPFwvaDM+XG48cD5UbyBydW4gdGhlIGVtdWxhdG9yIHdpdGggSFcgdmlydHVhbGl6YXRpb24gc3VwcG9ydCBpbiB0aGUgRW11bGF0b3IgTWFuYWdlciwgc2V0IHRoZSA8c3Ryb25nPkNQVSBWVDxcL3N0cm9uZz4gZmllbGQgdG8gPHN0cm9uZz5PTjxcL3N0cm9uZz4uIFRoZSBmaWVsZCBpcyBkaXNhYmxlZCBpZiB5b3VyIHN5c3RlbSBjYW5ub3Qgc3VwcG9ydCBIVyB2aXJ0dWFsaXphdGlvbi48XC9wPlxuPHA+WW91IGNhbiBhbHNvIHJ1biB0aGUgZW11bGF0b3Igd2l0aCBIVyB2aXJ0dWFsaXphdGlvbiBzdXBwb3J0IGZyb20gdGhlIGNvbW1hbmQgbGluZSBieSBpbmNsdWRpbmcgdGhlIDxjb2RlPi1lbmFibGUta3ZtPFwvY29kZT4gKGluIFVidW50dSkgb3IgPGNvZGU+LWVuYWJsZS1oYXg8XC9jb2RlPiAoaW4gV2luZG93c1x1MDBhZSBhbmQgbWFjT1MpIG9wdGlvbiBpbiB0aGUgc3RhcnQtdXAgY29tbWFuZC48XC9wPlxuPHA+PGEgbmFtZT1cInN1cHBvcnRlZFwiPjxcL2E+PFwvcD5cbjxoMiBpZD1cImNvbnRlbnQtc3VwcG9ydGVkLWZlYXR1cmVzXCI+PGEgaHJlZj1cIiNjb250ZW50LXN1cHBvcnRlZC1mZWF0dXJlc1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+U3VwcG9ydGVkIEZlYXR1cmVzPFwvaDI+XG48cD5UaGUgZW11bGF0b3IgcHJvdmlkZXMgdmFyaW91cyB2aXJ0dWFsIEhXLCBtZWRpYSBmb3JtYXRzLCBjb2RlY3MsIGFuZCA8YSBocmVmPVwiI29wZW5nbFwiPk9wZW5HTFx1MDBhZSBFUyBhY2NlbGVyYXRpb248XC9hPi4gRm9yIGJldHRlciBwZXJmb3JtYW5jZSBvZiB0aGUgT3BlbkdMXHUwMGFlIEVTIHN1cHBvcnQsIHRoZSBUaXplbiBFbXVsYXRvciBleHBsb2l0cyB0aGUgbGF0ZXN0IGZlYXR1cmUgb2YgdGhlIGdyYXBoaWMgZHJpdmVyLCBzbyBhbHdheXMgPGEgaHJlZj1cIi4uXC9zZXR1cFwvcHJlcmVxdWlzaXRlcy5tZCNlbXVsYXRvclwiPmluc3RhbGwgdGhlIGxhdGVzdCB2ZW5kb3ItcHJvdmlkZWQgZ3JhcGhpYyBkcml2ZXI8XC9hPi4gVGhlIGVtdWxhdG9yLCBob3dldmVyLCBoYXMgc29tZSBsaW1pdGF0aW9ucyBhbmQgPGEgaHJlZj1cIiN0YXJnZXRcIj5kaWZmZXJlbmNlcyBjb21wYXJlZCB0byBwaHlzaWNhbCB0YXJnZXQgZGV2aWNlczxcL2E+LjxcL3A+XG48cD5UaGUgZm9sbG93aW5nIHRhYmxlIGxpc3RzIHRoZSBiYXNpYyBmZWF0dXJlcyBzdXBwb3J0ZWQgaW4gdGhlIGVtdWxhdG9yLjxcL3A+XG48cD48c3Ryb25nPlRhYmxlOiBTdXBwb3J0ZWQgZW11bGF0b3IgZmVhdHVyZXM8XC9zdHJvbmc+PFwvcD5cbjx0YWJsZT5cblx0PHRoZWFkPlxuXHRcdDx0cj5cblx0XHRcdDx0aD5GZWF0dXJlPFwvdGg+XG5cdFx0XHQ8dGg+RGV0YWlsPFwvdGg+XG5cdFx0XHQ8dGg+U3RhdHVzPFwvdGg+XG5cdFx0XHQ8dGg+Tm90ZXM8XC90aD5cblx0XHQ8XC90cj5cblx0PFwvdGhlYWQ+XG5cdDx0Ym9keT5cblx0XHQ8dHI+XG5cdFx0XHQ8dGQ+U2tpbjxcL3RkPlxuXHRcdFx0PHRkPlNraW5zIGFyZSBmaXR0ZWQgdG8gdGhlIHNjcmVlbiByZXNvbHV0aW9uOlxuXHRcdFx0PHA+TW9iaWxlOjxcL3A+XG5cdFx0XHQ8dWw+XG5cdFx0XHRcdDxsaT5XVkdBICg0ODAgeCA4MDAsIGRlZmF1bHQpPFwvbGk+XG5cdFx0XHRcdDxsaT5xSEQgKDU0MCB4IDk2MCk8XC9saT5cblx0XHRcdFx0PGxpPkhEICg3MjAgeCAxMjgwKTxcL2xpPlxuXHRcdFx0PFwvdWw+XG5cdFx0XHQ8cD5XZWFyYWJsZTo8XC9wPlxuXHRcdFx0PHVsPlxuXHRcdFx0XHQ8bGk+MzIwIHggMzIwPFwvbGk+XG5cdFx0XHRcdDxsaT4zNjAgeCAzNjAgKGRlZmF1bHQpPFwvbGk+XG5cdFx0XHRcdDxsaT4zNjAgeCA0ODA8XC9saT5cblx0XHRcdDxcL3VsPlxuXHRcdFx0PHA+NCBvcmllbnRhdGlvbiBtb2RlcyBhcmUgc3VwcG9ydGVkOjxcL3A+XG5cdFx0XHQ8cD5Qb3J0cmFpdCAoZGVmYXVsdCksIGxhbmRzY2FwZSwgcmV2ZXJzZSBwb3J0cmFpdCwgYW5kIHJldmVyc2UgbGFuZHNjYXBlPFwvcD5cblx0XHRcdDxcL3RkPlxuXHRcdFx0PHRkPlN1cHBvcnRlZDxcL3RkPlxuXHRcdFx0PHRkPjIgc2tpbiBsYXlvdXQgdHlwZXMgYXJlIHN1cHBvcnRlZDpcblx0XHRcdDx1bD5cblx0XHRcdFx0PGxpPlByb2ZpbGUtc3BlY2lmaWMgc2tpbjxcL2xpPlxuXHRcdFx0XHQ8bGk+R2VuZXJhbC1wdXJwb3NlIHNraW48XC9saT5cblx0XHRcdDxcL3VsPlxuXHRcdFx0PFwvdGQ+XG5cdFx0PFwvdHI+XG5cdFx0PHRyPlxuXHRcdFx0PHRkPlRvdWNoPFwvdGQ+XG5cdFx0XHQ8dGQ+TWFydSB0b3VjaHNjcmVlbiBkZXZpY2U8XC90ZD5cblx0XHRcdDx0ZD5TdXBwb3J0ZWQ8XC90ZD5cblx0XHRcdDx0ZD5NdWx0aS10b3VjaCBpcyBzdXBwb3J0ZWQuPFwvdGQ+XG5cdFx0PFwvdHI+XG5cdFx0PHRyPlxuXHRcdFx0PHRkPktleTxcL3RkPlxuXHRcdFx0PHRkPkhXIGtleXMsIGhvc3Qga2V5Ym9hcmQsIGFuZCBTVyBrZXlwYWQ8XC90ZD5cblx0XHRcdDx0ZD5TdXBwb3J0ZWQ8XC90ZD5cblx0XHRcdDx0ZD5UaGUgaG9zdCBrZXlib2FyZCBpcyBub3Qgc3VwcG9ydGVkIGZvciB0aGUgd2VhcmFibGUgZW11bGF0b3IuPFwvdGQ+XG5cdFx0PFwvdHI+XG5cdFx0PHRyPlxuXHRcdFx0PHRkPlJvdGFyeTxcL3RkPlxuXHRcdFx0PHRkPjM2MCBsZXZlbHMgb2YgY2xvY2t3aXNlIG9yIGNvdW50ZXItY2xvY2t3aXNlIHJvdGF0aW9uPFwvdGQ+XG5cdFx0XHQ8dGQ+U3VwcG9ydGVkPFwvdGQ+XG5cdFx0XHQ8dGQ+LTxcL3RkPlxuXHRcdDxcL3RyPlxuXHRcdDx0cj5cblx0XHRcdDx0ZD5EaXNwbGF5PFwvdGQ+XG5cdFx0XHQ8dGQ+VkdBIGNhcmQgd2l0aCAxMDAgbGV2ZWxzIG9mIGJyaWdodG5lc3MgY29udHJvbDxcL3RkPlxuXHRcdFx0PHRkPlN1cHBvcnRlZDxcL3RkPlxuXHRcdFx0PHRkPi08XC90ZD5cblx0XHQ8XC90cj5cblx0XHQ8dHI+XG5cdFx0XHQ8dGQ+T3BlbkdMJnJlZzsgRVM8XC90ZD5cblx0XHRcdDx0ZD5Db21wYXRpYmxlIHdpdGggT3BlbkdMJnJlZzsgRVMgMS4xIGFuZCAyLjBcblx0XHRcdDxwPk9wZW5HTCZyZWc7IEVTIEFQSSBwYXNzLXRocm91Z2ggdGhyb3VnaCBQQ0k8XC9wPlxuXHRcdFx0PFwvdGQ+XG5cdFx0XHQ8dGQ+U3VwcG9ydGVkPFwvdGQ+XG5cdFx0XHQ8dGQ+VGhlIE9wZW5HTCZyZWc7IEVTIDEuMSBmdW5jdGlvbmFsaXR5IGlzIG5vdCBndWFyYW50ZWVkIG9uIHRoZSBlbXVsYXRvciwgdW5sZXNzIHRoZSBncmFwaGljcyBoYXJkd2FyZSBvZiB5b3VyIGNvbXB1dGVyIHN1cHBvcnRzIE9wZW5HTCZyZWc7IDEuNS5cblx0XHRcdDxwPlRoZSBPcGVuR0wmcmVnOyBFUyAyLjAgZnVuY3Rpb25hbGl0eSBpcyBub3QgZ3VhcmFudGVlZCBvbiB0aGUgZW11bGF0b3IsIHVubGVzcyB0aGUgZ3JhcGhpY3MgaGFyZHdhcmUgb2YgeW91ciBjb21wdXRlciBzdXBwb3J0cyBPcGVuR0wmcmVnOyAyLjEuPFwvcD5cblx0XHRcdDxwPlRoZSBob3N0IG1hY2hpbmUgbXVzdCBzdXBwb3J0IE9wZW5HTCZyZWc7IDEuNC48XC9wPlxuXHRcdFx0PFwvdGQ+XG5cdFx0PFwvdHI+XG5cdFx0PHRyPlxuXHRcdFx0PHRkPlNvdW5kPFwvdGQ+XG5cdFx0XHQ8dGQ+QUM5NyBkZXZpY2U8XC90ZD5cblx0XHRcdDx0ZD5TdXBwb3J0ZWQ8XC90ZD5cblx0XHRcdDx0ZD48c3Ryb25nPkF1ZGlvIGluOjxcL3N0cm9uZz5cblx0XHRcdDxwPk1ha2Ugc3VyZSB0aGF0IHRoZSBpbnB1dCB2b2x1bWUgb2YgdGhlIG1pY3JvcGhvbmUgaXMgZW5vdWdoIHRvIHJlY29yZCB5b3VyIHZvaWNlIG9yIHNvbmdzIG9uIHRoZSBob3N0IG1hY2hpbmUuPFwvcD5cblx0XHRcdDxwPk9uIFdpbmRvd3MmcmVnOyA3LCBpbmplY3QgdGhlIG1pY3JvcGhvbmUgaW50byB0aGUgaG9zdCBtYWNoaW5lIGJlZm9yZSBzdGFydGluZyB0aGUgZW11bGF0b3IuPFwvcD5cblx0XHRcdDxwPjxzdHJvbmc+QXVkaW8gb3V0OjxcL3N0cm9uZz48XC9wPlxuXHRcdFx0PHA+T24gV2luZG93cyZyZWc7IDcsIGVuYWJsZSBhdCBsZWFzdCAxIGF1ZGlvIG91dCBkZXZpY2UgYmVmb3JlIHN0YXJ0aW5nIHRoZSBlbXVsYXRvci4gTWFrZSBzdXJlIHRoYXQgdGhlIHZvbHVtZSBpY29uIGluIHRoZSB0cmF5IGlzIG5vdCBkaXNhYmxlZC48XC9wPlxuXHRcdFx0PHA+V2hpbGUgdGhlIGVtdWxhdG9yIGlzIHJ1bm5pbmcsIGRvIG5vdCBkaXNhYmxlIHRoZSBhdWRpbyBvdXQgZGV2aWNlLCBhcyBpdCBjYW4gbG9jayB0aGUgYXVkaW8gc3lzdGVtIG9mIHRoZSBndWVzdCBwbGF0Zm9ybS48XC9wPlxuXHRcdFx0PFwvdGQ+XG5cdFx0PFwvdHI+XG5cdFx0PHRyPlxuXHRcdFx0PHRkPk5ldHdvcmsgY29ubmVjdGlvbjxcL3RkPlxuXHRcdFx0PHRkPlZpcnRpbzxcL3RkPlxuXHRcdFx0PHRkPlN1cHBvcnRlZDxcL3RkPlxuXHRcdFx0PHRkPlJhdyBzb2NrZXQgcHJvdG9jb2wsIHN1Y2ggYXMgSUNNUCwgaXMgbm90IHN1cHBvcnRlZC48XC90ZD5cblx0XHQ8XC90cj5cblx0XHQ8dHI+XG5cdFx0XHQ8dGQ+RW11bGF0b3IgQ29udHJvbCBQYW5lbDxcL3RkPlxuXHRcdFx0PHRkPlRoZSBFbXVsYXRvciBDb250cm9sIFBhbmVsIChFQ1ApIHN1cHBvcnRzIGRpZmZlcmVudCBmZWF0dXJlcyBkZXBlbmRpbmcgb24gdGhlIGRldmljZSBwcm9maWxlOlxuXHRcdFx0PHA+TW9iaWxlOjxcL3A+XG5cdFx0XHQ8dWw+XG5cdFx0XHRcdDxsaT5EZXZpY2UgTWFuYWdlcjogRGV2aWNlIFRyZWUsIE5ldHdvcmssIEhvc3QgRGlyZWN0b3J5IFNoYXJpbmc8XC9saT5cblx0XHRcdFx0PGxpPkV2ZW50IEluamVjdG9yOiBCYXR0ZXJ5LCBSU1NJLCAzLUF4aXMgU2Vuc29yLCBMaWdodCwgUHJveGltaXR5LCBQcmVzc3VyZSwgVWx0cmF2aW9sZXQsIEhlYXJ0IFJhdGUgTW9uaXRvciwgTW90aW9uLCBFYXIgSmFjaywgVVNCLCBTRENhcmQsIExvY2F0aW9uLCBUZWxlcGhvbnk8XC9saT5cblx0XHRcdDxcL3VsPlxuXHRcdFx0PHA+V2VhcmFibGU6PFwvcD5cblx0XHRcdDx1bD5cblx0XHRcdFx0PGxpPkRldmljZSBNYW5hZ2VyOiBOZXR3b3JrLCBIb3N0IERpcmVjdG9yeSBTaGFyaW5nPFwvbGk+XG5cdFx0XHRcdDxsaT5BcHAgTWFuYWdlcjogVW5pbnN0YWxsZXI8XC9saT5cblx0XHRcdFx0PGxpPkV2ZW50IEluamVjdG9yOiBCYXR0ZXJ5LCAzLUF4aXMgU2Vuc29yLCBMaWdodCwgUHJveGltaXR5LCBQZWRvbWV0ZXIsIFByZXNzdXJlLCBVbHRyYXZpb2xldCwgSGVhcnQgUmF0ZSBNb25pdG9yLCBHZXN0dXJlLCBVU0I8XC9saT5cblx0XHRcdDxcL3VsPlxuXHRcdFx0PFwvdGQ+XG5cdFx0XHQ8dGQ+U3VwcG9ydGVkPFwvdGQ+XG5cdFx0XHQ8dGQ+VGhlIEVDUCBpcyBhIHN0YW5kYWxvbmUgdG9vbCwgd2hpY2ggcmVwbGFjZXMgdGhlIEV2ZW50IEluamVjdG9yLiBJdCBoZWxwcyB0byBjb250cm9sIGFuZCBtb25pdG9yIHRoZSBlbXVsYXRvciBmZWF0dXJlcywgYW5kIGNhbiBiZSBsYXVuY2hlZCBmcm9tIHRoZSBlbXVsYXRvciBjb250ZXh0IG1lbnUuPFwvdGQ+XG5cdFx0PFwvdHI+XG5cdFx0PHRyPlxuXHRcdFx0PHRkPkNhbWVyYTxcL3RkPlxuXHRcdFx0PHRkPlZpcnR1YWwgY2FtZXJhIGRldmljZSBjb25uZWN0aW5nIGEgaG9zdCBtYWNoaW5lJ3MgV2ViY2FtOlxuXHRcdFx0PHVsPlxuXHRcdFx0XHQ8bGk+U3VwcG9ydDogcHJldmlldywgY2FwdHVyZSwgYW5kIHJlY29yZDxcL2xpPlxuXHRcdFx0XHQ8bGk+SW1hZ2UgZm9ybWF0OiBZVVlWLCBJNDIwLCBhbmQgWVYxMjxcL2xpPlxuXHRcdFx0XHQ8bGk+QXR0cmlidXRlczogYnJpZ2h0bmVzcyBhbmQgY29udHJhc3Q8XC9saT5cblx0XHRcdFx0PGxpPlJlc29sdXRpb246IDE2MCB4IDEyMCwgMTc2IHggMTQ0LCAzMjAgeCAyNDAsIDM1MiB4IDI4OCwgYW5kIDY0MCB4IDQ4MDxcL2xpPlxuXHRcdFx0XHQ8bGk+VmlkZW8gcmVzb2x1dGlvbjogMTI4MCB4IDcyMCBmb3IgdGhlIFdWR0EsIDMyMCB4IDI0MCBmb3IgdGhlIFdRVkdBLCBhbmQgNjQwIHggNDgwIGZvciB0aGUgSFZHQSBkZXZpY2VzPFwvbGk+XG5cdFx0XHRcdDxsaT5TdXBwb3J0ZWQgdmlkZW8gY29kZWNzOiBNUEVHLTQsIEguMjYzLCBILjI2NCwgYW5kIFZDLTEgZm9yIGJvdGggZW5jb2RpbmcgYW5kIGRlY29kaW5nPFwvbGk+XG5cdFx0XHQ8XC91bD5cblx0XHRcdDxcL3RkPlxuXHRcdFx0PHRkPlN1cHBvcnRlZDxcL3RkPlxuXHRcdFx0PHRkPldoaWxlIHJlY29yZGluZyBhIHZpZGVvIHVzaW5nIHRoZSBlbXVsYXRvciwgYW4gYXVkaW8tdmlkZW8gc3luY2hyb25pemF0aW9uIGVycm9yIGNhbiBvY2N1ciBkZXBlbmRpbmcgb24geW91ciBjb21wdXRlciBoYXJkd2FyZSBhbmQgcGVyZm9ybWFuY2UuPFwvdGQ+XG5cdFx0PFwvdHI+XG5cdFx0PHRyPlxuXHRcdFx0PHRkPkJsdWV0b290aDxcL3RkPlxuXHRcdFx0PHRkPi08XC90ZD5cblx0XHRcdDx0ZD5Ob3Qgc3VwcG9ydGVkPFwvdGQ+XG5cdFx0XHQ8dGQ+LTxcL3RkPlxuXHRcdDxcL3RyPlxuXHRcdDx0cj5cblx0XHRcdDx0ZD5XaS1GaTxcL3RkPlxuXHRcdFx0PHRkPi08XC90ZD5cblx0XHRcdDx0ZD5Ob3Qgc3VwcG9ydGVkPFwvdGQ+XG5cdFx0XHQ8dGQ+LTxcL3RkPlxuXHRcdDxcL3RyPlxuXHRcdDx0cj5cblx0XHRcdDx0ZD5XaS1GaSBEaXJlY3QmcmVnOzxcL3RkPlxuXHRcdFx0PHRkPi08XC90ZD5cblx0XHRcdDx0ZD5Ob3Qgc3VwcG9ydGVkPFwvdGQ+XG5cdFx0XHQ8dGQ+LTxcL3RkPlxuXHRcdDxcL3RyPlxuXHQ8XC90Ym9keT5cbjxcL3RhYmxlPlxuPHA+PGEgbmFtZT1cIm9wZW5nbFwiPjxcL2E+PFwvcD5cbjxoMyBpZD1cImNvbnRlbnQtb3BlbmdsLWVzLWFjY2VsZXJhdGlvbi1zdXBwb3J0XCI+PGEgaHJlZj1cIiNjb250ZW50LW9wZW5nbC1lcy1hY2NlbGVyYXRpb24tc3VwcG9ydFwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+T3BlbkdMXHUwMGFlIEVTIEFjY2VsZXJhdGlvbiBTdXBwb3J0PFwvaDM+XG48cD5Gb3IgdGhlIGVtdWxhdG9yIHRvIHN1cHBvcnQgT3BlbkdMXHUwMGFlIEVTIGFjY2VsZXJhdGlvbiwgeW91IG5lZWQ6PFwvcD5cbjx1bD5cbjxsaT5HcmFwaGljcyBjaGlwc2V0IGRyaXZlciB0aGF0IHN1cHBvcnRzIE9wZW5HTFx1MDBhZSAxLjQgaW5zdGFsbGVkIG9uIHRoZSBob3N0IG1hY2hpbmUuPFwvbGk+XG48bGk+QWxsIGNoaXBzZXQgdmVuZG9ycyBhbmQgZHJpdmVyIHZlcnNpb25zIGF2YWlsYWJsZSB0byBzdXBwb3J0IHRoZSBPcGVuR0xcdTAwYWUgMS40IHN0YW5kYXJkLjxcL2xpPlxuPFwvdWw+XG48ZGl2IGNsYXNzPVwibWQtYWxlcnQgbWQtYWxlcnQtbm90ZVwiPlxuPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6XC9cL3d3dy53My5vcmdcLzIwMDBcL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIj48cGF0aCBkPVwiTTAgOGE4IDggMCAxIDEgMTYgMEE4IDggMCAwIDEgMCA4Wm04LTYuNWE2LjUgNi41IDAgMSAwIDAgMTMgNi41IDYuNSAwIDAgMCAwLTEzWk02LjUgNy43NUEuNzUuNzUgMCAwIDEgNy4yNSA3aDFhLjc1Ljc1IDAgMCAxIC43NS43NXYyLjc1aC4yNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTJhLjc1Ljc1IDAgMCAxIDAtMS41aC4yNXYtMmgtLjI1YS43NS43NSAwIDAgMS0uNzUtLjc1Wk04IDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXC8+PFwvc3ZnPk5vdGU8XC9zcGFuPlxuPHA+VGhlIGVtdWxhdG9yIHN1cHBvcnRzIG9ubHkgRVMgMS4xLCBFUyAyLjAsIGFuZCBFR0xcdTIxMjIgMS40IHZlcnNpb25zLjxcL3A+XG48XC9kaXY+XG48cD48YSBuYW1lPVwidGFyZ2V0XCI+PFwvYT48XC9wPlxuPGgzIGlkPVwiY29udGVudC1kaWZmZXJlbmNlcy1iZXR3ZWVuLXRoZS1lbXVsYXRvci1hbmQtdGFyZ2V0XCI+PGEgaHJlZj1cIiNjb250ZW50LWRpZmZlcmVuY2VzLWJldHdlZW4tdGhlLWVtdWxhdG9yLWFuZC10YXJnZXRcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkRpZmZlcmVuY2VzIEJldHdlZW4gdGhlIEVtdWxhdG9yIGFuZCBUYXJnZXQ8XC9oMz5cbjxwPlRoZSBmb2xsb3dpbmcgdGFibGVzIGRlc2NyaWJlIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGEgcmVhbCB0YXJnZXQgZGV2aWNlIGFuZCB0aGUgZW11bGF0b3IuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIGRldGFpbGVkIGRpZmZlcmVuY2VzIGluOjxcL3A+XG48dWw+XG48bGk+PGEgaHJlZj1cIiNpbnB1dFwiPklucHV0IHN5c3RlbTxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNncmFwaGljc1wiPkdyYXBoaWNzIGFuZCBkaXNwbGF5PFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI3NlbnNvclwiPlZpcnR1YWwgc2Vuc29yPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI3RlbGVwaG9ueVwiPlRlbGVwaG9ueTxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNwb3dlclwiPlBvd2VyIG1hbmFnZW1lbnQ8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29kZWNcIj5TdXBwb3J0ZWQgbWVkaWEgZm9ybWF0cyBhbmQgY29kZWNzPFwvYT48XC9saT5cbjxcL3VsPlxuPHA+PHN0cm9uZz5UYWJsZTogQ29tcGFyaXNvbiBzdW1tYXJ5PFwvc3Ryb25nPjxcL3A+XG48dGFibGU+XG5cdDx0aGVhZD5cblx0XHQ8dHI+XG5cdFx0XHQ8dGg+Q2F0ZWdvcnk8XC90aD5cblx0XHRcdDx0aD5TdWJqZWN0PFwvdGg+XG5cdFx0XHQ8dGg+UGh5c2ljYWwgdGFyZ2V0PFwvdGg+XG5cdFx0XHQ8dGg+RW11bGF0b3I8XC90aD5cblx0XHQ8XC90cj5cblx0PFwvdGhlYWQ+XG5cdDx0Ym9keT5cblx0XHQ8dHI+XG5cdFx0XHQ8dGQgcm93c3Bhbj1cIjVcIj5EZXZlbG9wbWVudCBlbnZpcm9ubWVudDxcL3RkPlxuXHRcdFx0PHRkPlRhcmdldDxcL3RkPlxuXHRcdFx0PHRkPkJ1eSBhIHRhcmdldCBkZXZpY2Ugb3IgcmVmZXJlbmNlIGJvYXJkIChieSBtb2RlbCk8XC90ZD5cblx0XHRcdDx0ZD5Eb3dubG9hZCBUaXplbiBTdHVkaW8gKG11bHRpLXByb2ZpbGUgYW5kIG11bHRpLW1vZGVsIHN1cHBvcnQpPFwvdGQ+XG5cdFx0PFwvdHI+XG5cdFx0PHRyPlxuXHRcdFx0PHRkPk5ldHdvcms8XC90ZD5cblx0XHRcdDx0ZD5OZWVkIEJsdWV0b290aDxcL3RkPlxuXHRcdFx0PHRkPk9ubHkgdGhlIG5ldHdvcmsgZW52aXJvbm1lbnQ8XC90ZD5cblx0XHQ8XC90cj5cblx0XHQ8dHI+XG5cdFx0XHQ8dGQ+VGFyZ2V0IGNvbm5lY3Rpb248XC90ZD5cblx0XHRcdDx0ZD5VU0I8XC90ZD5cblx0XHRcdDx0ZD5JUEMgKFRDUFwvVURQKTxcL3RkPlxuXHRcdDxcL3RyPlxuXHRcdDx0cj5cblx0XHRcdDx0ZD5Tb3VyY2UgYW5kIHBhY2thZ2UgbWFuYWdlbWVudDxcL3RkPlxuXHRcdFx0PHRkPlNvdXJjZSBhbmQgcGFja2FnZSBmb3IgdGFyZ2V0PFwvdGQ+XG5cdFx0XHQ8dGQ+U291cmNlIGFuZCBwYWNrYWdlIGZvciB0aGUgZW11bGF0b3I8XC90ZD5cblx0XHQ8XC90cj5cblx0XHQ8dHI+XG5cdFx0XHQ8dGQ+SG9zdCBEaXJlY3RvcnkgU2hhcmluZzxcL3RkPlxuXHRcdFx0PHRkPk5vdCBzdXBwb3J0ZWQ8XC90ZD5cblx0XHRcdDx0ZD5TdXBwb3J0ZWQ8XC90ZD5cblx0XHQ8XC90cj5cblx0XHQ8dHI+XG5cdFx0XHQ8dGQgcm93c3Bhbj1cIjEwXCI+UG9ydGFiaWxpdHk8XC90ZD5cblx0XHRcdDx0ZD5TY3JlZW4gcmVzb2x1dGlvbjxcL3RkPlxuXHRcdFx0PHRkPkZpeGVkPFwvdGQ+XG5cdFx0XHQ8dGQ+Q29uZmlndXJhYmxlPFwvdGQ+XG5cdFx0PFwvdHI+XG5cdFx0PHRyPlxuXHRcdFx0PHRkPlJBTSwgc3RvcmFnZSBzaXplPFwvdGQ+XG5cdFx0XHQ8dGQ+Rml4ZWQ8XC90ZD5cblx0XHRcdDx0ZD5Db25maWd1cmFibGU8XC90ZD5cblx0XHQ8XC90cj5cblx0XHQ8dHI+XG5cdFx0XHQ8dGQ+MkQgYW5kIDNEIGFjY2VsZXJhdGlvbiBBUEk8XC90ZD5cblx0XHRcdDx0ZD5HUFUtZGVwZW5kZW50PFwvdGQ+XG5cdFx0XHQ8dGQ+R1BVLWluZGVwZW5kZW50IChjb21tb24gc2V0KTxcL3RkPlxuXHRcdDxcL3RyPlxuXHRcdDx0cj5cblx0XHRcdDx0ZD5DUCwgdGVsZXBob255PFwvdGQ+XG5cdFx0XHQ8dGQ+RnVsbHkgc3VwcG9ydGVkPFwvdGQ+XG5cdFx0XHQ8dGQ+UGFydGlhbGx5IHN1cHBvcnRlZCAob25seSBTTVMgYW5kIHZvaWNlIGNhbGwpPFwvdGQ+XG5cdFx0PFwvdHI+XG5cdFx0PHRyPlxuXHRcdFx0PHRkPldpLUZpPFwvdGQ+XG5cdFx0XHQ8dGQ+RnVsbHkgc3VwcG9ydGVkPFwvdGQ+XG5cdFx0XHQ8dGQ+UGFydGlhbGx5IHN1cHBvcnRlZCAodXNpbmcgRXRoZXJuZXQpPFwvdGQ+XG5cdFx0PFwvdHI+XG5cdFx0PHRyPlxuXHRcdFx0PHRkPlNlbnNvcjxcL3RkPlxuXHRcdFx0PHRkPkZ1bGx5IHN1cHBvcnRlZDxcL3RkPlxuXHRcdFx0PHRkPlBhcnRpYWxseSBzdXBwb3J0ZWQgKHVzaW5nIHRoZSBFbXVsYXRvciBDb250cm9sIFBhbmVsKTxcL3RkPlxuXHRcdDxcL3RyPlxuXHRcdDx0cj5cblx0XHRcdDx0ZD5QblAsIGV4dGVybmFsIGNvbm5lY3Rpb248XC90ZD5cblx0XHRcdDx0ZD5GdWxseSBzdXBwb3J0ZWQ8XC90ZD5cblx0XHRcdDx0ZD5QYXJ0aWFsbHkgc3VwcG9ydGVkICh1c2luZyB0aGUgRW11bGF0b3IgQ29udHJvbCBQYW5lbCk8XC90ZD5cblx0XHQ8XC90cj5cblx0XHQ8dHI+XG5cdFx0XHQ8dGQ+Q2FtZXJhPFwvdGQ+XG5cdFx0XHQ8dGQ+RnVsbHkgc3VwcG9ydGVkPFwvdGQ+XG5cdFx0XHQ8dGQ+UGFydGlhbGx5IHN1cHBvcnRlZCAocHJldmlldywgY2FwdHVyZSwgcmVjb3JkaW5nLCBjb250cmFzdCwgYW5kIGJyaWdodG5lc3MpPFwvdGQ+XG5cdFx0PFwvdHI+XG5cdFx0PHRyPlxuXHRcdFx0PHRkPlZpYnJhdGlvbiwgaGFwdGljPFwvdGQ+XG5cdFx0XHQ8dGQ+RnVsbHkgc3VwcG9ydGVkPFwvdGQ+XG5cdFx0XHQ8dGQ+Tm90IHN1cHBvcnRlZDxcL3RkPlxuXHRcdDxcL3RyPlxuXHRcdDx0cj5cblx0XHRcdDx0ZD5CbHVldG9vdGg8XC90ZD5cblx0XHRcdDx0ZD5GdWxseSBzdXBwb3J0ZWQ8XC90ZD5cblx0XHRcdDx0ZD5Ob3Qgc3VwcG9ydGVkPFwvdGQ+XG5cdFx0PFwvdHI+XG5cdFx0PHRyPlxuXHRcdFx0PHRkIHJvd3NwYW49XCIzXCI+UGVyZm9ybWFuY2U8XC90ZD5cblx0XHRcdDx0ZD5DUFUgcGVyZm9ybWFuY2U8XC90ZD5cblx0XHRcdDx0ZD5Nb2JpbGUgQ1BVPFwvdGQ+XG5cdFx0XHQ8dGQ+RGVza3RvcCBDUFUgKHdpdGggaGFyZHdhcmUgdmlydHVhbGl6YXRpb24pPFwvdGQ+XG5cdFx0PFwvdHI+XG5cdFx0PHRyPlxuXHRcdFx0PHRkPkdQVSBwZXJmb3JtYW5jZTxcL3RkPlxuXHRcdFx0PHRkPlJlYWwgR1BVPFwvdGQ+XG5cdFx0XHQ8dGQ+RGVza3RvcCBHUFUgKHJlbGF0aXZlbHkgc2xvdyk8XC90ZD5cblx0XHQ8XC90cj5cblx0XHQ8dHI+XG5cdFx0XHQ8dGQ+SVwvTyBwZXJmb3JtYW5jZTxcL3RkPlxuXHRcdFx0PHRkPlJlYWwgSFcgSVwvTzxcL3RkPlxuXHRcdFx0PHRkPkVtdWxhdGVkIElcL08gKHJlbGF0aXZlbHkgc2xvdyk8XC90ZD5cblx0XHQ8XC90cj5cblx0PFwvdGJvZHk+XG48XC90YWJsZT5cbjxwPjxhIG5hbWU9XCJpbnB1dFwiPjxcL2E+PFwvcD5cbjxoNCBpZD1cImNvbnRlbnQtaW5wdXQtc3lzdGVtXCI+PGEgaHJlZj1cIiNjb250ZW50LWlucHV0LXN5c3RlbVwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+SW5wdXQgU3lzdGVtPFwvaDQ+XG48cD48c3Ryb25nPlRhYmxlOiBJbnB1dCBkaWZmZXJlbmNlczxcL3N0cm9uZz48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+Q2F0ZWdvcnk8XC90aD5cbjx0aD5QaHlzaWNhbCB0YXJnZXQ8XC90aD5cbjx0aD5FbXVsYXRvcjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD5Ub3VjaCBzY3JlZW4gcGFuZWw8XC90ZD5cbjx0ZD5SZWFsIGRldmljZSBhbmQgZHJpdmVyPFwvdGQ+XG48dGQ+VmlydHVhbCAoVmlydElPKSBkZXZpY2UgYW5kIGRyaXZlcjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+SG9zdCBrZXlib2FyZCBhbmQgaGFyZHdhcmUga2V5PFwvdGQ+XG48dGQ+UmVhbCBkZXZpY2UgYW5kIGRyaXZlcjxcL3RkPlxuPHRkPlZpcnR1YWwgKFZpcnRJTykgZGV2aWNlIGFuZCBkcml2ZXI8XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48cD48YSBuYW1lPVwiZ3JhcGhpY3NcIj48XC9hPjxcL3A+XG48aDQgaWQ9XCJjb250ZW50LWdyYXBoaWNzLWFuZC1kaXNwbGF5XCI+PGEgaHJlZj1cIiNjb250ZW50LWdyYXBoaWNzLWFuZC1kaXNwbGF5XCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5HcmFwaGljcyBhbmQgRGlzcGxheTxcL2g0PlxuPHA+PHN0cm9uZz5UYWJsZTogR3JhcGhpY3MgYW5kIGRpc3BsYXkgZGlmZmVyZW5jZXM8XC9zdHJvbmc+PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkNhdGVnb3J5PFwvdGg+XG48dGg+UGh5c2ljYWwgdGFyZ2V0PFwvdGg+XG48dGg+RW11bGF0b3I8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+RnJhbWVidWZmZXIgZGV2aWNlPFwvdGQ+XG48dGQ+RGlzcGxheSBjb250cm9sbGVyIGluIHRoZSBwcm9jZXNzb3I8XC90ZD5cbjx0ZD5WaXJ0dWFsIFZHQSBjYXJkPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5CYWNrbGlnaHQgY29udHJvbDxcL3RkPlxuPHRkPkxESSAoTENEIERyaXZlciBJQykgY29tbWFuZDxcL3RkPlxuPHRkPkFkZGl0aW9uYWwgdmlydHVhbCBkZXZpY2UgYW5kIGRyaXZlcjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPjxhIG5hbWU9XCJzZW5zb3JcIj48XC9hPjxcL3A+XG48aDQgaWQ9XCJjb250ZW50LXZpcnR1YWwtc2Vuc29yLWVtdWxhdG9yLWNvbnRyb2wtcGFuZWxcIj48YSBocmVmPVwiI2NvbnRlbnQtdmlydHVhbC1zZW5zb3ItZW11bGF0b3ItY29udHJvbC1wYW5lbFwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+VmlydHVhbCBTZW5zb3IgKEVtdWxhdG9yIENvbnRyb2wgUGFuZWwpPFwvaDQ+XG48cD48c3Ryb25nPlRhYmxlOiBWaXJ0dWFsIHNlbnNvciBkaWZmZXJlbmNlczxcL3N0cm9uZz48XC9wPlxuPHRhYmxlPlxuXHQ8dGhlYWQ+XG5cdFx0PHRyPlxuXHRcdFx0PHRoIGNvbHNwYW49XCIyXCI+Q2F0ZWdvcnk8XC90aD5cblx0XHRcdDx0aD5QaHlzaWNhbCB0YXJnZXQ8XC90aD5cblx0XHRcdDx0aD5FbXVsYXRvcjxcL3RoPlxuXHRcdDxcL3RyPlxuXHQ8XC90aGVhZD5cblx0PHRib2R5PlxuXHRcdDx0cj5cblx0XHRcdDx0ZCByb3dzcGFuPVwiOFwiPlNlbnNvcjxcL3RkPlxuXHRcdFx0PHRkPkFjY2VsZXJhdGlvbjxcL3RkPlxuXHRcdFx0PHRkPlJlY2VpdmVzIHRoZSBhY3R1YWwgYWNjZWxlcmF0aW9uIHZhbHVlIG9mIHRoZSBkZXZpY2UuPFwvdGQ+XG5cdFx0XHQ8dGQ+UmVjZWl2ZXMgdGhlIHZpcnR1YWwgYWNjZWxlcmF0aW9uIHZhbHVlIHRocm91Z2ggdGhlIEVtdWxhdG9yIENvbnRyb2wgUGFuZWwuXG5cdFx0XHQ8cD5XaGVuIHRoZSBlbXVsYXRlZCBkZXZpY2UgaXMgc3RhdGlvbmFyeSBhbmQgdmVydGljYWwgaW4gcG9ydHJhaXQgb3JpZW50YXRpb24sIHRoZSBhY2NlbGVyYXRpb24gdmFsdWVzIGFyZSAwLCAxLCBhbmQgMCBnLjxcL3A+XG5cdFx0XHQ8XC90ZD5cblx0XHQ8XC90cj5cblx0XHQ8dHI+XG5cdFx0XHQ8dGQ+R3lybzxcL3RkPlxuXHRcdFx0PHRkPlJlY2VpdmVzIHRoZSBhY3R1YWwgZ3lyb3Njb3BlIHZhbHVlIG9mIHRoZSBkZXZpY2UuPFwvdGQ+XG5cdFx0XHQ8dGQ+UmVjZWl2ZXMgdGhlIHZpcnR1YWwgZ3lyb3Njb3BlIHZhbHVlIHRocm91Z2ggdGhlIEVtdWxhdG9yIENvbnRyb2wgUGFuZWwuPFwvdGQ+XG5cdFx0PFwvdHI+XG5cdFx0PHRyPlxuXHRcdFx0PHRkPkdlb21hZ25ldGljPFwvdGQ+XG5cdFx0XHQ8dGQ+UmVjZWl2ZXMgdGhlIGFjdHVhbCBnZW9tYWduZXRpYyB2YWx1ZSBvZiB0aGUgZGV2aWNlLjxcL3RkPlxuXHRcdFx0PHRkPlJlY2VpdmVzIHRoZSB2aXJ0dWFsIGdlb21hZ25ldGljIHZhbHVlIHRocm91Z2ggdGhlIEVtdWxhdG9yIENvbnRyb2wgUGFuZWwuXG5cdFx0XHQ8cD5XaGVuIHRoZSBlbXVsYXRlZCBkZXZpY2UgaXMgc3RhdGlvbmFyeSBhbmQgdmVydGljYWwgaW4gcG9ydHJhaXQgb3JpZW50YXRpb24sIHRoZSBZIGF4aXMgaXMgYXQgdHJ1ZSBub3J0aCBhbmQgdGhlIG1hZ25ldGljIGZpZWxkIHN0cmVuZ3RoIHZhbHVlcyBhcmUgMSwgMCwgYW5kIC0xMCBcdTAwYjVULjxcL3A+XG5cdFx0XHQ8XC90ZD5cblx0XHQ8XC90cj5cblx0XHQ8dHI+XG5cdFx0XHQ8dGQ+UHJveGltaXR5PFwvdGQ+XG5cdFx0XHQ8dGQ+UmVjZWl2ZXMgdGhlIGFjdHVhbCBwcm94aW1pdHkgdmFsdWUgb2YgdGhlIGRldmljZS48XC90ZD5cblx0XHRcdDx0ZD5SZWNlaXZlcyB0aGUgdmlydHVhbCBwcm94aW1pdHkgdmFsdWUgdGhyb3VnaCB0aGUgRW11bGF0b3IgQ29udHJvbCBQYW5lbC5cblx0XHRcdDxwPllvdSBjYW4gcmVnaXN0ZXIgYW4gZXZlbnQgaGFuZGxlciBmb3IgdGhlIHByb3hpbWl0eSBzZW5zb3IgYW5kIHRlc3QgaXQgd2l0aCB0aGUgRW11bGF0b3IgQ29udHJvbCBQYW5lbC4gSG93ZXZlciwgdGhlIHNjcmVlbiBkb2VzIG5vdCBwb3dlciBvZmYgZHVyaW5nIHRoZSBldmVudCBiZWNhdXNlIHRoZSBlbXVsYXRvciBkb2VzIG5vdCBjb25uZWN0IHRvIHRoZSBwb3dlciBtYW5hZ2VyLjxcL3A+XG5cdFx0XHQ8XC90ZD5cblx0XHQ8XC90cj5cblx0XHQ8dHI+XG5cdFx0XHQ8dGQ+TGlnaHQ8XC90ZD5cblx0XHRcdDx0ZD5SZWNlaXZlcyB0aGUgYWN0dWFsIGFtYmllbnQgbGlnaHQgdmFsdWUgb2YgdGhlIGRldmljZS48XC90ZD5cblx0XHRcdDx0ZD5SZWNlaXZlcyB0aGUgdmlydHVhbCBhbWJpZW50IGxpZ2h0IHZhbHVlIHRocm91Z2ggdGhlIEVtdWxhdG9yIENvbnRyb2wgUGFuZWwuXG5cdFx0XHQ8cD5Zb3UgY2FuIHJlZ2lzdGVyIGFuIGV2ZW50IGhhbmRsZXIgZm9yIHRoZSBsaWdodCBzZW5zb3IgYW5kIHRlc3QgaXQgd2l0aCB0aGUgRW11bGF0b3IgQ29udHJvbCBQYW5lbC4gSG93ZXZlciwgaW4gb3JkZXIgdG8gdGVzdCB0aGUgc2NyZWVuIGJyaWdodG5lc3MgY2hhbmdlLCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIG11c3QgYmUgYXV0b21hdGljIGluIHRoZSBzZXR0aW5nIGFwcGxpY2F0aW9uLjxcL3A+XG5cdFx0XHQ8XC90ZD5cblx0XHQ8XC90cj5cblx0XHQ8dHI+XG5cdFx0XHQ8dGQ+UHJlc3N1cmU8XC90ZD5cblx0XHRcdDx0ZD5SZWNlaXZlcyB0aGUgYWN0dWFsIHByZXNzdXJlIHZhbHVlIG9mIHRoZSBkZXZpY2UuPFwvdGQ+XG5cdFx0XHQ8dGQ+UmVjZWl2ZXMgdGhlIHZpcnR1YWwgYWN0dWFsIHByZXNzdXJlIHZhbHVlIHRocm91Z2ggdGhlIEVtdWxhdG9yIENvbnRyb2wgUGFuZWwuPFwvdGQ+XG5cdFx0PFwvdHI+XG5cdFx0PHRyPlxuXHRcdFx0PHRkPlVsdHJhdmlvbGV0PFwvdGQ+XG5cdFx0XHQ8dGQ+UmVjZWl2ZXMgdGhlIGFjdHVhbCB1bHRyYXZpb2xldCB2YWx1ZSBvZiB0aGUgZGV2aWNlLjxcL3RkPlxuXHRcdFx0PHRkPlJlY2VpdmVzIHRoZSB2aXJ0dWFsIGFjdHVhbCB1bHRyYXZpb2xldCB2YWx1ZSB0aHJvdWdoIHRoZSBFbXVsYXRvciBDb250cm9sIFBhbmVsLjxcL3RkPlxuXHRcdDxcL3RyPlxuXHRcdDx0cj5cblx0XHRcdDx0ZD5IZWFydCBSYXRlIE1vbml0b3I8XC90ZD5cblx0XHRcdDx0ZD5SZWNlaXZlcyB0aGUgYWN0dWFsIGhlYXJ0IHJhdGUgYW5kIHBlYWstdG8tcGVhayB2YWx1ZXMgb2YgdGhlIGRldmljZS48XC90ZD5cblx0XHRcdDx0ZD5SZWNlaXZlcyB0aGUgdmlydHVhbCBhY3R1YWwgaGVhcnQgcmF0ZSBhbmQgcGVhay10by1wZWFrIHZhbHVlcyB0aHJvdWdoIHRoZSBFbXVsYXRvciBDb250cm9sIFBhbmVsLjxcL3RkPlxuXHRcdDxcL3RyPlxuXHRcdDx0cj5cblx0XHRcdDx0ZCByb3dzcGFuPVwiNFwiPkRldmljZTxcL3RkPlxuXHRcdFx0PHRkPkJhdHRlcnk8XC90ZD5cblx0XHRcdDx0ZD5SZWNlaXZlcyB0aGUgYWN0dWFsIGJhdHRlcnkgdmFsdWUgb2YgdGhlIGRldmljZS48XC90ZD5cblx0XHRcdDx0ZD5SZWNlaXZlcyB0aGUgdmlydHVhbCBiYXR0ZXJ5IHZhbHVlIHRocm91Z2ggdGhlIEVtdWxhdG9yIENvbnRyb2wgUGFuZWwuXG5cdFx0XHQ8cD5Zb3UgY2FuIGNoYW5nZSB0aGUgYmF0dGVyeSBsZXZlbCBhbmQgdGhlIGNoYXJnZXIgY29ubmVjdGlvbiBzdGF0dXMuPFwvcD5cblx0XHRcdDxcL3RkPlxuXHRcdDxcL3RyPlxuXHRcdDx0cj5cblx0XHRcdDx0ZD5FYXJqYWNrPFwvdGQ+XG5cdFx0XHQ8dGQ+UmVjZWl2ZXMgdGhlIGFjdHVhbCBlYXJqYWNrIGNvbm5lY3Rpb24gZXZlbnQgb2YgdGhlIGRldmljZS48XC90ZD5cblx0XHRcdDx0ZD5SZWNlaXZlcyB0aGUgZWFyamFjayBjb25uZWN0aW9uIGV2ZW50IHRocm91Z2ggdGhlIEVtdWxhdG9yIENvbnRyb2wgUGFuZWwuXG5cdFx0XHQ8cD5Zb3UgY2FuIHNlbGVjdCBhIDMtd2lyZSBvciA0LXdpcmUgY29ubmVjdGlvbiwgb3Igc2V0IHRoZSBlYXJqYWNrIGFzIGRpc2Nvbm5lY3RlZC48XC9wPlxuXHRcdFx0PFwvdGQ+XG5cdFx0PFwvdHI+XG5cdFx0PHRyPlxuXHRcdFx0PHRkPlVTQjxcL3RkPlxuXHRcdFx0PHRkPlJlY2VpdmVzIHRoZSBhY3R1YWwgVVNCIGNvbm5lY3Rpb24gZXZlbnQgb2YgdGhlIGRldmljZS48XC90ZD5cblx0XHRcdDx0ZD5SZWNlaXZlcyB0aGUgVVNCIGNvbm5lY3Rpb24gZXZlbnQgdGhyb3VnaCB0aGUgRW11bGF0b3IgQ29udHJvbCBQYW5lbC48XC90ZD5cblx0XHQ8XC90cj5cblx0XHQ8dHI+XG5cdFx0XHQ8dGQ+UlNTSTxcL3RkPlxuXHRcdFx0PHRkPlJlY2VpdmVzIHRoZSBhY3R1YWwgUlNTSSB2YWx1ZSBvZiB0aGUgZGV2aWNlLjxcL3RkPlxuXHRcdFx0PHRkPlJlY2VpdmVzIHRoZSB2aXJ0dWFsIFJTU0kgdmFsdWUgdGhyb3VnaCB0aGUgRW11bGF0b3IgQ29udHJvbCBQYW5lbC48XC90ZD5cblx0XHQ8XC90cj5cblx0XHQ8dHI+XG5cdFx0XHQ8dGQgcm93c3Bhbj1cIjRcIj5Mb2NhdGlvbjxcL3RkPlxuXHRcdFx0PHRkPkxvZzxcL3RkPlxuXHRcdFx0PHRkPlN1cHBvcnRlZCBieSBsYnNGVy48XC90ZD5cblx0XHRcdDx0ZD5SZWNlaXZlcyB0aGUgdmlydHVhbCBHUFMgbG9nIGZpbGUgdGhyb3VnaCB0aGUgRW11bGF0b3IgQ29udHJvbCBQYW5lbC5cblx0XHRcdDxwPllvdSBjYW4gdXNlIGEgbG9nIGZpbGUgb2YgdGhlIE5NRUEgZm9ybWF0LjxcL3A+XG5cdFx0XHQ8XC90ZD5cblx0XHQ8XC90cj5cblx0XHQ8dHI+XG5cdFx0XHQ8dGQ+TWFudWFsPFwvdGQ+XG5cdFx0XHQ8dGQ+Tm90IHN1cHBvcnRlZC48XC90ZD5cblx0XHRcdDx0ZD5SZWNlaXZlcyB0aGUgdmlydHVhbCBsb25naXR1ZGUgYW5kIGxhdGl0dWRlIHZhbHVlcyB0aHJvdWdoIHRoZSBFbXVsYXRvciBDb250cm9sIFBhbmVsLjxcL3RkPlxuXHRcdDxcL3RyPlxuXHRcdDx0cj5cblx0XHRcdDx0ZD5NYXA8XC90ZD5cblx0XHRcdDx0ZD5Ob3Qgc3VwcG9ydGVkLjxcL3RkPlxuXHRcdFx0PHRkPlJlY2VpdmVzIHRoZSB2aXJ0dWFsIGxvbmdpdHVkZSwgbGF0aXR1ZGUsIGFsdGl0dWRlLCBhbmQgaG9yaXpvbnRhbCBhY2N1cmFjeSB2YWx1ZXMgdGhyb3VnaCB0aGUgRW11bGF0b3IgQ29udHJvbCBQYW5lbCBtYXAuPFwvdGQ+XG5cdFx0PFwvdHI+XG5cdFx0PHRyPlxuXHRcdFx0PHRkPkF1dG88XC90ZD5cblx0XHRcdDx0ZD5SZWNlaXZlcyB0aGUgYWN0dWFsIEdQUyBjb29yZGluYXRlcyBvZiB0aGUgZGV2aWNlLjxcL3RkPlxuXHRcdFx0PHRkPk5vdCBzdXBwb3J0ZWQuPFwvdGQ+XG5cdFx0PFwvdHI+XG5cdDxcL3Rib2R5PlxuPFwvdGFibGU+XG48cD48YSBuYW1lPVwidGVsZXBob255XCI+PFwvYT48XC9wPlxuPGg0IGlkPVwiY29udGVudC10ZWxlcGhvbnlcIj48YSBocmVmPVwiI2NvbnRlbnQtdGVsZXBob255XCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5UZWxlcGhvbnk8XC9oND5cbjxwPjxzdHJvbmc+VGFibGU6IFRlbGVwaG9ueSBkaWZmZXJlbmNlczxcL3N0cm9uZz48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+Q2F0ZWdvcnk8XC90aD5cbjx0aD5QaHlzaWNhbCB0YXJnZXQ8XC90aD5cbjx0aD5FbXVsYXRvcjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD5DYWxsPFwvdGQ+XG48dGQ+Q2FsbHMgYW5kIHZpZGVvIGNhbGxzIGFyZSBzdXBwb3J0ZWQuPFwvdGQ+XG48dGQ+Q2FsbCB3YWl0aW5nLCBvdXRnb2luZyBjYWxsIGJhcnJpbmcsIGFuZCB2b2ljZSBjYWxscyB3aXRoIHRoZSBFbXVsYXRvciBDb250cm9sIFBhbmVsIGFyZSBzdXBwb3J0ZWQuIDxicj5WaWRlbyBjYWxscywgY2FsbCBmb3J3YXJkaW5nLCBpbmNvbWluZyBjYWxsIGJhcnJpbmcsIGFuZCBlbXVsYXRvci10by1lbXVsYXRvciBjYWxscyBhcmUgbm90IHN1cHBvcnRlZC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPlNNUzxcL3RkPlxuPHRkPlNNUyBtZXNzYWdpbmcgaXMgc3VwcG9ydGVkLjxcL3RkPlxuPHRkPlNNUyBtZXNzYWdpbmcgd2l0aCB0aGUgRW11bGF0b3IgQ29udHJvbCBQYW5lbCBpcyBzdXBwb3J0ZWQuIDxicj5TZW5kaW5nIGVtdWxhdG9yLXRvLWVtdWxhdG9yIFNNUyBtZXNzYWdlcyBpcyBub3Qgc3VwcG9ydGVkLjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPjxhIG5hbWU9XCJwb3dlclwiPjxcL2E+PFwvcD5cbjxoNCBpZD1cImNvbnRlbnQtcG93ZXItbWFuYWdlbWVudFwiPjxhIGhyZWY9XCIjY29udGVudC1wb3dlci1tYW5hZ2VtZW50XCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5Qb3dlciBNYW5hZ2VtZW50PFwvaDQ+XG48cD48c3Ryb25nPlRhYmxlOiBQb3dlciBtYW5hZ2VtZW50IGRpZmZlcmVuY2VzPFwvc3Ryb25nPjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5Nb2RlPFwvdGg+XG48dGg+UGh5c2ljYWwgdGFyZ2V0PFwvdGg+XG48dGg+RW11bGF0b3I8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+RGlzcGxheSBvblwvb2ZmPFwvdGQ+XG48dGQ+RGlzcGxheSBjb250cm9sbGVyIGluIHRoZSBwcm9jZXNzb3I8XC90ZD5cbjx0ZD5JbnRlcm5hbCBlbXVsYXRpb248XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPlBvd2VyIG9mZjxcL3RkPlxuPHRkPlBvd2VyIG1hbmFnZW1lbnQgaW4gdGhlIHByb2Nlc3NvcjxcL3RkPlxuPHRkPkFDUEkgKEFkdmFuY2VkIENvbmZpZ3VyYXRpb24gYW5kIFBvd2VyIEludGVyZmFjZSk8XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48cD48YSBuYW1lPVwiY29kZWNcIj48XC9hPjxcL3A+XG48aDQgaWQ9XCJjb250ZW50LXN1cHBvcnRlZC1tZWRpYS1mb3JtYXRzLWFuZC1jb2RlY3NcIj48YSBocmVmPVwiI2NvbnRlbnQtc3VwcG9ydGVkLW1lZGlhLWZvcm1hdHMtYW5kLWNvZGVjc1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+U3VwcG9ydGVkIE1lZGlhIEZvcm1hdHMgYW5kIENvZGVjczxcL2g0PlxuPHA+PHN0cm9uZz5UYWJsZTogTWVkaWEgZm9ybWF0IGFuZCBjb2RlYyBkaWZmZXJlbmNlczxcL3N0cm9uZz48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+Q2F0ZWdvcnk8XC90aD5cbjx0aD48XC90aD5cbjx0aD5QaHlzaWNhbCB0YXJnZXQ8XC90aD5cbjx0aD5FbXVsYXRvcjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD5EZWNvZGVyPFwvdGQ+XG48dGQ+RkxBQzxcL3RkPlxuPHRkPlN1cHBvcnRlZDxcL3RkPlxuPHRkPk5vdCBzdXBwb3J0ZWQ8XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG4iLCJ0YWJsZV9vZl9jb250ZW50IjoiPHVsIGNsYXNzPVwidGFibGUtb2YtY29udGVudHNcIj5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtcnVubmluZy1hbi1hcHBsaWNhdGlvbi1pbi10aGUtZW11bGF0b3JcIj5SdW5uaW5nIGFuIEFwcGxpY2F0aW9uIGluIHRoZSBFbXVsYXRvcjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWluY3JlYXNpbmctdGhlLWFwcGxpY2F0aW9uLWV4ZWN1dGlvbi1zcGVlZFwiPkluY3JlYXNpbmcgdGhlIEFwcGxpY2F0aW9uIEV4ZWN1dGlvbiBTcGVlZDxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXdvcmtpbmctd2l0aC10aGUtaHctdmlydHVhbGl6YXRpb24tc2V0dGluZ3MtYW5kLWhlbHBcIj5Xb3JraW5nIHdpdGggdGhlIEhXIFZpcnR1YWxpemF0aW9uLCBTZXR0aW5ncywgYW5kIEhlbHA8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1zdXBwb3J0ZWQtZmVhdHVyZXNcIj5TdXBwb3J0ZWQgRmVhdHVyZXM8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1vcGVuZ2wtZXMtYWNjZWxlcmF0aW9uLXN1cHBvcnRcIj5PcGVuR0xcdTAwYWUgRVMgQWNjZWxlcmF0aW9uIFN1cHBvcnQ8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1kaWZmZXJlbmNlcy1iZXR3ZWVuLXRoZS1lbXVsYXRvci1hbmQtdGFyZ2V0XCI+RGlmZmVyZW5jZXMgQmV0d2VlbiB0aGUgRW11bGF0b3IgYW5kIFRhcmdldDxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWlucHV0LXN5c3RlbVwiPklucHV0IFN5c3RlbTxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWdyYXBoaWNzLWFuZC1kaXNwbGF5XCI+R3JhcGhpY3MgYW5kIERpc3BsYXk8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC12aXJ0dWFsLXNlbnNvci1lbXVsYXRvci1jb250cm9sLXBhbmVsXCI+VmlydHVhbCBTZW5zb3IgKEVtdWxhdG9yIENvbnRyb2wgUGFuZWwpPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtdGVsZXBob255XCI+VGVsZXBob255PFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtcG93ZXItbWFuYWdlbWVudFwiPlBvd2VyIE1hbmFnZW1lbnQ8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1zdXBwb3J0ZWQtbWVkaWEtZm9ybWF0cy1hbmQtY29kZWNzXCI+U3VwcG9ydGVkIE1lZGlhIEZvcm1hdHMgYW5kIENvZGVjczxcL2E+PFwvbGk+XG48XC91bD5cbiIsInRpdGxlIjoiUnVubmluZyBBcHBsaWNhdGlvbnMgb24gdGhlIEVtdWxhdG9yIiwicmF3IjpudWxsfSx7ImNsYXNzIjoiQXBwXFxTZXJ2aWNlc1xcRG9jdW1lbnRhdGlvblxcRGF0YVxcUmVuZGVyZWRNYXJrZG93biIsInMiOiJ3cmJsIn1dfSx7InMiOiJhcnIifV19LCJtZW1vIjp7ImlkIjoiUVpueFphTWc5RnhBdmhDRkJjOTQiLCJuYW1lIjoiX19tb3VudFBhcmFtc0NvbnRhaW5lciIsInBhdGgiOiJkb2NzXC9zZGstdG9vbHNcL2RvdG5ldFwvdnNjb2RlXC92c2NvZGUtZXh0XC90b29sc1wvZW11bGF0b3IiLCJtZXRob2QiOiJHRVQiLCJyZWxlYXNlIjoiYS1hLWEifSwiY2hlY2tzdW0iOiJmZWEzNWE0NjA1ODAxMzA0YzQ4YjM3NDViMjA3YjBjZmQxYzk2Nzg5NGY3MmQyODg5MjMxZWE4Mzk5N2U0ZGY5In0=')" >

For the best experience,
Please visit us from a computer

Copyright © 2026 SAMSUNG. All rights reserved.

Customize your cookie preferences

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

Necessary

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

Always on

Analytics

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

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