/* stylelint-disable scss/dollar-variable-empty-line-before */
/* stylelint-disable scss/dollar-variable-colon-space-after */
/*
Import our custom control key for form styling in theme.json.
Maybe use core/form, core/form-input, and core/form-submit-button
if the allowed attributes are enough.
*/
/*
SVG images for radios, checkboxes, selects, and datalists.
*/
/*
Add right arrow to buttons.
*/
/*! modern-normalize v2.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */
/*
Document
========
*/
/**
Use a better box model (opinionated).
*/
*,
::before,
::after {
  box-sizing: border-box;
}

html {
  /* Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) */
  font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
  line-height: 1.15; /* 1. Correct the line height in all browsers. */
  -webkit-text-size-adjust: 100%; /* 2. Prevent adjustments of font size after orientation changes in iOS. */
  -moz-tab-size: 4; /* 3. Use a more readable tab size (opinionated). */
  tab-size: 4; /* 3 */
}

/*
Sections
========
*/
body {
  margin: 0; /* Remove the margin in all browsers. */
}

/*
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] {
  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 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.
*/
button,
select {
  text-transform: none;
}

/**
Correct the inability to style clickable types in iOS and Safari.
*/
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

/**
Remove the inner border and padding in Firefox.
*/
::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
Restore the focus styles unset by the previous rule.
*/
:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
Remove the additional ':invalid' styles in Firefox.
See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737
*/
:-moz-ui-invalid {
  box-shadow: none;
}

/**
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.
*/
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/**
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/
[type=search] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
Remove the inner padding in Chrome and Safari on macOS.
*/
::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to 'inherit' in Safari.
*/
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Interactive
===========
*/
/*
Add the correct display in Chrome and Safari.
*/
summary {
  display: list-item;
}

:root {
  line-height: 1.5;
}

html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
}

body.wp-admin *, body.wp-admin *::before, body.wp-admin *::after {
  box-sizing: revert;
}

h1,
h2,
h3,
h4,
h5 {
  word-break: keep-all;
}

img[style*=aspect-ratio],
figure[style*=aspect-ratio] {
  width: 100%;
  height: 100%;
  overflow: hidden;
}

img {
  display: block;
  max-inline-size: 100%;
}

input {
  overflow: visible;
}

/**
1. Fix height difference with inputs of same line-height and padding.
2. Remove the inheritance of text transform in Firefox.
*/
select {
  text-transform: none; /* 2 */
  appearance: none; /* 1 */
}

textarea {
  overflow: auto;
}

[type=radio]:not(:disabled),
[type=checkbox]:not(:disabled) {
  cursor: pointer;
}

fieldset {
  padding: 0;
  margin: 0;
  border: none;
}

input,
textarea {
  appearance: none;
}

input[list]::-webkit-calendar-picker-indicator {
  display: none !important;
}

b,
strong {
  font-weight: var(--wp--custom--font-weight--bold);
}

kbd, code, samp, pre {
  font-size: 0.8889em;
  text-wrap-mode: nowrap;
  white-space-collapse: preserve-spaces;
}

code {
  padding-left: 0;
  overflow-x: initial;
  border: none;
}

a {
  text-underline-offset: 0.15em;
}

[style*=underline] {
  text-decoration-thickness: 1px !important;
  text-decoration-color: color-mix(in srgb, currentColor 50%, transparent) !important;
}

:focus-visible {
  outline: var(--wp--preset--color--focus) solid 1.5px;
  outline-offset: 0.5em;
}

/* Utility
--------------------------------------------- */
.unstyled {
  margin: 0;
  font-size: 1em;
  line-height: normal;
}

a[data-target] {
  cursor: pointer;
}

.is-style-uppercase {
  text-transform: uppercase;
}

.is-style-white-space-nowrap {
  white-space: nowrap;
}

.is-style-filter-invert {
  filter: invert(1);
}

.has-default-transition {
  transition-duration: 200ms;
  transition-property: all;
}

.is-style-fadeout {
  pointer-events: none;
  opacity: 0 !important;
  transition-duration: 500ms;
  transition-property: opacity;
}

.is-style-fadein {
  pointer-events: auto !important;
  opacity: 1 !important;
  transition-duration: 500ms;
  transition-property: opacity;
}

.is-layout-flex > .is-margin-inline-auto {
  margin-inline-start: auto;
}

.is-position-absolute {
  position: absolute;
}

.is-top {
  top: 0;
}

.is-flex-none {
  flex: 0;
}

.no-flex-shrink {
  flex-shrink: 0;
}

[style*="var(--wp--preset--spacing--overlap)"] {
  position: relative;
  z-index: 1;
}

.is-links-nowrap a[href] {
  white-space: nowrap;
}

/* Media Queries
---------------------------------------------------------------------------- */
/*
 * Hidden
 * `hidden` attribute also set here to make it stronger
 */
[hidden],
.is-style-hidden {
  display: none !important;
}

/* Hide if primary pointing device doesn't support hover, e.g. touch screens. */
@media (hover: none) {
  .is-style-hidden-touch {
    display: none !important;
  }
}
/* Hide if primary pointing device supports hover, e.g. mice. */
@media (hover) {
  .is-style-hidden-notouch {
    display: none !important;
  }
}
/* Responsive Settings block filter */
@media (max-width: 781px) {
  .has-mobile-order-first {
    order: -1;
  }
  .has-mobile-order-last {
    order: 1;
  }
  .has-mobile-content-alignment {
    --navigation-layout-align: center;
    --mobile-content-alignment: center;
    text-align: center;
  }
  .has-mobile-content-alignment .is-layout-flex:not(.is-vertical), .has-mobile-content-alignment.is-layout-flex:not(.is-vertical) {
    justify-content: var(--mobile-content-alignment);
  }
  .has-mobile-content-alignment .is-layout-flex.is-vertical, .has-mobile-content-alignment.is-layout-flex.is-vertical {
    align-items: var(--mobile-content-alignment);
  }
  .has-mobile-content-alignment-left {
    text-align: left;
    --mobile-content-alignment: flex-start;
  }
  .has-mobile-content-alignment-right {
    text-align: right;
    --mobile-content-alignment: flex-end;
  }
}
/* stylelint-disable no-descending-specificity */
/* stylelint-disable scss/dollar-variable-pattern, scss/dollar-variable-empty-line-before, scss/dollar-variable-colon-space-after */
/*
						theme.json										fallback
						----------										--------- */
/* stylelint-disable scss/dollar-variable-empty-line-before, scss/dollar-variable-colon-space-after */
/*
						theme.json										fallback
						----------										--------- */
/* stylelint-disable scss/dollar-variable-pattern, scss/dollar-variable-colon-space-after */
/* Feather Icons */
/* IonIcons */
/* css.gg */
form[method] {
  /* Input, select and textarea
   * Allowed: 	`text`, `password`, `datetime-local`, `date`,  `month`,
  				`time`, `week`, `number`, `email`, `url`, `search`, `tel`, `color`
   * Disallowed: 	`range`, `radio`, `checkbox`, `file`, `submit`, `reset` and `image`
  =================================================================================== */
  /*
  * 1. Prevent content overflow if a fixed width is used
  * 2. Take the full width
  * 3. Style
  */
  /*
  * Single-line
  */
  /*
  * Multi-line
  */
  /* Single-line selects, datalists */
}
form[method] label:has([type=radio]),
form[method] label:has([type=checkbox]) {
  display: flex;
  line-height: 1.5rem;
}
form[method] [type=radio],
form[method] [type=checkbox] {
  transition-duration: 100ms;
  transition-property: transform, background;
  transition-timing-function: ease-out;
  mask-position: 50%;
  mask-repeat: no-repeat;
  mask-size: contain;
  height: 1.5rem;
  aspect-ratio: 1;
  margin-inline-end: 0.5em;
  vertical-align: middle;
  background-color: var(--wp--preset--color--neutral-300);
  border: 0;
}
form[method] [type=radio]:checked,
form[method] [type=checkbox]:checked {
  background-color: currentColor;
}
form[method] [type=radio]:focus-visible, form[method] [type=radio]:active,
form[method] [type=checkbox]:focus-visible,
form[method] [type=checkbox]:active {
  background-color: var(--wp--preset--color--primary);
  transform: scale(1.25);
  transition-duration: 300ms;
  transition-timing-function: cubic-bezier(0.25, 1.65, 0.45, 1), ease;
}
form[method] [type=radio]:disabled,
form[method] [type=checkbox]:disabled {
  color: var(--wp--preset--color--neutral-500);
  background-color: var(--wp--preset--color--neutral-300);
  border-color: var(--wp--preset--color--neutral-500);
}
form[method] [type=radio] {
  mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20d%3D%22M448%20256c0-106-86-192-192-192S64%20150%2064%20256s86%20192%20192%20192%20192-86%20192-192z%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%2232%22%2F%3E%3C%2Fsvg%3E");
}
form[method] [type=radio]:checked {
  mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20d%3D%22M448%20256c0-106-86-192-192-192S64%20150%2064%20256s86%20192%20192%20192%20192-86%20192-192z%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%2232%22%2F%3E%3Ccircle%20cx%3D%22256%22%20cy%3D%22256%22%20r%3D%22144%22%2F%3E%3C%2Fsvg%3E");
}
form[method] [type=checkbox] {
  mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20d%3D%22M416%20448H96a32.09%2032.09%200%2001-32-32V96a32.09%2032.09%200%200132-32h320a32.09%2032.09%200%200132%2032v320a32.09%2032.09%200%2001-32%2032z%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%2232%22%2F%3E%3C%2Fsvg%3E");
}
form[method] [type=checkbox]:checked {
  mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%2232%22%20d%3D%22M352%20176L217.6%20336%20160%20272%22%2F%3E%3Crect%20x%3D%2264%22%20y%3D%2264%22%20width%3D%22384%22%20height%3D%22384%22%20rx%3D%2248%22%20ry%3D%2248%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%2232%22%2F%3E%3C%2Fsvg%3E");
}
form[method] [type=checkbox]:indeterminate {
  opacity: 0.5;
  mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20d%3D%22M416%20448H96a32.09%2032.09%200%2001-32-32V96a32.09%2032.09%200%200132-32h320a32.09%2032.09%200%200132%2032v320a32.09%2032.09%200%2001-32%2032z%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%2232%22%2F%3E%3C%2Fsvg%3E");
}
form[method] select,
form[method] textarea, form[method] input[type=text], form[method] input[type=password], form[method] input[type=date], form[method] input[type=datetime], form[method] input[type=datetime-local], form[method] input[type=email], form[method] input[type=month], form[method] input[type=number], form[method] input[type=search], form[method] input[type=tel], form[method] input[type=time], form[method] input[type=url], form[method] input[type=week] {
  /* 2 */
  width: 100%;
  /* 1 */
  max-width: 100%;
  line-height: var(--wp--custom--line-height--body);
  color: var(--wp--preset--color--contrast);
  /* 3 */
  background-color: var(--wp--preset--color--base);
  outline: 3px solid transparent;
  font-family: var(--wp--preset--font-family--body);
  font-size: var(--wp--preset--font-size--base);
  font-weight: var(--wp--preset--font-weight--regular);
  border-width: 1px;
  border-color: var(--wp--preset--color--neutral-300);
  border-radius: 3px;
  border-style: solid;
  box-shadow: "0 0 0 0 rgb(0 0 0 / 10%)";
  /* stylelint-disable-next-line order/properties-order */
  padding: 9px 18px 9px 18px;
  transition-duration: 100ms;
  transition-property: transform, box-shadow;
  transition-timing-function: ease-out;
}
form[method] select:focus-visible,
form[method] textarea:focus-visible, form[method] input[type=text]:focus-visible, form[method] input[type=password]:focus-visible, form[method] input[type=date]:focus-visible, form[method] input[type=datetime]:focus-visible, form[method] input[type=datetime-local]:focus-visible, form[method] input[type=email]:focus-visible, form[method] input[type=month]:focus-visible, form[method] input[type=number]:focus-visible, form[method] input[type=search]:focus-visible, form[method] input[type=tel]:focus-visible, form[method] input[type=time]:focus-visible, form[method] input[type=url]:focus-visible, form[method] input[type=week]:focus-visible, form[method] select:active,
form[method] textarea:active, form[method] input[type=text]:active, form[method] input[type=password]:active, form[method] input[type=date]:active, form[method] input[type=datetime]:active, form[method] input[type=datetime-local]:active, form[method] input[type=email]:active, form[method] input[type=month]:active, form[method] input[type=number]:active, form[method] input[type=search]:active, form[method] input[type=tel]:active, form[method] input[type=time]:active, form[method] input[type=url]:active, form[method] input[type=week]:active {
  border-color: var(--wp--preset--color--primary);
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  transform: scale(1.025);
  transition-duration: 300ms;
  transition-timing-function: cubic-bezier(0.25, 1.65, 0.45, 1), ease;
}
form[method] select:disabled,
form[method] textarea:disabled, form[method] input[type=text]:disabled, form[method] input[type=password]:disabled, form[method] input[type=date]:disabled, form[method] input[type=datetime]:disabled, form[method] input[type=datetime-local]:disabled, form[method] input[type=email]:disabled, form[method] input[type=month]:disabled, form[method] input[type=number]:disabled, form[method] input[type=search]:disabled, form[method] input[type=tel]:disabled, form[method] input[type=time]:disabled, form[method] input[type=url]:disabled, form[method] input[type=week]:disabled {
  color: var(--wp--preset--color--neutral-500);
  background-color: var(--wp--preset--color--neutral-300);
  border-color: var(--wp--preset--color--neutral-500);
}
form[method] select:not([multiple], [size]) {
  vertical-align: middle;
}
form[method] select[multiple],
form[method] select[size],
form[method] textarea {
  vertical-align: top;
}
form[method] select[multiple],
form[method] select[size] {
  resize: vertical;
}
form[method] input[list],
form[method] select:not([multiple], [size]) {
  padding-right: calc(1.5rem + 18px);
  background-position: calc(100% - 1.5rem / 2) 50%;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20class%3D%22feather%20feather-chevron-down%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-size: auto 1.5rem;
}
form[method] ::placeholder {
  color: var(--wp--preset--color--neutral-700);
}

