/* Google Fonts now loaded asynchronously in head.html for better performance */


/*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */

/*
Document
========
*/

/**
Use a better box model (opinionated).
*/

*,
*::before,
*::after {
  box-sizing: border-box;
}

/**
Use a more readable tab size (opinionated).
*/

:root {
  -moz-tab-size: 4;
  -o-tab-size: 4;
     tab-size: 4;
}

/**
1. Correct the line height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
*/

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/*
Sections
========
*/

/**
Remove the margin in all browsers.
*/

body {
  margin: 0;
}

/**
Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
*/

body {
  font-family:
		system-ui,
		-apple-system, /* Firefox supports this but not yet `system-ui` */
		'Segoe UI',
		Roboto,
		Helvetica,
		Arial,
		sans-serif,
		'Apple Color Emoji',
		'Segoe UI Emoji';
}

/*
Grouping content
================
*/

/**
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
}

/*
Text-level semantics
====================
*/

/**
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr[title] {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/**
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/**
1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
2. Correct the odd 'em' font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family:
		ui-monospace,
		SFMono-Regular,
		Consolas,
		'Liberation Mono',
		Menlo,
		monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/**
Prevent 'sub' and 'sup' elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
Tabular data
============
*/

/**
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
}

/*
Forms
=====
*/

/**
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
Remove the inheritance of text transform in Edge and Firefox.
1. Remove the inheritance of text transform in Firefox.
*/

button,
select { /* 1 */
  text-transform: none;
}

/**
Correct the inability to style clickable types in iOS and Safari.
*/

button,
[type='button'],
[type='submit'] {
  -webkit-appearance: button;
}

/**
Remove the inner border and padding in Firefox.
*/

/**
Restore the focus styles unset by the previous rule.
*/

/**
Remove the additional ':invalid' styles in Firefox.
See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737
*/

/**
Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
*/

legend {
  padding: 0;
}

/**
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/**
Correct the cursor style of increment and decrement buttons in Safari.
*/

/**
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

/**
Remove the inner padding in Chrome and Safari on macOS.
*/

/**
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to 'inherit' in Safari.
*/

/*
Interactive
===========
*/

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/**
 * Manually forked from SUIT CSS Base: https://github.com/suitcss/base
 * A thin layer on top of normalize.css that provides a starting point more
 * suitable for web applications.
 */

/**
 * Removes the default spacing and border for appropriate elements.
 */

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

button {
  background-color: transparent;
  background-image: none;
}

/**
 * Work around a Firefox/IE bug where the transparent `button` background
 * results in a loss of the default `button` focus styles.
 */

button:focus {
  outline: 1px dotted;
  outline: 5px auto -webkit-focus-ring-color;
}

fieldset {
  margin: 0;
  padding: 0;
}

ol,
ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

/**
 * Tailwind custom reset styles
 */

/**
 * 1. Use the user's configured `sans` font-family (with Tailwind's default
 *    sans-serif font stack as a fallback) as a sane default.
 * 2. Use Tailwind's default "normal" line-height so the user isn't forced
 *    to override it to ensure consistency even when using the default theme.
 */

html {
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 1 */
  line-height: 1.5; /* 2 */
}

/**
 * Inherit font-family and line-height from `html` so users can set them as
 * a class directly on the `html` element.
 */

body {
  font-family: inherit;
  line-height: inherit;
}

/**
 * 1. Prevent padding and border from affecting element width.
 *
 *    We used to set this in the html element and inherit from
 *    the parent element for everything else. This caused issues
 *    in shadow-dom-enhanced elements like <details> where the content
 *    is wrapped by a div with box-sizing set to `content-box`.
 *
 *    https://github.com/mozdevs/cssremedy/issues/4
 *
 *
 * 2. Allow adding a border to an element by just adding a border-width.
 *
 *    By default, the way the browser specifies that an element should have no
 *    border is by setting it's border-style to `none` in the user-agent
 *    stylesheet.
 *
 *    In order to easily add borders to elements by just setting the `border-width`
 *    property, we change the default border-style for all elements to `solid`, and
 *    use border-width to hide them instead. This way our `border` utilities only
 *    need to set the `border-width` property instead of the entire `border`
 *    shorthand, making our border utilities much more straightforward to compose.
 *
 *    https://github.com/tailwindcss/tailwindcss/pull/116
 */

*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}

/*
 * Ensure horizontal rules are visible by default
 */

hr {
  border-top-width: 1px;
}

/**
 * Undo the `border-style: none` reset that Normalize applies to images so that
 * our `border-{width}` utilities have the expected effect.
 *
 * The Normalize reset is unnecessary for us since we default the border-width
 * to 0 on all elements.
 *
 * https://github.com/tailwindcss/tailwindcss/issues/362
 */

img {
  border-style: solid;
}

textarea {
  resize: vertical;
}

input::-moz-placeholder, textarea::-moz-placeholder {
  color: #9ca3af;
}

input:-ms-input-placeholder, textarea:-ms-input-placeholder {
  color: #9ca3af;
}

input::placeholder,
textarea::placeholder {
  color: #9ca3af;
  opacity: 1;
}

button,
[role="button"] {
  cursor: pointer;
}

table {
  border-collapse: collapse;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/**
 * Reset links to optimize for opt-in styling instead of
 * opt-out.
 */

a {
  color: inherit;
  text-decoration: inherit;
}

/**
 * Reset form element properties that are easy to forget to
 * style explicitly so you don't inadvertently introduce
 * styles that deviate from your design system. These styles
 * supplement a partial reset that is already applied by
 * normalize.css.
 */

button,
input,
optgroup,
select,
textarea {
  padding: 0;
  line-height: inherit;
  color: inherit;
}

/**
 * Use the configured 'mono' font family for elements that
 * are expected to be rendered with a monospace font, falling
 * back to the system monospace stack if there is no configured
 * 'mono' font family.
 */

pre,
code,
kbd,
samp {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

/**
 * Make replaced elements `display: block` by default as that's
 * the behavior you want almost all of the time. Inspired by
 * CSS Remedy, with `svg` added as well.
 *
 * https://github.com/mozdevs/cssremedy/issues/14
 */

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block;
  vertical-align: middle;
}

/**
 * Constrain images and videos to the parent width and preserve
 * their instrinsic aspect ratio.
 *
 * https://github.com/mozdevs/cssremedy/issues/14
 */

img,
video {
  max-width: 100%;
  height: auto;
}

.container {
  width: 100%;
}

@media (min-width: 640px) {
  .container {
    max-width: 640px;
  }
}

@media (min-width: 768px) {
  .container {
    max-width: 768px;
  }
}

@media (min-width: 1024px) {
  .container {
    max-width: 1024px;
  }
}

@media (min-width: 1280px) {
  .container {
    max-width: 1280px;
  }
}

@media (min-width: 1536px) {
  .container {
    max-width: 1536px;
  }
}

.appearance-none {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

.bg-transparent {
  background-color: transparent;
}

.bg-black {
  --tw-bg-opacity: 1;
  background-color: rgba(0, 0, 0, var(--tw-bg-opacity));
}

.bg-white {
  --tw-bg-opacity: 1;
  background-color: rgba(255, 255, 255, var(--tw-bg-opacity));
}

.rounded {
  border-radius: 0.25rem;
}

.border {
  border-width: 1px;
}

.block {
  display: block;
}

.inline-block {
  display: inline-block;
}

.inline {
  display: inline;
}

.flex {
  display: flex;
}

.table {
  display: table;
}

.hidden {
  display: none;
}

.flex-col {
  flex-direction: column;
}

.flex-wrap {
  flex-wrap: wrap;
}

.items-center {
  align-items: center;
}

.justify-center {
  justify-content: center;
}

.flex-3 {
  flex: 3 3 0%;
}

.flex-grow {
  flex-grow: 1;
}

.text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}

.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}

.list-disc {
  list-style-type: disc;
}

.m-0 {
  margin: 0px;
}

.m-2 {
  margin: 0.5rem;
}

.m-4 {
  margin: 1rem;
}

.my-2 {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}

.my-4 {
  margin-top: 1rem;
  margin-bottom: 1rem;
}

.mx-4 {
  margin-left: 1rem;
  margin-right: 1rem;
}

.my-8 {
  margin-top: 2rem;
  margin-bottom: 2rem;
}

.my-16 {
  margin-top: 4rem;
  margin-bottom: 4rem;
}

.mx-auto {
  margin-left: auto;
  margin-right: auto;
}

.mb-3 {
  margin-bottom: 0.75rem;
}

.ml-3 {
  margin-left: 0.75rem;
}

.mb-4 {
  margin-bottom: 1rem;
}

.focus\:outline-none:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.p-3 {
  padding: 0.75rem;
}

.p-4 {
  padding: 1rem;
}

.p-8 {
  padding: 2rem;
}

.py-0 {
  padding-top: 0px;
  padding-bottom: 0px;
}

.px-1 {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}

.py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}

.px-8 {
  padding-left: 2rem;
  padding-right: 2rem;
}

.pr-16 {
  padding-right: 4rem;
}

.pb-4 {
  padding-bottom: 1rem;
}

.pb-8 {
  padding-bottom: 2rem;
}

.pb-12 {
  padding-bottom: 3rem;
}

.pt-12 {
  padding-top: 3rem;
}

.mb-12 {
  margin-bottom: 3rem;
}

.mt-12 {
  margin-top: 3rem;
}

.absolute {
  position: absolute;
}

.relative {
  position: relative;
}

.top-0 {
  top: 0px;
}

.left-0 {
  left: 0px;
}

.-top-6 {
  top: -1.5rem;
}

.-top-8 {
  top: -2rem;
}

.top-1\/2 {
  top: 50%;
}

.left-1\/2 {
  left: 50%;
}

.gap-8 {
  gap: 2rem;
}

* {
  --tw-shadow: 0 0 #0000;
}

.shadow {
  --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06) !important;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important;
}

