Generated banner for High Contrast Skeuomorphic Clean
Generated logo for High Contrast Skeuomorphic Clean

High Contrast Skeuomorphic Clean

Meng ToCommunityCreated by Meng To

  • Skill
  • Content generator
  • Design and creative
  • MIT
  • Medium risk

From the author

Create a high-contrast clean skeuomorphic design system with molded dark surfaces, crisp light separation, tactile inset depth, and restrained signal accents.
— the description by Meng To

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill provides a comprehensive framework for building a modern skeuomorphic design system that avoids the pitfalls of flat minimalism and dated, glossy aesthetics. It focuses on creating a premium, industrial feel through molded dark surfaces, crisp light separation, and controlled tactile depth. By balancing high-contrast color palettes with subtle bevels, inset shadows, and restrained signal accents, the guide helps designers construct interfaces that feel physically assembled and precise.

What it does

  • Defines a visual language for molded, dimensional dark-mode interfaces.
  • Provides specific techniques for achieving tactile depth using inset highlights and inner shadows.
  • Establishes rules for high-contrast typography and surface hierarchy.
  • Offers guidance on using restrained accent colors for status and focal points.
  • Outlines structural framing patterns for cards, modules, and page shells.
  • Suggests motion design principles that reinforce the material, industrial aesthetic.

When to use it

  • When you need to design a premium, industrial-grade interface that feels tangible.
  • When you want to move away from flat, minimal design without resorting to retro skeuomorphism.
  • When building complex dashboards or system tools that require clear visual hierarchy.
  • When you need a high-contrast UI that remains readable and professional.

Advantages

  • Creates a distinct, high-end visual identity that stands out from flat design trends.
  • Enhances user perception of quality through tactile, manufactured-looking components.
  • Maintains high readability and accessibility through strict contrast management.
  • Prevents visual clutter by enforcing a restrained, system-like approach to depth and color.

Usage examples

“Create a design system specification for a high-contrast, tactile dashboard.”
The agent generates a structured guide detailing the use of dark charcoal shells, inset shadow stacks for cards, and a single accent color for status indicators.
“How should I style my buttons to fit a clean, industrial skeuomorphic look?”
The agent provides instructions on using layered fills, subtle bevels, and measured hover brightness to ensure buttons feel touchable and precise.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/mengto/high-contrast-skeuomorphic-clean/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip high-contrast-skeuomorphic-clean.zip -d .agents/skills

Documentation by Meng To

High Contrast Skeuomorphic Clean Skill

Use When

  • Create a high-contrast clean skeuomorphic design system with molded dark surfaces, crisp light separation, tactile inset depth, and restrained signal accents.

Workflow

Scope

  • Apply this as a full design-system direction across page shell, hero, cards, controls, supporting modules, and micro-visualizations.

  • Use it when the interface should feel tactile, premium, and industrial-clean, with real surface depth and contrast rather than flat minimal cards.

  • This is not playful neumorphism and not glossy consumer skeuomorphism. The result should stay sharp, modern, and system-like.

Visual target

  • Build the experience around a strong contrast relationship: a light or neutral outer page framing a deep black or charcoal primary application shell.

  • Use dark premium surfaces with subtle vertical or radial gradients so panels feel molded and dimensional instead of flat.

  • Add true skeuomorphic depth through inset highlights, soft inner shadows, reflective edge cues, and nested object-like modules, but keep everything clean and controlled.

  • Let one restrained signal accent color derived from the design or brand drive status lights, active markers, tiny progress details, and focal emphasis.

  • Pair clean sans-serif typography with occasional mono labels or utility text so the system feels precise, not ornamental.

Implementation guidance

  • Prefer one dominant rounded or softly chamfered master container that holds the whole interface inside a darker, premium shell.

  • Build cards and modules with one-pixel wrappers, top-edge highlights, dark-to-darker fills, inset shadow stacks, and soft outer shadow falloff to create tactile hierarchy.

  • Keep contrast high: white or near-white text on black shells, muted gray support copy, and clear separation between interactive and passive surfaces.

  • Use skeuomorphic objects selectively inside the system, such as browser-like windows, search fields, progress bars, orbit widgets, document tiles, or instrument modules that feel physically assembled.

  • Buttons, inputs, and chips should look touchable: layered fill, subtle bevel or inset edge, clean rounded geometry, and measured hover brightness rather than loud glow.

  • Add fine structural framing with quiet border lines, corner markers, or interior guide rails so the tactile surfaces still sit inside a disciplined layout.

  • Motion should support the material feel: masked reveals, gentle object lift, slow orbiting details, subtle shimmer on highlights, and calm particle drift are appropriate.

  • Large dark industrial shell placed on a lighter background with generous radius and premium shadow weight.

  • Rounded cards wrapped in thin white-to-transparent gradient borders with dark inner fills and soft inset lighting.

  • Micro visual modules such as orbit diagrams, search plates, document chrome, or status widgets built as tactile objects rather than flat illustrations.

  • Accent signal dots, progress slivers, or active labels using the chosen brand accent sparingly against a mostly monochrome system.

  • Split compositions where one side carries bold editorial copy and the other side stacks molded product or system modules.

  • Canvas or particle background texture inside the main shell kept faint so it adds atmosphere without weakening the clean surface hierarchy.

Tuning knobs

  • Contrast level: keep the shell dark enough and the text bright enough that the system reads immediately, even when gradients and shadows are subtle.

  • Skeuomorphic depth: increase or reduce bevel, inset shadow, and highlight intensity depending on how tactile versus minimal the system should feel.

  • Accent intensity: let the brand signal color punctuate the composition, but avoid turning the interface into a neon palette.

  • Surface softness: tune radii and shadow blur so components feel premium and manufactured, not puffy or toy-like.

  • Structural framing: add or reduce guide lines, separators, and outer rails depending on how technical the presentation should become.

Avoid

  • Soft washed-out neumorphism with weak contrast and mushy edges.

  • Overly glossy retro skeuomorphism packed with fake materials, leather, or chrome gimmicks.

  • Flat monochrome dark UI that ignores the tactile layered-surface character.

  • Too many accent colors or bright glows that break the clean industrial mood.

  • Overcrowding every module with depth effects until the hierarchy becomes noisy.

Files