/* stylelint-disable selector-id-pattern */
/*
 * <kbd> colors taken from Atelier Forest Light
 * https://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest/
 */
/* #68615e */
/* #e6e2e0 */
/* #f1efee */
kbd, code, samp, pre {
  font-family: var(--wp--preset--font-family--mono);
}

kbd {
  padding: 0.1em 0.4em;
  margin-inline: 0.2em;
  color: hsl(18, 5%, 39%);
  background: hsl(20, 10%, 94%);
  border-radius: 0.3em;
}
kbd:first-child {
  margin-inline-start: 0;
}
kbd:last-child {
  margin-inline-end: 0;
}
kbd::selection,
kbd ::selection {
  text-shadow: none;
  background: hsl(20, 11%, 89%);
}

#gform_submit_button_6 {
  position: relative;
  left: 50%;
  z-index: 0;
  display: inline-block;
  padding: 0.75em 1.375em;
  font-family: var(--wp--custom--font--heading);
  font-weight: 600;
  color: var(--wp--preset--color--neutral);
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  cursor: pointer;
  background-color: var(--wp--preset--color--primary);
  border: 2px solid var(--wp--preset--color--primary);
  border-radius: 0;
  transform: translateX(-50%);
}
#gform_submit_button_6:hover {
  color: var(--wp--preset--color--primary);
  background-color: var(--wp--preset--color--neutral);
  border: 2px solid var(--wp--preset--color--primary);
}

header {
  position: sticky;
  top: 0;
  z-index: 100;
  width: 100%;
  background-color: var(--wp--preset--color--neutral);
}

.ginput_container textarea {
  background-color: #f0f0f0 !important;
}
.ginput_container input {
  background-color: #f0f0f0 !important;
}
.ginput_container input.gfield-choice-input {
  background-color: #5C5C5C !important;
}