* {
  --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgba(59, 130, 246, 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
}

.text-center {
  text-align: center;
}

.text-black {
  --tw-text-opacity: 1;
  color: rgba(0, 0, 0, var(--tw-text-opacity));
}

.text-white {
  --tw-text-opacity: 1;
  color: rgba(255, 255, 255, var(--tw-text-opacity));
}

.text-red {
  --tw-text-opacity: 1;
  color: rgba(244, 67, 54, var(--tw-text-opacity));
}

.text-gray-600 {
  --tw-text-opacity: 1;
  color: rgba(107, 114, 128, var(--tw-text-opacity));
}

.w-full {
  width: 100%;
}

.z-0 {
  z-index: 0;
}

.z-10 {
  z-index: 10;
}

.-z-1 {
  z-index: -1;
}

.transform {
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.origin-0 {
  transform-origin: 0%;
}

.duration-300 {
  transition-duration: 300ms;
}

@-webkit-keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@-webkit-keyframes ping {
  75%, 100% {
    transform: scale(2);
    opacity: 0;
  }
}

@keyframes ping {
  75%, 100% {
    transform: scale(2);
    opacity: 0;
  }
}

@-webkit-keyframes pulse {
  50% {
    opacity: .5;
  }
}

@keyframes pulse {
  50% {
    opacity: .5;
  }
}

@-webkit-keyframes bounce {
  0%, 100% {
    transform: translateY(-25%);
    -webkit-animation-timing-function: cubic-bezier(0.8,0,1,1);
            animation-timing-function: cubic-bezier(0.8,0,1,1);
  }

  50% {
    transform: none;
    -webkit-animation-timing-function: cubic-bezier(0,0,0.2,1);
            animation-timing-function: cubic-bezier(0,0,0.2,1);
  }
}

@keyframes bounce {
  0%, 100% {
    transform: translateY(-25%);
    -webkit-animation-timing-function: cubic-bezier(0.8,0,1,1);
            animation-timing-function: cubic-bezier(0.8,0,1,1);
  }

  50% {
    transform: none;
    -webkit-animation-timing-function: cubic-bezier(0,0,0.2,1);
            animation-timing-function: cubic-bezier(0,0,0.2,1);
  }
}

/* Google Fonts now loaded asynchronously in head.html for better performance */

body {
  font-family: 'Open Sans', sans-serif;
}

h1,
.h1 {
  font-size: 60px;
}

h2,
.h2 {
  font-size: 40px;
}

h3,
.h3 {
  font-size: 30px;
}

h4,
.h4 {
  font-size: 22px;
}

h5,
.h5 {
  font-size: 18px;
}

h6,
.h6 {
  font-size: 16px;
}

.button:focus {
  outline: none;
}

.button:hover {
  cursor:pointer;
}

.vendi-blue-500 {
  background-color: #1858d9;
}

.hover\:vendi-blue-400:hover {
  background-color: #186cd9;
}

.outline input:not(:-moz-placeholder-shown) ~ label {
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  --tw-scale-x: .75;
  --tw-scale-y: .75;
  --tw-translate-y: -2rem;
}

.outline input:not(:-ms-input-placeholder) ~ label {
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  --tw-scale-x: .75;
  --tw-scale-y: .75;
  --tw-translate-y: -2rem;
}

.outline input:focus-within ~ label, input:not(:placeholder-shown) ~ label {
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  --tw-scale-x: .75;
  --tw-scale-y: .75;
  --tw-translate-y: -2rem;
}

.outline input:focus-within ~ label {
  --tw-text-opacity: 1;
  color: rgba(59, 130, 246, var(--tw-text-opacity));
}

.outline input:not(:-moz-placeholder-shown) ~ label {
  margin-left: 0.75rem;
  padding-top: 0px;
  padding-bottom: 0px;
  padding-left: 0.25rem;
  padding-right: 0.25rem;
  z-index: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  --tw-scale-x: .75;
  --tw-scale-y: .75;
  --tw-translate-y: -2rem;
}

.outline input:not(:-ms-input-placeholder) ~ label {
  margin-left: 0.75rem;
  padding-top: 0px;
  padding-bottom: 0px;
  padding-left: 0.25rem;
  padding-right: 0.25rem;
  z-index: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  --tw-scale-x: .75;
  --tw-scale-y: .75;
  --tw-translate-y: -2rem;
}

.outline input:focus-within ~ label, .outline input:not(:placeholder-shown) ~ label {
  margin-left: 0.75rem;
  padding-top: 0px;
  padding-bottom: 0px;
  padding-left: 0.25rem;
  padding-right: 0.25rem;
  z-index: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  --tw-scale-x: .75;
  --tw-scale-y: .75;
  --tw-translate-y: -2rem;
}

::-moz-placeholder { /* Mozilla Firefox 19+ */
  opacity:  0;
}

:-ms-input-placeholder { /* Internet Explorer 10-11 */
  opacity:  0;
}

::placeholder { /* Most modern browsers support this now. */
  opacity:  0;
}

@media (min-width: 768px) {
  .md\:flex {
    display: flex;
  }

  .md\:flex-nowrap {
    flex-wrap: nowrap;
  }

  .md\:justify-start {
    justify-content: flex-start;
  }

  .md\:flex-1 {
    flex: 1 1 0%;
  }
  .md\:flex-spacer {
    flex-grow: 1;
  }

  .md\:my-8 {
    margin-top: 2rem;
    margin-bottom: 2rem;
  }

  .md\:my-16 {
    margin-top: 4rem;
    margin-bottom: 4rem;
  }

  .md\:px-0 {
    padding-left: 0px;
    padding-right: 0px;
  }

  .md\:text-left {
    text-align: left;
  }
}

.form_register {
  width: 480px;
  margin: 0 auto;
  background: #fff;
  min-height: 300px;
  padding: 20px 30px;
  font-family: roboto,sans-serif;border: 1px solid #ececec;
  }
.form_register label {
  font-size: 14px;margin: 0;display: block;
  text-align: left;
}
.infotest{margin-bottom: 20px;}
.infotest p {
  font-size: 14px;
  text-align: center;
  margin: 5px 0px;color: #363636;
}
.infotest h5 {
  font-size: 15px;
  text-align: center;
  margin: 6px 0px;color:#313131;font-weight: 600;
}
.autoGradeStart {
    width: 100%;
    margin: 0 auto;
    background: #0047FF;
    min-height: 200px;
    font-family: roboto,sans-serif;border: 1px solid #0047FF;
}
.autoGradeStartWhite {
    width: 100%;
    min-height: 200px;
    font-family: roboto,sans-serif;border: 1px solid #ececec;
}
.autoGradeStartForm {
    width: 100%;
    margin: 0 auto;
    min-height: 200px;
    background: #212c39;
    font-family: roboto,sans-serif;
    max-width: 480px;
}
.autoGradeCapture {
    max-width: 480px;
    width: 100%;
    margin: 40px auto;
    background: #fff;
    padding: 50px;
    border-radius: 8px;
    min-height: 200px;
    padding: 20px 30px;
    font-family: roboto,sans-serif;border: 1px solid #ececec;
}
.autoGradeButtonBackground {
    max-width: 480px;
    margin: 0 auto;
    background: #101F25;
    padding: 20px;
    border-radius: 0px;
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
    min-height: 200px;
    margin-left: -30px;
    margin-right: -30px;
    margin-top: 20px;
    margin-bottom: -20px;
    font-family: roboto,sans-serif;border: 1px solid #ececec;
}
.autoGradeStart h2 {
    font-family: Roboto;
    text-align: center;
    color: #fff;
    margin: 55px 0px;
}
.autoGradeStartWhite h2 {
    font-family: Roboto;
    text-align: center;
    color: #000;
    margin: 55px 0px;
    margin-left: auto;
    margin-right: auto;
}
.autoGradeStartForm h4{
    font-family: Roboto;
    text-align: center;
    color: #5bd5a7;
    margin: 30px 0px;
    margin-left: auto;
    margin-right: auto;
    font-size: 1.875em;
    font-weight: bold;
}
.autoGradeStartForm p{
    font-family: Roboto;
    text-align: center;
    color: #fff;
    margin: 10px 0px;
    margin-left: auto;
    margin-right: auto;
    font-weight: bold;
}
.autoGradeStart h1 {
    font-family: Roboto;
    text-align: center;
    color: #fff;
    margin: 55px 0px;
}
.autoGradeCapture h2 {
    font-family: Roboto;
    text-align: center;
    color: #000;
    margin: 55px 0px;
}
.autoGradeStart label {
    font-family: Roboto;
    text-align: center;
    color: #fff;
}
.autoGradeStart button {
  width: 200px;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 50px;
  padding: 18px 10px;
  font-size: 16px;
  text-transform: uppercase;
  background-color: white;
  color: #0047FF;
  border-radius: 50px;
  font-weight: 600;
  margin-top: 12px;margin-bottom: 20px;
}
.autoGradeCapture button {
  width: 100%;
  min-height: 50px;
  padding: 18px 10px;
  font-size: 16px;
  text-transform: uppercase;
  background-color: #0047FF;
  color: white;
  border-radius: 4px;
  font-weight: 600;
  margin-top: 12px;margin-bottom: 20px;
  border: 0px
}
.basicButton button {
  width: 100%;
  min-height: 50px;
  padding: 0px 0px;
  font-size: 16px;
  text-transform: uppercase;
  background-color: #fff;
  color: black;
  border-radius: 0px;
  font-weight: 600;
  margin-top: 0x;margin-bottom: 0px;
  border: 0px
}
.img-holder {position: relative;}
.img-holder .link {
    position: absolute;
    bottom: 10px; /*your button position*/
    right: 10px; /*your button position*/
}
.donut {
    background: transparent;
    display: block;
    position: absolute;
    border-top: 10vh solid rgba(255, 255, 255, .5);
    border-bottom: 10vh solid rgba(255, 255, 255, .5);
    border-left: 10vw solid rgba(255, 255, 255, .5);
    border-right: 10vw solid rgba(255, 255, 255, .5);
}

.left {
    background: rgba(0, 0, 0, .5);
    display: block;
    position: absolute;
    height: 100%;
}
.right {
    background: rgba(0, 0, 0, .5);
    display: block;
    position: absolute;
    height: 100%;
}
.top {
    background: rgba(0, 0, 0, .5);
    display: block;
    position: absolute;
}
.bottom {
    background: rgba(0, 0, 0, .5);
    display: block;
    position: absolute;
}





  .form_register input {
  width: 100%;
  padding: 12px 14px;
  margin: 2px 0;
  display: block;
  border: 1px solid #fff;
  border-radius: 2px;
  background: #f2f2f2;
  box-sizing: border-box;
  margin-bottom: 18px;}

.form_register  select {

-webkit-appearance: none;
-moz-appearance: none;
appearance: none;

-moz-border-radius: 2px;
-webkit-border-radius: 2px;
width: 100%;
border-radius: 2px;
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAACsAAAArAGGCTTUAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAABtQTFRF////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeBnKPQAAAAl0Uk5TAA0VHyU3xtLw0EtSSAAAAD9JREFUCFtjYMANDCGUMEO6AohmKmOIKAIx1FsZWNuBQkwVAQxgIaAAA0gILAASAguAhCACQKFWqJksDgx4AQAgMQsHi6mZaQAAAABJRU5ErkJggg==) no-repeat;
background-position: right center;
background-color: #f2f2f2;
color: #000000;
border: 1px solid #fff;
padding: 12px 14px;
margin: 2px 0;display: block;background-color: #f2f2f2;
background-size: 14px 15px;
background-position: right 0.5em top 50%, 0 0;

}

  button.submitbtn {
  width: 100%;
  padding: 18px 10px;
  font-size: 16px;
  text-transform: uppercase;
  background: #0047ff;
  color: #fff;
  border: unset;
  font-weight: 600;
  margin-top: 12px;margin-bottom: 20px;}


  .warranty-thankyou.section {padding: 35px 0;}
  .warranty-form.section {
    padding: 35px 0;
  }
  .succesmsg {
    width: 480px;
    background: #0047ff;
    margin: 0 auto;
    min-height: 480px;
    padding: 20px 30px;
    color: #fff;
    display: flex;
    flex-wrap: wrap;
    align-content: center;
    align-items: center;
  }
  .succesmsg h1 {margin: 0;font-size: 36px;width: 85%;text-align: left;}
  .succesmsg p{font-size: 14px;color:#fff}

  img.icon-ds {
  width: 80px;
  margin: 0 auto;
  display: block;
  margin-bottom: 14px;}



  @media screen and (max-width: 767px){
    .form_register{padding: 20px 20px;}
  .form_register {width:95%;}
  .warranty-thankyou.section {padding: 0px 0;margin: 0% 0%;}
  }

  .animation-container {
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999; /* Ensure it is on top of everything */
    pointer-events: none; /* Allow interactions with elements underneath */
    flex-direction: column;
  }

  .loader {
    background-color: rgba(255,255,255,.4);
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
  }

  .loader::after {
    content:'';
    display:block;
    position:absolute;
    left:48%;top:40%;
    border: 8px solid #050505;
    border-radius: 50%;
    border-top: 8px solid #0047ff;
    width: 60px;
    height: 60px;
    -webkit-animation: spin 2s linear infinite; /* Safari */
    animation: spin 2s linear infinite;z-index:9999
}

  /* Safari */
  @-webkit-keyframes spin {
    0% { -webkit-transform: rotate(0deg); }
    100% { -webkit-transform: rotate(360deg); }
  }

  @keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
  }



/* styling for Value Pages Starts here */

.value-s1-wrapper {
    display: flex;
    justify-content: center;
    align-items: start;
}
.value-page-s1 .value-s1-wrapper .value-s1{
    width: 50% !important;
}
.value-page-s1 {
    margin: 0;
    padding-bottom: 27.5px;
}
.left-section {
    position: relative;
}
.value-s1-wrapper .left-section .left-content-wrapper p {
    height: auto;
    max-width: 502px;
    font-family: Roboto;
    font-size: 36px;
    font-weight: 400;
    line-height: 50px;
    letter-spacing: 0em;
    text-align: left;
}
.value-s1-wrapper .left-section .left-content-wrapper p span {
    color: #0056f8;
    font-weight: 500;
}
.value-s1-wrapper .left-section .left-content-wrapper {
    position: absolute;
    top: 0px;
    left: 85px;
    background: #fff;
    z-index: 9999;
    width: 100%;
    padding: 130px 50px;
}
.value-s1 img {
    height: 100%;
    object-fit: contain;
}
.value-page-s1 .left-section {
    z-index: 0;
}
/* Styling for premium Tech */
.tech-o {
    padding: 27.5px 0px;
}
.tech-title h2 {
    font-family: Roboto;
    font-size: 50px;
    font-weight: 500;
    line-height: 70px;
    letter-spacing: 0em;
    text-align: center;
    color: #000;
    margin: 55px 0px;
}
.connecting-wrapper, .wellness-wrapper-o,.env-o {
    display: flex;
    justify-content: center;
    align-items: center;
}
.con-s1, .well-s2, .env-s1, .r-s1 {
    width: 30%;
}
.con-s2,.well-s1,.env-s2, .r-s2 {
    width: 70%;
}
.con-content-wrapper h2, .well-content-wrapper h2,.env-content .env-content-wrapper h2 {
    font-family: Roboto;
    font-size: 28px;
    font-weight: 500;
    line-height: 38px;
    letter-spacing: 0em;
    text-align: left;
    margin-bottom: 30px;
    color: #0056f8;
}
.con-content-wrapper p{
    height: auto;
    max-width: 489px;
    width: 100%;
    font-family: Roboto;
    font-weight: 400, Regular;
    font-size: 17px;
    line-height: 38px;
    color: #000;
}
.con-content-wrapper {
    width: fit-content;
    margin-left: 56px;
}
.well-content-wrapper p,.well-content-wrapper h2{
  text-align: right
}
.well-content-wrapper {
    width: fit-content;
    margin: 0 0 0 auto;
    padding-right: 56px;
}
.well-content-wrapper p {
    margin: 0 0 0 auto;
}
.well-content-wrapper p{
  height: auto;
  max-width: 530px;
  width: 100%;
  font-family: Roboto;
  font-weight: 400, Regular;
  font-size: 17px;
  line-height: 38px;
  color: #000;
}
.env-content .env-content-wrapper p {
    height: auto;
    max-width: 492px;
    width: 100%;
    font-family: Roboto;
    font-weight: 400;
    font-size: 17px;
    line-height: 38px;
    color: #000;
}
.env-content .env-content-wrapper {
    margin-left: 56px;
}


/* Premium Devices */
.premium-content-wrapper ul {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-direction: column;
    width: fit-content;
    margin: 80px auto;
    z-index: 9
}
.premium-content-wrapper ul li {
    display: flex;
    justify-content: flex-start;
    gap: 30px;
    margin: 15px 0px;
}
.premium-content-wrapper ul li p {
    font-family: Roboto;
    font-size: 28px;
    font-weight: 400;
    line-height: 30px;
    letter-spacing: 0em;
    text-align: left;
    color: #000;
}
.premium-content-wrapper h2 {
    font-family: Roboto;
    font-size: 50px;
    font-weight: 500;
    line-height: 70px;
    letter-spacing: 0em;
    text-align: left;
    height: auto;
    max-width: 791px;
    width: 100%;
    margin: 0 auto;
    color: #0047FF;
}
.premium-o {
    position: relative;
    padding: 27.5px 0px;
}
.premium-o::before {
    content: "";
    position: absolute;
    background-image: url(../images/premium-before.webp);
    background-size: contain;
    background-position: 0;
    top: -50px;
    left: 0;
    width: 384px;
    height: 384px;
    background-repeat: no-repeat;
}
.premium-o::after{
  content: "";
  position: absolute;
  background-image: url(../images/premium-after.webp);
  background-size: contain;
  background-position: 0;
  bottom: 200px;
  right: 0;
  width: 300px;
  height: 154px;
  background-repeat: no-repeat;
}
.premium-content-wrapper {
    z-index: 9;
    position: relative;
}

/* Banner Bottom */
.bb-img img {
    object-fit: cover;
}
.bb-content-wrapper p {
    height: auto;
    max-width: 843px;
    width: 100%;
    font-family: Roboto;
    font-size: 38px;
    font-weight: 400;
    line-height: 50px;
    letter-spacing: 0em;
    text-align: center;
    margin: 0 auto 20px;
    color: #fff;
}
.bb-content-wrapper {
    width: fit-content;
    margin: 0 auto;
    padding: 48px 39px 48px 38px;
    background: #0047ff;
    text-align: center;
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translate(-50%, 0%)!important;
}
.bb-content-wrapper a {
    font-family: Roboto;
    font-size: 24px;
    font-weight: 500;
    line-height: 28px;
    letter-spacing: 0em;
    text-align: center;
    color: #5BD5A7;
}
.bottom-banner {
    position: relative;
    padding: 27.5px 0px;
}
.bb-content-wrapper a:hover {
    color: #fff;
}

/* Recycle section starts from here */
.recycle-wrapper {
    display: flex;
    justify-content: flex-start;
    align-items: self-start;
    position: relative;
    padding-top: 100px;
}
.recycle-left h2, .res-title {
    font-family: Roboto;
    font-size: 85px;
    font-weight: 500;
    line-height: 95px;
    letter-spacing: 0em;
    text-align: left;
    color: #000000;
}
.res-title{
  display: none;
}
.recycle-left p {
    font-family: Roboto;
    font-size: 22px;
    font-weight: 400;
    line-height: 30px;
    letter-spacing: 0em;
    text-align: left;
    height: auto;
    max-width: 412px;
    width: 100%;
    margin: 25px 0px;
}
.recycle-left a {
    font-family: Roboto;
    font-size: 20px;
    font-weight: 500;
    line-height: 23px;
    letter-spacing: 0em;
    text-align: left;
    color: #0047FF;
}
.recycle-left {
    margin-left: 80px;
}
section.recycle {
    margin: 0;
    padding: 27.4px 0px 0px;
}
.recycle-right img {
    object-fit: contain;
}


/* Mobile section */
.recycle-mo {
  background-image: url(../images/Phone.webp);
  background-position: -57% 100%;
  background-size: 112%;
  background-repeat: no-repeat;
  padding: 100px 0 50px;
}
.recycle-mobile h2 {
    font-size: 24px;
    text-align: center;
    font-weight: 600;
    margin: 110px 0px 0px;
}
.mo-content-wrapper p {
    max-width: 170px;
    margin-left: 10px;
    font-size: 16px;
    margin-bottom: 20px
}
.mo-content-wrapper a {
    margin-left: 10px;
    font-family: Roboto;
    font-size: 20px;
    font-weight: 500;
    line-height: 23px;
    letter-spacing: 0;
    text-align: left;
    color: #0047ff;
}
section.recycle-mobile {
    margin: 0;
    display: none;
}
.connecting-img img, .wellness-img img,.env-img img {
  margin: 0px 10px;
}
@media(max-width: 1920px){
  /* .bb-content-wrapper{
        transform: translateX(-10%) !important;
  } */
}
@media(min-width: 1800px){
  .value-s1-wrapper .left-section .left-content-wrapper {
    position: absolute;
    top: 0;
    left: 106px;
    background: #fff;
    z-index: 9999;
    width: 100%;
    padding: 220px 200px 220px;
  }
  .value-s1-wrapper .left-section .left-content-wrapper p{
    margin: 0 auto;
  }
  .connecting-img img, .wellness-img img,.env-img img {
    object-fit: contain;
  }
  .premium-content-wrapper h2{
    text-align: center;
  }
}
@media(max-width: 1199px){
  .value-s1-wrapper .left-section .left-content-wrapper{
    padding: 50px;
  }
  .tech-title h2{
    font-size: 44px;
  }
  .connecting-wrapper, .wellness-wrapper-o, .env-o {
    margin: 20px 0px;
  }
  .premium-o::before{
    width: 150px;
    top: -60px;
    z-index: 1
  }
  .premium-o::after{
    width: 200px;
    z-index: 1
  }
  .bb-content-wrapper{
    bottom: -50px;
  }
  .bb-content-wrapper p{
    font-size: 30px;
  }
  .recycle-left h2{
    font-size: 65px;
    line-height: 70px;
  }
}
@media(max-width: 991px){
  .value-s1-wrapper .left-section .left-content-wrapper {
    padding: 20px;
  }
  .value-s1-wrapper .left-section .left-content-wrapper p{
    font-size: 29px;
  }
  .tech-title h2 {
      font-size: 30px;
      max-width: 450px;
      margin: 0 auto;
      line-height: 40px;
  }
  .con-content-wrapper h2, .well-content-wrapper h2, .env-content .env-content-wrapper h2{
    font-size: 28px;
    line-height: 30px;
  }
  .connecting-wrapper, .wellness-wrapper-o, .env-o {
    margin: 50px 0;
  }
  .well-content-wrapper p,.con-content-wrapper p, .env-content .env-content-wrapper p{
    font-size: 18px;
    line-height: 30px;
  }
  .premium-content-wrapper h2{
    font-size: 30px;
    line-height: 40px;
    text-align: center;
  }
  .bb-content-wrapper{
    width: 90%;
  }
  .recycle-left {
    margin-left: 50px;
    width: 50%;
  }
  .recycle-left h2 {
    font-size: 40px;
    line-height: 50px;
  }
  .recycle-left p{
    margin: 8px 0px;
  }
}
@media(max-width: 767px){
  .value-s1-wrapper .left-section .left-content-wrapper p {
    font-size: 22px;
    line-height: 35px;
     }
     .value-s1-wrapper .left-section .left-content-wrapper{
       left: 60px;
     }
     .premium-o::before {
    width: 250px;
    height: 250px;
    top: 100px;
    z-index: 1;
}
.premium-o::after {
    width: 150px;
    z-index: 1;
    height: 150px;
    bottom: 150px;
}
.bb-content-wrapper p {
    font-size: 18px;
    line-height: 30px;
}
.bb-content-wrapper{
      padding: 48px 39px 50px 38px;
}
.recycle-left {
    margin-left: 20px;
    width: 70%;
}
.recycle-left h2 {
    display: none;
}
.res-title {
    display: block;
    font-size: 40px;
    text-align: left;
    margin: 40px 20px 0;
}
.recycle-wrapper{
  padding-top: 10px;
}
.premium-content-wrapper ul li p,.recycle-left p{
  font-size: 18px;
}
.premium-content-wrapper ul li img {
    width: 25px;
    height: 25px;
}
}

@media(max-width: 640px){
  .left-section {
    position: absolute;
    bottom: -20px;
    left: 0px;
  }
  .value-s1-wrapper .left-section .left-content-wrapper{
    position: relative;
    padding: 30px;
  }
  .value-s1-wrapper {
    flex-direction: column;
    position: relative;
  }
  .value-page-s1 .value-s1-wrapper .value-s1 {
    width: 100%!important;
  }
  .left-section .left-content-wrapper {
    left: 0 !important;
    width: fit-content !important;
  }
  .value-s1-wrapper .left-section .left-content-wrapper p {
    font-size: 22px;
    line-height: 35px;
    max-width: 350px;
}

  /* Content section */
  .connecting-wrapper {
    flex-direction: column;
  }
  .con-s1, .con-s2 {
    width: 100%;
  }
  .con-s1 img {
    object-fit: contain;
  }
  .con-s2 {
    display: flex;
    justify-content: center;
    position: relative;
    top: -140px;
    background: #fff;
    width: fit-content;
    padding: 30px;
  }
  .con-content-wrapper{
    margin-left: 0px;
  }

  /* wellness; */
  .wellness-wrapper-o {
      flex-direction: column;
  }
  .well-s1, .well-s2 {
    width: 100%;
  }
  .well-s2 img {
    object-fit: contain;
  }
  .wellness-content.well-s1 {
    order: 2;
  }
  .well-content-wrapper {
    width: fit-content;
    margin: 0;
    padding-right: 0;
  }
  .well-content-wrapper h2, .well-content-wrapper p {
    text-align: left;
  }
  .wellness-content.well-s1 {
    display: flex;
    justify-content: center;
    position: relative;
    top: -140px;
    background: #fff;
    width: fit-content;
    padding: 30px;
  }
  .well-s1 p,.con-s2 p, .env-content-wrapper p {
    max-width: 430px;
    width: 100%;
  }
  .premium-content-wrapper ul li p{
    font-size: 20px;
  }

  /* Environment */
  .env-o {
    flex-direction: column;
    margin-bottom: 0px;
  }
  .env-s1, .env-s2 {
    width: 100%;
  }
  .env-s1 img {
    object-fit: contain;
  }
  .env-content .env-content-wrapper{
    margin-left: 0px;
    padding-bottom: 0px;
  }
  .env-s2 {
    display: flex;
    justify-content: center;
  }
  .env-content-wrapper {
    width: fit-content;
    position: relative;
    top: -140px;
    background: #fff;
    padding: 30px;
  }


  /* Premium Device */
  .premium-content-wrapper h2 {
    text-align: left;
    margin-left: 100px;
    max-width: 400px;
    width: 100%;
  }
  .premium-content-wrapper ul{
    margin: 80px 0px 0px 30px;
  }
  .premium-content-wrapper ul li img {
    width: 25px;
    height: 25px;
    object-fit: contain;
  }
  .premium-o::before {
    width: 240px;
    height: 240px;
    top: 0px;
    z-index: 1;
  }
  .premium-o::after{
    bottom: 40px;
  }
  .bb-content-wrapper p {
    font-size: 18px;
    line-height: 30px;
    font-family: Roboto;
    font-weight: 500;
    letter-spacing: 0em;
    text-align: center;
    max-width: 310px;
  }
  .bb-content-wrapper {
    width: fit-content;
  }
  .bb-content-wrapper {
    padding: 48px 100px;
  }

  /* last section */
  .recycle-left p{
    font-size: 16px;
  }
  .recycle-wrapper{
    align-items: flex-end;
  }
  .con-s2,.well-s1,.env-content .env-content-wrapper {
    margin: 15px;
    padding-left: 20px 15px;
  }
  .connecting-img img, .wellness-img img, .env-img img {
    margin: 0;
  }

  .tech-o {
    padding: 100px 0px 55px;
  }
}
@media(max-width: 480px){
  .left-section {
    position: absolute;
    bottom: -70px;
    left: 0;
  }
  .value-s1-wrapper .left-section .left-content-wrapper p {
    font-size: 16px;
    line-height: 25px;
    max-width: 300px;
  }


  /* tech section */
  .tech-title h2,.con-content-wrapper h2,.well-content-wrapper h2,.env-content .env-content-wrapper h2,.premium-content-wrapper h2,.res-title {
    font-size: 24px;
  }
  .well-content-wrapper p, .con-content-wrapper p, .env-content .env-content-wrapper p {
    font-size: 14px;
    line-height: 20px;
  }
.premium-content-wrapper h2{
  margin-left: 20px;
  }
  .premium-o::before {
    width: 140px;
    height: 140px;
    top: 100px;
  }
  .premium-content-wrapper ul {
    margin: 80px 0 0 15px;
  }
  .premium-content-wrapper ul li p {
    font-size: 14px;
  }
  .premium-content-wrapper ul li{
    gap: 10px;
  }
  .premium-o::after{
    width: 100px;
  }
  .bb-content-wrapper {
    padding: 8px 0px;
  }
  .bb-content-wrapper p{
    font-size: 18px;
    margin-bottom: 0px;
  }
  .bb-content-wrapper a,.mo-content-wrapper a{
    font-size: 16px;
  }
  .bb-content-wrapper {
    width: 90%;
    max-width: 100%;
    margin: 0;
    overflow: hidden;
  }
  /* section.recycle-mobile {
    display: block;
  } */
  /* section.recycle {
    display: none;
  } */
  .premium-content-wrapper h2{
    line-height: 35px;
  }
  .recycle-mo{
    padding: 150px 0px 50px;
  }
  .recycle-left, .recycle-right{
    width: 100%;
  }
  .recycle-wrapper{
    display: block;
  }
  .recycle-left {
    margin-left: 10px;
  }
  .recycle-left p{
    max-width: 300px;
  }


  /*  Whitespace Management */
  .wellness-wrapper-o {
    margin-top: -200px;
  }
  .env-o {
    margin-top: -180px;
  }
  .premium-o {
    margin-top: -200px;
  }
  .tech-o {
    padding: 50px 0px;
  }
}


/* Animation Management */
.aos-animate{
  transition: 5s ease-in-out;
}




/* Traceability */
.banner-trace-o {
    margin-bottom: 55px;
}
.banner-trace-i .banner-img img {
    object-fit: cover;
    height: 100%;
    width: 100%;
    left: 0px;
    top: 80px;
    border-radius: 0px;
}
.banner-trace-i {
    position: relative;
}
.banner-trace-i .banner-content {
    position: absolute;
    width: fit-content;
    left: 50%;
    transform: translateX(-50%) !important;
    bottom: 40px;
    background: #fff;
    padding: 50px 80px;
    text-align: center;
}
.banner-trace-i .banner-content h2 {
    font-family: Roboto;
    font-size: 36px;
    font-weight: 600;
    line-height: 50px;
    letter-spacing: 0em;
    text-align: center;
    color: #0047FF;
}
.banner-content h4 {
    font-family: Roboto;
    font-size: 36px;
    font-weight: 400;
    line-height: 50px;
    letter-spacing: 0em;
    text-align: center;
    max-width: 1000px;
    width: 100%;
    margin: 0 auto;
}
h2.tab {
    display: none;
}

/* Phone Girl Section */
.girl-phone {
    margin: 110px 0px;
}
.girl-phone-wrapper img {
    object-fit: contain;
}
.girl-phone-wrapper {
    position: relative;
}
.phone-girl-content {
    position: absolute;
    width: fit-content;
    bottom: 40px;
    text-align: left;
    color: #fff;
}
.phone-girl-content h4 {
    max-width: 929px;
    height: 100%;
    width: 100%;
    font-family: Roboto;
    font-size: 50px;
    font-weight: 400;
    line-height: 60px;
    letter-spacing: 0em;
    text-align: left;
    margin: 0 auto 30px;
    color: #fff;
}
.phone-girl-content h2 {
    font-family: Roboto;
    font-size: 70px;
    font-weight: 600;
    line-height: 80px;
    letter-spacing: 0em;
    text-align: left;
    max-width: 929px;
    margin: 30px auto 20px;
}
.girl-phone-wrapper {
    position: relative;
    display: flex;
    justify-content: center;
    z-index: 3;
}

/* Product Traceability */
.prod-trace-wrapper {
    z-index: 9;
    position: relative;
}
.prod-trace-wrapper p:nth-child(1) {
    height: 100%;
    max-width: 671px;
    margin: 0 auto;
    font-family: Roboto;
    font-size: 50px;
    font-weight: 500;
    line-height: 70px;
    letter-spacing: 0em;
    text-align: center;
    color: #000000;
}
.prod-trace-wrapper p:last-child {
    height: 100%;
    max-width: 590px;
    margin: 50px auto;
    font-family: Roboto;
    font-size: 50px;
    font-weight: 500;
    line-height: 70px;
    letter-spacing: 0em;
    text-align: center;
    color: #000000;
}
.prod-trac-o {
    position: relative;
    margin: 0 0 100px;
}
.prod-trac-o::before {
    content: "";
    position: absolute;
    background-image: url(../images/Traceability/apple_airpods_max_auriculares_bluetooth_01_blanco_l\ 2.webp);
    background-size: contain;
    width: 307px;
    height: 100%;
    top: -350px;
    left: 0px;
    background-repeat: no-repeat;
    background-position: left;
}
.prod-trac-o::after {
    content: "";
    position: absolute;
    background-image: url(../images/Traceability/smart\ 1.webp);
    background-size: contain;
    width: 284px;
    height: 100%;
    bottom: -300px;
    right: 0px;
    background-repeat: no-repeat;
    background-position: 0;
}

/* What we stand for */
.container-stand{
  max-width: 1170px;
  margin: 0 auto;
}
.stand-o {
    padding: 55px 0;
    background: #F7F7F7;
}
.stand-i {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 30px;
}
.stand-i .cards h2 {
    width: fit-content;
    font-family: Roboto;
    font-size: 35px;
    font-weight: 700;
    line-height: 60px;
    letter-spacing: 0em;
    text-align: left;
    margin: 0 0 20px;
}
.stand-i .cards p {
    height: 100%;
    max-width: 338px;
    font-family: Roboto !important;
    font-size: 18px;
    font-weight: 400;
    letter-spacing: 0em;
    text-align: left;
}
.stand-title h2 {
    font-family: Roboto;
    font-size: 55px;
    font-weight: 600;
    line-height: 80px;
    letter-spacing: 0em;
    text-align: left;
    margin: 50px 0;
    color: #0047FF;
}
.stand-o .stand-title h2 {
    margin-top: 0;
}

/* Points check */
.stand-list h3 {
    font-family: Roboto;
    font-size: 35px;
    font-weight: 700;
    line-height: 60px;
    letter-spacing: 0em;
    text-align: left;
    width: fit-content;
    margin: 30px 0;
}
.points-list {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    border-top: 1px solid #000;
    padding-top: 50px;
}
.points-list ul li {
    margin: 10px 0;
}
  .points-list ul li {
    margin: 10px 0;
    font-family: Roboto;
    font-size: 20px;
    font-weight: 400;
    line-height: 30px;
    letter-spacing: 0em;
    text-align: left;
  }
.stand-list {
    margin: 0 0 50px;
}

/* Our Goal */
.goal-i p {
    height: 100%;
    max-width: 888px;
    font-family: Roboto !important;
    font-size: 46px;
    font-weight: 400;
    line-height: 58px;
    letter-spacing: 0em;
    text-align: center;
    margin: 0 auto;
    color: #fff;
}
.goal-i {
    background: #0047FF;
    padding: 50px;
    border-radius: 15px;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0px;
}


@media(min-width: 1400px){
  .banner-trace-i .banner-img img {
    width: 100%;
  }
  .banner-trace-i .banner-content h2{
    font-size: 36px;
    margin: 0 0 10px;
  }
  .banner-trace-i .banner-content{
    bottom: 220px;
  }
}
@media(max-width: 1400px){
  .banner-trace-i .banner-content h2 {
    font-family: Roboto;
    font-size: 26px;
    font-weight: 600;
    line-height: 50px;
    letter-spacing: 0;
    text-align: center;
    color: #0047ff;
  }
  .banner-content h4 {
    font-family: Roboto;
    font-size: 24px;
    font-weight: 400;
    line-height: 40px;
    letter-spacing: 0;
    text-align: center;
    max-width: 700px;
    width: 100%;
    margin: 0 auto;
  }
  .banner-trace-i .banner-content {
    padding: 20px 40px;
    bottom: 180px;
  }
}
@media(max-width: 1199px){
  .container-stand {
    padding: 0 1rem;
  }
  .banner-trace-i .banner-content h2 {
    font-size: 26px;
  }
  .banner-content h4{
    font-size: 25px;
    max-width: 500px;
    line-height: 40px;
  }
  .phone-girl-content h4 {
    max-width: 529px;
    font-size: 40px;
  }
  .phone-girl-content h2 {
    font-size: 40px;
    line-height: 60px;
    max-width: 529px;
  }
  .prod-trace-wrapper p:nth-child(1),.prod-trace-wrapper p:last-child{
    max-width: 471px;
    font-size: 30px;
    line-height: 50px;
  }
  .prod-trac-o::before {
    width: 200px;
    top: -250px;
  }
  .prod-trac-o::after {
    width: 184px;
  }
  .stand-i {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    row-gap: 30px;
  }
  .banner-trace-i .banner-content {
    padding: 20px 40px;
    bottom: 20px;
  }
}

@media (max-width: 1300px) {
    .search-bar {
        flex-grow: 1;
    }
}

@media (min-width: 1301px) {
    .search-bar {
        flex-grow: 0;
    }
}

@media(max-width: 992px){
  .container-stand {
    padding: 0 2rem;
  }  
.banner-trace-i .banner-content {
    position: relative;
    padding-bottom: 0;
    bottom: 0px;
  } 
  .banner-trace-o {
    margin-bottom: 0px;
  }
  .banner-trace-i .banner-content h2 {
    font-size: 24px;
    
  }
  .banner-content h4 {
    font-size: 22px;
    max-width: 560px;
    line-height: 40px;
  }
  .girl-phone {
    margin: 55px 0;
  }
  .phone-girl-content h4 {
    max-width: 429px;
    font-size: 24px;
    line-height: 40px;
  }
  .phone-girl-content h2 {
    font-size: 26px;
    line-height: 45px;
    max-width: 350px;
    margin: 0 auto 0 0;

  }
  .prod-trace-wrapper p:nth-child(1) {
    max-width: 330px;
    font-size: 24px;
    line-height: 36px;
  }
 .prod-trace-wrapper p:last-child {
    max-width: 280px;
    font-size: 24px;
    line-height: 36px;
  }
  .prod-trac-o::before {
    width: 100%;
    top: -100px;
  }
  .prod-trac-o::after {
      width: 134px;
      bottom: -150px;
  }
  .stand-o .stand-title h2,.stand-title h2 {
    font-size: 50px;
  }
  .stand-i .cards h2{
    font-size: 34px;
    margin: 0px;
  }
  .stand-i .cards p{
    max-width: 100%;
    font-size: 18px;
  }
  .stand-list h3{
    font-size: 34px;
  }
  .goal-i p{
    max-width: 100%;
    font-size: 28px;
    line-height: 40px;  
  }
}

@media(max-width: 767px){
  .phone-girl-content h2,.phone-girl-content h4{
    font-size: 24px;
    line-height: 36px;
    max-width: 429px;
  }
  .prod-trac-o::before {
    width: 150px;
    top: -220px;
  }
  .prod-trac-o::after {
    width: 100px;
    bottom: -250px;
  }
  .prod-trace-wrapper p:nth-child(1){
    max-width: 331px;
  }
  .prod-trace-wrapper p:last-child {
    max-width: 260px;
  }
  .phone-girl-content h4 {
    font-size: 33px;
    line-height: 40px;
    max-width: 500px;
  }
  .phone-girl-content h2 {
    font-size: 42px;
    line-height: 50px;
    max-width: 501px;
  }
  .stand-o .stand-title h2, .stand-title h2 {
    font-size: 44px;
  }
  .stand-i .cards h2,.stand-list h3 {
    font-size: 30px;
  }
  .goal-i p {
    font-size: 27px;
  }
  .banner-content h4 {
    font-size: 18px;
    max-width: 560px;
  }
  .banner-trace-i .banner-content h2 {
    font-size: 38px;
  }
  h2.tab {
    display: block;
  }
  h2.desk {
    display: none;
  }
  .banner-content h4 {
    font-size: 35px;
    max-width: 100%;
    margin: 20px 0px;
  }
  .points-list ul li{
    font-size: 18px;
  }
}

@media(max-width: 640px){
  .points-list ul li {
    font-size: 14px;
  }
  .points-list {
    gap: 20px;
  }
  .banner-trace-i .banner-content h2 {
    font-size: 28px;
  }
  .banner-content h4 {
    font-size: 25px;
  }
  .phone-girl-content h4 {
    font-size: 20px;
    max-width: 100%;
    padding: 0 15px;
    line-height: 30px;
    margin-bottom: 10px;
  }
  .phone-girl-content h2 {
    font-size: 24px;
    line-height: 34px;
    max-width: 100%;
    padding: 0px 15px;
  }
  .prod-trac-o::before {
    width: 100px;
    top: -250px;
  }
  .stand-i {
    grid-template-columns: repeat(1,1fr);
  }
  .stand-o .stand-title h2, .stand-title h2 {
    font-size: 30px;
  }
  .stand-o .stand-title h2, .stand-title h2 {
    font-size: 30px;
    margin: 15px 0px;
  }
  .points-list ul li {
    font-size: 11px;
  }
  .goal-i p {
    font-size: 17px;
    line-height: 34px;
  }
}

@media(max-width: 480px){
  .container-stand {
    padding: 0 1rem;
  }
  .banner-trace-i .banner-content {
    padding: 20px;
  }
  .banner-trace-i .banner-content h2 {
    font-size: 18px;
    line-height: 30px;
  }
  .banner-content h4 {
    font-size: 18px;
    line-height: 30px;
  }
  .phone-girl-content h2 {
    font-size: 16px;
    line-height: 28px;
  }
  .phone-girl-content h4 {
    font-size: 14px;
    line-height: 27px;
  }
  .prod-trace-wrapper p:nth-child(1),.prod-trace-wrapper p:last-child{
    max-width: 100%;
    font-size: 16px;
    padding: 0 25px;
    line-height: 28px;
  }
  .prod-trac-o::before {
    top: -200px;
  }
  .stand-o .stand-title h2, .stand-title h2 {
    font-size: 24px;
    margin: 15px 0;
    line-height: 28px;
  }
  .points-list {
    grid-template-columns: repeat(1,1fr);
    gap: 0px;
  }
  .points-list ul li {
    font-size: 14px;
  }
  .goal-i{
    padding: 20px 15px;
  }
  .goal-i p {
    font-size: 14px;
    line-height: 28px;
  }
  .girl-phone {
    margin: 0px 0 55px;
  }
  .stand-i .cards h2, .stand-list h3 {
    font-size: 24px;
  }
  .stand-i .cards p {
    font-size: 14px;
  }

  .fixed-width {
      width: 35px; /* Adjust the width as needed */
  }

  .flexible-width {
      flex: 1;
      padding: 10px; /* Optional padding */
      margin: 5px; /* Optional margin */
  }
  .full-button {
      position: absolute;
      width: 100%;
      height: 100%;
      top: 0;
      left: 0;
  }
}

.md-columns {
  display: flex;
  flex-wrap: wrap;
  margin-left: -1rem;
  margin-right: -1rem;

  >div {
    flex: 1 1;
    margin: 1rem 0;
    min-width: 100px;
    max-width: 100%;
    padding: 0 1rem;
  }

  .markdown-inner {
    margin-top: 0;
    margin-bottom: 0;
  }
}

/* Additional utility classes for sitemap and general use */

/* Sizing & Spacing */
.py-8 { padding-top: 2rem; padding-bottom: 2rem; }
.pb-2 { padding-bottom: 0.5rem; }
.mr-2 { margin-right: 0.5rem; }
.mb-6 { margin-bottom: 1.5rem; }
.gap-6 { gap: 1.5rem; }
.max-w-2xl { max-width: 42rem; }
.max-h-48 { max-height: 12rem; }
.max-h-96 { max-height: 24rem; }

/* Typography */
.font-bold { font-weight: 700; }
.font-semibold { font-weight: 600; }
.italic { font-style: italic; }
.underline { text-decoration: underline; }
.hover\:underline:hover { text-decoration: underline; }

.text-2xl { font-size: 1.5rem; line-height: 2rem; }
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.text-4xl { font-size: 2.25rem; line-height: 2.5rem; }

/* Layout */
.grid { display: grid; }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.overflow-y-auto { overflow-y: auto; }
.space-y-1 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.25rem * var(--tw-space-y-reverse)); }
.space-y-2 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.5rem * var(--tw-space-y-reverse)); }