demo/index.html

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="neuform-sandboxed-demo" content="1">
  <meta http-equiv="Content-Security-Policy" content="default-src 'none'; connect-src 'self'; frame-src 'self'; script-src 'unsafe-inline'; style-src 'unsafe-inline'; base-uri 'none'; form-action 'none'; object-src 'none'">
  <title>Sandboxed Neuform demo</title>
  <style>
    html, body, iframe { width: 100%; height: 100%; margin: 0; border: 0; }
    body { overflow: hidden; background: #0b0b0b; }
    iframe { display: block; background: white; }
    .error { box-sizing: border-box; min-height: 100%; padding: 32px; color: #fff; font: 16px/1.5 system-ui, sans-serif; }
  </style>
</head>
<body>
  <iframe id="neuform-demo" title="Sandboxed Neuform design demo" sandbox="allow-scripts" referrerpolicy="no-referrer"></iframe>
  <script>
    const encodedHtml = "PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtU2VjdXJpdHktUG9saWN5IiBjb250ZW50PSJkZWZhdWx0LXNyYyAnbm9uZSc7IGJhc2UtdXJpICdub25lJzsgY29ubmVjdC1zcmMgJ25vbmUnOyBmb250LXNyYyBkYXRhOiBodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tOyBmb3JtLWFjdGlvbiAnbm9uZSc7IGZyYW1lLXNyYyAnbm9uZSc7IGltZy1zcmMgYmxvYjo7IG1lZGlhLXNyYyBibG9iOjsgbmF2aWdhdGUtdG8gJ25vbmUnOyBvYmplY3Qtc3JjICdub25lJzsgc2NyaXB0LXNyYyAndW5zYWZlLWlubGluZScgX19ORVVGT1JNX1JVTlRJTUVfU09VUkNFU19fOyBzdHlsZS1zcmMgJ3Vuc2FmZS1pbmxpbmUnIGh0dHBzOi8vYXBpLmZvbnRzaGFyZS5jb20gaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbTsgd29ya2VyLXNyYyAnbm9uZSciPgo8c2NyaXB0IGRhdGEtbmV1Zm9ybS1hc3NldC1ib290c3RyYXA+CigoKSA9PiB7CiAgbGV0IHJlY2VpdmVkID0gZmFsc2U7CiAgY29uc3Qgb2JqZWN0VXJscyA9IFtdOwogIGNvbnN0IHJlcGxhY2VBbGwgPSAodmFsdWUsIHJlcGxhY2VtZW50cykgPT4gewogICAgbGV0IG5leHQgPSBTdHJpbmcodmFsdWUgfHwgIiIpOwogICAgZm9yIChjb25zdCBbZmlsZSwgb2JqZWN0VXJsXSBvZiByZXBsYWNlbWVudHMpIG5leHQgPSBuZXh0LnNwbGl0KGZpbGUpLmpvaW4ob2JqZWN0VXJsKTsKICAgIHJldHVybiBuZXh0OwogIH07CiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCAoZXZlbnQpID0+IHsKICAgIGlmIChyZWNlaXZlZCB8fCBldmVudC5zb3VyY2UgIT09IHBhcmVudCB8fCBldmVudC5kYXRhPy50eXBlICE9PSAibmV1Zm9ybS1hc3NldHMtdjEiKSByZXR1cm47CiAgICByZWNlaXZlZCA9IHRydWU7CiAgICBjb25zdCByZXBsYWNlbWVudHMgPSBbXTsKICAgIGZvciAoY29uc3QgYXNzZXQgb2YgZXZlbnQuZGF0YS5hc3NldHMgfHwgW10pIHsKICAgICAgaWYgKCFhc3NldCB8fCB0eXBlb2YgYXNzZXQuZmlsZSAhPT0gInN0cmluZyIgfHwgdHlwZW9mIGFzc2V0LmJhc2U2NCAhPT0gInN0cmluZyIpIGNvbnRpbnVlOwogICAgICBjb25zdCBiaW5hcnkgPSBhdG9iKGFzc2V0LmJhc2U2NCk7CiAgICAgIGNvbnN0IGJ5dGVzID0gVWludDhBcnJheS5mcm9tKGJpbmFyeSwgKGNoYXJhY3RlcikgPT4gY2hhcmFjdGVyLmNoYXJDb2RlQXQoMCkpOwogICAgICBjb25zdCBvYmplY3RVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFtieXRlc10sIHsgdHlwZTogYXNzZXQuY29udGVudFR5cGUgfHwgImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIgfSkpOwogICAgICBvYmplY3RVcmxzLnB1c2gob2JqZWN0VXJsKTsKICAgICAgcmVwbGFjZW1lbnRzLnB1c2goW2Fzc2V0LmZpbGUsIG9iamVjdFVybF0pOwogICAgfQogICAgZm9yIChjb25zdCBlbGVtZW50IG9mIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIioiKSkgewogICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgWyJzcmMiLCAicG9zdGVyIiwgInNyY3NldCIsICJzdHlsZSJdKSB7CiAgICAgICAgY29uc3QgdmFsdWUgPSBlbGVtZW50LmdldEF0dHJpYnV0ZShuYW1lKTsKICAgICAgICBpZiAodmFsdWUpIGVsZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUsIHJlcGxhY2VBbGwodmFsdWUsIHJlcGxhY2VtZW50cykpOwogICAgICB9CiAgICB9CiAgICBmb3IgKGNvbnN0IHN0eWxlIG9mIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInN0eWxlIikpIHsKICAgICAgc3R5bGUudGV4dENvbnRlbnQgPSByZXBsYWNlQWxsKHN0eWxlLnRleHRDb250ZW50LCByZXBsYWNlbWVudHMpOwogICAgfQogIH0pOwogIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlaGlkZSIsICgpID0+IHsKICAgIGZvciAoY29uc3Qgb2JqZWN0VXJsIG9mIG9iamVjdFVybHMpIFVSTC5yZXZva2VPYmplY3RVUkwob2JqZWN0VXJsKTsKICB9LCB7IG9uY2U6IHRydWUgfSk7Cn0pKCk7Cjwvc2NyaXB0PgoKPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgogICAgPHRpdGxlPkNvcmUgSW50ZXJmYWNlPC90aXRsZT4KICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9hc3NldHMvcnVudGltZS9ydW50aW1lLWNjYzg4OTRiMzQxOC1ydW50aW1lLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9hc3NldHMvcnVudGltZS9ydW50aW1lLTE2M2ViZDA4N2NmYy1pY29uaWZ5LWljb24tbWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9hc3NldHMvcnVudGltZS9ydW50aW1lLTAyNzA1MWVmZmE0Ny1nc2FwLW1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20iPgogICAgPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tIiBjcm9zc29yaWdpbj4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9SW50ZXI6d2dodEAyMDA7MzAwOzQwMDs1MDAmZGlzcGxheT1zd2FwIiByZWw9InN0eWxlc2hlZXQiPgo8L2hlYWQ+Cjxib2R5IGNsYXNzPSJiZy1bI0U0RTRFN10gdGV4dC1uZXV0cmFsLTMwMCBhbnRpYWxpYXNlZCBtaW4taC1zY3JlZW4gb3ZlcmZsb3cteC1oaWRkZW4gc2VsZWN0aW9uOmJnLWN5YW4tNTAwLzMwIHNlbGVjdGlvbjp0ZXh0LWN5YW4tMjAwIiBzdHlsZT0iZm9udC1mYW1pbHk6ICdJbnRlcicsIHNhbnMtc2VyaWY7Ij4KCiAgICA8IS0tIE91dGVyIFBhZ2UgTGF5b3V0IC0tPgogICAgPGRpdiBjbGFzcz0idy1mdWxsIG1pbi1oLXNjcmVlbiBwLTAgbWQ6cC04IGxnOnAtMTIgZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1zdGFydCI+CiAgICAgICAgCiAgICAgICAgPCEtLSBBcHAgTWFzdGVyIFNoZWxsIC0tPgogICAgICAgIDxkaXYgaWQ9InNoZWxsLWNvbnRhaW5lciIgY2xhc3M9InJlbGF0aXZlIHctZnVsbCBtYXgtdy02eGwgZmxleCBmbGV4LWNvbCBwLTUgbWQ6cC0xMCByb3VuZGVkLW5vbmUgbWQ6cm91bmRlZC1bMzJweF0gYmctZ3JhZGllbnQtdG8tYiBmcm9tLVsjMTgxODFDXSB0by1bIzBBMEEwQ10gcmluZy0xIHJpbmctWyMyQTJBMzBdIHNoYWRvdy1baW5zZXRfMF8xcHhfMF9yZ2JhKDI1NSwyNTUsMjU1LDAuMDYpLDBfMF8wXzFweF9yZ2JhKDAsMCwwLDAuOCksMF80MHB4XzgwcHhfcmdiYSgwLDAsMCwwLjYpLDBfMjBweF80MHB4X3JnYmEoMCwwLDAsMC40KV0gb3ZlcmZsb3ctaGlkZGVuIG1pbi1oLXNjcmVlbiBtZDptaW4taC1bOTB2aF0iPgogICAgICAgICAgICAKICAgICAgICAgICAgPCEtLSBEaXRoZXIgQmFja2dyb3VuZCBTaGFkZXIgQ2FudmFzIChNb3ZlZCBpbnNpZGUgc2hlbGwgYW5kIHJlbmRlcmVkIGZhaW50KSAtLT4KICAgICAgICAgICAgPGNhbnZhcyBpZD0iZGl0aGVyLWJnIiBjbGFzcz0iYWJzb2x1dGUgaW5zZXQtMCB3LWZ1bGwgaC1mdWxsIHotMCBwb2ludGVyLWV2ZW50cy1ub25lIG9wYWNpdHktWzAuMTJdIG1peC1ibGVuZC1zY3JlZW4iPjwvY2FudmFzPgoKICAgICAgICAgICAgPCEtLSBJbm5lciBTZWN1cmUgQ29udGVudCAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVsYXRpdmUgei0xMCB3LWZ1bGwgZmxleCBmbGV4LWNvbCBoLWZ1bGwiPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8IS0tIFRvcCBOYXZpZ2F0aW9uIC0tPgogICAgICAgICAgICAgICAgPGhlYWRlciBjbGFzcz0iZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtc3RhcnQgbWQ6aXRlbXMtY2VudGVyIGdhcC02IHctZnVsbCBtYi0xNiI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTQiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3LTkgaC05IHJvdW5kZWQtbGcgYmctZ3JhZGllbnQtdG8tYiBmcm9tLVsjMkEyQTMwXSB0by1bIzFDMUMyMF0gcmluZy0xIHJpbmctWyMzQTNBNDBdIHNoYWRvdy1baW5zZXRfMF8xcHhfMF9yZ2JhKDI1NSwyNTUsMjU1LDAuMSksMF8ycHhfNHB4X3JnYmEoMCwwLDAsMC40KV0gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGljb25pZnktaWNvbiBpY29uPSJzb2xhcjp3aWRnZXQtbGluZWFyIiBjbGFzcz0idGV4dC13aGl0ZSB0ZXh0LXhsIGRyb3Atc2hhZG93LXNtIj48L2ljb25pZnktaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQteHMgZm9udC1ub3JtYWwgdHJhY2tpbmctd2lkZSB1cHBlcmNhc2UgdGV4dC1uZXV0cmFsLTEwMCI+Q29yZSBJbnRlcmZhY2U8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPG5hdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgcC0xLjUgYmctWyMwQTBBMENdIHJpbmctMSByaW5nLVsjMkEyQTMwXSBzaGFkb3ctW2luc2V0XzBfMnB4XzZweF9yZ2JhKDAsMCwwLDAuNiksMF8xcHhfMF9yZ2JhKDI1NSwyNTUsMjU1LDAuMDQpXSByb3VuZGVkLWZ1bGwgb3ZlcmZsb3cteC1hdXRvIG1heC13LWZ1bGwiIHN0eWxlPSJzY3JvbGxiYXItd2lkdGg6IG5vbmU7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icHgtNSBweS0xLjUgcm91bmRlZC1mdWxsIHRleHQteHMgZm9udC1saWdodCB0cmFja2luZy13aWRlIHRleHQtd2hpdGUgYmctZ3JhZGllbnQtdG8tYiBmcm9tLVsjMkEyQTMwXSB0by1bIzFDMUMyMF0gcmluZy0xIHJpbmctWyMwQTBBMENdIHNoYWRvdy1baW5zZXRfMF8xcHhfMF9yZ2JhKDI1NSwyNTUsMjU1LDAuMSksMF8ycHhfNHB4X3JnYmEoMCwwLDAsMC40KV0gZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdHJhbnNpdGlvbi1hbGwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGljb25pZnktaWNvbiBpY29uPSJzb2xhcjp1c2Vycy1ncm91cC10d28tcm91bmRlZC1saW5lYXIiIGNsYXNzPSJ0ZXh0LWN5YW4tNDAwIj48L2ljb25pZnktaWNvbj4gQWxsIFRhc2tzCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJweC01IHB5LTEuNSByb3VuZGVkLWZ1bGwgdGV4dC14cyBmb250LWxpZ2h0IHRyYWNraW5nLXdpZGUgdGV4dC1uZXV0cmFsLTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFsZXgKICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InB4LTUgcHktMS41IHJvdW5kZWQtZnVsbCB0ZXh0LXhzIGZvbnQtbGlnaHQgdHJhY2tpbmctd2lkZSB0ZXh0LW5ldXRyYWwtNDAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnMgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSm9yZGFuCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJweC01IHB5LTEuNSByb3VuZGVkLWZ1bGwgdGV4dC14cyBmb250LWxpZ2h0IHRyYWNraW5nLXdpZGUgdGV4dC1uZXV0cmFsLTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRheWxvcgogICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icHgtNSBweS0xLjUgcm91bmRlZC1mdWxsIHRleHQteHMgZm9udC1saWdodCB0cmFja2luZy13aWRlIHRleHQtbmV1dHJhbC00MDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9ycyBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNleQogICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8L25hdj4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTUgaGlkZGVuIG1kOmZsZXgiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IC1zcGFjZS14LTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz0idy04IGgtOCByb3VuZGVkLWZ1bGwgcmluZy0yIHJpbmctWyMwQTBBMENdIHNoYWRvdy1bMF8ycHhfNHB4X3JnYmEoMCwwLDAsMC41KV0gb2JqZWN0LWNvdmVyIGdyYXlzY2FsZSBvcGFjaXR5LTgwIiBzcmM9ImFzc2V0cy9wYWdlLTAxLTc3NDE1YTJlLWRjYmMtNDc0OC1hMjlkLWZjZWQ0ODIxODgxYS04MDB3LmpwZyIgYWx0PSJBbGV4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9InctOCBoLTggcm91bmRlZC1mdWxsIHJpbmctMiByaW5nLVsjMEEwQTBDXSBzaGFkb3ctWzBfMnB4XzRweF9yZ2JhKDAsMCwwLDAuNSldIG9iamVjdC1jb3ZlciBncmF5c2NhbGUgb3BhY2l0eS04MCIgc3JjPSJhc3NldHMvcGFnZS0wMi1lY2E3MDdjYy1hNWI3LTQzOWEtYjRmZC0yNDdmNjEwNmMyZTEtODAwdy5qcGciIGFsdD0iSm9yZGFuIj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImgtNCB3LXB4IGJnLWdyYWRpZW50LXRvLWIgZnJvbS10cmFuc3BhcmVudCB2aWEtWyMyQTJBMzBdIHRvLXRyYW5zcGFyZW50IG14LTEiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ0ZXh0LW5ldXRyYWwtNTAwIGhvdmVyOnRleHQtY3lhbi00MDAgdHJhbnNpdGlvbi1jb2xvcnMgZHJvcC1zaGFkb3ctc20iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGljb25pZnktaWNvbiBpY29uPSJzb2xhcjpiZWxsLWxpbmVhciIgY2xhc3M9InRleHQteGwiPjwvaWNvbmlmeS1pY29uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGV4dC1uZXV0cmFsLTUwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzIGRyb3Atc2hhZG93LXNtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpY29uaWZ5LWljb24gaWNvbj0ic29sYXI6c2V0dGluZ3MtbGluZWFyIiBjbGFzcz0idGV4dC14bCI+PC9pY29uaWZ5LWljb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9oZWFkZXI+CgogICAgICAgICAgICAgICAgPCEtLSBHcmVldGluZyAtLT4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1iLTE0IHctZnVsbCI+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQteHMgZm9udC1tb25vIHRyYWNraW5nLXdpZGVzdCB1cHBlcmNhc2UgbWItNCB0ZXh0LWN5YW4tNDAwIGRyb3Atc2hhZG93LVswXzBfOHB4X3JnYmEoMzQsMjExLDIzOCwwLjQpXSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ3LTEuNSBoLTEuNSByb3VuZGVkLWZ1bGwgYmctY3lhbi00MDAgc2hhZG93LVswXzBfNnB4X3JnYmEoMzQsMjExLDIzOCwwLjgpXSBhbmltYXRlLXB1bHNlIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWwtVGltZSDigKIgRW5jcnlwdGVkCiAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgIDxoMSBpZD0iZ3JlZXRpbmctdGl0bGUiIGNsYXNzPSJ0ZXh0LTN4bCBtZDp0ZXh0LTR4bCBsZzp0ZXh0LTV4bCBmb250LWxpZ2h0IHRyYWNraW5nLXRpZ2h0IG1iLTQgdGV4dC13aGl0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gR1NBUCBpbmplY3RlZCAtLT4KICAgICAgICAgICAgICAgICAgICA8L2gxPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXNtIG1heC13LW1kIG10LTQgbGVhZGluZy1yZWxheGVkIHRleHQtbmV1dHJhbC00MDAgZm9udC1saWdodCI+VW5pZmllZCBkYXNoYm9hcmQgZGlzcGxheWluZyB5b3VyIGRhaWx5IHRpbWVsaW5lLCBhc3NpZ25lZCB0YXNrcywgYW5kIGFjdGl2ZSBtZWRpYSBicm9hZGNhc3RzIGFjcm9zcyBzeW5jaHJvbml6ZWQgZGV2aWNlcy48L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8IS0tIE1haW4gTGF5b3V0IC0tPgogICAgICAgICAgICAgICAgPG1haW4gY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTEgbGc6Z3JpZC1jb2xzLTEyIGdhcC04IHctZnVsbCBmbGV4LTEiPgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwhLS0gQ29sdW1uIDE6IFRpbWVsaW5lICYgQ29tbXMgLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGc6Y29sLXNwYW4tNSBmbGV4IGZsZXgtY29sIGdhcC04Ij4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJmbGV4IGZsZXgtY29sIGdhcC01Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBweC0xIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRleHQteHMgZm9udC1ub3JtYWwgdHJhY2tpbmctd2lkZSB1cHBlcmNhc2UgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC13aGl0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpY29uaWZ5LWljb24gaWNvbj0ic29sYXI6Y2xvY2stY2lyY2xlLWxpbmVhciIgY2xhc3M9InRleHQtbmV1dHJhbC01MDAgdGV4dC1zbSI+PC9pY29uaWZ5LWljb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVsaW5lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LW5ldXRyYWwtNTAwIGZvbnQtbW9ubyB0cmFja2luZy13aWRlIj5Ub2RheTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnLWdyYWRpZW50LXRvLWIgZnJvbS1bIzFDMUMyMF0gdG8tWyMxMjEyMTVdIHJpbmctMSByaW5nLVsjMkEyQTMwXSBzaGFkb3ctW2luc2V0XzBfMXB4XzBfcmdiYSgyNTUsMjU1LDI1NSwwLjA2KSwwXzEycHhfMjRweF9yZ2JhKDAsMCwwLDAuNSldIHJvdW5kZWQtMnhsIHAtNiBmbGV4IGZsZXgtY29sIGdhcC02IHJlbGF0aXZlIHotMTAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVGltZWxpbmUgRXZlbnQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBnYXAtNCByZWxhdGl2ZSBncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctMTAgdGV4dC14cyBmb250LW1vbm8gdGV4dC1uZXV0cmFsLTUwMCBwdC0wLjUiPjA4OjMwPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlbGF0aXZlIHBiLTYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWJzb2x1dGUgdG9wLTEuNSBsZWZ0LVstMC41cHhdIHctMiBoLTIgcm91bmRlZC1mdWxsIGJnLVsjMEEwQTBDXSByaW5nLTEgcmluZy1bIzNBM0E0MF0gc2hhZG93LVtpbnNldF8wXzFweF8ycHhfcmdiYSgwLDAsMCwwLjgpXSB6LTEwIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFic29sdXRlIHRvcC0zIGxlZnQtWzNweF0gdy1weCBoLWZ1bGwgYmctWyMyQTJBMzBdIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgtMSBvcGFjaXR5LTUwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtc20gZm9udC1saWdodCBsaW5lLXRocm91Z2ggdGV4dC1uZXV0cmFsLTUwMCI+Q29tbXV0ZSBSb3V0ZTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC14cyB0ZXh0LW5ldXRyYWwtNTAwIG10LTEgZm9udC1saWdodCI+Sm9yZGFuIOKAoiBUcmFuc2l0IDQ8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVGltZWxpbmUgRXZlbnQgKEFjdGl2ZSkgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBnYXAtNCByZWxhdGl2ZSBncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctMTAgdGV4dC14cyBmb250LW1vbm8gdGV4dC13aGl0ZSBwdC0wLjUiPjExOjAwPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlbGF0aXZlIHBiLTYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWJzb2x1dGUgdG9wLTEuNSBsZWZ0LVstMC41cHhdIHctMiBoLTIgcm91bmRlZC1mdWxsIGJnLWN5YW4tNDAwIHJpbmctMSByaW5nLWN5YW4tMjAwIHNoYWRvdy1bMF8wXzhweF9yZ2JhKDM0LDIxMSwyMzgsMC42KSxpbnNldF8wXzFweF8xcHhfcmdiYSgyNTUsMjU1LDI1NSwwLjgpXSB6LTEwIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFic29sdXRlIHRvcC0zIGxlZnQtWzNweF0gdy1weCBoLWZ1bGwgYmctWyMyQTJBMzBdIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgtMSBiZy1ncmFkaWVudC10by1iIGZyb20tWyMxRTFFMjRdIHRvLVsjMTYxNjFBXSByaW5nLTEgcmluZy1bIzJBMkEzMF0gc2hhZG93LVtpbnNldF8wXzFweF8wX3JnYmEoMjU1LDI1NSwyNTUsMC4wNSksMF82cHhfMTJweF9yZ2JhKDAsMCwwLDAuNCldIHJvdW5kZWQteGwgcC0zLjUgLW10LTIuNSByZWxhdGl2ZSB6LTEwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtc20gZm9udC1ub3JtYWwgdGV4dC13aGl0ZSBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2R1Y3QgU3luYwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LXhzIGJnLVsjMEEwQTBDXSByaW5nLTEgcmluZy1bIzJBMkEzMF0gc2hhZG93LVtpbnNldF8wXzFweF8ycHhfcmdiYSgwLDAsMCwwLjUpXSBweC0yIHB5LTAuNSByb3VuZGVkIGZvbnQtbW9ubyB0ZXh0LWN5YW4tNDAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlc3QiPlN5bmM8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQteHMgbXQtMiBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSB0ZXh0LW5ldXRyYWwtNDAwIGZvbnQtbGlnaHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSDigKIgQWxleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFRpbWVsaW5lIEV2ZW50IC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggZ2FwLTQgcmVsYXRpdmUgZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3LTEwIHRleHQteHMgZm9udC1tb25vIHRleHQtbmV1dHJhbC01MDAgcHQtMC41Ij4xNTozMDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWxhdGl2ZSBwYi02Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFic29sdXRlIHRvcC0xLjUgbGVmdC1bLTAuNXB4XSB3LTIgaC0yIHJvdW5kZWQtZnVsbCBiZy1bIzBBMEEwQ10gcmluZy0xIHJpbmctWyMzQTNBNDBdIHNoYWRvdy1baW5zZXRfMF8xcHhfMnB4X3JnYmEoMCwwLDAsMC44KV0gei0xMCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhYnNvbHV0ZSB0b3AtMyBsZWZ0LVszcHhdIHctcHggaC1mdWxsIGJnLVsjMkEyQTMwXSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4LTEgcmluZy0xIHJpbmctdHJhbnNwYXJlbnQgaG92ZXI6cmluZy1bIzJBMkEzMF0gaG92ZXI6YmctWyMxRTFFMjJdIGhvdmVyOnNoYWRvdy1baW5zZXRfMF8xcHhfMF9yZ2JhKDI1NSwyNTUsMjU1LDAuMDIpLDBfNHB4XzhweF9yZ2JhKDAsMCwwLDAuMildIHRyYW5zaXRpb24tYWxsIHJvdW5kZWQteGwgcC0zLjUgLW10LTIuNSBjdXJzb3ItcG9pbnRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXNtIGZvbnQtbGlnaHQgdGV4dC1uZXV0cmFsLTMwMCBncm91cC1ob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzIj5EZW50YWwgQ2hlY2t1cDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC14cyBtdC0xIHRleHQtbmV1dHJhbC01MDAgZm9udC1saWdodCI+Q2xpbmljIOKAoiBUYXlsb3I8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVGltZWxpbmUgRXZlbnQgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBnYXAtNCByZWxhdGl2ZSBncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctMTAgdGV4dC14cyBmb250LW1vbm8gdGV4dC1uZXV0cmFsLTUwMCBwdC0wLjUiPjE4OjAwPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlbGF0aXZlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFic29sdXRlIHRvcC0xLjUgbGVmdC1bLTAuNXB4XSB3LTIgaC0yIHJvdW5kZWQtZnVsbCBiZy1bIzBBMEEwQ10gcmluZy0xIHJpbmctWyMzQTNBNDBdIHNoYWRvdy1baW5zZXRfMF8xcHhfMnB4X3JnYmEoMCwwLDAsMC44KV0gei0xMCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4LTEgcmluZy0xIHJpbmctdHJhbnNwYXJlbnQgaG92ZXI6cmluZy1bIzJBMkEzMF0gaG92ZXI6YmctWyMxRTFFMjJdIGhvdmVyOnNoYWRvdy1baW5zZXRfMF8xcHhfMF9yZ2JhKDI1NSwyNTUsMjU1LDAuMDIpLDBfNHB4XzhweF9yZ2JhKDAsMCwwLDAuMildIHRyYW5zaXRpb24tYWxsIHJvdW5kZWQteGwgcC0zLjUgLW10LTIuNSBjdXJzb3ItcG9pbnRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXNtIGZvbnQtbGlnaHQgdGV4dC1uZXV0cmFsLTMwMCBncm91cC1ob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzIj5FdmVuaW5nIE1lYWw8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQteHMgbXQtMSB0ZXh0LW5ldXRyYWwtNTAwIGZvbnQtbGlnaHQiPktpdGNoZW4g4oCiIFNoYXJlZDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9ImZsZXggZmxleC1jb2wgZ2FwLTUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHB4LTEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idGV4dC14cyBmb250LW5vcm1hbCB0cmFja2luZy13aWRlIHVwcGVyY2FzZSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LXdoaXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGljb25pZnktaWNvbiBpY29uPSJzb2xhcjptYWlsYm94LWxpbmVhciIgY2xhc3M9InRleHQtbmV1dHJhbC01MDAgdGV4dC1zbSI+PC9pY29uaWZ5LWljb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LW5ldXRyYWwtNTAwIGZvbnQtbW9ubyB0cmFja2luZy13aWRlIHVwcGVyY2FzZSI+QWxleDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnLWdyYWRpZW50LXRvLWIgZnJvbS1bIzFDMUMyMF0gdG8tWyMxMjEyMTVdIHJpbmctMSByaW5nLVsjMkEyQTMwXSBzaGFkb3ctW2luc2V0XzBfMXB4XzBfcmdiYSgyNTUsMjU1LDI1NSwwLjA2KSwwXzEycHhfMjRweF9yZ2JhKDAsMCwwLDAuNSldIHJvdW5kZWQtMnhsIHAtNiBmbGV4IGZsZXgtY29sIGdhcC01IHJlbGF0aXZlIHotMTAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRW1haWwgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBnYXAtNCByZWxhdGl2ZSBncm91cCBib3JkZXItYiBib3JkZXItWyMyQTJBMzBdIHBiLTUgc2hhZG93LVswXzFweF8wX3JnYmEoMjU1LDI1NSwyNTUsMC4wMildIGN1cnNvci1wb2ludGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idy0yIGgtMiBzaHJpbmstMCByb3VuZGVkLWZ1bGwgYmctY3lhbi00MDAgc2hhZG93LVswXzBfOHB4X3JnYmEoMzQsMjExLDIzOCwwLjYpLGluc2V0XzBfMXB4XzFweF9yZ2JhKDI1NSwyNTUsMjU1LDAuOCldIG10LTEuNSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgtMSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXNtIGZvbnQtbm9ybWFsIHRleHQtd2hpdGUiPlE0IENhbXBhaWduIEFzc2V0czwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC14cyB0ZXh0LWN5YW4tNDAwIG10LTEgZm9udC1saWdodCB0cmFja2luZy13aWRlIj5NYXJrZXRpbmcgT3BzPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXhzIHRleHQtbmV1dHJhbC01MDAgbXQtMiBsaW5lLWNsYW1wLTIgZm9udC1saWdodCBsZWFkaW5nLXJlbGF4ZWQgZ3JvdXAtaG92ZXI6dGV4dC1uZXV0cmFsLTQwMCB0cmFuc2l0aW9uLWNvbG9ycyI+RW5zdXJlIHRoZSB1cGRhdGVkIGNvbGxhdGVyYWwgaXMgdmVyaWZpZWQgYmVmb3JlIG91ciB3ZWVrbHkgYWxpZ25tZW50IGNhbGwuPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXhzIHRleHQtbmV1dHJhbC01MDAgZm9udC1tb25vIHRyYWNraW5nLXdpZGUiPjEwOjQyPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRW1haWwgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBnYXAtNCByZWxhdGl2ZSBncm91cCBjdXJzb3ItcG9pbnRlciBwdC0xIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idy0yIGgtMiBzaHJpbmstMCByb3VuZGVkLWZ1bGwgYmctWyMwQTBBMENdIHJpbmctMSByaW5nLVsjM0EzQTQwXSBzaGFkb3ctW2luc2V0XzBfMXB4XzJweF9yZ2JhKDAsMCwwLDAuOCldIG10LTEuNSBncm91cC1ob3ZlcjpyaW5nLW5ldXRyYWwtNTAwIHRyYW5zaXRpb24tYWxsIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleC0xIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtc20gZm9udC1saWdodCB0ZXh0LW5ldXRyYWwtMzAwIGdyb3VwLWhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnMiPlNlcnZlciBNYWludGVuYW5jZTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC14cyB0ZXh0LW5ldXRyYWwtNTAwIG10LTEgZm9udC1saWdodCB0cmFja2luZy13aWRlIj5EZXZPcHM8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQteHMgdGV4dC1uZXV0cmFsLTUwMCBtdC0yIGxpbmUtY2xhbXAtMiBmb250LWxpZ2h0IGxlYWRpbmctcmVsYXhlZCBncm91cC1ob3Zlcjp0ZXh0LW5ldXRyYWwtNDAwIHRyYW5zaXRpb24tY29sb3JzIj5UaGUgcGxhbm5lZCBkb3dudGltZSBmb3IgdGhlIGNsdXN0ZXIgdXBncmFkZSBpcyBzZXQgZm9yIDAyOjAwIFVUQy48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQteHMgdGV4dC1uZXV0cmFsLTUwMCBmb250LW1vbm8gdHJhY2tpbmctd2lkZSI+MDk6MTU8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPCEtLSBDb2x1bW4gMjogUmVzcG9uc2liaWxpdGllcyAtLT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsZzpjb2wtc3Bhbi00IGZsZXggZmxleC1jb2wgZ2FwLTUiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcHgtMSBtYi0wIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idGV4dC14cyBmb250LW5vcm1hbCB0cmFja2luZy13aWRlIHVwcGVyY2FzZSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LXdoaXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aWNvbmlmeS1pY29uIGljb249InNvbGFyOmNsaXBib2FyZC1jaGVjay1saW5lYXIiIGNsYXNzPSJ0ZXh0LW5ldXRyYWwtNTAwIHRleHQtc20iPjwvaWNvbmlmeS1pY29uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlbmRpbmcgQWN0aW9ucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRleHQtbmV1dHJhbC01MDAgaG92ZXI6dGV4dC1jeWFuLTQwMCB0cmFuc2l0aW9uLWNvbG9ycyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGljb25pZnktaWNvbiBpY29uPSJzb2xhcjphZGQtY2lyY2xlLWxpbmVhciIgY2xhc3M9InRleHQtbGcgZHJvcC1zaGFkb3ctc20iPjwvaWNvbmlmeS1pY29uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmctZ3JhZGllbnQtdG8tYiBmcm9tLVsjMUMxQzIwXSB0by1bIzEyMTIxNV0gcmluZy0xIHJpbmctWyMyQTJBMzBdIHNoYWRvdy1baW5zZXRfMF8xcHhfMF9yZ2JhKDI1NSwyNTUsMjU1LDAuMDYpLDBfMTJweF8yNHB4X3JnYmEoMCwwLDAsMC41KV0gcm91bmRlZC0yeGwgcC02IGZsZXggZmxleC1jb2wgZ2FwLTYgZmxleC0xIHJlbGF0aXZlIHotMTAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEdyb3VwIDEgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGZsZXgtY29sIGdhcC01Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9InctNiBoLTYgcm91bmRlZC1tZCBvYmplY3QtY292ZXIgZ3JheXNjYWxlIG9wYWNpdHktODAgcmluZy0xIHJpbmctWyMyQTJBMzBdIHNoYWRvdy1bMF8ycHhfNHB4X3JnYmEoMCwwLDAsMC40KV0iIHNyYz0iYXNzZXRzL3BhZ2UtMDEtNzc0MTVhMmUtZGNiYy00NzQ4LWEyOWQtZmNlZDQ4MjE4ODFhLTgwMHcuanBnIiBhbHQ9IkFsZXgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC14cyBmb250LW1vbm8gdXBwZXJjYXNlIHRleHQtbmV1dHJhbC00MDAgdHJhY2tpbmctd2lkZXIiPkFsZXg8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmbGV4IGl0ZW1zLXN0YXJ0IGdhcC0zLjUgY3Vyc29yLXBvaW50ZXIgZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWxhdGl2ZSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB3LTQgaC00IG10LTAuNSBzaHJpbmstMCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJwZWVyIHNyLW9ubHkiIGNoZWNrZWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3LWZ1bGwgaC1mdWxsIGJnLVsjMEEwQTBDXSByaW5nLTEgcmluZy1bIzNBM0E0MF0gcm91bmRlZCBzaGFkb3ctW2luc2V0XzBfMnB4XzRweF9yZ2JhKDAsMCwwLDAuNiksMF8xcHhfMF9yZ2JhKDI1NSwyNTUsMjU1LDAuMDUpXSBwZWVyLWNoZWNrZWQ6YmctZ3JhZGllbnQtdG8tYnIgcGVlci1jaGVja2VkOmZyb20tY3lhbi00MDAgcGVlci1jaGVja2VkOnRvLWN5YW4tNjAwIHBlZXItY2hlY2tlZDpyaW5nLWN5YW4tNDAwIHBlZXItY2hlY2tlZDpzaGFkb3ctW2luc2V0XzBfMXB4XzFweF9yZ2JhKDI1NSwyNTUsMjU1LDAuNSksMF8ycHhfOHB4X3JnYmEoMzQsMjExLDIzOCwwLjUpXSB0cmFuc2l0aW9uLWFsbCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aWNvbmlmeS1pY29uIGljb249InNvbGFyOmNoZWNrLXJlYWQtbGluZWFyIiBjbGFzcz0iYWJzb2x1dGUgb3BhY2l0eS0wIHBlZXItY2hlY2tlZDpvcGFjaXR5LTEwMCB0ZXh0LXhzIHRleHQtWyMwNTA1MDVdIGRyb3Atc2hhZG93LVswXzFweF8wX3JnYmEoMjU1LDI1NSwyNTUsMC40KV0gdHJhbnNpdGlvbi1vcGFjaXR5Ij48L2ljb25pZnktaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LXNtIHRleHQtbmV1dHJhbC00MDAgZ3JvdXAtaG92ZXI6dGV4dC1uZXV0cmFsLTIwMCB0cmFuc2l0aW9uLWNvbG9ycyBwZWVyLWNoZWNrZWQ6bGluZS10aHJvdWdoIHBlZXItY2hlY2tlZDp0ZXh0LW5ldXRyYWwtNjAwIGZvbnQtbGlnaHQiPkNvbmZpcm0gZ3JvY2VyeSBvcmRlcjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaC1weCB3LWZ1bGwgYmctZ3JhZGllbnQtdG8tciBmcm9tLVsjMkEyQTMwXSB0by10cmFuc3BhcmVudCI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBHcm91cCAyIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBmbGV4LWNvbCBnYXAtNSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPSJ3LTYgaC02IHJvdW5kZWQtbWQgb2JqZWN0LWNvdmVyIGdyYXlzY2FsZSBvcGFjaXR5LTgwIHJpbmctMSByaW5nLVsjMkEyQTMwXSBzaGFkb3ctWzBfMnB4XzRweF9yZ2JhKDAsMCwwLDAuNCldIiBzcmM9ImFzc2V0cy9wYWdlLTAyLWVjYTcwN2NjLWE1YjctNDM5YS1iNGZkLTI0N2Y2MTA2YzJlMS04MDB3LmpwZyIgYWx0PSJKb3JkYW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC14cyBmb250LW1vbm8gdXBwZXJjYXNlIHRleHQtbmV1dHJhbC00MDAgdHJhY2tpbmctd2lkZXIiPkpvcmRhbjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImZsZXggaXRlbXMtc3RhcnQgZ2FwLTMuNSBjdXJzb3ItcG9pbnRlciBncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlbGF0aXZlIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHctNCBoLTQgbXQtMC41IHNocmluay0wIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9InBlZXIgc3Itb25seSIgY2hlY2tlZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctZnVsbCBoLWZ1bGwgYmctWyMwQTBBMENdIHJpbmctMSByaW5nLVsjM0EzQTQwXSByb3VuZGVkIHNoYWRvdy1baW5zZXRfMF8ycHhfNHB4X3JnYmEoMCwwLDAsMC42KSwwXzFweF8wX3JnYmEoMjU1LDI1NSwyNTUsMC4wNSldIHBlZXItY2hlY2tlZDpiZy1ncmFkaWVudC10by1iciBwZWVyLWNoZWNrZWQ6ZnJvbS1jeWFuLTQwMCBwZWVyLWNoZWNrZWQ6dG8tY3lhbi02MDAgcGVlci1jaGVja2VkOnJpbmctY3lhbi00MDAgcGVlci1jaGVja2VkOnNoYWRvdy1baW5zZXRfMF8xcHhfMXB4X3JnYmEoMjU1LDI1NSwyNTUsMC41KSwwXzJweF84cHhfcmdiYSgzNCwyMTEsMjM4LDAuNSldIHRyYW5zaXRpb24tYWxsIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpY29uaWZ5LWljb24gaWNvbj0ic29sYXI6Y2hlY2stcmVhZC1saW5lYXIiIGNsYXNzPSJhYnNvbHV0ZSBvcGFjaXR5LTAgcGVlci1jaGVja2VkOm9wYWNpdHktMTAwIHRleHQteHMgdGV4dC1bIzA1MDUwNV0gZHJvcC1zaGFkb3ctWzBfMXB4XzBfcmdiYSgyNTUsMjU1LDI1NSwwLjQpXSB0cmFuc2l0aW9uLW9wYWNpdHkiPjwvaWNvbmlmeS1pY29uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtc20gdGV4dC1uZXV0cmFsLTQwMCBncm91cC1ob3Zlcjp0ZXh0LW5ldXRyYWwtMjAwIHRyYW5zaXRpb24tY29sb3JzIHBlZXItY2hlY2tlZDpsaW5lLXRocm91Z2ggcGVlci1jaGVja2VkOnRleHQtbmV1dHJhbC02MDAgZm9udC1saWdodCI+VGFrZSBvdXQgcmVjeWNsaW5nPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJmbGV4IGl0ZW1zLXN0YXJ0IGdhcC0zLjUgY3Vyc29yLXBvaW50ZXIgZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZWxhdGl2ZSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB3LTQgaC00IG10LTAuNSBzaHJpbmstMCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJwZWVyIHNyLW9ubHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idy1mdWxsIGgtZnVsbCBiZy1bIzBBMEEwQ10gcmluZy0xIHJpbmctWyMzQTNBNDBdIHJvdW5kZWQgc2hhZG93LVtpbnNldF8wXzJweF80cHhfcmdiYSgwLDAsMCwwLjYpLDBfMXB4XzBfcmdiYSgyNTUsMjU1LDI1NSwwLjA1KV0gcGVlci1jaGVja2VkOmJnLWdyYWRpZW50LXRvLWJyIHBlZXItY2hlY2tlZDpmcm9tLWN5YW4tNDAwIHBlZXItY2hlY2tlZDp0by1jeWFuLTYwMCBwZWVyLWNoZWNrZWQ6cmluZy1jeWFuLTQwMCBwZWVyLWNoZWNrZWQ6c2hhZG93LVtpbnNldF8wXzFweF8xcHhfcmdiYSgyNTUsMjU1LDI1NSwwLjUpLDBfMnB4XzhweF9yZ2JhKDM0LDIxMSwyMzgsMC41KV0gdHJhbnNpdGlvbi1hbGwiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGljb25pZnktaWNvbiBpY29uPSJzb2xhcjpjaGVjay1yZWFkLWxpbmVhciIgY2xhc3M9ImFic29sdXRlIG9wYWNpdHktMCBwZWVyLWNoZWNrZWQ6b3BhY2l0eS0xMDAgdGV4dC14cyB0ZXh0LVsjMDUwNTA1XSBkcm9wLXNoYWRvdy1bMF8xcHhfMF9yZ2JhKDI1NSwyNTUsMjU1LDAuNCldIHRyYW5zaXRpb24tb3BhY2l0eSI+PC9pY29uaWZ5LWljb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1zbSB0ZXh0LW5ldXRyYWwtMzAwIGdyb3VwLWhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnMgcGVlci1jaGVja2VkOmxpbmUtdGhyb3VnaCBwZWVyLWNoZWNrZWQ6dGV4dC1uZXV0cmFsLTYwMCBmb250LWxpZ2h0Ij5BdXRob3JpemUgc2Nob29sIHRyaXA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImgtcHggdy1mdWxsIGJnLWdyYWRpZW50LXRvLXIgZnJvbS1bIzJBMkEzMF0gdG8tdHJhbnNwYXJlbnQiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gR3JvdXAgMyAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggZmxleC1jb2wgZ2FwLTUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz0idy02IGgtNiByb3VuZGVkLW1kIG9iamVjdC1jb3ZlciBncmF5c2NhbGUgb3BhY2l0eS04MCByaW5nLTEgcmluZy1bIzJBMkEzMF0gc2hhZG93LVswXzJweF80cHhfcmdiYSgwLDAsMCwwLjQpXSIgc3JjPSJhc3NldHMvcGFnZS0wMy0zMTg2ZjllYS01ZjVhLTQ5ZjctOGZjZi01NjhhZDUyZjUxNWUtODAwdy53ZWJwIiBhbHQ9IlRheWxvciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LXhzIGZvbnQtbW9ubyB1cHBlcmNhc2UgdGV4dC1uZXV0cmFsLTQwMCB0cmFja2luZy13aWRlciI+VGF5bG9yPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZmxleCBpdGVtcy1zdGFydCBnYXAtMy41IGN1cnNvci1wb2ludGVyIGdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVsYXRpdmUgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdy00IGgtNCBtdC0wLjUgc2hyaW5rLTAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBjbGFzcz0icGVlciBzci1vbmx5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctZnVsbCBoLWZ1bGwgYmctWyMwQTBBMENdIHJpbmctMSByaW5nLVsjM0EzQTQwXSByb3VuZGVkIHNoYWRvdy1baW5zZXRfMF8ycHhfNHB4X3JnYmEoMCwwLDAsMC42KSwwXzFweF8wX3JnYmEoMjU1LDI1NSwyNTUsMC4wNSldIHBlZXItY2hlY2tlZDpiZy1ncmFkaWVudC10by1iciBwZWVyLWNoZWNrZWQ6ZnJvbS1jeWFuLTQwMCBwZWVyLWNoZWNrZWQ6dG8tY3lhbi02MDAgcGVlci1jaGVja2VkOnJpbmctY3lhbi00MDAgcGVlci1jaGVja2VkOnNoYWRvdy1baW5zZXRfMF8xcHhfMXB4X3JnYmEoMjU1LDI1NSwyNTUsMC41KSwwXzJweF84cHhfcmdiYSgzNCwyMTEsMjM4LDAuNSldIHRyYW5zaXRpb24tYWxsIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpY29uaWZ5LWljb24gaWNvbj0ic29sYXI6Y2hlY2stcmVhZC1saW5lYXIiIGNsYXNzPSJhYnNvbHV0ZSBvcGFjaXR5LTAgcGVlci1jaGVja2VkOm9wYWNpdHktMTAwIHRleHQteHMgdGV4dC1bIzA1MDUwNV0gZHJvcC1zaGFkb3ctWzBfMXB4XzBfcmdiYSgyNTUsMjU1LDI1NSwwLjQpXSB0cmFuc2l0aW9uLW9wYWNpdHkiPjwvaWNvbmlmeS1pY29uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtc20gdGV4dC1uZXV0cmFsLTMwMCBncm91cC1ob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzIHBlZXItY2hlY2tlZDpsaW5lLXRocm91Z2ggcGVlci1jaGVja2VkOnRleHQtbmV1dHJhbC02MDAgZm9udC1saWdodCI+RW1wdHkgZGlzaHdhc2hlcjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZmxleCBpdGVtcy1zdGFydCBnYXAtMy41IGN1cnNvci1wb2ludGVyIGdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVsYXRpdmUgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdy00IGgtNCBtdC0wLjUgc2hyaW5rLTAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBjbGFzcz0icGVlciBzci1vbmx5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctZnVsbCBoLWZ1bGwgYmctWyMwQTBBMENdIHJpbmctMSByaW5nLVsjM0EzQTQwXSByb3VuZGVkIHNoYWRvdy1baW5zZXRfMF8ycHhfNHB4X3JnYmEoMCwwLDAsMC42KSwwXzFweF8wX3JnYmEoMjU1LDI1NSwyNTUsMC4wNSldIHBlZXItY2hlY2tlZDpiZy1ncmFkaWVudC10by1iciBwZWVyLWNoZWNrZWQ6ZnJvbS1jeWFuLTQwMCBwZWVyLWNoZWNrZWQ6dG8tY3lhbi02MDAgcGVlci1jaGVja2VkOnJpbmctY3lhbi00MDAgcGVlci1jaGVja2VkOnNoYWRvdy1baW5zZXRfMF8xcHhfMXB4X3JnYmEoMjU1LDI1NSwyNTUsMC41KSwwXzJweF84cHhfcmdiYSgzNCwyMTEsMjM4LDAuNSldIHRyYW5zaXRpb24tYWxsIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpY29uaWZ5LWljb24gaWNvbj0ic29sYXI6Y2hlY2stcmVhZC1saW5lYXIiIGNsYXNzPSJhYnNvbHV0ZSBvcGFjaXR5LTAgcGVlci1jaGVja2VkOm9wYWNpdHktMTAwIHRleHQteHMgdGV4dC1bIzA1MDUwNV0gZHJvcC1zaGFkb3ctWzBfMXB4XzBfcmdiYSgyNTUsMjU1LDI1NSwwLjQpXSB0cmFuc2l0aW9uLW9wYWNpdHkiPjwvaWNvbmlmeS1pY29uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtc20gdGV4dC1uZXV0cmFsLTMwMCBncm91cC1ob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzIHBlZXItY2hlY2tlZDpsaW5lLXRocm91Z2ggcGVlci1jaGVja2VkOnRleHQtbmV1dHJhbC02MDAgZm9udC1saWdodCI+RXZlbmluZyBwZXQgd2Fsazwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPCEtLSBDb2x1bW4gMzogVGVsZW1ldHJ5ICYgTWVkaWEgLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGc6Y29sLXNwYW4tMyBmbGV4IGZsZXgtY29sIGdhcC04Ij4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJmbGV4IGZsZXgtY29sIGdhcC01Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idGV4dC14cyBmb250LW5vcm1hbCB0cmFja2luZy13aWRlIHVwcGVyY2FzZSBweC0xIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtd2hpdGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpY29uaWZ5LWljb24gaWNvbj0ic29sYXI6cGxheS1zdHJlYW0tbGluZWFyIiBjbGFzcz0idGV4dC1uZXV0cmFsLTUwMCB0ZXh0LXNtIj48L2ljb25pZnktaWNvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3RpdmUgTWVkaWEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnLWdyYWRpZW50LXRvLWIgZnJvbS1bIzFDMUMyMF0gdG8tWyMxMjEyMTVdIHJpbmctMSByaW5nLVsjMkEyQTMwXSBzaGFkb3ctW2luc2V0XzBfMXB4XzBfcmdiYSgyNTUsMjU1LDI1NSwwLjA2KSwwXzEycHhfMjRweF9yZ2JhKDAsMCwwLDAuNSldIHJvdW5kZWQtMnhsIHAtNSBmbGV4IGZsZXgtY29sIGdhcC01IHJlbGF0aXZlIHotMTAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggZ2FwLTQgaXRlbXMtY2VudGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9ImFzc2V0cy9wYWdlLTA0LTQ3MzQyNTlhLWJhZDctNDIyZi05ODFlLWNlMDFlNzkxODRmMi04MDB3LmpwZyIgY2xhc3M9InctMTIgaC0xMiByb3VuZGVkLWxnIGdyYXlzY2FsZSBvcGFjaXR5LTgwIG9iamVjdC1jb3ZlciByaW5nLTEgcmluZy1bIzJBMkEzMF0gc2hhZG93LVswXzRweF84cHhfcmdiYSgwLDAsMCwwLjQpXSBzaHJpbmstMCIgYWx0PSJBdWRpbyBDb3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgtMSBvdmVyZmxvdy1oaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC14cyBmb250LW1vbm8gdGV4dC1uZXV0cmFsLTUwMCBtYi0xIGZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjUgdHJhY2tpbmctd2lkZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idy0xLjUgaC0xLjUgYmctY3lhbi00MDAgcm91bmRlZC1mdWxsIHNoYWRvdy1bMF8wXzZweF9yZ2JhKDM0LDIxMSwyMzgsMC42KV0gYW5pbWF0ZS1wdWxzZSI+PC9kaXY+IEF1ZGlvIOKAoiBKb3JkYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1zbSBmb250LW5vcm1hbCB0ZXh0LXdoaXRlIHRydW5jYXRlIHctZnVsbCI+RGVlcCBGb2N1cyBCZWF0czwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC14cyB0ZXh0LW5ldXRyYWwtNDAwIGZvbnQtbGlnaHQgbXQtMC41IHRydW5jYXRlIj5TeW50aHdhdmUgTWl4PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU2xpZGVyIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LXhzIGZvbnQtbW9ubyB0ZXh0LW5ldXRyYWwtNTAwIHRyYWNraW5nLXdpZGUiPjE6MjQ8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgtMSBoLTEuNSBiZy1bIzBBMEEwQ10gcmluZy0xIHJpbmctWyMyQTJBMzBdIHNoYWRvdy1baW5zZXRfMF8xcHhfM3B4X3JnYmEoMCwwLDAsMC44KV0gcm91bmRlZC1mdWxsIHJlbGF0aXZlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFic29sdXRlIGxlZnQtMCB0b3AtMCBoLWZ1bGwgdy0xLzMgYmctZ3JhZGllbnQtdG8tciBmcm9tLWN5YW4tNjAwIHRvLWN5YW4tNDAwIHNoYWRvdy1baW5zZXRfMF8xcHhfMF9yZ2JhKDI1NSwyNTUsMjU1LDAuNCldIHJvdW5kZWQtZnVsbCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhYnNvbHV0ZSBsZWZ0LTEvMyB0b3AtMS8yIC10cmFuc2xhdGUteS0xLzIgdy0zLjUgaC0zLjUgYmctZ3JhZGllbnQtdG8tYiBmcm9tLVsjRkZGRkZGXSB0by1bI0Q0RDREOF0gcmluZy0xIHJpbmctWyM3MTcxN0FdIHNoYWRvdy1bMF8ycHhfNnB4X3JnYmEoMCwwLDAsMC42KSxpbnNldF8wXy0xcHhfMXB4X3JnYmEoMCwwLDAsMC4yKV0gcm91bmRlZC1mdWxsIHRyYW5zZm9ybSAtdHJhbnNsYXRlLXgtMS8yIGN1cnNvci1wb2ludGVyIHotMTAiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQteHMgZm9udC1tb25vIHRleHQtbmV1dHJhbC01MDAgdHJhY2tpbmctd2lkZSI+LTI6MjE8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZy1ncmFkaWVudC10by1iIGZyb20tWyMxQzFDMjBdIHRvLVsjMTIxMjE1XSByaW5nLTEgcmluZy1bIzJBMkEzMF0gc2hhZG93LVtpbnNldF8wXzFweF8wX3JnYmEoMjU1LDI1NSwyNTUsMC4wNiksMF8xMnB4XzI0cHhfcmdiYSgwLDAsMCwwLjUpXSByb3VuZGVkLTJ4bCBwLTUgZmxleCBmbGV4LWNvbCBnYXAtNSByZWxhdGl2ZSB6LTEwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGdhcC00IGl0ZW1zLWNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJhc3NldHMvcGFnZS0wNS0wMDU2MDBlNS1mNmFiLTRlNTktYmM4Ni1lYWViMDI3OTdkZmEtODAwdy5qcGciIGNsYXNzPSJ3LTEyIGgtMTIgcm91bmRlZC1sZyBncmF5c2NhbGUgb3BhY2l0eS04MCBvYmplY3QtY292ZXIgcmluZy0xIHJpbmctWyMyQTJBMzBdIHNoYWRvdy1bMF80cHhfOHB4X3JnYmEoMCwwLDAsMC40KV0gc2hyaW5rLTAiIGFsdD0iVmlkZW8gQ292ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4LTEgb3ZlcmZsb3ctaGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQteHMgZm9udC1tb25vIHRleHQtbmV1dHJhbC01MDAgbWItMSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMS41IHRyYWNraW5nLXdpZGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpY29uaWZ5LWljb24gaWNvbj0ic29sYXI6cGxheS1saW5lYXIiIGNsYXNzPSJ0ZXh0LWN5YW4tNDAwIGRyb3Atc2hhZG93LVswXzBfNHB4X3JnYmEoMzQsMjExLDIzOCwwLjQpXSI+PC9pY29uaWZ5LWljb24+IFZpZGVvIOKAoiBUYXlsb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1zbSBmb250LW5vcm1hbCB0ZXh0LXdoaXRlIHRydW5jYXRlIHctZnVsbCI+VGVjaCBQb2RjYXN0PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXhzIHRleHQtbmV1dHJhbC00MDAgZm9udC1saWdodCBtdC0wLjUgdHJ1bmNhdGUiPkxpdmUgQnJvYWRjYXN0PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU2xpZGVyIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LXhzIGZvbnQtbW9ubyB0ZXh0LWN5YW4tNDAwIGRyb3Atc2hhZG93LVswXzBfNHB4X3JnYmEoMzQsMjExLDIzOCwwLjUpXSB0cmFja2luZy13aWRlIj5MSVZFPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4LTEgaC0xLjUgYmctWyMwQTBBMENdIHJpbmctMSByaW5nLVsjMkEyQTMwXSBzaGFkb3ctW2luc2V0XzBfMXB4XzNweF9yZ2JhKDAsMCwwLDAuOCldIHJvdW5kZWQtZnVsbCByZWxhdGl2ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhYnNvbHV0ZSBsZWZ0LTAgdG9wLTAgaC1mdWxsIHctZnVsbCBiZy1ncmFkaWVudC10by1yIGZyb20tY3lhbi02MDAgdG8tY3lhbi00MDAgc2hhZG93LVtpbnNldF8wXzFweF8wX3JnYmEoMjU1LDI1NSwyNTUsMC40KV0gcm91bmRlZC1mdWxsIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFic29sdXRlIHJpZ2h0LTAgdG9wLTEvMiAtdHJhbnNsYXRlLXktMS8yIHctMy41IGgtMy41IGJnLWdyYWRpZW50LXRvLWIgZnJvbS1bI0ZGRkZGRl0gdG8tWyNENEQ0RDhdIHJpbmctMSByaW5nLVsjNzE3MTdBXSBzaGFkb3ctWzBfMnB4XzZweF9yZ2JhKDAsMCwwLDAuNiksaW5zZXRfMF8tMXB4XzFweF9yZ2JhKDAsMCwwLDAuMildIHJvdW5kZWQtZnVsbCB0cmFuc2Zvcm0gdHJhbnNsYXRlLXgtMS8yIGN1cnNvci1wb2ludGVyIHotMTAiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0iZmxleCBmbGV4LWNvbCBnYXAtNSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRleHQteHMgZm9udC1ub3JtYWwgdHJhY2tpbmctd2lkZSB1cHBlcmNhc2UgcHgtMSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LXdoaXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aWNvbmlmeS1pY29uIGljb249InNvbGFyOnB1bHNlLWxpbmVhciIgY2xhc3M9InRleHQtbmV1dHJhbC01MDAgdGV4dC1zbSI+PC9pY29uaWZ5LWljb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVml0YWxzIE1vbml0b3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnLWdyYWRpZW50LXRvLWIgZnJvbS1bIzFDMUMyMF0gdG8tWyMxMjEyMTVdIHJpbmctMSByaW5nLVsjMkEyQTMwXSBzaGFkb3ctW2luc2V0XzBfMXB4XzBfcmdiYSgyNTUsMjU1LDI1NSwwLjA2KSwwXzEycHhfMjRweF9yZ2JhKDAsMCwwLDAuNSldIHJvdW5kZWQtMnhsIHAtNSBmbGV4IGZsZXgtY29sIGdhcC02IHJlbGF0aXZlIHotMTAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggZmxleC1jb2wgZ2FwLTIuNSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LW5ldXRyYWwtMzAwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC14cyBmb250LWxpZ2h0IHRyYWNraW5nLXdpZGUiPkFsZXg8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQteHMgZm9udC1tb25vIHRleHQtd2hpdGUgdHJhY2tpbmctd2lkZSI+OCw0MzI8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctZnVsbCBoLTIgYmctWyMwQTBBMENdIHJpbmctMSByaW5nLVsjMkEyQTMwXSBzaGFkb3ctW2luc2V0XzBfMXB4XzJweF9yZ2JhKDAsMCwwLDAuNildIHJvdW5kZWQtZnVsbCBvdmVyZmxvdy1oaWRkZW4gcmVsYXRpdmUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaC1mdWxsIGJnLWdyYWRpZW50LXRvLXIgZnJvbS1jeWFuLTYwMCB0by1jeWFuLTQwMCBzaGFkb3ctW2luc2V0XzBfMXB4XzBfcmdiYSgyNTUsMjU1LDI1NSwwLjMpXSB3LVs4MCVdIGFic29sdXRlIGxlZnQtMCB0b3AtMCByb3VuZGVkLWZ1bGwiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBmbGV4LWNvbCBnYXAtMi41Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtbmV1dHJhbC0zMDAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LXhzIGZvbnQtbGlnaHQgdHJhY2tpbmctd2lkZSI+Sm9yZGFuPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXhzIGZvbnQtbW9ubyB0ZXh0LW5ldXRyYWwtNDAwIHRyYWNraW5nLXdpZGUiPjMsMTIwPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3LWZ1bGwgaC0yIGJnLVsjMEEwQTBDXSByaW5nLTEgcmluZy1bIzJBMkEzMF0gc2hhZG93LVtpbnNldF8wXzFweF8ycHhfcmdiYSgwLDAsMCwwLjYpXSByb3VuZGVkLWZ1bGwgb3ZlcmZsb3ctaGlkZGVuIHJlbGF0aXZlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImgtZnVsbCBiZy1ncmFkaWVudC10by1yIGZyb20tbmV1dHJhbC02MDAgdG8tbmV1dHJhbC00MDAgc2hhZG93LVtpbnNldF8wXzFweF8wX3JnYmEoMjU1LDI1NSwyNTUsMC4zKV0gdy1bMzAlXSBhYnNvbHV0ZSBsZWZ0LTAgdG9wLTAgcm91bmRlZC1mdWxsIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L21haW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPHNjcmlwdD4KICAgICAgICAvLyBXZWJHTCBEaXRoZXIgQmFja2dyb3VuZCBzY29wZWQgdG8gdGhlIGFwcGxpY2F0aW9uIHNoZWxsCiAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpdGhlci1iZycpOwogICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzaGVsbC1jb250YWluZXInKTsKICAgICAgICBjb25zdCBnbCA9IGNhbnZhcy5nZXRDb250ZXh0KCd3ZWJnbCcsIHsgYWxwaGE6IGZhbHNlLCBhbnRpYWxpYXM6IGZhbHNlIH0pOwoKICAgICAgICBpZiAoZ2wgJiYgY29udGFpbmVyKSB7CiAgICAgICAgICAgIGNvbnN0IHZlcnRpY2VzID0gbmV3IEZsb2F0MzJBcnJheShbCiAgICAgICAgICAgICAgICAtMS4wLCAtMS4wLCAgCiAgICAgICAgICAgICAgICAgMS4wLCAtMS4wLCAgCiAgICAgICAgICAgICAgICAtMS4wLCAgMS4wLCAgCiAgICAgICAgICAgICAgICAgMS4wLCAgMS4wCiAgICAgICAgICAgIF0pOwoKICAgICAgICAgICAgY29uc3QgdmJvID0gZ2wuY3JlYXRlQnVmZmVyKCk7CiAgICAgICAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2Ym8pOwogICAgICAgICAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgdmVydGljZXMsIGdsLlNUQVRJQ19EUkFXKTsKCiAgICAgICAgICAgIGNvbnN0IHZzQ29kZSA9IGAKICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSB2ZWMyIHBvc2l0aW9uOwogICAgICAgICAgICAgICAgdm9pZCBtYWluKCkgewogICAgICAgICAgICAgICAgICAgIGdsX1Bvc2l0aW9uID0gdmVjNChwb3NpdGlvbiwgMC4wLCAxLjApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBgOwogICAgICAgICAgICBjb25zdCB2cyA9IGdsLmNyZWF0ZVNoYWRlcihnbC5WRVJURVhfU0hBREVSKTsKICAgICAgICAgICAgZ2wuc2hhZGVyU291cmNlKHZzLCB2c0NvZGUpOwogICAgICAgICAgICBnbC5jb21waWxlU2hhZGVyKHZzKTsKCiAgICAgICAgICAgIGNvbnN0IGZzQ29kZSA9IGAKICAgICAgICAgICAgICAgIHByZWNpc2lvbiBoaWdocCBmbG9hdDsKICAgICAgICAgICAgICAgIHVuaWZvcm0gdmVjMiB1X3Jlc29sdXRpb247CiAgICAgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfdGltZTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgZmxvYXQgaGFzaCh2ZWMyIHApIHsKICAgICAgICAgICAgICAgICAgICBwID0gZnJhY3QocCAqIHZlYzIoMTIzLjM0LCA0NTYuMjEpKTsKICAgICAgICAgICAgICAgICAgICBwICs9IGRvdChwLCBwICsgNDUuMzIpOwogICAgICAgICAgICAgICAgICAgIHJldHVybiBmcmFjdChwLnggKiBwLnkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBmbG9hdCBub2lzZSh2ZWMyIHApIHsKICAgICAgICAgICAgICAgICAgICB2ZWMyIGkgPSBmbG9vcihwKTsKICAgICAgICAgICAgICAgICAgICB2ZWMyIGYgPSBmcmFjdChwKTsKICAgICAgICAgICAgICAgICAgICB2ZWMyIHUgPSBmICogZiAqICgzLjAgLSAyLjAgKiBmKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWl4KG1peChoYXNoKGkgKyB2ZWMyKDAuMCwwLjApKSwgaGFzaChpICsgdmVjMigxLjAsMC4wKSksIHUueCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXgoaGFzaChpICsgdmVjMigwLjAsMS4wKSksIGhhc2goaSArIHZlYzIoMS4wLDEuMCkpLCB1LngpLCB1LnkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBmbG9hdCBmYm0odmVjMiBwKSB7CiAgICAgICAgICAgICAgICAgICAgZmxvYXQgdiA9IDAuMDsKICAgICAgICAgICAgICAgICAgICBmbG9hdCBhID0gMC41OwogICAgICAgICAgICAgICAgICAgIG1hdDIgcm90ID0gbWF0Mihjb3MoMC41KSwgc2luKDAuNSksIC1zaW4oMC41KSwgY29zKDAuNSkpOwogICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHYgKz0gYSAqIG5vaXNlKHApOwogICAgICAgICAgICAgICAgICAgICAgICBwID0gcm90ICogcCAqIDIuMCArIHZlYzIoMTAwLjApOwogICAgICAgICAgICAgICAgICAgICAgICBhICo9IDAuNTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHY7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGZsb2F0IGJheWVyKHZlYzIgcCkgewogICAgICAgICAgICAgICAgICAgIGludCB4ID0gaW50KG1vZChwLngsIDQuMCkpOwogICAgICAgICAgICAgICAgICAgIGludCB5ID0gaW50KG1vZChwLnksIDQuMCkpOwogICAgICAgICAgICAgICAgICAgIGludCBpID0geCArIHkgKiA0OwogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIGlmKGk9PTApIHJldHVybiAwLjAvMTYuMDsKICAgICAgICAgICAgICAgICAgICBpZihpPT0xKSByZXR1cm4gOC4wLzE2LjA7CiAgICAgICAgICAgICAgICAgICAgaWYoaT09MikgcmV0dXJuIDIuMC8xNi4wOwogICAgICAgICAgICAgICAgICAgIGlmKGk9PTMpIHJldHVybiAxMC4wLzE2LjA7CiAgICAgICAgICAgICAgICAgICAgaWYoaT09NCkgcmV0dXJuIDEyLjAvMTYuMDsKICAgICAgICAgICAgICAgICAgICBpZihpPT01KSByZXR1cm4gNC4wLzE2LjA7CiAgICAgICAgICAgICAgICAgICAgaWYoaT09NikgcmV0dXJuIDE0LjAvMTYuMDsKICAgICAgICAgICAgICAgICAgICBpZihpPT03KSByZXR1cm4gNi4wLzE2LjA7CiAgICAgICAgICAgICAgICAgICAgaWYoaT09OCkgcmV0dXJuIDMuMC8xNi4wOwogICAgICAgICAgICAgICAgICAgIGlmKGk9PTkpIHJldHVybiAxMS4wLzE2LjA7CiAgICAgICAgICAgICAgICAgICAgaWYoaT09MTApIHJldHVybiAxLjAvMTYuMDsKICAgICAgICAgICAgICAgICAgICBpZihpPT0xMSkgcmV0dXJuIDkuMC8xNi4wOwogICAgICAgICAgICAgICAgICAgIGlmKGk9PTEyKSByZXR1cm4gMTUuMC8xNi4wOwogICAgICAgICAgICAgICAgICAgIGlmKGk9PTEzKSByZXR1cm4gNy4wLzE2LjA7CiAgICAgICAgICAgICAgICAgICAgaWYoaT09MTQpIHJldHVybiAxMy4wLzE2LjA7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDUuMC8xNi4wOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHZvaWQgbWFpbigpIHsKICAgICAgICAgICAgICAgICAgICBmbG9hdCBwaXhlbFNjYWxlID0gNS4wOyAKICAgICAgICAgICAgICAgICAgICB2ZWMyIGZyYWdDb29yZCA9IGZsb29yKGdsX0ZyYWdDb29yZC54eSAvIHBpeGVsU2NhbGUpOwogICAgICAgICAgICAgICAgICAgIHZlYzIgdXYgPSBmcmFnQ29vcmQgLyAodV9yZXNvbHV0aW9uLnh5IC8gcGl4ZWxTY2FsZSk7CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgdmVjMiBjZW50ZXIgPSB1diAtIDAuNTsKICAgICAgICAgICAgICAgICAgICBjZW50ZXIueCAqPSB1X3Jlc29sdXRpb24ueCAvIHVfcmVzb2x1dGlvbi55OwogICAgICAgICAgICAgICAgICAgIGZsb2F0IGRpc3QgPSBsZW5ndGgoY2VudGVyKTsKICAgICAgICAgICAgICAgICAgICBmbG9hdCB2aWduZXR0ZSA9IHNtb290aHN0ZXAoMS4wLCAwLjE1LCBkaXN0KTsgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgdmVjMiBwID0gdXYgKiAyLjU7IAogICAgICAgICAgICAgICAgICAgIHAueCArPSB1X3RpbWUgKiAwLjAyOyAKICAgICAgICAgICAgICAgICAgICBwLnkgLT0gdV90aW1lICogMC4wMTU7CiAgICAgICAgICAgICAgICAgICAgZmxvYXQgbiA9IGZibShwKTsKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBmbG9hdCBpbnRlbnNpdHkgPSBuICogdmlnbmV0dGU7CiAgICAgICAgICAgICAgICAgICAgZmxvYXQgYiA9IGJheWVyKGZyYWdDb29yZCk7CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgZmxvYXQgc3RlcHMgPSA0LjA7CiAgICAgICAgICAgICAgICAgICAgZmxvYXQgcSA9IGZsb29yKGludGVuc2l0eSAqIHN0ZXBzKTsKICAgICAgICAgICAgICAgICAgICBmbG9hdCByID0gZnJhY3QoaW50ZW5zaXR5ICogc3RlcHMpOwogICAgICAgICAgICAgICAgICAgIGlmIChyID4gYikgcSArPSAxLjA7CiAgICAgICAgICAgICAgICAgICAgcSAvPSBzdGVwczsKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICB2ZWMzIGNvbG9yOwogICAgICAgICAgICAgICAgICAgIGlmIChxID4gMC43NSkgY29sb3IgPSB2ZWMzKDAuODUpOyAgICAgIAogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHEgPiAwLjUpIGNvbG9yID0gdmVjMygwLjQwKTsgIAogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHEgPiAwLjI1KSBjb2xvciA9IHZlYzMoMC4xMik7IAogICAgICAgICAgICAgICAgICAgIGVsc2UgY29sb3IgPSB2ZWMzKDAuMDIpOyAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IsIDEuMCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGA7CiAgICAgICAgICAgIGNvbnN0IGZzID0gZ2wuY3JlYXRlU2hhZGVyKGdsLkZSQUdNRU5UX1NIQURFUik7CiAgICAgICAgICAgIGdsLnNoYWRlclNvdXJjZShmcywgZnNDb2RlKTsKICAgICAgICAgICAgZ2wuY29tcGlsZVNoYWRlcihmcyk7CgogICAgICAgICAgICBjb25zdCBwcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOwogICAgICAgICAgICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgdnMpOwogICAgICAgICAgICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgZnMpOwogICAgICAgICAgICBnbC5saW5rUHJvZ3JhbShwcm9ncmFtKTsKICAgICAgICAgICAgZ2wudXNlUHJvZ3JhbShwcm9ncmFtKTsKCiAgICAgICAgICAgIGNvbnN0IHBvc0xvYyA9IGdsLmdldEF0dHJpYkxvY2F0aW9uKHByb2dyYW0sICJwb3NpdGlvbiIpOwogICAgICAgICAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShwb3NMb2MpOwogICAgICAgICAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKHBvc0xvYywgMiwgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKCiAgICAgICAgICAgIGNvbnN0IHJlc0xvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidV9yZXNvbHV0aW9uIik7CiAgICAgICAgICAgIGNvbnN0IHRpbWVMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInVfdGltZSIpOwoKICAgICAgICAgICAgZnVuY3Rpb24gcmVzaXplKCkgewogICAgICAgICAgICAgICAgY29uc3QgcmVjdCA9IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgICAgICAgICAgIGNhbnZhcy53aWR0aCA9IHJlY3Qud2lkdGg7CiAgICAgICAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gcmVjdC5oZWlnaHQ7CiAgICAgICAgICAgICAgICBnbC52aWV3cG9ydCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOwogICAgICAgICAgICAgICAgZ2wudW5pZm9ybTJmKHJlc0xvYywgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgcmVzaXplKTsKICAgICAgICAgICAgLy8gQWRkaXRpb25hbCBvYnNlcnZlciBmb3IgaW5uZXIgY29udGVudCByZWZsb3dzCiAgICAgICAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKHJlc2l6ZSk7CiAgICAgICAgICAgIG9ic2VydmVyLm9ic2VydmUoY29udGFpbmVyKTsKICAgICAgICAgICAgcmVzaXplKCk7CgogICAgICAgICAgICBmdW5jdGlvbiByZW5kZXIodGltZSkgewogICAgICAgICAgICAgICAgZ2wudW5pZm9ybTFmKHRpbWVMb2MsIHRpbWUgKiAwLjAwMSk7CiAgICAgICAgICAgICAgICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFX1NUUklQLCAwLCA0KTsKICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShyZW5kZXIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShyZW5kZXIpOwogICAgICAgIH0KCiAgICAgICAgLy8gR1NBUCBUaXRsZSBSZXZlYWwKICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgKCkgPT4gewogICAgICAgICAgICBjb25zdCB0ZXh0ID0gIldlbGNvbWUgYmFjaywgQWxleC4iOwogICAgICAgICAgICBjb25zdCB0aXRsZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ3JlZXRpbmctdGl0bGUnKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IHdvcmRzID0gdGV4dC5zcGxpdCgnICcpOwogICAgICAgICAgICBsZXQgaHRtbENvbnRlbnQgPSAnJzsKICAgICAgICAgICAgCiAgICAgICAgICAgIHdvcmRzLmZvckVhY2god29yZCA9PiB7CiAgICAgICAgICAgICAgICBodG1sQ29udGVudCArPSBgPHNwYW4gY2xhc3M9ImlubGluZS1mbGV4IG92ZXJmbG93LWhpZGRlbiBwYi0xIGFsaWduLWJvdHRvbSBtci0yIj48c3BhbiBjbGFzcz0icmV2ZWFsLXdvcmQgaW5saW5lLWJsb2NrIHRyYW5zbGF0ZS15LVsxMTAlXSBvcGFjaXR5LTAgdHJhbnNmb3JtLWdwdSI+JHt3b3JkfTwvc3Bhbj48L3NwYW4+YDsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIAogICAgICAgICAgICB0aXRsZUVsZW1lbnQuaW5uZXJIVE1MID0gaHRtbENvbnRlbnQ7CgogICAgICAgICAgICBnc2FwLnRvKCcucmV2ZWFsLXdvcmQnLCB7CiAgICAgICAgICAgICAgICB5OiAnMCUnLAogICAgICAgICAgICAgICAgb3BhY2l0eTogMSwKICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAwLjksCiAgICAgICAgICAgICAgICBzdGFnZ2VyOiAwLjA2LAogICAgICAgICAgICAgICAgZWFzZTogJ3Bvd2VyMy5vdXQnLAogICAgICAgICAgICAgICAgZGVsYXk6IDAuMgogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgIDwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K";
    const assetFiles = ["assets/page-01-77415a2e-dcbc-4748-a29d-fced4821881a-800w.jpg","assets/page-02-eca707cc-a5b7-439a-b4fd-247f6106c2e1-800w.jpg","assets/page-03-3186f9ea-5f5a-49f7-8fcf-568ad52f515e-800w.webp","assets/page-04-4734259a-bad7-422f-981e-ce01e79184f2-800w.jpg","assets/page-05-005600e5-f6ab-4e59-bc86-eaeb02797dfa-800w.jpg"];
    const runtimeFiles = ["../../../../assets/runtime/runtime-027051effa47-gsap-min.js","../../../../assets/runtime/runtime-163ebd087cfc-iconify-icon-min.js","../../../../assets/runtime/runtime-ccc8894b3418-runtime.js"];
    const frame = document.getElementById("neuform-demo");
    const decodeBytes = (value) => Uint8Array.from(atob(value), (character) => character.charCodeAt(0));
    const decode = (value) => new TextDecoder().decode(decodeBytes(value));
    const encodeBytes = (bytes) => {
      let binary = "";
      for (let index = 0; index < bytes.length; index += 32768) {
        binary += String.fromCharCode(...bytes.subarray(index, index + 32768));
      }
      return btoa(binary);
    };
    const mediaTypes = {
      avif: "image/avif",
      gif: "image/gif",
      jpg: "image/jpeg",
      jpeg: "image/jpeg",
      mp4: "video/mp4",
      png: "image/png",
      webm: "video/webm",
      webp: "image/webp"
    };
    const loadAsset = async (file) => {
      const response = await fetch(file, { cache: "no-store", credentials: "omit", redirect: "error" });
      if (!response.ok) throw new Error("Could not load local demo asset: " + file);
      const extension = file.split(".").pop().toLowerCase();
      const contentType = mediaTypes[extension] || "application/octet-stream";
      const bytes = new Uint8Array(await response.arrayBuffer());
      return { base64: encodeBytes(bytes), contentType, file, kind: "asset" };
    };
    Promise.allSettled(assetFiles.map(loadAsset)).then((results) => {
      const runtimeSources = runtimeFiles.map((file) => new URL(file, location.href).href).join(" ");
      const source = decode(encodedHtml).replace("__NEUFORM_RUNTIME_SOURCES__", runtimeSources);
      const mediaAssets = [];
      for (const result of results) {
        if (result.status !== "fulfilled") continue;
        mediaAssets.push(result.value);
      }
      frame.addEventListener("load", () => {
        frame.contentWindow.postMessage({ type: "neuform-assets-v1", assets: mediaAssets }, "*");
      }, { once: true });
      frame.srcdoc = source;
    }).catch((error) => {
      document.body.innerHTML = '<div class="error">Unable to load this sandboxed demo.</div>';
      console.error(error);
    });
  </script>
</body>
</html>

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Security

What our scanner noticed· Medium risk

  • Large base64-encoded blobs

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
Meng To
Publisher
Meng To (Community)
Source
MengTo/Skills · agent-skills/web-design/high-contrast-skeuomorphic-clean · commit 5ea1661
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Meng To.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download high-contrast-skeuomorphic-clean.zip