.is-style-blue-box {
  position: relative;
  z-index: 1000 !important;
  width: fit-content;
  padding: 0.5em 0.75em;
  text-transform: uppercase;
  background-color: var(--wp--preset--color--primary);
}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmaWxlOi8vL2FwcC90aGVtZXMvbWFzb25ub3cyMDI0L3NyYy9zY3NzL2Fic3RyYWN0cy9fdmFyaWFibGVzLmZvcm1zLnNjc3MiLCJmaWxlOi8vL2FwcC90aGVtZXMvbWFzb25ub3cyMDI0L3NyYy9zY3NzL2Fic3RyYWN0cy9fcGxhY2Vob2xkZXJzLnNjc3MiLCJmaWxlOi8vL2FwcC90aGVtZXMvbWFzb25ub3cyMDI0L3NyYy9ub2RlX21vZHVsZXMvbW9kZXJuLW5vcm1hbGl6ZS9tb2Rlcm4tbm9ybWFsaXplLmNzcyIsImZpbGU6Ly8vYXBwL3RoZW1lcy9tYXNvbm5vdzIwMjQvc3JjL3Njc3MvX3Jlc2V0LnNjc3MiLCJmaWxlOi8vL2FwcC90aGVtZXMvbWFzb25ub3cyMDI0L3NyYy9zY3NzL2NvbXBvbmVudHMvX3V0aWxpdHkuc2NzcyIsImZpbGU6Ly8vYXBwL3RoZW1lcy9tYXNvbm5vdzIwMjQvc3JjL3Njc3MvY29tcG9uZW50cy9fZm9ybS5zY3NzIiwiZmlsZTovLy9hcHAvdGhlbWVzL21hc29ubm93MjAyNC9zcmMvc2Nzcy9hYnN0cmFjdHMvX2Zvcm0taW5wdXQuc2NzcyIsImZpbGU6Ly8vYXBwL3RoZW1lcy9tYXNvbm5vdzIwMjQvc3JjL3Njc3MvYWJzdHJhY3RzL19mb3JtLXJhZGlvLnNjc3MiLCJmaWxlOi8vL2FwcC90aGVtZXMvbWFzb25ub3cyMDI0L3NyYy9zY3NzL2Fic3RyYWN0cy9fZm9ybS1pbWFnZS5zY3NzIiwiZmlsZTovLy9hcHAvdGhlbWVzL21hc29ubm93MjAyNC9zcmMvc2Nzcy9icmFuZC9fc3R5bGUuc2NzcyIsImZpbGU6Ly8vYXBwL3RoZW1lcy9tYXNvbm5vdzIwMjQvc3JjL3Njc3Mvc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBdUJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE4RkE7QUFBQTtBQUFBO0FDakZBO0FBQUE7QUFBQTtBQ3JDQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0VBR0M7OztBQUdEO0FBQ0M7RUFDQSxhQUNDO0VBUUQ7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0M7RUFDQTs7O0FBR0Q7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFJQTtFQUNDOzs7QUFHRDtBQUFBO0FBQUE7QUFJQTtBQUFBO0VBRUM7OztBQUdEO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7RUFJQyxhQUNDLDZFQUtXO0VBQ1o7OztBQUdEO0FBQUE7QUFBQTtBQUlBO0VBQ0M7OztBQUdEO0FBQUE7QUFBQTtBQUlBO0FBQUE7RUFFQztFQUNBO0VBQ0E7RUFDQTs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0M7RUFDQTs7O0FBR0Q7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLQztFQUNBO0VBQ0E7RUFDQTs7O0FBR0Q7QUFBQTtBQUFBO0FBSUE7QUFBQTtFQUVDOzs7QUFHRDtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtFQUlDOzs7QUFHRDtBQUFBO0FBQUE7QUFJQTtFQUNDO0VBQ0E7OztBQUdEO0FBQUE7QUFBQTtBQUlBO0VBQ0M7OztBQUdEO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0FBSUE7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0FBSUE7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0FBSUE7QUFBQTtFQUVDOzs7QUFHRDtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0M7RUFDQTs7O0FBR0Q7QUFBQTtBQUFBO0FBSUE7RUFDQzs7O0FBR0Q7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNDO0VBQ0E7OztBQUdEO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBSUE7RUFDQzs7O0FDeFFEO0VBQ0M7OztBQUdEO0VBQ0M7RUFDQTs7O0FBT0E7RUFDQzs7O0FBSUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUtDOzs7QUFJRDtBQUFBO0VBRUM7RUFDQTtFQUNBOzs7QUFHRDtFQUNDO0VBQ0E7OztBQU1EO0VBQ0M7OztBQUdEO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDQztFQUNBOzs7QUFJRDtFQUNDOzs7QUFJRDtBQUFBO0VBRUM7OztBQUlEO0VBQ0M7RUFDQTtFQUNBOzs7QUFJRDtBQUFBO0VBRUM7OztBQUlEO0VBQ0M7OztBQUlEO0FBQUE7RUFFQzs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7OztBQUdEO0VBQ0M7RUFDQTtFQUNBOzs7QUFJRDtFQUNDOzs7QUFHRDtFQUVFO0VBQ0E7OztBQUlGO0VBQ0M7RUFDQTs7O0FDNUhEO0FBQUE7QUFpQkE7RUFDQztFQUNBO0VBQ0E7OztBQUdEO0VBQ0M7OztBQUdEO0VBQ0M7OztBQUdEO0VBQ0M7OztBQUdEO0VBQ0M7OztBQUdEO0VBQ0M7RUFDQTs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFDQTs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFDQTs7O0FBSUQ7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQztFQUNBOzs7QUFJQTtFQUNDOzs7QUFJRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0VBRUM7OztBQThCRDtBQUNBO0VBQ0M7SUFDQzs7O0FBSUY7QUFDQTtFQUNDO0lBQ0M7OztBQUlGO0FBQ0E7RUFDQztJQUEwQjs7RUFDMUI7SUFBeUI7O0VBRXpCO0lBQ0M7SUFDQTtJQUVBOztFQUVBO0lBRUM7O0VBR0Q7SUFFQzs7RUFJRDtJQUNDO0lBRUE7O0VBR0Q7SUFDQztJQUVBOzs7QUMvS0g7QUNBQTtBQWlCQTtBQUFBO0FBQUE7QUNqQkE7QUFnQkE7QUFBQTtBQUFBO0FDaEJBO0FBVUE7QUFZQTtBQWdCQTtBSHhCQTtBQXVFQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWlGQTtBQUFBO0FBQUE7QUFPQTtBQUFBO0FBQUE7QUFlQTs7QUFuTEE7QUFBQTtFQUVDO0VBQ0EsYUVpQmU7O0FGZGhCO0FBQUE7RUVrQkM7RUFDQTtFQUNBO0VGZkM7RUFDQTtFQUNBO0VBR0QsUUVJZTtFRkhmO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7QUFBQTtFQUNDOztBQUdEO0FBQUE7QUFBQTtFRUlEO0VBQ0E7RUFFQztFQUNBOztBRkpBO0FBQUE7RUVTRDtFQUNBO0VBQ0E7O0FGTkE7RUFDQzs7QUFFQTtFQUNDOztBQUlGO0VBQ0M7O0FBU0E7RUFDQzs7QUFRRDtFQUNDO0VBQ0E7O0FBZ0JGO0FBQUE7QUFDQztFQUNBO0FBRUE7RUFDQTtFQUNBLGFDNURlO0VENkRmLE9DbkZVO0FEcUZWO0VBQ0Esa0JDckZhO0VEc0ZiO0VBRUMsYUN0RWM7RUR1RWQsV0N0RVk7RUR1RVosYUN0RWM7RUR5RWQsY0N4RmU7RUR5RmYsY0MxRmU7RUQyRmYsZUN6RmU7RUQwRmY7RUFHRCxZQ3hGYTtBRDBGYjtFQUNBLFNBQ0M7RUNyRUQ7RUFDQTtFQUNBOztBRDBFQTtBQUFBO0FBQUE7RUNyRUQ7RUFDQTtFQUNBO0VBR0M7RUFDQTs7QURtRUE7QUFBQTtFQ3JERDtFQUNBO0VBQ0E7O0FEd0RBO0VBQ0M7O0FBR0Q7QUFBQTtBQUFBO0VBQ0M7O0FBMkNEO0FBQUE7RUFFQzs7QUFLRDtBQUFBO0VBRUM7RUFFQztFQUNBO0VBQ0E7RUFDQTs7QUFLRjtFQUNDLE9DekxtQjs7O0FHdkJyQjtBQVNBO0FBQUE7QUFBQTtBQUFBO0FBSytCO0FBQ0E7QUFDQTtBQUUvQjtFQUNDOzs7QUFHRDtFQUNDO0VBQ0E7RUFDQSxPQVhRO0VBWVIsWUFWUTtFQVdSOztBQUVBO0VBQWdCOztBQUNoQjtFQUFlOztBQUVmO0FBQUE7RUFFQztFQUNBLFlBcEJPOzs7QUNJVDtFQUNRO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ047RUFDTTtFQUNBOztBQUVKO0VBQ0Q7RUFDQTtFQUNBOzs7QUFJSDtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0VBQ0M7O0FBR0Q7RUFDRjs7QUFFRTtFQUNDOzs7QUFPSDtFQUNJO0VBQ0g7RUFDRztFQUNBO0VBQ0o7RUFDSSIsInNvdXJjZXNDb250ZW50IjpbIi8qIHN0eWxlbGludC1kaXNhYmxlIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWVtcHR5LWxpbmUtYmVmb3JlICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBzY3NzL2RvbGxhci12YXJpYWJsZS1jb2xvbi1zcGFjZS1hZnRlciAqL1xuLy8vL1xuLy8vIEZvcm0gdmFyaWFibGVzXG4vLy8gSWRlYWxseSwgdGhpcyBmaWxlIHNob3VsZCBub3QgbmVlZCBleHRlbnNpdmUgZWRpdHMuXG4vLy8gSW50ZXJtZWRpYXJ5IGZpbGUgYmV0d2VlbiB0aGUgZm9ybXMgc3R5bGUgZGVmaW5pdGlvbnMgYW5kIHRoZW1lLmpzb24uXG4vLy8gQGdyb3VwIHRyb2xsZXlcbi8vLy9cblxuQHVzZSBcImFic3RyYWN0cy92YXJpYWJsZXNcIiBhcyAqO1xuQHVzZSBcImFic3RyYWN0cy9mdW5jdGlvbnNcIiBhcyAqO1xuQHVzZSBcImFic3RyYWN0cy9taXhpbnNcIiBhcyAqO1xuXG4vLyBAdXNlIFwidGhlbWUuanNvbi9pbmRleC5qc1wiIGFzIHRoZW1lO1xuQHVzZSBcInRoZW1lLmpzb25cIiBhcyB0aGVtZTtcbkB1c2UgXCJzYXNzOm1hcFwiO1xuXG4kYmFzZTogICAgIG1hcC5nZXQoJGNvbG9ycywgYmFzZSk7XG4kY29udHJhc3Q6IG1hcC5nZXQoJGNvbG9ycywgY29udHJhc3QpO1xuJHByaW1hcnk6ICBtYXAuZ2V0KCRjb2xvcnMsIHByaW1hcnkpO1xuJG5ldXRyYWw6ICBtYXAuZ2V0KCRjb2xvcnMsIG5ldXRyYWwtNTAwKTtcbiRhY2NlbnQ6ICAgbWFwLWdldC1pZigkY29sb3JzLCAkcHJpbWFyeSwgYWNjZW50KTtcblxuXG4vKlxuSW1wb3J0IG91ciBjdXN0b20gY29udHJvbCBrZXkgZm9yIGZvcm0gc3R5bGluZyBpbiB0aGVtZS5qc29uLlxuTWF5YmUgdXNlIGNvcmUvZm9ybSwgY29yZS9mb3JtLWlucHV0LCBhbmQgY29yZS9mb3JtLXN1Ym1pdC1idXR0b25cbmlmIHRoZSBhbGxvd2VkIGF0dHJpYnV0ZXMgYXJlIGVub3VnaC5cbiovXG4kZm9ybTogICAgIG1hcC5nZXQodGhlbWUuJHNldHRpbmdzLCBjdXN0b20sIGNvbnRyb2wpO1xuJGJ1dHRvbjogICBtYXAuZ2V0KHRoZW1lLiRzdHlsZXMsIGVsZW1lbnRzLCBidXR0b24pO1xuJGlucHV0OiAgICBtYXAuZ2V0KHRoZW1lLiRzdHlsZXMsIGJsb2NrcywgXCJjb3JlL2Zvcm0taW5wdXRcIik7XG4kc3VibWl0OiAgIG1hcC5nZXQodGhlbWUuJHN0eWxlcywgYmxvY2tzLCBcImNvcmUvZm9ybS1zdWJtaXQtYnV0dG9uXCIpO1xuXG4kZm9ybS1mb250LWZhbWlseTogICAgICAgICAgICAgICAgbWFwLmdldCgkZm9ybSwgdHlwb2dyYXBoeSwgZm9udC1mYW1pbHkpO1xuJGZvcm0tZm9udC1zaXplOiAgICAgICAgICAgICAgICAgIG1hcC5nZXQoJGZvcm0sIHR5cG9ncmFwaHksIGZvbnQtc2l6ZSk7XG4kZm9ybS1mb250LXdlaWdodDogICAgICAgICAgICAgICAgbWFwLmdldCgkZm9ybSwgdHlwb2dyYXBoeSwgZm9udC13ZWlnaHQpO1xuXG4kZm9ybS1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgbWFwLWdldC1pZigkZm9ybSwgJGNvbnRyYXN0LCBcImJvcmRlclwiLCBjb2xvcik7XG4kZm9ybS1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgbWFwLWdldC1pZigkZm9ybSwgXCIxcHhcIiwgXCJib3JkZXJcIiwgd2lkdGgpO1xuJGZvcm0tYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgIG1hcC1nZXQtaWYoJGZvcm0sIFwiMHB4XCIsIFwiYm9yZGVyXCIsIHJhZGl1cyk7XG5cbiRmb3JtLW91dGxpbmUtd2lkdGg6ICAgICAgICAgICAgICBtYXAuZ2V0KCRmb3JtLCBcIjpmb2N1c1wiLCBvdXRsaW5lLCB3aWR0aCk7XG5cbiRmb3JtLXBhZGRpbmctdG9wOiAgICAgICAgICAgICAgICBtYXAuZ2V0KCRpbnB1dCwgc3BhY2luZywgcGFkZGluZywgdG9wKTtcbiRmb3JtLXBhZGRpbmctcmlnaHQ6ICAgICAgICAgICAgICBtYXAuZ2V0KCRpbnB1dCwgc3BhY2luZywgcGFkZGluZywgcmlnaHQpO1xuJGZvcm0tcGFkZGluZy1ib3R0b206ICAgICAgICAgICAgIG1hcC5nZXQoJGlucHV0LCBzcGFjaW5nLCBwYWRkaW5nLCBib3R0b20pO1xuJGZvcm0tcGFkZGluZy1sZWZ0OiAgICAgICAgICAgICAgIG1hcC5nZXQoJGlucHV0LCBzcGFjaW5nLCBwYWRkaW5nLCBsZWZ0KTtcblxuJGZvcm0tY29sb3ItYmFja2dyb3VuZDogICAgICAgICAgIG1hcC5nZXQoJGZvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kKTtcbiRmb3JtLWNvbG9yLXRleHQ6ICAgICAgICAgICAgICAgICBtYXAuZ2V0KCRmb3JtLCBjb2xvciwgdGV4dCk7XG5cbiRmb3JtLWZvY3VzLWNvbG9yLWJhY2tncm91bmQ6ICAgICBjb2xvci1taXgoaW4gc3JnYiwgI3skZm9ybS1jb2xvci1iYWNrZ3JvdW5kfSA5NSUsICNmZmYpO1xuJGZvcm0tZm9jdXMtY29sb3ItdGV4dDogICAgICAgICAgIG1hcC5nZXQoJGZvcm0sIFwiOmZvY3VzXCIsIGNvbG9yLCB0ZXh0KTtcbiRmb3JtLWZvY3VzLWJvcmRlci1jb2xvcjogICAgICAgICBtYXAuZ2V0KCRmb3JtLCBcIjpmb2N1c1wiLCBib3JkZXIsIGNvbG9yKTtcbiRmb3JtLWZvY3VzLW91dGxpbmUtY29sb3I6ICAgICAgICBtYXAuZ2V0KCRmb3JtLCBcIjpmb2N1c1wiLCBvdXRsaW5lLCBjb2xvcik7XG5cbiRmb3JtLWRpc2FibGVkLWNvbG9yLWJhY2tncm91bmQ6ICBtYXAuZ2V0KCRmb3JtLCBcIjpkaXNhYmxlZFwiLCBjb2xvciwgYmFja2dyb3VuZCk7XG4kZm9ybS1kaXNhYmxlZC1jb2xvci10ZXh0OiAgICAgICAgbWFwLmdldCgkZm9ybSwgXCI6ZGlzYWJsZWRcIiwgY29sb3IsIHRleHQpO1xuJGZvcm0tZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiAgICAgIG1hcC5nZXQoJGZvcm0sIFwiOmRpc2FibGVkXCIsIGJvcmRlciwgY29sb3IpO1xuXG4kZm9ybS1wbGFjZWhvbGRlci1jb2xvcjogICAgICAgICAgbWFwLWdldC1pZigkZm9ybSwgJG5ldXRyYWwsIFwicGxhY2Vob2xkZXJcIik7XG5cbiRmb3JtLXNlbGVjdC1wYWRkaW5nLXJpZ2h0OiAgICAgICAkZm9ybS1wYWRkaW5nLXJpZ2h0O1xuXG4kZm9ybS1kYXRhbGlzdC1wYWRkaW5nLXJpZ2h0OiAgICAgJGZvcm0tcGFkZGluZy1yaWdodDtcblxuJGZvcm0tcmFkaW8tc2l6ZTogICAgICAgICAgICAgICAgIDI0cHg7XG5cbiRmb3JtLWxlZ2VuZC1mb250LXNpemU6ICAgICAgICAgICBtYXAuZ2V0KCRmb3JtLCBsZWdlbmQsIHR5cG9ncmFwaHksIGZvbnQtc2l6ZSk7XG5cbiRmb3JtLWxhYmVsLWNvbG9yOiAgICAgICAgICAgICAgICBtYXAuZ2V0KCRmb3JtLCBsYWJlbCwgY29sb3IsIHRleHQpO1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiAgICAgICAgICAgIG1hcC5nZXQoJGZvcm0sIGxhYmVsLCB0eXBvZ3JhcGh5LCBmb250LXNpemUpO1xuXG4kZm9ybS1pbnZhbGlkLWNvbG9yLXRleHQ6ICAgICAgICAgbWFwLmdldCgkY29sb3JzLCB3YXJuaW5nKTtcbiRmb3JtLWludmFsaWQtY29sb3ItYmFja2dyb3VuZDogICBjb2xvci1taXgoaW4gc3JnYiwgI3skZm9ybS1pbnZhbGlkLWNvbG9yLXRleHR9IDk1JSwgI2ZmZik7XG4kZm9ybS1pbnZhbGlkLWJvcmRlci1jb2xvcjogICAgICAgbWFwLmdldCgkY29sb3JzLCB3YXJuaW5nKTtcbiRmb3JtLWludmFsaWQtb3V0bGluZS1jb2xvcjogICAgICBjb2xvci1taXgoaW4gc3JnYiwgI3skZm9ybS1pbnZhbGlkLWNvbG9yLXRleHR9IDk1JSwgI2ZmZik7XG5cbiRmb3JtLXZhbGlkLWNvbG9yLXRleHQ6ICAgICAgICAgICBtYXAuZ2V0KCRjb2xvcnMsIHN1Y2Nlc3MpO1xuJGZvcm0tdmFsaWQtY29sb3ItYmFja2dyb3VuZDogICAgIGNvbG9yLW1peChpbiBzcmdiLCAjeyRmb3JtLXZhbGlkLWNvbG9yLXRleHR9ICAgOTUlLCAjZmZmKTtcbiRmb3JtLXZhbGlkLWJvcmRlci1jb2xvcjogICAgICAgICBtYXAuZ2V0KCRjb2xvcnMsIHN1Y2Nlc3MpO1xuJGZvcm0tdmFsaWQtb3V0bGluZS1jb2xvcjogICAgICAgIGNvbG9yLW1peChpbiBzcmdiLCAjeyRmb3JtLXZhbGlkLWNvbG9yLXRleHR9ICAgOTUlLCAjZmZmKTtcblxuJGJ1dHRvbi1jb2xvci10ZXh0OiAgICAgICAgICAgICAgIG1hcC5nZXQoJGJ1dHRvbiwgY29sb3IsIHRleHQpO1xuJGJ1dHRvbi1jb2xvci1iYWNrZ3JvdW5kOiAgICAgICAgIG1hcC5nZXQoJGJ1dHRvbiwgY29sb3IsIGJhY2tncm91bmQpO1xuJGJ1dHRvbi1mb250LWZhbWlseTogICAgICAgICAgICAgIG1hcC5nZXQoJGJ1dHRvbiwgdHlwb2dyYXBoeSwgZm9udC1mYW1pbHkpO1xuJGJ1dHRvbi1mb250LXdlaWdodDogICAgICAgICAgICAgIG1hcC5nZXQoJGJ1dHRvbiwgdHlwb2dyYXBoeSwgZm9udC13ZWlnaHQpO1xuJGJ1dHRvbi1mb250LXNpemU6ICAgICAgICAgICAgICAgIG1hcC5nZXQoJGJ1dHRvbiwgdHlwb2dyYXBoeSwgZm9udC1zaXplKTtcbiRidXR0b24tdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICBtYXAuZ2V0KCRidXR0b24sIHR5cG9ncmFwaHksIHRleHQtdHJhbnNmb3JtKTtcbiRidXR0b24tYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICBtYXAuZ2V0KCRidXR0b24sIGJvcmRlciwgY29sb3IpO1xuJGJ1dHRvbi1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgIG1hcC5nZXQoJGJ1dHRvbiwgYm9yZGVyLCB3aWR0aCk7XG4kYnV0dG9uLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgbWFwLmdldCgkYnV0dG9uLCBib3JkZXIsIHNpemUpO1xuJGJ1dHRvbi1wYWRkaW5nLXRvcDogICAgICAgICAgICAgIG1hcC5nZXQoJGJ1dHRvbiwgc3BhY2luZywgcGFkZGluZywgdG9wKTtcbiRidXR0b24tcGFkZGluZy1yaWdodDogICAgICAgICAgICBtYXAuZ2V0KCRidXR0b24sIHNwYWNpbmcsIHBhZGRpbmcsIHJpZ2h0KTtcbiRidXR0b24tcGFkZGluZy1ib3R0b206ICAgICAgICAgICBtYXAuZ2V0KCRidXR0b24sIHNwYWNpbmcsIHBhZGRpbmcsIGJvdHRvbSk7XG4kYnV0dG9uLXBhZGRpbmctbGVmdDogICAgICAgICAgICAgbWFwLmdldCgkYnV0dG9uLCBzcGFjaW5nLCBwYWRkaW5nLCBsZWZ0KTtcblxuJGZvcm0tYnV0dG9uLWNvbG9yLXRleHQ6ICAgICAgICAgIG1hcC1nZXQtaWYoJHN1Ym1pdCwgJGJ1dHRvbi1jb2xvci10ZXh0LCBjb2xvciwgdGV4dCk7XG4kZm9ybS1idXR0b24tY29sb3ItYmFja2dyb3VuZDogICAgbWFwLWdldC1pZigkc3VibWl0LCAkYnV0dG9uLWNvbG9yLWJhY2tncm91bmQsIGNvbG9yLCBiYWNrZ3JvdW5kKTtcblxuJGZvcm0tYnV0dG9uLWhvdmVyLWNvbG9yLXRleHQ6ICAgICAgICAgIG1hcC1nZXQtaWYoJHN1Ym1pdCwgJGZvcm0tYnV0dG9uLWNvbG9yLXRleHQsICc6aG92ZXInLCBjb2xvciwgdGV4dCk7XG4kZm9ybS1idXR0b24taG92ZXItY29sb3ItYmFja2dyb3VuZDogICAgbWFwLWdldC1pZigkc3VibWl0LCAkZm9ybS1idXR0b24tY29sb3ItYmFja2dyb3VuZCwgJzpob3ZlcicsIGNvbG9yLCBiYWNrZ3JvdW5kKTtcblxuJGZvcm0tYnV0dG9uLWZvbnQtZmFtaWx5OiAgICAgICAgIG1hcC1nZXQtaWYoJHN1Ym1pdCwgJGJ1dHRvbi1mb250LWZhbWlseSwgdHlwb2dyYXBoeSwgZm9udC1mYW1pbHkpO1xuJGZvcm0tYnV0dG9uLWZvbnQtd2VpZ2h0OiAgICAgICAgIG1hcC1nZXQtaWYoJHN1Ym1pdCwgJGJ1dHRvbi1mb250LXdlaWdodCwgdHlwb2dyYXBoeSwgZm9udC13ZWlnaHQpO1xuJGZvcm0tYnV0dG9uLWZvbnQtc2l6ZTogICAgICAgICAgIG1hcC1nZXQtaWYoJHN1Ym1pdCwgJGJ1dHRvbi1mb250LXNpemUsIHR5cG9ncmFwaHksIGZvbnQtc2l6ZSk7XG4kZm9ybS1idXR0b24tdGV4dC10cmFuc2Zvcm06ICAgICAgbWFwLWdldC1pZigkc3VibWl0LCAkYnV0dG9uLXRleHQtdHJhbnNmb3JtLCB0eXBvZ3JhcGh5LCB0ZXh0LXRyYW5zZm9ybSk7XG5cbiRmb3JtLWJ1dHRvbi1ib3JkZXItY29sb3I6ICAgICAgICBtYXAtZ2V0LWlmKCRzdWJtaXQsICRidXR0b24tYm9yZGVyLWNvbG9yLCBib3JkZXIsIGNvbG9yKTtcbiRmb3JtLWJ1dHRvbi1ib3JkZXItd2lkdGg6ICAgICAgICBtYXAtZ2V0LWlmKCRzdWJtaXQsICRidXR0b24tYm9yZGVyLXdpZHRoLCBib3JkZXIsIHdpZHRoKTtcbiRmb3JtLWJ1dHRvbi1ib3JkZXItcmFkaXVzOiAgICAgICBtYXAtZ2V0LWlmKCRzdWJtaXQsICRidXR0b24tYm9yZGVyLXJhZGl1cywgYm9yZGVyLCByYWRpdXMpO1xuXG4kZm9ybS1idXR0b24tcGFkZGluZy10b3A6ICAgICAgICAgbWFwLWdldC1pZigkc3VibWl0LCAkYnV0dG9uLXBhZGRpbmctdG9wLCBwYWRkaW5nLCB0b3ApO1xuJGZvcm0tYnV0dG9uLXBhZGRpbmctcmlnaHQ6ICAgICAgIG1hcC1nZXQtaWYoJHN1Ym1pdCwgJGJ1dHRvbi1wYWRkaW5nLXJpZ2h0LCBwYWRkaW5nLCByaWdodCk7XG4kZm9ybS1idXR0b24tcGFkZGluZy1ib3R0b206ICAgICAgbWFwLWdldC1pZigkc3VibWl0LCAkYnV0dG9uLXBhZGRpbmctYm90dG9tLCBwYWRkaW5nLCBib3R0b20pO1xuJGZvcm0tYnV0dG9uLXBhZGRpbmctbGVmdDogICAgICAgIG1hcC1nZXQtaWYoJHN1Ym1pdCwgJGJ1dHRvbi1wYWRkaW5nLWxlZnQsIHBhZGRpbmcsIGxlZnQpO1xuXG4vKlxuU1ZHIGltYWdlcyBmb3IgcmFkaW9zLCBjaGVja2JveGVzLCBzZWxlY3RzLCBhbmQgZGF0YWxpc3RzLlxuKi9cbiRpbnRlcm5hbC1yYWRpby1pbWFnZTogICAgICAgICAgICAgICAgICBcImZlYXRoZXItaWNvbnMvZGlzdC9pY29ucy9jaXJjbGUuc3ZnXCI7XG4kaW50ZXJuYWwtcmFkaW8tY2hlY2tlZC1pbWFnZTogICAgICAgICAgXCJmZWF0aGVyLWljb25zL2Rpc3QvaWNvbnMvY2hlY2stY2lyY2xlLnN2Z1wiO1xuJGludGVybmFsLWNoZWNrYm94LWltYWdlOiAgICAgICAgICAgICAgIFwiZmVhdGhlci1pY29ucy9kaXN0L2ljb25zL3NxdWFyZS5zdmdcIjtcbiRpbnRlcm5hbC1jaGVja2JveC1jaGVja2VkLWltYWdlOiAgICAgICBcImZlYXRoZXItaWNvbnMvZGlzdC9pY29ucy9jaGVjay1zcXVhcmUuc3ZnXCI7XG4kaW50ZXJuYWwtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1pbWFnZTogXCJmZWF0aGVyLWljb25zL2Rpc3QvaWNvbnMvbWludXMtc3F1YXJlLnN2Z1wiO1xuJGludGVybmFsLXNlbGVjdC1pbWFnZTogICAgICAgICAgICAgICAgIFwiZmVhdGhlci1pY29ucy9kaXN0L2ljb25zL2NoZXZyb24tZG93bi5zdmdcIjtcbiRpbnRlcm5hbC1kYXRhbGlzdC1pbWFnZTogICAgICAgICAgICAgICBcImZlYXRoZXItaWNvbnMvZGlzdC9pY29ucy9jaGV2cm9uLWRvd24uc3ZnXCI7XG4iLCIvLy8vXG4vLy8gUGxhY2Vob2xkZXJzXG4vLy8gVGhpcyBmaWxlIHNob3VsZCBub3QgYmUgZWRpdGVkLlxuLy8vIEBncm91cCB0cm9sbGV5XG4vLy8vXG5cbkB1c2UgXCJhYnN0cmFjdHMvZnVuY3Rpb25zXCIgYXMgKjtcbkB1c2UgXCJhYnN0cmFjdHMvdmFyaWFibGVzXCIgYXMgKjtcbkB1c2UgXCJhYnN0cmFjdHMvdmFyaWFibGVzLmZvcm1zXCIgYXMgKjtcbkB1c2UgJ3Nhc3M6bWFwJztcblxuJXNjcmVlbi1yZWFkZXItdGV4dCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuXHR3aWR0aDogMXB4O1xuXHRoZWlnaHQ6IDFweDtcblx0cGFkZGluZzogMDtcblx0bWFyZ2luOiAtMXB4O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG5cdGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcblx0d29yZC13cmFwOiBub3JtYWwgIWltcG9ydGFudDtcblx0Ym9yZGVyOiAwO1xufVxuXG4laWNvbiB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0d2lkdGg6IDFlbTtcblx0aGVpZ2h0OiAxZW07XG5cdGNvbnRlbnQ6ICcnO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG5cdG1hc2s6IHtcblx0XHRyZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwb3NpdGlvbjogY2VudGVyO1xuXHRcdHNpemU6IGNvbnRhaW47XG5cdH1cbn1cblxuLypcbkFkZCByaWdodCBhcnJvdyB0byBidXR0b25zLlxuKi9cbiVhcnJvdy1idXR0b24ge1xuXHQkaWNvbi1jb2xvcjogbWFwLmdldCgkY29sb3JzLCBwcmltYXJ5KSAhZGVmYXVsdDtcblx0JGljb24taG92ZXItY29sb3I6IG1hcC5nZXQoJGNvbG9ycywgY29udHJhc3QpICFkZWZhdWx0O1xuXHQkaWNvbi1zaXplOiAyMnB4ICFkZWZhdWx0O1xuXHQkaWNvbi1zcGFjaW5nOiA4cHggIWRlZmF1bHQ7XG5cblx0Ly8gU2hvdyB0aGUgaWNvbiBvbmx5IGFmdGVyIHRoZSBtb2JpbGUgYnJlYWtwb2ludC5cblx0QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogYnJlYWtwb2ludChcIm1vYmlsZVwiKSkge1xuXG5cdFx0YmFja2dyb3VuZDoge1xuXHRcdFx0cG9zaXRpb246IGNhbGMoMTAwJSAtICN7JGZvcm0tcGFkZGluZy1yaWdodH0gKyAjeyRpY29uLXNwYWNpbmd9KSBjYWxjKDUwJSAtIDFweCk7XG5cdFx0XHRpbWFnZTogc3ZnLWxvYWQoXCJmZWF0aGVyLWljb25zL2Rpc3QvaWNvbnMvYXJyb3ctcmlnaHQuc3ZnXCIsICRzdHJva2U6JGljb24tY29sb3IpO1xuXHRcdFx0cmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0XHRzaXplOiAkaWNvbi1zaXplO1xuXHRcdH1cblxuXHRcdHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skZm9ybS1wYWRkaW5nLXJpZ2h0fSArICN7JGljb24tc2l6ZX0gKyAjeyRpY29uLXNwYWNpbmd9KTtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogc3ZnLWxvYWQoXCJmZWF0aGVyLWljb25zL2Rpc3QvaWNvbnMvYXJyb3ctcmlnaHQuc3ZnXCIsICRzdHJva2U6JGljb24taG92ZXItY29sb3IpO1xuXHRcdH1cblxuXHR9XG59XG4iLCIvKiEgbW9kZXJuLW5vcm1hbGl6ZSB2Mi4wLjAgfCBNSVQgTGljZW5zZSB8IGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvbW9kZXJuLW5vcm1hbGl6ZSAqL1xuXG4vKlxuRG9jdW1lbnRcbj09PT09PT09XG4qL1xuXG4vKipcblVzZSBhIGJldHRlciBib3ggbW9kZWwgKG9waW5pb25hdGVkKS5cbiovXG5cbiosXG46OmJlZm9yZSxcbjo6YWZ0ZXIge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5odG1sIHtcblx0LyogSW1wcm92ZSBjb25zaXN0ZW5jeSBvZiBkZWZhdWx0IGZvbnRzIGluIGFsbCBicm93c2Vycy4gKGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvbW9kZXJuLW5vcm1hbGl6ZS9pc3N1ZXMvMykgKi9cblx0Zm9udC1mYW1pbHk6XG5cdFx0c3lzdGVtLXVpLFxuXHRcdCdTZWdvZSBVSScsXG5cdFx0Um9ib3RvLFxuXHRcdEhlbHZldGljYSxcblx0XHRBcmlhbCxcblx0XHRzYW5zLXNlcmlmLFxuXHRcdCdBcHBsZSBDb2xvciBFbW9qaScsXG5cdFx0J1NlZ29lIFVJIEVtb2ppJztcblx0bGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy4gKi9cblx0LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy4gKi9cblx0LW1vei10YWItc2l6ZTogNDsgLyogMy4gVXNlIGEgbW9yZSByZWFkYWJsZSB0YWIgc2l6ZSAob3BpbmlvbmF0ZWQpLiAqL1xuXHR0YWItc2l6ZTogNDsgLyogMyAqL1xufVxuXG4vKlxuU2VjdGlvbnNcbj09PT09PT09XG4qL1xuXG5ib2R5IHtcblx0bWFyZ2luOiAwOyAvKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuICovXG59XG5cbi8qXG5Hcm91cGluZyBjb250ZW50XG49PT09PT09PT09PT09PT09XG4qL1xuXG4vKipcbjEuIEFkZCB0aGUgY29ycmVjdCBoZWlnaHQgaW4gRmlyZWZveC5cbjIuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIG9mIGJvcmRlciBjb2xvciBpbiBGaXJlZm94LiAoaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNjU1KVxuKi9cblxuaHIge1xuXHRoZWlnaHQ6IDA7IC8qIDEgKi9cblx0Y29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLypcblRleHQtbGV2ZWwgc2VtYW50aWNzXG49PT09PT09PT09PT09PT09PT09PVxuKi9cblxuLyoqXG5BZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiovXG5cbmFiYnJbdGl0bGVdIHtcblx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xufVxuXG4vKipcbkFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBFZGdlIGFuZCBTYWZhcmkuXG4qL1xuXG5iLFxuc3Ryb25nIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4xLiBJbXByb3ZlIGNvbnNpc3RlbmN5IG9mIGRlZmF1bHQgZm9udHMgaW4gYWxsIGJyb3dzZXJzLiAoaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9tb2Rlcm4tbm9ybWFsaXplL2lzc3Vlcy8zKVxuMi4gQ29ycmVjdCB0aGUgb2RkICdlbScgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuKi9cblxuY29kZSxcbmtiZCxcbnNhbXAsXG5wcmUge1xuXHRmb250LWZhbWlseTpcblx0XHR1aS1tb25vc3BhY2UsXG5cdFx0U0ZNb25vLVJlZ3VsYXIsXG5cdFx0Q29uc29sYXMsXG5cdFx0J0xpYmVyYXRpb24gTW9ubycsXG5cdFx0TWVubG8sXG5cdFx0bW9ub3NwYWNlOyAvKiAxICovXG5cdGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuXG5zbWFsbCB7XG5cdGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcblByZXZlbnQgJ3N1YicgYW5kICdzdXAnIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuXG5zdWIsXG5zdXAge1xuXHRmb250LXNpemU6IDc1JTtcblx0bGluZS1oZWlnaHQ6IDA7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuXHRib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG5cdHRvcDogLTAuNWVtO1xufVxuXG4vKlxuVGFidWxhciBkYXRhXG49PT09PT09PT09PT1cbiovXG5cbi8qKlxuMS4gUmVtb3ZlIHRleHQgaW5kZW50YXRpb24gZnJvbSB0YWJsZSBjb250ZW50cyBpbiBDaHJvbWUgYW5kIFNhZmFyaS4gKGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTk5OTA4OCwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTI5NylcbjIuIENvcnJlY3QgdGFibGUgYm9yZGVyIGNvbG9yIGluaGVyaXRhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLiAoaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9OTM1NzI5LCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MDE2KVxuKi9cblxudGFibGUge1xuXHR0ZXh0LWluZGVudDogMDsgLyogMSAqL1xuXHRib3JkZXItY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLypcbkZvcm1zXG49PT09PVxuKi9cblxuLyoqXG4xLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbjIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG5cdGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvKiAxICovXG5cdGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuXHRsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuXHRtYXJnaW46IDA7IC8qIDIgKi9cbn1cblxuLyoqXG5SZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UgYW5kIEZpcmVmb3guXG4qL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG5Db3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuKi9cblxuYnV0dG9uLFxuW3R5cGU9J2J1dHRvbiddLFxuW3R5cGU9J3Jlc2V0J10sXG5bdHlwZT0nc3VibWl0J10ge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLyoqXG5SZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuKi9cblxuOjotbW96LWZvY3VzLWlubmVyIHtcblx0Ym9yZGVyLXN0eWxlOiBub25lO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKipcblJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiovXG5cbjotbW96LWZvY3VzcmluZyB7XG5cdG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG5SZW1vdmUgdGhlIGFkZGl0aW9uYWwgJzppbnZhbGlkJyBzdHlsZXMgaW4gRmlyZWZveC5cblNlZTogaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvZ2Vja28tZGV2L2Jsb2IvMmY5ZWFjZDlkM2Q5OTVjOTM3YjQyNTFhNTU1N2Q5NWQ0OTRjOWJlMS9sYXlvdXQvc3R5bGUvcmVzL2Zvcm1zLmNzcyNMNzI4LUw3MzdcbiovXG5cbjotbW96LXVpLWludmFsaWQge1xuXHRib3gtc2hhZG93OiBub25lO1xufVxuXG4vKipcblJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXQgJ2ZpZWxkc2V0JyBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuXG5sZWdlbmQge1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKipcbkFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lIGFuZCBGaXJlZm94LlxuKi9cblxucHJvZ3Jlc3Mge1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gU2FmYXJpLlxuKi9cblxuOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcblx0aGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbjEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4qL1xuXG5bdHlwZT0nc2VhcmNoJ10ge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuXHRvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcblJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiovXG5cbjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4xLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byAnaW5oZXJpdCcgaW4gU2FmYXJpLlxuKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG5cdGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLypcbkludGVyYWN0aXZlXG49PT09PT09PT09PVxuKi9cblxuLypcbkFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIENocm9tZSBhbmQgU2FmYXJpLlxuKi9cblxuc3VtbWFyeSB7XG5cdGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cbiIsIi8vLy9cbi8vLyBTdHlsZXMgcmVzZXQuXG4vLy8gQGdyb3VwIHRyb2xsZXlcbi8vLy9cblxuQHVzZSBcIm1vZGVybi1ub3JtYWxpemUvbW9kZXJuLW5vcm1hbGl6ZS5jc3NcIjtcbkB1c2UgXCJhYnN0cmFjdHMvZnVuY3Rpb25zXCIgYXMgKjtcblxuOnJvb3Qge1xuXHRsaW5lLWhlaWdodDogMS41O1xufVxuXG5odG1sIHtcblx0c2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXG5cdC8vIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi8vIFdoZW4gZnJvbnQtZW5kIHN0eWxlcyBhcmUgbG9hZGVkIGluIGFkbWluLCBib3gtc2l6aW5nIG9uIGV2ZXJ5dGhpbmcgYnJlYWtzIHRoZSBsYXlvdXQuXG5ib2R5LndwLWFkbWluIHtcblx0KiwgKjo6YmVmb3JlLCAqOjphZnRlciB7XG5cdFx0Ym94LXNpemluZzogcmV2ZXJ0O1xuXHR9XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUge1xuXHR3b3JkLWJyZWFrOiBrZWVwLWFsbDtcbn1cblxuLy8gRml4IENocm9tZSBidWcuXG5pbWdbc3R5bGUqPVwiYXNwZWN0LXJhdGlvXCJdLFxuZmlndXJlW3N0eWxlKj1cImFzcGVjdC1yYXRpb1wiXSB7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbmltZyB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXgtaW5saW5lLXNpemU6IDEwMCU7XG59XG5cbi8vLyBGb3Jtc1xuXG4vLyBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuaW5wdXQge1xuXHRvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4xLiBGaXggaGVpZ2h0IGRpZmZlcmVuY2Ugd2l0aCBpbnB1dHMgb2Ygc2FtZSBsaW5lLWhlaWdodCBhbmQgcGFkZGluZy5cbjIuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiovXG5zZWxlY3Qge1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTsgLyogMiAqL1xuXHRhcHBlYXJhbmNlOiBub25lOyAvKiAxICovXG59XG5cbi8vIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxudGV4dGFyZWEge1xuXHRvdmVyZmxvdzogYXV0bztcbn1cblxuLy8gSW1wcm92ZXMgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGZvciBjbGlja2FibGUgZWxlbWVudHNcblt0eXBlPVwicmFkaW9cIl06bm90KDpkaXNhYmxlZCksXG5bdHlwZT1cImNoZWNrYm94XCJdOm5vdCg6ZGlzYWJsZWQpIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4vLyBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG5maWVsZHNldCB7XG5cdHBhZGRpbmc6IDA7XG5cdG1hcmdpbjogMDtcblx0Ym9yZGVyOiBub25lO1xufVxuXG4vLyBSZW1vdmUgZGVmYXVsdCBzdHlsZSBpbiBpT1MuXG5pbnB1dCxcbnRleHRhcmVhIHtcblx0YXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLy8gUmVtb3ZlIGRlZmF1bHQgc3R5bGUgaW4gQ2hyb21lLlxuaW5wdXRbbGlzdF06Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvciB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLy8gVXNlIFdQIHZhcmlhYmxlcy5cbmIsXG5zdHJvbmcge1xuXHRmb250LXdlaWdodDogd3AoZm9udC13ZWlnaHQsIGJvbGQpO1xufVxuXG5rYmQsIGNvZGUsIHNhbXAsIHByZSB7XG5cdGZvbnQtc2l6ZTogMC44ODg5ZW07XG5cdHRleHQtd3JhcC1tb2RlOiBub3dyYXA7XG5cdHdoaXRlLXNwYWNlLWNvbGxhcHNlOiBwcmVzZXJ2ZS1zcGFjZXM7XG59XG5cbmNvZGUge1xuXHRwYWRkaW5nLWxlZnQ6IDA7XG5cdG92ZXJmbG93LXg6IGluaXRpYWw7XG5cdGJvcmRlcjogbm9uZTtcbn1cblxuLy8gTm9ybWFsaXplIHVuZGVybGluZS5cbmEge1xuXHR0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDAuMTVlbTtcbn1cblxuW3N0eWxlKj1cInVuZGVybGluZVwiXSB7XG5cdHRleHQtZGVjb3JhdGlvbjoge1xuXHRcdHRoaWNrbmVzczogMXB4ICFpbXBvcnRhbnQ7XG5cdFx0Y29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCBjdXJyZW50Q29sb3IgNTAlLCB0cmFuc3BhcmVudCkgIWltcG9ydGFudDtcblx0fVxufVxuXG46Zm9jdXMtdmlzaWJsZSB7XG5cdG91dGxpbmU6IHdwKGNvbG9yLCBmb2N1cykgc29saWQgMS41cHg7XG5cdG91dGxpbmUtb2Zmc2V0OiAwLjVlbTtcbn1cbiIsIi8qIFV0aWxpdHlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG5AdXNlIFwic2FzczpsaXN0XCI7XG5AdXNlIFwiYWJzdHJhY3RzL3ZhcmlhYmxlc1wiO1xuQHVzZSBcImFic3RyYWN0cy9mdW5jdGlvbnNcIiBhcyAqO1xuXG4vLyAuaXMtdG9nZ2xlLXRhcmdldCB7XG4vLyBcdHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlO1xuXG4vLyBcdCY6bm90KC5pcy10b2dnbGVkLW9uKSB7XG4vLyBcdFx0ZGlzcGxheTogbm9uZTtcbi8vIFx0XHRvcGFjaXR5OiAwO1xuLy8gXHR9XG4vLyB9XG5cbi8vIFVuc3R5bGVkIGNsYXNzIGZvciBoZWFkaW5ncy5cbi51bnN0eWxlZCB7XG5cdG1hcmdpbjogMDtcblx0Zm9udC1zaXplOiAxZW07XG5cdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbmFbZGF0YS10YXJnZXRdIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4uaXMtc3R5bGUtdXBwZXJjYXNlIHtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmlzLXN0eWxlLXdoaXRlLXNwYWNlLW5vd3JhcCB7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5pcy1zdHlsZS1maWx0ZXItaW52ZXJ0IHtcblx0ZmlsdGVyOiBpbnZlcnQoMSk7XG59XG5cbi5oYXMtZGVmYXVsdC10cmFuc2l0aW9uIHtcblx0dHJhbnNpdGlvbi1kdXJhdGlvbjogMjAwbXM7XG5cdHRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbn1cblxuLmlzLXN0eWxlLWZhZGVvdXQge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0b3BhY2l0eTogMCAhaW1wb3J0YW50O1xuXHR0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcblx0dHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbn1cblxuLmlzLXN0eWxlLWZhZGVpbiB7XG5cdHBvaW50ZXItZXZlbnRzOiBhdXRvICFpbXBvcnRhbnQ7XG5cdG9wYWNpdHk6IDEgIWltcG9ydGFudDtcblx0dHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG5cdHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG59XG5cbi8vIC5pcy1sYXlvdXQtZmxleCBoZXJlIG9ubHkgdG8gb3ZlcnJpZGUgbmF0aXZlIFdvcmRQcmVzczogYm9keSAuaXMtbGF5b3V0LWZsZXggPiAqXG4uaXMtbGF5b3V0LWZsZXggPiAuaXMtbWFyZ2luLWlubGluZS1hdXRvIHtcblx0bWFyZ2luLWlubGluZS1zdGFydDogYXV0bztcbn1cblxuLmlzLXBvc2l0aW9uLWFic29sdXRlIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xufVxuXG4uaXMtdG9wIHtcblx0dG9wOiAwO1xufVxuXG4uaXMtZmxleC1ub25lIHtcblx0ZmxleDogMDtcbn1cblxuLm5vLWZsZXgtc2hyaW5rIHtcblx0ZmxleC1zaHJpbms6IDA7XG59XG5cbltzdHlsZSo9XCJ2YXIoLS13cC0tcHJlc2V0LS1zcGFjaW5nLS1vdmVybGFwKVwiXSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogMTtcbn1cblxuLmlzLWxpbmtzLW5vd3JhcCB7XG5cdGFbaHJlZl0ge1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdH1cbn1cblxuLyogTWVkaWEgUXVlcmllc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKlxuICogSGlkZGVuXG4gKiBgaGlkZGVuYCBhdHRyaWJ1dGUgYWxzbyBzZXQgaGVyZSB0byBtYWtlIGl0IHN0cm9uZ2VyXG4gKi9cblxuW2hpZGRlbl0sXG4uaXMtc3R5bGUtaGlkZGVuIHtcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vLyBCcmVha3BvaW50IHZpc2liaWxpdHkgaXMgYmVpbmcgaGFuZGxlZCBieSB0aGUgQmxvY2sgVmlzaWJpbGl0eSBwbHVnaW4sXG4vLyB3aGljaCBwcm92aWRlcyBpdHMgb3duIGZyb250LWVuZCBDU1MgYWNjb3JkaW5nIHRvIHVzZXIgc2V0dGluZ3MuXG4vLyAkYnJlYWtwb2ludHMtbGlzdDogbWFwLmtleXModmFyaWFibGVzLiRicmVha3BvaW50cyk7XG5cbi8vIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRicmVha3BvaW50cy1saXN0KSB7XG4vLyBcdCRicmVha3BvaW50OiBsaXN0Lm50aCgkYnJlYWtwb2ludHMtbGlzdCwgJGkpO1xuLy8gXHQkYnJlYWtwb2ludC1zaXplOiBicmVha3BvaW50KCRicmVha3BvaW50KTtcblxuLy8gXHRAaWYgKCRicmVha3BvaW50LXNpemUpIHtcblxuLy8gXHRcdEBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1zaXplKSB7XG4vLyBcdFx0XHQuaXMtc3R5bGUtaGlkZGVuLSN7JGJyZWFrcG9pbnR9IHtcbi8vIFx0XHRcdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuLy8gXHRcdFx0fVxuLy8gXHRcdH1cblxuLy8gXHRcdEBpZiAkaSA8IGxlbmd0aCgkYnJlYWtwb2ludHMtbGlzdCkge1xuXG4vLyBcdFx0XHRAbWVkaWEgKG1heC13aWR0aDogYnJlYWtwb2ludC1tYXgoJGJyZWFrcG9pbnQpKSB7XG4vLyBcdFx0XHRcdC5pcy1zdHlsZS12aXNpYmxlLSN7JGJyZWFrcG9pbnR9IHtcbi8vIFx0XHRcdFx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4vLyBcdFx0XHRcdH1cbi8vIFx0XHRcdH1cbi8vIFx0XHR9XG4vLyBcdH1cbi8vIH1cblxuLyogSGlkZSBpZiBwcmltYXJ5IHBvaW50aW5nIGRldmljZSBkb2Vzbid0IHN1cHBvcnQgaG92ZXIsIGUuZy4gdG91Y2ggc2NyZWVucy4gKi9cbkBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcblx0LmlzLXN0eWxlLWhpZGRlbi10b3VjaCB7XG5cdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG59XG5cbi8qIEhpZGUgaWYgcHJpbWFyeSBwb2ludGluZyBkZXZpY2Ugc3VwcG9ydHMgaG92ZXIsIGUuZy4gbWljZS4gKi9cbkBtZWRpYSAoaG92ZXIpIHtcblx0LmlzLXN0eWxlLWhpZGRlbi1ub3RvdWNoIHtcblx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLyogUmVzcG9uc2l2ZSBTZXR0aW5ncyBibG9jayBmaWx0ZXIgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiBicmVha3BvaW50LW1heCh0YWJsZXQpKSB7XG5cdC5oYXMtbW9iaWxlLW9yZGVyLWZpcnN0IHsgb3JkZXI6IC0xOyB9XG5cdC5oYXMtbW9iaWxlLW9yZGVyLWxhc3QgeyBvcmRlcjogMTsgfVxuXG5cdC5oYXMtbW9iaWxlLWNvbnRlbnQtYWxpZ25tZW50IHtcblx0XHQtLW5hdmlnYXRpb24tbGF5b3V0LWFsaWduOiBjZW50ZXI7XG5cdFx0LS1tb2JpbGUtY29udGVudC1hbGlnbm1lbnQ6IGNlbnRlcjtcblxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdC5pcy1sYXlvdXQtZmxleDpub3QoLmlzLXZlcnRpY2FsKSxcblx0XHQmLmlzLWxheW91dC1mbGV4Om5vdCguaXMtdmVydGljYWwpIHtcblx0XHRcdGp1c3RpZnktY29udGVudDogdmFyKC0tbW9iaWxlLWNvbnRlbnQtYWxpZ25tZW50KTtcblx0XHR9XG5cblx0XHQuaXMtbGF5b3V0LWZsZXguaXMtdmVydGljYWwsXG5cdFx0Ji5pcy1sYXlvdXQtZmxleC5pcy12ZXJ0aWNhbCB7XG5cdFx0XHRhbGlnbi1pdGVtczogdmFyKC0tbW9iaWxlLWNvbnRlbnQtYWxpZ25tZW50KTtcblx0XHR9XG5cblxuXHRcdCYtbGVmdCB7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXG5cdFx0XHQtLW1vYmlsZS1jb250ZW50LWFsaWdubWVudDogZmxleC1zdGFydDtcblx0XHR9XG5cblx0XHQmLXJpZ2h0IHtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXG5cdFx0XHQtLW1vYmlsZS1jb250ZW50LWFsaWdubWVudDogZmxleC1lbmQ7XG5cdFx0fVxuXG5cdH1cbn1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cbi8vLy9cbi8vLyBGb3JtcyBiYXNlIHN0eWxlc1xuLy8vIFRoaXMgZmlsZSBzaG91bGQgbm90IGJlIGVkaXRlZC5cbi8vLyBAZ3JvdXAgdHJvbGxleVxuLy8vL1xuXG5AdXNlIFwiYWJzdHJhY3RzL2Z1bmN0aW9uc1wiIGFzICo7XG5AdXNlIFwiYWJzdHJhY3RzL2Zvcm0taW5wdXRcIiBhcyBpbnB1dDtcbkB1c2UgXCJhYnN0cmFjdHMvZm9ybS1yYWRpb1wiIGFzIHJhZGlvO1xuQHVzZSBcImFic3RyYWN0cy9mb3JtLWltYWdlXCIgYXMgaW1hZ2Ugd2l0aCAoJHBhY2thZ2U6IGlvbmljb25zLCAkdG9nZ2xlOiBmYWxzZSk7XG5cbi8vIFRoaXMgaXMgd2hlcmUgd2Ugd291bGQgQHVzZSB0aGVtZS1zcGVjaWZpYyB2YXJpYWJsZXMgYW5kIG1peGlucy5cblxuZm9ybVttZXRob2RdIHtcblx0bGFiZWw6aGFzKFt0eXBlPVwicmFkaW9cIl0pLFxuXHRsYWJlbDpoYXMoW3R5cGU9XCJjaGVja2JveFwiXSkge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0bGluZS1oZWlnaHQ6IHJhZGlvLiRjb250cm9sLXNpemU7XG5cdH1cblxuXHRbdHlwZT1cInJhZGlvXCJdLFxuXHRbdHlwZT1cImNoZWNrYm94XCJdIHtcblx0XHRAaW5jbHVkZSByYWRpby5taXhpbi10cmFuc2l0aW9uO1xuXG5cdFx0bWFzazoge1xuXHRcdFx0cG9zaXRpb246IDUwJTtcblx0XHRcdHJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdFx0c2l6ZTogY29udGFpbjtcblx0XHR9XG5cblx0XHRoZWlnaHQ6IHJhZGlvLiRjb250cm9sLXNpemU7XG5cdFx0YXNwZWN0LXJhdGlvOiAxO1xuXHRcdG1hcmdpbi1pbmxpbmUtZW5kOiAwLjVlbTtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHdwKGNvbG9yLCBuZXV0cmFsLTMwMCk7XG5cdFx0Ym9yZGVyOiAwO1xuXG5cdFx0JjpjaGVja2VkIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcblx0XHR9XG5cblx0XHQmOmZvY3VzLXZpc2libGUsICY6YWN0aXZlIHtcblx0XHRcdEBpbmNsdWRlIHJhZGlvLm1peGluLWZvY3VzO1xuXHRcdH1cblxuXHRcdCY6ZGlzYWJsZWQge1xuXHRcdFx0QGluY2x1ZGUgcmFkaW8ubWl4aW4tZGlzYWJsZWQ7XG5cdFx0fVxuXHR9XG5cblx0W3R5cGU9XCJyYWRpb1wiXSB7XG5cdFx0bWFzay1pbWFnZTogc3ZnLWxvYWQoI3tpbWFnZS4kcmFkaW8taW1hZ2V9KTtcblxuXHRcdCY6Y2hlY2tlZCB7XG5cdFx0XHRtYXNrLWltYWdlOiBzdmctbG9hZCgje2ltYWdlLiRyYWRpby1pbWFnZV9fY2hlY2tlZH0pO1xuXHRcdH1cblx0fVxuXG5cdFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuXHRcdG1hc2staW1hZ2U6IHN2Zy1sb2FkKCN7aW1hZ2UuJGNoZWNrYm94LWltYWdlfSk7XG5cblx0XHRAaWYgc3RyLWluZGV4KGltYWdlLiRjaGVja2JveC1pbWFnZSwgXCJ0b2dnbGVcIikge1xuXHRcdFx0aGVpZ2h0OiBjYWxjKCN7cmFkaW8uJGNvbnRyb2wtc2l6ZX0gKiAyKTtcblx0XHRcdG1hcmdpbi10b3A6IGNhbGMoI3tyYWRpby4kY29udHJvbC1zaXplfSAqIC0wLjM1KSAhaW1wb3J0YW50O1xuXHRcdFx0b3BhY2l0eTogMC4yNTtcblx0XHRcdHRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTtcblx0XHR9XG5cblx0XHQmOmNoZWNrZWQge1xuXHRcdFx0bWFzay1pbWFnZTogc3ZnLWxvYWQoI3tpbWFnZS4kY2hlY2tib3gtaW1hZ2VfX2NoZWNrZWR9KTtcblxuXHRcdFx0QGlmIHN0ci1pbmRleChpbWFnZS4kY2hlY2tib3gtaW1hZ2UsIFwidG9nZ2xlXCIpIHtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdFx0dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmOmluZGV0ZXJtaW5hdGUge1xuXHRcdFx0b3BhY2l0eTogMC41O1xuXHRcdFx0bWFzay1pbWFnZTogc3ZnLWxvYWQoI3tpbWFnZS4kY2hlY2tib3gtaW1hZ2VfX2luZGV0ZXJtaW5hdGV9KTtcblx0XHR9XG5cdH1cblxuXG5cdC8qIElucHV0LCBzZWxlY3QgYW5kIHRleHRhcmVhXG5cdCAqIEFsbG93ZWQ6IFx0YHRleHRgLCBgcGFzc3dvcmRgLCBgZGF0ZXRpbWUtbG9jYWxgLCBgZGF0ZWAsICBgbW9udGhgLFxuXHRcdFx0XHRcdGB0aW1lYCwgYHdlZWtgLCBgbnVtYmVyYCwgYGVtYWlsYCwgYHVybGAsIGBzZWFyY2hgLCBgdGVsYCwgYGNvbG9yYFxuXHQgKiBEaXNhbGxvd2VkOiBcdGByYW5nZWAsIGByYWRpb2AsIGBjaGVja2JveGAsIGBmaWxlYCwgYHN1Ym1pdGAsIGByZXNldGAgYW5kIGBpbWFnZWBcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuXHQvKlxuXHQqIDEuIFByZXZlbnQgY29udGVudCBvdmVyZmxvdyBpZiBhIGZpeGVkIHdpZHRoIGlzIHVzZWRcblx0KiAyLiBUYWtlIHRoZSBmdWxsIHdpZHRoXG5cdCogMy4gU3R5bGVcblx0Ki9cblx0JWlucHV0cyB7XG5cdFx0LyogMiAqL1xuXHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0LyogMSAqL1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRsaW5lLWhlaWdodDogaW5wdXQuJGxpbmUtaGVpZ2h0O1xuXHRcdGNvbG9yOiBpbnB1dC4kY29sb3I7XG5cblx0XHQvKiAzICovXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogaW5wdXQuJGJhY2tncm91bmQ7XG5cdFx0b3V0bGluZTogaW5wdXQuJG91dGxpbmUtd2lkdGggc29saWQgaW5wdXQuJG91dGxpbmUtY29sb3I7XG5cdFx0Zm9udDoge1xuXHRcdFx0ZmFtaWx5OiBpbnB1dC4kZm9udC1mYW1pbHk7XG5cdFx0XHRzaXplOiAgIGlucHV0LiRmb250LXNpemU7XG5cdFx0XHR3ZWlnaHQ6IGlucHV0LiRmb250LXdlaWdodDtcblx0XHR9XG5cdFx0Ym9yZGVyOiB7XG5cdFx0XHR3aWR0aDogIGlucHV0LiRib3JkZXItd2lkdGg7XG5cdFx0XHRjb2xvcjogIGlucHV0LiRib3JkZXItY29sb3I7XG5cdFx0XHRyYWRpdXM6IGlucHV0LiRib3JkZXItcmFkaXVzO1xuXHRcdFx0c3R5bGU6IHNvbGlkO1xuXHRcdH1cblxuXHRcdGJveC1zaGFkb3c6IGlucHV0LiRib3gtc2hhZG93O1xuXG5cdFx0Lyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG9yZGVyL3Byb3BlcnRpZXMtb3JkZXIgKi9cblx0XHRwYWRkaW5nOlxuXHRcdFx0aW5wdXQuJHBhZGRpbmctdG9wXG5cdFx0XHRpbnB1dC4kcGFkZGluZy1yaWdodFxuXHRcdFx0aW5wdXQuJHBhZGRpbmctYm90dG9tXG5cdFx0XHRpbnB1dC4kcGFkZGluZy1sZWZ0O1xuXG5cdFx0QGluY2x1ZGUgaW5wdXQubWl4aW4tdHJhbnNpdGlvbjtcblxuXHRcdCY6Zm9jdXMtdmlzaWJsZSwgJjphY3RpdmUge1xuXHRcdFx0QGluY2x1ZGUgaW5wdXQubWl4aW4tZm9jdXM7XG5cdFx0fVxuXG5cdFx0JjpkaXNhYmxlZCB7XG5cdFx0XHRAaW5jbHVkZSBpbnB1dC5taXhpbi1kaXNhYmxlZDtcblx0XHR9XG5cdH1cblxuXHQlc2luZ2xlLWxpbmUge1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdH1cblxuXHQlbXVsdGktbGluZSB7XG5cdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0fVxuXG5cdGlucHV0IHtcblx0XHQmW3R5cGU9XCJ0ZXh0XCJdLFxuXHRcdCZbdHlwZT1cInBhc3N3b3JkXCJdLFxuXHRcdCZbdHlwZT1cImRhdGVcIl0sXG5cdFx0Jlt0eXBlPVwiZGF0ZXRpbWVcIl0sXG5cdFx0Jlt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG5cdFx0Jlt0eXBlPVwiZW1haWxcIl0sXG5cdFx0Jlt0eXBlPVwibW9udGhcIl0sXG5cdFx0Jlt0eXBlPVwibnVtYmVyXCJdLFxuXHRcdCZbdHlwZT1cInNlYXJjaFwiXSxcblx0XHQmW3R5cGU9XCJ0ZWxcIl0sXG5cdFx0Jlt0eXBlPVwidGltZVwiXSxcblx0XHQmW3R5cGU9XCJ1cmxcIl0sXG5cdFx0Jlt0eXBlPVwid2Vla1wiXSB7XG5cdFx0XHRAZXh0ZW5kICVpbnB1dHM7XG5cdFx0fVxuXHR9XG5cblx0c2VsZWN0LFxuXHR0ZXh0YXJlYSB7XG5cdFx0QGV4dGVuZCAlaW5wdXRzO1xuXHR9XG5cblxuXHQvKlxuXHQqIFNpbmdsZS1saW5lXG5cdCovXG5cdHNlbGVjdDpub3QoW211bHRpcGxlXSwgW3NpemVdKSB7XG5cdFx0QGV4dGVuZCAlc2luZ2xlLWxpbmU7XG5cdH1cblxuXHQvKlxuXHQqIE11bHRpLWxpbmVcblx0Ki9cblx0c2VsZWN0W211bHRpcGxlXSxcblx0c2VsZWN0W3NpemVdLFxuXHR0ZXh0YXJlYSB7XG5cdFx0QGV4dGVuZCAlbXVsdGktbGluZTtcblx0fVxuXG5cdHNlbGVjdFttdWx0aXBsZV0sXG5cdHNlbGVjdFtzaXplXSB7XG5cdFx0cmVzaXplOiB2ZXJ0aWNhbDtcblx0fVxuXG5cblx0LyogU2luZ2xlLWxpbmUgc2VsZWN0cywgZGF0YWxpc3RzICovXG5cdGlucHV0W2xpc3RdLFxuXHRzZWxlY3Q6bm90KFttdWx0aXBsZV0sIFtzaXplXSkge1xuXHRcdHBhZGRpbmctcmlnaHQ6IGNhbGMoI3tpbnB1dC4kY29udHJvbC1pbWFnZS13aWR0aH0gKyAje2lucHV0LiRjb250cm9sLWljb24tc2lkZS1wYWRkaW5nfSk7XG5cdFx0YmFja2dyb3VuZDoge1xuXHRcdFx0cG9zaXRpb246IGNhbGMoMTAwJSAtICggI3tpbnB1dC4kY29udHJvbC1pbWFnZS13aWR0aH0gLyAyICkpIDUwJTtcblx0XHRcdGltYWdlOiBzdmctbG9hZCgje2lucHV0LiRpbnRlcm5hbC1zZWxlY3QtaW1hZ2V9KTtcblx0XHRcdHJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdFx0c2l6ZTogYXV0byBpbnB1dC4kY29udHJvbC1pbWFnZS13aWR0aDtcblx0XHR9XG5cblx0fVxuXG5cdDo6cGxhY2Vob2xkZXIge1xuXHRcdGNvbG9yOiBpbnB1dC4kY29sb3JfX3BsYWNlaG9sZGVyO1xuXHR9XG59XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBzY3NzL2RvbGxhci12YXJpYWJsZS1wYXR0ZXJuLCBzY3NzL2RvbGxhci12YXJpYWJsZS1lbXB0eS1saW5lLWJlZm9yZSwgc2Nzcy9kb2xsYXItdmFyaWFibGUtY29sb24tc3BhY2UtYWZ0ZXIgKi9cbi8vLy9cbi8vLyBGb3JtIGlucHV0IHN0eWxlcyAoaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEpXG4vLy9cbi8vLyBEZWZpbmUgbW9zdCBzdHlsZXMgaW4gY29yZS9mb3JtLWlucHV0LlxuLy8vIEJlY2F1c2UgdGhlbWUuanNvbiBkb2Vzbid0IHN1cHBvcnQgcHNldWRvLWNsYXNzZXMsIHdlIHNpbXBseSBkZWZpbmVcbi8vLyBzdHlsZXMgZm9yIDpmb2N1cywgOmRpc2FibGVkLCBldGMuIGhlcmUgdXNpbmcgbWl4aW5zLlxuLy8vXG4vLy8gQGdyb3VwIHRyb2xsZXlcbi8vLy9cblxuQHVzZSBcInNhc3M6bWFwXCI7XG5AdXNlIFwiYWJzdHJhY3RzL2Z1bmN0aW9uc1wiIGFzICo7XG5cbi8vIFB1bGwgaW4gdGhlIHRoZW1lLmpzb24gc3R5bGluZyBmb3IgY29yZS9mb3JtLWlucHV0LlxuJGZvcm0taW5wdXQ6IHRoZW1lLXN0eWxlcyhibG9ja3MsIGNvcmUvZm9ybS1pbnB1dCk7XG5cbi8qXG5cdFx0XHRcdFx0XHR0aGVtZS5qc29uXHRcdFx0XHRcdFx0XHRcdFx0XHRmYWxsYmFja1xuXHRcdFx0XHRcdFx0LS0tLS0tLS0tLVx0XHRcdFx0XHRcdFx0XHRcdFx0LS0tLS0tLS0tICovXG4kY29sb3I6XHRcdFx0XHRcdG1hcC5nZXQoJGZvcm0taW5wdXQsIGNvbG9yLCB0ZXh0KVx0XHRcdFx0b3Igd3AoY29sb3IsIGNvbnRyYXN0KTtcbiRiYWNrZ3JvdW5kOlx0XHRcdG1hcC5nZXQoJGZvcm0taW5wdXQsIGNvbG9yLCBiYWNrZ3JvdW5kKVx0XHRcdG9yIHdwKGNvbG9yLCBuZXV0cmFsLTEwMCk7XG5cbiRjb2xvcl9fcGxhY2Vob2xkZXI6XHR3cChjb2xvciwgbmV1dHJhbC03MDApO1xuXG4kYm9yZGVyLWNvbG9yOiBcdFx0XHRtYXAuZ2V0KCRmb3JtLWlucHV0LCBib3JkZXIsIGNvbG9yKSBcdFx0XHRvciBcdHdwKGNvbG9yLCBjb250cmFzdCk7XG4kYm9yZGVyLXdpZHRoOiBcdFx0XHRtYXAuZ2V0KCRmb3JtLWlucHV0LCBib3JkZXIsIHdpZHRoKSBcdFx0XHRvciBcdDFweDtcbiRib3JkZXItcmFkaXVzOiBcdFx0bWFwLmdldCgkZm9ybS1pbnB1dCwgYm9yZGVyLCByYWRpdXMpIFx0XHRcdG9yIFx0bm9uZTtcblxuJG91dGxpbmUtY29sb3I6XHRcdFx0bWFwLmdldCgkZm9ybS1pbnB1dCwgb3V0bGluZSwgY29sb3IpXHRcdFx0b3JcdHRyYW5zcGFyZW50O1xuJG91dGxpbmUtd2lkdGg6XHRcdFx0bWFwLmdldCgkZm9ybS1pbnB1dCwgb3V0bGluZSwgd2lkdGgpXHRcdFx0b3JcdDA7XG5cbiRib3gtc2hhZG93Olx0XHRcdG1hcC5nZXQoJGZvcm0taW5wdXQsIHNoYWRvdylcdFx0XHRcdG9yXHR0cmFuc3BhcmVudDtcblxuJHBhZGRpbmctdG9wOiBcdFx0XHRtYXAuZ2V0KCRmb3JtLWlucHV0LCBzcGFjaW5nLCBwYWRkaW5nLCB0b3ApIFx0b3IgXHQ5cHg7XG4kcGFkZGluZy1yaWdodDogXHRcdG1hcC5nZXQoJGZvcm0taW5wdXQsIHNwYWNpbmcsIHBhZGRpbmcsIHJpZ2h0KSBcdG9yIFx0MThweDtcbiRwYWRkaW5nLWJvdHRvbTogXHRcdG1hcC5nZXQoJGZvcm0taW5wdXQsIHNwYWNpbmcsIHBhZGRpbmcsIGJvdHRvbSkgXHRvciBcdDlweDtcbiRwYWRkaW5nLWxlZnQ6IFx0XHRcdG1hcC5nZXQoJGZvcm0taW5wdXQsIHNwYWNpbmcsIHBhZGRpbmcsIGxlZnQpIFx0b3IgXHQxOHB4O1xuXG4kZm9udC1mYW1pbHk6IFx0XHRcdG1hcC5nZXQoJGZvcm0taW5wdXQsIHR5cG9ncmFwaHksIGZvbnQtZmFtaWx5KSBcdG9yIFx0d3AoZm9udC1mYW1pbHksIGJvZHkpO1xuJGZvbnQtc2l6ZTogXHRcdFx0bWFwLmdldCgkZm9ybS1pbnB1dCwgdHlwb2dyYXBoeSwgZm9udC1zaXplKSBcdG9yIFx0d3AoZm9udC1zaXplLCBzbWFsbCk7XG4kZm9udC13ZWlnaHQ6IFx0XHRcdG1hcC5nZXQoJGZvcm0taW5wdXQsIHR5cG9ncmFwaHksIGZvbnQtd2VpZ2h0KSBcdG9yIFx0d3AoZm9udC13ZWlnaHQsIHJlZ3VsYXIpO1xuJGxpbmUtaGVpZ2h0OiBcdFx0XHRtYXAuZ2V0KCRmb3JtLWlucHV0LCB0eXBvZ3JhcGh5LCBsaW5lLWhlaWdodCkgXHRvciBcdHdwKGxpbmUtaGVpZ2h0LCBib2R5KTtcblxuLy8gV2lkdGggb2YgdGhlIGNvbnRyb2wgaWNvbnMsIGUuZy4sIHRoZSBkcm9wZG93biBhcnJvdy5cbiRjb250cm9sLWltYWdlLXdpZHRoOlx0MS41cmVtO1xuJGNvbnRyb2wtaWNvbi1zaWRlLXBhZGRpbmc6XHQkcGFkZGluZy1yaWdodDtcblxuLy8gU1ZHIGltYWdlcyBmb3Igc2VsZWN0cyBhbmQgZGF0YWxpc3RzLCByZWxhdGl2ZSB0byBzcmMsIHNyYy9zY3NzLCBvciBzcmMvbm9kZV9tb2R1bGVzLlxuJGludGVybmFsLXNlbGVjdC1pbWFnZTogICAgICAgICAgICAgICAgIFwiZmVhdGhlci1pY29ucy9kaXN0L2ljb25zL2NoZXZyb24tZG93bi5zdmdcIjtcbiRpbnRlcm5hbC1kYXRhbGlzdC1pbWFnZTogICAgICAgICAgICAgICBcImZlYXRoZXItaWNvbnMvZGlzdC9pY29ucy9jaGV2cm9uLWRvd24uc3ZnXCI7XG5cbi8vIFVzZWQgZm9yIGJhc2UgKGZvY3VzIG91dCkgdHJhbnNpdGlvbi5cbkBtaXhpbiBtaXhpbi10cmFuc2l0aW9uKCkge1xuXHR0cmFuc2l0aW9uOiB7XG5cdFx0ZHVyYXRpb246IDEwMG1zO1xuXHRcdHByb3BlcnR5OiB0cmFuc2Zvcm0sIGJveC1zaGFkb3c7XG5cdFx0dGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcblx0fVxufVxuXG5AbWl4aW4gbWl4aW4tZm9jdXMoKSB7XG5cdGJvcmRlci1jb2xvcjogd3AoY29sb3IsIHByaW1hcnkpO1xuXHRib3gtc2hhZG93OiAwIDRweCA2cHggcmdiKDAgMCAwIC8gMTAlKTtcblx0dHJhbnNmb3JtOiBzY2FsZSgxLjAyNSk7XG5cblx0dHJhbnNpdGlvbjoge1xuXHRcdGR1cmF0aW9uOiAzMDBtcztcblx0XHR0aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1MCwgMS42NTAsIDAuNDUwLCAxLjAwMCksIGVhc2U7XG5cdH1cbn1cblxuQG1peGluIG1peGluLWZvY3VzLWxhYmVsKCkge1xuXHR0cmFuc2Zvcm06IHNjYWxlKDEuMDI1KTtcblxuXHR0cmFuc2l0aW9uOiB7XG5cdFx0ZHVyYXRpb246IDMwMG1zO1xuXHRcdHRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUwLCAxLjY1MCwgMC40NTAsIDEuMDAwKSwgZWFzZTtcblx0fVxufVxuXG5AbWl4aW4gbWl4aW4tZGlzYWJsZWQoKSB7XG5cdGNvbG9yOiB3cChjb2xvciwgbmV1dHJhbC01MDApO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB3cChjb2xvciwgbmV1dHJhbC0zMDApO1xuXHRib3JkZXItY29sb3I6IHdwKGNvbG9yLCBuZXV0cmFsLTUwMCk7XG59XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBzY3NzL2RvbGxhci12YXJpYWJsZS1lbXB0eS1saW5lLWJlZm9yZSwgc2Nzcy9kb2xsYXItdmFyaWFibGUtY29sb24tc3BhY2UtYWZ0ZXIgKi9cbi8vLy9cbi8vLyBGb3JtIHJhZGlvIGFuZCBjaGVja2JveCBzdHlsZXNcbi8vL1xuLy8vIFdvcmRQcmVzcyBhcyBvZiA2LjYgaGFzIG5vIGNvcmUgZm9ybSByYWRpby9jaGVja2JveCBibG9ja3MuXG4vLy8gVW50aWwgaXQgZG9lcywgcmFkaW8vY2hlY2tib3ggc3R5bGluZyBpcyBoYW5kbGVkIGhlcmUuXG4vLy9cbi8vLyBAZ3JvdXAgdHJvbGxleVxuLy8vL1xuXG5AdXNlIFwic2FzczptYXBcIjtcbkB1c2UgXCJhYnN0cmFjdHMvZnVuY3Rpb25zXCIgYXMgKjtcblxuLy8gUHVsbCBpbiB0aGUgdGhlbWUuanNvbiBzdHlsaW5nIGZvciBjb3JlL2Zvcm0taW5wdXQuXG4kZm9ybS1pbnB1dDogdGhlbWUtc3R5bGVzKGJsb2NrcywgY29yZS9mb3JtLWlucHV0KTtcblxuLypcblx0XHRcdFx0XHRcdHRoZW1lLmpzb25cdFx0XHRcdFx0XHRcdFx0XHRcdGZhbGxiYWNrXG5cdFx0XHRcdFx0XHQtLS0tLS0tLS0tXHRcdFx0XHRcdFx0XHRcdFx0XHQtLS0tLS0tLS0gKi9cbiRjb2xvcjpcdFx0XHRcdFx0bWFwLmdldCgkZm9ybS1pbnB1dCwgY29sb3IsIHRleHQpXHRcdFx0XHRvciB3cChjb2xvciwgY29udHJhc3QpO1xuJGJhY2tncm91bmQ6XHRcdFx0bWFwLmdldCgkZm9ybS1pbnB1dCwgY29sb3IsIGJhY2tncm91bmQpXHRcdFx0b3Igd3AoY29sb3IsIG5ldXRyYWwtMTAwKTtcblxuJGJvcmRlci1jb2xvcjogXHRcdFx0bWFwLmdldCgkZm9ybS1pbnB1dCwgYm9yZGVyLCBjb2xvcikgXHRcdFx0b3IgXHR3cChjb2xvciwgY29udHJhc3QpO1xuJGJvcmRlci13aWR0aDogXHRcdFx0bWFwLmdldCgkZm9ybS1pbnB1dCwgYm9yZGVyLCB3aWR0aCkgXHRcdFx0b3IgXHQxcHg7XG4kYm9yZGVyLXJhZGl1czogXHRcdG1hcC5nZXQoJGZvcm0taW5wdXQsIGJvcmRlciwgcmFkaXVzKSBcdFx0XHRvciBcdG5vbmU7XG5cbiRvdXRsaW5lLWNvbG9yOlx0XHRcdG1hcC5nZXQoJGZvcm0taW5wdXQsIG91dGxpbmUsIGNvbG9yKVx0XHRcdG9yXHR0cmFuc3BhcmVudDtcbiRvdXRsaW5lLXdpZHRoOlx0XHRcdG1hcC5nZXQoJGZvcm0taW5wdXQsIG91dGxpbmUsIHdpZHRoKVx0XHRcdG9yXHQwO1xuXG4kZm9udC1mYW1pbHk6IFx0XHRcdG1hcC5nZXQoJGZvcm0taW5wdXQsIHR5cG9ncmFwaHksIGZvbnQtZmFtaWx5KSBcdG9yIFx0d3AoZm9udC1mYW1pbHksIGJvZHkpO1xuJGZvbnQtc2l6ZTogXHRcdFx0bWFwLmdldCgkZm9ybS1pbnB1dCwgdHlwb2dyYXBoeSwgZm9udC1zaXplKSBcdG9yIFx0d3AoZm9udC1zaXplLCBzbWFsbCk7XG4kZm9udC13ZWlnaHQ6IFx0XHRcdG1hcC5nZXQoJGZvcm0taW5wdXQsIHR5cG9ncmFwaHksIGZvbnQtd2VpZ2h0KSBcdG9yIFx0d3AoZm9udC13ZWlnaHQsIHJlZ3VsYXIpO1xuJGxpbmUtaGVpZ2h0OiBcdFx0XHRtYXAuZ2V0KCRmb3JtLWlucHV0LCB0eXBvZ3JhcGh5LCBsaW5lLWhlaWdodCkgXHRvciBcdHdwKGxpbmUtaGVpZ2h0LCBib2R5KTtcblxuLy8gU2l6ZSBvZiB0aGUgY29udHJvbCBpY29ucywgZS5nLiwgdGhlIGNoZWNrYm94IG9yIHJhZGlvLlxuJGNvbnRyb2wtc2l6ZTpcdFx0XHQxLjVyZW07XG5cbkBtaXhpbiBtaXhpbi10cmFuc2l0aW9uKCkge1xuXHR0cmFuc2l0aW9uOiB7XG5cdFx0ZHVyYXRpb246IDEwMG1zO1xuXHRcdHByb3BlcnR5OiB0cmFuc2Zvcm0sIGJhY2tncm91bmQ7XG5cdFx0dGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcblx0fVxufVxuXG5AbWl4aW4gbWl4aW4tZm9jdXMoKSB7XG5cdGJhY2tncm91bmQtY29sb3I6IHdwKGNvbG9yLCBwcmltYXJ5KTtcblx0dHJhbnNmb3JtOiBzY2FsZSgxLjI1KTtcblx0dHJhbnNpdGlvbjoge1xuXHRcdGR1cmF0aW9uOiAzMDBtcztcblx0XHR0aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1MCwgMS42NTAsIDAuNDUwLCAxLjAwMCksIGVhc2U7XG5cdH1cbn1cblxuQG1peGluIG1peGluLWRpc2FibGVkKCkge1xuXHRjb2xvcjogd3AoY29sb3IsIG5ldXRyYWwtNTAwKTtcblx0YmFja2dyb3VuZC1jb2xvcjogd3AoY29sb3IsIG5ldXRyYWwtMzAwKTtcblx0Ym9yZGVyLWNvbG9yOiB3cChjb2xvciwgbmV1dHJhbC01MDApO1xufVxuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgc2Nzcy9kb2xsYXItdmFyaWFibGUtcGF0dGVybiwgc2Nzcy9kb2xsYXItdmFyaWFibGUtY29sb24tc3BhY2UtYWZ0ZXIgKi9cbi8vLy9cbi8vLyBTVkcgaW1hZ2VzIGZvciBzZWxlY3RzIGFuZCBkYXRhbGlzdHMsIHJlbGF0aXZlIHRvIHNyYywgc3JjL3Njc3MsIG9yIHNyYy9ub2RlX21vZHVsZXMuXG4vLy9cbi8vLyBAZ3JvdXAgdHJvbGxleVxuLy8vL1xuXG4kcGFja2FnZTogZmVhdGhlciAhZGVmYXVsdDtcbiR0b2dnbGU6IGZhbHNlICFkZWZhdWx0O1xuXG4vKiBGZWF0aGVyIEljb25zICovXG4kcmFkaW8taW1hZ2U6XHRcdFx0XHRcdFwiZmVhdGhlci1pY29ucy9kaXN0L2ljb25zL2NpcmNsZS5zdmdcIiAhZGVmYXVsdDtcbiRyYWRpby1pbWFnZV9fY2hlY2tlZDpcdFx0XHRcImZlYXRoZXItaWNvbnMvZGlzdC9pY29ucy9jaGVjay1jaXJjbGUuc3ZnXCIgIWRlZmF1bHQ7XG4kY2hlY2tib3gtaW1hZ2U6XHRcdFx0XHRcImZlYXRoZXItaWNvbnMvZGlzdC9pY29ucy9zcXVhcmUuc3ZnXCIgIWRlZmF1bHQ7XG4kY2hlY2tib3gtaW1hZ2VfX2NoZWNrZWQ6XHRcdFwiZmVhdGhlci1pY29ucy9kaXN0L2ljb25zL2NoZWNrLXNxdWFyZS5zdmdcIiAhZGVmYXVsdDtcbiRjaGVja2JveC1pbWFnZV9faW5kZXRlcm1pbmF0ZTpcdFwiZmVhdGhlci1pY29ucy9kaXN0L2ljb25zL21pbnVzLXNxdWFyZS5zdmdcIiAhZGVmYXVsdDtcblxuQGlmICR0b2dnbGUge1xuXHQkY2hlY2tib3gtaW1hZ2U6XHRcdFx0XHRcImZlYXRoZXItaWNvbnMvZGlzdC9pY29ucy90b2dnbGUtbGVmdC5zdmdcIjtcblx0JGNoZWNrYm94LWltYWdlX19jaGVja2VkOlx0XHRcImZlYXRoZXItaWNvbnMvZGlzdC9pY29ucy90b2dnbGUtcmlnaHQuc3ZnXCI7XG59XG5cbi8qIElvbkljb25zICovXG5AaWYgJHBhY2thZ2UgPT0gaW9uaWNvbnMge1xuXHQkcmFkaW8taW1hZ2U6XHRcdFx0XHRcdFwiaW9uaWNvbnMvZGlzdC9zdmcvcmFkaW8tYnV0dG9uLW9mZi5zdmdcIjtcblx0JHJhZGlvLWltYWdlX19jaGVja2VkOlx0XHRcdFwiaW9uaWNvbnMvZGlzdC9zdmcvcmFkaW8tYnV0dG9uLW9uLnN2Z1wiO1xuXHQkY2hlY2tib3gtaW1hZ2U6XHRcdFx0XHRcImlvbmljb25zL2Rpc3Qvc3ZnL3NxdWFyZS1vdXRsaW5lLnN2Z1wiO1xuXHQkY2hlY2tib3gtaW1hZ2VfX2NoZWNrZWQ6XHRcdFwiaW9uaWNvbnMvZGlzdC9zdmcvY2hlY2tib3gtb3V0bGluZS5zdmdcIjtcblx0JGNoZWNrYm94LWltYWdlX19pbmRldGVybWluYXRlOlx0XCJpb25pY29ucy9kaXN0L3N2Zy9zcXVhcmUtb3V0bGluZS5zdmdcIjtcblxuXHRAaWYgJHRvZ2dsZSB7XG5cdFx0JGNoZWNrYm94LWltYWdlOlx0XHRcdFx0XCJpb25pY29ucy9kaXN0L3N2Zy90b2dnbGUtc2hhcnAuc3ZnXCI7XG5cdFx0JGNoZWNrYm94LWltYWdlX19jaGVja2VkOlx0XHRcImlvbmljb25zL2Rpc3Qvc3ZnL3RvZ2dsZS1zaGFycC5zdmdcIjtcblx0XHQkY2hlY2tib3gtaW1hZ2VfX2luZGV0ZXJtaW5hdGU6XHRcImlvbmljb25zL2Rpc3Qvc3ZnL3VubGluay1zaGFycC5zdmdcIjtcblx0fVxufVxuXG5cbi8qIGNzcy5nZyAqL1xuQGlmICRwYWNrYWdlID09IFwiY3NzLmdnXCIge1xuXHQkcmFkaW8taW1hZ2U6XHRcdFx0XHRcdFwiY3NzLmdnL2ljb25zL3JhZGlvLWNoZWNrLnN2Z1wiO1xuXHQkcmFkaW8taW1hZ2VfX2NoZWNrZWQ6XHRcdFx0XCJjc3MuZ2cvaWNvbnMvcmFkaW8tY2hlY2tlZC5zdmdcIjtcblx0JGNoZWNrYm94LWltYWdlOlx0XHRcdFx0XCJjc3MuZ2cvaWNvbnMvdG9nZ2xlLW9uLnN2Z1wiO1xuXHQkY2hlY2tib3gtaW1hZ2VfX2NoZWNrZWQ6XHRcdFwiY3NzLmdnL2ljb25zL3RvZ2dsZS1vZmYuc3ZnXCI7XG5cdCRjaGVja2JveC1pbWFnZV9faW5kZXRlcm1pbmF0ZTpcdFwiY3NzLmdnL2ljb25zL3BpbGwuc3ZnXCI7XG59XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1pZC1wYXR0ZXJuICovXG4vLy8vXG4vLy8gU3R5bGVzIHBhcnRpY3VsYXIgdG8gdGhpcyB0aGVtZS5cbi8vLyBAZ3JvdXAgdHJvbGxleVxuLy8vL1xuQHVzZSBcImFic3RyYWN0cy9mdW5jdGlvbnNcIiBhcyAqO1xuQHVzZSBcImFic3RyYWN0cy9wbGFjZWhvbGRlcnNcIiBhcyAqO1xuXG5cbi8qXG4gKiA8a2JkPiBjb2xvcnMgdGFrZW4gZnJvbSBBdGVsaWVyIEZvcmVzdCBMaWdodFxuICogaHR0cHM6Ly9hdGVsaWVyYnJhbS5naXRodWIuaW8vc3ludGF4LWhpZ2hsaWdodGluZy9hdGVsaWVyLXNjaGVtZXMvZm9yZXN0L1xuICovXG5cbiRiYXNlMDI6IGhzbCgxOGRlZyA1JSAzOSUpOyAgICAvKiAjNjg2MTVlICovXG4kYmFzZTA2OiBoc2woMjBkZWcgMTElIDg5JSk7ICAgLyogI2U2ZTJlMCAqL1xuJGJhc2UwNzogaHNsKDIwZGVnIDEwJSA5NCUpOyAgIC8qICNmMWVmZWUgKi9cblxua2JkLCBjb2RlLCBzYW1wLCBwcmUge1xuXHRmb250LWZhbWlseTogd3AoZm9udC1mYW1pbHksIG1vbm8pO1xufVxuXG5rYmQge1xuXHRwYWRkaW5nOiAwLjFlbSAwLjRlbTtcblx0bWFyZ2luLWlubGluZTogMC4yZW07XG5cdGNvbG9yOiAkYmFzZTAyO1xuXHRiYWNrZ3JvdW5kOiAkYmFzZTA3O1xuXHRib3JkZXItcmFkaXVzOiAwLjNlbTtcblxuXHQmOmZpcnN0LWNoaWxkIHsgbWFyZ2luLWlubGluZS1zdGFydDogMDsgfVxuXHQmOmxhc3QtY2hpbGQgeyBtYXJnaW4taW5saW5lLWVuZDogMDsgfVxuXG5cdCY6OnNlbGVjdGlvbixcblx0OjpzZWxlY3Rpb24ge1xuXHRcdHRleHQtc2hhZG93OiBub25lO1xuXHRcdGJhY2tncm91bmQ6ICRiYXNlMDY7XG5cdH1cbn1cbiIsIi8vIEltcG9ydCBvdXIgZnVuY3Rpb25zIGFuZCBhYnN0cmFjdHMuIE5vbmUgb2YgdGhpcyBzaG91bGQgcHJvZHVjZSBDU1MuXG5AZm9yd2FyZCBcImFic3RyYWN0cy92YXJpYWJsZXNcIjtcbkBmb3J3YXJkIFwiYWJzdHJhY3RzL21peGluc1wiO1xuQGZvcndhcmQgXCJhYnN0cmFjdHMvZnVuY3Rpb25zXCI7XG5AZm9yd2FyZCBcImFic3RyYWN0cy9wbGFjZWhvbGRlcnNcIjtcblxuLy8gTm9ybWFsaXplIHN0eWxlcy5cbkB1c2UgXCJyZXNldFwiO1xuXG4vLyBDb21wb25lbnRzLlxuQHVzZSBcImNvbXBvbmVudHMvdXRpbGl0eVwiO1xuQHVzZSBcImNvbXBvbmVudHMvZm9ybVwiO1xuXG4vLyBAdXNlIFwiY29tcG9uZW50cy9mb3Jtc1wiO1xuXG4vLyBUaGVtZS1zcGVjaWZpYyBzdHlsZXMuXG5AdXNlIFwiYnJhbmQvcGxhY2Vob2xkZXJzXCI7XG5AdXNlIFwiYnJhbmQvc3R5bGVcIjtcblxuI2dmb3JtX3N1Ym1pdF9idXR0b25fNiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuNzVlbSAxLjM3NWVtO1xuICAgICAgICBmb250LWZhbWlseTogd3AoZm9udCwgaGVhZGluZyk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB3cChjb2xvciwgbmV1dHJhbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdwKGNvbG9yLCBwcmltYXJ5KTtcblx0XHRib3JkZXI6IDJweCBzb2xpZCB3cChjb2xvciwgcHJpbWFyeSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdGNvbG9yOiB3cChjb2xvciwgcHJpbWFyeSk7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3cChjb2xvciwgbmV1dHJhbCk7XG5cdFx0XHRib3JkZXI6IDJweCBzb2xpZCB3cChjb2xvciwgcHJpbWFyeSk7XG5cdFx0fVxufVxuXG5oZWFkZXIge1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgdG9wOiAwO1xuICAgIHotaW5kZXg6IDEwMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3cChjb2xvciwgbmV1dHJhbCk7XG59XG5cbi5naW5wdXRfY29udGFpbmVyIHtcblx0XHR0ZXh0YXJlYSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiNmMGYwZjAgIWltcG9ydGFudDtcblx0XHR9XG5cblx0XHRpbnB1dCB7XG5iYWNrZ3JvdW5kLWNvbG9yOiNmMGYwZjAgIWltcG9ydGFudDtcblxuXHRcdCYuZ2ZpZWxkLWNob2ljZS1pbnB1dCB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjNUM1QzVDICFpbXBvcnRhbnQ7XG5cdFx0fVxuXG5cdFx0fVxuXG59XG5cbi5pcy1zdHlsZS1ibHVlLWJveCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiAxMDAwICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIHBhZGRpbmc6IC41ZW0gLjc1ZW07XG50ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1wcmltYXJ5KTtcblx0fVxuIl0sImZpbGUiOiIvYXBwL3RoZW1lcy9tYXNvbm5vdzIwMjQvc3JjL3Njc3Mvc3R5bGUuc2NzcyJ9 */