/* Borders */
.border-b-2 { border-bottom-width: 2px; }
.border-blue-200 { --tw-border-opacity: 1; border-color: rgba(191, 219, 254, var(--tw-border-opacity)); }
.border-green-200 { --tw-border-opacity: 1; border-color: rgba(167, 243, 208, var(--tw-border-opacity)); }
.border-purple-200 { --tw-border-opacity: 1; border-color: rgba(221, 214, 254, var(--tw-border-opacity)); }
.border-orange-200 { --tw-border-opacity: 1; border-color: rgba(254, 215, 170, var(--tw-border-opacity)); }
.border-red-200 { --tw-border-opacity: 1; border-color: rgba(254, 202, 202, var(--tw-border-opacity)); }
.border-gray-200 { --tw-border-opacity: 1; border-color: rgba(229, 231, 235, var(--tw-border-opacity)); } /* Matches existing default */

/* Text Colors */
.text-blue-600 { --tw-text-opacity: 1; color: rgba(37, 99, 235, var(--tw-text-opacity)); }
.hover\:text-blue-600:hover { --tw-text-opacity: 1; color: rgba(37, 99, 235, var(--tw-text-opacity)); }
.text-blue-700 { --tw-text-opacity: 1; color: rgba(29, 78, 216, var(--tw-text-opacity)); }
.hover\:text-blue-700:hover { --tw-text-opacity: 1; color: rgba(29, 78, 216, var(--tw-text-opacity)); }
.text-blue-800 { --tw-text-opacity: 1; color: rgba(30, 64, 175, var(--tw-text-opacity)); }
.hover\:text-blue-800:hover { --tw-text-opacity: 1; color: rgba(30, 64, 175, var(--tw-text-opacity)); }

.text-green-600 { --tw-text-opacity: 1; color: rgba(5, 150, 105, var(--tw-text-opacity)); }
.hover\:text-green-600:hover { --tw-text-opacity: 1; color: rgba(5, 150, 105, var(--tw-text-opacity)); }
.text-green-700 { --tw-text-opacity: 1; color: rgba(4, 120, 87, var(--tw-text-opacity)); }
.hover\:text-green-700:hover { --tw-text-opacity: 1; color: rgba(4, 120, 87, var(--tw-text-opacity)); }
.text-green-800 { --tw-text-opacity: 1; color: rgba(6, 95, 70, var(--tw-text-opacity)); }
.hover\:text-green-800:hover { --tw-text-opacity: 1; color: rgba(6, 95, 70, var(--tw-text-opacity)); }

.text-purple-600 { --tw-text-opacity: 1; color: rgba(124, 58, 237, var(--tw-text-opacity)); }
.hover\:text-purple-600:hover { --tw-text-opacity: 1; color: rgba(124, 58, 237, var(--tw-text-opacity)); }
.text-purple-700 { --tw-text-opacity: 1; color: rgba(109, 40, 217, var(--tw-text-opacity)); }
.hover\:text-purple-700:hover { --tw-text-opacity: 1; color: rgba(109, 40, 217, var(--tw-text-opacity)); }
.text-purple-800 { --tw-text-opacity: 1; color: rgba(91, 33, 182, var(--tw-text-opacity)); }
.hover\:text-purple-800:hover { --tw-text-opacity: 1; color: rgba(91, 33, 182, var(--tw-text-opacity)); }

.text-orange-600 { --tw-text-opacity: 1; color: rgba(234, 88, 12, var(--tw-text-opacity)); }
.hover\:text-orange-600:hover { --tw-text-opacity: 1; color: rgba(234, 88, 12, var(--tw-text-opacity)); }
.text-orange-700 { --tw-text-opacity: 1; color: rgba(194, 65, 12, var(--tw-text-opacity)); }
.hover\:text-orange-700:hover { --tw-text-opacity: 1; color: rgba(194, 65, 12, var(--tw-text-opacity)); }
.text-orange-800 { --tw-text-opacity: 1; color: rgba(154, 52, 18, var(--tw-text-opacity)); }
.hover\:text-orange-800:hover { --tw-text-opacity: 1; color: rgba(154, 52, 18, var(--tw-text-opacity)); }

.text-red-600 { --tw-text-opacity: 1; color: rgba(220, 38, 38, var(--tw-text-opacity)); }
.hover\:text-red-600:hover { --tw-text-opacity: 1; color: rgba(220, 38, 38, var(--tw-text-opacity)); }
.text-red-700 { --tw-text-opacity: 1; color: rgba(185, 28, 28, var(--tw-text-opacity)); }
.hover\:text-red-700:hover { --tw-text-opacity: 1; color: rgba(185, 28, 28, var(--tw-text-opacity)); }
.text-red-800 { --tw-text-opacity: 1; color: rgba(153, 27, 27, var(--tw-text-opacity)); }
.hover\:text-red-800:hover { --tw-text-opacity: 1; color: rgba(153, 27, 27, var(--tw-text-opacity)); }

.text-gray-500 { --tw-text-opacity: 1; color: rgba(107, 114, 128, var(--tw-text-opacity)); } /* Note: Same as existing text-gray-600, adjust if different shade needed */
.hover\:text-gray-500:hover { --tw-text-opacity: 1; color: rgba(107, 114, 128, var(--tw-text-opacity)); }
.text-gray-800 { --tw-text-opacity: 1; color: rgba(31, 41, 55, var(--tw-text-opacity)); }
.hover\:text-gray-800:hover { --tw-text-opacity: 1; color: rgba(31, 41, 55, var(--tw-text-opacity)); }


/* Responsive Grid Columns */
@media (min-width: 768px) { /* md */
  .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) { /* lg */
  .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 1280px) { /* xl */
  .xl\:grid-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

/* Responsive image improvements */
img {
  max-width: 100%;
  height: auto;
}

img[width][height] {
  aspect-ratio: attr(width) / attr(height);
}

/* Ensure icons maintain their size */
.icon-image {
  width: auto !important;
  max-width: 80px !important;
  height: auto !important;
  aspect-ratio: 1;
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0ZGluIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6InN0ZGluIiwic291cmNlc0NvbnRlbnQiOlsiLyogR29vZ2xlIEZvbnRzIG5vdyBsb2FkZWQgYXN5bmNocm9ub3VzbHkgaW4gaGVhZC5odG1sIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UgKi9cblxuXG4vKiEgbW9kZXJuLW5vcm1hbGl6ZSB2MS4wLjAgfCBNSVQgTGljZW5zZSB8IGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvbW9kZXJuLW5vcm1hbGl6ZSAqL1xuXG4vKlxuRG9jdW1lbnRcbj09PT09PT09XG4qL1xuXG4vKipcblVzZSBhIGJldHRlciBib3ggbW9kZWwgKG9waW5pb25hdGVkKS5cbiovXG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi8qKlxuVXNlIGEgbW9yZSByZWFkYWJsZSB0YWIgc2l6ZSAob3BpbmlvbmF0ZWQpLlxuKi9cblxuOnJvb3Qge1xuICAtbW96LXRhYi1zaXplOiA0O1xuICAtby10YWItc2l6ZTogNDtcbiAgICAgdGFiLXNpemU6IDQ7XG59XG5cbi8qKlxuMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4qL1xuXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qXG5TZWN0aW9uc1xuPT09PT09PT1cbiovXG5cbi8qKlxuUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG5JbXByb3ZlIGNvbnNpc3RlbmN5IG9mIGRlZmF1bHQgZm9udHMgaW4gYWxsIGJyb3dzZXJzLiAoaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9tb2Rlcm4tbm9ybWFsaXplL2lzc3Vlcy8zKVxuKi9cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OlxuXHRcdHN5c3RlbS11aSxcblx0XHQtYXBwbGUtc3lzdGVtLCAvKiBGaXJlZm94IHN1cHBvcnRzIHRoaXMgYnV0IG5vdCB5ZXQgYHN5c3RlbS11aWAgKi9cblx0XHQnU2Vnb2UgVUknLFxuXHRcdFJvYm90byxcblx0XHRIZWx2ZXRpY2EsXG5cdFx0QXJpYWwsXG5cdFx0c2Fucy1zZXJpZixcblx0XHQnQXBwbGUgQ29sb3IgRW1vamknLFxuXHRcdCdTZWdvZSBVSSBFbW9qaSc7XG59XG5cbi8qXG5Hcm91cGluZyBjb250ZW50XG49PT09PT09PT09PT09PT09XG4qL1xuXG4vKipcbjEuIEFkZCB0aGUgY29ycmVjdCBoZWlnaHQgaW4gRmlyZWZveC5cbjIuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIG9mIGJvcmRlciBjb2xvciBpbiBGaXJlZm94LiAoaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNjU1KVxuKi9cblxuaHIge1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLypcblRleHQtbGV2ZWwgc2VtYW50aWNzXG49PT09PT09PT09PT09PT09PT09PVxuKi9cblxuLyoqXG5BZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiovXG5cbmFiYnJbdGl0bGVdIHtcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xufVxuXG4vKipcbkFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBFZGdlIGFuZCBTYWZhcmkuXG4qL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4xLiBJbXByb3ZlIGNvbnNpc3RlbmN5IG9mIGRlZmF1bHQgZm9udHMgaW4gYWxsIGJyb3dzZXJzLiAoaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9tb2Rlcm4tbm9ybWFsaXplL2lzc3Vlcy8zKVxuMi4gQ29ycmVjdCB0aGUgb2RkICdlbScgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuKi9cblxuY29kZSxcbmtiZCxcbnNhbXAsXG5wcmUge1xuICBmb250LWZhbWlseTpcblx0XHR1aS1tb25vc3BhY2UsXG5cdFx0U0ZNb25vLVJlZ3VsYXIsXG5cdFx0Q29uc29sYXMsXG5cdFx0J0xpYmVyYXRpb24gTW9ubycsXG5cdFx0TWVubG8sXG5cdFx0bW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcblByZXZlbnQgJ3N1YicgYW5kICdzdXAnIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vKlxuVGFidWxhciBkYXRhXG49PT09PT09PT09PT1cbiovXG5cbi8qKlxuMS4gUmVtb3ZlIHRleHQgaW5kZW50YXRpb24gZnJvbSB0YWJsZSBjb250ZW50cyBpbiBDaHJvbWUgYW5kIFNhZmFyaS4gKGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTk5OTA4OCwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTI5NylcbjIuIENvcnJlY3QgdGFibGUgYm9yZGVyIGNvbG9yIGluaGVyaXRhbmNlIGluIGFsbCBDaHJvbWUgYW5kIFNhZmFyaS4gKGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTkzNTcyOSwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTAxNilcbiovXG5cbnRhYmxlIHtcbiAgdGV4dC1pbmRlbnQ6IDA7IC8qIDEgKi9cbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qXG5Gb3Jtc1xuPT09PT1cbiovXG5cbi8qKlxuMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4yLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4qL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgbWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlIGFuZCBGaXJlZm94LlxuMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG5Db3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuKi9cblxuYnV0dG9uLFxuW3R5cGU9J2J1dHRvbiddLFxuW3R5cGU9J3N1Ym1pdCddIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiovXG5cbi8qKlxuUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuKi9cblxuLyoqXG5SZW1vdmUgdGhlIGFkZGl0aW9uYWwgJzppbnZhbGlkJyBzdHlsZXMgaW4gRmlyZWZveC5cblNlZTogaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvZ2Vja28tZGV2L2Jsb2IvMmY5ZWFjZDlkM2Q5OTVjOTM3YjQyNTFhNTU1N2Q5NWQ0OTRjOWJlMS9sYXlvdXQvc3R5bGUvcmVzL2Zvcm1zLmNzcyNMNzI4LUw3MzdcbiovXG5cbi8qKlxuUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dCAnZmllbGRzZXQnIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiovXG5cbmxlZ2VuZCB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUgYW5kIEZpcmVmb3guXG4qL1xuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG5Db3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBTYWZhcmkuXG4qL1xuXG4vKipcbjEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4qL1xuXG4vKipcblJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiovXG5cbi8qKlxuMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbjIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gJ2luaGVyaXQnIGluIFNhZmFyaS5cbiovXG5cbi8qXG5JbnRlcmFjdGl2ZVxuPT09PT09PT09PT1cbiovXG5cbi8qXG5BZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiovXG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qKlxuICogTWFudWFsbHkgZm9ya2VkIGZyb20gU1VJVCBDU1MgQmFzZTogaHR0cHM6Ly9naXRodWIuY29tL3N1aXRjc3MvYmFzZVxuICogQSB0aGluIGxheWVyIG9uIHRvcCBvZiBub3JtYWxpemUuY3NzIHRoYXQgcHJvdmlkZXMgYSBzdGFydGluZyBwb2ludCBtb3JlXG4gKiBzdWl0YWJsZSBmb3Igd2ViIGFwcGxpY2F0aW9ucy5cbiAqL1xuXG4vKipcbiAqIFJlbW92ZXMgdGhlIGRlZmF1bHQgc3BhY2luZyBhbmQgYm9yZGVyIGZvciBhcHByb3ByaWF0ZSBlbGVtZW50cy5cbiAqL1xuXG5ibG9ja3F1b3RlLFxuZGwsXG5kZCxcbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNixcbmhyLFxuZmlndXJlLFxucCxcbnByZSB7XG4gIG1hcmdpbjogMDtcbn1cblxuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG5cbi8qKlxuICogV29yayBhcm91bmQgYSBGaXJlZm94L0lFIGJ1ZyB3aGVyZSB0aGUgdHJhbnNwYXJlbnQgYGJ1dHRvbmAgYmFja2dyb3VuZFxuICogcmVzdWx0cyBpbiBhIGxvc3Mgb2YgdGhlIGRlZmF1bHQgYGJ1dHRvbmAgZm9jdXMgc3R5bGVzLlxuICovXG5cbmJ1dHRvbjpmb2N1cyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQ7XG4gIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbn1cblxuZmllbGRzZXQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbm9sLFxudWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogVGFpbHdpbmQgY3VzdG9tIHJlc2V0IHN0eWxlc1xuICovXG5cbi8qKlxuICogMS4gVXNlIHRoZSB1c2VyJ3MgY29uZmlndXJlZCBgc2Fuc2AgZm9udC1mYW1pbHkgKHdpdGggVGFpbHdpbmQncyBkZWZhdWx0XG4gKiAgICBzYW5zLXNlcmlmIGZvbnQgc3RhY2sgYXMgYSBmYWxsYmFjaykgYXMgYSBzYW5lIGRlZmF1bHQuXG4gKiAyLiBVc2UgVGFpbHdpbmQncyBkZWZhdWx0IFwibm9ybWFsXCIgbGluZS1oZWlnaHQgc28gdGhlIHVzZXIgaXNuJ3QgZm9yY2VkXG4gKiAgICB0byBvdmVycmlkZSBpdCB0byBlbnN1cmUgY29uc2lzdGVuY3kgZXZlbiB3aGVuIHVzaW5nIHRoZSBkZWZhdWx0IHRoZW1lLlxuICovXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogdWktc2Fucy1zZXJpZiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIEFyaWFsLCBcIk5vdG8gU2Fuc1wiLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7IC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuNTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEluaGVyaXQgZm9udC1mYW1pbHkgYW5kIGxpbmUtaGVpZ2h0IGZyb20gYGh0bWxgIHNvIHVzZXJzIGNhbiBzZXQgdGhlbSBhc1xuICogYSBjbGFzcyBkaXJlY3RseSBvbiB0aGUgYGh0bWxgIGVsZW1lbnQuXG4gKi9cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuLyoqXG4gKiAxLiBQcmV2ZW50IHBhZGRpbmcgYW5kIGJvcmRlciBmcm9tIGFmZmVjdGluZyBlbGVtZW50IHdpZHRoLlxuICpcbiAqICAgIFdlIHVzZWQgdG8gc2V0IHRoaXMgaW4gdGhlIGh0bWwgZWxlbWVudCBhbmQgaW5oZXJpdCBmcm9tXG4gKiAgICB0aGUgcGFyZW50IGVsZW1lbnQgZm9yIGV2ZXJ5dGhpbmcgZWxzZS4gVGhpcyBjYXVzZWQgaXNzdWVzXG4gKiAgICBpbiBzaGFkb3ctZG9tLWVuaGFuY2VkIGVsZW1lbnRzIGxpa2UgPGRldGFpbHM+IHdoZXJlIHRoZSBjb250ZW50XG4gKiAgICBpcyB3cmFwcGVkIGJ5IGEgZGl2IHdpdGggYm94LXNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YC5cbiAqXG4gKiAgICBodHRwczovL2dpdGh1Yi5jb20vbW96ZGV2cy9jc3NyZW1lZHkvaXNzdWVzLzRcbiAqXG4gKlxuICogMi4gQWxsb3cgYWRkaW5nIGEgYm9yZGVyIHRvIGFuIGVsZW1lbnQgYnkganVzdCBhZGRpbmcgYSBib3JkZXItd2lkdGguXG4gKlxuICogICAgQnkgZGVmYXVsdCwgdGhlIHdheSB0aGUgYnJvd3NlciBzcGVjaWZpZXMgdGhhdCBhbiBlbGVtZW50IHNob3VsZCBoYXZlIG5vXG4gKiAgICBib3JkZXIgaXMgYnkgc2V0dGluZyBpdCdzIGJvcmRlci1zdHlsZSB0byBgbm9uZWAgaW4gdGhlIHVzZXItYWdlbnRcbiAqICAgIHN0eWxlc2hlZXQuXG4gKlxuICogICAgSW4gb3JkZXIgdG8gZWFzaWx5IGFkZCBib3JkZXJzIHRvIGVsZW1lbnRzIGJ5IGp1c3Qgc2V0dGluZyB0aGUgYGJvcmRlci13aWR0aGBcbiAqICAgIHByb3BlcnR5LCB3ZSBjaGFuZ2UgdGhlIGRlZmF1bHQgYm9yZGVyLXN0eWxlIGZvciBhbGwgZWxlbWVudHMgdG8gYHNvbGlkYCwgYW5kXG4gKiAgICB1c2UgYm9yZGVyLXdpZHRoIHRvIGhpZGUgdGhlbSBpbnN0ZWFkLiBUaGlzIHdheSBvdXIgYGJvcmRlcmAgdXRpbGl0aWVzIG9ubHlcbiAqICAgIG5lZWQgdG8gc2V0IHRoZSBgYm9yZGVyLXdpZHRoYCBwcm9wZXJ0eSBpbnN0ZWFkIG9mIHRoZSBlbnRpcmUgYGJvcmRlcmBcbiAqICAgIHNob3J0aGFuZCwgbWFraW5nIG91ciBib3JkZXIgdXRpbGl0aWVzIG11Y2ggbW9yZSBzdHJhaWdodGZvcndhcmQgdG8gY29tcG9zZS5cbiAqXG4gKiAgICBodHRwczovL2dpdGh1Yi5jb20vdGFpbHdpbmRjc3MvdGFpbHdpbmRjc3MvcHVsbC8xMTZcbiAqL1xuXG4qLFxuOjpiZWZvcmUsXG46OmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBib3JkZXItd2lkdGg6IDA7IC8qIDIgKi9cbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDsgLyogMiAqL1xuICBib3JkZXItY29sb3I6ICNlNWU3ZWI7IC8qIDIgKi9cbn1cblxuLypcbiAqIEVuc3VyZSBob3Jpem9udGFsIHJ1bGVzIGFyZSB2aXNpYmxlIGJ5IGRlZmF1bHRcbiAqL1xuXG5ociB7XG4gIGJvcmRlci10b3Atd2lkdGg6IDFweDtcbn1cblxuLyoqXG4gKiBVbmRvIHRoZSBgYm9yZGVyLXN0eWxlOiBub25lYCByZXNldCB0aGF0IE5vcm1hbGl6ZSBhcHBsaWVzIHRvIGltYWdlcyBzbyB0aGF0XG4gKiBvdXIgYGJvcmRlci17d2lkdGh9YCB1dGlsaXRpZXMgaGF2ZSB0aGUgZXhwZWN0ZWQgZWZmZWN0LlxuICpcbiAqIFRoZSBOb3JtYWxpemUgcmVzZXQgaXMgdW5uZWNlc3NhcnkgZm9yIHVzIHNpbmNlIHdlIGRlZmF1bHQgdGhlIGJvcmRlci13aWR0aFxuICogdG8gMCBvbiBhbGwgZWxlbWVudHMuXG4gKlxuICogaHR0cHM6Ly9naXRodWIuY29tL3RhaWx3aW5kY3NzL3RhaWx3aW5kY3NzL2lzc3Vlcy8zNjJcbiAqL1xuXG5pbWcge1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG50ZXh0YXJlYSB7XG4gIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbmlucHV0OjotbW96LXBsYWNlaG9sZGVyLCB0ZXh0YXJlYTo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjOWNhM2FmO1xufVxuXG5pbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXIsIHRleHRhcmVhOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjOWNhM2FmO1xufVxuXG5pbnB1dDo6cGxhY2Vob2xkZXIsXG50ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzljYTNhZjtcbiAgb3BhY2l0eTogMTtcbn1cblxuYnV0dG9uLFxuW3JvbGU9XCJidXR0b25cIl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbn1cblxuLyoqXG4gKiBSZXNldCBsaW5rcyB0byBvcHRpbWl6ZSBmb3Igb3B0LWluIHN0eWxpbmcgaW5zdGVhZCBvZlxuICogb3B0LW91dC5cbiAqL1xuXG5hIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbn1cblxuLyoqXG4gKiBSZXNldCBmb3JtIGVsZW1lbnQgcHJvcGVydGllcyB0aGF0IGFyZSBlYXN5IHRvIGZvcmdldCB0b1xuICogc3R5bGUgZXhwbGljaXRseSBzbyB5b3UgZG9uJ3QgaW5hZHZlcnRlbnRseSBpbnRyb2R1Y2VcbiAqIHN0eWxlcyB0aGF0IGRldmlhdGUgZnJvbSB5b3VyIGRlc2lnbiBzeXN0ZW0uIFRoZXNlIHN0eWxlc1xuICogc3VwcGxlbWVudCBhIHBhcnRpYWwgcmVzZXQgdGhhdCBpcyBhbHJlYWR5IGFwcGxpZWQgYnlcbiAqIG5vcm1hbGl6ZS5jc3MuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgcGFkZGluZzogMDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4vKipcbiAqIFVzZSB0aGUgY29uZmlndXJlZCAnbW9ubycgZm9udCBmYW1pbHkgZm9yIGVsZW1lbnRzIHRoYXRcbiAqIGFyZSBleHBlY3RlZCB0byBiZSByZW5kZXJlZCB3aXRoIGEgbW9ub3NwYWNlIGZvbnQsIGZhbGxpbmdcbiAqIGJhY2sgdG8gdGhlIHN5c3RlbSBtb25vc3BhY2Ugc3RhY2sgaWYgdGhlcmUgaXMgbm8gY29uZmlndXJlZFxuICogJ21vbm8nIGZvbnQgZmFtaWx5LlxuICovXG5cbnByZSxcbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcbn1cblxuLyoqXG4gKiBNYWtlIHJlcGxhY2VkIGVsZW1lbnRzIGBkaXNwbGF5OiBibG9ja2AgYnkgZGVmYXVsdCBhcyB0aGF0J3NcbiAqIHRoZSBiZWhhdmlvciB5b3Ugd2FudCBhbG1vc3QgYWxsIG9mIHRoZSB0aW1lLiBJbnNwaXJlZCBieVxuICogQ1NTIFJlbWVkeSwgd2l0aCBgc3ZnYCBhZGRlZCBhcyB3ZWxsLlxuICpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9tb3pkZXZzL2Nzc3JlbWVkeS9pc3N1ZXMvMTRcbiAqL1xuXG5pbWcsXG5zdmcsXG52aWRlbyxcbmNhbnZhcyxcbmF1ZGlvLFxuaWZyYW1lLFxuZW1iZWQsXG5vYmplY3Qge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLyoqXG4gKiBDb25zdHJhaW4gaW1hZ2VzIGFuZCB2aWRlb3MgdG8gdGhlIHBhcmVudCB3aWR0aCBhbmQgcHJlc2VydmVcbiAqIHRoZWlyIGluc3RyaW5zaWMgYXNwZWN0IHJhdGlvLlxuICpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9tb3pkZXZzL2Nzc3JlbWVkeS9pc3N1ZXMvMTRcbiAqL1xuXG5pbWcsXG52aWRlbyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAuY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDY0MHB4O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDc2OHB4O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiAxMDI0cHg7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkge1xuICAuY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDEyODBweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTUzNnB4KSB7XG4gIC5jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMTUzNnB4O1xuICB9XG59XG5cbi5hcHBlYXJhbmNlLW5vbmUge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG4uYmctdHJhbnNwYXJlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmJnLWJsYWNrIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIHZhcigtLXR3LWJnLW9wYWNpdHkpKTtcbn1cblxuLmJnLXdoaXRlIHtcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIHZhcigtLXR3LWJnLW9wYWNpdHkpKTtcbn1cblxuLnJvdW5kZWQge1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xufVxuXG4uYm9yZGVyIHtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbi5ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uaW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuXG4uZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi50YWJsZSB7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZsZXgtY29sIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmZsZXgtd3JhcCB7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLml0ZW1zLWNlbnRlciB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5qdXN0aWZ5LWNlbnRlciB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uZmxleC0zIHtcbiAgZmxleDogMyAzIDAlO1xufVxuXG4uZmxleC1ncm93IHtcbiAgZmxleC1ncm93OiAxO1xufVxuXG4udGV4dC14cyB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDFyZW07XG59XG5cbi50ZXh0LXNtIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XG59XG5cbi50ZXh0LWxnIHtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG59XG5cbi5saXN0LWRpc2Mge1xuICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG59XG5cbi5tLTAge1xuICBtYXJnaW46IDBweDtcbn1cblxuLm0tMiB7XG4gIG1hcmdpbjogMC41cmVtO1xufVxuXG4ubS00IHtcbiAgbWFyZ2luOiAxcmVtO1xufVxuXG4ubXktMiB7XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuXG4ubXktNCB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5teC00IHtcbiAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbn1cblxuLm15LTgge1xuICBtYXJnaW4tdG9wOiAycmVtO1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuXG4ubXktMTYge1xuICBtYXJnaW4tdG9wOiA0cmVtO1xuICBtYXJnaW4tYm90dG9tOiA0cmVtO1xufVxuXG4ubXgtYXV0byB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5tYi0zIHtcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbn1cblxuLm1sLTMge1xuICBtYXJnaW4tbGVmdDogMC43NXJlbTtcbn1cblxuLm1iLTQge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uZm9jdXNcXDpvdXRsaW5lLW5vbmU6Zm9jdXMge1xuICBvdXRsaW5lOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi5wLTMge1xuICBwYWRkaW5nOiAwLjc1cmVtO1xufVxuXG4ucC00IHtcbiAgcGFkZGluZzogMXJlbTtcbn1cblxuLnAtOCB7XG4gIHBhZGRpbmc6IDJyZW07XG59XG5cbi5weS0wIHtcbiAgcGFkZGluZy10b3A6IDBweDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbn1cblxuLnB4LTEge1xuICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW07XG59XG5cbi5weS00IHtcbiAgcGFkZGluZy10b3A6IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xufVxuXG4ucHgtNCB7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcbn1cblxuLnB4LTgge1xuICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDJyZW07XG59XG5cbi5wci0xNiB7XG4gIHBhZGRpbmctcmlnaHQ6IDRyZW07XG59XG5cbi5wYi00IHtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG5cbi5wYi04IHtcbiAgcGFkZGluZy1ib3R0b206IDJyZW07XG59XG5cbi5wYi0xMiB7XG4gIHBhZGRpbmctYm90dG9tOiAzcmVtO1xufVxuXG4ucHQtMTIge1xuICBwYWRkaW5nLXRvcDogM3JlbTtcbn1cblxuLm1iLTEyIHtcbiAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbn1cblxuLm10LTEyIHtcbiAgbWFyZ2luLXRvcDogM3JlbTtcbn1cblxuLmFic29sdXRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4ucmVsYXRpdmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi50b3AtMCB7XG4gIHRvcDogMHB4O1xufVxuXG4ubGVmdC0wIHtcbiAgbGVmdDogMHB4O1xufVxuXG4uLXRvcC02IHtcbiAgdG9wOiAtMS41cmVtO1xufVxuXG4uLXRvcC04IHtcbiAgdG9wOiAtMnJlbTtcbn1cblxuLnRvcC0xXFwvMiB7XG4gIHRvcDogNTAlO1xufVxuXG4ubGVmdC0xXFwvMiB7XG4gIGxlZnQ6IDUwJTtcbn1cblxuLmdhcC04IHtcbiAgZ2FwOiAycmVtO1xufVxuXG4qIHtcbiAgLS10dy1zaGFkb3c6IDAgMCAjMDAwMDtcbn1cblxuLnNoYWRvdyB7XG4gIC0tdHctc2hhZG93OiAwIDFweCAzcHggMCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMXB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4wNikgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogdmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApLCB2YXIoLS10dy1yaW5nLXNoYWRvdywgMCAwICMwMDAwKSwgdmFyKC0tdHctc2hhZG93KSAhaW1wb3J0YW50O1xufVxuXG4qIHtcbiAgLS10dy1yaW5nLWluc2V0OiB2YXIoLS10dy1lbXB0eSwvKiEqLyAvKiEqLyk7XG4gIC0tdHctcmluZy1vZmZzZXQtd2lkdGg6IDBweDtcbiAgLS10dy1yaW5nLW9mZnNldC1jb2xvcjogI2ZmZjtcbiAgLS10dy1yaW5nLWNvbG9yOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC41KTtcbiAgLS10dy1yaW5nLW9mZnNldC1zaGFkb3c6IDAgMCAjMDAwMDtcbiAgLS10dy1yaW5nLXNoYWRvdzogMCAwICMwMDAwO1xufVxuXG4udGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi50ZXh0LWJsYWNrIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpO1xufVxuXG4udGV4dC13aGl0ZSB7XG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTtcbn1cblxuLnRleHQtcmVkIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2JhKDI0NCwgNjcsIDU0LCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTtcbn1cblxuLnRleHQtZ3JheS02MDAge1xuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYmEoMTA3LCAxMTQsIDEyOCwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7XG59XG5cbi53LWZ1bGwge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnotMCB7XG4gIHotaW5kZXg6IDA7XG59XG5cbi56LTEwIHtcbiAgei1pbmRleDogMTA7XG59XG5cbi4tei0xIHtcbiAgei1pbmRleDogLTE7XG59XG5cbi50cmFuc2Zvcm0ge1xuICAtLXR3LXRyYW5zbGF0ZS14OiAwO1xuICAtLXR3LXRyYW5zbGF0ZS15OiAwO1xuICAtLXR3LXJvdGF0ZTogMDtcbiAgLS10dy1za2V3LXg6IDA7XG4gIC0tdHctc2tldy15OiAwO1xuICAtLXR3LXNjYWxlLXg6IDE7XG4gIC0tdHctc2NhbGUteTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKHZhcigtLXR3LXRyYW5zbGF0ZS14KSkgdHJhbnNsYXRlWSh2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7XG59XG5cbi5vcmlnaW4tMCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAlO1xufVxuXG4uZHVyYXRpb24tMzAwIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMzAwbXM7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzcGluIHtcbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzcGluIHtcbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHBpbmcge1xuICA3NSUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMik7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHBpbmcge1xuICA3NSUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMik7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcHVsc2Uge1xuICA1MCUge1xuICAgIG9wYWNpdHk6IC41O1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcHVsc2Uge1xuICA1MCUge1xuICAgIG9wYWNpdHk6IC41O1xuICB9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2Uge1xuICAwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNSUpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuOCwwLDEsMSk7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC44LDAsMSwxKTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsMCwwLjIsMSk7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwwLDAuMiwxKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZSB7XG4gIDAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1JSk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC44LDAsMSwxKTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjgsMCwxLDEpO1xuICB9XG5cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwwLDAuMiwxKTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLDAsMC4yLDEpO1xuICB9XG59XG5cbi8qIEdvb2dsZSBGb250cyBub3cgbG9hZGVkIGFzeW5jaHJvbm91c2x5IGluIGhlYWQuaHRtbCBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlICovXG5cbmJvZHkge1xuICBmb250LWZhbWlseTogJ09wZW4gU2FucycsIHNhbnMtc2VyaWY7XG59XG5cbmgxLFxuLmgxIHtcbiAgZm9udC1zaXplOiA2MHB4O1xufVxuXG5oMixcbi5oMiB7XG4gIGZvbnQtc2l6ZTogNDBweDtcbn1cblxuaDMsXG4uaDMge1xuICBmb250LXNpemU6IDMwcHg7XG59XG5cbmg0LFxuLmg0IHtcbiAgZm9udC1zaXplOiAyMnB4O1xufVxuXG5oNSxcbi5oNSB7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cblxuaDYsXG4uaDYge1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbi5idXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uYnV0dG9uOmhvdmVyIHtcbiAgY3Vyc29yOnBvaW50ZXI7XG59XG5cbi52ZW5kaS1ibHVlLTUwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxODU4ZDk7XG59XG5cbi5ob3ZlclxcOnZlbmRpLWJsdWUtNDAwOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4NmNkOTtcbn1cblxuLm91dGxpbmUgaW5wdXQ6bm90KDotbW96LXBsYWNlaG9sZGVyLXNob3duKSB+IGxhYmVsIHtcbiAgLS10dy10cmFuc2xhdGUteDogMDtcbiAgLS10dy10cmFuc2xhdGUteTogMDtcbiAgLS10dy1yb3RhdGU6IDA7XG4gIC0tdHctc2tldy14OiAwO1xuICAtLXR3LXNrZXcteTogMDtcbiAgLS10dy1zY2FsZS14OiAxO1xuICAtLXR3LXNjYWxlLXk6IDE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCh2YXIoLS10dy10cmFuc2xhdGUteCkpIHRyYW5zbGF0ZVkodmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xuICAtLXR3LXNjYWxlLXg6IC43NTtcbiAgLS10dy1zY2FsZS15OiAuNzU7XG4gIC0tdHctdHJhbnNsYXRlLXk6IC0ycmVtO1xufVxuXG4ub3V0bGluZSBpbnB1dDpub3QoOi1tcy1pbnB1dC1wbGFjZWhvbGRlcikgfiBsYWJlbCB7XG4gIC0tdHctdHJhbnNsYXRlLXg6IDA7XG4gIC0tdHctdHJhbnNsYXRlLXk6IDA7XG4gIC0tdHctcm90YXRlOiAwO1xuICAtLXR3LXNrZXcteDogMDtcbiAgLS10dy1za2V3LXk6IDA7XG4gIC0tdHctc2NhbGUteDogMTtcbiAgLS10dy1zY2FsZS15OiAxO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgodmFyKC0tdHctdHJhbnNsYXRlLXgpKSB0cmFuc2xhdGVZKHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXdYKHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTtcbiAgLS10dy1zY2FsZS14OiAuNzU7XG4gIC0tdHctc2NhbGUteTogLjc1O1xuICAtLXR3LXRyYW5zbGF0ZS15OiAtMnJlbTtcbn1cblxuLm91dGxpbmUgaW5wdXQ6Zm9jdXMtd2l0aGluIH4gbGFiZWwsIGlucHV0Om5vdCg6cGxhY2Vob2xkZXItc2hvd24pIH4gbGFiZWwge1xuICAtLXR3LXRyYW5zbGF0ZS14OiAwO1xuICAtLXR3LXRyYW5zbGF0ZS15OiAwO1xuICAtLXR3LXJvdGF0ZTogMDtcbiAgLS10dy1za2V3LXg6IDA7XG4gIC0tdHctc2tldy15OiAwO1xuICAtLXR3LXNjYWxlLXg6IDE7XG4gIC0tdHctc2NhbGUteTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKHZhcigtLXR3LXRyYW5zbGF0ZS14KSkgdHJhbnNsYXRlWSh2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7XG4gIC0tdHctc2NhbGUteDogLjc1O1xuICAtLXR3LXNjYWxlLXk6IC43NTtcbiAgLS10dy10cmFuc2xhdGUteTogLTJyZW07XG59XG5cbi5vdXRsaW5lIGlucHV0OmZvY3VzLXdpdGhpbiB+IGxhYmVsIHtcbiAgLS10dy10ZXh0LW9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2JhKDU5LCAxMzAsIDI0NiwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7XG59XG5cbi5vdXRsaW5lIGlucHV0Om5vdCg6LW1vei1wbGFjZWhvbGRlci1zaG93bikgfiBsYWJlbCB7XG4gIG1hcmdpbi1sZWZ0OiAwLjc1cmVtO1xuICBwYWRkaW5nLXRvcDogMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW07XG4gIHotaW5kZXg6IDA7XG4gIC0tdHctdHJhbnNsYXRlLXg6IDA7XG4gIC0tdHctdHJhbnNsYXRlLXk6IDA7XG4gIC0tdHctcm90YXRlOiAwO1xuICAtLXR3LXNrZXcteDogMDtcbiAgLS10dy1za2V3LXk6IDA7XG4gIC0tdHctc2NhbGUteDogMTtcbiAgLS10dy1zY2FsZS15OiAxO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgodmFyKC0tdHctdHJhbnNsYXRlLXgpKSB0cmFuc2xhdGVZKHZhcigtLXR3LXRyYW5zbGF0ZS15KSkgcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpIHNrZXdYKHZhcigtLXR3LXNrZXcteCkpIHNrZXdZKHZhcigtLXR3LXNrZXcteSkpIHNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKTtcbiAgLS10dy1zY2FsZS14OiAuNzU7XG4gIC0tdHctc2NhbGUteTogLjc1O1xuICAtLXR3LXRyYW5zbGF0ZS15OiAtMnJlbTtcbn1cblxuLm91dGxpbmUgaW5wdXQ6bm90KDotbXMtaW5wdXQtcGxhY2Vob2xkZXIpIH4gbGFiZWwge1xuICBtYXJnaW4tbGVmdDogMC43NXJlbTtcbiAgcGFkZGluZy10b3A6IDBweDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtO1xuICB6LWluZGV4OiAwO1xuICAtLXR3LXRyYW5zbGF0ZS14OiAwO1xuICAtLXR3LXRyYW5zbGF0ZS15OiAwO1xuICAtLXR3LXJvdGF0ZTogMDtcbiAgLS10dy1za2V3LXg6IDA7XG4gIC0tdHctc2tldy15OiAwO1xuICAtLXR3LXNjYWxlLXg6IDE7XG4gIC0tdHctc2NhbGUteTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKHZhcigtLXR3LXRyYW5zbGF0ZS14KSkgdHJhbnNsYXRlWSh2YXIoLS10dy10cmFuc2xhdGUteSkpIHJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSBza2V3WCh2YXIoLS10dy1za2V3LXgpKSBza2V3WSh2YXIoLS10dy1za2V3LXkpKSBzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIHNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSk7XG4gIC0tdHctc2NhbGUteDogLjc1O1xuICAtLXR3LXNjYWxlLXk6IC43NTtcbiAgLS10dy10cmFuc2xhdGUteTogLTJyZW07XG59XG5cbi5vdXRsaW5lIGlucHV0OmZvY3VzLXdpdGhpbiB+IGxhYmVsLCAub3V0bGluZSBpbnB1dDpub3QoOnBsYWNlaG9sZGVyLXNob3duKSB+IGxhYmVsIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNzVyZW07XG4gIHBhZGRpbmctdG9wOiAwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMC4yNXJlbTtcbiAgei1pbmRleDogMDtcbiAgLS10dy10cmFuc2xhdGUteDogMDtcbiAgLS10dy10cmFuc2xhdGUteTogMDtcbiAgLS10dy1yb3RhdGU6IDA7XG4gIC0tdHctc2tldy14OiAwO1xuICAtLXR3LXNrZXcteTogMDtcbiAgLS10dy1zY2FsZS14OiAxO1xuICAtLXR3LXNjYWxlLXk6IDE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCh2YXIoLS10dy10cmFuc2xhdGUteCkpIHRyYW5zbGF0ZVkodmFyKC0tdHctdHJhbnNsYXRlLXkpKSByb3RhdGUodmFyKC0tdHctcm90YXRlKSkgc2tld1godmFyKC0tdHctc2tldy14KSkgc2tld1kodmFyKC0tdHctc2tldy15KSkgc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpO1xuICAtLXR3LXNjYWxlLXg6IC43NTtcbiAgLS10dy1zY2FsZS15OiAuNzU7XG4gIC0tdHctdHJhbnNsYXRlLXk6IC0ycmVtO1xufVxuXG46Oi1tb3otcGxhY2Vob2xkZXIgeyAvKiBNb3ppbGxhIEZpcmVmb3ggMTkrICovXG4gIG9wYWNpdHk6ICAwO1xufVxuXG46LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgLyogSW50ZXJuZXQgRXhwbG9yZXIgMTAtMTEgKi9cbiAgb3BhY2l0eTogIDA7XG59XG5cbjo6cGxhY2Vob2xkZXIgeyAvKiBNb3N0IG1vZGVybiBicm93c2VycyBzdXBwb3J0IHRoaXMgbm93LiAqL1xuICBvcGFjaXR5OiAgMDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5tZFxcOmZsZXgge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAubWRcXDpmbGV4LW5vd3JhcCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cblxuICAubWRcXDpqdXN0aWZ5LXN0YXJ0IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH1cblxuICAubWRcXDpmbGV4LTEge1xuICAgIGZsZXg6IDEgMSAwJTtcbiAgfVxuICAubWRcXDpmbGV4LXNwYWNlciB7XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG5cbiAgLm1kXFw6bXktOCB7XG4gICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICB9XG5cbiAgLm1kXFw6bXktMTYge1xuICAgIG1hcmdpbi10b3A6IDRyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogNHJlbTtcbiAgfVxuXG4gIC5tZFxcOnB4LTAge1xuICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDBweDtcbiAgfVxuXG4gIC5tZFxcOnRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuXG4uZm9ybV9yZWdpc3RlciB7XG4gIHdpZHRoOiA0ODBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICBwYWRkaW5nOiAyMHB4IDMwcHg7XG4gIGZvbnQtZmFtaWx5OiByb2JvdG8sc2Fucy1zZXJpZjtib3JkZXI6IDFweCBzb2xpZCAjZWNlY2VjO1xuICB9XG4uZm9ybV9yZWdpc3RlciBsYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTRweDttYXJnaW46IDA7ZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uaW5mb3Rlc3R7bWFyZ2luLWJvdHRvbTogMjBweDt9XG4uaW5mb3Rlc3QgcCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDVweCAwcHg7Y29sb3I6ICMzNjM2MzY7XG59XG4uaW5mb3Rlc3QgaDUge1xuICBmb250LXNpemU6IDE1cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiA2cHggMHB4O2NvbG9yOiMzMTMxMzE7Zm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5hdXRvR3JhZGVTdGFydCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgYmFja2dyb3VuZDogIzAwNDdGRjtcbiAgICBtaW4taGVpZ2h0OiAyMDBweDtcbiAgICBmb250LWZhbWlseTogcm9ib3RvLHNhbnMtc2VyaWY7Ym9yZGVyOiAxcHggc29saWQgIzAwNDdGRjtcbn1cbi5hdXRvR3JhZGVTdGFydFdoaXRlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAyMDBweDtcbiAgICBmb250LWZhbWlseTogcm9ib3RvLHNhbnMtc2VyaWY7Ym9yZGVyOiAxcHggc29saWQgI2VjZWNlYztcbn1cbi5hdXRvR3JhZGVTdGFydEZvcm0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDIwMHB4O1xuICAgIGJhY2tncm91bmQ6ICMyMTJjMzk7XG4gICAgZm9udC1mYW1pbHk6IHJvYm90byxzYW5zLXNlcmlmO1xuICAgIG1heC13aWR0aDogNDgwcHg7XG59XG4uYXV0b0dyYWRlQ2FwdHVyZSB7XG4gICAgbWF4LXdpZHRoOiA0ODBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDQwcHggYXV0bztcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIG1pbi1oZWlnaHQ6IDIwMHB4O1xuICAgIHBhZGRpbmc6IDIwcHggMzBweDtcbiAgICBmb250LWZhbWlseTogcm9ib3RvLHNhbnMtc2VyaWY7Ym9yZGVyOiAxcHggc29saWQgI2VjZWNlYztcbn1cbi5hdXRvR3JhZGVCdXR0b25CYWNrZ3JvdW5kIHtcbiAgICBtYXgtd2lkdGg6IDQ4MHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGJhY2tncm91bmQ6ICMxMDFGMjU7XG4gICAgcGFkZGluZzogMjBweDtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogOHB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA4cHg7XG4gICAgbWluLWhlaWdodDogMjAwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0zMHB4O1xuICAgIG1hcmdpbi1yaWdodDogLTMwcHg7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAtMjBweDtcbiAgICBmb250LWZhbWlseTogcm9ib3RvLHNhbnMtc2VyaWY7Ym9yZGVyOiAxcHggc29saWQgI2VjZWNlYztcbn1cbi5hdXRvR3JhZGVTdGFydCBoMiB7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgbWFyZ2luOiA1NXB4IDBweDtcbn1cbi5hdXRvR3JhZGVTdGFydFdoaXRlIGgyIHtcbiAgICBmb250LWZhbWlseTogUm9ib3RvO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogIzAwMDtcbiAgICBtYXJnaW46IDU1cHggMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi5hdXRvR3JhZGVTdGFydEZvcm0gaDR7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICM1YmQ1YTc7XG4gICAgbWFyZ2luOiAzMHB4IDBweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgZm9udC1zaXplOiAxLjg3NWVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmF1dG9HcmFkZVN0YXJ0Rm9ybSBwe1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG87XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIG1hcmdpbjogMTBweCAwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmF1dG9HcmFkZVN0YXJ0IGgxIHtcbiAgICBmb250LWZhbWlseTogUm9ib3RvO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBtYXJnaW46IDU1cHggMHB4O1xufVxuLmF1dG9HcmFkZUNhcHR1cmUgaDIge1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG87XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIG1hcmdpbjogNTVweCAwcHg7XG59XG4uYXV0b0dyYWRlU3RhcnQgbGFiZWwge1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG87XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjZmZmO1xufVxuLmF1dG9HcmFkZVN0YXJ0IGJ1dHRvbiB7XG4gIHdpZHRoOiAyMDBweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDUwcHg7XG4gIHBhZGRpbmc6IDE4cHggMTBweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6ICMwMDQ3RkY7XG4gIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi10b3A6IDEycHg7bWFyZ2luLWJvdHRvbTogMjBweDtcbn1cbi5hdXRvR3JhZGVDYXB0dXJlIGJ1dHRvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiA1MHB4O1xuICBwYWRkaW5nOiAxOHB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDdGRjtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi10b3A6IDEycHg7bWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYm9yZGVyOiAwcHhcbn1cbi5iYXNpY0J1dHRvbiBidXR0b24ge1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogNTBweDtcbiAgcGFkZGluZzogMHB4IDBweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjb2xvcjogYmxhY2s7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXRvcDogMHg7bWFyZ2luLWJvdHRvbTogMHB4O1xuICBib3JkZXI6IDBweFxufVxuLmltZy1ob2xkZXIge3Bvc2l0aW9uOiByZWxhdGl2ZTt9XG4uaW1nLWhvbGRlciAubGluayB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMTBweDsgLyp5b3VyIGJ1dHRvbiBwb3NpdGlvbiovXG4gICAgcmlnaHQ6IDEwcHg7IC8qeW91ciBidXR0b24gcG9zaXRpb24qL1xufVxuLmRvbnV0IHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXRvcDogMTB2aCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIC41KTtcbiAgICBib3JkZXItYm90dG9tOiAxMHZoIHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgLjUpO1xuICAgIGJvcmRlci1sZWZ0OiAxMHZ3IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgLjUpO1xuICAgIGJvcmRlci1yaWdodDogMTB2dyBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIC41KTtcbn1cblxuLmxlZnQge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgLjUpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4ucmlnaHQge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgLjUpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4udG9wIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIC41KTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4uYm90dG9tIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIC41KTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cblxuXG5cblxuICAuZm9ybV9yZWdpc3RlciBpbnB1dCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gIG1hcmdpbjogMnB4IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJhY2tncm91bmQ6ICNmMmYyZjI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbi1ib3R0b206IDE4cHg7fVxuXG4uZm9ybV9yZWdpc3RlciAgc2VsZWN0IHtcblxuLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuLW1vei1hcHBlYXJhbmNlOiBub25lO1xuYXBwZWFyYW5jZTogbm9uZTtcblxuLW1vei1ib3JkZXItcmFkaXVzOiAycHg7XG4td2Via2l0LWJvcmRlci1yYWRpdXM6IDJweDtcbndpZHRoOiAxMDAlO1xuYm9yZGVyLXJhZGl1czogMnB4O1xuYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBUUJBTUFBQUR0M2VKU0FBQUFBM05DU1ZRSUNBamI0VS9nQUFBQUNYQklXWE1BQUFDc0FBQUFyQUdHQ1RUVUFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCM2QzY3VhVzVyYzJOaGNHVXViM0pubSs0OEdnQUFBQnRRVEZSRi8vLy9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWVCbktQUUFBQUFsMFVrNVRBQTBWSHlVM3h0THcwRXRTU0FBQUFEOUpSRUZVQ0Z0allNQU5EQ0dVTUVPNkFvaG1LbU9JS0FJeDFGc1pXTnVCUWt3VkFReGdJYUFBQTBnSUxBQVNBZ3VBaENBQ1FLRldxSmtzRGd4NEFRQWdNUXNIaTZtWmFRQUFBQUJKUlU1RXJrSmdnZz09KSBuby1yZXBlYXQ7XG5iYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBjZW50ZXI7XG5iYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xuY29sb3I6ICMwMDAwMDA7XG5ib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xucGFkZGluZzogMTJweCAxNHB4O1xubWFyZ2luOiAycHggMDtkaXNwbGF5OiBibG9jaztiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xuYmFja2dyb3VuZC1zaXplOiAxNHB4IDE1cHg7XG5iYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwLjVlbSB0b3AgNTAlLCAwIDA7XG5cbn1cblxuICBidXR0b24uc3VibWl0YnRuIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDE4cHggMTBweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBiYWNrZ3JvdW5kOiAjMDA0N2ZmO1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiB1bnNldDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLXRvcDogMTJweDttYXJnaW4tYm90dG9tOiAyMHB4O31cblxuXG4gIC53YXJyYW50eS10aGFua3lvdS5zZWN0aW9uIHtwYWRkaW5nOiAzNXB4IDA7fVxuICAud2FycmFudHktZm9ybS5zZWN0aW9uIHtcbiAgICBwYWRkaW5nOiAzNXB4IDA7XG4gIH1cbiAgLnN1Y2Nlc21zZyB7XG4gICAgd2lkdGg6IDQ4MHB4O1xuICAgIGJhY2tncm91bmQ6ICMwMDQ3ZmY7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWluLWhlaWdodDogNDgwcHg7XG4gICAgcGFkZGluZzogMjBweCAzMHB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIC5zdWNjZXNtc2cgaDEge21hcmdpbjogMDtmb250LXNpemU6IDM2cHg7d2lkdGg6IDg1JTt0ZXh0LWFsaWduOiBsZWZ0O31cbiAgLnN1Y2Nlc21zZyBwe2ZvbnQtc2l6ZTogMTRweDtjb2xvcjojZmZmfVxuXG4gIGltZy5pY29uLWRzIHtcbiAgd2lkdGg6IDgwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMTRweDt9XG5cblxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KXtcbiAgICAuZm9ybV9yZWdpc3RlcntwYWRkaW5nOiAyMHB4IDIwcHg7fVxuICAuZm9ybV9yZWdpc3RlciB7d2lkdGg6OTUlO31cbiAgLndhcnJhbnR5LXRoYW5reW91LnNlY3Rpb24ge3BhZGRpbmc6IDBweCAwO21hcmdpbjogMCUgMCU7fVxuICB9XG5cbiAgLmFuaW1hdGlvbi1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDk5OTk7IC8qIEVuc3VyZSBpdCBpcyBvbiB0b3Agb2YgZXZlcnl0aGluZyAqL1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBBbGxvdyBpbnRlcmFjdGlvbnMgd2l0aCBlbGVtZW50cyB1bmRlcm5lYXRoICovXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuXG4gIC5sb2FkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsLjQpO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gIH1cblxuICAubG9hZGVyOjphZnRlciB7XG4gICAgY29udGVudDonJztcbiAgICBkaXNwbGF5OmJsb2NrO1xuICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgIGxlZnQ6NDglO3RvcDo0MCU7XG4gICAgYm9yZGVyOiA4cHggc29saWQgIzA1MDUwNTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyLXRvcDogOHB4IHNvbGlkICMwMDQ3ZmY7XG4gICAgd2lkdGg6IDYwcHg7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTsgLyogU2FmYXJpICovXG4gICAgYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTt6LWluZGV4Ojk5OTlcbn1cblxuICAvKiBTYWZhcmkgKi9cbiAgQC13ZWJraXQta2V5ZnJhbWVzIHNwaW4ge1xuICAgIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAgIDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgc3BpbiB7XG4gICAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAgIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG4gIH1cblxuXG5cbi8qIHN0eWxpbmcgZm9yIFZhbHVlIFBhZ2VzIFN0YXJ0cyBoZXJlICovXG5cbi52YWx1ZS1zMS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbn1cbi52YWx1ZS1wYWdlLXMxIC52YWx1ZS1zMS13cmFwcGVyIC52YWx1ZS1zMXtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG59XG4udmFsdWUtcGFnZS1zMSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAyNy41cHg7XG59XG4ubGVmdC1zZWN0aW9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4udmFsdWUtczEtd3JhcHBlciAubGVmdC1zZWN0aW9uIC5sZWZ0LWNvbnRlbnQtd3JhcHBlciBwIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LXdpZHRoOiA1MDJweDtcbiAgICBmb250LWZhbWlseTogUm9ib3RvO1xuICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi52YWx1ZS1zMS13cmFwcGVyIC5sZWZ0LXNlY3Rpb24gLmxlZnQtY29udGVudC13cmFwcGVyIHAgc3BhbiB7XG4gICAgY29sb3I6ICMwMDU2Zjg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi52YWx1ZS1zMS13cmFwcGVyIC5sZWZ0LXNlY3Rpb24gLmxlZnQtY29udGVudC13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwcHg7XG4gICAgbGVmdDogODVweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHotaW5kZXg6IDk5OTk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTMwcHggNTBweDtcbn1cbi52YWx1ZS1zMSBpbWcge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuLnZhbHVlLXBhZ2UtczEgLmxlZnQtc2VjdGlvbiB7XG4gICAgei1pbmRleDogMDtcbn1cbi8qIFN0eWxpbmcgZm9yIHByZW1pdW0gVGVjaCAqL1xuLnRlY2gtbyB7XG4gICAgcGFkZGluZzogMjcuNXB4IDBweDtcbn1cbi50ZWNoLXRpdGxlIGgyIHtcbiAgICBmb250LWZhbWlseTogUm9ib3RvO1xuICAgIGZvbnQtc2l6ZTogNTBweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiA3MHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIG1hcmdpbjogNTVweCAwcHg7XG59XG4uY29ubmVjdGluZy13cmFwcGVyLCAud2VsbG5lc3Mtd3JhcHBlci1vLC5lbnYtbyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmNvbi1zMSwgLndlbGwtczIsIC5lbnYtczEsIC5yLXMxIHtcbiAgICB3aWR0aDogMzAlO1xufVxuLmNvbi1zMiwud2VsbC1zMSwuZW52LXMyLCAuci1zMiB7XG4gICAgd2lkdGg6IDcwJTtcbn1cbi5jb24tY29udGVudC13cmFwcGVyIGgyLCAud2VsbC1jb250ZW50LXdyYXBwZXIgaDIsLmVudi1jb250ZW50IC5lbnYtY29udGVudC13cmFwcGVyIGgyIHtcbiAgICBmb250LWZhbWlseTogUm9ib3RvO1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIGNvbG9yOiAjMDA1NmY4O1xufVxuLmNvbi1jb250ZW50LXdyYXBwZXIgcHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LXdpZHRoOiA0ODlweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LWZhbWlseTogUm9ib3RvO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDAsIFJlZ3VsYXI7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xuICAgIGNvbG9yOiAjMDAwO1xufVxuLmNvbi1jb250ZW50LXdyYXBwZXIge1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBtYXJnaW4tbGVmdDogNTZweDtcbn1cbi53ZWxsLWNvbnRlbnQtd3JhcHBlciBwLC53ZWxsLWNvbnRlbnQtd3JhcHBlciBoMntcbiAgdGV4dC1hbGlnbjogcmlnaHRcbn1cbi53ZWxsLWNvbnRlbnQtd3JhcHBlciB7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIG1hcmdpbjogMCAwIDAgYXV0bztcbiAgICBwYWRkaW5nLXJpZ2h0OiA1NnB4O1xufVxuLndlbGwtY29udGVudC13cmFwcGVyIHAge1xuICAgIG1hcmdpbjogMCAwIDAgYXV0bztcbn1cbi53ZWxsLWNvbnRlbnQtd3JhcHBlciBwe1xuICBoZWlnaHQ6IGF1dG87XG4gIG1heC13aWR0aDogNTMwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LWZhbWlseTogUm9ib3RvO1xuICBmb250LXdlaWdodDogNDAwLCBSZWd1bGFyO1xuICBmb250LXNpemU6IDE3cHg7XG4gIGxpbmUtaGVpZ2h0OiAzOHB4O1xuICBjb2xvcjogIzAwMDtcbn1cbi5lbnYtY29udGVudCAuZW52LWNvbnRlbnQtd3JhcHBlciBwIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LXdpZHRoOiA0OTJweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LWZhbWlseTogUm9ib3RvO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xuICAgIGNvbG9yOiAjMDAwO1xufVxuLmVudi1jb250ZW50IC5lbnYtY29udGVudC13cmFwcGVyIHtcbiAgICBtYXJnaW4tbGVmdDogNTZweDtcbn1cblxuXG4vKiBQcmVtaXVtIERldmljZXMgKi9cbi5wcmVtaXVtLWNvbnRlbnQtd3JhcHBlciB1bCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgbWFyZ2luOiA4MHB4IGF1dG87XG4gICAgei1pbmRleDogOVxufVxuLnByZW1pdW0tY29udGVudC13cmFwcGVyIHVsIGxpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBnYXA6IDMwcHg7XG4gICAgbWFyZ2luOiAxNXB4IDBweDtcbn1cbi5wcmVtaXVtLWNvbnRlbnQtd3JhcHBlciB1bCBsaSBwIHtcbiAgICBmb250LWZhbWlseTogUm9ib3RvO1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjb2xvcjogIzAwMDtcbn1cbi5wcmVtaXVtLWNvbnRlbnQtd3JhcHBlciBoMiB7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bztcbiAgICBmb250LXNpemU6IDUwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogNzBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMGVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1heC13aWR0aDogNzkxcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgY29sb3I6ICMwMDQ3RkY7XG59XG4ucHJlbWl1bS1vIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMjcuNXB4IDBweDtcbn1cbi5wcmVtaXVtLW86OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9wcmVtaXVtLWJlZm9yZS53ZWJwKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMDtcbiAgICB0b3A6IC01MHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDM4NHB4O1xuICAgIGhlaWdodDogMzg0cHg7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbi5wcmVtaXVtLW86OmFmdGVye1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvcHJlbWl1bS1hZnRlci53ZWJwKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwO1xuICBib3R0b206IDIwMHB4O1xuICByaWdodDogMDtcbiAgd2lkdGg6IDMwMHB4O1xuICBoZWlnaHQ6IDE1NHB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuLnByZW1pdW0tY29udGVudC13cmFwcGVyIHtcbiAgICB6LWluZGV4OiA5O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLyogQmFubmVyIEJvdHRvbSAqL1xuLmJiLWltZyBpbWcge1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuLmJiLWNvbnRlbnQtd3JhcHBlciBwIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LXdpZHRoOiA4NDNweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LWZhbWlseTogUm9ib3RvO1xuICAgIGZvbnQtc2l6ZTogMzhweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogMCBhdXRvIDIwcHg7XG4gICAgY29sb3I6ICNmZmY7XG59XG4uYmItY29udGVudC13cmFwcGVyIHtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogNDhweCAzOXB4IDQ4cHggMzhweDtcbiAgICBiYWNrZ3JvdW5kOiAjMDA0N2ZmO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIGJvdHRvbTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwJSkhaW1wb3J0YW50O1xufVxuLmJiLWNvbnRlbnQtd3JhcHBlciBhIHtcbiAgICBmb250LWZhbWlseTogUm9ib3RvO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjNUJENUE3O1xufVxuLmJvdHRvbS1iYW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAyNy41cHggMHB4O1xufVxuLmJiLWNvbnRlbnQtd3JhcHBlciBhOmhvdmVyIHtcbiAgICBjb2xvcjogI2ZmZjtcbn1cblxuLyogUmVjeWNsZSBzZWN0aW9uIHN0YXJ0cyBmcm9tIGhlcmUgKi9cbi5yZWN5Y2xlLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBzZWxmLXN0YXJ0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXRvcDogMTAwcHg7XG59XG4ucmVjeWNsZS1sZWZ0IGgyLCAucmVzLXRpdGxlIHtcbiAgICBmb250LWZhbWlseTogUm9ib3RvO1xuICAgIGZvbnQtc2l6ZTogODVweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiA5NXB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjb2xvcjogIzAwMDAwMDtcbn1cbi5yZXMtdGl0bGV7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ucmVjeWNsZS1sZWZ0IHAge1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG87XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBlbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDQxMnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMjVweCAwcHg7XG59XG4ucmVjeWNsZS1sZWZ0IGEge1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG87XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIzcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBlbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGNvbG9yOiAjMDA0N0ZGO1xufVxuLnJlY3ljbGUtbGVmdCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgwcHg7XG59XG5zZWN0aW9uLnJlY3ljbGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAyNy40cHggMHB4IDBweDtcbn1cbi5yZWN5Y2xlLXJpZ2h0IGltZyB7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuXG4vKiBNb2JpbGUgc2VjdGlvbiAqL1xuLnJlY3ljbGUtbW8ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL1Bob25lLndlYnApO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNTclIDEwMCU7XG4gIGJhY2tncm91bmQtc2l6ZTogMTEyJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgcGFkZGluZzogMTAwcHggMCA1MHB4O1xufVxuLnJlY3ljbGUtbW9iaWxlIGgyIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbWFyZ2luOiAxMTBweCAwcHggMHB4O1xufVxuLm1vLWNvbnRlbnQtd3JhcHBlciBwIHtcbiAgICBtYXgtd2lkdGg6IDE3MHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4XG59XG4ubW8tY29udGVudC13cmFwcGVyIGEge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG87XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIzcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjb2xvcjogIzAwNDdmZjtcbn1cbnNlY3Rpb24ucmVjeWNsZS1tb2JpbGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuLmNvbm5lY3RpbmctaW1nIGltZywgLndlbGxuZXNzLWltZyBpbWcsLmVudi1pbWcgaW1nIHtcbiAgbWFyZ2luOiAwcHggMTBweDtcbn1cbkBtZWRpYShtYXgtd2lkdGg6IDE5MjBweCl7XG4gIC8qIC5iYi1jb250ZW50LXdyYXBwZXJ7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAlKSAhaW1wb3J0YW50O1xuICB9ICovXG59XG5AbWVkaWEobWluLXdpZHRoOiAxODAwcHgpe1xuICAudmFsdWUtczEtd3JhcHBlciAubGVmdC1zZWN0aW9uIC5sZWZ0LWNvbnRlbnQtd3JhcHBlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAxMDZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHotaW5kZXg6IDk5OTk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMjIwcHggMjAwcHggMjIwcHg7XG4gIH1cbiAgLnZhbHVlLXMxLXdyYXBwZXIgLmxlZnQtc2VjdGlvbiAubGVmdC1jb250ZW50LXdyYXBwZXIgcHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxuICAuY29ubmVjdGluZy1pbWcgaW1nLCAud2VsbG5lc3MtaW1nIGltZywuZW52LWltZyBpbWcge1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIH1cbiAgLnByZW1pdW0tY29udGVudC13cmFwcGVyIGgye1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuQG1lZGlhKG1heC13aWR0aDogMTE5OXB4KXtcbiAgLnZhbHVlLXMxLXdyYXBwZXIgLmxlZnQtc2VjdGlvbiAubGVmdC1jb250ZW50LXdyYXBwZXJ7XG4gICAgcGFkZGluZzogNTBweDtcbiAgfVxuICAudGVjaC10aXRsZSBoMntcbiAgICBmb250LXNpemU6IDQ0cHg7XG4gIH1cbiAgLmNvbm5lY3Rpbmctd3JhcHBlciwgLndlbGxuZXNzLXdyYXBwZXItbywgLmVudi1vIHtcbiAgICBtYXJnaW46IDIwcHggMHB4O1xuICB9XG4gIC5wcmVtaXVtLW86OmJlZm9yZXtcbiAgICB3aWR0aDogMTUwcHg7XG4gICAgdG9wOiAtNjBweDtcbiAgICB6LWluZGV4OiAxXG4gIH1cbiAgLnByZW1pdW0tbzo6YWZ0ZXJ7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIHotaW5kZXg6IDFcbiAgfVxuICAuYmItY29udGVudC13cmFwcGVye1xuICAgIGJvdHRvbTogLTUwcHg7XG4gIH1cbiAgLmJiLWNvbnRlbnQtd3JhcHBlciBwe1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgfVxuICAucmVjeWNsZS1sZWZ0IGgye1xuICAgIGZvbnQtc2l6ZTogNjVweDtcbiAgICBsaW5lLWhlaWdodDogNzBweDtcbiAgfVxufVxuQG1lZGlhKG1heC13aWR0aDogOTkxcHgpe1xuICAudmFsdWUtczEtd3JhcHBlciAubGVmdC1zZWN0aW9uIC5sZWZ0LWNvbnRlbnQtd3JhcHBlciB7XG4gICAgcGFkZGluZzogMjBweDtcbiAgfVxuICAudmFsdWUtczEtd3JhcHBlciAubGVmdC1zZWN0aW9uIC5sZWZ0LWNvbnRlbnQtd3JhcHBlciBwe1xuICAgIGZvbnQtc2l6ZTogMjlweDtcbiAgfVxuICAudGVjaC10aXRsZSBoMiB7XG4gICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgICBtYXgtd2lkdGg6IDQ1MHB4O1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgfVxuICAuY29uLWNvbnRlbnQtd3JhcHBlciBoMiwgLndlbGwtY29udGVudC13cmFwcGVyIGgyLCAuZW52LWNvbnRlbnQgLmVudi1jb250ZW50LXdyYXBwZXIgaDJ7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICB9XG4gIC5jb25uZWN0aW5nLXdyYXBwZXIsIC53ZWxsbmVzcy13cmFwcGVyLW8sIC5lbnYtbyB7XG4gICAgbWFyZ2luOiA1MHB4IDA7XG4gIH1cbiAgLndlbGwtY29udGVudC13cmFwcGVyIHAsLmNvbi1jb250ZW50LXdyYXBwZXIgcCwgLmVudi1jb250ZW50IC5lbnYtY29udGVudC13cmFwcGVyIHB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICB9XG4gIC5wcmVtaXVtLWNvbnRlbnQtd3JhcHBlciBoMntcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5iYi1jb250ZW50LXdyYXBwZXJ7XG4gICAgd2lkdGg6IDkwJTtcbiAgfVxuICAucmVjeWNsZS1sZWZ0IHtcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC5yZWN5Y2xlLWxlZnQgaDIge1xuICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgfVxuICAucmVjeWNsZS1sZWZ0IHB7XG4gICAgbWFyZ2luOiA4cHggMHB4O1xuICB9XG59XG5AbWVkaWEobWF4LXdpZHRoOiA3NjdweCl7XG4gIC52YWx1ZS1zMS13cmFwcGVyIC5sZWZ0LXNlY3Rpb24gLmxlZnQtY29udGVudC13cmFwcGVyIHAge1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBsaW5lLWhlaWdodDogMzVweDtcbiAgICAgfVxuICAgICAudmFsdWUtczEtd3JhcHBlciAubGVmdC1zZWN0aW9uIC5sZWZ0LWNvbnRlbnQtd3JhcHBlcntcbiAgICAgICBsZWZ0OiA2MHB4O1xuICAgICB9XG4gICAgIC5wcmVtaXVtLW86OmJlZm9yZSB7XG4gICAgd2lkdGg6IDI1MHB4O1xuICAgIGhlaWdodDogMjUwcHg7XG4gICAgdG9wOiAxMDBweDtcbiAgICB6LWluZGV4OiAxO1xufVxuLnByZW1pdW0tbzo6YWZ0ZXIge1xuICAgIHdpZHRoOiAxNTBweDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGhlaWdodDogMTUwcHg7XG4gICAgYm90dG9tOiAxNTBweDtcbn1cbi5iYi1jb250ZW50LXdyYXBwZXIgcCB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xufVxuLmJiLWNvbnRlbnQtd3JhcHBlcntcbiAgICAgIHBhZGRpbmc6IDQ4cHggMzlweCA1MHB4IDM4cHg7XG59XG4ucmVjeWNsZS1sZWZ0IHtcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICB3aWR0aDogNzAlO1xufVxuLnJlY3ljbGUtbGVmdCBoMiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5yZXMtdGl0bGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1hcmdpbjogNDBweCAyMHB4IDA7XG59XG4ucmVjeWNsZS13cmFwcGVye1xuICBwYWRkaW5nLXRvcDogMTBweDtcbn1cbi5wcmVtaXVtLWNvbnRlbnQtd3JhcHBlciB1bCBsaSBwLC5yZWN5Y2xlLWxlZnQgcHtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuLnByZW1pdW0tY29udGVudC13cmFwcGVyIHVsIGxpIGltZyB7XG4gICAgd2lkdGg6IDI1cHg7XG4gICAgaGVpZ2h0OiAyNXB4O1xufVxufVxuXG5AbWVkaWEobWF4LXdpZHRoOiA2NDBweCl7XG4gIC5sZWZ0LXNlY3Rpb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IC0yMHB4O1xuICAgIGxlZnQ6IDBweDtcbiAgfVxuICAudmFsdWUtczEtd3JhcHBlciAubGVmdC1zZWN0aW9uIC5sZWZ0LWNvbnRlbnQtd3JhcHBlcntcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMzBweDtcbiAgfVxuICAudmFsdWUtczEtd3JhcHBlciB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgLnZhbHVlLXBhZ2UtczEgLnZhbHVlLXMxLXdyYXBwZXIgLnZhbHVlLXMxIHtcbiAgICB3aWR0aDogMTAwJSFpbXBvcnRhbnQ7XG4gIH1cbiAgLmxlZnQtc2VjdGlvbiAubGVmdC1jb250ZW50LXdyYXBwZXIge1xuICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQgIWltcG9ydGFudDtcbiAgfVxuICAudmFsdWUtczEtd3JhcHBlciAubGVmdC1zZWN0aW9uIC5sZWZ0LWNvbnRlbnQtd3JhcHBlciBwIHtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgbGluZS1oZWlnaHQ6IDM1cHg7XG4gICAgbWF4LXdpZHRoOiAzNTBweDtcbn1cblxuICAvKiBDb250ZW50IHNlY3Rpb24gKi9cbiAgLmNvbm5lY3Rpbmctd3JhcHBlciB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAuY29uLXMxLCAuY29uLXMyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuY29uLXMxIGltZyB7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuICAuY29uLXMyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xNDBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBwYWRkaW5nOiAzMHB4O1xuICB9XG4gIC5jb24tY29udGVudC13cmFwcGVye1xuICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG4gIH1cblxuICAvKiB3ZWxsbmVzczsgKi9cbiAgLndlbGxuZXNzLXdyYXBwZXItbyB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC53ZWxsLXMxLCAud2VsbC1zMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLndlbGwtczIgaW1nIHtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICB9XG4gIC53ZWxsbmVzcy1jb250ZW50LndlbGwtczEge1xuICAgIG9yZGVyOiAyO1xuICB9XG4gIC53ZWxsLWNvbnRlbnQtd3JhcHBlciB7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG4gIC53ZWxsLWNvbnRlbnQtd3JhcHBlciBoMiwgLndlbGwtY29udGVudC13cmFwcGVyIHAge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbiAgLndlbGxuZXNzLWNvbnRlbnQud2VsbC1zMSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMTQwcHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgcGFkZGluZzogMzBweDtcbiAgfVxuICAud2VsbC1zMSBwLC5jb24tczIgcCwgLmVudi1jb250ZW50LXdyYXBwZXIgcCB7XG4gICAgbWF4LXdpZHRoOiA0MzBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAucHJlbWl1bS1jb250ZW50LXdyYXBwZXIgdWwgbGkgcHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gIH1cblxuICAvKiBFbnZpcm9ubWVudCAqL1xuICAuZW52LW8ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICB9XG4gIC5lbnYtczEsIC5lbnYtczIge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5lbnYtczEgaW1nIHtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICB9XG4gIC5lbnYtY29udGVudCAuZW52LWNvbnRlbnQtd3JhcHBlcntcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gIH1cbiAgLmVudi1zMiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuICAuZW52LWNvbnRlbnQtd3JhcHBlciB7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xNDBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDMwcHg7XG4gIH1cblxuXG4gIC8qIFByZW1pdW0gRGV2aWNlICovXG4gIC5wcmVtaXVtLWNvbnRlbnQtd3JhcHBlciBoMiB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogMTAwcHg7XG4gICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAucHJlbWl1bS1jb250ZW50LXdyYXBwZXIgdWx7XG4gICAgbWFyZ2luOiA4MHB4IDBweCAwcHggMzBweDtcbiAgfVxuICAucHJlbWl1bS1jb250ZW50LXdyYXBwZXIgdWwgbGkgaW1nIHtcbiAgICB3aWR0aDogMjVweDtcbiAgICBoZWlnaHQ6IDI1cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuICAucHJlbWl1bS1vOjpiZWZvcmUge1xuICAgIHdpZHRoOiAyNDBweDtcbiAgICBoZWlnaHQ6IDI0MHB4O1xuICAgIHRvcDogMHB4O1xuICAgIHotaW5kZXg6IDE7XG4gIH1cbiAgLnByZW1pdW0tbzo6YWZ0ZXJ7XG4gICAgYm90dG9tOiA0MHB4O1xuICB9XG4gIC5iYi1jb250ZW50LXdyYXBwZXIgcCB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG87XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMGVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXgtd2lkdGg6IDMxMHB4O1xuICB9XG4gIC5iYi1jb250ZW50LXdyYXBwZXIge1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgfVxuICAuYmItY29udGVudC13cmFwcGVyIHtcbiAgICBwYWRkaW5nOiA0OHB4IDEwMHB4O1xuICB9XG5cbiAgLyogbGFzdCBzZWN0aW9uICovXG4gIC5yZWN5Y2xlLWxlZnQgcHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbiAgLnJlY3ljbGUtd3JhcHBlcntcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIH1cbiAgLmNvbi1zMiwud2VsbC1zMSwuZW52LWNvbnRlbnQgLmVudi1jb250ZW50LXdyYXBwZXIge1xuICAgIG1hcmdpbjogMTVweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHggMTVweDtcbiAgfVxuICAuY29ubmVjdGluZy1pbWcgaW1nLCAud2VsbG5lc3MtaW1nIGltZywgLmVudi1pbWcgaW1nIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAudGVjaC1vIHtcbiAgICBwYWRkaW5nOiAxMDBweCAwcHggNTVweDtcbiAgfVxufVxuQG1lZGlhKG1heC13aWR0aDogNDgwcHgpe1xuICAubGVmdC1zZWN0aW9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAtNzBweDtcbiAgICBsZWZ0OiAwO1xuICB9XG4gIC52YWx1ZS1zMS13cmFwcGVyIC5sZWZ0LXNlY3Rpb24gLmxlZnQtY29udGVudC13cmFwcGVyIHAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMjVweDtcbiAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICB9XG5cblxuICAvKiB0ZWNoIHNlY3Rpb24gKi9cbiAgLnRlY2gtdGl0bGUgaDIsLmNvbi1jb250ZW50LXdyYXBwZXIgaDIsLndlbGwtY29udGVudC13cmFwcGVyIGgyLC5lbnYtY29udGVudCAuZW52LWNvbnRlbnQtd3JhcHBlciBoMiwucHJlbWl1bS1jb250ZW50LXdyYXBwZXIgaDIsLnJlcy10aXRsZSB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICB9XG4gIC53ZWxsLWNvbnRlbnQtd3JhcHBlciBwLCAuY29uLWNvbnRlbnQtd3JhcHBlciBwLCAuZW52LWNvbnRlbnQgLmVudi1jb250ZW50LXdyYXBwZXIgcCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICB9XG4ucHJlbWl1bS1jb250ZW50LXdyYXBwZXIgaDJ7XG4gIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICB9XG4gIC5wcmVtaXVtLW86OmJlZm9yZSB7XG4gICAgd2lkdGg6IDE0MHB4O1xuICAgIGhlaWdodDogMTQwcHg7XG4gICAgdG9wOiAxMDBweDtcbiAgfVxuICAucHJlbWl1bS1jb250ZW50LXdyYXBwZXIgdWwge1xuICAgIG1hcmdpbjogODBweCAwIDAgMTVweDtcbiAgfVxuICAucHJlbWl1bS1jb250ZW50LXdyYXBwZXIgdWwgbGkgcCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG4gIC5wcmVtaXVtLWNvbnRlbnQtd3JhcHBlciB1bCBsaXtcbiAgICBnYXA6IDEwcHg7XG4gIH1cbiAgLnByZW1pdW0tbzo6YWZ0ZXJ7XG4gICAgd2lkdGg6IDEwMHB4O1xuICB9XG4gIC5iYi1jb250ZW50LXdyYXBwZXIge1xuICAgIHBhZGRpbmc6IDhweCAwcHg7XG4gIH1cbiAgLmJiLWNvbnRlbnQtd3JhcHBlciBwe1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gIH1cbiAgLmJiLWNvbnRlbnQtd3JhcHBlciBhLC5tby1jb250ZW50LXdyYXBwZXIgYXtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbiAgLmJiLWNvbnRlbnQtd3JhcHBlciB7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbiAgLyogc2VjdGlvbi5yZWN5Y2xlLW1vYmlsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH0gKi9cbiAgLyogc2VjdGlvbi5yZWN5Y2xlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9ICovXG4gIC5wcmVtaXVtLWNvbnRlbnQtd3JhcHBlciBoMntcbiAgICBsaW5lLWhlaWdodDogMzVweDtcbiAgfVxuICAucmVjeWNsZS1tb3tcbiAgICBwYWRkaW5nOiAxNTBweCAwcHggNTBweDtcbiAgfVxuICAucmVjeWNsZS1sZWZ0LCAucmVjeWNsZS1yaWdodHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAucmVjeWNsZS13cmFwcGVye1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC5yZWN5Y2xlLWxlZnQge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICB9XG4gIC5yZWN5Y2xlLWxlZnQgcHtcbiAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICB9XG5cblxuICAvKiAgV2hpdGVzcGFjZSBNYW5hZ2VtZW50ICovXG4gIC53ZWxsbmVzcy13cmFwcGVyLW8ge1xuICAgIG1hcmdpbi10b3A6IC0yMDBweDtcbiAgfVxuICAuZW52LW8ge1xuICAgIG1hcmdpbi10b3A6IC0xODBweDtcbiAgfVxuICAucHJlbWl1bS1vIHtcbiAgICBtYXJnaW4tdG9wOiAtMjAwcHg7XG4gIH1cbiAgLnRlY2gtbyB7XG4gICAgcGFkZGluZzogNTBweCAwcHg7XG4gIH1cbn1cblxuXG4vKiBBbmltYXRpb24gTWFuYWdlbWVudCAqL1xuLmFvcy1hbmltYXRle1xuICB0cmFuc2l0aW9uOiA1cyBlYXNlLWluLW91dDtcbn1cblxuXG5cblxuLyogVHJhY2VhYmlsaXR5ICovXG4uYmFubmVyLXRyYWNlLW8ge1xuICAgIG1hcmdpbi1ib3R0b206IDU1cHg7XG59XG4uYmFubmVyLXRyYWNlLWkgLmJhbm5lci1pbWcgaW1nIHtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbGVmdDogMHB4O1xuICAgIHRvcDogODBweDtcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG4uYmFubmVyLXRyYWNlLWkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5iYW5uZXItdHJhY2UtaSAuYmFubmVyLWNvbnRlbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSAhaW1wb3J0YW50O1xuICAgIGJvdHRvbTogNDBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDUwcHggODBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYmFubmVyLXRyYWNlLWkgLmJhbm5lci1jb250ZW50IGgyIHtcbiAgICBmb250LWZhbWlseTogUm9ib3RvO1xuICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjMDA0N0ZGO1xufVxuLmJhbm5lci1jb250ZW50IGg0IHtcbiAgICBmb250LWZhbWlseTogUm9ib3RvO1xuICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1heC13aWR0aDogMTAwMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xufVxuaDIudGFiIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBQaG9uZSBHaXJsIFNlY3Rpb24gKi9cbi5naXJsLXBob25lIHtcbiAgICBtYXJnaW46IDExMHB4IDBweDtcbn1cbi5naXJsLXBob25lLXdyYXBwZXIgaW1nIHtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuLmdpcmwtcGhvbmUtd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnBob25lLWdpcmwtY29udGVudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBib3R0b206IDQwcHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjb2xvcjogI2ZmZjtcbn1cbi5waG9uZS1naXJsLWNvbnRlbnQgaDQge1xuICAgIG1heC13aWR0aDogOTI5cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG87XG4gICAgZm9udC1zaXplOiA1MHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDYwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBlbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1hcmdpbjogMCBhdXRvIDMwcHg7XG4gICAgY29sb3I6ICNmZmY7XG59XG4ucGhvbmUtZ2lybC1jb250ZW50IGgyIHtcbiAgICBmb250LWZhbWlseTogUm9ib3RvO1xuICAgIGZvbnQtc2l6ZTogNzBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiA4MHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXgtd2lkdGg6IDkyOXB4O1xuICAgIG1hcmdpbjogMzBweCBhdXRvIDIwcHg7XG59XG4uZ2lybC1waG9uZS13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB6LWluZGV4OiAzO1xufVxuXG4vKiBQcm9kdWN0IFRyYWNlYWJpbGl0eSAqL1xuLnByb2QtdHJhY2Utd3JhcHBlciB7XG4gICAgei1pbmRleDogOTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ucHJvZC10cmFjZS13cmFwcGVyIHA6bnRoLWNoaWxkKDEpIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA2NzFweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBmb250LWZhbWlseTogUm9ib3RvO1xuICAgIGZvbnQtc2l6ZTogNTBweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiA3MHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjMDAwMDAwO1xufVxuLnByb2QtdHJhY2Utd3JhcHBlciBwOmxhc3QtY2hpbGQge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDU5MHB4O1xuICAgIG1hcmdpbjogNTBweCBhdXRvO1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG87XG4gICAgZm9udC1zaXplOiA1MHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDcwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICMwMDAwMDA7XG59XG4ucHJvZC10cmFjLW8ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDAgMCAxMDBweDtcbn1cbi5wcm9kLXRyYWMtbzo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL1RyYWNlYWJpbGl0eS9hcHBsZV9haXJwb2RzX21heF9hdXJpY3VsYXJlc19ibHVldG9vdGhfMDFfYmxhbmNvX2xcXCAyLndlYnApO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICB3aWR0aDogMzA3cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRvcDogLTM1MHB4O1xuICAgIGxlZnQ6IDBweDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQ7XG59XG4ucHJvZC10cmFjLW86OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL1RyYWNlYWJpbGl0eS9zbWFydFxcIDEud2VicCk7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIHdpZHRoOiAyODRweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm90dG9tOiAtMzAwcHg7XG4gICAgcmlnaHQ6IDBweDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDA7XG59XG5cbi8qIFdoYXQgd2Ugc3RhbmQgZm9yICovXG4uY29udGFpbmVyLXN0YW5ke1xuICBtYXgtd2lkdGg6IDExNzBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG4uc3RhbmQtbyB7XG4gICAgcGFkZGluZzogNTVweCAwO1xuICAgIGJhY2tncm91bmQ6ICNGN0Y3Rjc7XG59XG4uc3RhbmQtaSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLDFmcik7XG4gICAgZ2FwOiAzMHB4O1xufVxuLnN0YW5kLWkgLmNhcmRzIGgyIHtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bztcbiAgICBmb250LXNpemU6IDM1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsaW5lLWhlaWdodDogNjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMGVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWFyZ2luOiAwIDAgMjBweDtcbn1cbi5zdGFuZC1pIC5jYXJkcyBwIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAzMzhweDtcbiAgICBmb250LWZhbWlseTogUm9ib3RvICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBlbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnN0YW5kLXRpdGxlIGgyIHtcbiAgICBmb250LWZhbWlseTogUm9ib3RvO1xuICAgIGZvbnQtc2l6ZTogNTVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiA4MHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXJnaW46IDUwcHggMDtcbiAgICBjb2xvcjogIzAwNDdGRjtcbn1cbi5zdGFuZC1vIC5zdGFuZC10aXRsZSBoMiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbn1cblxuLyogUG9pbnRzIGNoZWNrICovXG4uc3RhbmQtbGlzdCBoMyB7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bztcbiAgICBmb250LXNpemU6IDM1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsaW5lLWhlaWdodDogNjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMGVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIG1hcmdpbjogMzBweCAwO1xufVxuLnBvaW50cy1saXN0IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsMWZyKTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzAwMDtcbiAgICBwYWRkaW5nLXRvcDogNTBweDtcbn1cbi5wb2ludHMtbGlzdCB1bCBsaSB7XG4gICAgbWFyZ2luOiAxMHB4IDA7XG59XG4gIC5wb2ludHMtbGlzdCB1bCBsaSB7XG4gICAgbWFyZ2luOiAxMHB4IDA7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bztcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMGVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbi5zdGFuZC1saXN0IHtcbiAgICBtYXJnaW46IDAgMCA1MHB4O1xufVxuXG4vKiBPdXIgR29hbCAqL1xuLmdvYWwtaSBwIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA4ODhweDtcbiAgICBmb250LWZhbWlseTogUm9ib3RvICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiA0NnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDU4cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDBlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgY29sb3I6ICNmZmY7XG59XG4uZ29hbC1pIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDA0N0ZGO1xuICAgIHBhZGRpbmc6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwcHg7XG59XG5cblxuQG1lZGlhKG1pbi13aWR0aDogMTQwMHB4KXtcbiAgLmJhbm5lci10cmFjZS1pIC5iYW5uZXItaW1nIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmJhbm5lci10cmFjZS1pIC5iYW5uZXItY29udGVudCBoMntcbiAgICBmb250LXNpemU6IDM2cHg7XG4gICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgfVxuICAuYmFubmVyLXRyYWNlLWkgLmJhbm5lci1jb250ZW50e1xuICAgIGJvdHRvbTogMjIwcHg7XG4gIH1cbn1cbkBtZWRpYShtYXgtd2lkdGg6IDE0MDBweCl7XG4gIC5iYW5uZXItdHJhY2UtaSAuYmFubmVyLWNvbnRlbnQgaDIge1xuICAgIGZvbnQtZmFtaWx5OiBSb2JvdG87XG4gICAgZm9udC1zaXplOiAyNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjMDA0N2ZmO1xuICB9XG4gIC5iYW5uZXItY29udGVudCBoNCB7XG4gICAgZm9udC1mYW1pbHk6IFJvYm90bztcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWF4LXdpZHRoOiA3MDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxuICAuYmFubmVyLXRyYWNlLWkgLmJhbm5lci1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAyMHB4IDQwcHg7XG4gICAgYm90dG9tOiAxODBweDtcbiAgfVxufVxuQG1lZGlhKG1heC13aWR0aDogMTE5OXB4KXtcbiAgLmNvbnRhaW5lci1zdGFuZCB7XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICB9XG4gIC5iYW5uZXItdHJhY2UtaSAuYmFubmVyLWNvbnRlbnQgaDIge1xuICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgfVxuICAuYmFubmVyLWNvbnRlbnQgaDR7XG4gICAgZm9udC1zaXplOiAyNXB4O1xuICAgIG1heC13aWR0aDogNTAwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gIH1cbiAgLnBob25lLWdpcmwtY29udGVudCBoNCB7XG4gICAgbWF4LXdpZHRoOiA1MjlweDtcbiAgICBmb250LXNpemU6IDQwcHg7XG4gIH1cbiAgLnBob25lLWdpcmwtY29udGVudCBoMiB7XG4gICAgZm9udC1zaXplOiA0MHB4O1xuICAgIGxpbmUtaGVpZ2h0OiA2MHB4O1xuICAgIG1heC13aWR0aDogNTI5cHg7XG4gIH1cbiAgLnByb2QtdHJhY2Utd3JhcHBlciBwOm50aC1jaGlsZCgxKSwucHJvZC10cmFjZS13cmFwcGVyIHA6bGFzdC1jaGlsZHtcbiAgICBtYXgtd2lkdGg6IDQ3MXB4O1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgfVxuICAucHJvZC10cmFjLW86OmJlZm9yZSB7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIHRvcDogLTI1MHB4O1xuICB9XG4gIC5wcm9kLXRyYWMtbzo6YWZ0ZXIge1xuICAgIHdpZHRoOiAxODRweDtcbiAgfVxuICAuc3RhbmQtaSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLDFmcik7XG4gICAgcm93LWdhcDogMzBweDtcbiAgfVxuICAuYmFubmVyLXRyYWNlLWkgLmJhbm5lci1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAyMHB4IDQwcHg7XG4gICAgYm90dG9tOiAyMHB4O1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMzAwcHgpIHtcbiAgICAuc2VhcmNoLWJhciB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMzAxcHgpIHtcbiAgICAuc2VhcmNoLWJhciB7XG4gICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICB9XG59XG5cbkBtZWRpYShtYXgtd2lkdGg6IDk5MnB4KXtcbiAgLmNvbnRhaW5lci1zdGFuZCB7XG4gICAgcGFkZGluZzogMCAycmVtO1xuICB9ICBcbi5iYW5uZXItdHJhY2UtaSAuYmFubmVyLWNvbnRlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBib3R0b206IDBweDtcbiAgfSBcbiAgLmJhbm5lci10cmFjZS1vIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gIH1cbiAgLmJhbm5lci10cmFjZS1pIC5iYW5uZXItY29udGVudCBoMiB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIFxuICB9XG4gIC5iYW5uZXItY29udGVudCBoNCB7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIG1heC13aWR0aDogNTYwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gIH1cbiAgLmdpcmwtcGhvbmUge1xuICAgIG1hcmdpbjogNTVweCAwO1xuICB9XG4gIC5waG9uZS1naXJsLWNvbnRlbnQgaDQge1xuICAgIG1heC13aWR0aDogNDI5cHg7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICB9XG4gIC5waG9uZS1naXJsLWNvbnRlbnQgaDIge1xuICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICBsaW5lLWhlaWdodDogNDVweDtcbiAgICBtYXgtd2lkdGg6IDM1MHB4O1xuICAgIG1hcmdpbjogMCBhdXRvIDAgMDtcblxuICB9XG4gIC5wcm9kLXRyYWNlLXdyYXBwZXIgcDpudGgtY2hpbGQoMSkge1xuICAgIG1heC13aWR0aDogMzMwcHg7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICB9XG4gLnByb2QtdHJhY2Utd3JhcHBlciBwOmxhc3QtY2hpbGQge1xuICAgIG1heC13aWR0aDogMjgwcHg7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICB9XG4gIC5wcm9kLXRyYWMtbzo6YmVmb3JlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0b3A6IC0xMDBweDtcbiAgfVxuICAucHJvZC10cmFjLW86OmFmdGVyIHtcbiAgICAgIHdpZHRoOiAxMzRweDtcbiAgICAgIGJvdHRvbTogLTE1MHB4O1xuICB9XG4gIC5zdGFuZC1vIC5zdGFuZC10aXRsZSBoMiwuc3RhbmQtdGl0bGUgaDIge1xuICAgIGZvbnQtc2l6ZTogNTBweDtcbiAgfVxuICAuc3RhbmQtaSAuY2FyZHMgaDJ7XG4gICAgZm9udC1zaXplOiAzNHB4O1xuICAgIG1hcmdpbjogMHB4O1xuICB9XG4gIC5zdGFuZC1pIC5jYXJkcyBwe1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gIH1cbiAgLnN0YW5kLWxpc3QgaDN7XG4gICAgZm9udC1zaXplOiAzNHB4O1xuICB9XG4gIC5nb2FsLWkgcHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiA0MHB4OyAgXG4gIH1cbn1cblxuQG1lZGlhKG1heC13aWR0aDogNzY3cHgpe1xuICAucGhvbmUtZ2lybC1jb250ZW50IGgyLC5waG9uZS1naXJsLWNvbnRlbnQgaDR7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICAgIG1heC13aWR0aDogNDI5cHg7XG4gIH1cbiAgLnByb2QtdHJhYy1vOjpiZWZvcmUge1xuICAgIHdpZHRoOiAxNTBweDtcbiAgICB0b3A6IC0yMjBweDtcbiAgfVxuICAucHJvZC10cmFjLW86OmFmdGVyIHtcbiAgICB3aWR0aDogMTAwcHg7XG4gICAgYm90dG9tOiAtMjUwcHg7XG4gIH1cbiAgLnByb2QtdHJhY2Utd3JhcHBlciBwOm50aC1jaGlsZCgxKXtcbiAgICBtYXgtd2lkdGg6IDMzMXB4O1xuICB9XG4gIC5wcm9kLXRyYWNlLXdyYXBwZXIgcDpsYXN0LWNoaWxkIHtcbiAgICBtYXgtd2lkdGg6IDI2MHB4O1xuICB9XG4gIC5waG9uZS1naXJsLWNvbnRlbnQgaDQge1xuICAgIGZvbnQtc2l6ZTogMzNweDtcbiAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICBtYXgtd2lkdGg6IDUwMHB4O1xuICB9XG4gIC5waG9uZS1naXJsLWNvbnRlbnQgaDIge1xuICAgIGZvbnQtc2l6ZTogNDJweDtcbiAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgICBtYXgtd2lkdGg6IDUwMXB4O1xuICB9XG4gIC5zdGFuZC1vIC5zdGFuZC10aXRsZSBoMiwgLnN0YW5kLXRpdGxlIGgyIHtcbiAgICBmb250LXNpemU6IDQ0cHg7XG4gIH1cbiAgLnN0YW5kLWkgLmNhcmRzIGgyLC5zdGFuZC1saXN0IGgzIHtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gIH1cbiAgLmdvYWwtaSBwIHtcbiAgICBmb250LXNpemU6IDI3cHg7XG4gIH1cbiAgLmJhbm5lci1jb250ZW50IGg0IHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbWF4LXdpZHRoOiA1NjBweDtcbiAgfVxuICAuYmFubmVyLXRyYWNlLWkgLmJhbm5lci1jb250ZW50IGgyIHtcbiAgICBmb250LXNpemU6IDM4cHg7XG4gIH1cbiAgaDIudGFiIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICBoMi5kZXNrIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5iYW5uZXItY29udGVudCBoNCB7XG4gICAgZm9udC1zaXplOiAzNXB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDIwcHggMHB4O1xuICB9XG4gIC5wb2ludHMtbGlzdCB1bCBsaXtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gIH1cbn1cblxuQG1lZGlhKG1heC13aWR0aDogNjQwcHgpe1xuICAucG9pbnRzLWxpc3QgdWwgbGkge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxuICAucG9pbnRzLWxpc3Qge1xuICAgIGdhcDogMjBweDtcbiAgfVxuICAuYmFubmVyLXRyYWNlLWkgLmJhbm5lci1jb250ZW50IGgyIHtcbiAgICBmb250LXNpemU6IDI4cHg7XG4gIH1cbiAgLmJhbm5lci1jb250ZW50IGg0IHtcbiAgICBmb250LXNpemU6IDI1cHg7XG4gIH1cbiAgLnBob25lLWdpcmwtY29udGVudCBoNCB7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwIDE1cHg7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgfVxuICAucGhvbmUtZ2lybC1jb250ZW50IGgyIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDM0cHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDBweCAxNXB4O1xuICB9XG4gIC5wcm9kLXRyYWMtbzo6YmVmb3JlIHtcbiAgICB3aWR0aDogMTAwcHg7XG4gICAgdG9wOiAtMjUwcHg7XG4gIH1cbiAgLnN0YW5kLWkge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsMWZyKTtcbiAgfVxuICAuc3RhbmQtbyAuc3RhbmQtdGl0bGUgaDIsIC5zdGFuZC10aXRsZSBoMiB7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICB9XG4gIC5zdGFuZC1vIC5zdGFuZC10aXRsZSBoMiwgLnN0YW5kLXRpdGxlIGgyIHtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgbWFyZ2luOiAxNXB4IDBweDtcbiAgfVxuICAucG9pbnRzLWxpc3QgdWwgbGkge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgfVxuICAuZ29hbC1pIHAge1xuICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICBsaW5lLWhlaWdodDogMzRweDtcbiAgfVxufVxuXG5AbWVkaWEobWF4LXdpZHRoOiA0ODBweCl7XG4gIC5jb250YWluZXItc3RhbmQge1xuICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgfVxuICAuYmFubmVyLXRyYWNlLWkgLmJhbm5lci1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICB9XG4gIC5iYW5uZXItdHJhY2UtaSAuYmFubmVyLWNvbnRlbnQgaDIge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgfVxuICAuYmFubmVyLWNvbnRlbnQgaDQge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgfVxuICAucGhvbmUtZ2lybC1jb250ZW50IGgyIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gIH1cbiAgLnBob25lLWdpcmwtY29udGVudCBoNCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyN3B4O1xuICB9XG4gIC5wcm9kLXRyYWNlLXdyYXBwZXIgcDpudGgtY2hpbGQoMSksLnByb2QtdHJhY2Utd3JhcHBlciBwOmxhc3QtY2hpbGR7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBwYWRkaW5nOiAwIDI1cHg7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gIH1cbiAgLnByb2QtdHJhYy1vOjpiZWZvcmUge1xuICAgIHRvcDogLTIwMHB4O1xuICB9XG4gIC5zdGFuZC1vIC5zdGFuZC10aXRsZSBoMiwgLnN0YW5kLXRpdGxlIGgyIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgbWFyZ2luOiAxNXB4IDA7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gIH1cbiAgLnBvaW50cy1saXN0IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLDFmcik7XG4gICAgZ2FwOiAwcHg7XG4gIH1cbiAgLnBvaW50cy1saXN0IHVsIGxpIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cbiAgLmdvYWwtaXtcbiAgICBwYWRkaW5nOiAyMHB4IDE1cHg7XG4gIH1cbiAgLmdvYWwtaSBwIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gIH1cbiAgLmdpcmwtcGhvbmUge1xuICAgIG1hcmdpbjogMHB4IDAgNTVweDtcbiAgfVxuICAuc3RhbmQtaSAuY2FyZHMgaDIsIC5zdGFuZC1saXN0IGgzIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gIH1cbiAgLnN0YW5kLWkgLmNhcmRzIHAge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxuXG4gIC5maXhlZC13aWR0aCB7XG4gICAgICB3aWR0aDogMzVweDsgLyogQWRqdXN0IHRoZSB3aWR0aCBhcyBuZWVkZWQgKi9cbiAgfVxuXG4gIC5mbGV4aWJsZS13aWR0aCB7XG4gICAgICBmbGV4OiAxO1xuICAgICAgcGFkZGluZzogMTBweDsgLyogT3B0aW9uYWwgcGFkZGluZyAqL1xuICAgICAgbWFyZ2luOiA1cHg7IC8qIE9wdGlvbmFsIG1hcmdpbiAqL1xuICB9XG4gIC5mdWxsLWJ1dHRvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gIH1cbn1cblxuLm1kLWNvbHVtbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi1sZWZ0OiAtMXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMXJlbTtcblxuICA+ZGl2IHtcbiAgICBmbGV4OiAxIDE7XG4gICAgbWFyZ2luOiAxcmVtIDA7XG4gICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICB9XG5cbiAgLm1hcmtkb3duLWlubmVyIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLyogQWRkaXRpb25hbCB1dGlsaXR5IGNsYXNzZXMgZm9yIHNpdGVtYXAgYW5kIGdlbmVyYWwgdXNlICovXG5cbi8qIFNpemluZyAmIFNwYWNpbmcgKi9cbi5weS04IHsgcGFkZGluZy10b3A6IDJyZW07IHBhZGRpbmctYm90dG9tOiAycmVtOyB9XG4ucGItMiB7IHBhZGRpbmctYm90dG9tOiAwLjVyZW07IH1cbi5tci0yIHsgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cbi5tYi02IHsgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9XG4uZ2FwLTYgeyBnYXA6IDEuNXJlbTsgfVxuLm1heC13LTJ4bCB7IG1heC13aWR0aDogNDJyZW07IH1cbi5tYXgtaC00OCB7IG1heC1oZWlnaHQ6IDEycmVtOyB9XG4ubWF4LWgtOTYgeyBtYXgtaGVpZ2h0OiAyNHJlbTsgfVxuXG4vKiBUeXBvZ3JhcGh5ICovXG4uZm9udC1ib2xkIHsgZm9udC13ZWlnaHQ6IDcwMDsgfVxuLmZvbnQtc2VtaWJvbGQgeyBmb250LXdlaWdodDogNjAwOyB9XG4uaXRhbGljIHsgZm9udC1zdHlsZTogaXRhbGljOyB9XG4udW5kZXJsaW5lIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbi5ob3ZlclxcOnVuZGVybGluZTpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi50ZXh0LTJ4bCB7IGZvbnQtc2l6ZTogMS41cmVtOyBsaW5lLWhlaWdodDogMnJlbTsgfVxuLnRleHQtM3hsIHsgZm9udC1zaXplOiAxLjg3NXJlbTsgbGluZS1oZWlnaHQ6IDIuMjVyZW07IH1cbi50ZXh0LTR4bCB7IGZvbnQtc2l6ZTogMi4yNXJlbTsgbGluZS1oZWlnaHQ6IDIuNXJlbTsgfVxuXG4vKiBMYXlvdXQgKi9cbi5ncmlkIHsgZGlzcGxheTogZ3JpZDsgfVxuLmdyaWQtY29scy0yIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpOyB9XG4uZ3JpZC1jb2xzLTMgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7IH1cbi5ncmlkLWNvbHMtNSB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIG1pbm1heCgwLCAxZnIpKTsgfVxuLm92ZXJmbG93LXktYXV0byB7IG92ZXJmbG93LXk6IGF1dG87IH1cbi5zcGFjZS15LTEgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIHsgLS10dy1zcGFjZS15LXJldmVyc2U6IDA7IG1hcmdpbi10b3A6IGNhbGMoMC4yNXJlbSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKTsgbWFyZ2luLWJvdHRvbTogY2FsYygwLjI1cmVtICogdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSk7IH1cbi5zcGFjZS15LTIgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIHsgLS10dy1zcGFjZS15LXJldmVyc2U6IDA7IG1hcmdpbi10b3A6IGNhbGMoMC41cmVtICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpOyBtYXJnaW4tYm90dG9tOiBjYWxjKDAuNXJlbSAqIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpOyB9XG5cbi8qIEJvcmRlcnMgKi9cbi5ib3JkZXItYi0yIHsgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4OyB9XG4uYm9yZGVyLWJsdWUtMjAwIHsgLS10dy1ib3JkZXItb3BhY2l0eTogMTsgYm9yZGVyLWNvbG9yOiByZ2JhKDE5MSwgMjE5LCAyNTQsIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5KSk7IH1cbi5ib3JkZXItZ3JlZW4tMjAwIHsgLS10dy1ib3JkZXItb3BhY2l0eTogMTsgYm9yZGVyLWNvbG9yOiByZ2JhKDE2NywgMjQzLCAyMDgsIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5KSk7IH1cbi5ib3JkZXItcHVycGxlLTIwMCB7IC0tdHctYm9yZGVyLW9wYWNpdHk6IDE7IGJvcmRlci1jb2xvcjogcmdiYSgyMjEsIDIxNCwgMjU0LCB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSkpOyB9XG4uYm9yZGVyLW9yYW5nZS0yMDAgeyAtLXR3LWJvcmRlci1vcGFjaXR5OiAxOyBib3JkZXItY29sb3I6IHJnYmEoMjU0LCAyMTUsIDE3MCwgdmFyKC0tdHctYm9yZGVyLW9wYWNpdHkpKTsgfVxuLmJvcmRlci1yZWQtMjAwIHsgLS10dy1ib3JkZXItb3BhY2l0eTogMTsgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NCwgMjAyLCAyMDIsIHZhcigtLXR3LWJvcmRlci1vcGFjaXR5KSk7IH1cbi5ib3JkZXItZ3JheS0yMDAgeyAtLXR3LWJvcmRlci1vcGFjaXR5OiAxOyBib3JkZXItY29sb3I6IHJnYmEoMjI5LCAyMzEsIDIzNSwgdmFyKC0tdHctYm9yZGVyLW9wYWNpdHkpKTsgfSAvKiBNYXRjaGVzIGV4aXN0aW5nIGRlZmF1bHQgKi9cblxuLyogVGV4dCBDb2xvcnMgKi9cbi50ZXh0LWJsdWUtNjAwIHsgLS10dy10ZXh0LW9wYWNpdHk6IDE7IGNvbG9yOiByZ2JhKDM3LCA5OSwgMjM1LCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTsgfVxuLmhvdmVyXFw6dGV4dC1ibHVlLTYwMDpob3ZlciB7IC0tdHctdGV4dC1vcGFjaXR5OiAxOyBjb2xvcjogcmdiYSgzNywgOTksIDIzNSwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7IH1cbi50ZXh0LWJsdWUtNzAwIHsgLS10dy10ZXh0LW9wYWNpdHk6IDE7IGNvbG9yOiByZ2JhKDI5LCA3OCwgMjE2LCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTsgfVxuLmhvdmVyXFw6dGV4dC1ibHVlLTcwMDpob3ZlciB7IC0tdHctdGV4dC1vcGFjaXR5OiAxOyBjb2xvcjogcmdiYSgyOSwgNzgsIDIxNiwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7IH1cbi50ZXh0LWJsdWUtODAwIHsgLS10dy10ZXh0LW9wYWNpdHk6IDE7IGNvbG9yOiByZ2JhKDMwLCA2NCwgMTc1LCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTsgfVxuLmhvdmVyXFw6dGV4dC1ibHVlLTgwMDpob3ZlciB7IC0tdHctdGV4dC1vcGFjaXR5OiAxOyBjb2xvcjogcmdiYSgzMCwgNjQsIDE3NSwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7IH1cblxuLnRleHQtZ3JlZW4tNjAwIHsgLS10dy10ZXh0LW9wYWNpdHk6IDE7IGNvbG9yOiByZ2JhKDUsIDE1MCwgMTA1LCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTsgfVxuLmhvdmVyXFw6dGV4dC1ncmVlbi02MDA6aG92ZXIgeyAtLXR3LXRleHQtb3BhY2l0eTogMTsgY29sb3I6IHJnYmEoNSwgMTUwLCAxMDUsIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpOyB9XG4udGV4dC1ncmVlbi03MDAgeyAtLXR3LXRleHQtb3BhY2l0eTogMTsgY29sb3I6IHJnYmEoNCwgMTIwLCA4NywgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7IH1cbi5ob3ZlclxcOnRleHQtZ3JlZW4tNzAwOmhvdmVyIHsgLS10dy10ZXh0LW9wYWNpdHk6IDE7IGNvbG9yOiByZ2JhKDQsIDEyMCwgODcsIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpOyB9XG4udGV4dC1ncmVlbi04MDAgeyAtLXR3LXRleHQtb3BhY2l0eTogMTsgY29sb3I6IHJnYmEoNiwgOTUsIDcwLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTsgfVxuLmhvdmVyXFw6dGV4dC1ncmVlbi04MDA6aG92ZXIgeyAtLXR3LXRleHQtb3BhY2l0eTogMTsgY29sb3I6IHJnYmEoNiwgOTUsIDcwLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTsgfVxuXG4udGV4dC1wdXJwbGUtNjAwIHsgLS10dy10ZXh0LW9wYWNpdHk6IDE7IGNvbG9yOiByZ2JhKDEyNCwgNTgsIDIzNywgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7IH1cbi5ob3ZlclxcOnRleHQtcHVycGxlLTYwMDpob3ZlciB7IC0tdHctdGV4dC1vcGFjaXR5OiAxOyBjb2xvcjogcmdiYSgxMjQsIDU4LCAyMzcsIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpOyB9XG4udGV4dC1wdXJwbGUtNzAwIHsgLS10dy10ZXh0LW9wYWNpdHk6IDE7IGNvbG9yOiByZ2JhKDEwOSwgNDAsIDIxNywgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7IH1cbi5ob3ZlclxcOnRleHQtcHVycGxlLTcwMDpob3ZlciB7IC0tdHctdGV4dC1vcGFjaXR5OiAxOyBjb2xvcjogcmdiYSgxMDksIDQwLCAyMTcsIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpOyB9XG4udGV4dC1wdXJwbGUtODAwIHsgLS10dy10ZXh0LW9wYWNpdHk6IDE7IGNvbG9yOiByZ2JhKDkxLCAzMywgMTgyLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTsgfVxuLmhvdmVyXFw6dGV4dC1wdXJwbGUtODAwOmhvdmVyIHsgLS10dy10ZXh0LW9wYWNpdHk6IDE7IGNvbG9yOiByZ2JhKDkxLCAzMywgMTgyLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTsgfVxuXG4udGV4dC1vcmFuZ2UtNjAwIHsgLS10dy10ZXh0LW9wYWNpdHk6IDE7IGNvbG9yOiByZ2JhKDIzNCwgODgsIDEyLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTsgfVxuLmhvdmVyXFw6dGV4dC1vcmFuZ2UtNjAwOmhvdmVyIHsgLS10dy10ZXh0LW9wYWNpdHk6IDE7IGNvbG9yOiByZ2JhKDIzNCwgODgsIDEyLCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTsgfVxuLnRleHQtb3JhbmdlLTcwMCB7IC0tdHctdGV4dC1vcGFjaXR5OiAxOyBjb2xvcjogcmdiYSgxOTQsIDY1LCAxMiwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7IH1cbi5ob3ZlclxcOnRleHQtb3JhbmdlLTcwMDpob3ZlciB7IC0tdHctdGV4dC1vcGFjaXR5OiAxOyBjb2xvcjogcmdiYSgxOTQsIDY1LCAxMiwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7IH1cbi50ZXh0LW9yYW5nZS04MDAgeyAtLXR3LXRleHQtb3BhY2l0eTogMTsgY29sb3I6IHJnYmEoMTU0LCA1MiwgMTgsIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpOyB9XG4uaG92ZXJcXDp0ZXh0LW9yYW5nZS04MDA6aG92ZXIgeyAtLXR3LXRleHQtb3BhY2l0eTogMTsgY29sb3I6IHJnYmEoMTU0LCA1MiwgMTgsIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpOyB9XG5cbi50ZXh0LXJlZC02MDAgeyAtLXR3LXRleHQtb3BhY2l0eTogMTsgY29sb3I6IHJnYmEoMjIwLCAzOCwgMzgsIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpOyB9XG4uaG92ZXJcXDp0ZXh0LXJlZC02MDA6aG92ZXIgeyAtLXR3LXRleHQtb3BhY2l0eTogMTsgY29sb3I6IHJnYmEoMjIwLCAzOCwgMzgsIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpOyB9XG4udGV4dC1yZWQtNzAwIHsgLS10dy10ZXh0LW9wYWNpdHk6IDE7IGNvbG9yOiByZ2JhKDE4NSwgMjgsIDI4LCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTsgfVxuLmhvdmVyXFw6dGV4dC1yZWQtNzAwOmhvdmVyIHsgLS10dy10ZXh0LW9wYWNpdHk6IDE7IGNvbG9yOiByZ2JhKDE4NSwgMjgsIDI4LCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTsgfVxuLnRleHQtcmVkLTgwMCB7IC0tdHctdGV4dC1vcGFjaXR5OiAxOyBjb2xvcjogcmdiYSgxNTMsIDI3LCAyNywgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7IH1cbi5ob3ZlclxcOnRleHQtcmVkLTgwMDpob3ZlciB7IC0tdHctdGV4dC1vcGFjaXR5OiAxOyBjb2xvcjogcmdiYSgxNTMsIDI3LCAyNywgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7IH1cblxuLnRleHQtZ3JheS01MDAgeyAtLXR3LXRleHQtb3BhY2l0eTogMTsgY29sb3I6IHJnYmEoMTA3LCAxMTQsIDEyOCwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7IH0gLyogTm90ZTogU2FtZSBhcyBleGlzdGluZyB0ZXh0LWdyYXktNjAwLCBhZGp1c3QgaWYgZGlmZmVyZW50IHNoYWRlIG5lZWRlZCAqL1xuLmhvdmVyXFw6dGV4dC1ncmF5LTUwMDpob3ZlciB7IC0tdHctdGV4dC1vcGFjaXR5OiAxOyBjb2xvcjogcmdiYSgxMDcsIDExNCwgMTI4LCB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTsgfVxuLnRleHQtZ3JheS04MDAgeyAtLXR3LXRleHQtb3BhY2l0eTogMTsgY29sb3I6IHJnYmEoMzEsIDQxLCA1NSwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7IH1cbi5ob3ZlclxcOnRleHQtZ3JheS04MDA6aG92ZXIgeyAtLXR3LXRleHQtb3BhY2l0eTogMTsgY29sb3I6IHJnYmEoMzEsIDQxLCA1NSwgdmFyKC0tdHctdGV4dC1vcGFjaXR5KSk7IH1cblxuXG4vKiBSZXNwb25zaXZlIEdyaWQgQ29sdW1ucyAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7IC8qIG1kICovXG4gIC5tZFxcOmdyaWQtY29scy0yIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpOyB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHsgLyogbGcgKi9cbiAgLmxnXFw6Z3JpZC1jb2xzLTMgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7IH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkgeyAvKiB4bCAqL1xuICAueGxcXDpncmlkLWNvbHMtNSB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIG1pbm1heCgwLCAxZnIpKTsgfVxufVxuXG4vKiBSZXNwb25zaXZlIGltYWdlIGltcHJvdmVtZW50cyAqL1xuaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbmltZ1t3aWR0aF1baGVpZ2h0XSB7XG4gIGFzcGVjdC1yYXRpbzogYXR0cih3aWR0aCkgLyBhdHRyKGhlaWdodCk7XG59XG5cbi8qIEVuc3VyZSBpY29ucyBtYWludGFpbiB0aGVpciBzaXplICovXG4uaWNvbi1pbWFnZSB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDogODBweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgYXNwZWN0LXJhdGlvOiAxO1xufSJdfQ== */