/* ========================================================================
   Component: Base
 ========================================================================== */
/*
 * 1. Set `font-size` to support `rem` units
 *    Not using `font` property because a leading hyphen (e.g. -apple-system) causes the font to break in IE11 and Edge
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 * 3. Style
 */
html {
  /* 1 */
  font-family: -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";
  font-size: 16px;
  font-weight: normal;
  line-height: 1.5;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 3 */
  background: #fff;
  color: #666; }

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

/* Links
 ========================================================================== */
/*
 * Remove the outline on focused links when they are also active or hovered
 */
a:active,
a:hover {
  outline: none; }

/*
 * Style
 */
a,
.uk-link {
  color: #1e87f0;
  text-decoration: none;
  cursor: pointer; }

a:hover,
.uk-link:hover,
.uk-link-toggle:hover .uk-link,
.uk-link-toggle:focus .uk-link {
  color: #0f6ecd;
  text-decoration: underline; }

/* Text-level semantics
 ========================================================================== */
/*
 * 1. Add the correct text decoration in Edge.
 * 2. The shorthand declaration `underline dotted` is not supported in Safari.
 */
abbr[title] {
  /* 1 */
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
  /* 2 */
  -webkit-text-decoration-style: dotted; }

/*
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder; }

/*
 * 1. Consolas has a better baseline in running text compared to `Courier`
 * 2. Correct the odd `em` font sizing in all browsers.
 * 3. Style
 */
:not(pre) > code,
:not(pre) > kbd,
:not(pre) > samp {
  /* 1 */
  font-family: Consolas, monaco, monospace;
  /* 2 */
  font-size: 0.875rem;
  /* 3 */
  color: #f0506e;
  white-space: nowrap; }

/*
 * Emphasize
 */
em {
  color: #f0506e; }

/*
 * Insert
 */
ins {
  background: #ffd;
  color: #666;
  text-decoration: none; }

/*
 * Mark
 */
mark {
  background: #ffd;
  color: #666; }

/*
 * Quote
 */
q {
  font-style: italic; }

/*
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%; }

/*
 * Prevents `sub` and `sup` affecting `line-height` in all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* Embedded content
 ========================================================================== */
/*
 * Remove the gap between embedded content and the bottom of their containers.
 */
audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle; }

/*
 * 1. Add responsiveness.
 * 2. Auto-scale the height. Only needed if `height` attribute is present.
 * 3. Corrects responsive `max-width` behavior if padding and border are used.
 * 4. Exclude SVGs for IE11 because they don't preserve their aspect ratio.
 */
canvas,
img,
video {
  /* 1 */
  max-width: 100%;
  /* 2 */
  height: auto;
  /* 3 */
  box-sizing: border-box; }

/* 4 */
@supports (display: block) {
  svg {
    max-width: 100%;
    height: auto;
    box-sizing: border-box; } }

/*
 * Hide the overflow in IE.
 */
svg:not(:root) {
  overflow: hidden; }

/*
 * 1. Fix lazy loading images if parent element is set to `display: inline` and has `overflow: hidden`.
 * 2. Hide `alt` text for lazy loading images.
 * Note: Selector for background while loading img[data-src*='.jpg'][src*='data:image'] { background: grey; }
 */
img:not([src]) {
  /* 1 */
  min-width: 1px;
  /* 2 */
  visibility: hidden; }

/*
 * Iframe
 * Remove border in all browsers
 */
iframe {
  border: 0; }

/* Block elements
 ========================================================================== */
/*
 * Margins
 */
p,
ul,
ol,
dl,
pre,
address,
fieldset,
figure {
  margin: 0 0 20px 0; }

/* Add margin if adjacent element */
* + p,
* + ul,
* + ol,
* + dl,
* + pre,
* + address,
* + fieldset,
* + figure {
  margin-top: 20px; }

/* Headings
 ========================================================================== */
h1, .uk-h1,
h2, .uk-h2,
h3, .uk-h3,
h4, .uk-h4,
h5, .uk-h5,
h6, .uk-h6,
.uk-heading-small,
.uk-heading-medium,
.uk-heading-large,
.uk-heading-xlarge,
.uk-heading-2xlarge {
  margin: 0 0 20px 0;
  font-family: -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";
  font-weight: normal;
  color: #333;
  text-transform: none; }

/* Add margin if adjacent element */
* + h1, * + .uk-h1,
* + h2, * + .uk-h2,
* + h3, * + .uk-h3,
* + h4, * + .uk-h4,
* + h5, * + .uk-h5,
* + h6, * + .uk-h6,
* + .uk-heading-small,
* + .uk-heading-medium,
* + .uk-heading-large,
* + .uk-heading-xlarge,
* + .uk-heading-2xlarge {
  margin-top: 40px; }

/*
 * Sizes
 */
h1, .uk-h1 {
  font-size: 2.23125rem;
  line-height: 1.2; }

h2, .uk-h2 {
  font-size: 1.7rem;
  line-height: 1.3; }

h3, .uk-h3 {
  font-size: 1.5rem;
  line-height: 1.4; }

h4, .uk-h4 {
  font-size: 1.25rem;
  line-height: 1.4; }

h5, .uk-h5 {
  font-size: 16px;
  line-height: 1.4; }

h6, .uk-h6 {
  font-size: 0.875rem;
  line-height: 1.4; }

/* Tablet landscape and bigger */
@media (min-width: 960px) {
  h1, .uk-h1 {
    font-size: 2.625rem; }
  h2, .uk-h2 {
    font-size: 2rem; } }

/* Lists
 ========================================================================== */
ul,
ol {
  padding-left: 30px; }

/*
 * Reset margin for nested lists
 */
ul > li > ul,
ul > li > ol,
ol > li > ol,
ol > li > ul {
  margin: 0; }

/* Description lists
 ========================================================================== */
dt {
  font-weight: bold; }

dd {
  margin-left: 0; }

/* Horizontal rules
 ========================================================================== */
/*
 * 1. Show the overflow in Chrome, Edge and IE.
 * 2. Add the correct text-align in Edge and IE.
 * 3. Style
 */
hr, .uk-hr {
  /* 1 */
  overflow: visible;
  /* 2 */
  text-align: inherit;
  /* 3 */
  margin: 0 0 20px 0;
  border: 0;
  border-top: 1px solid #e5e5e5; }

/* Add margin if adjacent element */
* + hr,
* + .uk-hr {
  margin-top: 20px; }

/* Address
 ========================================================================== */
address {
  font-style: normal; }

/* Blockquotes
 ========================================================================== */
blockquote {
  margin: 0 0 20px 0;
  font-size: 1.25rem;
  line-height: 1.5;
  font-style: italic; }

/* Add margin if adjacent element */
* + blockquote {
  margin-top: 20px; }

/*
 * Content
 */
blockquote p:last-of-type {
  margin-bottom: 0; }

blockquote footer {
  margin-top: 10px;
  font-size: 0.875rem;
  line-height: 1.5; }

/* Preformatted text
 ========================================================================== */
/*
 * 1. Contain overflow in all browsers.
 */
pre {
  font: 0.875rem / 1.5 Consolas, monaco, monospace;
  color: #666;
  -moz-tab-size: 4;
  -o-tab-size: 4;
  tab-size: 4;
  /* 1 */
  overflow: auto; }

pre code {
  font-family: Consolas, monaco, monospace; }

/* Selection pseudo-element
 ========================================================================== */
::-moz-selection {
  background: #39f;
  color: #fff;
  text-shadow: none; }
::selection {
  background: #39f;
  color: #fff;
  text-shadow: none; }

/* HTML5 elements
 ========================================================================== */
/*
 * 1. Add the correct display in Edge, IE 10+, and Firefox.
 * 2. Add the correct display in IE.
 */
details,
main {
  /* 2 */
  display: block; }

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item; }

/*
 * Add the correct display in IE.
 */
template {
  display: none; }

/* Pass media breakpoints to JS
 ========================================================================== */
/*
 * Breakpoints
 */
.uk-breakpoint-s::before {
  content: "640px"; }

.uk-breakpoint-m::before {
  content: "960px"; }

.uk-breakpoint-l::before {
  content: "1200px"; }

.uk-breakpoint-xl::before {
  content: "1600px"; }

:root {
  --uk-breakpoint-s: 640px;
  --uk-breakpoint-m: 960px;
  --uk-breakpoint-l: 1200px;
  --uk-breakpoint-xl: 1600px; }

/* ========================================================================
   Component: Link
 ========================================================================== */
/* Muted
 ========================================================================== */
a.uk-link-muted,
.uk-link-muted a {
  color: #999; }

a.uk-link-muted:hover,
.uk-link-muted a:hover,
.uk-link-toggle:hover .uk-link-muted,
.uk-link-toggle:focus .uk-link-muted {
  color: #666; }

/* Text
 ========================================================================== */
a.uk-link-text,
.uk-link-text a {
  color: inherit; }

a.uk-link-text:hover,
.uk-link-text a:hover,
.uk-link-toggle:hover .uk-link-text,
.uk-link-toggle:focus .uk-link-text {
  color: #999; }

/* Heading
 ========================================================================== */
a.uk-link-heading,
.uk-link-heading a {
  color: inherit; }

a.uk-link-heading:hover,
.uk-link-heading a:hover,
.uk-link-toggle:hover .uk-link-heading,
.uk-link-toggle:focus .uk-link-heading {
  color: #1e87f0;
  text-decoration: none; }

/* Reset
 ========================================================================== */
/*
 * `!important` needed to override inverse component
 */
a.uk-link-reset,
.uk-link-reset a {
  color: inherit !important;
  text-decoration: none !important; }

/* Toggle
 ========================================================================== */
.uk-link-toggle {
  color: inherit !important;
  text-decoration: none !important; }

.uk-link-toggle:focus {
  outline: none; }

/* ========================================================================
   Component: Heading
 ========================================================================== */
.uk-heading-small {
  font-size: 2.6rem;
  line-height: 1.2; }

.uk-heading-medium {
  font-size: 2.8875rem;
  line-height: 1.1; }

.uk-heading-large {
  font-size: 3.4rem;
  line-height: 1.1; }

.uk-heading-xlarge {
  font-size: 4rem;
  line-height: 1; }

.uk-heading-2xlarge {
  font-size: 6rem;
  line-height: 1; }

/* Tablet Landscape and bigger */
@media (min-width: 960px) {
  .uk-heading-small {
    font-size: 3.25rem; }
  .uk-heading-medium {
    font-size: 3.5rem; }
  .uk-heading-large {
    font-size: 4rem; }
  .uk-heading-xlarge {
    font-size: 6rem; }
  .uk-heading-2xlarge {
    font-size: 8rem; } }

/* Laptop and bigger */
@media (min-width: 1200px) {
  .uk-heading-medium {
    font-size: 4rem; }
  .uk-heading-large {
    font-size: 6rem; }
  .uk-heading-xlarge {
    font-size: 8rem; }
  .uk-heading-2xlarge {
    font-size: 11rem; } }

/* Primary
   Deprecated: Use `uk-heading-medium` instead
 ========================================================================== */
/* Tablet landscape and bigger */
/* Desktop and bigger */
/* Hero
   Deprecated: Use `uk-heading-xlarge` instead
 ========================================================================== */
/* Tablet landscape and bigger */
/* Desktop and bigger */
/* Divider
 ========================================================================== */
.uk-heading-divider {
  padding-bottom: calc(5px + 0.1em);
  border-bottom: calc(0.2px + 0.05em) solid #e5e5e5; }

/* Bullet
 ========================================================================== */
.uk-heading-bullet {
  position: relative; }

/*
 * 1. Using `inline-block` to make it work with text alignment
 * 2. Center vertically
 * 3. Style
 */
.uk-heading-bullet::before {
  content: "";
  /* 1 */
  display: inline-block;
  /* 2 */
  position: relative;
  top: calc(-0.1 * 1em);
  vertical-align: middle;
  /* 3 */
  height: calc(4px + 0.7em);
  margin-right: calc(5px + 0.2em);
  border-left: calc(5px + 0.1em) solid #e5e5e5; }

/* Line
 ========================================================================== */
/*
 * Clip the child element
 */
.uk-heading-line {
  overflow: hidden; }

/*
 * Extra markup is needed to make it work with text align
 */
.uk-heading-line > * {
  display: inline-block;
  position: relative; }

/*
 * 1. Center vertically
 * 2. Make the element as large as possible. It's clipped by the container.
 * 3. Style
 */
.uk-heading-line > ::before,
.uk-heading-line > ::after {
  content: "";
  /* 1 */
  position: absolute;
  top: calc(50% - (calc(0.2px + 0.05em) / 2));
  /* 2 */
  width: 2000px;
  /* 3 */
  border-bottom: calc(0.2px + 0.05em) solid #e5e5e5; }

.uk-heading-line > ::before {
  right: 100%;
  margin-right: calc(5px + 0.3em); }

.uk-heading-line > ::after {
  left: 100%;
  margin-left: calc(5px + 0.3em); }

/* ========================================================================
   Component: Divider
 ========================================================================== */
/*
 * 1. Reset default `hr`
 * 2. Set margin if a `div` is used for semantical reason
 */
[class*='uk-divider'] {
  /* 1 */
  border: none;
  /* 2 */
  margin-bottom: 20px; }

/* Add margin if adjacent element */
* + [class*='uk-divider'] {
  margin-top: 20px; }

/* Icon
 ========================================================================== */
.uk-divider-icon {
  position: relative;
  height: 20px;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22none%22%20stroke%3D%22%23e5e5e5%22%20stroke-width%3D%222%22%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%227%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
  background-repeat: no-repeat;
  background-position: 50% 50%; }

.uk-divider-icon::before,
.uk-divider-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  max-width: calc(50% - (50px / 2));
  border-bottom: 1px solid #e5e5e5; }

.uk-divider-icon::before {
  right: calc(50% + (50px / 2));
  width: 100%; }

.uk-divider-icon::after {
  left: calc(50% + (50px / 2));
  width: 100%; }

/* Small
 ========================================================================== */
/*
 * 1. Fix height because of `inline-block`
 * 2. Using ::after and inline-block to make `text-align` work
 */
/* 1 */
.uk-divider-small {
  line-height: 0; }

/* 2 */
.uk-divider-small::after {
  content: "";
  display: inline-block;
  width: 100px;
  max-width: 100%;
  border-top: 1px solid #e5e5e5;
  vertical-align: top; }

/* Vertical
 ========================================================================== */
.uk-divider-vertical {
  width: 1px;
  height: 100px;
  margin-left: auto;
  margin-right: auto;
  border-left: 1px solid #e5e5e5; }

/* ========================================================================
   Component: List
 ========================================================================== */
.uk-list {
  padding: 0;
  list-style: none; }

/*
 * Micro clearfix
 */
.uk-list > li::before,
.uk-list > li::after {
  content: "";
  display: table; }

.uk-list > li::after {
  clear: both; }

/*
 * Remove margin from the last-child
 */
.uk-list > li > :last-child {
  margin-bottom: 0; }

/*
 * Nested lists
 */
.uk-list ul {
  margin: 0;
  padding-left: 30px;
  list-style: none; }

/*
 * Style
 */
.uk-list > li:nth-child(n+2),
.uk-list > li > ul {
  margin-top: 10px; }

/* Style modifiers
 ========================================================================== */
/*
 * Divider
 */
.uk-list-divider > li:nth-child(n+2) {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #e5e5e5; }

/*
 * Striped
 */
.uk-list-striped > li {
  padding: 10px 10px; }

.uk-list-striped > li:nth-of-type(odd) {
  background: #f8f8f8; }

.uk-list-striped > li:nth-child(n+2) {
  margin-top: 0; }

/*
 * Bullet
 * 1. Reset display `table` which causes issues in combination with multi column layouts.
 */
.uk-list-bullet > li {
  position: relative;
  padding-left: calc(1.5em + 10px); }

.uk-list-bullet > li::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 1.5em;
  height: 1.5em;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%226%22%20height%3D%226%22%20viewBox%3D%220%200%206%206%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%23666%22%20cx%3D%223%22%20cy%3D%223%22%20r%3D%223%22%20%2F%3E%0A%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-position: 50% 50%;
  /* 1 */
  display: block; }

/* Size modifier
 ========================================================================== */
.uk-list-large > li:nth-child(n+2),
.uk-list-large > li > ul {
  margin-top: 20px; }

/*
 * Divider
 */
.uk-list-large.uk-list-divider > li:nth-child(n+2) {
  margin-top: 20px;
  padding-top: 20px; }

/*
 * Striped
 */
.uk-list-large.uk-list-striped > li {
  padding: 20px 10px; }

.uk-list-large.uk-list-striped > li:nth-child(n+2) {
  margin-top: 0; }

/* ========================================================================
   Component: Icon
 ========================================================================== */
/*
 * Note: 1. - 7. is required for `button` elements. Needed for Close and Form Icon component.
 * 1. Remove margins in Chrome, Safari and Opera.
 * 2. Remove borders for `button`.
 * 3. Remove border-radius in Chrome.
 * 4. Address `overflow` set to `hidden` in IE.
 * 5. Correct `font` properties and `color` not being inherited for `button`.
 * 6. Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 7. Remove default `button` padding and background color
 * 8. Style
 * 9. Fill all SVG elements with the current text color if no `fill` attribute is set
 * 10. Let the container fit the height of the icon
 */
.uk-icon {
  /* 1 */
  margin: 0;
  /* 2 */
  border: none;
  /* 3 */
  border-radius: 0;
  /* 4 */
  overflow: visible;
  /* 5 */
  font: inherit;
  color: inherit;
  /* 6 */
  text-transform: none;
  /* 7. */
  padding: 0;
  background-color: transparent;
  /* 8 */
  display: inline-block;
  /* 9 */
  fill: currentcolor;
  /* 10 */
  line-height: 0; }

/* Required for `button`. */
button.uk-icon:not(:disabled) {
  cursor: pointer; }

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

/*
 * Set the fill and stroke color of all SVG elements to the current text color
 */
.uk-icon:not(.uk-preserve) [fill*='#']:not(.uk-preserve) {
  fill: currentcolor; }

.uk-icon:not(.uk-preserve) [stroke*='#']:not(.uk-preserve) {
  stroke: currentcolor; }

/*
 * Fix Firefox blurry SVG rendering: https://bugzilla.mozilla.org/show_bug.cgi?id=1046835
 */
.uk-icon > * {
  transform: translate(0, 0); }

/* Image modifier
 ========================================================================== */
/*
 * Display images in icon dimensions
 */
.uk-icon-image {
  width: 20px;
  height: 20px;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: middle; }

/* Style modifiers
 ========================================================================== */
/*
 * Link
 */
.uk-icon-link {
  color: #999; }

.uk-icon-link:hover,
.uk-icon-link:focus {
  color: #666;
  outline: none; }

/* OnClick + Active */
.uk-icon-link:active,
.uk-active > .uk-icon-link {
  color: #595959; }

/*
 * Button
 * 1. Center icon vertically and horizontally
 */
.uk-icon-button {
  box-sizing: border-box;
  width: 36px;
  height: 36px;
  border-radius: 500px;
  background: #f8f8f8;
  color: #999;
  vertical-align: middle;
  /* 1 */
  display: inline-flex;
  justify-content: center;
  align-items: center; }

/* Hover + Focus */
.uk-icon-button:hover,
.uk-icon-button:focus {
  background-color: #ebebeb;
  color: #666;
  outline: none; }

/* OnClick + Active */
.uk-icon-button:active,
.uk-active > .uk-icon-button {
  background-color: #dfdfdf;
  color: #666; }

/* ========================================================================
   Component: Form
 ========================================================================== */
/*
 * 1. Define consistent box sizing.
 *    Default is `content-box` with following exceptions set to `border-box`
 *    `select`, `input[type="checkbox"]` and `input[type="radio"]`
 *    `input[type="search"]` in Chrome, Safari and Opera
 *    `input[type="color"]` in Firefox
 * 2. Address margins set differently in Firefox/IE and Chrome/Safari/Opera.
 * 3. Remove `border-radius` in iOS.
 * 4. Change font properties to `inherit` in all browsers.
 */
.uk-input,
.uk-select,
.uk-textarea,
.uk-radio,
.uk-checkbox {
  /* 1 */
  box-sizing: border-box;
  /* 2 */
  margin: 0;
  /* 3 */
  border-radius: 0;
  /* 4 */
  font: inherit; }

/*
 * Show the overflow in Edge.
 */
.uk-input {
  overflow: visible; }

/*
 * Remove the inheritance of text transform in Firefox.
 */
.uk-select {
  text-transform: none; }

/*
 * 1. Change font properties to `inherit` in all browsers
 * 2. Don't inherit the `font-weight` and use `bold` instead.
 * NOTE: Both declarations don't work in Chrome, Safari and Opera.
 */
.uk-select optgroup {
  /* 1 */
  font: inherit;
  /* 2 */
  font-weight: bold; }

/*
 * Remove the default vertical scrollbar in IE 10+.
 */
.uk-textarea {
  overflow: auto; }

/*
 * Remove the inner padding and cancel buttons in Chrome on OS X and Safari on OS X.
 */
.uk-input[type="search"]::-webkit-search-cancel-button,
.uk-input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/*
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
.uk-input[type="number"]::-webkit-inner-spin-button,
.uk-input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/*
 * Removes placeholder transparency in Firefox.
 */
.uk-input::-moz-placeholder,
.uk-textarea::-moz-placeholder {
  opacity: 1; }

/*
 * Improves consistency of cursor style for clickable elements
 */
.uk-radio:not(:disabled),
.uk-checkbox:not(:disabled) {
  cursor: pointer; }

/*
 * Define consistent border, margin, and padding.
 */
.uk-fieldset {
  border: none;
  margin: 0;
  padding: 0; }

/* Input, select and textarea
 * Allowed: `text`, `password`, `datetime`, `datetime-local`, `date`,  `month`,
            `time`, `week`, `number`, `email`, `url`, `search`, `tel`, `color`
 * Disallowed: `range`, `radio`, `checkbox`, `file`, `submit`, `reset` and `image`
 ========================================================================== */
/*
 * Remove default style in iOS.
 */
.uk-input,
.uk-textarea {
  -webkit-appearance: none; }

/*
 * 1. Prevent content overflow if a fixed width is used
 * 2. Take the full width
 * 3. Reset default
 * 4. Style
 */
.uk-input,
.uk-select,
.uk-textarea {
  /* 1 */
  max-width: 100%;
  /* 2 */
  width: 100%;
  /* 3 */
  border: 0 none;
  /* 4 */
  padding: 0 10px;
  background: #f8f8f8;
  color: #666; }

/*
 * Single-line
 * 1. Allow any element to look like an `input` or `select` element
 * 2. Make sure line-height is not larger than height
 *    Also needed to center the text vertically
 */
.uk-input,
.uk-select:not([multiple]):not([size]) {
  height: 40px;
  vertical-align: middle;
  /* 1 */
  display: inline-block; }

/* 2 */
.uk-input:not(input),
.uk-select:not(select) {
  line-height: 40px; }

/*
 * Multi-line
 */
.uk-select[multiple],
.uk-select[size],
.uk-textarea {
  padding-top: 4px;
  padding-bottom: 4px;
  vertical-align: top; }

/* Focus */
.uk-input:focus,
.uk-select:focus,
.uk-textarea:focus {
  outline: none;
  background-color: #f8f8f8;
  color: #666; }

/* Disabled */
.uk-input:disabled,
.uk-select:disabled,
.uk-textarea:disabled {
  background-color: #f8f8f8;
  color: #999; }

/*
 * Placeholder
 */
.uk-input::-ms-input-placeholder {
  color: #999 !important; }

.uk-input::-webkit-input-placeholder {
  color: #999; }

.uk-input::-moz-placeholder {
  color: #999; }

.uk-input:-ms-input-placeholder {
  color: #999; }

.uk-input::placeholder {
  color: #999; }

.uk-textarea::-ms-input-placeholder {
  color: #999 !important; }

.uk-textarea::-webkit-input-placeholder {
  color: #999; }

.uk-textarea::-moz-placeholder {
  color: #999; }

.uk-textarea:-ms-input-placeholder {
  color: #999; }

.uk-textarea::placeholder {
  color: #999; }

/* Style modifier (`uk-input`, `uk-select` and `uk-textarea`)
 ========================================================================== */
/*
 * Small
 */
.uk-form-small {
  font-size: 0.875rem; }

.uk-form-small:not(textarea):not([multiple]):not([size]) {
  height: 30px;
  padding-left: 8px;
  padding-right: 8px; }

.uk-form-small:not(select):not(input):not(textarea) {
  line-height: 30px; }

/*
 * Large
 */
.uk-form-large {
  font-size: 1.25rem; }

.uk-form-large:not(textarea):not([multiple]):not([size]) {
  height: 55px;
  padding-left: 12px;
  padding-right: 12px; }

.uk-form-large:not(select):not(input):not(textarea) {
  line-height: 55px; }

/* Style modifier (`uk-input`, `uk-select` and `uk-textarea`)
 ========================================================================== */
/*
 * Error
 */
.uk-form-danger,
.uk-form-danger:focus {
  color: #f0506e; }

/*
 * Success
 */
.uk-form-success,
.uk-form-success:focus {
  color: #32d296; }

/*
 * Blank
 */
.uk-form-blank {
  background: none; }

/* Width modifiers (`uk-input`, `uk-select` and `uk-textarea`)
 ========================================================================== */
/*
 * Fixed widths
 * Different widths for mini sized `input` and `select` elements
 */
input.uk-form-width-xsmall {
  width: 50px; }

select.uk-form-width-xsmall {
  width: 75px; }

.uk-form-width-small {
  width: 130px; }

.uk-form-width-medium {
  width: 200px; }

.uk-form-width-large {
  width: 500px; }

/* Select
 ========================================================================== */
/*
 * 1. Remove default style. Also works in Firefox
 * 2. Style
 * 3. Remove default style in IE 10/11
 * 4. Set `color` for options in the select dropdown, because the inherited `color` might be too light.
 */
.uk-select:not([multiple]):not([size]) {
  /* 1 */
  -webkit-appearance: none;
  -moz-appearance: none;
  /* 2 */
  padding-right: 20px;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23666%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23666%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
  background-repeat: no-repeat;
  background-position: 100% 50%; }

/* 3 */
.uk-select:not([multiple]):not([size])::-ms-expand {
  display: none; }

/* 4 */
.uk-select:not([multiple]):not([size]) option {
  color: #444; }

/*
 * Disabled
 */
.uk-select:not([multiple]):not([size]):disabled {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23999%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23999%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A"); }

/* Datalist
 ========================================================================== */
/*
 * 1. Remove default style in Chrome
 */
.uk-input[list] {
  padding-right: 20px;
  background-repeat: no-repeat;
  background-position: 100% 50%; }

.uk-input[list]:hover,
.uk-input[list]:focus {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23666%22%20points%3D%2212%2012%208%206%2016%206%22%20%2F%3E%0A%3C%2Fsvg%3E%0A"); }

/* 1 */
.uk-input[list]::-webkit-calendar-picker-indicator {
  display: none; }

/* Radio and checkbox
 * Note: Does not work in IE11
 ========================================================================== */
/*
 * 1. Style
 * 2. Make box more robust so it clips the child element
 * 3. Vertical alignment
 * 4. Remove default style
 * 5. Fix black background on iOS
 * 6. Center icons
 */
.uk-radio,
.uk-checkbox {
  /* 1 */
  display: inline-block;
  height: 16px;
  width: 16px;
  /* 2 */
  overflow: hidden;
  /* 3 */
  margin-top: -4px;
  vertical-align: middle;
  /* 4 */
  -webkit-appearance: none;
  -moz-appearance: none;
  /* 5 */
  background-color: #ebebeb;
  /* 6 */
  background-repeat: no-repeat;
  background-position: 50% 50%; }

.uk-radio {
  border-radius: 50%; }

/* Focus */
.uk-radio:focus,
.uk-checkbox:focus {
  outline: none; }

/*
 * Checked
 */
.uk-radio:checked,
.uk-checkbox:checked,
.uk-checkbox:indeterminate {
  background-color: #1e87f0; }

/* Focus */
.uk-radio:checked:focus,
.uk-checkbox:checked:focus,
.uk-checkbox:indeterminate:focus {
  background-color: #0e6ecd; }

/*
 * Icons
 */
.uk-radio:checked {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%23fff%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E"); }

.uk-checkbox:checked {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23fff%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A"); }

.uk-checkbox:indeterminate {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23fff%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E"); }

/*
 * Disabled
 */
.uk-radio:disabled,
.uk-checkbox:disabled {
  background-color: #f8f8f8; }

.uk-radio:disabled:checked {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%23999%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E"); }

.uk-checkbox:disabled:checked {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23999%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A"); }

.uk-checkbox:disabled:indeterminate {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23999%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E"); }

/* Legend
 ========================================================================== */
/*
 * Legend
 * 1. Behave like block element
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove padding so people aren't caught out if they zero out fieldsets.
 * 4. Style
 */
.uk-legend {
  /* 1 */
  width: 100%;
  /* 2 */
  color: inherit;
  /* 3 */
  padding: 0;
  /* 4 */
  font-size: 1.5rem;
  line-height: 1.4; }

/* Custom controls
 ========================================================================== */
/*
 * 1. Container fits its content
 * 2. Create position context
 * 3. Prevent content overflow
 * 4. Behave like most inline-block elements
 */
.uk-form-custom {
  /* 1 */
  display: inline-block;
  /* 2 */
  position: relative;
  /* 3 */
  max-width: 100%;
  /* 4 */
  vertical-align: middle; }

/*
 * 1. Position and resize the form control to always cover its container
 * 2. Required for Firefox for positioning to the left
 * 3. Required for Webkit to make `height` work
 * 4. Hide controle and show cursor
 * 5. Needed for the cursor
 * 6. Clip height caused by 5. Needed for Webkit only
 */
.uk-form-custom select,
.uk-form-custom input[type="file"] {
  /* 1 */
  position: absolute;
  top: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  /* 2 */
  left: 0;
  /* 3 */
  -webkit-appearance: none;
  /* 4 */
  opacity: 0;
  cursor: pointer; }

.uk-form-custom input[type="file"] {
  /* 5 */
  font-size: 500px;
  /* 6 */
  overflow: hidden; }

/* Label
 ========================================================================== */
/* Layout
 ========================================================================== */
/*
 * Stacked
 */
.uk-form-stacked .uk-form-label {
  display: block;
  margin-bottom: 10px; }

/*
 * Horizontal
 */
/* Tablet portrait and smaller */
@media (max-width: 959px) {
  /* Behave like `uk-form-stacked` */
  .uk-form-horizontal .uk-form-label {
    display: block;
    margin-bottom: 10px; } }

/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-form-horizontal .uk-form-label {
    width: 200px;
    margin-top: 7px;
    float: left; }
  .uk-form-horizontal .uk-form-controls {
    margin-left: 215px; }
  /* Better vertical alignment if controls are checkboxes and radio buttons with text */
  .uk-form-horizontal .uk-form-controls-text {
    padding-top: 7px; } }

/* Icons
 ========================================================================== */
/*
 * 1. Set position
 * 2. Set width
 * 3. Center icon vertically and horizontally
 * 4. Style
 */
.uk-form-icon {
  /* 1 */
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  /* 2 */
  width: 40px;
  /* 3 */
  display: inline-flex;
  justify-content: center;
  align-items: center;
  /* 4 */
  color: #999; }

/*
 * Required for `a`.
 */
.uk-form-icon:hover {
  color: #666; }

/*
 * Make `input` element clickable through icon, e.g. if it's a `span`
 */
.uk-form-icon:not(a):not(button):not(input) {
  pointer-events: none; }

/*
 * Input padding
 */
.uk-form-icon:not(.uk-form-icon-flip) ~ .uk-input {
  padding-left: 40px !important; }

/*
 * Position modifier
 */
.uk-form-icon-flip {
  right: 0;
  left: auto; }

.uk-form-icon-flip ~ .uk-input {
  padding-right: 40px !important; }

/* ========================================================================
   Component: Button
 ========================================================================== */
/*
 * 1. Remove margins in Chrome, Safari and Opera.
 * 2. Remove borders for `button`.
 * 3. Address `overflow` set to `hidden` in IE.
 * 4. Correct `font` properties and `color` not being inherited for `button`.
 * 5. Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 6. Style
 * 7. `line-height` is used to create a height because it also centers the text vertically for `a` elements.
 *    Better would be to use height and flexbox to center the text vertically but flexbox doesn't work in Firefox on `button` elements.
 * 8. Align text if button has a width
 * 9. Required for `a`.
 */
.uk-button {
  /* 1 */
  margin: 0;
  /* 2 */
  border: none;
  /* 3 */
  overflow: visible;
  /* 4 */
  font: inherit;
  color: inherit;
  /* 5 */
  text-transform: none;
  /* 6 */
  display: inline-block;
  box-sizing: border-box;
  padding: 0 30px;
  vertical-align: middle;
  font-size: 16px;
  /* 7 */
  line-height: 40px;
  /* 8 */
  text-align: center;
  /* 9 */
  text-decoration: none; }

.uk-button:not(:disabled) {
  cursor: pointer; }

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

/* Hover */
.uk-button:hover {
  /* 9 */
  text-decoration: none; }

/* Focus */
.uk-button:focus {
  outline: none; }

/* OnClick + Active */
/* Style modifiers
 ========================================================================== */
/*
 * Default
 */
.uk-button-default {
  background-color: #f8f8f8;
  color: #333; }

/* Hover + Focus */
.uk-button-default:hover,
.uk-button-default:focus {
  background-color: #ebebeb;
  color: #333; }

/* OnClick + Active */
.uk-button-default:active,
.uk-button-default.uk-active {
  background-color: #dfdfdf;
  color: #333; }

/*
 * Primary
 */
.uk-button-primary {
  background-color: #1e87f0;
  color: #fff; }

/* Hover + Focus */
.uk-button-primary:hover,
.uk-button-primary:focus {
  background-color: #0f7ae5;
  color: #fff; }

/* OnClick + Active */
.uk-button-primary:active,
.uk-button-primary.uk-active {
  background-color: #0e6ecd;
  color: #fff; }

/*
 * Secondary
 */
.uk-button-secondary {
  background-color: #222;
  color: #fff; }

/* Hover + Focus */
.uk-button-secondary:hover,
.uk-button-secondary:focus {
  background-color: #151515;
  color: #fff; }

/* OnClick + Active */
.uk-button-secondary:active,
.uk-button-secondary.uk-active {
  background-color: #090909;
  color: #fff; }

/*
 * Danger
 */
.uk-button-danger {
  background-color: #f0506e;
  color: #fff; }

/* Hover + Focus */
.uk-button-danger:hover,
.uk-button-danger:focus {
  background-color: #ee395b;
  color: #fff; }

/* OnClick + Active */
.uk-button-danger:active,
.uk-button-danger.uk-active {
  background-color: #ec2147;
  color: #fff; }

/*
 * Disabled
 * The same for all style modifiers
 */
.uk-button-default:disabled,
.uk-button-primary:disabled,
.uk-button-secondary:disabled,
.uk-button-danger:disabled {
  background-color: #f8f8f8;
  color: #999; }

/* Size modifiers
 ========================================================================== */
.uk-button-small {
  padding: 0 15px;
  line-height: 30px;
  font-size: 0.875rem; }

.uk-button-large {
  padding: 0 40px;
  line-height: 55px;
  font-size: 1.25rem; }

/* Text modifiers
 ========================================================================== */
/*
 * Text
 * 1. Reset
 * 2. Style
 */
.uk-button-text {
  /* 1 */
  padding: 0;
  line-height: 1.5;
  background: none;
  /* 2 */
  color: #999; }

/* Hover + Focus */
.uk-button-text:hover,
.uk-button-text:focus {
  color: #666; }

/* Disabled */
.uk-button-text:disabled {
  color: #999; }

/*
 * Link
 * 1. Reset
 * 2. Style
 */
.uk-button-link {
  /* 1 */
  padding: 0;
  line-height: 1.5;
  background: none;
  /* 2 */
  color: #1e87f0; }

/* Hover + Focus */
.uk-button-link:hover,
.uk-button-link:focus {
  color: #0f6ecd;
  text-decoration: underline; }

/* Disabled */
.uk-button-link:disabled {
  color: #999;
  text-decoration: none; }

/* Group
 ========================================================================== */
/*
 * 1. Using `flex` instead of `inline-block` to prevent whitespace betweent child elements
 * 2. Behave like button
 * 3. Create position context
 */
.uk-button-group {
  /* 1 */
  display: inline-flex;
  /* 2 */
  vertical-align: middle;
  /* 3 */
  position: relative; }

/* ========================================================================
   Component: Section
 ========================================================================== */
/*
 * 1. Make it work with `100vh` and height in general
 */
.uk-section {
  box-sizing: border-box;
  /* 1 */
  padding-top: 40px;
  padding-bottom: 40px; }

/* Desktop and bigger */
@media (min-width: 960px) {
  .uk-section {
    padding-top: 70px;
    padding-bottom: 70px; } }

/*
 * Micro clearfix
 */
.uk-section::before,
.uk-section::after {
  content: "";
  display: table; }

.uk-section::after {
  clear: both; }

/*
 * Remove margin from the last-child
 */
.uk-section > :last-child {
  margin-bottom: 0; }

/* Size modifiers
 ========================================================================== */
/*
 * XSmall
 */
.uk-section-xsmall {
  padding-top: 20px;
  padding-bottom: 20px; }

/*
 * Small
 */
.uk-section-small {
  padding-top: 40px;
  padding-bottom: 40px; }

/*
 * Large
 */
.uk-section-large {
  padding-top: 70px;
  padding-bottom: 70px; }

/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-section-large {
    padding-top: 140px;
    padding-bottom: 140px; } }

/*
 * XLarge
 */
.uk-section-xlarge {
  padding-top: 140px;
  padding-bottom: 140px; }

/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-section-xlarge {
    padding-top: 210px;
    padding-bottom: 210px; } }

/* Style modifiers
 ========================================================================== */
/*
 * Default
 */
.uk-section-default {
  background: #fff; }

/*
 * Muted
 */
.uk-section-muted {
  background: #f8f8f8; }

/*
 * Primary
 */
.uk-section-primary {
  background: #1e87f0; }

/*
 * Secondary
 */
.uk-section-secondary {
  background: #222; }

/* Overlap modifier
 ========================================================================== */
/*
 * Reserved modifier to make a section overlap another section with an border image
 * Implemented by the theme
 */
/* ========================================================================
   Component: Container
 ========================================================================== */
/*
 * 1. Box sizing has to be `content-box` so the max-width is always the same and
 *    unaffected by the padding on different breakpoints. It's important for the size modifiers.
 */
.uk-container {
  /* 1 */
  box-sizing: content-box;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 15px;
  padding-right: 15px; }

/* Phone landscape and bigger */
@media (min-width: 640px) {
  .uk-container {
    padding-left: 30px;
    padding-right: 30px; } }

/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-container {
    padding-left: 40px;
    padding-right: 40px; } }

/*
 * Micro clearfix
 */
.uk-container::before,
.uk-container::after {
  content: "";
  display: table; }

.uk-container::after {
  clear: both; }

/*
 * Remove margin from the last-child
 */
.uk-container > :last-child {
  margin-bottom: 0; }

/*
 * Remove padding from nested containers
 */
.uk-container .uk-container {
  padding-left: 0;
  padding-right: 0; }

/* Size modifier
 ========================================================================== */
.uk-container-xsmall {
  max-width: 750px; }

.uk-container-small {
  max-width: 900px; }

.uk-container-large {
  max-width: 1600px; }

.uk-container-expand {
  max-width: none; }

/* Expand modifier
 ========================================================================== */
/*
 * Expand one side only
 */
.uk-container-expand-left {
  margin-left: 0; }

.uk-container-expand-right {
  margin-right: 0; }

/* Phone landscape and bigger */
@media (min-width: 640px) {
  .uk-container-expand-left.uk-container-xsmall,
  .uk-container-expand-right.uk-container-xsmall {
    max-width: calc(50% + (750px / 2) - 30px); }
  .uk-container-expand-left.uk-container-small,
  .uk-container-expand-right.uk-container-small {
    max-width: calc(50% + (900px / 2) - 30px); } }

/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-container-expand-left,
  .uk-container-expand-right {
    max-width: calc(50% + (1200px / 2) - 40px); }
  .uk-container-expand-left.uk-container-xsmall,
  .uk-container-expand-right.uk-container-xsmall {
    max-width: calc(50% + (750px / 2) - 40px); }
  .uk-container-expand-left.uk-container-small,
  .uk-container-expand-right.uk-container-small {
    max-width: calc(50% + (900px / 2) - 40px); }
  .uk-container-expand-left.uk-container-large,
  .uk-container-expand-right.uk-container-large {
    max-width: calc(50% + (1600px / 2) - 40px); } }

/* Item
 ========================================================================== */
/*
 * Utility classes to reset container padding on the left or right side
 * Note: It has to be negative margin on the item, because it's specific to the item.
 */
.uk-container-item-padding-remove-left,
.uk-container-item-padding-remove-right {
  width: calc(100% + 15px); }

.uk-container-item-padding-remove-left {
  margin-left: -15px; }

.uk-container-item-padding-remove-right {
  margin-right: -15px; }

/* Phone landscape and bigger */
@media (min-width: 640px) {
  .uk-container-item-padding-remove-left,
  .uk-container-item-padding-remove-right {
    width: calc(100% + 30px); }
  .uk-container-item-padding-remove-left {
    margin-left: -30px; }
  .uk-container-item-padding-remove-right {
    margin-right: -30px; } }

/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-container-item-padding-remove-left,
  .uk-container-item-padding-remove-right {
    width: calc(100% + 40px); }
  .uk-container-item-padding-remove-left {
    margin-left: -40px; }
  .uk-container-item-padding-remove-right {
    margin-right: -40px; } }

/* ========================================================================
   Component: Grid
 ========================================================================== */
/*
 * 1. Allow cells to wrap into the next line
 * 2. Reset list
 */
.uk-grid {
  display: flex;
  /* 1 */
  flex-wrap: wrap;
  /* 2 */
  margin: 0;
  padding: 0;
  list-style: none; }

/*
 * Grid cell
 * Note: Space is allocated solely based on content dimensions, but shrinks: 0 1 auto
 * Reset margin for e.g. paragraphs
 */
.uk-grid > * {
  margin: 0; }

/*
 * Remove margin from the last-child
 */
.uk-grid > * > :last-child {
  margin-bottom: 0; }

/* Gutter
 ========================================================================== */
/*
 * Default
 */
/* Horizontal */
.uk-grid {
  margin-left: -30px; }

.uk-grid > * {
  padding-left: 30px; }

/* Vertical */
.uk-grid + .uk-grid,
.uk-grid > .uk-grid-margin,
* + .uk-grid-margin {
  margin-top: 30px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  /* Horizontal */
  .uk-grid {
    margin-left: -40px; }
  .uk-grid > * {
    padding-left: 40px; }
  /* Vertical */
  .uk-grid + .uk-grid,
  .uk-grid > .uk-grid-margin,
  * + .uk-grid-margin {
    margin-top: 40px; } }

/*
 * Small
 */
/* Horizontal */
.uk-grid-small,
.uk-grid-column-small {
  margin-left: -15px; }

.uk-grid-small > *,
.uk-grid-column-small > * {
  padding-left: 15px; }

/* Vertical */
.uk-grid + .uk-grid-small,
.uk-grid + .uk-grid-row-small,
.uk-grid-small > .uk-grid-margin,
.uk-grid-row-small > .uk-grid-margin,
* + .uk-grid-margin-small {
  margin-top: 15px; }

/*
 * Medium
 */
/* Horizontal */
.uk-grid-medium,
.uk-grid-column-medium {
  margin-left: -30px; }

.uk-grid-medium > *,
.uk-grid-column-medium > * {
  padding-left: 30px; }

/* Vertical */
.uk-grid + .uk-grid-medium,
.uk-grid + .uk-grid-row-medium,
.uk-grid-medium > .uk-grid-margin,
.uk-grid-row-medium > .uk-grid-margin,
* + .uk-grid-margin-medium {
  margin-top: 30px; }

/*
 * Large
 */
/* Horizontal */
.uk-grid-large,
.uk-grid-column-large {
  margin-left: -40px; }

.uk-grid-large > *,
.uk-grid-column-large > * {
  padding-left: 40px; }

/* Vertical */
.uk-grid + .uk-grid-large,
.uk-grid + .uk-grid-row-large,
.uk-grid-large > .uk-grid-margin,
.uk-grid-row-large > .uk-grid-margin,
* + .uk-grid-margin-large {
  margin-top: 40px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  /* Horizontal */
  .uk-grid-large,
  .uk-grid-column-large {
    margin-left: -70px; }
  .uk-grid-large > *,
  .uk-grid-column-large > * {
    padding-left: 70px; }
  /* Vertical */
  .uk-grid + .uk-grid-large,
  .uk-grid + .uk-grid-row-large,
  .uk-grid-large > .uk-grid-margin,
  .uk-grid-row-large > .uk-grid-margin,
  * + .uk-grid-margin-large {
    margin-top: 70px; } }

/*
 * Collapse
 */
/* Horizontal */
.uk-grid-collapse,
.uk-grid-column-collapse {
  margin-left: 0; }

.uk-grid-collapse > *,
.uk-grid-column-collapse > * {
  padding-left: 0; }

/* Vertical */
.uk-grid + .uk-grid-collapse,
.uk-grid + .uk-grid-row-collapse,
.uk-grid-collapse > .uk-grid-margin,
.uk-grid-row-collapse > .uk-grid-margin {
  margin-top: 0; }

/* Divider
 ========================================================================== */
.uk-grid-divider > * {
  position: relative; }

.uk-grid-divider > :not(.uk-first-column)::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  border-left: 1px solid #e5e5e5; }

/* Vertical */
.uk-grid-divider.uk-grid-stack > .uk-grid-margin::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  border-top: 1px solid #e5e5e5; }

/*
 * Default
 */
/* Horizontal */
.uk-grid-divider {
  margin-left: -60px; }

.uk-grid-divider > * {
  padding-left: 60px; }

.uk-grid-divider > :not(.uk-first-column)::before {
  left: 30px; }

/* Vertical */
.uk-grid-divider.uk-grid-stack > .uk-grid-margin {
  margin-top: 60px; }

.uk-grid-divider.uk-grid-stack > .uk-grid-margin::before {
  top: -30px;
  left: 60px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  /* Horizontal */
  .uk-grid-divider {
    margin-left: -80px; }
  .uk-grid-divider > * {
    padding-left: 80px; }
  .uk-grid-divider > :not(.uk-first-column)::before {
    left: 40px; }
  /* Vertical */
  .uk-grid-divider.uk-grid-stack > .uk-grid-margin {
    margin-top: 80px; }
  .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before {
    top: -40px;
    left: 80px; } }

/*
 * Small
 */
/* Horizontal */
.uk-grid-divider.uk-grid-small,
.uk-grid-divider.uk-grid-column-small {
  margin-left: -30px; }

.uk-grid-divider.uk-grid-small > *,
.uk-grid-divider.uk-grid-column-small > * {
  padding-left: 30px; }

.uk-grid-divider.uk-grid-small > :not(.uk-first-column)::before,
.uk-grid-divider.uk-grid-column-small > :not(.uk-first-column)::before {
  left: 15px; }

/* Vertical */
.uk-grid-divider.uk-grid-small.uk-grid-stack > .uk-grid-margin,
.uk-grid-divider.uk-grid-row-small.uk-grid-stack > .uk-grid-margin {
  margin-top: 30px; }

.uk-grid-divider.uk-grid-small.uk-grid-stack > .uk-grid-margin::before {
  top: -15px;
  left: 30px; }

.uk-grid-divider.uk-grid-row-small.uk-grid-stack > .uk-grid-margin::before {
  top: -15px; }

.uk-grid-divider.uk-grid-column-small.uk-grid-stack > .uk-grid-margin::before {
  left: 30px; }

/*
 * Medium
 */
/* Horizontal */
.uk-grid-divider.uk-grid-medium,
.uk-grid-divider.uk-grid-column-medium {
  margin-left: -60px; }

.uk-grid-divider.uk-grid-medium > *,
.uk-grid-divider.uk-grid-column-medium > * {
  padding-left: 60px; }

.uk-grid-divider.uk-grid-medium > :not(.uk-first-column)::before,
.uk-grid-divider.uk-grid-column-medium > :not(.uk-first-column)::before {
  left: 30px; }

/* Vertical */
.uk-grid-divider.uk-grid-medium.uk-grid-stack > .uk-grid-margin,
.uk-grid-divider.uk-grid-row-medium.uk-grid-stack > .uk-grid-margin {
  margin-top: 60px; }

.uk-grid-divider.uk-grid-medium.uk-grid-stack > .uk-grid-margin::before {
  top: -30px;
  left: 60px; }

.uk-grid-divider.uk-grid-row-medium.uk-grid-stack > .uk-grid-margin::before {
  top: -30px; }

.uk-grid-divider.uk-grid-column-medium.uk-grid-stack > .uk-grid-margin::before {
  left: 60px; }

/*
 * Large
 */
/* Horizontal */
.uk-grid-divider.uk-grid-large,
.uk-grid-divider.uk-grid-column-large {
  margin-left: -80px; }

.uk-grid-divider.uk-grid-large > *,
.uk-grid-divider.uk-grid-column-large > * {
  padding-left: 80px; }

.uk-grid-divider.uk-grid-large > :not(.uk-first-column)::before,
.uk-grid-divider.uk-grid-column-large > :not(.uk-first-column)::before {
  left: 40px; }

/* Vertical */
.uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin,
.uk-grid-divider.uk-grid-row-large.uk-grid-stack > .uk-grid-margin {
  margin-top: 80px; }

.uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin::before {
  top: -40px;
  left: 80px; }

.uk-grid-divider.uk-grid-row-large.uk-grid-stack > .uk-grid-margin::before {
  top: -40px; }

.uk-grid-divider.uk-grid-column-large.uk-grid-stack > .uk-grid-margin::before {
  left: 80px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  /* Horizontal */
  .uk-grid-divider.uk-grid-large,
  .uk-grid-divider.uk-grid-column-large {
    margin-left: -140px; }
  .uk-grid-divider.uk-grid-large > *,
  .uk-grid-divider.uk-grid-column-large > * {
    padding-left: 140px; }
  .uk-grid-divider.uk-grid-large > :not(.uk-first-column)::before,
  .uk-grid-divider.uk-grid-column-large > :not(.uk-first-column)::before {
    left: 70px; }
  /* Vertical */
  .uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin,
  .uk-grid-divider.uk-grid-row-large.uk-grid-stack > .uk-grid-margin {
    margin-top: 140px; }
  .uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin::before {
    top: -70px;
    left: 140px; }
  .uk-grid-divider.uk-grid-row-large.uk-grid-stack > .uk-grid-margin::before {
    top: -70px; }
  .uk-grid-divider.uk-grid-column-large.uk-grid-stack > .uk-grid-margin::before {
    left: 140px; } }

/* Match child of a grid cell
 ========================================================================== */
/*
 * Behave like a block element
 * 1. Wrap into the next line
 * 2. Take the full width, at least 100%. Only if no class from the Width component is set.
 * 3. Expand width even if larger than 100%, e.g. because of negative margin (Needed for nested grids)
 */
.uk-grid-match > *,
.uk-grid-item-match {
  display: flex;
  /* 1 */
  flex-wrap: wrap; }

.uk-grid-match > * > :not([class*='uk-width']),
.uk-grid-item-match > :not([class*='uk-width']) {
  /* 2 */
  box-sizing: border-box;
  width: 100%;
  /* 3 */
  flex: auto; }

/* ========================================================================
   Component: Card
 ========================================================================== */
.uk-card {
  position: relative;
  box-sizing: border-box; }

/* Sections
 ========================================================================== */
.uk-card-body {
  padding: 30px 30px; }

.uk-card-header {
  padding: 15px 30px; }

.uk-card-footer {
  padding: 15px 30px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-card-body {
    padding: 40px 40px; }
  .uk-card-header {
    padding: 20px 40px; }
  .uk-card-footer {
    padding: 20px 40px; } }

/*
 * Micro clearfix
 */
.uk-card-body::before,
.uk-card-body::after,
.uk-card-header::before,
.uk-card-header::after,
.uk-card-footer::before,
.uk-card-footer::after {
  content: "";
  display: table; }

.uk-card-body::after,
.uk-card-header::after,
.uk-card-footer::after {
  clear: both; }

/*
 * Remove margin from the last-child
 */
.uk-card-body > :last-child,
.uk-card-header > :last-child,
.uk-card-footer > :last-child {
  margin-bottom: 0; }

/* Media
 ========================================================================== */
/*
 * Reserved alignment modifier to style the media element, e.g. with `border-radius`
 * Implemented by the theme
 */
/* Title
 ========================================================================== */
.uk-card-title {
  font-size: 1.5rem;
  line-height: 1.4; }

/* Badge
 ========================================================================== */
.uk-card-badge {
  position: absolute;
  top: 30px;
  right: 30px;
  z-index: 1; }

/*
 * Remove margin from adjacent element
 */
.uk-card-badge:first-child + * {
  margin-top: 0; }

/* Hover modifier
 ========================================================================== */
.uk-card-hover:not(.uk-card-default):not(.uk-card-primary):not(.uk-card-secondary):hover {
  background: #f8f8f8; }

/* Style modifiers
 ========================================================================== */
/*
 * Default
 * Note: Header and Footer are only implemented for the default style
 */
.uk-card-default {
  background: #f8f8f8;
  color: #666; }

.uk-card-default .uk-card-title {
  color: #333; }

.uk-card-default.uk-card-hover:hover {
  background-color: #ebebeb; }

/*
 * Primary
 */
.uk-card-primary {
  background: #1e87f0;
  color: #fff; }

.uk-card-primary .uk-card-title {
  color: #fff; }

.uk-card-primary.uk-card-hover:hover {
  background-color: #0f7ae5; }

/*
 * Secondary
 */
.uk-card-secondary {
  background: #222;
  color: #fff; }

.uk-card-secondary .uk-card-title {
  color: #fff; }

.uk-card-secondary.uk-card-hover:hover {
  background-color: #151515; }

/* Size modifier
 ========================================================================== */
/*
 * Small
 */
.uk-card-small.uk-card-body,
.uk-card-small .uk-card-body {
  padding: 20px 20px; }

.uk-card-small .uk-card-header {
  padding: 13px 20px; }

.uk-card-small .uk-card-footer {
  padding: 13px 20px; }

/*
 * Large
 */
/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-card-large.uk-card-body,
  .uk-card-large .uk-card-body {
    padding: 70px 70px; }
  .uk-card-large .uk-card-header {
    padding: 35px 70px; }
  .uk-card-large .uk-card-footer {
    padding: 35px 70px; } }

/* ========================================================================
   Component: Close
 ========================================================================== */
/*
 * Adopts `uk-icon`
 */
.uk-close {
  color: #999; }

/* Hover + Focus */
.uk-close:hover,
.uk-close:focus {
  color: #666;
  outline: none; }

/* ========================================================================
   Component: Nav
 ========================================================================== */
/*
 * Reset
 * 1. Prepare lists
 * 2. Prepare links
 * 3. Remove default focus style
 */
/* 1 */
.uk-nav,
.uk-nav ul {
  margin: 0;
  padding: 0;
  list-style: none; }

/* 2 */
.uk-nav li > a {
  display: block;
  text-decoration: none; }

/* 3 */
.uk-nav li > a:focus {
  outline: none; }

/*
 * Items
 * Must target `a` elements to exclude other elements (e.g. lists)
 */
.uk-nav > li > a {
  padding: 5px 0; }

/* Sublists
 ========================================================================== */
/*
 * Level 2
 * `ul` needed for higher specificity to override padding
 */
ul.uk-nav-sub {
  padding: 5px 0 5px 15px; }

/*
 * Level 3 and deeper
 */
.uk-nav-sub ul {
  padding-left: 15px; }

/*
 * Items
 */
.uk-nav-sub a {
  padding: 2px 0; }

/* Parent icon modifier
 ========================================================================== */
.uk-nav-parent-icon > .uk-parent > a::after {
  content: "";
  width: 1.5em;
  height: 1.5em;
  float: right;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22%23666%22%20stroke-width%3D%221.1%22%20points%3D%2210%201%204%207%2010%2013%22%20%2F%3E%0A%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-position: 50% 50%; }

.uk-nav-parent-icon > .uk-parent.uk-open > a::after {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22%23666%22%20stroke-width%3D%221.1%22%20points%3D%221%204%207%2010%2013%204%22%20%2F%3E%0A%3C%2Fsvg%3E"); }

/* Header
 ========================================================================== */
.uk-nav-header {
  padding: 5px 0;
  text-transform: uppercase;
  font-size: 0.875rem; }

.uk-nav-header:not(:first-child) {
  margin-top: 20px; }

/* Divider
 ========================================================================== */
.uk-nav-divider {
  margin: 5px 0; }

/* Default modifier
 ========================================================================== */
/*
 * Items
 */
.uk-nav-default > li > a {
  color: #999; }

/* Hover + Focus */
.uk-nav-default > li > a:hover,
.uk-nav-default > li > a:focus {
  color: #666; }

/* Active */
.uk-nav-default > li.uk-active > a {
  color: #333; }

/*
 * Header
 */
.uk-nav-default .uk-nav-header {
  color: #333; }

/*
 * Divider
 */
.uk-nav-default .uk-nav-divider {
  border-top: 1px solid #e5e5e5; }

/*
 * Sublists
 */
.uk-nav-default .uk-nav-sub a {
  color: #999; }

.uk-nav-default .uk-nav-sub a:hover,
.uk-nav-default .uk-nav-sub a:focus {
  color: #666; }

.uk-nav-default .uk-nav-sub li.uk-active > a {
  color: #333; }

/* Primary modifier
 ========================================================================== */
/*
 * Items
 */
.uk-nav-primary > li > a {
  font-size: 1.5rem;
  line-height: 1.5;
  color: #999; }

/* Hover + Focus */
.uk-nav-primary > li > a:hover,
.uk-nav-primary > li > a:focus {
  color: #666; }

/* Active */
.uk-nav-primary > li.uk-active > a {
  color: #333; }

/*
 * Header
 */
.uk-nav-primary .uk-nav-header {
  color: #333; }

/*
 * Divider
 */
.uk-nav-primary .uk-nav-divider {
  border-top: 1px solid #e5e5e5; }

/*
 * Sublists
 */
.uk-nav-primary .uk-nav-sub a {
  color: #999; }

.uk-nav-primary .uk-nav-sub a:hover,
.uk-nav-primary .uk-nav-sub a:focus {
  color: #666; }

.uk-nav-primary .uk-nav-sub li.uk-active > a {
  color: #333; }

/* Alignment modifier
 ========================================================================== */
.uk-nav-center {
  text-align: center; }

/* Sublists */
.uk-nav-center .uk-nav-sub,
.uk-nav-center .uk-nav-sub ul {
  padding-left: 0; }

/* Parent icon modifier  */
.uk-nav-center.uk-nav-parent-icon > .uk-parent > a::after {
  position: absolute; }

/* ========================================================================
   Component: Navbar
 ========================================================================== */
/*
 * 1. Create position context to center navbar group
 */
.uk-navbar {
  display: flex;
  /* 1 */
  position: relative; }

/* Container
 ========================================================================== */
.uk-navbar-container:not(.uk-navbar-transparent) {
  background: #f8f8f8; }

/*
 * Remove pseudo elements created by micro clearfix as precaution (if Container component is used)
 */
.uk-navbar-container > ::before,
.uk-navbar-container > ::after {
  display: none !important; }

/* Groups
 ========================================================================== */
/*
 * 1. Align navs and items vertically if they have a different height
 * 2. Note: IE 11 requires an extra `div` which affects the center selector
 */
.uk-navbar-left,
.uk-navbar-right,
.uk-navbar-center,
.uk-navbar-center-left > *,
.uk-navbar-center-right > * {
  display: flex;
  /* 1 */
  align-items: center; }

/*
 * Horizontal alignment
 * 1. Create position context for centered navbar with sub groups (left/right)
 * 2. Fix text wrapping if content is larger than 50% of the container.
 * 3. Needed for dropdowns because a new position context is created
 *    `z-index` must be smaller than off-canvas
 * 4. Align sub groups for centered navbar
 */
.uk-navbar-right {
  margin-left: auto; }

.uk-navbar-center:only-child {
  margin-left: auto;
  margin-right: auto;
  /* 1 */
  position: relative; }

.uk-navbar-center:not(:only-child) {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  /* 2 */
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  box-sizing: border-box;
  /* 3 */
  z-index: 990; }

/* 4 */
.uk-navbar-center-left,
.uk-navbar-center-right {
  position: absolute;
  top: 0; }

.uk-navbar-center-left {
  right: 100%; }

.uk-navbar-center-right {
  left: 100%; }

[class*='uk-navbar-center-'] {
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  box-sizing: border-box; }

/* Nav
 ========================================================================== */
/*
 * 1. Reset list
 */
.uk-navbar-nav {
  display: flex;
  /* 1 */
  margin: 0;
  padding: 0;
  list-style: none; }

/*
 * Allow items to wrap into the next line
 * Only not `absolute` positioned groups
 */
.uk-navbar-left,
.uk-navbar-right,
.uk-navbar-center:only-child {
  flex-wrap: wrap; }

/*
 * Items
 * 1. Center content vertically and horizontally
 * 2. Dimensions
 * 3. Style
 * 4. Required for `a`
 */
.uk-navbar-nav > li > a,
.uk-navbar-item,
.uk-navbar-toggle {
  /* 1 */
  display: flex;
  justify-content: center;
  align-items: center;
  /* 2 */
  box-sizing: border-box;
  min-height: 80px;
  padding: 0 15px;
  /* 3 */
  font-size: 16px;
  font-family: -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";
  /* 4 */
  text-decoration: none; }

/*
 * Nav items
 */
.uk-navbar-nav > li > a {
  color: #999; }

/*
 * Hover
 * Apply hover style also to focus state and if dropdown is opened
 */
.uk-navbar-nav > li:hover > a,
.uk-navbar-nav > li > a:focus,
.uk-navbar-nav > li > a.uk-open {
  color: #666;
  outline: none; }

/* OnClick */
.uk-navbar-nav > li > a:active {
  color: #333; }

/* Active */
.uk-navbar-nav > li.uk-active > a {
  color: #333; }

/* Item
 ========================================================================== */
.uk-navbar-item {
  color: #666; }

/* Toggle
 ========================================================================== */
.uk-navbar-toggle {
  color: #999; }

.uk-navbar-toggle:hover,
.uk-navbar-toggle:focus,
.uk-navbar-toggle.uk-open {
  color: #666;
  outline: none;
  text-decoration: none; }

/*
 * Icon
 * Adopts `uk-icon`
 */
/* Hover + Focus */
/* Subtitle
 ========================================================================== */
.uk-navbar-subtitle {
  font-size: 0.875rem; }

/* Style modifiers
 ========================================================================== */
/* Dropdown
 ========================================================================== */
/*
 * Adopts `uk-dropdown`
 * 1. Hide by default
 * 2. Set position
 * 3. Set a default width
 * 4. Style
 */
.uk-navbar-dropdown {
  /* 1 */
  display: none;
  /* 2 */
  position: absolute;
  z-index: 1020;
  /* 3 */
  box-sizing: border-box;
  width: 200px;
  /* 4 */
  padding: 15px;
  background: #f8f8f8;
  color: #666; }

/* Show */
.uk-navbar-dropdown.uk-open {
  display: block; }

/*
 * Direction / Alignment modifiers
 */
/* Direction */
[class*='uk-navbar-dropdown-top'] {
  margin-top: 0; }

[class*='uk-navbar-dropdown-bottom'] {
  margin-top: 0; }

[class*='uk-navbar-dropdown-left'] {
  margin-left: 0; }

[class*='uk-navbar-dropdown-right'] {
  margin-left: 0; }

/*
 * Grid
 * Adopts `uk-grid`
 */
/* Gutter Horizontal */
.uk-navbar-dropdown-grid {
  margin-left: -30px; }

.uk-navbar-dropdown-grid > * {
  padding-left: 30px; }

/* Gutter Vertical */
.uk-navbar-dropdown-grid > .uk-grid-margin {
  margin-top: 30px; }

/* Stack */
.uk-navbar-dropdown-stack .uk-navbar-dropdown-grid > * {
  width: 100% !important; }

/*
 * Width modifier
 */
.uk-navbar-dropdown-width-2:not(.uk-navbar-dropdown-stack) {
  width: 400px; }

.uk-navbar-dropdown-width-3:not(.uk-navbar-dropdown-stack) {
  width: 600px; }

.uk-navbar-dropdown-width-4:not(.uk-navbar-dropdown-stack) {
  width: 800px; }

.uk-navbar-dropdown-width-5:not(.uk-navbar-dropdown-stack) {
  width: 1000px; }

/*
 * Dropbar modifier
 */
.uk-navbar-dropdown-dropbar {
  margin-top: 0;
  margin-bottom: 0; }

/* Dropdown Nav
 * Adopts `uk-nav`
 ========================================================================== */
/*
 * Items
 */
.uk-navbar-dropdown-nav > li > a {
  color: #999; }

/* Hover + Focus */
.uk-navbar-dropdown-nav > li > a:hover,
.uk-navbar-dropdown-nav > li > a:focus {
  color: #666; }

/* Active */
.uk-navbar-dropdown-nav > li.uk-active > a {
  color: #333; }

/*
 * Header
 */
.uk-navbar-dropdown-nav .uk-nav-header {
  color: #333; }

/*
 * Divider
 */
.uk-navbar-dropdown-nav .uk-nav-divider {
  border-top: 1px solid #e5e5e5; }

/*
 * Sublists
 */
.uk-navbar-dropdown-nav .uk-nav-sub a {
  color: #999; }

.uk-navbar-dropdown-nav .uk-nav-sub a:hover,
.uk-navbar-dropdown-nav .uk-nav-sub a:focus {
  color: #666; }

.uk-navbar-dropdown-nav .uk-nav-sub li.uk-active > a {
  color: #333; }

/* Dropbar
 ========================================================================== */
.uk-navbar-dropbar {
  background: #f8f8f8; }

/*
 * Slide modifier
 */
.uk-navbar-dropbar-slide {
  position: absolute;
  z-index: 980;
  left: 0;
  right: 0; }

/* ========================================================================
   Component: Slidenav
 ========================================================================== */
/*
 * Adopts `uk-icon`
 */
.uk-slidenav {
  padding: 5px 10px;
  color: rgba(102, 102, 102, 0.5); }

/* Hover + Focus */
.uk-slidenav:hover,
.uk-slidenav:focus {
  color: rgba(102, 102, 102, 0.9);
  outline: none; }

/* OnClick */
.uk-slidenav:active {
  color: rgba(102, 102, 102, 0.5); }

/* Icon modifier
 ========================================================================== */
/*
 * Previous
 */
/*
 * Next
 */
/* Size modifier
 ========================================================================== */
.uk-slidenav-large {
  padding: 10px 10px; }

/* Container
 ========================================================================== */
.uk-slidenav-container {
  display: flex; }

/* ========================================================================
   Component: Dotnav
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Reset list
 * 3. Gutter
 */
.uk-dotnav {
  display: flex;
  /* 1 */
  flex-wrap: wrap;
  /* 2 */
  margin: 0;
  padding: 0;
  list-style: none;
  /* 3 */
  margin-left: -12px; }

/*
 * 1. Space is allocated solely based on content dimensions: 0 0 auto
 * 2. Gutter
 */
.uk-dotnav > * {
  /* 1 */
  flex: none;
  /* 2 */
  padding-left: 12px; }

/* Items
 ========================================================================== */
/*
 * Items
 * 1. Hide text if present
 */
.uk-dotnav > * > * {
  display: block;
  box-sizing: border-box;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(102, 102, 102, 0.2);
  /* 1 */
  text-indent: 100%;
  overflow: hidden;
  white-space: nowrap; }

/* Hover + Focus */
.uk-dotnav > * > :hover,
.uk-dotnav > * > :focus {
  background-color: rgba(102, 102, 102, 0.6);
  outline: none; }

/* OnClick */
.uk-dotnav > * > :active {
  background-color: rgba(102, 102, 102, 0.2); }

/* Active */
.uk-dotnav > .uk-active > * {
  background-color: rgba(102, 102, 102, 0.6); }

/* Modifier: 'uk-dotnav-vertical'
 ========================================================================== */
/*
 * 1. Change direction
 * 2. Gutter
 */
.uk-dotnav-vertical {
  /* 1 */
  flex-direction: column;
  /* 2 */
  margin-left: 0;
  margin-top: -12px; }

/* 2 */
.uk-dotnav-vertical > * {
  padding-left: 0;
  padding-top: 12px; }

/* ========================================================================
   Component: Accordion
 ========================================================================== */
.uk-accordion {
  padding: 0;
  list-style: none; }

/* Item
 ========================================================================== */
.uk-accordion > :nth-child(n+2) {
  margin-top: 20px; }

/* Title
 ========================================================================== */
.uk-accordion-title {
  display: block;
  font-size: 1.25rem;
  line-height: 1.4;
  color: #333; }

/* Hover + Focus */
.uk-accordion-title:hover,
.uk-accordion-title:focus {
  color: #666;
  text-decoration: none;
  outline: none; }

/* Content
 ========================================================================== */
.uk-accordion-content {
  margin-top: 20px; }

/*
 * Micro clearfix
 */
.uk-accordion-content::before,
.uk-accordion-content::after {
  content: "";
  display: table; }

.uk-accordion-content::after {
  clear: both; }

/*
 * Remove margin from the last-child
 */
.uk-accordion-content > :last-child {
  margin-bottom: 0; }

/* ========================================================================
   Component: Drop
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Set position
 * 3. Set a default width
 */
.uk-drop {
  /* 1 */
  display: none;
  /* 2 */
  position: absolute;
  z-index: 1020;
  /* 3 */
  box-sizing: border-box;
  width: 300px; }

/* Show */
.uk-drop.uk-open {
  display: block; }

/* Direction / Alignment modifiers
 ========================================================================== */
/* Direction */
[class*='uk-drop-top'] {
  margin-top: -20px; }

[class*='uk-drop-bottom'] {
  margin-top: 20px; }

[class*='uk-drop-left'] {
  margin-left: -20px; }

[class*='uk-drop-right'] {
  margin-left: 20px; }

/* Grid modifiers
 ========================================================================== */
.uk-drop-stack .uk-drop-grid > * {
  width: 100% !important; }

/* ========================================================================
   Component: Dropdown
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Set position
 * 3. Set a default width
 * 4. Style
 */
.uk-dropdown {
  /* 1 */
  display: none;
  /* 2 */
  position: absolute;
  z-index: 1020;
  /* 3 */
  box-sizing: border-box;
  min-width: 200px;
  /* 4 */
  padding: 15px;
  background: #f8f8f8;
  color: #666; }

/* Show */
.uk-dropdown.uk-open {
  display: block; }

/* Nav
 * Adopts `uk-nav`
 ========================================================================== */
.uk-dropdown-nav {
  white-space: nowrap; }

/*
 * Items
 */
.uk-dropdown-nav > li > a {
  color: #999; }

/* Hover + Focus + Active */
.uk-dropdown-nav > li > a:hover,
.uk-dropdown-nav > li > a:focus,
.uk-dropdown-nav > li.uk-active > a {
  color: #666; }

/*
 * Header
 */
.uk-dropdown-nav .uk-nav-header {
  color: #333; }

/*
 * Divider
 */
.uk-dropdown-nav .uk-nav-divider {
  border-top: 1px solid #e5e5e5; }

/*
 * Sublists
 */
.uk-dropdown-nav .uk-nav-sub a {
  color: #999; }

.uk-dropdown-nav .uk-nav-sub a:hover,
.uk-dropdown-nav .uk-nav-sub a:focus,
.uk-dropdown-nav .uk-nav-sub li.uk-active > a {
  color: #666; }

/* Direction / Alignment modifiers
 ========================================================================== */
/* Direction */
[class*='uk-dropdown-top'] {
  margin-top: -10px; }

[class*='uk-dropdown-bottom'] {
  margin-top: 10px; }

[class*='uk-dropdown-left'] {
  margin-left: -10px; }

[class*='uk-dropdown-right'] {
  margin-left: 10px; }

/* Grid modifiers
 ========================================================================== */
.uk-dropdown-stack .uk-dropdown-grid > * {
  width: 100% !important; }

/* ========================================================================
   Component: Modal
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Set position
 * 3. Allow scrolling for the modal dialog
 * 4. Horizontal padding
 * 5. Mask the background page
 * 6. Fade-in transition
 */
.uk-modal {
  /* 1 */
  display: none;
  /* 2 */
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1010;
  /* 3 */
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  /* 4 */
  padding: 15px 15px;
  /* 5 */
  background: rgba(0, 0, 0, 0.6);
  /* 6 */
  opacity: 0;
  transition: opacity 0.15s linear; }

/* Phone landscape and bigger */
@media (min-width: 640px) {
  .uk-modal {
    padding: 50px 30px; } }

/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-modal {
    padding-left: 40px;
    padding-right: 40px; } }

/*
 * Open
 */
.uk-modal.uk-open {
  opacity: 1; }

/* Page
 ========================================================================== */
/*
 * Prevent scrollbars
 */
.uk-modal-page {
  overflow: hidden; }

/* Dialog
 ========================================================================== */
/*
 * 1. Create position context for spinner and close button
 * 2. Dimensions
 * 3. Fix `max-width: 100%` not working in combination with flex and responsive images in IE11
 *    `!important` needed to overwrite `uk-width-auto`. See `#modal-media-image` in tests
 * 4. Style
 * 5. Slide-in transition
 */
.uk-modal-dialog {
  /* 1 */
  position: relative;
  /* 2 */
  box-sizing: border-box;
  margin: 0 auto;
  width: 600px;
  /* 3 */
  max-width: calc(100% - 0.01px) !important;
  /* 4 */
  background: #fff;
  /* 5 */
  opacity: 0;
  transform: translateY(-100px);
  transition: 0.3s linear;
  transition-property: opacity, transform; }

/*
 * Open
 */
.uk-open > .uk-modal-dialog {
  opacity: 1;
  transform: translateY(0); }

/* Size modifier
 ========================================================================== */
/*
 * Container size
 * Take the same size as the Container component
 */
.uk-modal-container .uk-modal-dialog {
  width: 1200px; }

/*
 * Full size
 * 1. Remove padding and background from modal
 * 2. Reset all default declarations from modal dialog
 */
/* 1 */
.uk-modal-full {
  padding: 0;
  background: none; }

/* 2 */
.uk-modal-full .uk-modal-dialog {
  margin: 0;
  width: 100%;
  max-width: 100%;
  transform: translateY(0); }

/* Sections
 ========================================================================== */
.uk-modal-body {
  padding: 30px 30px; }

.uk-modal-header {
  padding: 15px 30px;
  background: #f8f8f8; }

.uk-modal-footer {
  padding: 15px 30px;
  background: #f8f8f8; }

/*
 * Micro clearfix
 */
.uk-modal-body::before,
.uk-modal-body::after,
.uk-modal-header::before,
.uk-modal-header::after,
.uk-modal-footer::before,
.uk-modal-footer::after {
  content: "";
  display: table; }

.uk-modal-body::after,
.uk-modal-header::after,
.uk-modal-footer::after {
  clear: both; }

/*
 * Remove margin from the last-child
 */
.uk-modal-body > :last-child,
.uk-modal-header > :last-child,
.uk-modal-footer > :last-child {
  margin-bottom: 0; }

/* Title
 ========================================================================== */
.uk-modal-title {
  font-size: 2rem;
  line-height: 1.3; }

/* Close
 * Adopts `uk-close`
 ========================================================================== */
[class*='uk-modal-close-'] {
  position: absolute;
  z-index: 1010;
  top: 10px;
  right: 10px;
  padding: 5px; }

/*
 * Remove margin from adjacent element
 */
[class*='uk-modal-close-']:first-child + * {
  margin-top: 0; }

/*
 * Hover
 */
/*
 * Default
 */
/*
 * Outside
 * 1. Prevent scrollbar on small devices
 */
.uk-modal-close-outside {
  top: 0;
  /* 1 */
  right: -5px;
  transform: translate(0, -100%);
  color: white; }

.uk-modal-close-outside:hover {
  color: #fff; }

/* Tablet landscape and bigger */
@media (min-width: 960px) {
  /* 1 */
  .uk-modal-close-outside {
    right: 0;
    transform: translate(100%, -100%); } }

/*
 * Full
 */
/* ========================================================================
   Component: Lightbox
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Set position
 * 3. Allow scrolling for the modal dialog
 * 4. Horizontal padding
 * 5. Mask the background page
 * 6. Fade-in transition
 */
.uk-lightbox {
  /* 1 */
  display: none;
  /* 2 */
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1010;
  /* 5 */
  background: #000;
  /* 6 */
  opacity: 0;
  transition: opacity 0.15s linear; }

/*
 * Open
 * 1. Center child
 * 2. Fade-in
 */
.uk-lightbox.uk-open {
  display: block;
  /* 2 */
  opacity: 1; }

/* Page
 ========================================================================== */
/*
 * Prevent scrollbars
 */
.uk-lightbox-page {
  overflow: hidden; }

/* Item
 ========================================================================== */
/*
 * 1. Center child within the viewport
 * 2. Not visible by default
 * 3. Color needed for spinner icon
 * 4. Optimize animation
 * 5. Responsiveness
 *    Using `vh` for `max-height` to fix image proportions after resize in Safari and Opera
 *    Using `vh` and `vw` to make responsive image work in IE11
 * 6. Suppress outline on focus
 */
.uk-lightbox-items > * {
  /* 1 */
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  /* 2 */
  display: none;
  justify-content: center;
  align-items: center;
  /* 3 */
  color: rgba(255, 255, 255, 0.7);
  /* 4 */
  will-change: transform, opacity; }

/* 5 */
.uk-lightbox-items > * > * {
  max-width: 100vw;
  max-height: 100vh; }

/* 6 */
.uk-lightbox-items > :focus {
  outline: none; }

.uk-lightbox-items > * > :not(iframe) {
  width: auto;
  height: auto; }

.uk-lightbox-items > .uk-active {
  display: flex; }

/* Toolbar
 ========================================================================== */
.uk-lightbox-toolbar {
  padding: 10px 10px;
  background: rgba(0, 0, 0, 0.3);
  color: rgba(255, 255, 255, 0.7); }

.uk-lightbox-toolbar > * {
  color: rgba(255, 255, 255, 0.7); }

/* Toolbar Icon (Close)
 ========================================================================== */
.uk-lightbox-toolbar-icon {
  padding: 5px;
  color: rgba(255, 255, 255, 0.7); }

/*
 * Hover
 */
.uk-lightbox-toolbar-icon:hover {
  color: #fff; }

/* Button (Slidenav)
 ========================================================================== */
/*
 * 1. Center icon vertically and horizontally
 */
.uk-lightbox-button {
  box-sizing: border-box;
  width: 50px;
  height: 50px;
  background: rgba(0, 0, 0, 0.3);
  color: rgba(255, 255, 255, 0.7);
  /* 1 */
  display: inline-flex;
  justify-content: center;
  align-items: center; }

/*
 * Hover
 */
.uk-lightbox-button:hover {
  color: #fff; }

/* Caption
 ========================================================================== */
/* Iframe
 ========================================================================== */
.uk-lightbox-iframe {
  width: 80%;
  height: 80%; }

/* ========================================================================
   Component: Slider
 ========================================================================== */
/*
 * 1. Prevent tab highlighting on iOS.
 */
.uk-slider {
  /* 1 */
  -webkit-tap-highlight-color: transparent; }

/* Container
 ========================================================================== */
/*
 * 1. Clip child elements
 */
.uk-slider-container {
  /* 1 */
  overflow: hidden; }

/* Items
 ========================================================================== */
/*
 * 1. Optimize animation
 * 2. Create a containing block. In Safari it's neither created by `transform` nor `will-change`.
 */
.uk-slider-items {
  /* 1 */
  will-change: transform;
  /* 2 */
  position: relative; }

/*
 * 1. Reset list style without interfering with grid
 * 2. Prevent displaying the callout information on iOS.
 */
.uk-slider-items:not(.uk-grid) {
  display: flex;
  /* 1 */
  margin: 0;
  padding: 0;
  list-style: none;
  /* 2 */
  -webkit-touch-callout: none; }

.uk-slider-items.uk-grid {
  flex-wrap: nowrap; }

/* Item
 ========================================================================== */
/*
 * 1. Let items take content dimensions (0 0 auto)
 * 2. Create position context
 * 3. Disable horizontal panning gestures in IE11 and Edge
 * 4. Suppress outline on focus
 */
.uk-slider-items > * {
  /* 1 */
  flex: none;
  /* 2 */
  position: relative;
  /* 3 */
  touch-action: pan-y; }

/* 4 */
.uk-slider-items > :focus {
  outline: none; }

/* ========================================================================
   Component: Sticky
 ========================================================================== */
/*
 * 1. Resolve frame rate issues on devices with lower frame rates by forcing hardware acceleration
 */
.uk-sticky-fixed {
  z-index: 980;
  box-sizing: border-box;
  margin: 0 !important;
  /* 1 */
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

/*
 * Faster animations
 */
.uk-sticky[class*='uk-animation-'] {
  -webkit-animation-duration: 0.2s;
  animation-duration: 0.2s; }

.uk-sticky.uk-animation-reverse {
  -webkit-animation-duration: 0.2s;
  animation-duration: 0.2s; }

/* ========================================================================
   Component: Off-canvas
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Set position
 */
.uk-offcanvas {
  /* 1 */
  display: none;
  /* 2 */
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  z-index: 1000; }

/*
 * Flip modifier
 */
.uk-offcanvas-flip .uk-offcanvas {
  right: 0;
  left: auto; }

/* Bar
 ========================================================================== */
/*
 * 1. Set position
 * 2. Size and style
 * 3. Allow scrolling
 */
.uk-offcanvas-bar {
  /* 1 */
  position: absolute;
  top: 0;
  bottom: 0;
  left: -270px;
  /* 2 */
  box-sizing: border-box;
  width: 270px;
  padding: 20px 20px;
  background: #222;
  /* 3 */
  overflow-y: auto;
  -webkit-overflow-scrolling: touch; }

/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-offcanvas-bar {
    left: -350px;
    width: 350px;
    padding: 40px 40px; } }

/* Flip modifier */
.uk-offcanvas-flip .uk-offcanvas-bar {
  left: auto;
  right: -270px; }

/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-offcanvas-flip .uk-offcanvas-bar {
    right: -350px; } }

/*
 * Open
 */
.uk-open > .uk-offcanvas-bar {
  left: 0; }

.uk-offcanvas-flip .uk-open > .uk-offcanvas-bar {
  left: auto;
  right: 0; }

/*
 * Slide Animation (Used in slide and push mode)
 */
.uk-offcanvas-bar-animation {
  transition: left 0.3s ease-out; }

.uk-offcanvas-flip .uk-offcanvas-bar-animation {
  transition-property: right; }

/*
 * Reveal Animation
 * 1. Set position
 * 2. Clip the bar
 * 3. Animation
 * 4. Reset position
 */
.uk-offcanvas-reveal {
  /* 1 */
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  /* 2 */
  width: 0;
  overflow: hidden;
  /* 3 */
  transition: width 0.3s ease-out; }

.uk-offcanvas-reveal .uk-offcanvas-bar {
  /* 4 */
  left: 0; }

.uk-offcanvas-flip .uk-offcanvas-reveal .uk-offcanvas-bar {
  /* 4 */
  left: auto;
  right: 0; }

.uk-open > .uk-offcanvas-reveal {
  width: 270px; }

/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-open > .uk-offcanvas-reveal {
    width: 350px; } }

/*
 * Flip modifier
 */
.uk-offcanvas-flip .uk-offcanvas-reveal {
  right: 0;
  left: auto; }

/* Close
 * Adopts `uk-close`
 ========================================================================== */
.uk-offcanvas-close {
  position: absolute;
  z-index: 1000;
  top: 20px;
  right: 20px;
  padding: 5px; }

/* Overlay
 ========================================================================== */
/*
 * Overlay the whole page. Needed for the `::before`
 * 1. Using `100vw` so no modification is needed when off-canvas is flipped
 * 2. Allow for closing with swipe gesture on devices with pointer events.
 */
.uk-offcanvas-overlay {
  /* 1 */
  width: 100vw;
  /* 2 */
  touch-action: none; }

/*
 * 1. Mask the whole page
 * 2. Fade-in transition
 */
.uk-offcanvas-overlay::before {
  /* 1 */
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.1);
  /* 2 */
  opacity: 0;
  transition: opacity 0.15s linear; }

.uk-offcanvas-overlay.uk-open::before {
  opacity: 1; }

/* Prevent scrolling
 ========================================================================== */
/*
 * Prevent horizontal scrollbar when the content is slide-out
 * Has to be on the `html` element too to make it work on the `body`
 */
.uk-offcanvas-page,
.uk-offcanvas-container {
  overflow-x: hidden; }

/* Container
 ========================================================================== */
/*
 * Prepare slide-out animation (Used in reveal and push mode)
 * Using `position: left` instead of `transform` because position `fixed` elements like sticky navbars
 * lose their fixed state and behaves like `absolute` within a transformed container
 * 1. Provide a fixed width and prevent shrinking
 */
.uk-offcanvas-container {
  position: relative;
  left: 0;
  transition: left 0.3s ease-out;
  /* 1 */
  box-sizing: border-box;
  width: 100%; }

/*
 * Activate slide-out animation
 */
:not(.uk-offcanvas-flip).uk-offcanvas-container-animation {
  left: 270px; }

.uk-offcanvas-flip.uk-offcanvas-container-animation {
  left: -270px; }

/* Tablet landscape and bigger */
@media (min-width: 960px) {
  :not(.uk-offcanvas-flip).uk-offcanvas-container-animation {
    left: 350px; }
  .uk-offcanvas-flip.uk-offcanvas-container-animation {
    left: -350px; } }

/* ========================================================================
   Component: Tooltip
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Position
 * 3. Dimensions
 * 4. Style
 */
.uk-tooltip {
  /* 1 */
  display: none;
  /* 2 */
  position: absolute;
  z-index: 1030;
  /* 3 */
  box-sizing: border-box;
  max-width: 200px;
  padding: 3px 6px;
  /* 4 */
  background: #666;
  border-radius: 2px;
  color: #fff;
  font-size: 12px; }

/* Show */
.uk-tooltip.uk-active {
  display: block; }

/* Direction / Alignment modifiers
 ========================================================================== */
/* Direction */
[class*='uk-tooltip-top'] {
  margin-top: -10px; }

[class*='uk-tooltip-bottom'] {
  margin-top: 10px; }

[class*='uk-tooltip-left'] {
  margin-left: -10px; }

[class*='uk-tooltip-right'] {
  margin-left: 10px; }

/* ========================================================================
   Component: Animation
 ========================================================================== */
[class*='uk-animation-'] {
  -webkit-animation-duration: 0.5s;
  animation-duration: 0.5s;
  -webkit-animation-timing-function: ease-out;
  animation-timing-function: ease-out;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both; }

/* Animations
 ========================================================================== */
/*
 * Fade
 */
.uk-animation-fade {
  -webkit-animation-name: uk-fade;
  animation-name: uk-fade;
  -webkit-animation-duration: 0.8s;
  animation-duration: 0.8s;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear; }

/*
 * Scale
 */
.uk-animation-scale-up {
  -webkit-animation-name: uk-fade-scale-02;
  animation-name: uk-fade-scale-02; }

.uk-animation-scale-down {
  -webkit-animation-name: uk-fade-scale-18;
  animation-name: uk-fade-scale-18; }

/*
 * Slide
 */
.uk-animation-slide-top {
  -webkit-animation-name: uk-fade-top;
  animation-name: uk-fade-top; }

.uk-animation-slide-bottom {
  -webkit-animation-name: uk-fade-bottom;
  animation-name: uk-fade-bottom; }

.uk-animation-slide-left {
  -webkit-animation-name: uk-fade-left;
  animation-name: uk-fade-left; }

.uk-animation-slide-right {
  -webkit-animation-name: uk-fade-right;
  animation-name: uk-fade-right; }

/*
 * Slide Small
 */
.uk-animation-slide-top-small {
  -webkit-animation-name: uk-fade-top-small;
  animation-name: uk-fade-top-small; }

.uk-animation-slide-bottom-small {
  -webkit-animation-name: uk-fade-bottom-small;
  animation-name: uk-fade-bottom-small; }

.uk-animation-slide-left-small {
  -webkit-animation-name: uk-fade-left-small;
  animation-name: uk-fade-left-small; }

.uk-animation-slide-right-small {
  -webkit-animation-name: uk-fade-right-small;
  animation-name: uk-fade-right-small; }

/*
 * Slide Medium
 */
.uk-animation-slide-top-medium {
  -webkit-animation-name: uk-fade-top-medium;
  animation-name: uk-fade-top-medium; }

.uk-animation-slide-bottom-medium {
  -webkit-animation-name: uk-fade-bottom-medium;
  animation-name: uk-fade-bottom-medium; }

.uk-animation-slide-left-medium {
  -webkit-animation-name: uk-fade-left-medium;
  animation-name: uk-fade-left-medium; }

.uk-animation-slide-right-medium {
  -webkit-animation-name: uk-fade-right-medium;
  animation-name: uk-fade-right-medium; }

/*
 * Kenburns
 */
.uk-animation-kenburns {
  -webkit-animation-name: uk-scale-kenburns;
  animation-name: uk-scale-kenburns;
  -webkit-animation-duration: 15s;
  animation-duration: 15s; }

/*
 * Shake
 */
.uk-animation-shake {
  -webkit-animation-name: uk-shake;
  animation-name: uk-shake; }

/*
 * SVG Stroke
 * The `--uk-animation-stroke` custom property contains the longest path length.
 * Set it manually or use `uk-svg="stroke-animation: true"` to set it automatically.
 * All strokes are animated by the same pace and doesn't end simultaneously.
 * To end simultaneously, `pathLength="1"` could be used, but it's not working in Safari yet.
 */
.uk-animation-stroke {
  -webkit-animation-name: uk-stroke;
  animation-name: uk-stroke;
  stroke-dasharray: var(--uk-animation-stroke);
  -webkit-animation-duration: 2s;
  animation-duration: 2s; }

/* Direction modifier
 ========================================================================== */
.uk-animation-reverse {
  animation-direction: reverse;
  -webkit-animation-timing-function: ease-in;
  animation-timing-function: ease-in; }

/* Duration modifier
 ========================================================================== */
.uk-animation-fast {
  -webkit-animation-duration: 0.1s;
  animation-duration: 0.1s; }

/* Toggle (Hover + Focus)
========================================================================== */
/*
 * The toggle is triggered on touch devices using `:focus` and tabindex
 */
.uk-animation-toggle:not(:hover):not(:focus) [class*='uk-animation-'] {
  -webkit-animation-name: none;
  animation-name: none; }

/*
 * 1. Prevent tab highlighting on iOS.
 */
.uk-animation-toggle {
  /* 1 */
  -webkit-tap-highlight-color: transparent; }

/*
 * Remove outline for `tabindex`
 */
.uk-animation-toggle:focus {
  outline: none; }

/* Keyframes used by animation classes
 ========================================================================== */
/*
 * Fade
 */
@-webkit-keyframes uk-fade {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
@keyframes uk-fade {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

/*
 * Slide Top
 */
@-webkit-keyframes uk-fade-top {
  0% {
    opacity: 0;
    transform: translateY(-100%); }
  100% {
    opacity: 1;
    transform: translateY(0); } }
@keyframes uk-fade-top {
  0% {
    opacity: 0;
    transform: translateY(-100%); }
  100% {
    opacity: 1;
    transform: translateY(0); } }

/*
 * Slide Bottom
 */
@-webkit-keyframes uk-fade-bottom {
  0% {
    opacity: 0;
    transform: translateY(100%); }
  100% {
    opacity: 1;
    transform: translateY(0); } }
@keyframes uk-fade-bottom {
  0% {
    opacity: 0;
    transform: translateY(100%); }
  100% {
    opacity: 1;
    transform: translateY(0); } }

/*
 * Slide Left
 */
@-webkit-keyframes uk-fade-left {
  0% {
    opacity: 0;
    transform: translateX(-100%); }
  100% {
    opacity: 1;
    transform: translateX(0); } }
@keyframes uk-fade-left {
  0% {
    opacity: 0;
    transform: translateX(-100%); }
  100% {
    opacity: 1;
    transform: translateX(0); } }

/*
 * Slide Right
 */
@-webkit-keyframes uk-fade-right {
  0% {
    opacity: 0;
    transform: translateX(100%); }
  100% {
    opacity: 1;
    transform: translateX(0); } }
@keyframes uk-fade-right {
  0% {
    opacity: 0;
    transform: translateX(100%); }
  100% {
    opacity: 1;
    transform: translateX(0); } }

/*
 * Slide Top Small
 */
@-webkit-keyframes uk-fade-top-small {
  0% {
    opacity: 0;
    transform: translateY(-10px); }
  100% {
    opacity: 1;
    transform: translateY(0); } }
@keyframes uk-fade-top-small {
  0% {
    opacity: 0;
    transform: translateY(-10px); }
  100% {
    opacity: 1;
    transform: translateY(0); } }

/*
 * Slide Bottom Small
 */
@-webkit-keyframes uk-fade-bottom-small {
  0% {
    opacity: 0;
    transform: translateY(10px); }
  100% {
    opacity: 1;
    transform: translateY(0); } }
@keyframes uk-fade-bottom-small {
  0% {
    opacity: 0;
    transform: translateY(10px); }
  100% {
    opacity: 1;
    transform: translateY(0); } }

/*
 * Slide Left Small
 */
@-webkit-keyframes uk-fade-left-small {
  0% {
    opacity: 0;
    transform: translateX(-10px); }
  100% {
    opacity: 1;
    transform: translateX(0); } }
@keyframes uk-fade-left-small {
  0% {
    opacity: 0;
    transform: translateX(-10px); }
  100% {
    opacity: 1;
    transform: translateX(0); } }

/*
 * Slide Right Small
 */
@-webkit-keyframes uk-fade-right-small {
  0% {
    opacity: 0;
    transform: translateX(10px); }
  100% {
    opacity: 1;
    transform: translateX(0); } }
@keyframes uk-fade-right-small {
  0% {
    opacity: 0;
    transform: translateX(10px); }
  100% {
    opacity: 1;
    transform: translateX(0); } }

/*
 * Slide Top Medium
 */
@-webkit-keyframes uk-fade-top-medium {
  0% {
    opacity: 0;
    transform: translateY(-50px); }
  100% {
    opacity: 1;
    transform: translateY(0); } }
@keyframes uk-fade-top-medium {
  0% {
    opacity: 0;
    transform: translateY(-50px); }
  100% {
    opacity: 1;
    transform: translateY(0); } }

/*
 * Slide Bottom Medium
 */
@-webkit-keyframes uk-fade-bottom-medium {
  0% {
    opacity: 0;
    transform: translateY(50px); }
  100% {
    opacity: 1;
    transform: translateY(0); } }
@keyframes uk-fade-bottom-medium {
  0% {
    opacity: 0;
    transform: translateY(50px); }
  100% {
    opacity: 1;
    transform: translateY(0); } }

/*
 * Slide Left Medium
 */
@-webkit-keyframes uk-fade-left-medium {
  0% {
    opacity: 0;
    transform: translateX(-50px); }
  100% {
    opacity: 1;
    transform: translateX(0); } }
@keyframes uk-fade-left-medium {
  0% {
    opacity: 0;
    transform: translateX(-50px); }
  100% {
    opacity: 1;
    transform: translateX(0); } }

/*
 * Slide Right Medium
 */
@-webkit-keyframes uk-fade-right-medium {
  0% {
    opacity: 0;
    transform: translateX(50px); }
  100% {
    opacity: 1;
    transform: translateX(0); } }
@keyframes uk-fade-right-medium {
  0% {
    opacity: 0;
    transform: translateX(50px); }
  100% {
    opacity: 1;
    transform: translateX(0); } }

/*
 * Scale Up
 */
@-webkit-keyframes uk-fade-scale-02 {
  0% {
    opacity: 0;
    transform: scale(0.2); }
  100% {
    opacity: 1;
    transform: scale(1); } }
@keyframes uk-fade-scale-02 {
  0% {
    opacity: 0;
    transform: scale(0.2); }
  100% {
    opacity: 1;
    transform: scale(1); } }

/*
 * Scale Down
 */
@-webkit-keyframes uk-fade-scale-18 {
  0% {
    opacity: 0;
    transform: scale(1.8); }
  100% {
    opacity: 1;
    transform: scale(1); } }
@keyframes uk-fade-scale-18 {
  0% {
    opacity: 0;
    transform: scale(1.8); }
  100% {
    opacity: 1;
    transform: scale(1); } }

/*
 * Kenburns
 */
@-webkit-keyframes uk-scale-kenburns {
  0% {
    transform: scale(1); }
  100% {
    transform: scale(1.2); } }
@keyframes uk-scale-kenburns {
  0% {
    transform: scale(1); }
  100% {
    transform: scale(1.2); } }

/*
 * Shake
 */
@-webkit-keyframes uk-shake {
  0%, 100% {
    transform: translateX(0); }
  10% {
    transform: translateX(-9px); }
  20% {
    transform: translateX(8px); }
  30% {
    transform: translateX(-7px); }
  40% {
    transform: translateX(6px); }
  50% {
    transform: translateX(-5px); }
  60% {
    transform: translateX(4px); }
  70% {
    transform: translateX(-3px); }
  80% {
    transform: translateX(2px); }
  90% {
    transform: translateX(-1px); } }
@keyframes uk-shake {
  0%, 100% {
    transform: translateX(0); }
  10% {
    transform: translateX(-9px); }
  20% {
    transform: translateX(8px); }
  30% {
    transform: translateX(-7px); }
  40% {
    transform: translateX(6px); }
  50% {
    transform: translateX(-5px); }
  60% {
    transform: translateX(4px); }
  70% {
    transform: translateX(-3px); }
  80% {
    transform: translateX(2px); }
  90% {
    transform: translateX(-1px); } }

/*
 * Stroke
 */
@-webkit-keyframes uk-stroke {
  0% {
    stroke-dashoffset: var(--uk-animation-stroke); }
  100% {
    stroke-dashoffset: 0; } }
@keyframes uk-stroke {
  0% {
    stroke-dashoffset: var(--uk-animation-stroke); }
  100% {
    stroke-dashoffset: 0; } }

/* ========================================================================
   Component: Width
 ========================================================================== */
/* Equal child widths
 ========================================================================== */
[class*='uk-child-width'] > * {
  box-sizing: border-box;
  width: 100%; }

.uk-child-width-1-2 > * {
  width: 50%; }

.uk-child-width-1-3 > * {
  width: calc(100% * 1 / 3.001); }

.uk-child-width-1-4 > * {
  width: 25%; }

.uk-child-width-1-5 > * {
  width: 20%; }

.uk-child-width-1-6 > * {
  width: calc(100% * 1 / 6.001); }

.uk-child-width-auto > * {
  width: auto; }

/*
 * 1. Reset the `min-width`, which is set to auto by default, because
 *    flex items won't shrink below their minimum intrinsic content size.
 *    Using `1px` instead of `0`, so items still wrap into the next line,
 *    if they have zero width and padding and the predecessor is 100% wide.
 */
.uk-child-width-expand > :not([class*='uk-width']) {
  flex: 1;
  /* 1 */
  min-width: 1px; }

/* Phone landscape and bigger */
@media (min-width: 640px) {
  .uk-child-width-1-1\@s > * {
    width: 100%; }
  .uk-child-width-1-2\@s > * {
    width: 50%; }
  .uk-child-width-1-3\@s > * {
    width: calc(100% * 1 / 3.001); }
  .uk-child-width-1-4\@s > * {
    width: 25%; }
  .uk-child-width-1-5\@s > * {
    width: 20%; }
  .uk-child-width-1-6\@s > * {
    width: calc(100% * 1 / 6.001); }
  .uk-child-width-auto\@s > * {
    width: auto; }
  .uk-child-width-expand\@s > :not([class*='uk-width']) {
    flex: 1;
    min-width: 1px; } }

/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-child-width-1-1\@m > * {
    width: 100%; }
  .uk-child-width-1-2\@m > * {
    width: 50%; }
  .uk-child-width-1-3\@m > * {
    width: calc(100% * 1 / 3.001); }
  .uk-child-width-1-4\@m > * {
    width: 25%; }
  .uk-child-width-1-5\@m > * {
    width: 20%; }
  .uk-child-width-1-6\@m > * {
    width: calc(100% * 1 / 6.001); }
  .uk-child-width-auto\@m > * {
    width: auto; }
  .uk-child-width-expand\@m > :not([class*='uk-width']) {
    flex: 1;
    min-width: 1px; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-child-width-1-1\@l > * {
    width: 100%; }
  .uk-child-width-1-2\@l > * {
    width: 50%; }
  .uk-child-width-1-3\@l > * {
    width: calc(100% * 1 / 3.001); }
  .uk-child-width-1-4\@l > * {
    width: 25%; }
  .uk-child-width-1-5\@l > * {
    width: 20%; }
  .uk-child-width-1-6\@l > * {
    width: calc(100% * 1 / 6.001); }
  .uk-child-width-auto\@l > * {
    width: auto; }
  .uk-child-width-expand\@l > :not([class*='uk-width']) {
    flex: 1;
    min-width: 1px; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-child-width-1-1\@xl > * {
    width: 100%; }
  .uk-child-width-1-2\@xl > * {
    width: 50%; }
  .uk-child-width-1-3\@xl > * {
    width: calc(100% * 1 / 3.001); }
  .uk-child-width-1-4\@xl > * {
    width: 25%; }
  .uk-child-width-1-5\@xl > * {
    width: 20%; }
  .uk-child-width-1-6\@xl > * {
    width: calc(100% * 1 / 6.001); }
  .uk-child-width-auto\@xl > * {
    width: auto; }
  .uk-child-width-expand\@xl > :not([class*='uk-width']) {
    flex: 1;
    min-width: 1px; } }

/* Single Widths
 ========================================================================== */
/*
 * 1. `max-width` is needed for the pixel-based classes
 */
[class*='uk-width'] {
  box-sizing: border-box;
  width: 100%;
  /* 1 */
  max-width: 100%; }

/* Halves */
.uk-width-1-2 {
  width: 50%; }

/* Thirds */
.uk-width-1-3 {
  width: calc(100% * 1 / 3.001); }

.uk-width-2-3 {
  width: calc(100% * 2 / 3.001); }

/* Quarters */
.uk-width-1-4 {
  width: 25%; }

.uk-width-3-4 {
  width: 75%; }

/* Fifths */
.uk-width-1-5 {
  width: 20%; }

.uk-width-2-5 {
  width: 40%; }

.uk-width-3-5 {
  width: 60%; }

.uk-width-4-5 {
  width: 80%; }

/* Sixths */
.uk-width-1-6 {
  width: calc(100% * 1 / 6.001); }

.uk-width-5-6 {
  width: calc(100% * 5 / 6.001); }

/* Pixel */
.uk-width-small {
  width: 150px; }

.uk-width-medium {
  width: 300px; }

.uk-width-large {
  width: 450px; }

.uk-width-xlarge {
  width: 600px; }

.uk-width-xxlarge {
  width: 750px; }

/* Auto */
.uk-width-auto {
  width: auto; }

/* Expand */
.uk-width-expand {
  flex: 1;
  min-width: 1px; }

/* Phone landscape and bigger */
@media (min-width: 640px) {
  /* Whole */
  .uk-width-1-1\@s {
    width: 100%; }
  /* Halves */
  .uk-width-1-2\@s {
    width: 50%; }
  /* Thirds */
  .uk-width-1-3\@s {
    width: calc(100% * 1 / 3.001); }
  .uk-width-2-3\@s {
    width: calc(100% * 2 / 3.001); }
  /* Quarters */
  .uk-width-1-4\@s {
    width: 25%; }
  .uk-width-3-4\@s {
    width: 75%; }
  /* Fifths */
  .uk-width-1-5\@s {
    width: 20%; }
  .uk-width-2-5\@s {
    width: 40%; }
  .uk-width-3-5\@s {
    width: 60%; }
  .uk-width-4-5\@s {
    width: 80%; }
  /* Sixths */
  .uk-width-1-6\@s {
    width: calc(100% * 1 / 6.001); }
  .uk-width-5-6\@s {
    width: calc(100% * 5 / 6.001); }
  /* Pixel */
  .uk-width-small\@s {
    width: 150px; }
  .uk-width-medium\@s {
    width: 300px; }
  .uk-width-large\@s {
    width: 450px; }
  .uk-width-xlarge\@s {
    width: 600px; }
  .uk-width-xxlarge\@s {
    width: 750px; }
  /* Auto */
  .uk-width-auto\@s {
    width: auto; }
  /* Expand */
  .uk-width-expand\@s {
    flex: 1;
    min-width: 1px; } }

/* Tablet landscape and bigger */
@media (min-width: 960px) {
  /* Whole */
  .uk-width-1-1\@m {
    width: 100%; }
  /* Halves */
  .uk-width-1-2\@m {
    width: 50%; }
  /* Thirds */
  .uk-width-1-3\@m {
    width: calc(100% * 1 / 3.001); }
  .uk-width-2-3\@m {
    width: calc(100% * 2 / 3.001); }
  /* Quarters */
  .uk-width-1-4\@m {
    width: 25%; }
  .uk-width-3-4\@m {
    width: 75%; }
  /* Fifths */
  .uk-width-1-5\@m {
    width: 20%; }
  .uk-width-2-5\@m {
    width: 40%; }
  .uk-width-3-5\@m {
    width: 60%; }
  .uk-width-4-5\@m {
    width: 80%; }
  /* Sixths */
  .uk-width-1-6\@m {
    width: calc(100% * 1 / 6.001); }
  .uk-width-5-6\@m {
    width: calc(100% * 5 / 6.001); }
  /* Pixel */
  .uk-width-small\@m {
    width: 150px; }
  .uk-width-medium\@m {
    width: 300px; }
  .uk-width-large\@m {
    width: 450px; }
  .uk-width-xlarge\@m {
    width: 600px; }
  .uk-width-xxlarge\@m {
    width: 750px; }
  /* Auto */
  .uk-width-auto\@m {
    width: auto; }
  /* Expand */
  .uk-width-expand\@m {
    flex: 1;
    min-width: 1px; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  /* Whole */
  .uk-width-1-1\@l {
    width: 100%; }
  /* Halves */
  .uk-width-1-2\@l {
    width: 50%; }
  /* Thirds */
  .uk-width-1-3\@l {
    width: calc(100% * 1 / 3.001); }
  .uk-width-2-3\@l {
    width: calc(100% * 2 / 3.001); }
  /* Quarters */
  .uk-width-1-4\@l {
    width: 25%; }
  .uk-width-3-4\@l {
    width: 75%; }
  /* Fifths */
  .uk-width-1-5\@l {
    width: 20%; }
  .uk-width-2-5\@l {
    width: 40%; }
  .uk-width-3-5\@l {
    width: 60%; }
  .uk-width-4-5\@l {
    width: 80%; }
  /* Sixths */
  .uk-width-1-6\@l {
    width: calc(100% * 1 / 6.001); }
  .uk-width-5-6\@l {
    width: calc(100% * 5 / 6.001); }
  /* Pixel */
  .uk-width-small\@l {
    width: 150px; }
  .uk-width-medium\@l {
    width: 300px; }
  .uk-width-large\@l {
    width: 450px; }
  .uk-width-xlarge\@l {
    width: 600px; }
  .uk-width-xxlarge\@l {
    width: 750px; }
  /* Auto */
  .uk-width-auto\@l {
    width: auto; }
  /* Expand */
  .uk-width-expand\@l {
    flex: 1;
    min-width: 1px; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  /* Whole */
  .uk-width-1-1\@xl {
    width: 100%; }
  /* Halves */
  .uk-width-1-2\@xl {
    width: 50%; }
  /* Thirds */
  .uk-width-1-3\@xl {
    width: calc(100% * 1 / 3.001); }
  .uk-width-2-3\@xl {
    width: calc(100% * 2 / 3.001); }
  /* Quarters */
  .uk-width-1-4\@xl {
    width: 25%; }
  .uk-width-3-4\@xl {
    width: 75%; }
  /* Fifths */
  .uk-width-1-5\@xl {
    width: 20%; }
  .uk-width-2-5\@xl {
    width: 40%; }
  .uk-width-3-5\@xl {
    width: 60%; }
  .uk-width-4-5\@xl {
    width: 80%; }
  /* Sixths */
  .uk-width-1-6\@xl {
    width: calc(100% * 1 / 6.001); }
  .uk-width-5-6\@xl {
    width: calc(100% * 5 / 6.001); }
  /* Pixel */
  .uk-width-small\@xl {
    width: 150px; }
  .uk-width-medium\@xl {
    width: 300px; }
  .uk-width-large\@xl {
    width: 450px; }
  .uk-width-xlarge\@xl {
    width: 600px; }
  .uk-width-xxlarge\@xl {
    width: 750px; }
  /* Auto */
  .uk-width-auto\@xl {
    width: auto; }
  /* Expand */
  .uk-width-expand\@xl {
    flex: 1;
    min-width: 1px; } }

/* ========================================================================
   Component: Height
 ========================================================================== */
[class*='uk-height'] {
  box-sizing: border-box; }

/*
 * Only works if parent element has a height set
 */
.uk-height-1-1 {
  height: 100%; }

/*
 * Useful to create image teasers
 */
.uk-height-viewport {
  min-height: 100vh; }

/*
 * Pixel
 * Useful for `overflow: auto`
 */
.uk-height-small {
  height: 150px; }

.uk-height-medium {
  height: 300px; }

.uk-height-large {
  height: 450px; }

.uk-height-max-small {
  max-height: 150px; }

.uk-height-max-medium {
  max-height: 300px; }

.uk-height-max-large {
  max-height: 450px; }

/* ========================================================================
   Component: Text
 ========================================================================== */
/* Style modifiers
 ========================================================================== */
.uk-text-lead {
  font-size: 1.5rem;
  line-height: 1.5;
  color: #333; }

.uk-text-meta {
  font-size: 0.875rem;
  line-height: 1.4;
  color: #999; }

/* Size modifiers
 ========================================================================== */
.uk-text-small {
  font-size: 0.875rem;
  line-height: 1.5; }

.uk-text-large {
  font-size: 1.5rem;
  line-height: 1.5; }

/* Weight modifier
 ========================================================================== */
.uk-text-light {
  font-weight: 300; }

.uk-text-normal {
  font-weight: 400; }

.uk-text-bold {
  font-weight: 700; }

.uk-text-lighter {
  font-weight: lighter; }

.uk-text-bolder {
  font-weight: bolder; }

/* Style modifier
 ========================================================================== */
.uk-text-italic {
  font-style: italic; }

/* Transform modifier
 ========================================================================== */
.uk-text-capitalize {
  text-transform: capitalize !important; }

.uk-text-uppercase {
  text-transform: uppercase !important; }

.uk-text-lowercase {
  text-transform: lowercase !important; }

/* Color modifiers
 ========================================================================== */
.uk-text-muted {
  color: #999 !important; }

.uk-text-emphasis {
  color: #333 !important; }

.uk-text-primary {
  color: #1e87f0 !important; }

.uk-text-secondary {
  color: #222 !important; }

.uk-text-success {
  color: #32d296 !important; }

.uk-text-warning {
  color: #faa05a !important; }

.uk-text-danger {
  color: #f0506e !important; }

/* Background modifier
 ========================================================================== */
/*
 * 1. The background clips to the foreground text. Works in Chrome, Firefox, Safari, Edge and Opera
 *    Default color is set to transparent
 * 2. Container fits the text
 * 3. Fallback color for IE11
 */
.uk-text-background {
  /* 1 */
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  /* 2 */
  display: inline-block;
  /* 3 */
  color: #1e87f0 !important; }

@supports (-webkit-background-clip: text) {
  .uk-text-background {
    background-color: #1e87f0; } }

/* Alignment modifiers
 ========================================================================== */
.uk-text-left {
  text-align: left !important; }

.uk-text-right {
  text-align: right !important; }

.uk-text-center {
  text-align: center !important; }

.uk-text-justify {
  text-align: justify !important; }

/* Phone landscape and bigger */
@media (min-width: 640px) {
  .uk-text-left\@s {
    text-align: left !important; }
  .uk-text-right\@s {
    text-align: right !important; }
  .uk-text-center\@s {
    text-align: center !important; } }

/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-text-left\@m {
    text-align: left !important; }
  .uk-text-right\@m {
    text-align: right !important; }
  .uk-text-center\@m {
    text-align: center !important; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-text-left\@l {
    text-align: left !important; }
  .uk-text-right\@l {
    text-align: right !important; }
  .uk-text-center\@l {
    text-align: center !important; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-text-left\@xl {
    text-align: left !important; }
  .uk-text-right\@xl {
    text-align: right !important; }
  .uk-text-center\@xl {
    text-align: center !important; } }

/*
 * Vertical
 */
.uk-text-top {
  vertical-align: top !important; }

.uk-text-middle {
  vertical-align: middle !important; }

.uk-text-bottom {
  vertical-align: bottom !important; }

.uk-text-baseline {
  vertical-align: baseline !important; }

/* Wrap modifiers
 ========================================================================== */
/*
 * Prevent text from wrapping onto multiple lines
 */
.uk-text-nowrap {
  white-space: nowrap; }

/*
 * 1. Make sure a max-width is set after which truncation can occur
 * 2. Prevent text from wrapping onto multiple lines, and truncate with an ellipsis
 * 3. Fix for table cells
 */
.uk-text-truncate {
  /* 1 */
  max-width: 100%;
  /* 2 */
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }

/* 2 */
th.uk-text-truncate,
td.uk-text-truncate {
  max-width: 0; }

/*
 * 1. Wrap long words onto the next line and break them if they are too long to fit
 * 2. Legacy `word-wrap` as fallback for `overflow-wrap`
 * 3. Fix `overflow-wrap` which doesn't work with table cells in Chrome, Opera, IE11 and Edge
 *    Must use `break-all` to support IE11 and Edge
 * Note: Not using `hyphens: auto;` because it hyphenates text even if not needed
 */
.uk-text-break {
  /* 1 */
  overflow-wrap: break-word;
  /* 2 */
  word-wrap: break-word; }

/* 3 */
th.uk-text-break,
td.uk-text-break {
  word-break: break-all; }

/* ========================================================================
   Component: Column
 ========================================================================== */
[class*='uk-column-'] {
  -moz-column-gap: 30px;
  column-gap: 30px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  [class*='uk-column-'] {
    -moz-column-gap: 40px;
    column-gap: 40px; } }

/*
 * Fix image 1px line wrapping into the next column in Chrome
 */
[class*='uk-column-'] img {
  transform: translate3d(0, 0, 0); }

/* Divider
 ========================================================================== */
/*
 * 1. Double the column gap
 */
.uk-column-divider {
  -moz-column-rule: 1px solid #e5e5e5;
  column-rule: 1px solid #e5e5e5;
  /* 1 */
  -moz-column-gap: 60px;
  column-gap: 60px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-column-divider {
    -moz-column-gap: 80px;
    column-gap: 80px; } }

/* Width modifiers
 ========================================================================== */
.uk-column-1-2 {
  -moz-column-count: 2;
  column-count: 2; }

.uk-column-1-3 {
  -moz-column-count: 3;
  column-count: 3; }

.uk-column-1-4 {
  -moz-column-count: 4;
  column-count: 4; }

.uk-column-1-5 {
  -moz-column-count: 5;
  column-count: 5; }

.uk-column-1-6 {
  -moz-column-count: 6;
  column-count: 6; }

/* Phone landscape and bigger */
@media (min-width: 640px) {
  .uk-column-1-2\@s {
    -moz-column-count: 2;
    column-count: 2; }
  .uk-column-1-3\@s {
    -moz-column-count: 3;
    column-count: 3; }
  .uk-column-1-4\@s {
    -moz-column-count: 4;
    column-count: 4; }
  .uk-column-1-5\@s {
    -moz-column-count: 5;
    column-count: 5; }
  .uk-column-1-6\@s {
    -moz-column-count: 6;
    column-count: 6; } }

/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-column-1-2\@m {
    -moz-column-count: 2;
    column-count: 2; }
  .uk-column-1-3\@m {
    -moz-column-count: 3;
    column-count: 3; }
  .uk-column-1-4\@m {
    -moz-column-count: 4;
    column-count: 4; }
  .uk-column-1-5\@m {
    -moz-column-count: 5;
    column-count: 5; }
  .uk-column-1-6\@m {
    -moz-column-count: 6;
    column-count: 6; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-column-1-2\@l {
    -moz-column-count: 2;
    column-count: 2; }
  .uk-column-1-3\@l {
    -moz-column-count: 3;
    column-count: 3; }
  .uk-column-1-4\@l {
    -moz-column-count: 4;
    column-count: 4; }
  .uk-column-1-5\@l {
    -moz-column-count: 5;
    column-count: 5; }
  .uk-column-1-6\@l {
    -moz-column-count: 6;
    column-count: 6; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-column-1-2\@xl {
    -moz-column-count: 2;
    column-count: 2; }
  .uk-column-1-3\@xl {
    -moz-column-count: 3;
    column-count: 3; }
  .uk-column-1-4\@xl {
    -moz-column-count: 4;
    column-count: 4; }
  .uk-column-1-5\@xl {
    -moz-column-count: 5;
    column-count: 5; }
  .uk-column-1-6\@xl {
    -moz-column-count: 6;
    column-count: 6; } }

/* Make element span across all columns
 * Does not work in Firefox yet
 ========================================================================== */
.uk-column-span {
  -moz-column-span: all;
  column-span: all; }

/* ========================================================================
   Component: Align
 ========================================================================== */
/*
 * Default
 */
[class*='uk-align'] {
  display: block;
  margin-bottom: 30px; }

* + [class*='uk-align'] {
  margin-top: 30px; }

/*
 * Center
 */
.uk-align-center {
  margin-left: auto;
  margin-right: auto; }

/*
 * Left/Right
 */
.uk-align-left {
  margin-top: 0;
  margin-right: 30px;
  float: left; }

.uk-align-right {
  margin-top: 0;
  margin-left: 30px;
  float: right; }

/* Phone landscape and bigger */
@media (min-width: 640px) {
  .uk-align-left\@s {
    margin-top: 0;
    margin-right: 30px;
    float: left; }
  .uk-align-right\@s {
    margin-top: 0;
    margin-left: 30px;
    float: right; } }

/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-align-left\@m {
    margin-top: 0;
    margin-right: 30px;
    float: left; }
  .uk-align-right\@m {
    margin-top: 0;
    margin-left: 30px;
    float: right; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-align-left\@l {
    margin-top: 0;
    float: left; }
  .uk-align-right\@l {
    margin-top: 0;
    float: right; }
  .uk-align-left,
  .uk-align-left\@s,
  .uk-align-left\@m,
  .uk-align-left\@l {
    margin-right: 40px; }
  .uk-align-right,
  .uk-align-right\@s,
  .uk-align-right\@m,
  .uk-align-right\@l {
    margin-left: 40px; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-align-left\@xl {
    margin-top: 0;
    margin-right: 40px;
    float: left; }
  .uk-align-right\@xl {
    margin-top: 0;
    margin-left: 40px;
    float: right; } }

/* ========================================================================
   Component: SVG
 ========================================================================== */
/*
 * 1. Fill all SVG elements with the current text color if no `fill` attribute is set
 * 2. Set the fill and stroke color of all SVG elements to the current text color
 */
/* 1 */
.uk-svg,
.uk-svg:not(.uk-preserve) [fill*='#']:not(.uk-preserve) {
  fill: currentcolor; }

.uk-svg:not(.uk-preserve) [stroke*='#']:not(.uk-preserve) {
  stroke: currentcolor; }

/*
 * Fix Firefox blurry SVG rendering: https://bugzilla.mozilla.org/show_bug.cgi?id=1046835
 */
.uk-svg {
  transform: translate(0, 0); }

/* ========================================================================
   Component: Utility
 ========================================================================== */
/* Panel
 ========================================================================== */
.uk-panel {
  position: relative;
  box-sizing: border-box; }

/*
 * Micro clearfix
 */
.uk-panel::before,
.uk-panel::after {
  content: "";
  display: table; }

.uk-panel::after {
  clear: both; }

/*
 * Remove margin from the last-child
 */
.uk-panel > :last-child {
  margin-bottom: 0; }

/*
 * Scrollable
 */
.uk-panel-scrollable {
  height: 170px;
  padding: 10px;
  border: 1px solid #e5e5e5;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  resize: both; }

/* Clearfix
 ========================================================================== */
/*
 * 1. `table-cell` is used with `::before` because `table` creates a 1px gap when it becomes a flex item, only in Webkit
 * 2. `table` is used again with `::after` because `clear` only works with block elements.
 * Note: `display: block` with `overflow: hidden` is currently not working in the latest Safari
 */
/* 1 */
.uk-clearfix::before {
  content: "";
  display: table-cell; }

/* 2 */
.uk-clearfix::after {
  content: "";
  display: table;
  clear: both; }

/* Float
 ========================================================================== */
/*
 * 1. Prevent content overflow
 */
.uk-float-left {
  float: left; }

.uk-float-right {
  float: right; }

/* 1 */
[class*='uk-float-'] {
  max-width: 100%; }

/* Overfow
 ========================================================================== */
.uk-overflow-hidden {
  overflow: hidden; }

/*
 * Enable scrollbars if content is clipped
 * Note: Firefox ignores `padding-bottom` for the scrollable overflow https://bugzilla.mozilla.org/show_bug.cgi?id=748518
 */
.uk-overflow-auto {
  overflow: auto;
  -webkit-overflow-scrolling: touch; }

.uk-overflow-auto > :last-child {
  margin-bottom: 0; }

/* Resize
 ========================================================================== */
.uk-resize {
  resize: both; }

.uk-resize-vertical {
  resize: vertical; }

/* Display
 ========================================================================== */
.uk-display-block {
  display: block !important; }

.uk-display-inline {
  display: inline !important; }

.uk-display-inline-block {
  display: inline-block !important; }

/* Inline
 ========================================================================== */
/*
 * 1. Container fits its content
 * 2. Create position context
 * 3. Prevent content overflow
 * 4. Behave like most inline-block elements
 * 5. Force hardware acceleration without creating a new stacking context
 *    to fix 1px glitch when combined with overlays and transitions in Webkit
 * 6. Clip child elements
 */
[class*='uk-inline'] {
  /* 1 */
  display: inline-block;
  /* 2 */
  position: relative;
  /* 3 */
  max-width: 100%;
  /* 4 */
  vertical-align: middle;
  /* 5 */
  -webkit-backface-visibility: hidden; }

.uk-inline-clip {
  /* 6 */
  overflow: hidden; }

/* Responsive objects
 ========================================================================== */
/*
 * Preserve original dimensions
 * Because `img, `video`, `canvas` and  `audio` are already responsive by default, see Base component
 */
.uk-preserve-width,
.uk-preserve-width canvas,
.uk-preserve-width img,
.uk-preserve-width svg,
.uk-preserve-width video {
  max-width: none; }

/*
 * Responsiveness
 * Corrects `max-width` and `max-height` behavior if padding and border are used
 */
.uk-responsive-width,
.uk-responsive-height {
  box-sizing: border-box; }

/*
 * 1. Set a maximum width. `important` needed to override `uk-preserve-width img`
 * 2. Auto scale the height. Only needed if `height` attribute is present
 */
.uk-responsive-width {
  /* 1 */
  max-width: 100% !important;
  /* 2 */
  height: auto; }

/*
 * 1. Set a maximum height. Only works if the parent element has a fixed height
 * 2. Auto scale the width. Only needed if `width` attribute is present
 * 3. Reset max-width, which `img, `video`, `canvas` and  `audio` already have by default
 */
.uk-responsive-height {
  /* 1 */
  max-height: 100%;
  /* 2 */
  width: auto;
  /* 3 */
  max-width: none; }

/* Border
 ========================================================================== */
.uk-border-circle {
  border-radius: 50%; }

.uk-border-pill {
  border-radius: 500px; }

.uk-border-rounded {
  border-radius: 5px; }

/*
 * Fix `overflow: hidden` to be ignored with border-radius and CSS transforms in Webkit
 */
.uk-inline-clip[class*='uk-border-'] {
  -webkit-transform: translateZ(0); }

/* Box-shadow
 ========================================================================== */
.uk-box-shadow-small {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); }

.uk-box-shadow-medium {
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); }

.uk-box-shadow-large {
  box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16); }

.uk-box-shadow-xlarge {
  box-shadow: 0 28px 50px rgba(0, 0, 0, 0.16); }

/*
 * Hover
 */
[class*='uk-box-shadow-hover'] {
  transition: box-shadow 0.1s ease-in-out; }

.uk-box-shadow-hover-small:hover {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); }

.uk-box-shadow-hover-medium:hover {
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08); }

.uk-box-shadow-hover-large:hover {
  box-shadow: 0 14px 25px rgba(0, 0, 0, 0.16); }

.uk-box-shadow-hover-xlarge:hover {
  box-shadow: 0 28px 50px rgba(0, 0, 0, 0.16); }

/* Box-shadow bottom
 ========================================================================== */
/*
 * 1. Set position.
 * 2. Set style
 * 3. Blur doesn't work on pseudo elements with negative `z-index` in Edge.
 *    Solved by using `before` and add position context to child elements.
 */
@supports ((-webkit-filter: blur(0)) or (filter: blur(0))) {
  .uk-box-shadow-bottom {
    display: inline-block;
    position: relative;
    max-width: 100%;
    vertical-align: middle; }
  .uk-box-shadow-bottom::before {
    content: '';
    /* 1 */
    position: absolute;
    bottom: -30px;
    left: 0;
    right: 0;
    /* 2 */
    height: 30px;
    border-radius: 100%;
    background: #444;
    -webkit-filter: blur(20px);
    filter: blur(20px); }
  /* 3 */
  .uk-box-shadow-bottom > * {
    position: relative; } }

/* Drop cap
 ========================================================================== */
/*
 * 1. Firefox doesn't apply `::first-letter` if the first letter is inside child elements
 *    https://bugzilla.mozilla.org/show_bug.cgi?id=214004
 * 2. In Firefox, a floating `::first-letter` doesn't have a line box and there for no `line-height`
 *    https://bugzilla.mozilla.org/show_bug.cgi?id=317933
 * 3. Caused by 1.: Edge creates two nested `::first-letter` containers, one for each selector
 *    This doubles the `font-size` exponential when using the `em` unit.
 */
.uk-dropcap::first-letter,
.uk-dropcap > p:first-of-type::first-letter {
  display: block;
  margin-right: 10px;
  float: left;
  font-size: 4.5em;
  line-height: 1; }

/* 2 */
@-moz-document url-prefix() {
  .uk-dropcap::first-letter,
  .uk-dropcap > p:first-of-type::first-letter {
    margin-top: 1.1%; } }

/* 3 */
@supports (-ms-ime-align: auto) {
  .uk-dropcap > p:first-of-type::first-letter {
    font-size: 1em; } }

/* Logo
 ========================================================================== */
/*
 * 1. Required for `a`
 */
.uk-logo {
  font-size: 1.5rem;
  font-family: -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";
  color: #666;
  /* 1 */
  text-decoration: none; }

/* Hover + Focus */
.uk-logo:hover,
.uk-logo:focus {
  color: #666;
  outline: none;
  /* 1 */
  text-decoration: none; }

.uk-logo-inverse {
  display: none; }

/* Disabled State
 ========================================================================== */
.uk-disabled {
  pointer-events: none; }

/* Drag State
 ========================================================================== */
/*
 * 1. Needed if moving over elements with have their own cursor on hover, e.g. links or buttons
 * 2. Fix dragging over iframes
 */
.uk-drag,
.uk-drag * {
  cursor: move; }

/* 2 */
.uk-drag iframe {
  pointer-events: none; }

/* Dragover State
 ========================================================================== */
/*
 * Create a box-shadow when dragging a file over the upload area
 */
.uk-dragover {
  box-shadow: 0 0 20px rgba(100, 100, 100, 0.3); }

/* Blend modes
 ========================================================================== */
.uk-blend-multiply {
  mix-blend-mode: multiply; }

.uk-blend-screen {
  mix-blend-mode: screen; }

.uk-blend-overlay {
  mix-blend-mode: overlay; }

.uk-blend-darken {
  mix-blend-mode: darken; }

.uk-blend-lighten {
  mix-blend-mode: lighten; }

.uk-blend-color-dodge {
  mix-blend-mode: color-dodge; }

.uk-blend-color-burn {
  mix-blend-mode: color-burn; }

.uk-blend-hard-light {
  mix-blend-mode: hard-light; }

.uk-blend-soft-light {
  mix-blend-mode: soft-light; }

.uk-blend-difference {
  mix-blend-mode: difference; }

.uk-blend-exclusion {
  mix-blend-mode: exclusion; }

.uk-blend-hue {
  mix-blend-mode: hue; }

.uk-blend-saturation {
  mix-blend-mode: saturation; }

.uk-blend-color {
  mix-blend-mode: color; }

.uk-blend-luminosity {
  mix-blend-mode: luminosity; }

/* Transform
========================================================================== */
.uk-transform-center {
  transform: translate(-50%, -50%); }

/* Transform Origin
========================================================================== */
.uk-transform-origin-top-left {
  transform-origin: 0 0; }

.uk-transform-origin-top-center {
  transform-origin: 50% 0; }

.uk-transform-origin-top-right {
  transform-origin: 100% 0; }

.uk-transform-origin-center-left {
  transform-origin: 0 50%; }

.uk-transform-origin-center-right {
  transform-origin: 100% 50%; }

.uk-transform-origin-bottom-left {
  transform-origin: 0 100%; }

.uk-transform-origin-bottom-center {
  transform-origin: 50% 100%; }

.uk-transform-origin-bottom-right {
  transform-origin: 100% 100%; }

/* ========================================================================
   Component: Flex
 ========================================================================== */
.uk-flex {
  display: flex; }

.uk-flex-inline {
  display: inline-flex; }

/*
 * Remove pseudo elements created by micro clearfix as precaution
 */
.uk-flex::before,
.uk-flex::after,
.uk-flex-inline::before,
.uk-flex-inline::after {
  display: none; }

/* Alignment
 ========================================================================== */
/*
 * Align items along the main axis of the current line of the flex container
 * Row: Horizontal
 */
.uk-flex-left {
  justify-content: flex-start; }

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

.uk-flex-right {
  justify-content: flex-end; }

.uk-flex-between {
  justify-content: space-between; }

.uk-flex-around {
  justify-content: space-around; }

/* Phone landscape and bigger */
@media (min-width: 640px) {
  .uk-flex-left\@s {
    justify-content: flex-start; }
  .uk-flex-center\@s {
    justify-content: center; }
  .uk-flex-right\@s {
    justify-content: flex-end; }
  .uk-flex-between\@s {
    justify-content: space-between; }
  .uk-flex-around\@s {
    justify-content: space-around; } }

/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-flex-left\@m {
    justify-content: flex-start; }
  .uk-flex-center\@m {
    justify-content: center; }
  .uk-flex-right\@m {
    justify-content: flex-end; }
  .uk-flex-between\@m {
    justify-content: space-between; }
  .uk-flex-around\@m {
    justify-content: space-around; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-flex-left\@l {
    justify-content: flex-start; }
  .uk-flex-center\@l {
    justify-content: center; }
  .uk-flex-right\@l {
    justify-content: flex-end; }
  .uk-flex-between\@l {
    justify-content: space-between; }
  .uk-flex-around\@l {
    justify-content: space-around; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-flex-left\@xl {
    justify-content: flex-start; }
  .uk-flex-center\@xl {
    justify-content: center; }
  .uk-flex-right\@xl {
    justify-content: flex-end; }
  .uk-flex-between\@xl {
    justify-content: space-between; }
  .uk-flex-around\@xl {
    justify-content: space-around; } }

/*
 * Align items in the cross axis of the current line of the flex container
 * Row: Vertical
 */
.uk-flex-stretch {
  align-items: stretch; }

.uk-flex-top {
  align-items: flex-start; }

.uk-flex-middle {
  align-items: center; }

.uk-flex-bottom {
  align-items: flex-end; }

/* Direction
 ========================================================================== */
.uk-flex-row {
  flex-direction: row; }

.uk-flex-row-reverse {
  flex-direction: row-reverse; }

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

.uk-flex-column-reverse {
  flex-direction: column-reverse; }

/* Wrap
 ========================================================================== */
.uk-flex-nowrap {
  flex-wrap: nowrap; }

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

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

/*
 * Aligns items within the flex container when there is extra space in the cross-axis
 * Only works if there is more than one line of flex items
 */
.uk-flex-wrap-stretch {
  align-content: stretch; }

.uk-flex-wrap-top {
  align-content: flex-start; }

.uk-flex-wrap-middle {
  align-content: center; }

.uk-flex-wrap-bottom {
  align-content: flex-end; }

.uk-flex-wrap-between {
  align-content: space-between; }

.uk-flex-wrap-around {
  align-content: space-around; }

/* Item ordering
 ========================================================================== */
/*
 * Default is 0
 */
.uk-flex-first {
  order: -1; }

.uk-flex-last {
  order: 99; }

/* Phone landscape and bigger */
@media (min-width: 640px) {
  .uk-flex-first\@s {
    order: -1; }
  .uk-flex-last\@s {
    order: 99; } }

/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-flex-first\@m {
    order: -1; }
  .uk-flex-last\@m {
    order: 99; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-flex-first\@l {
    order: -1; }
  .uk-flex-last\@l {
    order: 99; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-flex-first\@xl {
    order: -1; }
  .uk-flex-last\@xl {
    order: 99; } }

/* Item dimensions
 ========================================================================== */
/*
 * Initial: 0 1 auto
 * Content dimensions, but shrinks
 */
/*
 * No Flex: 0 0 auto
 * Content dimensions
 */
.uk-flex-none {
  flex: none; }

/*
 * Relative Flex: 1 1 auto
 * Space is allocated considering content
 */
.uk-flex-auto {
  flex: auto; }

/*
 * Absolute Flex: 1 1 0%
 * Space is allocated solely based on flex
 */
.uk-flex-1 {
  flex: 1; }

/* ========================================================================
   Component: Margin
 ========================================================================== */
/*
 * Default
 */
.uk-margin {
  margin-bottom: 20px; }

* + .uk-margin {
  margin-top: 20px !important; }

.uk-margin-top {
  margin-top: 20px !important; }

.uk-margin-bottom {
  margin-bottom: 20px !important; }

.uk-margin-left {
  margin-left: 20px !important; }

.uk-margin-right {
  margin-right: 20px !important; }

/* Small
 ========================================================================== */
.uk-margin-small {
  margin-bottom: 10px; }

* + .uk-margin-small {
  margin-top: 10px !important; }

.uk-margin-small-top {
  margin-top: 10px !important; }

.uk-margin-small-bottom {
  margin-bottom: 10px !important; }

.uk-margin-small-left {
  margin-left: 10px !important; }

.uk-margin-small-right {
  margin-right: 10px !important; }

/* Medium
 ========================================================================== */
.uk-margin-medium {
  margin-bottom: 40px; }

* + .uk-margin-medium {
  margin-top: 40px !important; }

.uk-margin-medium-top {
  margin-top: 40px !important; }

.uk-margin-medium-bottom {
  margin-bottom: 40px !important; }

.uk-margin-medium-left {
  margin-left: 40px !important; }

.uk-margin-medium-right {
  margin-right: 40px !important; }

/* Large
 ========================================================================== */
.uk-margin-large {
  margin-bottom: 40px; }

* + .uk-margin-large {
  margin-top: 40px !important; }

.uk-margin-large-top {
  margin-top: 40px !important; }

.uk-margin-large-bottom {
  margin-bottom: 40px !important; }

.uk-margin-large-left {
  margin-left: 40px !important; }

.uk-margin-large-right {
  margin-right: 40px !important; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-margin-large {
    margin-bottom: 70px; }
  * + .uk-margin-large {
    margin-top: 70px !important; }
  .uk-margin-large-top {
    margin-top: 70px !important; }
  .uk-margin-large-bottom {
    margin-bottom: 70px !important; }
  .uk-margin-large-left {
    margin-left: 70px !important; }
  .uk-margin-large-right {
    margin-right: 70px !important; } }

/* XLarge
 ========================================================================== */
.uk-margin-xlarge {
  margin-bottom: 70px; }

* + .uk-margin-xlarge {
  margin-top: 70px !important; }

.uk-margin-xlarge-top {
  margin-top: 70px !important; }

.uk-margin-xlarge-bottom {
  margin-bottom: 70px !important; }

.uk-margin-xlarge-left {
  margin-left: 70px !important; }

.uk-margin-xlarge-right {
  margin-right: 70px !important; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-margin-xlarge {
    margin-bottom: 140px; }
  * + .uk-margin-xlarge {
    margin-top: 140px !important; }
  .uk-margin-xlarge-top {
    margin-top: 140px !important; }
  .uk-margin-xlarge-bottom {
    margin-bottom: 140px !important; }
  .uk-margin-xlarge-left {
    margin-left: 140px !important; }
  .uk-margin-xlarge-right {
    margin-right: 140px !important; } }

/* Auto
 ========================================================================== */
.uk-margin-auto {
  margin-left: auto !important;
  margin-right: auto !important; }

.uk-margin-auto-top {
  margin-top: auto !important; }

.uk-margin-auto-bottom {
  margin-bottom: auto !important; }

.uk-margin-auto-left {
  margin-left: auto !important; }

.uk-margin-auto-right {
  margin-right: auto !important; }

.uk-margin-auto-vertical {
  margin-top: auto !important;
  margin-bottom: auto !important; }

/* Phone landscape and bigger */
@media (min-width: 640px) {
  .uk-margin-auto\@s {
    margin-left: auto !important;
    margin-right: auto !important; }
  .uk-margin-auto-left\@s {
    margin-left: auto !important; }
  .uk-margin-auto-right\@s {
    margin-right: auto !important; } }

/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-margin-auto\@m {
    margin-left: auto !important;
    margin-right: auto !important; }
  .uk-margin-auto-left\@m {
    margin-left: auto !important; }
  .uk-margin-auto-right\@m {
    margin-right: auto !important; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-margin-auto\@l {
    margin-left: auto !important;
    margin-right: auto !important; }
  .uk-margin-auto-left\@l {
    margin-left: auto !important; }
  .uk-margin-auto-right\@l {
    margin-right: auto !important; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-margin-auto\@xl {
    margin-left: auto !important;
    margin-right: auto !important; }
  .uk-margin-auto-left\@xl {
    margin-left: auto !important; }
  .uk-margin-auto-right\@xl {
    margin-right: auto !important; } }

/* Remove
 ========================================================================== */
.uk-margin-remove {
  margin: 0 !important; }

.uk-margin-remove-top {
  margin-top: 0 !important; }

.uk-margin-remove-bottom {
  margin-bottom: 0 !important; }

.uk-margin-remove-left {
  margin-left: 0 !important; }

.uk-margin-remove-right {
  margin-right: 0 !important; }

.uk-margin-remove-vertical {
  margin-top: 0 !important;
  margin-bottom: 0 !important; }

.uk-margin-remove-adjacent + *,
.uk-margin-remove-first-child > :first-child {
  margin-top: 0 !important; }

.uk-margin-remove-last-child > :last-child {
  margin-bottom: 0 !important; }

/* Phone landscape and bigger */
@media (min-width: 640px) {
  .uk-margin-remove-left\@s {
    margin-left: 0 !important; }
  .uk-margin-remove-right\@s {
    margin-right: 0 !important; } }

/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-margin-remove-left\@m {
    margin-left: 0 !important; }
  .uk-margin-remove-right\@m {
    margin-right: 0 !important; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-margin-remove-left\@l {
    margin-left: 0 !important; }
  .uk-margin-remove-right\@l {
    margin-right: 0 !important; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-margin-remove-left\@xl {
    margin-left: 0 !important; }
  .uk-margin-remove-right\@xl {
    margin-right: 0 !important; } }

/* ========================================================================
   Component: Padding
 ========================================================================== */
.uk-padding {
  padding: 30px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-padding {
    padding: 40px; } }

/* Small
 ========================================================================== */
.uk-padding-small {
  padding: 15px; }

/* Large
 ========================================================================== */
.uk-padding-large {
  padding: 30px; }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-padding-large {
    padding: 70px; } }

/* Remove
 ========================================================================== */
.uk-padding-remove {
  padding: 0 !important; }

.uk-padding-remove-top {
  padding-top: 0 !important; }

.uk-padding-remove-bottom {
  padding-bottom: 0 !important; }

.uk-padding-remove-left {
  padding-left: 0 !important; }

.uk-padding-remove-right {
  padding-right: 0 !important; }

.uk-padding-remove-vertical {
  padding-top: 0 !important;
  padding-bottom: 0 !important; }

.uk-padding-remove-horizontal {
  padding-left: 0 !important;
  padding-right: 0 !important; }

/* ========================================================================
   Component: Position
 ========================================================================== */
/* Directions
 ========================================================================== */
[class*='uk-position-top'],
[class*='uk-position-bottom'],
[class*='uk-position-left'],
[class*='uk-position-right'],
[class*='uk-position-center'] {
  position: absolute !important; }

/* Edges
 ========================================================================== */
/* Don't use `width: 100%` because it is wrong if the parent has padding. */
.uk-position-top {
  top: 0;
  left: 0;
  right: 0; }

.uk-position-bottom {
  bottom: 0;
  left: 0;
  right: 0; }

.uk-position-left {
  top: 0;
  bottom: 0;
  left: 0; }

.uk-position-right {
  top: 0;
  bottom: 0;
  right: 0; }

/* Corners
 ========================================================================== */
.uk-position-top-left {
  top: 0;
  left: 0; }

.uk-position-top-right {
  top: 0;
  right: 0; }

.uk-position-bottom-left {
  bottom: 0;
  left: 0; }

.uk-position-bottom-right {
  bottom: 0;
  right: 0; }

/*
 * Center
 * 1. Fix text wrapping if content is larger than 50% of the container.
 */
.uk-position-center {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  /* 1 */
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  max-width: 100%;
  box-sizing: border-box; }

/* Vertical */
[class*='uk-position-center-left'],
[class*='uk-position-center-right'] {
  top: 50%;
  transform: translateY(-50%); }

.uk-position-center-left {
  left: 0; }

.uk-position-center-right {
  right: 0; }

.uk-position-center-left-out {
  right: 100%;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content; }

.uk-position-center-right-out {
  left: 100%;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content; }

/* Horizontal */
.uk-position-top-center,
.uk-position-bottom-center {
  left: 50%;
  transform: translateX(-50%);
  /* 1 */
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  max-width: 100%;
  box-sizing: border-box; }

.uk-position-top-center {
  top: 0; }

.uk-position-bottom-center {
  bottom: 0; }

/* Cover
 ========================================================================== */
.uk-position-cover {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0; }

/* Utility
 ========================================================================== */
.uk-position-relative {
  position: relative !important; }

.uk-position-absolute {
  position: absolute !important; }

.uk-position-fixed {
  position: fixed !important; }

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

/* Margin modifier
 ========================================================================== */
/*
 * Small
 */
.uk-position-small {
  max-width: calc(100% - (15px * 2));
  margin: 15px; }

.uk-position-small.uk-position-center {
  transform: translate(-50%, -50%) translate(-15px, -15px); }

.uk-position-small[class*='uk-position-center-left'],
.uk-position-small[class*='uk-position-center-right'] {
  transform: translateY(-50%) translateY(-15px); }

.uk-position-small.uk-position-top-center,
.uk-position-small.uk-position-bottom-center {
  transform: translateX(-50%) translateX(-15px); }

/*
 * Medium
 */
.uk-position-medium {
  max-width: calc(100% - (30px * 2));
  margin: 30px; }

.uk-position-medium.uk-position-center {
  transform: translate(-50%, -50%) translate(-30px, -30px); }

.uk-position-medium[class*='uk-position-center-left'],
.uk-position-medium[class*='uk-position-center-right'] {
  transform: translateY(-50%) translateY(-30px); }

.uk-position-medium.uk-position-top-center,
.uk-position-medium.uk-position-bottom-center {
  transform: translateX(-50%) translateX(-30px); }

/*
 * Large
 */
.uk-position-large {
  max-width: calc(100% - (30px * 2));
  margin: 30px; }

.uk-position-large.uk-position-center {
  transform: translate(-50%, -50%) translate(-30px, -30px); }

.uk-position-large[class*='uk-position-center-left'],
.uk-position-large[class*='uk-position-center-right'] {
  transform: translateY(-50%) translateY(-30px); }

.uk-position-large.uk-position-top-center,
.uk-position-large.uk-position-bottom-center {
  transform: translateX(-50%) translateX(-30px); }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-position-large {
    max-width: calc(100% - (50px * 2));
    margin: 50px; }
  .uk-position-large.uk-position-center {
    transform: translate(-50%, -50%) translate(-50px, -50px); }
  .uk-position-large[class*='uk-position-center-left'],
  .uk-position-large[class*='uk-position-center-right'] {
    transform: translateY(-50%) translateY(-50px); }
  .uk-position-large.uk-position-top-center,
  .uk-position-large.uk-position-bottom-center {
    transform: translateX(-50%) translateX(-50px); } }

/* ========================================================================
   Component: Transition
 ========================================================================== */
/* Toggle (Hover + Focus)
 ========================================================================== */
/*
 * 1. Prevent tab highlighting on iOS.
 */
.uk-transition-toggle {
  /* 1 */
  -webkit-tap-highlight-color: transparent; }

/*
 * Remove outline for `tabindex`
 */
.uk-transition-toggle:focus {
  outline: none; }

/* Transitions
 ========================================================================== */
/*
 * The toggle is triggered on touch devices by two methods:
 * 1. Using `:focus` and tabindex
 * 2. Using `:hover` and a `touchstart` event listener registered on the document
 *    (Doesn't work on Surface touch devices)
 *
 * Note: Transitions don't work with `uk-postion-center-*` classes because they also use `transform`,
 *       therefore it's recommended to use an extra `div` for the transition.
 */
.uk-transition-fade,
[class*='uk-transition-scale'],
[class*='uk-transition-slide'] {
  transition: 0.3s ease-out;
  transition-property: opacity, transform, -webkit-filter;
  transition-property: opacity, transform, filter;
  transition-property: opacity, transform, filter, -webkit-filter;
  opacity: 0; }

/*
 * Fade
 */
.uk-transition-toggle:hover .uk-transition-fade,
.uk-transition-toggle:focus .uk-transition-fade,
.uk-transition-active.uk-active .uk-transition-fade {
  opacity: 1; }

/*
 * Scale
 */
.uk-transition-scale-up {
  transform: scale(1, 1); }

.uk-transition-scale-down {
  transform: scale(1.1, 1.1); }

/* Show */
.uk-transition-toggle:hover .uk-transition-scale-up,
.uk-transition-toggle:focus .uk-transition-scale-up,
.uk-transition-active.uk-active .uk-transition-scale-up {
  opacity: 1;
  transform: scale(1.1, 1.1); }

.uk-transition-toggle:hover .uk-transition-scale-down,
.uk-transition-toggle:focus .uk-transition-scale-down,
.uk-transition-active.uk-active .uk-transition-scale-down {
  opacity: 1;
  transform: scale(1, 1); }

/*
 * Slide
 */
.uk-transition-slide-top {
  transform: translateY(-100%); }

.uk-transition-slide-bottom {
  transform: translateY(100%); }

.uk-transition-slide-left {
  transform: translateX(-100%); }

.uk-transition-slide-right {
  transform: translateX(100%); }

.uk-transition-slide-top-small {
  transform: translateY(-10px); }

.uk-transition-slide-bottom-small {
  transform: translateY(10px); }

.uk-transition-slide-left-small {
  transform: translateX(-10px); }

.uk-transition-slide-right-small {
  transform: translateX(10px); }

.uk-transition-slide-top-medium {
  transform: translateY(-50px); }

.uk-transition-slide-bottom-medium {
  transform: translateY(50px); }

.uk-transition-slide-left-medium {
  transform: translateX(-50px); }

.uk-transition-slide-right-medium {
  transform: translateX(50px); }

/* Show */
.uk-transition-toggle:hover [class*='uk-transition-slide'],
.uk-transition-toggle:focus [class*='uk-transition-slide'],
.uk-transition-active.uk-active [class*='uk-transition-slide'] {
  opacity: 1;
  transform: translate(0, 0); }

/* Opacity modifier
 ========================================================================== */
.uk-transition-opaque {
  opacity: 1; }

/* Duration modifiers
 ========================================================================== */
.uk-transition-slow {
  transition-duration: 0.7s; }

/* ========================================================================
   Component: Visibility
 ========================================================================== */
/*
 * Hidden
 * `hidden` attribute also set here to make it stronger
 */
[hidden],
.uk-hidden {
  display: none !important; }

/* Phone landscape and bigger */
@media (min-width: 640px) {
  .uk-hidden\@s {
    display: none !important; } }

/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-hidden\@m {
    display: none !important; } }

/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-hidden\@l {
    display: none !important; } }

/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-hidden\@xl {
    display: none !important; } }

/*
 * Visible
 */
/* Phone portrait and smaller */
@media (max-width: 639px) {
  .uk-visible\@s {
    display: none !important; } }

/* Phone landscape and smaller */
@media (max-width: 959px) {
  .uk-visible\@m {
    display: none !important; } }

/* Tablet landscape and smaller */
@media (max-width: 1199px) {
  .uk-visible\@l {
    display: none !important; } }

/* Desktop and smaller */
@media (max-width: 1599px) {
  .uk-visible\@xl {
    display: none !important; } }

/* Visibility
 ========================================================================== */
.uk-invisible {
  visibility: hidden !important; }

/* Toggle (Hover + Focus)
 ========================================================================== */
/*
 * Hidden
 * 1. The toggle is triggered on touch devices using `:focus` and tabindex
 * 2. The target stays visible if any element within receives focus through keyboard
 *    Doesn't work in Edge, yet.
 * 3. Can't use `display: none` nor `visibility: hidden` because both are not focusable.
 *
 */
/* 1 + 2 */
.uk-visible-toggle:not(:hover):not(:focus) .uk-hidden-hover:not(:focus-within) {
  /* 3 */
  position: absolute !important;
  width: 0 !important;
  height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important; }

/*
 * Invisible
 */
/* 1 + 2 */
.uk-visible-toggle:not(:hover):not(:focus) .uk-invisible-hover:not(:focus-within) {
  /* 3 */
  opacity: 0 !important; }

/*
 * 1. Prevent tab highlighting on iOS.
 */
.uk-visible-toggle {
  /* 1 */
  -webkit-tap-highlight-color: transparent; }

/*
 * Remove outline for `tabindex`
 */
.uk-visible-toggle:focus {
  outline: none; }

/* Touch
 ========================================================================== */
/*
 * Hide if primary pointing device has limited accuracy, e.g. a touch screen.
 * Works on mobile browsers: Safari, Chrome and Android browser
 */
@media (pointer: coarse) {
  .uk-hidden-touch {
    display: none !important; } }

/*
 * Hide if primary pointing device is accurate, e.g. mouse.
 * 1. Fallback for IE11 and Firefox, because `pointer` is not supported
 * 2. Reset if supported
 */
/* 1 */
.uk-hidden-notouch {
  display: none !important; }

@media (pointer: coarse) {
  .uk-hidden-notouch {
    display: block !important; } }

/* ========================================================================
   Component: Inverse
 ========================================================================== */
/*
 * Implemented class depends on the general theme color
 * `uk-light` is for light colors on dark backgrounds
 * `uk-dark` is or dark colors on light backgrounds
 */

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3ZlbmRvci91aWtpdC9zY3NzL2NvbXBvbmVudHMvYmFzZS5zY3NzIiwidWlraXQuY3NzIiwiLi4vdmVuZG9yL3Vpa2l0L3Njc3MvdmFyaWFibGVzLnNjc3MiLCIuLi92ZW5kb3IvdWlraXQvc2Nzcy9jb21wb25lbnRzL2xpbmsuc2NzcyIsIi4uL3ZlbmRvci91aWtpdC9zY3NzL2NvbXBvbmVudHMvaGVhZGluZy5zY3NzIiwiLi4vdmVuZG9yL3Vpa2l0L3Njc3MvY29tcG9uZW50cy9kaXZpZGVyLnNjc3MiLCIuLi92ZW5kb3IvdWlraXQvc2Nzcy9jb21wb25lbnRzL21peGluLnNjc3MiLCIuLi92ZW5kb3IvdWlraXQvc2Nzcy9jb21wb25lbnRzL2xpc3Quc2NzcyIsIi4uL3ZlbmRvci91aWtpdC9zY3NzL2NvbXBvbmVudHMvaWNvbi5zY3NzIiwiLi4vdmVuZG9yL3Vpa2l0L3Njc3MvY29tcG9uZW50cy9mb3JtLnNjc3MiLCIuLi92ZW5kb3IvdWlraXQvc2Nzcy9jb21wb25lbnRzL2J1dHRvbi5zY3NzIiwiLi4vdmVuZG9yL3Vpa2l0L3Njc3MvY29tcG9uZW50cy9zZWN0aW9uLnNjc3MiLCIuLi92ZW5kb3IvdWlraXQvc2Nzcy9jb21wb25lbnRzL2NvbnRhaW5lci5zY3NzIiwiLi4vdmVuZG9yL3Vpa2l0L3Njc3MvY29tcG9uZW50cy9ncmlkLnNjc3MiLCIuLi92ZW5kb3IvdWlraXQvc2Nzcy9jb21wb25lbnRzL2NhcmQuc2NzcyIsIi4uL3ZlbmRvci91aWtpdC9zY3NzL2NvbXBvbmVudHMvY2xvc2Uuc2NzcyIsIi4uL3ZlbmRvci91aWtpdC9zY3NzL2NvbXBvbmVudHMvbmF2LnNjc3MiLCIuLi92ZW5kb3IvdWlraXQvc2Nzcy9jb21wb25lbnRzL25hdmJhci5zY3NzIiwiLi4vdmVuZG9yL3Vpa2l0L3Njc3MvY29tcG9uZW50cy9zbGlkZW5hdi5zY3NzIiwiLi4vdmVuZG9yL3Vpa2l0L3Njc3MvY29tcG9uZW50cy9kb3RuYXYuc2NzcyIsIi4uL3ZlbmRvci91aWtpdC9zY3NzL2NvbXBvbmVudHMvYWNjb3JkaW9uLnNjc3MiLCIuLi92ZW5kb3IvdWlraXQvc2Nzcy9jb21wb25lbnRzL2Ryb3Auc2NzcyIsIi4uL3ZlbmRvci91aWtpdC9zY3NzL2NvbXBvbmVudHMvZHJvcGRvd24uc2NzcyIsIi4uL3ZlbmRvci91aWtpdC9zY3NzL2NvbXBvbmVudHMvbW9kYWwuc2NzcyIsIi4uL3ZlbmRvci91aWtpdC9zY3NzL2NvbXBvbmVudHMvbGlnaHRib3guc2NzcyIsIi4uL3ZlbmRvci91aWtpdC9zY3NzL2NvbXBvbmVudHMvc2xpZGVyLnNjc3MiLCIuLi92ZW5kb3IvdWlraXQvc2Nzcy9jb21wb25lbnRzL3N0aWNreS5zY3NzIiwiLi4vdmVuZG9yL3Vpa2l0L3Njc3MvY29tcG9uZW50cy9vZmZjYW52YXMuc2NzcyIsIi4uL3ZlbmRvci91aWtpdC9zY3NzL2NvbXBvbmVudHMvdG9vbHRpcC5zY3NzIiwiLi4vdmVuZG9yL3Vpa2l0L3Njc3MvY29tcG9uZW50cy9hbmltYXRpb24uc2NzcyIsIi4uL3ZlbmRvci91aWtpdC9zY3NzL2NvbXBvbmVudHMvd2lkdGguc2NzcyIsIi4uL3ZlbmRvci91aWtpdC9zY3NzL2NvbXBvbmVudHMvaGVpZ2h0LnNjc3MiLCIuLi92ZW5kb3IvdWlraXQvc2Nzcy9jb21wb25lbnRzL3RleHQuc2NzcyIsIi4uL3ZlbmRvci91aWtpdC9zY3NzL2NvbXBvbmVudHMvY29sdW1uLnNjc3MiLCIuLi92ZW5kb3IvdWlraXQvc2Nzcy9jb21wb25lbnRzL2FsaWduLnNjc3MiLCIuLi92ZW5kb3IvdWlraXQvc2Nzcy9jb21wb25lbnRzL3N2Zy5zY3NzIiwiLi4vdmVuZG9yL3Vpa2l0L3Njc3MvY29tcG9uZW50cy91dGlsaXR5LnNjc3MiLCIuLi92ZW5kb3IvdWlraXQvc2Nzcy9jb21wb25lbnRzL2ZsZXguc2NzcyIsIi4uL3ZlbmRvci91aWtpdC9zY3NzL2NvbXBvbmVudHMvbWFyZ2luLnNjc3MiLCIuLi92ZW5kb3IvdWlraXQvc2Nzcy9jb21wb25lbnRzL3BhZGRpbmcuc2NzcyIsIi4uL3ZlbmRvci91aWtpdC9zY3NzL2NvbXBvbmVudHMvcG9zaXRpb24uc2NzcyIsIi4uL3ZlbmRvci91aWtpdC9zY3NzL2NvbXBvbmVudHMvdHJhbnNpdGlvbi5zY3NzIiwiLi4vdmVuZG9yL3Vpa2l0L3Njc3MvY29tcG9uZW50cy92aXNpYmlsaXR5LnNjc3MiLCIuLi92ZW5kb3IvdWlraXQvc2Nzcy9jb21wb25lbnRzL2ludmVyc2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrRkE7OzZFQ2hGNkU7QURvRjdFOzs7OztFQzlFRTtBRHFGRjtFQUNJLE1BQUE7RUFDQSxrTUVkc007RUZldE0sZUVabUI7RUZhbkIsbUJFZDBCO0VGZTFCLGdCRVpvQjtFRmFwQixNQUFBO0VBQ0EsOEJBQThCO0VBQzlCLE1BQUE7RUFDQSxnQkV6Q29CO0VGMENwQixXRWhHZSxFQUFBOztBRm9HbkI7O0VDcEZFO0FEd0ZGO0VBQU8sU0FBUyxFQUFBOztBQUdoQjs2RUN0RjZFO0FEeUY3RTs7RUN0RkU7QUQwRkY7O0VBQ1UsYUFBYSxFQUFBOztBQUV2Qjs7RUN0RkU7QUQwRkY7O0VBRUksY0V6Q3VCO0VGMEN2QixxQkV4QzRCO0VGeUM1QixlQUFlLEVBQUE7O0FBSW5COzs7O0VBSUksY0VoRDZCO0VGaUQ3QiwwQkUvQ3VDLEVBQUE7O0FGb0QzQzs2RUM3RjZFO0FEZ0c3RTs7O0VDNUZFO0FEaUdGO0VBQ0ksTUFBQTtFQUNBLHlDQUFpQztFQUFqQyxpQ0FBaUM7RUFDakMsTUFBQTtFQUNBLHFDQUFxQyxFQUFBOztBQUd6Qzs7RUMvRkU7QURtR0Y7O0VBQ1MsbUJFdkV1QixFQUFBOztBRnlFaEM7Ozs7RUM3RkU7QURtR0Y7OztFQUdJLE1BQUE7RUFDQSx3Q0VqRitDO0VGa0YvQyxNQUFBO0VBQ0EsbUJFOUg2QjtFRitIN0IsTUFBQTtFQUNBLGNFcko4QjtFRnNKOUIsbUJBQW1CLEVBQUE7O0FBSXZCOztFQ2xHRTtBRHNHRjtFQUFLLGNFOUo2QixFQUFBOztBRmdLbEM7O0VDbEdFO0FE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QTs7RUFDeUIsaUJQbEdHLEVBQUE7O0FPb0c1Qjs7RVJ1eEJFO0FRbnhCRjs7O0VBR0ksZ0JQc0d1QjtFT3JHdkIsbUJQcUd1QjtFT3BHdkIsbUJBQW1CLEVBQUE7O0FBSXZCLFVBQUE7QUFDQTs7O0VBR0ksYUFBYTtFQUNiLHlCUDVRNkI7RU82UTdCLFdQelJlLEVBQUE7O0FPNlJuQixhQUFBO0FBQ0E7OztFQUdJLHlCUHJSNkI7RU9zUjdCLFdQaFBxQixFQUFBOztBT29QekI7O0VSZ3hCRTtBUTV3QkY7RUFBbUMsc0JBQXlDLEVBQUE7O0FBQzVFO0VBQXlCLFdQelBBLEVBQUE7O0FPeVB6QjtFQUF5QixXUHpQQSxFQUFBOztBT3lQekI7RUFBeUIsV1B6UEEsRUFBQTs7QU95UHpCO0VBQXlCLFdQelBBLEVBQUE7O0FPMlB6QjtFQUFzQyxzQkFBeUMsRUFBQTs7QUFDL0U7RUFBNEIsV1A1UEgsRUFBQTs7QU80UHpCO0VBQTRCLFdQNVBILEVBQUE7O0FPNFB6QjtFQUE0QixXUDVQSCxFQUFBOztBTzRQekI7RUFBNEIsV1A1UEgsRUFBQTs7QU8rUHpCOzZFUm14QjZFO0FRaHhCN0U7O0VSbXhCRTtBUS93QkY7RUFBaUIsbUJQelFnQixFQUFBOztBTzJRakM7RUFDSSxZUHZKOEI7RU93SjlCLGlCUGdFK0I7RU8vRC9CLGtCUCtEK0IsRUFBQTs7QU81RG5DO0VBQXNELGlCUDVKcEIsRUFBQTs7QU84SmxDOztFUm14QkU7QVEvd0JGO0VBQWlCLGtCUDNVZ0IsRUFBQTs7QU82VWpDO0VBQ0ksWVBuSzhCO0VPb0s5QixrQlBzRGdDO0VPckRoQyxtQlBxRGdDLEVBQUE7O0FPbERwQztFQUFzRCxpQlB4S3BCLEVBQUE7O0FPMktsQzs2RVJpeEI2RTtBUTl3QjdFOztFUml4QkU7QVE3d0JGOztFQUVJLGNQaFU4QixFQUFBOztBT29VbEM7O0VSOHdCRTtBUTF3QkY7O0VBRUksY1BoVitCLEVBQUE7O0FPb1ZuQzs7RVIyd0JFO0FRdndCRjtFQUNJLGdCQUFnQixFQUFBOztBQVNwQjs2RVJrd0I2RTtBUS92QjdFOzs7RVJtd0JFO0FROXZCRjtFQUE2QixXUE9MLEVBQUE7O0FPTHhCO0VBQThCLFdBQWtDLEVBQUE7O0FBRWhFO0VBQXVCLFlQSUMsRUFBQTs7QU9GeEI7RUFBd0IsWVBHQyxFQUFBOztBT0R6QjtFQUF1QixZUEVDLEVBQUE7O0FPQ3hCOzZFUm93QjZFO0FRandCN0U7Ozs7O0VSdXdCRTtBUWh3QkY7RUFDSSxNQUFBO0VBQ0Esd0JBQXdCO0VBQ3hCLHFCQUFxQjtFQUNyQixNQUFBO0VBQ0EsbUJQZjRCO0VJbFg1QixzWkFBMEM7RUdtWTFDLDRCQUE0QjtFQUM1Qiw2QkFBNkIsRUFBQTs7QUFHakMsTUFBQTtBQUNBO0VBQXFELGFBQWEsRUFBQTs7QUFFbEUsTUFBQTtBQUNBO0VBQWdELFdQdkJqQixFQUFBOztBT3lCL0I7O0VSb3dCRTtBUWh3QkY7RUhqWkksc1pBQTBDLEVBQUE7O0FHb1o5Qzs2RVJrd0I2RTtBUS92QjdFOztFUmt3QkU7QVE5dkJEO0VBQ0csbUJQdEM4QjtFT3VDOUIsNEJBQTRCO0VBQzVCLDZCQUE2QixFQUFBOztBQUdqQzs7RUhqYUkscVRBQTBDLEVBQUE7O0FHb2E5QyxNQUFBO0FBQ0E7RUFBcUQsYUFBYSxFQUFBOztBQUdsRTs7NkVSaXdCNkU7QVE3dkI3RTs7Ozs7OztFUnF3QkU7QVE1dkJGOztFQUVJLE1BQUE7RUFDQSxxQkFBcUI7RUFDckIsWVBqRWtCO0VPa0VsQixXUGxFa0I7RU9tRWxCLE1BQUE7RUFDQSxnQkFBZ0I7RUFDaEIsTUFBQTtFQUNBLGdCUHJFd0I7RU9zRXhCLHNCQUFzQjtFQUN0QixNQUFBO0VBQ0Esd0JBQXdCO0VBQ3hCLHFCQUFxQjtFQUNyQixNQUFBO0VBQ0EseUJQMUV3RDtFTzJFeEQsTUFBQTtFQUNBLDRCQUE0QjtFQUM1Qiw0QkFBNEIsRUFBQTs7QUFJaEM7RUFBWSxrQkFBa0IsRUFBQTs7QUFFOUIsVUFBQTtBQUNBOztFQUVJLGFBQWEsRUFBQTs7QUFJakI7O0VSNHZCRTtBUXh2QkY7OztFQUdJLHlCUGplK0IsRUFBQTs7QU9xZW5DLFVBQUE7QUFDQTs7O0VBR0kseUJQdEd5RSxFQUFBOztBTzBHN0U7O0VSdXZCRTtBUW52QkY7RUgzZUksbVRBQTBDLEVBQUE7O0FHNGU5QztFSDVlSSxtVkFBMEMsRUFBQTs7QUc2ZTlDO0VIN2VJLHVVQUEwQyxFQUFBOztBRytlOUM7O0VSMnZCRTtBUXZ2QkY7O0VBRUkseUJQaGdCNkIsRUFBQTs7QU9vZ0JqQztFSHpmSSxtVEFBMEMsRUFBQTs7QUcwZjlDO0VIMWZJLG1WQUEwQyxFQUFBOztBRzJmOUM7RUgzZkksdVVBQTBDLEVBQUE7O0FHOGY5Qzs2RVIydkI2RTtBUXh2QjdFOzs7Ozs7RVIrdkJFO0FRdnZCRjtFQUNJLE1BQUE7RUFDQSxXQUFXO0VBQ1gsTUFBQTtFQUNBLGNBQWM7RUFDZCxNQUFBO0VBQ0EsVUFBVTtFQUNWLE1BQUE7RUFDQSxpQlB2YjJCO0VPd2IzQixnQlBqSnlCLEVBQUE7O0FPc0o3Qjs2RVJzdkI2RTtBUW52QjdFOzs7OztFUnl2QkU7QVFsdkJGO0VBQ0ksTUFBQTtFQUNBLHFCQUFxQjtFQUNyQixNQUFBO0VBQ0Esa0JBQWtCO0VBQ2xCLE1BQUE7RUFDQSxlQUFlO0VBQ2YsTUFBQTtFQUNBLHNCQUFzQixFQUFBOztBQUcxQjs7Ozs7OztFUnl2QkU7QVFodkJGOztFQUVJLE1BQUE7RUFDQSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLFVBQVU7RUFDVixXQUFXO0VBQ1gsWUFBWTtFQUNaLE1BQUE7RUFDQSxPQUFPO0VBQ1AsTUFBQTtFQUNBLHdCQUF3QjtFQUN4QixNQUFBO0VBQ0EsVUFBVTtFQUNWLGVBQWUsRUFBQTs7QUFHbkI7RUFDSSxNQUFBO0VBQ0EsZ0JBQWdCO0VBQ2hCLE1BQUE7RUFDQSxnQkFBZ0IsRUFBQTs7QUFJcEI7NkVSK3VCNkU7QVF2dUI3RTs2RVJ5dUI2RTtBUXR1QjdFOztFUnl1QkU7QVFydUJGO0VBQ0ksY0FBYztFQUNkLG1CUGxmc0IsRUFBQTs7QU9zZjFCOztFUnN1QkU7QVFsdUJGLGdDQUFBO0FBQ0E7RUFFSSxrQ0FBQTtFQUNBO0lBQ0ksY0FBYztJQUNkLG1CUGhnQmtCLEVBQUEsRU9rZ0JyQjs7QUFJTCxnQ0FBQTtBQUNBO0VBVEk7SUFZSSxZUHBQMkI7SU9xUDNCLGVQcFA4QjtJT3FQOUIsV0FBVyxFQUFBO0VBSWY7SUFBd0Msa0JQeFBBLEVBQUE7RU8wUHhDLHFGQUFBO0VBQ0E7SUFBNkMsZ0JQMVBGLEVBQUEsRU8wUDZEOztBQUs1Rzs2RVJ5dEI2RTtBUXR0QjdFOzs7OztFUjR0QkU7QVFydEJGO0VBQ0ksTUFBQTtFQUNBLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sU0FBUztFQUNULE9BQU87RUFDUCxNQUFBO0VBQ0EsV1AzZ0J3QjtFTzRnQnhCLE1BQUE7RUFDQSxvQkFBb0I7RUFDcEIsdUJBQXVCO0VBQ3ZCLG1CQUFtQjtFQUNuQixNQUFBO0VBQ0EsV1Bqb0JxQixFQUFBOztBT29vQnpCOztFUnV0QkU7QVFudEJGO0VBQXNCLFdQMXJCSCxFQUFBOztBTzRyQm5COztFUnV0QkU7QVFudEJGO0VBQThDLG9CQUFvQixFQUFBOztBQUVsRTs7RVJ1dEJFO0FRbnRCRjtFQUFvRCw2QkFBeUMsRUFBQTs7QUFFN0Y7O0VSdXRCRTtBUXp0Qlc7RUFPVCxRQUFRO0VBQ1IsVUFBVSxFQUFBOztBQUdkO0VBQWlDLDhCQUEwQyxFQUFBOztBQ3pvQjNFOzs2RVRpMkM2RTtBUzcxQzdFOzs7Ozs7Ozs7OztFVHkyQ0U7QVM1MUNGO0VBQ0ksTUFBQTtFQUNBLFNBQVM7RUFDVCxNQUFBO0VBQ0EsWUFBWTtFQUNaLE1BQUE7RUFDQSxpQkFBaUI7RUFDakIsTUFBQTtFQUNBLGFBQWE7RUFDYixjQUFjO0VBQ2QsTUFBQTtFQUNBLG9CQUFvQjtFQUNwQixNQUFBO0VBQ0EscUJBQXFCO0VBQ3JCLHNCQUFzQjtFQUN0QixlUjNFZ0I7RVE0RWhCLHNCQUFzQjtFQUN0QixlUjdCbUI7RVE4Qm5CLE1BQUE7RUFDQSxpQlJzRHdCO0VRckR4QixNQUFBO0VBQ0Esa0JBQWtCO0VBQ2xCLE1BQUE7RUFDQSxxQkFBcUIsRUFBQTs7QUFJekI7RUFBNEIsZUFBZSxFQUFBOztBQUUzQzs7RVQ4MUNFO0FTMTFDRjtFQUNJLFNBQVM7RUFDVCxVQUFVLEVBQUE7O0FBR2QsVUFBQTtBQUNBO0VBQ0ksTUFBQTtFQUNBLHFCQUFxQixFQUFBOztBQUl6QixVQUFBO0FBQ0E7RUFDSSxhQUFhLEVBQUE7O0FBSWpCLHFCQUFBO0FBT0E7NkVUaTFDNkU7QVM5MEM3RTs7RVRpMUNFO0FTNzBDRjtFQUNJLHlCUi9JNkI7RVFnSjdCLFdSOUp3QixFQUFBOztBUWtLNUIsa0JBQUE7QUFDQTs7RUFFSSx5QlJhb0U7RVFacEUsV1J0S3dCLEVBQUE7O0FRMEs1QixxQkFBQTtBQUNBOztFQUVJLHlCUk9zRTtFUU50RSxXUjlLd0IsRUFBQTs7QVFrTDVCOztFVDAwQ0U7QVN0MENGO0VBQ0kseUJScEsrQjtFUXFLL0IsV1JuTHVCLEVBQUE7O0FRdUwzQixrQkFBQTtBQUNBOztFQUVJLHlCUlBvRTtFUVFwRSxXUjNMdUIsRUFBQTs7QVErTDNCLHFCQUFBO0FBQ0E7O0VBRUkseUJSYnNFO0VRY3RFLFdSbk11QixFQUFBOztBUXVNM0I7O0VUbTBDRTtBUy96Q0Y7RUFDSSxzQlJySjhCO0VRc0o5QixXUjdNdUIsRUFBQTs7QVFpTjNCLGtCQUFBO0FBQ0E7O0VBRUkseUJSM0J3RTtFUTRCeEUsV1JyTnVCLEVBQUE7O0FReU4zQixxQkFBQTtBQUNBOztFQUVJLHlCUmpDMEU7RVFrQzFFLFdSN051QixFQUFBOztBUWlPM0I7O0VUNHpDRTtBU3h6Q0Y7RUFDSSx5QlIvTThCO0VRZ045QixXUnZPdUIsRUFBQTs7QVEyTzNCLGtCQUFBO0FBQ0E7O0VBRUkseUJSL0NrRTtFUWdEbEUsV1IvT3VCLEVBQUE7O0FRbVAzQixxQkFBQTtBQUNBOztFQUVJLHlCUnJEb0U7RVFzRHBFLFdSdlB1QixFQUFBOztBUTJQM0I7OztFVHN6Q0U7QVNqekNGOzs7O0VBSUkseUJSM1A2QjtFUTRQN0IsV1J0TnFCLEVBQUE7O0FRMk56Qjs2RVRnekM2RTtBUzd5QzdFO0VBQ0ksZVJ4UXNCO0VReVF0QixpQlI5RzhCO0VRK0c5QixtQlJwTzZCLEVBQUE7O0FRd09qQztFQUNJLGVSeFB1QjtFUXlQdkIsaUJSbkg4QjtFUW9IOUIsa0JSL1I2QixFQUFBOztBUW9TakM7NkVUMHlDNkU7QVN2eUM3RTs7OztFVDR5Q0U7QVN0eUNGO0VBQ0ksTUFBQTtFQUNBLFVBQVU7RUFDVixnQlI1Tm9CO0VRNk5wQixnQkFBZ0I7RUFDaEIsTUFBQTtFQUNBLFdSNVBxQixFQUFBOztBUWdRekIsa0JBQUE7QUFDQTs7RUFFSSxXUnJUZSxFQUFBOztBUXlUbkIsYUFBQTtBQUNBO0VBQ0ksV1J6UXFCLEVBQUE7O0FRNlF6Qjs7OztFVHF5Q0U7QVMveENGO0VBQ0ksTUFBQTtFQUNBLFVBQVU7RUFDVixnQlJ6UG9CO0VRMFBwQixnQkFBZ0I7RUFDaEIsTUFBQTtFQUNBLGNSelB1QixFQUFBOztBUTZQM0Isa0JBQUE7QUFDQTs7RUFFSSxjUjdQNkI7RVE4UDdCLDBCUnBJeUMsRUFBQTs7QVF1STdDLGFBQUE7QUFDQTtFQUNJLFdSdFNxQjtFUXVTckIscUJBQXFCLEVBQUE7O0FBSXpCOzZFVDR4QzZFO0FTenhDN0U7Ozs7RVQ4eENFO0FTeHhDRjtFQUNJLE1BQUE7RUFDQSxvQkFBb0I7RUFDcEIsTUFBQTtFQUNBLHNCQUFzQjtFQUN0QixNQUFBO0VBQ0Esa0JBQWtCLEVBQUE7O0FDcFV0Qjs7NkVWaW1ENkU7QVU3bEQ3RTs7RVZnbURFO0FVNWxERjtFQUNJLHNCQUFzQjtFQUFFLE1BQUE7RUFDeEIsaUJUc0R1QjtFU3JEdkIsb0JUcUR1QixFQUFBOztBU2pEM0IsdUJBQUE7QUFDQTtFQVJBO0lBV1EsaUJUbEJrQjtJU21CbEIsb0JUbkJrQixFQUFBLEVTb0JyQjs7QUFJTDs7RVYwbERFO0FVdGxERjs7RUFFSSxXQUFXO0VBQ1gsY0FBYyxFQUFBOztBQUdsQjtFQUFxQixXQUFXLEVBQUE7O0FBRWhDOztFVnlsREU7QVVybERGO0VBQTRCLGdCQUFnQixFQUFBOztBQUc1Qzs2RVZ1bEQ2RTtBVXBsRDdFOztFVnVsREU7QVVubERGO0VBQ0ksaUJUbkdnQjtFU29HaEIsb0JUcEdnQixFQUFBOztBU3VHcEI7O0VWcWxERTtBVWpsREY7RUFDSSxpQlRHdUI7RVNGdkIsb0JURXVCLEVBQUE7O0FTQzNCOztFVm1sREU7QVUva0RGO0VBQ0ksaUJUckVzQjtFU3NFdEIsb0JUdEVzQixFQUFBOztBU3lFMUIsZ0NBQUE7QUFDQTtFQU5BO0lBU1Esa0JUZ2VvQjtJUy9kcEIscUJUK2RvQixFQUFBLEVTOWR2Qjs7QUFLTDs7RVY0a0RFO0FVeGtERjtFQUNJLGtCVG9kd0I7RVNuZHhCLHFCVG1kd0IsRUFBQTs7QVNoZDVCLGdDQUFBO0FBQ0E7RUFOQTtJQVNRLGtCVGdyQjBFO0lTL3FCMUUscUJUK3FCMEUsRUFBQSxFUzlxQjdFOztBQUtMOzZFVm9rRDZFO0FVamtEN0U7O0VWb2tERTtBVWhrREY7RUFDSSxnQlRuR29CLEVBQUE7O0FTdUd4Qjs7RVZpa0RFO0FVN2pERjtFQUNJLG1CVHRKNkIsRUFBQTs7QVMwSmpDOztFVjhqREU7QVUxakRGO0VBQ0ksbUJUMUorQixFQUFBOztBU2tLbkM7O0VWdWpERTtBVW5qREY7RUFDSSxnQlQ5SDhCLEVBQUE7O0FTc0lsQzs2RVYraUQ2RTtBVTVpRDdFOzs7RVZnakRFO0FXN3RERjs7NkVYZ3VENkU7QVc1dEQ3RTs7O0VYZ3VERTtBVzN0REY7RUFDSSxNQUFBO0VBQ0EsdUJBQXVCO0VBQ3ZCLGlCVm9Rd0I7RVVuUXhCLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsa0JWcVErQjtFVXBRL0IsbUJWb1ErQixFQUFBOztBVWpRbkMsK0JBQUE7QUFDQTtFQVhBO0lBY1Esa0JWaEJZO0lVaUJaLG1CVmpCWSxFQUFBLEVVa0JmOztBQUlMLGdDQUFBO0FBQ0E7RUFyQkE7SUF3QlEsa0JWdkJtQjtJVXdCbkIsbUJWeEJtQixFQUFBLEVVeUJ0Qjs7QUFJTDs7RVhxdERFO0FXanRERjs7RUFFSSxXQUFXO0VBQ1gsY0FBYyxFQUFBOztBQUdsQjtFQUF1QixXQUFXLEVBQUE7O0FBRWxDOztFWG90REU7QVdodERGO0VBQThCLGdCQUFnQixFQUFBOztBQUU5Qzs7RVhvdERFO0FXaHRERjtFQUNJLGVBQWU7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LEVBQUE7RVlzRTNCO0lBWXNCLGtCWmxGSyxFQUFBLEVZa0Z5RTs7QUFJcEc7O0VicW9FRTtBYWpvRUY7Ozs7OztFQU1JLFdBQVc7RUFDWCxjQUFjLEVBQUE7O0FBR2xCOzs7RUFFeUIsV0FBVyxFQUFBOztBQUVwQzs7RWJvb0VFO0FhaG9FRjs7O0VBRWdDLGdCQUFnQixFQUFBOztBQUdoRDs2RWJrb0U2RTtBYS9uRTdFOzs7RWJtb0VFO0Fhdm1FRjs2RWJ5bUU2RTtBYXRtRTdFO0VBQ0ksaUJabkUyQjtFWW9FM0IsZ0JaZ0V3QixFQUFBOztBWTNENUI7NkVicW1FNkU7QWFsbUU3RTtFQUNJLGtCQUFrQjtFQUNsQixTWmxLZ0I7RVltS2hCLFdabktnQjtFWW9LaEIsVUFBVSxFQUFBOztBQUlkOztFYm1tRUU7QWEvbEVGO0VBQWlDLGFBQWEsRUFBQTs7QUFHOUM7NkViaW1FNkU7QWE5bEU3RTtFQUNJLG1CWnBNNkIsRUFBQTs7QVl5TWpDOzZFYjZsRTZFO0FhMWxFN0U7OztFYjhsRUU7QWF2bUVZO0VBZVYsbUJabE42QjtFWW1ON0IsV1ovTmUsRUFBQTs7QVltT25CO0VBQ0ksV1p0T3dCLEVBQUE7O0FZME81QjtFQUNJLHlCWm1CZ0UsRUFBQTs7QVlQcEU7O0ViOGtFRTtBYXBuRWtDO0VBMkNoQyxtQlp6TytCO0VZME8vQixXWnhQdUIsRUFBQTs7QVk0UDNCO0VBQ0ksV1o3UHVCLEVBQUE7O0FZaVEzQjtFQUNJLHlCWkxnRSxFQUFBOztBWWVwRTs7RWJpa0VFO0Fham9Fd0Q7RUFxRXRELGdCWjFOOEI7RVkyTjlCLFdabFJ1QixFQUFBOztBWXNSM0I7RUFDSSxXWnZSdUIsRUFBQTs7QVkyUjNCO0VBQ0kseUJaMUJvRSxFQUFBOztBWXFDeEU7NkVia2pFNkU7QWEvaUU3RTs7RWJrakVFO0FhOWlFRjs7RUFDK0Isa0JaelRYLEVBQUE7O0FZMlRwQjtFQUFpQyxrQlozVGIsRUFBQTs7QVk0VHBCO0VBQWlDLGtCWjVUYixFQUFBOztBWThUcEI7O0VicWpFRTtBYWpqRUYsdUJBQUE7QUFDQTtFQUVJOztJQUMrQixrQlpsRFQsRUFBQTtFWW9EdEI7SUFBaUMsa0JacERYLEVBQUE7RVlxRHRCO0lBQWlDLGtCWnJEWCxFQUFBLEVZcURxRzs7QUMxVC9IOzs2RWRpM0U2RTtBYzcyRTdFOztFZGczRUU7QWM1MkVGO0VBQ0ksV2JpQ3FCLEVBQUE7O0FhN0J6QixrQkFBQTtBQUNBOztFQUVJLFdieEJlO0VheUJmLGFBQWEsRUFBQTs7QUN3Q2pCOzs2RWZ1MEU2RTtBZW4wRTdFOzs7OztFZnkwRUU7QWVsMEVGLE1BQUE7QUFDQTs7RUFFSSxTQUFTO0VBQ1QsVUFBVTtFQUNWLGdCQUFnQixFQUFBOztBQUdwQixNQUFBO0FBQ0E7RUFDSSxjQUFjO0VBQ2QscUJBQXFCLEVBQUE7O0FBR3pCLE1BQUE7QUFDQTtFQUF1QixhQUFhLEVBQUE7O0FBRXBDOzs7RWZxMEVFO0FlaDBFRjtFQUFtQixjZHdoQlksRUFBQTs7QWNyaEIvQjs2RWZrMEU2RTtBZS96RTdFOzs7RWZtMEVFO0FlOXpFRjtFQUNJLHVCZDhnQjJCLEVBQUE7O0FjMWdCL0I7O0VmK3pFRTtBZTN6RUY7RUFBaUIsa0JkdWdCcUIsRUFBQTs7QWNyZ0J0Qzs7RWYrekVFO0FlM3pFRjtFQUFnQixjQUE2QyxFQUFBOztBQUc3RDs2RWY2ekU2RTtBZTF6RTdFO0VBQ0ksV0FBVztFQUNYLFlkMmYrQztFYzFmL0MsYWQwZitDO0VjemYvQyxZQUFZO0VWL0daLG9XQUEwQztFVWlIMUMsNEJBQTRCO0VBQzVCLDRCQUE0QixFQUFBOztBQUloQztFVnRISSxtV0FBMEMsRUFBQTs7QVV5SDlDOzZFZjB6RTZFO0FldnpFN0U7RUFDSSxjZHNlMkI7RWNyZTNCLHlCZGdmaUM7RWMvZWpDLG1CZHZHNkIsRUFBQTs7QWMyR2pDO0VBQW1DLGdCZGpLZixFQUFBOztBY29LcEI7NkVmdXpFNkU7QWVwekU3RTtFQUNJLGFkdWU2QixFQUFBOztBY2xlakM7NkVmbXpFNkU7QWU1eUU3RTs7RWYreUVFO0FlM3lFRjtFQUNJLFdkaElxQixFQUFBOztBY29JekIsa0JBQUE7QUFDQTs7RUFFSSxXZHpMZSxFQUFBOztBYzZMbkIsV0FBQTtBQUNBO0VBQ0ksV2RqTXdCLEVBQUE7O0FjcU01Qjs7RWZ3eUVFO0FlcHlFRjtFQUNJLFdkMU13QixFQUFBOztBYzhNNUI7O0VmcXlFRTtBZWp5RUY7RUFDSSw2QmRuRm1CLEVBQUE7O0FjdUZ2Qjs7RWZreUVFO0FlOXhFRjtFQUFnQyxXZHZLUCxFQUFBOztBY3lLekI7O0VBQ3NDLFdkNU5uQixFQUFBOztBYzhObkI7RUFBK0MsV2RoT25CLEVBQUE7O0FjbU81Qjs2RWZreUU2RTtBZTN4RTdFOztFZjh4RUU7QWUxeEVGO0VBQ0ksaUJkNUgyQjtFYzZIM0IsZ0JkL0pvQjtFY2dLcEIsV2Q3THFCLEVBQUE7O0FjaU16QixrQkFBQTtBQUNBOztFQUVJLFdkdFBlLEVBQUE7O0FjMFBuQixXQUFBO0FBQ0E7RUFDSSxXZDlQd0IsRUFBQTs7QWNrUTVCOztFZnV4RUU7QWVueEVGO0VBQ0ksV2R2UXdCLEVBQUE7O0FjMlE1Qjs7RWZveEVFO0FlaHhFRjtFQUNJLDZCZGhKbUIsRUFBQTs7QWNvSnZCOztFZml4RUU7QWU3d0VGO0VBQWdDLFdkcE9QLEVBQUE7O0Fjc096Qjs7RUFDc0MsV2R6Um5CLEVBQUE7O0FjMlJuQjtFQUErQyxXZDdSbkIsRUFBQTs7QWNnUzVCOzZFZml4RTZFO0FlOXdFN0U7RUFBaUIsa0JBQWtCLEVBQUE7O0FBRW5DLGFBQUE7QUFDQTs7RUFDZ0MsZUFBZSxFQUFBOztBQUUvQywwQkFBQTtBQUNBO0VBQTRELGtCQUFrQixFQUFBOztBQzVOOUU7OzZFaEJrL0U2RTtBZ0I5K0U3RTs7RWhCaS9FRTtBZ0I3K0VGO0VBQ0ksYUFBYTtFQUNiLE1BQUE7RUFDQSxrQkFBa0IsRUFBQTs7QUFLdEI7NkVoQjQrRTZFO0FnQnorRTdFO0VBQ0ksbUJmcEY2QixFQUFBOztBZTRGakM7O0VoQnMrRUU7QWdCbCtFRjs7RUFDaUMsd0JBQXdCLEVBQUE7O0FBR3pEOzZFaEJvK0U2RTtBZ0JqK0U3RTs7O0VoQnErRUU7QWdCaCtFRjs7Ozs7RUFNSSxhQUFhO0VBQ2IsTUFBQTtF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RWhHOztFaEJzN0VFO0FnQmw3RUY7RUFDSSxhZndUa0M7RWV2VGxDLGdCZnVUa0MsRUFBQTs7QWVsVHRDOzs2RWhCazdFNkU7QWdCMTZFN0U7O0VoQjY2RUU7QWdCejZFRjtFQUNJLFdmL1dxQixFQUFBOztBZW1YekIsa0JBQUE7QUFDQTs7RUFFSSxXZnhhZSxFQUFBOztBZTRhbkIsV0FBQTtBQUNBO0VBQ0ksV2ZoYndCLEVBQUE7O0Flb2I1Qjs7RWhCczZFRTtBZ0JsNkVGO0VBQ0ksV2Z6YndCLEVBQUE7O0FlNmI1Qjs7RWhCbTZFRTtBZ0IvNUVGO0VBQ0ksNkJmbFVtQixFQUFBOztBZXNVdkI7O0VoQmc2RUU7QWdCNTVFRjtFQUF3QyxXZnRaZixFQUFBOztBZXdaekI7O0VBQzhDLFdmM2MzQixFQUFBOztBZTZjbkI7RUFBdUQsV2YvYzNCLEVBQUE7O0Fla2Q1Qjs2RWhCZzZFNkU7QWdCNzVFN0U7RUFDSSxtQmZ4YzZCLEVBQUE7O0FlNGNqQzs7RWhCODVFRTtBZ0IxNUVGO0VBQ0ksa0JBQWtCO0VBQ2xCLFlmcklpQjtFZXNJakIsT0FBTztFQUNQLFFBQVEsRUFBQTs7QUMzY1o7OzZFakIwMkY2RTtBaUJ0MkY3RTs7RWpCeTJGRTtBaUJyMkZGO0VBQ0ksaUJoQm95QjhCO0VnQm55QjlCLCtCaEIvQmUsRUFBQTs7QWdCbUNuQixrQkFBQTtBQUNBOztFQUVJLCtCaEJ0Q2U7RWdCdUNmLGFBQWEsRUFBQTs7QUFJakIsWUFBQTtBQUNBO0VBQ0ksK0JoQjdDZSxFQUFBOztBZ0JrRG5COzZFakJnMkY2RTtBaUI3MUY3RTs7RWpCZzJGRTtBaUJ4MUZGOztFakIyMUZFO0FpQmwxRkY7NkVqQm8xRjZFO0FpQmoxRjdFO0VBQ0ksa0JoQjR2QmtDLEVBQUE7O0FnQnZ2QnRDOzZFakJnMUY2RTtBaUI3MEY3RTtFQUNJLGFBQWEsRUFBQTs7QUM5RGpCOzs2RWxCZzVGNkU7QWtCNTRGN0U7Ozs7RWxCaTVGRTtBa0IzNEZGO0VBQ0ksYUFBYTtFQUNiLE1BQUE7RUFDQSxlQUFlO0VBQ2YsTUFBQTtFQUNBLFNBQVM7RUFD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Q0ksTUFBQTtFQUNBLHdDQUF3QyxFQUFBOztBQUc1Qzs7RXpDeXNNRTtBeUNyc01GO0VBQTJCLGFBQWEsRUFBQTs7QUFHeEM7NkV6Q3VzTTZFO0F5Q3BzTTdFOzs7RXpDd3NNRTtBeUNuc01GO0VBQ0k7SUFBbUIsd0JBQXdCLEVBQUEsRUFBSTs7QUFHbkQ7Ozs7RXpDd3NNRTtBeUNsc01GLE1BQUE7QUFDQTtFQUFxQix3QkFBd0IsRUFBQTs7QUFFN0M7RUFGQTtJQUd5Qix5QkFBeUIsRUFBQSxFQUFJOztBQzVJdEQ7OzZFMUNxMU02RTtBMEMvME03RTs7OztFMUNvMU1FIiwiZmlsZSI6InVpa2l0LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIE5hbWU6ICAgICAgICAgICAgQmFzZVxyXG4vLyBEZXNjcmlwdGlvbjogICAgIERlZmF1bHQgdmFsdWVzIGZvciBIVE1MIGVsZW1lbnRzXHJcbi8vXHJcbi8vIENvbXBvbmVudDogICAgICAgYHVrLWxpbmtgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWgxYCwgYHVrLWgyYCwgYHVrLWgzYCwgYHVrLWg0YCwgYHVrLWg1YCwgYHVrLWg2YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ocmBcclxuLy9cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5cclxuLy8gVmFyaWFibGVzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuJGJhc2UtYm9keS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGJhc2UtYm9keS1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZm9udC1mYW1pbHkgIWRlZmF1bHQ7XHJcbiRiYXNlLWJvZHktZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtYWwgIWRlZmF1bHQ7XHJcbiRiYXNlLWJvZHktZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJGJhc2UtYm9keS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XHJcbiRiYXNlLWJvZHktY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG5cclxuJGJhc2UtbGluay1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbGluay1jb2xvciAhZGVmYXVsdDtcclxuJGJhc2UtbGluay10ZXh0LWRlY29yYXRpb246ICAgICAgICAgICAgICAgICAgICAgIG5vbmUgIWRlZmF1bHQ7XHJcbiRiYXNlLWxpbmstaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWxpbmstaG92ZXItY29sb3IgIWRlZmF1bHQ7XHJcbiRiYXNlLWxpbmstaG92ZXItdGV4dC1kZWNvcmF0aW9uOiAgICAgICAgICAgICAgICB1bmRlcmxpbmUgIWRlZmF1bHQ7XHJcblxyXG4kYmFzZS1zdHJvbmctZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgYm9sZGVyICFkZWZhdWx0O1xyXG4kYmFzZS1jb2RlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiRiYXNlLWNvZGUtZm9udC1mYW1pbHk6ICAgICAgICAgICAgICAgICAgICAgICAgICBDb25zb2xhcywgbW9uYWNvLCBtb25vc3BhY2UgIWRlZmF1bHQ7XHJcbiRiYXNlLWNvZGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWRhbmdlci1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kYmFzZS1lbS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGJhc2UtaW5zLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICNmZmQgIWRlZmF1bHQ7XHJcbiRiYXNlLWlucy1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kYmFzZS1tYXJrLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgI2ZmZCAhZGVmYXVsdDtcclxuJGJhc2UtbWFyay1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRiYXNlLXF1b3RlLWZvbnQtc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgICAgICBpdGFsaWMgIWRlZmF1bHQ7XHJcbiRiYXNlLXNtYWxsLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICA4MCUgIWRlZmF1bHQ7XHJcblxyXG4kYmFzZS1tYXJnaW4tdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XHJcblxyXG4kYmFzZS1oZWFkaW5nLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1mb250LWZhbWlseSAhZGVmYXVsdDtcclxuJGJhc2UtaGVhZGluZy1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbCAhZGVmYXVsdDtcclxuJGJhc2UtaGVhZGluZy1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XHJcbiRiYXNlLWhlYWRpbmctdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgICAgICAgICBub25lICFkZWZhdWx0O1xyXG4kYmFzZS1oZWFkaW5nLW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tZWRpdW0tbWFyZ2luICFkZWZhdWx0O1xyXG4kYmFzZS1oMS1mb250LXNpemUtbTogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC14eGxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJGJhc2UtaDEtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRiYXNlLWgxLWZvbnQtc2l6ZS1tICogMC44NSAhZGVmYXVsdDtcclxuJGJhc2UtaDEtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMiAhZGVmYXVsdDtcclxuJGJhc2UtaDItZm9udC1zaXplLW06ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwteGxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJGJhc2UtaDItZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRiYXNlLWgyLWZvbnQtc2l6ZS1tICogMC44NSAhZGVmYXVsdDtcclxuJGJhc2UtaDItbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMyAhZGVmYXVsdDtcclxuJGJhc2UtaDMtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbGFyZ2UtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kYmFzZS1oMy1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgMS40ICFkZWZhdWx0O1xyXG4kYmFzZS1oNC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tZWRpdW0tZm9udC1zaXplICFkZWZhdWx0O1xyXG4kYmFzZS1oNC1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgMS40ICFkZWZhdWx0O1xyXG4kYmFzZS1oNS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiRiYXNlLWg1LWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjQgIWRlZmF1bHQ7XHJcbiRiYXNlLWg2LWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJGJhc2UtaDYtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuNCAhZGVmYXVsdDtcclxuXHJcbiRiYXNlLWxpc3QtcGFkZGluZy1sZWZ0OiAgICAgICAgICAgICAgICAgICAgICAgICAzMHB4ICFkZWZhdWx0O1xyXG5cclxuJGJhc2UtaHItbWFyZ2luLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xyXG4kYmFzZS1oci1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XHJcbiRiYXNlLWhyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcclxuXHJcbiRiYXNlLWJsb2NrcXVvdGUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW1lZGl1bS1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiRiYXNlLWJsb2NrcXVvdGUtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAxLjUgIWRlZmF1bHQ7XHJcbiRiYXNlLWJsb2NrcXVvdGUtZm9udC1zdHlsZTogICAgICAgICAgICAgICAgICAgICBpdGFsaWMgIWRlZmF1bHQ7XHJcbiRiYXNlLWJsb2NrcXVvdGUtbWFyZ2luLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcclxuJGJhc2UtYmxvY2txdW90ZS1mb290ZXItbWFyZ2luLXRvcDogICAgICAgICAgICAgICRnbG9iYWwtc21hbGwtbWFyZ2luICFkZWZhdWx0O1xyXG4kYmFzZS1ibG9ja3F1b3RlLWZvb3Rlci1mb250LXNpemU6ICAgICAgICAgICAgICAgJGdsb2JhbC1zbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiRiYXNlLWJsb2NrcXVvdGUtZm9vdGVyLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAxLjUgIWRlZmF1bHQ7XHJcblxyXG4kYmFzZS1wcmUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiRiYXNlLXByZS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAxLjUgIWRlZmF1bHQ7XHJcbiRiYXNlLXByZS1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAgICAgICAkYmFzZS1jb2RlLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xyXG4kYmFzZS1wcmUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuXHJcbiRiYXNlLXNlbGVjdGlvbi1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAjMzlmICFkZWZhdWx0O1xyXG4kYmFzZS1zZWxlY3Rpb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xyXG5cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IEJhc2VcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBTZXQgYGZvbnQtc2l6ZWAgdG8gc3VwcG9ydCBgcmVtYCB1bml0c1xyXG4gKiAgICBOb3QgdXNpbmcgYGZvbnRgIHByb3BlcnR5IGJlY2F1c2UgYSBsZWFkaW5nIGh5cGhlbiAoZS5nLiAtYXBwbGUtc3lzdGVtKSBjYXVzZXMgdGhlIGZvbnQgdG8gYnJlYWsgaW4gSUUxMSBhbmQgRWRnZVxyXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cclxuICogMy4gU3R5bGVcclxuICovXHJcblxyXG5odG1sIHtcclxuICAgIC8qIDEgKi9cclxuICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1ib2R5LWZvbnQtZmFtaWx5O1xyXG4gICAgZm9udC1zaXplOiAkYmFzZS1ib2R5LWZvbnQtc2l6ZTtcclxuICAgIGZvbnQtd2VpZ2h0OiAkYmFzZS1ib2R5LWZvbnQtd2VpZ2h0O1xyXG4gICAgbGluZS1oZWlnaHQ6ICRiYXNlLWJvZHktbGluZS1oZWlnaHQ7XHJcbiAgICAvKiAyICovXHJcbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XHJcbiAgICAvKiAzICovXHJcbiAgICBiYWNrZ3JvdW5kOiAkYmFzZS1ib2R5LWJhY2tncm91bmQ7XHJcbiAgICBjb2xvcjogJGJhc2UtYm9keS1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1iYXNlLWJvZHkpKSB7QGluY2x1ZGUgaG9vay1iYXNlLWJvZHkoKTt9XHJcbn1cclxuXHJcbi8qXHJcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cclxuICovXHJcblxyXG5ib2R5IHsgbWFyZ2luOiAwOyB9XHJcblxyXG5cclxuLyogTGlua3NcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiBSZW1vdmUgdGhlIG91dGxpbmUgb24gZm9jdXNlZCBsaW5rcyB3aGVuIHRoZXkgYXJlIGFsc28gYWN0aXZlIG9yIGhvdmVyZWRcclxuICovXHJcblxyXG5hOmFjdGl2ZSxcclxuYTpob3ZlciB7IG91dGxpbmU6IG5vbmU7IH1cclxuXHJcbi8qXHJcbiAqIFN0eWxlXHJcbiAqL1xyXG5cclxuYSxcclxuLnVrLWxpbmsge1xyXG4gICAgY29sb3I6ICRiYXNlLWxpbmstY29sb3I7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246ICRiYXNlLWxpbmstdGV4dC1kZWNvcmF0aW9uO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJhc2UtbGluaykpIHtAaW5jbHVkZSBob29rLWJhc2UtbGluaygpO31cclxufVxyXG5cclxuYTpob3ZlcixcclxuLnVrLWxpbms6aG92ZXIsXHJcbi51ay1saW5rLXRvZ2dsZTpob3ZlciAudWstbGluayxcclxuLnVrLWxpbmstdG9nZ2xlOmZvY3VzIC51ay1saW5rIHtcclxuICAgIGNvbG9yOiAkYmFzZS1saW5rLWhvdmVyLWNvbG9yO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkYmFzZS1saW5rLWhvdmVyLXRleHQtZGVjb3JhdGlvbjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1iYXNlLWxpbmstaG92ZXIpKSB7QGluY2x1ZGUgaG9vay1iYXNlLWxpbmstaG92ZXIoKTt9XHJcbn1cclxuXHJcblxyXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gRWRnZS5cclxuICogMi4gVGhlIHNob3J0aGFuZCBkZWNsYXJhdGlvbiBgdW5kZXJsaW5lIGRvdHRlZGAgaXMgbm90IHN1cHBvcnRlZCBpbiBTYWZhcmkuXHJcbiAqL1xyXG5cclxuYWJiclt0aXRsZV0ge1xyXG4gICAgLyogMSAqL1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xyXG4gICAgLyogMiAqL1xyXG4gICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc3R5bGU6IGRvdHRlZDtcclxufVxyXG5cclxuLypcclxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cclxuICovXHJcblxyXG5iLFxyXG5zdHJvbmcgeyBmb250LXdlaWdodDogJGJhc2Utc3Ryb25nLWZvbnQtd2VpZ2h0OyB9XHJcblxyXG4vKlxyXG4gKiAxLiBDb25zb2xhcyBoYXMgYSBiZXR0ZXIgYmFzZWxpbmUgaW4gcnVubmluZyB0ZXh0IGNvbXBhcmVkIHRvIGBDb3VyaWVyYFxyXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqIDMuIFN0eWxlXHJcbiAqL1xyXG5cclxuOm5vdChwcmUpID4gY29kZSxcclxuOm5vdChwcmUpID4ga2JkLFxyXG46bm90KHByZSkgPiBzYW1wIHtcclxuICAgIC8qIDEgKi9cclxuICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1jb2RlLWZvbnQtZmFtaWx5O1xyXG4gICAgLyogMiAqL1xyXG4gICAgZm9udC1zaXplOiAkYmFzZS1jb2RlLWZvbnQtc2l6ZTtcclxuICAgIC8qIDMgKi9cclxuICAgIGNvbG9yOiAkYmFzZS1jb2RlLWNvbG9yO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1iYXNlLWNvZGUpKSB7QGluY2x1ZGUgaG9vay1iYXNlLWNvZGUoKTt9XHJcbn1cclxuXHJcbi8qXHJcbiAqIEVtcGhhc2l6ZVxyXG4gKi9cclxuXHJcbmVtIHsgY29sb3I6ICRiYXNlLWVtLWNvbG9yOyB9XHJcblxyXG4vKlxyXG4gKiBJbnNlcnRcclxuICovXHJcblxyXG5pbnMge1xyXG4gICAgYmFja2dyb3VuZDogJGJhc2UtaW5zLWJhY2tncm91bmQ7XHJcbiAgICBjb2xvcjogJGJhc2UtaW5zLWNvbG9yO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG59XHJcblxyXG4vKlxyXG4gKiBNYXJrXHJcbiAqL1xyXG5cclxubWFyayB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkYmFzZS1tYXJrLWJhY2tncm91bmQ7XHJcbiAgICBjb2xvcjogJGJhc2UtbWFyay1jb2xvcjtcclxufVxyXG5cclxuLypcclxuICogUXVvdGVcclxuICovXHJcblxyXG5xIHsgZm9udC1zdHlsZTogJGJhc2UtcXVvdGUtZm9udC1zdHlsZTsgfVxyXG5cclxuLypcclxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxuc21hbGwgeyBmb250LXNpemU6ICRiYXNlLXNtYWxsLWZvbnQtc2l6ZTsgfVxyXG5cclxuLypcclxuICogUHJldmVudHMgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cclxuICovXHJcblxyXG5zdWIsXHJcbnN1cCB7XHJcbiAgICBmb250LXNpemU6IDc1JTtcclxuICAgIGxpbmUtaGVpZ2h0OiAwO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xyXG59XHJcblxyXG5zdXAgeyB0b3A6IC0wLjVlbTsgfVxyXG5zdWIgeyBib3R0b206IC0wLjI1ZW07IH1cclxuXHJcblxyXG4vKiBFbWJlZGRlZCBjb250ZW50XHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogUmVtb3ZlIHRoZSBnYXAgYmV0d2VlbiBlbWJlZGRlZCBjb250ZW50IGFuZCB0aGUgYm90dG9tIG9mIHRoZWlyIGNvbnRhaW5lcnMuXHJcbiAqL1xyXG5cclxuYXVkaW8sXHJcbmNhbnZhcyxcclxuaWZyYW1lLFxyXG5pbWcsXHJcbnN2ZyxcclxudmlkZW8geyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XHJcblxyXG4vKlxyXG4gKiAxLiBBZGQgcmVzcG9uc2l2ZW5lc3MuXHJcbiAqIDIuIEF1dG8tc2NhbGUgdGhlIGhlaWdodC4gT25seSBuZWVkZWQgaWYgYGhlaWdodGAgYXR0cmlidXRlIGlzIHByZXNlbnQuXHJcbiAqIDMuIENvcnJlY3RzIHJlc3BvbnNpdmUgYG1heC13aWR0aGAgYmVoYXZpb3IgaWYgcGFkZGluZyBhbmQgYm9yZGVyIGFyZSB1c2VkLlxyXG4gKiA0LiBFeGNsdWRlIFNWR3MgZm9yIElFMTEgYmVjYXVzZSB0aGV5IGRvbid0IHByZXNlcnZlIHRoZWlyIGFzcGVjdCByYXRpby5cclxuICovXHJcblxyXG5jYW52YXMsXHJcbmltZyxcclxudmlkZW8ge1xyXG4gICAgLyogMSAqL1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgLyogMiAqL1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgLyogMyAqL1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxufVxyXG5cclxuLyogNCAqL1xyXG5Ac3VwcG9ydHMgKGRpc3BsYXk6IGJsb2NrKSB7XHJcblxyXG4gICBzdmcge1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbi8qXHJcbiAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxyXG4gKi9cclxuXHJcbnN2Zzpub3QoOnJvb3QpIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxyXG5cclxuLypcclxuICogMS4gRml4IGxhenkgbG9hZGluZyBpbWFnZXMgaWYgcGFyZW50IGVsZW1lbnQgaXMgc2V0IHRvIGBkaXNwbGF5OiBpbmxpbmVgIGFuZCBoYXMgYG92ZXJmbG93OiBoaWRkZW5gLlxyXG4gKiAyLiBIaWRlIGBhbHRgIHRleHQgZm9yIGxhenkgbG9hZGluZyBpbWFnZXMuXHJcbiAqIE5vdGU6IFNlbGVjdG9yIGZvciBiYWNrZ3JvdW5kIHdoaWxlIGxvYWRpbmcgaW1nW2RhdGEtc3JjKj0nLmpwZyddW3NyYyo9J2RhdGE6aW1hZ2UnXSB7IGJhY2tncm91bmQ6IGdyZXk7IH1cclxuICovXHJcblxyXG5pbWc6bm90KFtzcmNdKSB7XHJcbiAgICAvKiAxICovXHJcbiAgICBtaW4td2lkdGg6IDFweDtcclxuICAgIC8qIDIgKi9cclxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxufVxyXG5cclxuLypcclxuICogSWZyYW1lXHJcbiAqIFJlbW92ZSBib3JkZXIgaW4gYWxsIGJyb3dzZXJzXHJcbiAqL1xyXG5cclxuaWZyYW1lIHsgYm9yZGVyOiAwOyB9XHJcblxyXG5cclxuLyogQmxvY2sgZWxlbWVudHNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiBNYXJnaW5zXHJcbiAqL1xyXG5cclxucCxcclxudWwsXHJcbm9sLFxyXG5kbCxcclxucHJlLFxyXG5hZGRyZXNzLFxyXG5maWVsZHNldCxcclxuZmlndXJlIHsgbWFyZ2luOiAwIDAgJGJhc2UtbWFyZ2luLXZlcnRpY2FsIDA7IH1cclxuXHJcbi8qIEFkZCBtYXJnaW4gaWYgYWRqYWNlbnQgZWxlbWVudCAqL1xyXG4qICsgcCxcclxuKiArIHVsLFxyXG4qICsgb2wsXHJcbiogKyBkbCxcclxuKiArIHByZSxcclxuKiArIGFkZHJlc3MsXHJcbiogKyBmaWVsZHNldCxcclxuKiArIGZpZ3VyZSB7IG1hcmdpbi10b3A6ICRiYXNlLW1hcmdpbi12ZXJ0aWNhbDsgfVxyXG5cclxuXHJcbi8qIEhlYWRpbmdzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuaDEsIC51ay1oMSxcclxuaDIsIC51ay1oMixcclxuaDMsIC51ay1oMyxcclxuaDQsIC51ay1oNCxcclxuaDUsIC51ay1oNSxcclxuaDYsIC51ay1oNixcclxuLnVrLWhlYWRpbmctc21hbGwsXHJcbi51ay1oZWFkaW5nLW1lZGl1bSxcclxuLnVrLWhlYWRpbmctbGFyZ2UsXHJcbi51ay1oZWFkaW5nLXhsYXJnZSxcclxuLnVrLWhlYWRpbmctMnhsYXJnZSB7XHJcbiAgICBtYXJnaW46IDAgMCAkYmFzZS1tYXJnaW4tdmVydGljYWwgMDtcclxuICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1oZWFkaW5nLWZvbnQtZmFtaWx5O1xyXG4gICAgZm9udC13ZWlnaHQ6ICRiYXNlLWhlYWRpbmctZm9udC13ZWlnaHQ7XHJcbiAgICBjb2xvcjogJGJhc2UtaGVhZGluZy1jb2xvcjtcclxuICAgIHRleHQtdHJhbnNmb3JtOiAkYmFzZS1oZWFkaW5nLXRleHQtdHJhbnNmb3JtO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJhc2UtaGVhZGluZykpIHtAaW5jbHVkZSBob29rLWJhc2UtaGVhZGluZygpO31cclxufVxyXG5cclxuLyogQWRkIG1hcmdpbiBpZiBhZGphY2VudCBlbGVtZW50ICovXHJcbiogKyBoMSwgKiArIC51ay1oMSxcclxuKiArIGgyLCAqICsgLnVrLWgyLFxyXG4qICsgaDMsICogKyAudWstaDMsXHJcbiogKyBoNCwgKiArIC51ay1oNCxcclxuKiArIGg1LCAqICsgLnVrLWg1LFxyXG4qICsgaDYsICogKyAudWstaDYsXHJcbiogKyAudWstaGVhZGluZy1zbWFsbCxcclxuKiArIC51ay1oZWFkaW5nLW1lZGl1bSxcclxuKiArIC51ay1oZWFkaW5nLWxhcmdlLFxyXG4qICsgLnVrLWhlYWRpbmcteGxhcmdlLFxyXG4qICsgLnVrLWhlYWRpbmctMnhsYXJnZSB7IG1hcmdpbi10b3A6ICRiYXNlLWhlYWRpbmctbWFyZ2luLXRvcDsgfVxyXG5cclxuLypcclxuICogU2l6ZXNcclxuICovXHJcblxyXG5oMSwgLnVrLWgxIHtcclxuICAgIGZvbnQtc2l6ZTogJGJhc2UtaDEtZm9udC1zaXplO1xyXG4gICAgbGluZS1oZWlnaHQ6ICRiYXNlLWgxLWxpbmUtaGVpZ2h0O1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJhc2UtaDEpKSB7QGluY2x1ZGUgaG9vay1iYXNlLWgxKCk7fVxyXG59XHJcblxyXG5oMiwgLnVrLWgyIHtcclxuICAgIGZvbnQtc2l6ZTogJGJhc2UtaDItZm9udC1zaXplO1xyXG4gICAgbGluZS1oZWlnaHQ6ICRiYXNlLWgyLWxpbmUtaGVpZ2h0O1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJhc2UtaDIpKSB7QGluY2x1ZGUgaG9vay1iYXNlLWgyKCk7fVxyXG59XHJcblxyXG5oMywgLnVrLWgzIHtcclxuICAgIGZvbnQtc2l6ZTogJGJhc2UtaDMtZm9udC1zaXplO1xyXG4gICAgbGluZS1oZWlnaHQ6ICRiYXNlLWgzLWxpbmUtaGVpZ2h0O1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJhc2UtaDMpKSB7QGluY2x1ZGUgaG9vay1iYXNlLWgzKCk7fVxyXG59XHJcblxyXG5oNCwgLnVrLWg0IHtcclxuICAgIGZvbnQtc2l6ZTogJGJhc2UtaDQtZm9udC1zaXplO1xyXG4gICAgbGluZS1oZWlnaHQ6ICRiYXNlLWg0LWxpbmUtaGVpZ2h0O1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJhc2UtaDQpKSB7QGluY2x1ZGUgaG9vay1iYXNlLWg0KCk7fVxyXG59XHJcblxyXG5oNSwgLnVrLWg1IHtcclxuICAgIGZvbnQtc2l6ZTogJGJhc2UtaDUtZm9udC1zaXplO1xyXG4gICAgbGluZS1oZWlnaHQ6ICRiYXNlLWg1LWxpbmUtaGVpZ2h0O1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJhc2UtaDUpKSB7QGluY2x1ZGUgaG9vay1iYXNlLWg1KCk7fVxyXG59XHJcblxyXG5oNiwgLnVrLWg2IHtcclxuICAgIGZvbnQtc2l6ZTogJGJhc2UtaDYtZm9udC1zaXplO1xyXG4gICAgbGluZS1oZWlnaHQ6ICRiYXNlLWg2LWxpbmUtaGVpZ2h0O1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJhc2UtaDYpKSB7QGluY2x1ZGUgaG9vay1iYXNlLWg2KCk7fVxyXG59XHJcblxyXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LW1lZGl1bSkge1xyXG5cclxuICAgIGgxLCAudWstaDEgeyBmb250LXNpemU6ICRiYXNlLWgxLWZvbnQtc2l6ZS1tOyB9XHJcbiAgICBoMiwgLnVrLWgyIHsgZm9udC1zaXplOiAkYmFzZS1oMi1mb250LXNpemUtbTsgfVxyXG5cclxufVxyXG5cclxuXHJcbi8qIExpc3RzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxudWwsXHJcbm9sIHsgcGFkZGluZy1sZWZ0OiAkYmFzZS1saXN0LXBhZGRpbmctbGVmdDsgfVxyXG5cclxuLypcclxuICogUmVzZXQgbWFyZ2luIGZvciBuZXN0ZWQgbGlzdHNcclxuICovXHJcblxyXG51bCA+IGxpID4gdWwsXHJcbnVsID4gbGkgPiBvbCxcclxub2wgPiBsaSA+IG9sLFxyXG5vbCA+IGxpID4gdWwgeyBtYXJnaW46IDA7IH1cclxuXHJcblxyXG4vKiBEZXNjcmlwdGlvbiBsaXN0c1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbmR0IHsgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cclxuZGQgeyBtYXJnaW4tbGVmdDogMDsgfVxyXG5cclxuXHJcbi8qIEhvcml6b250YWwgcnVsZXNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBDaHJvbWUsIEVkZ2UgYW5kIElFLlxyXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dC1hbGlnbiBpbiBFZGdlIGFuZCBJRS5cclxuICogMy4gU3R5bGVcclxuICovXHJcblxyXG5ociwgLnVrLWhyIHtcclxuICAgIC8qIDEgKi9cclxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gICAgLyogMiAqL1xyXG4gICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcclxuICAgIC8qIDMgKi9cclxuICAgIG1hcmdpbjogMCAwICRiYXNlLWhyLW1hcmdpbi12ZXJ0aWNhbCAwO1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgYm9yZGVyLXRvcDogJGJhc2UtaHItYm9yZGVyLXdpZHRoIHNvbGlkICRiYXNlLWhyLWJvcmRlcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1iYXNlLWhyKSkge0BpbmNsdWRlIGhvb2stYmFzZS1ocigpO31cclxufVxyXG5cclxuLyogQWRkIG1hcmdpbiBpZiBhZGphY2VudCBlbGVtZW50ICovXHJcbiogKyBocixcclxuKiArIC51ay1ociB7IG1hcmdpbi10b3A6ICRiYXNlLWhyLW1hcmdpbi12ZXJ0aWNhbCB9XHJcblxyXG5cclxuLyogQWRkcmVzc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbmFkZHJlc3MgeyBmb250LXN0eWxlOiBub3JtYWw7IH1cclxuXHJcblxyXG4vKiBCbG9ja3F1b3Rlc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbmJsb2NrcXVvdGUge1xyXG4gICAgbWFyZ2luOiAwIDAgJGJhc2UtYmxvY2txdW90ZS1tYXJnaW4tdmVydGljYWwgMDtcclxuICAgIGZvbnQtc2l6ZTogJGJhc2UtYmxvY2txdW90ZS1mb250LXNpemU7XHJcbiAgICBsaW5lLWhlaWdodDogJGJhc2UtYmxvY2txdW90ZS1saW5lLWhlaWdodDtcclxuICAgIGZvbnQtc3R5bGU6ICRiYXNlLWJsb2NrcXVvdGUtZm9udC1zdHlsZTtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1iYXNlLWJsb2NrcXVvdGUpKSB7QGluY2x1ZGUgaG9vay1iYXNlLWJsb2NrcXVvdGUoKTt9XHJcbn1cclxuXHJcbi8qIEFkZCBtYXJnaW4gaWYgYWRqYWNlbnQgZWxlbWVudCAqL1xyXG4qICsgYmxvY2txdW90ZSB7IG1hcmdpbi10b3A6ICRiYXNlLWJsb2NrcXVvdGUtbWFyZ2luLXZlcnRpY2FsOyB9XHJcblxyXG4vKlxyXG4gKiBDb250ZW50XHJcbiAqL1xyXG5cclxuYmxvY2txdW90ZSBwOmxhc3Qtb2YtdHlwZSB7IG1hcmdpbi1ib3R0b206IDA7IH1cclxuXHJcbmJsb2NrcXVvdGUgZm9vdGVyIHtcclxuICAgIG1hcmdpbi10b3A6ICAkYmFzZS1ibG9ja3F1b3RlLWZvb3Rlci1tYXJnaW4tdG9wO1xyXG4gICAgZm9udC1zaXplOiAkYmFzZS1ibG9ja3F1b3RlLWZvb3Rlci1mb250LXNpemU7XHJcbiAgICBsaW5lLWhlaWdodDogJGJhc2UtYmxvY2txdW90ZS1mb290ZXItbGluZS1oZWlnaHQ7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYmFzZS1ibG9ja3F1b3RlLWZvb3RlcikpIHtAaW5jbHVkZSBob29rLWJhc2UtYmxvY2txdW90ZS1mb290ZXIoKTt9XHJcbn1cclxuXHJcblxyXG4vKiBQcmVmb3JtYXR0ZWQgdGV4dFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIDEuIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbnByZSB7XHJcbiAgICBmb250OiAkYmFzZS1wcmUtZm9udC1zaXplIHVucXVvdGUoXCIvXCIpICRiYXNlLXByZS1saW5lLWhlaWdodCAkYmFzZS1wcmUtZm9udC1mYW1pbHk7XHJcbiAgICBjb2xvcjogJGJhc2UtcHJlLWNvbG9yO1xyXG4gICAgLW1vei10YWItc2l6ZTogNDtcclxuICAgIHRhYi1zaXplOiA0O1xyXG4gICAgLyogMSAqL1xyXG4gICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYmFzZS1wcmUpKSB7QGluY2x1ZGUgaG9vay1iYXNlLXByZSgpO31cclxufVxyXG5cclxucHJlIGNvZGUgeyBmb250LWZhbWlseTogJGJhc2UtcHJlLWZvbnQtZmFtaWx5OyB9XHJcblxyXG5cclxuLyogU2VsZWN0aW9uIHBzZXVkby1lbGVtZW50XHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuOjpzZWxlY3Rpb24ge1xyXG4gICAgYmFja2dyb3VuZDogJGJhc2Utc2VsZWN0aW9uLWJhY2tncm91bmQ7XHJcbiAgICBjb2xvcjogJGJhc2Utc2VsZWN0aW9uLWNvbG9yO1xyXG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuXHJcblxyXG4vKiBIVE1MNSBlbGVtZW50c1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXHJcbiAqIDIuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxyXG4gKi9cclxuXHJcbmRldGFpbHMsIC8qIDEgKi9cclxubWFpbiB7IC8qIDIgKi9cclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4vKlxyXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxuc3VtbWFyeSB7IGRpc3BsYXk6IGxpc3QtaXRlbTsgfVxyXG5cclxuLypcclxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXHJcbiAqL1xyXG5cclxudGVtcGxhdGUgeyBkaXNwbGF5OiBub25lOyB9XHJcblxyXG5cclxuLyogUGFzcyBtZWRpYSBicmVha3BvaW50cyB0byBKU1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIEJyZWFrcG9pbnRzXHJcbiAqL1xyXG5cclxuLnVrLWJyZWFrcG9pbnQtczo6YmVmb3JlICB7IGNvbnRlbnQ6ICcjeyRicmVha3BvaW50LXNtYWxsfSc7IH1cclxuLnVrLWJyZWFrcG9pbnQtbTo6YmVmb3JlICB7IGNvbnRlbnQ6ICcjeyRicmVha3BvaW50LW1lZGl1bX0nOyB9XHJcbi51ay1icmVha3BvaW50LWw6OmJlZm9yZSAgeyBjb250ZW50OiAnI3skYnJlYWtwb2ludC1sYXJnZX0nOyB9XHJcbi51ay1icmVha3BvaW50LXhsOjpiZWZvcmUgeyBjb250ZW50OiAnI3skYnJlYWtwb2ludC14bGFyZ2V9JzsgfVxyXG5cclxuOnJvb3Qge1xyXG4gICAgLS11ay1icmVha3BvaW50LXM6ICN7JGJyZWFrcG9pbnQtc21hbGx9O1xyXG4gICAgLS11ay1icmVha3BvaW50LW06ICN7JGJyZWFrcG9pbnQtbWVkaXVtfTtcclxuICAgIC0tdWstYnJlYWtwb2ludC1sOiAjeyRicmVha3BvaW50LWxhcmdlfTtcclxuICAgIC0tdWstYnJlYWtwb2ludC14bDogI3skYnJlYWtwb2ludC14bGFyZ2V9O1xyXG59XHJcblxyXG4vLyBIb29rc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbkBpZihtaXhpbi1leGlzdHMoaG9vay1iYXNlLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1iYXNlLW1pc2MoKTt9XHJcblxyXG4vLyBAbWl4aW4gaG9vay1iYXNlLWJvZHkoKXt9XHJcbi8vIEBtaXhpbiBob29rLWJhc2UtbGluaygpe31cclxuLy8gQG1peGluIGhvb2stYmFzZS1saW5rLWhvdmVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1iYXNlLWNvZGUoKXt9XHJcbi8vIEBtaXhpbiBob29rLWJhc2UtaGVhZGluZygpe31cclxuLy8gQG1peGluIGhvb2stYmFzZS1oMSgpe31cclxuLy8gQG1peGluIGhvb2stYmFzZS1oMigpe31cclxuLy8gQG1peGluIGhvb2stYmFzZS1oMygpe31cclxuLy8gQG1peGluIGhvb2stYmFzZS1oNCgpe31cclxuLy8gQG1peGluIGhvb2stYmFzZS1oNSgpe31cclxuLy8gQG1peGluIGhvb2stYmFzZS1oNigpe31cclxuLy8gQG1peGluIGhvb2stYmFzZS1ocigpe31cclxuLy8gQG1peGluIGhvb2stYmFzZS1ibG9ja3F1b3RlKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1iYXNlLWJsb2NrcXVvdGUtZm9vdGVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1iYXNlLXByZSgpe31cclxuLy8gQG1peGluIGhvb2stYmFzZS1taXNjKCl7fVxyXG5cclxuXHJcbi8vIEludmVyc2VcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4kaW52ZXJzZS1iYXNlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWJhc2UtbGluay1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtYmFzZS1saW5rLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1iYXNlLWNvZGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWJhc2UtZW0tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtYmFzZS1oZWFkaW5nLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1iYXNlLWhyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG5cclxuXHJcblxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJhc2UtbGluaygpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1iYXNlLWxpbmstaG92ZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLWludmVyc2UtYmFzZS1jb2RlKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJhc2UtaGVhZGluZygpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1iYXNlLWgxKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJhc2UtaDIoKXt9XHJcbi8vIEBtaXhpbiBob29rLWludmVyc2UtYmFzZS1oMygpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1iYXNlLWg0KCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJhc2UtaDUoKXt9XHJcbi8vIEBtaXhpbiBob29rLWludmVyc2UtYmFzZS1oNigpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1iYXNlLWJsb2NrcXVvdGUoKXt9XHJcbi8vIEBtaXhpbiBob29rLWludmVyc2UtYmFzZS1ibG9ja3F1b3RlLWZvb3Rlcigpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1iYXNlLWhyKCl7fVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBCYXNlXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogMS4gU2V0IGBmb250LXNpemVgIHRvIHN1cHBvcnQgYHJlbWAgdW5pdHNcclxuICogICAgTm90IHVzaW5nIGBmb250YCBwcm9wZXJ0eSBiZWNhdXNlIGEgbGVhZGluZyBoeXBoZW4gKGUuZy4gLWFwcGxlLXN5c3RlbSkgY2F1c2VzIHRoZSBmb250IHRvIGJyZWFrIGluIElFMTEgYW5kIEVkZ2VcclxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXHJcbiAqIDMuIFN0eWxlXHJcbiAqL1xuaHRtbCB7XG4gIC8qIDEgKi9cbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgQXJpYWwsIFwiTm90byBTYW5zXCIsIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS41O1xuICAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMyAqL1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBjb2xvcjogIzY2NjsgfVxuXG4vKlxyXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKiBMaW5rc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIFJlbW92ZSB0aGUgb3V0bGluZSBvbiBmb2N1c2VkIGxpbmtzIHdoZW4gdGhleSBhcmUgYWxzbyBhY3RpdmUgb3IgaG92ZXJlZFxyXG4gKi9cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLypcclxuICogU3R5bGVcclxuICovXG5hLFxuLnVrLWxpbmsge1xuICBjb2xvcjogIzFlODdmMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuYTpob3Zlcixcbi51ay1saW5rOmhvdmVyLFxuLnVrLWxpbmstdG9nZ2xlOmhvdmVyIC51ay1saW5rLFxuLnVrLWxpbmstdG9nZ2xlOmZvY3VzIC51ay1saW5rIHtcbiAgY29sb3I6ICMwZjZlY2Q7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogMS4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBFZGdlLlxyXG4gKiAyLiBUaGUgc2hvcnRoYW5kIGRlY2xhcmF0aW9uIGB1bmRlcmxpbmUgZG90dGVkYCBpcyBub3Qgc3VwcG9ydGVkIGluIFNhZmFyaS5cclxuICovXG5hYmJyW3RpdGxlXSB7XG4gIC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBkb3R0ZWQ7IH1cblxuLypcclxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cclxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjsgfVxuXG4vKlxyXG4gKiAxLiBDb25zb2xhcyBoYXMgYSBiZXR0ZXIgYmFzZWxpbmUgaW4gcnVubmluZyB0ZXh0IGNvbXBhcmVkIHRvIGBDb3VyaWVyYFxyXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqIDMuIFN0eWxlXHJcbiAqL1xuOm5vdChwcmUpID4gY29kZSxcbjpub3QocHJlKSA+IGtiZCxcbjpub3QocHJlKSA+IHNhbXAge1xuICAvKiAxICovXG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgbW9uYWNvLCBtb25vc3BhY2U7XG4gIC8qIDIgKi9cbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgLyogMyAqL1xuICBjb2xvcjogI2YwNTA2ZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4vKlxyXG4gKiBFbXBoYXNpemVcclxuICovXG5lbSB7XG4gIGNvbG9yOiAjZjA1MDZlOyB9XG5cbi8qXHJcbiAqIEluc2VydFxyXG4gKi9cbmlucyB7XG4gIGJhY2tncm91bmQ6ICNmZmQ7XG4gIGNvbG9yOiAjNjY2O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLypcclxuICogTWFya1xyXG4gKi9cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmZkO1xuICBjb2xvcjogIzY2NjsgfVxuXG4vKlxyXG4gKiBRdW90ZVxyXG4gKi9cbnEge1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLypcclxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG4vKlxyXG4gKiBQcmV2ZW50cyBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiBSZW1vdmUgdGhlIGdhcCBiZXR3ZWVuIGVtYmVkZGVkIGNvbnRlbnQgYW5kIHRoZSBib3R0b20gb2YgdGhlaXIgY29udGFpbmVycy5cclxuICovXG5hdWRpbyxcbmNhbnZhcyxcbmlmcmFtZSxcbmltZyxcbnN2ZyxcbnZpZGVvIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4vKlxyXG4gKiAxLiBBZGQgcmVzcG9uc2l2ZW5lc3MuXHJcbiAqIDIuIEF1dG8tc2NhbGUgdGhlIGhlaWdodC4gT25seSBuZWVkZWQgaWYgYGhlaWdodGAgYXR0cmlidXRlIGlzIHByZXNlbnQuXHJcbiAqIDMuIENvcnJlY3RzIHJlc3BvbnNpdmUgYG1heC13aWR0aGAgYmVoYXZpb3IgaWYgcGFkZGluZyBhbmQgYm9yZGVyIGFyZSB1c2VkLlxyXG4gKiA0LiBFeGNsdWRlIFNWR3MgZm9yIElFMTEgYmVjYXVzZSB0aGV5IGRvbid0IHByZXNlcnZlIHRoZWlyIGFzcGVjdCByYXRpby5cclxuICovXG5jYW52YXMsXG5pbWcsXG52aWRlbyB7XG4gIC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiAyICovXG4gIGhlaWdodDogYXV0bztcbiAgLyogMyAqL1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi8qIDQgKi9cbkBzdXBwb3J0cyAoZGlzcGxheTogYmxvY2spIHtcbiAgc3ZnIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH0gfVxuXG4vKlxyXG4gKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cclxuICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLypcclxuICogMS4gRml4IGxhenkgbG9hZGluZyBpbWFnZXMgaWYgcGFyZW50IGVsZW1lbnQgaXMgc2V0IHRvIGBkaXNwbGF5OiBpbmxpbmVgIGFuZCBoYXMgYG92ZXJmbG93OiBoaWRkZW5gLlxyXG4gKiAyLiBIaWRlIGBhbHRgIHRleHQgZm9yIGxhenkgbG9hZGluZyBpbWFnZXMuXHJcbiAqIE5vdGU6IFNlbGVjdG9yIGZvciBiYWNrZ3JvdW5kIHdoaWxlIGxvYWRpbmcgaW1nW2RhdGEtc3JjKj0nLmpwZyddW3NyYyo9J2RhdGE6aW1hZ2UnXSB7IGJhY2tncm91bmQ6IGdyZXk7IH1cclxuICovXG5pbWc6bm90KFtzcmNdKSB7XG4gIC8qIDEgKi9cbiAgbWluLXdpZHRoOiAxcHg7XG4gIC8qIDIgKi9cbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi8qXHJcbiAqIElmcmFtZVxyXG4gKiBSZW1vdmUgYm9yZGVyIGluIGFsbCBicm93c2Vyc1xyXG4gKi9cbmlmcmFtZSB7XG4gIGJvcmRlcjogMDsgfVxuXG4vKiBCbG9jayBlbGVtZW50c1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIE1hcmdpbnNcclxuICovXG5wLFxudWwsXG5vbCxcbmRsLFxucHJlLFxuYWRkcmVzcyxcbmZpZWxkc2V0LFxuZmlndXJlIHtcbiAgbWFyZ2luOiAwIDAgMjBweCAwOyB9XG5cbi8qIEFkZCBtYXJnaW4gaWYgYWRqYWNlbnQgZWxlbWVudCAqL1xuKiArIHAsXG4qICsgdWwsXG4qICsgb2wsXG4qICsgZGwsXG4qICsgcHJlLFxuKiArIGFkZHJlc3MsXG4qICsgZmllbGRzZXQsXG4qICsgZmlndXJlIHtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuXG4vKiBIZWFkaW5nc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmgxLCAudWstaDEsXG5oMiwgLnVrLWgyLFxuaDMsIC51ay1oMyxcbmg0LCAudWstaDQsXG5oNSwgLnVrLWg1LFxuaDYsIC51ay1oNixcbi51ay1oZWFkaW5nLXNtYWxsLFxuLnVrLWhlYWRpbmctbWVkaXVtLFxuLnVrLWhlYWRpbmctbGFyZ2UsXG4udWstaGVhZGluZy14bGFyZ2UsXG4udWstaGVhZGluZy0yeGxhcmdlIHtcbiAgbWFyZ2luOiAwIDAgMjBweCAwO1xuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBBcmlhbCwgXCJOb3RvIFNhbnNcIiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzMzMztcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyogQWRkIG1hcmdpbiBpZiBhZGphY2VudCBlbGVtZW50ICovXG4qICsgaDEsICogKyAudWstaDEsXG4qICsgaDIsICogKyAudWstaDIsXG4qICsgaDMsICogKyAudWstaDMsXG4qICsgaDQsICogKyAudWstaDQsXG4qICsgaDUsICogKyAudWstaDUsXG4qICsgaDYsICogKyAudWstaDYsXG4qICsgLnVrLWhlYWRpbmctc21hbGwsXG4qICsgLnVrLWhlYWRpbmctbWVkaXVtLFxuKiArIC51ay1oZWFkaW5nLWxhcmdlLFxuKiArIC51ay1oZWFkaW5nLXhsYXJnZSxcbiogKyAudWstaGVhZGluZy0yeGxhcmdlIHtcbiAgbWFyZ2luLXRvcDogNDBweDsgfVxuXG4vKlxyXG4gKiBTaXplc1xyXG4gKi9cbmgxLCAudWstaDEge1xuICBmb250LXNpemU6IDIuMjMxMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7IH1cblxuaDIsIC51ay1oMiB7XG4gIGZvbnQtc2l6ZTogMS43cmVtO1xuICBsaW5lLWhlaWdodDogMS4zOyB9XG5cbmgzLCAudWstaDMge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDsgfVxuXG5oNCwgLnVrLWg0IHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40OyB9XG5cbmg1LCAudWstaDUge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7IH1cblxuaDYsIC51ay1oNiB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgaDEsIC51ay1oMSB7XG4gICAgZm9udC1zaXplOiAyLjYyNXJlbTsgfVxuICBoMiwgLnVrLWgyIHtcbiAgICBmb250LXNpemU6IDJyZW07IH0gfVxuXG4vKiBMaXN0c1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbnVsLFxub2wge1xuICBwYWRkaW5nLWxlZnQ6IDMwcHg7IH1cblxuLypcclxuICogUmVzZXQgbWFyZ2luIGZvciBuZXN0ZWQgbGlzdHNcclxuICovXG51bCA+IGxpID4gdWwsXG51bCA+IGxpID4gb2wsXG5vbCA+IGxpID4gb2wsXG5vbCA+IGxpID4gdWwge1xuICBtYXJnaW46IDA7IH1cblxuLyogRGVzY3JpcHRpb24gbGlzdHNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5kdCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbmRkIHtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLyogSG9yaXpvbnRhbCBydWxlc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIENocm9tZSwgRWRnZSBhbmQgSUUuXHJcbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0LWFsaWduIGluIEVkZ2UgYW5kIElFLlxyXG4gKiAzLiBTdHlsZVxyXG4gKi9cbmhyLCAudWstaHIge1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAvKiAyICovXG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gIC8qIDMgKi9cbiAgbWFyZ2luOiAwIDAgMjBweCAwO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTVlNWU1OyB9XG5cbi8qIEFkZCBtYXJnaW4gaWYgYWRqYWNlbnQgZWxlbWVudCAqL1xuKiArIGhyLFxuKiArIC51ay1ociB7XG4gIG1hcmdpbi10b3A6IDIwcHg7IH1cblxuLyogQWRkcmVzc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmFkZHJlc3Mge1xuICBmb250LXN0eWxlOiBub3JtYWw7IH1cblxuLyogQmxvY2txdW90ZXNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAwIDAgMjBweCAwO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4vKiBBZGQgbWFyZ2luIGlmIGFkamFjZW50IGVsZW1lbnQgKi9cbiogKyBibG9ja3F1b3RlIHtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuXG4vKlxyXG4gKiBDb250ZW50XHJcbiAqL1xuYmxvY2txdW90ZSBwOmxhc3Qtb2YtdHlwZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuYmxvY2txdW90ZSBmb290ZXIge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS41OyB9XG5cbi8qIFByZWZvcm1hdHRlZCB0ZXh0XHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogMS4gQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xucHJlIHtcbiAgZm9udDogMC44NzVyZW0gLyAxLjUgQ29uc29sYXMsIG1vbmFjbywgbW9ub3NwYWNlO1xuICBjb2xvcjogIzY2NjtcbiAgLW1vei10YWItc2l6ZTogNDtcbiAgdGFiLXNpemU6IDQ7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxucHJlIGNvZGUge1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIG1vbmFjbywgbW9ub3NwYWNlOyB9XG5cbi8qIFNlbGVjdGlvbiBwc2V1ZG8tZWxlbWVudFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbjo6c2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZDogIzM5ZjtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtc2hhZG93OiBub25lOyB9XG5cbi8qIEhUTUw1IGVsZW1lbnRzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cclxuICogMi4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXHJcbiAqL1xuZGV0YWlscyxcbm1haW4ge1xuICAvKiAyICovXG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qXHJcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cclxuICovXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtOyB9XG5cbi8qXHJcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxyXG4gKi9cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBQYXNzIG1lZGlhIGJyZWFrcG9pbnRzIHRvIEpTXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogQnJlYWtwb2ludHNcclxuICovXG4udWstYnJlYWtwb2ludC1zOjpiZWZvcmUge1xuICBjb250ZW50OiBcIjY0MHB4XCI7IH1cblxuLnVrLWJyZWFrcG9pbnQtbTo6YmVmb3JlIHtcbiAgY29udGVudDogXCI5NjBweFwiOyB9XG5cbi51ay1icmVha3BvaW50LWw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiMTIwMHB4XCI7IH1cblxuLnVrLWJyZWFrcG9pbnQteGw6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiMTYwMHB4XCI7IH1cblxuOnJvb3Qge1xuICAtLXVrLWJyZWFrcG9pbnQtczogNjQwcHg7XG4gIC0tdWstYnJlYWtwb2ludC1tOiA5NjBweDtcbiAgLS11ay1icmVha3BvaW50LWw6IDEyMDBweDtcbiAgLS11ay1icmVha3BvaW50LXhsOiAxNjAwcHg7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogTGlua1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIE11dGVkXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuYS51ay1saW5rLW11dGVkLFxuLnVrLWxpbmstbXV0ZWQgYSB7XG4gIGNvbG9yOiAjOTk5OyB9XG5cbmEudWstbGluay1tdXRlZDpob3Zlcixcbi51ay1saW5rLW11dGVkIGE6aG92ZXIsXG4udWstbGluay10b2dnbGU6aG92ZXIgLnVrLWxpbmstbXV0ZWQsXG4udWstbGluay10b2dnbGU6Zm9jdXMgLnVrLWxpbmstbXV0ZWQge1xuICBjb2xvcjogIzY2NjsgfVxuXG4vKiBUZXh0XHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuYS51ay1saW5rLXRleHQsXG4udWstbGluay10ZXh0IGEge1xuICBjb2xvcjogaW5oZXJpdDsgfVxuXG5hLnVrLWxpbmstdGV4dDpob3Zlcixcbi51ay1saW5rLXRleHQgYTpob3Zlcixcbi51ay1saW5rLXRvZ2dsZTpob3ZlciAudWstbGluay10ZXh0LFxuLnVrLWxpbmstdG9nZ2xlOmZvY3VzIC51ay1saW5rLXRleHQge1xuICBjb2xvcjogIzk5OTsgfVxuXG4vKiBIZWFkaW5nXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuYS51ay1saW5rLWhlYWRpbmcsXG4udWstbGluay1oZWFkaW5nIGEge1xuICBjb2xvcjogaW5oZXJpdDsgfVxuXG5hLnVrLWxpbmstaGVhZGluZzpob3Zlcixcbi51ay1saW5rLWhlYWRpbmcgYTpob3Zlcixcbi51ay1saW5rLXRvZ2dsZTpob3ZlciAudWstbGluay1oZWFkaW5nLFxuLnVrLWxpbmstdG9nZ2xlOmZvY3VzIC51ay1saW5rLWhlYWRpbmcge1xuICBjb2xvcjogIzFlODdmMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qIFJlc2V0XHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogYCFpbXBvcnRhbnRgIG5lZWRlZCB0byBvdmVycmlkZSBpbnZlcnNlIGNvbXBvbmVudFxyXG4gKi9cbmEudWstbGluay1yZXNldCxcbi51ay1saW5rLXJlc2V0IGEge1xuICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsgfVxuXG4vKiBUb2dnbGVcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbGluay10b2dnbGUge1xuICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsgfVxuXG4udWstbGluay10b2dnbGU6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IEhlYWRpbmdcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstaGVhZGluZy1zbWFsbCB7XG4gIGZvbnQtc2l6ZTogMi42cmVtO1xuICBsaW5lLWhlaWdodDogMS4yOyB9XG5cbi51ay1oZWFkaW5nLW1lZGl1bSB7XG4gIGZvbnQtc2l6ZTogMi44ODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4xOyB9XG5cbi51ay1oZWFkaW5nLWxhcmdlIHtcbiAgZm9udC1zaXplOiAzLjRyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7IH1cblxuLnVrLWhlYWRpbmcteGxhcmdlIHtcbiAgZm9udC1zaXplOiA0cmVtO1xuICBsaW5lLWhlaWdodDogMTsgfVxuXG4udWstaGVhZGluZy0yeGxhcmdlIHtcbiAgZm9udC1zaXplOiA2cmVtO1xuICBsaW5lLWhlaWdodDogMTsgfVxuXG4vKiBUYWJsZXQgTGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAudWstaGVhZGluZy1zbWFsbCB7XG4gICAgZm9udC1zaXplOiAzLjI1cmVtOyB9XG4gIC51ay1oZWFkaW5nLW1lZGl1bSB7XG4gICAgZm9udC1zaXplOiAzLjVyZW07IH1cbiAgLnVrLWhlYWRpbmctbGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogNHJlbTsgfVxuICAudWstaGVhZGluZy14bGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogNnJlbTsgfVxuICAudWstaGVhZGluZy0yeGxhcmdlIHtcbiAgICBmb250LXNpemU6IDhyZW07IH0gfVxuXG4vKiBMYXB0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWstaGVhZGluZy1tZWRpdW0ge1xuICAgIGZvbnQtc2l6ZTogNHJlbTsgfVxuICAudWstaGVhZGluZy1sYXJnZSB7XG4gICAgZm9udC1zaXplOiA2cmVtOyB9XG4gIC51ay1oZWFkaW5nLXhsYXJnZSB7XG4gICAgZm9udC1zaXplOiA4cmVtOyB9XG4gIC51ay1oZWFkaW5nLTJ4bGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogMTFyZW07IH0gfVxuXG4vKiBQcmltYXJ5XHJcbiAgIERlcHJlY2F0ZWQ6IFVzZSBgdWstaGVhZGluZy1tZWRpdW1gIGluc3RlYWRcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuLyogSGVyb1xyXG4gICBEZXByZWNhdGVkOiBVc2UgYHVrLWhlYWRpbmcteGxhcmdlYCBpbnN0ZWFkXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbi8qIERpdmlkZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstaGVhZGluZy1kaXZpZGVyIHtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoNXB4ICsgMC4xZW0pO1xuICBib3JkZXItYm90dG9tOiBjYWxjKDAuMnB4ICsgMC4wNWVtKSBzb2xpZCAjZTVlNWU1OyB9XG5cbi8qIEJ1bGxldFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1oZWFkaW5nLWJ1bGxldCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4vKlxyXG4gKiAxLiBVc2luZyBgaW5saW5lLWJsb2NrYCB0byBtYWtlIGl0IHdvcmsgd2l0aCB0ZXh0IGFsaWdubWVudFxyXG4gKiAyLiBDZW50ZXIgdmVydGljYWxseVxyXG4gKiAzLiBTdHlsZVxyXG4gKi9cbi51ay1oZWFkaW5nLWJ1bGxldDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDIgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IGNhbGMoLTAuMSAqIDFlbSk7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIC8qIDMgKi9cbiAgaGVpZ2h0OiBjYWxjKDRweCArIDAuN2VtKTtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKDVweCArIDAuMmVtKTtcbiAgYm9yZGVyLWxlZnQ6IGNhbGMoNXB4ICsgMC4xZW0pIHNvbGlkICNlNWU1ZTU7IH1cblxuLyogTGluZVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIENsaXAgdGhlIGNoaWxkIGVsZW1lbnRcclxuICovXG4udWstaGVhZGluZy1saW5lIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKlxyXG4gKiBFeHRyYSBtYXJrdXAgaXMgbmVlZGVkIHRvIG1ha2UgaXQgd29yayB3aXRoIHRleHQgYWxpZ25cclxuICovXG4udWstaGVhZGluZy1saW5lID4gKiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi8qXHJcbiAqIDEuIENlbnRlciB2ZXJ0aWNhbGx5XHJcbiAqIDIuIE1ha2UgdGhlIGVsZW1lbnQgYXMgbGFyZ2UgYXMgcG9zc2libGUuIEl0J3MgY2xpcHBlZCBieSB0aGUgY29udGFpbmVyLlxyXG4gKiAzLiBTdHlsZVxyXG4gKi9cbi51ay1oZWFkaW5nLWxpbmUgPiA6OmJlZm9yZSxcbi51ay1oZWFkaW5nLWxpbmUgPiA6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgLyogMSAqL1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYyg1MCUgLSAoY2FsYygwLjJweCArIDAuMDVlbSkgLyAyKSk7XG4gIC8qIDIgKi9cbiAgd2lkdGg6IDIwMDBweDtcbiAgLyogMyAqL1xuICBib3JkZXItYm90dG9tOiBjYWxjKDAuMnB4ICsgMC4wNWVtKSBzb2xpZCAjZTVlNWU1OyB9XG5cbi51ay1oZWFkaW5nLWxpbmUgPiA6OmJlZm9yZSB7XG4gIHJpZ2h0OiAxMDAlO1xuICBtYXJnaW4tcmlnaHQ6IGNhbGMoNXB4ICsgMC4zZW0pOyB9XG5cbi51ay1oZWFkaW5nLWxpbmUgPiA6OmFmdGVyIHtcbiAgbGVmdDogMTAwJTtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoNXB4ICsgMC4zZW0pOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IERpdmlkZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiAxLiBSZXNldCBkZWZhdWx0IGBocmBcclxuICogMi4gU2V0IG1hcmdpbiBpZiBhIGBkaXZgIGlzIHVzZWQgZm9yIHNlbWFudGljYWwgcmVhc29uXHJcbiAqL1xuW2NsYXNzKj0ndWstZGl2aWRlciddIHtcbiAgLyogMSAqL1xuICBib3JkZXI6IG5vbmU7XG4gIC8qIDIgKi9cbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG4vKiBBZGQgbWFyZ2luIGlmIGFkamFjZW50IGVsZW1lbnQgKi9cbiogKyBbY2xhc3MqPSd1ay1kaXZpZGVyJ10ge1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG5cbi8qIEljb25cclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstZGl2aWRlci1pY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMjAlMjIlMjBoZWlnaHQlM0QlMjIyMCUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDIwJTIwMjAlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ2NpcmNsZSUyMGZpbGwlM0QlMjJub25lJTIyJTIwc3Ryb2tlJTNEJTIyJTIzZTVlNWU1JTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMiUyMiUyMGN4JTNEJTIyMTAlMjIlMjBjeSUzRCUyMjEwJTIyJTIwciUzRCUyMjclMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0UlMEFcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7IH1cblxuLnVrLWRpdmlkZXItaWNvbjo6YmVmb3JlLFxuLnVrLWRpdmlkZXItaWNvbjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXgtd2lkdGg6IGNhbGMoNTAlIC0gKDUwcHggLyAyKSk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTVlNWU1OyB9XG5cbi51ay1kaXZpZGVyLWljb246OmJlZm9yZSB7XG4gIHJpZ2h0OiBjYWxjKDUwJSArICg1MHB4IC8gMikpO1xuICB3aWR0aDogMTAwJTsgfVxuXG4udWstZGl2aWRlci1pY29uOjphZnRlciB7XG4gIGxlZnQ6IGNhbGMoNTAlICsgKDUwcHggLyAyKSk7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi8qIFNtYWxsXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogMS4gRml4IGhlaWdodCBiZWNhdXNlIG9mIGBpbmxpbmUtYmxvY2tgXHJcbiAqIDIuIFVzaW5nIDo6YWZ0ZXIgYW5kIGlubGluZS1ibG9jayB0byBtYWtlIGB0ZXh0LWFsaWduYCB3b3JrXHJcbiAqL1xuLyogMSAqL1xuLnVrLWRpdmlkZXItc21hbGwge1xuICBsaW5lLWhlaWdodDogMDsgfVxuXG4vKiAyICovXG4udWstZGl2aWRlci1zbWFsbDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDBweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuXG4vKiBWZXJ0aWNhbFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTVlNWU1OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IExpc3RcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbGlzdCB7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLypcclxuICogTWljcm8gY2xlYXJmaXhcclxuICovXG4udWstbGlzdCA+IGxpOjpiZWZvcmUsXG4udWstbGlzdCA+IGxpOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IHRhYmxlOyB9XG5cbi51ay1saXN0ID4gbGk6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLypcclxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXHJcbiAqL1xuLnVrLWxpc3QgPiBsaSA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vKlxyXG4gKiBOZXN0ZWQgbGlzdHNcclxuICovXG4udWstbGlzdCB1bCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi8qXHJcbiAqIFN0eWxlXHJcbiAqL1xuLnVrLWxpc3QgPiBsaTpudGgtY2hpbGQobisyKSxcbi51ay1saXN0ID4gbGkgPiB1bCB7XG4gIG1hcmdpbi10b3A6IDEwcHg7IH1cblxuLyogU3R5bGUgbW9kaWZpZXJzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogRGl2aWRlclxyXG4gKi9cbi51ay1saXN0LWRpdmlkZXIgPiBsaTpudGgtY2hpbGQobisyKSB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZTVlNTsgfVxuXG4vKlxyXG4gKiBTdHJpcGVkXHJcbiAqL1xuLnVrLWxpc3Qtc3RyaXBlZCA+IGxpIHtcbiAgcGFkZGluZzogMTBweCAxMHB4OyB9XG5cbi51ay1saXN0LXN0cmlwZWQgPiBsaTpudGgtb2YtdHlwZShvZGQpIHtcbiAgYmFja2dyb3VuZDogI2Y4ZjhmODsgfVxuXG4udWstbGlzdC1zdHJpcGVkID4gbGk6bnRoLWNoaWxkKG4rMikge1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbi8qXHJcbiAqIEJ1bGxldFxyXG4gKiAxLiBSZXNldCBkaXNwbGF5IGB0YWJsZWAgd2hpY2ggY2F1c2VzIGlzc3VlcyBpbiBjb21iaW5hdGlvbiB3aXRoIG11bHRpIGNvbHVtbiBsYXlvdXRzLlxyXG4gKi9cbi51ay1saXN0LWJ1bGxldCA+IGxpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IGNhbGMoMS41ZW0gKyAxMHB4KTsgfVxuXG4udWstbGlzdC1idWxsZXQgPiBsaTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxLjVlbTtcbiAgaGVpZ2h0OiAxLjVlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjI2JTIyJTIwaGVpZ2h0JTNEJTIyNiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDYlMjA2JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NjaXJjbGUlMjBmaWxsJTNEJTIyJTIzNjY2JTIyJTIwY3glM0QlMjIzJTIyJTIwY3klM0QlMjIzJTIyJTIwciUzRCUyMjMlMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0VcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyogU2l6ZSBtb2RpZmllclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1saXN0LWxhcmdlID4gbGk6bnRoLWNoaWxkKG4rMiksXG4udWstbGlzdC1sYXJnZSA+IGxpID4gdWwge1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG5cbi8qXHJcbiAqIERpdmlkZXJcclxuICovXG4udWstbGlzdC1sYXJnZS51ay1saXN0LWRpdmlkZXIgPiBsaTpudGgtY2hpbGQobisyKSB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIHBhZGRpbmctdG9wOiAyMHB4OyB9XG5cbi8qXHJcbiAqIFN0cmlwZWRcclxuICovXG4udWstbGlzdC1sYXJnZS51ay1saXN0LXN0cmlwZWQgPiBsaSB7XG4gIHBhZGRpbmc6IDIwcHggMTBweDsgfVxuXG4udWstbGlzdC1sYXJnZS51ay1saXN0LXN0cmlwZWQgPiBsaTpudGgtY2hpbGQobisyKSB7XG4gIG1hcmdpbi10b3A6IDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogSWNvblxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIE5vdGU6IDEuIC0gNy4gaXMgcmVxdWlyZWQgZm9yIGBidXR0b25gIGVsZW1lbnRzLiBOZWVkZWQgZm9yIENsb3NlIGFuZCBGb3JtIEljb24gY29tcG9uZW50LlxyXG4gKiAxLiBSZW1vdmUgbWFyZ2lucyBpbiBDaHJvbWUsIFNhZmFyaSBhbmQgT3BlcmEuXHJcbiAqIDIuIFJlbW92ZSBib3JkZXJzIGZvciBgYnV0dG9uYC5cclxuICogMy4gUmVtb3ZlIGJvcmRlci1yYWRpdXMgaW4gQ2hyb21lLlxyXG4gKiA0LiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFLlxyXG4gKiA1LiBDb3JyZWN0IGBmb250YCBwcm9wZXJ0aWVzIGFuZCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgZm9yIGBidXR0b25gLlxyXG4gKiA2LiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cclxuICogNy4gUmVtb3ZlIGRlZmF1bHQgYGJ1dHRvbmAgcGFkZGluZyBhbmQgYmFja2dyb3VuZCBjb2xvclxyXG4gKiA4LiBTdHlsZVxyXG4gKiA5LiBGaWxsIGFsbCBTVkcgZWxlbWVudHMgd2l0aCB0aGUgY3VycmVudCB0ZXh0IGNvbG9yIGlmIG5vIGBmaWxsYCBhdHRyaWJ1dGUgaXMgc2V0XHJcbiAqIDEwLiBMZXQgdGhlIGNvbnRhaW5lciBmaXQgdGhlIGhlaWdodCBvZiB0aGUgaWNvblxyXG4gKi9cbi51ay1pY29uIHtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDIgKi9cbiAgYm9yZGVyOiBub25lO1xuICAvKiAzICovXG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIC8qIDQgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC8qIDUgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDYgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIC8qIDcuICovXG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvKiA4ICovXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLyogOSAqL1xuICBmaWxsOiBjdXJyZW50Y29sb3I7XG4gIC8qIDEwICovXG4gIGxpbmUtaGVpZ2h0OiAwOyB9XG5cbi8qIFJlcXVpcmVkIGZvciBgYnV0dG9uYC4gKi9cbmJ1dHRvbi51ay1pY29uOm5vdCg6ZGlzYWJsZWQpIHtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi8qXHJcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXHJcbiAqL1xuLnVrLWljb246Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLypcclxuICogU2V0IHRoZSBmaWxsIGFuZCBzdHJva2UgY29sb3Igb2YgYWxsIFNWRyBlbGVtZW50cyB0byB0aGUgY3VycmVudCB0ZXh0IGNvbG9yXHJcbiAqL1xuLnVrLWljb246bm90KC51ay1wcmVzZXJ2ZSkgW2ZpbGwqPScjJ106bm90KC51ay1wcmVzZXJ2ZSkge1xuICBmaWxsOiBjdXJyZW50Y29sb3I7IH1cblxuLnVrLWljb246bm90KC51ay1wcmVzZXJ2ZSkgW3N0cm9rZSo9JyMnXTpub3QoLnVrLXByZXNlcnZlKSB7XG4gIHN0cm9rZTogY3VycmVudGNvbG9yOyB9XG5cbi8qXHJcbiAqIEZpeCBGaXJlZm94IGJsdXJyeSBTVkcgcmVuZGVyaW5nOiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQ2ODM1XHJcbiAqL1xuLnVrLWljb24gPiAqIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cblxuLyogSW1hZ2UgbW9kaWZpZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiBEaXNwbGF5IGltYWdlcyBpbiBpY29uIGRpbWVuc2lvbnNcclxuICovXG4udWstaWNvbi1pbWFnZSB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4vKiBTdHlsZSBtb2RpZmllcnNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiBMaW5rXHJcbiAqL1xuLnVrLWljb24tbGluayB7XG4gIGNvbG9yOiAjOTk5OyB9XG5cbi51ay1pY29uLWxpbms6aG92ZXIsXG4udWstaWNvbi1saW5rOmZvY3VzIHtcbiAgY29sb3I6ICM2NjY7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLyogT25DbGljayArIEFjdGl2ZSAqL1xuLnVrLWljb24tbGluazphY3RpdmUsXG4udWstYWN0aXZlID4gLnVrLWljb24tbGluayB7XG4gIGNvbG9yOiAjNTk1OTU5OyB9XG5cbi8qXHJcbiAqIEJ1dHRvblxyXG4gKiAxLiBDZW50ZXIgaWNvbiB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHlcclxuICovXG4udWstaWNvbi1idXR0b24ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBib3JkZXItcmFkaXVzOiA1MDBweDtcbiAgYmFja2dyb3VuZDogI2Y4ZjhmODtcbiAgY29sb3I6ICM5OTk7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay1pY29uLWJ1dHRvbjpob3Zlcixcbi51ay1pY29uLWJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7XG4gIGNvbG9yOiAjNjY2O1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi8qIE9uQ2xpY2sgKyBBY3RpdmUgKi9cbi51ay1pY29uLWJ1dHRvbjphY3RpdmUsXG4udWstYWN0aXZlID4gLnVrLWljb24tYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZGZkZjtcbiAgY29sb3I6ICM2NjY7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogRm9ybVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIDEuIERlZmluZSBjb25zaXN0ZW50IGJveCBzaXppbmcuXHJcbiAqICAgIERlZmF1bHQgaXMgYGNvbnRlbnQtYm94YCB3aXRoIGZvbGxvd2luZyBleGNlcHRpb25zIHNldCB0byBgYm9yZGVyLWJveGBcclxuICogICAgYHNlbGVjdGAsIGBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl1gIGFuZCBgaW5wdXRbdHlwZT1cInJhZGlvXCJdYFxyXG4gKiAgICBgaW5wdXRbdHlwZT1cInNlYXJjaFwiXWAgaW4gQ2hyb21lLCBTYWZhcmkgYW5kIE9wZXJhXHJcbiAqICAgIGBpbnB1dFt0eXBlPVwiY29sb3JcIl1gIGluIEZpcmVmb3hcclxuICogMi4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94L0lFIGFuZCBDaHJvbWUvU2FmYXJpL09wZXJhLlxyXG4gKiAzLiBSZW1vdmUgYGJvcmRlci1yYWRpdXNgIGluIGlPUy5cclxuICogNC4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cbi51ay1pbnB1dCxcbi51ay1zZWxlY3QsXG4udWstdGV4dGFyZWEsXG4udWstcmFkaW8sXG4udWstY2hlY2tib3gge1xuICAvKiAxICovXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDIgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAzICovXG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIC8qIDQgKi9cbiAgZm9udDogaW5oZXJpdDsgfVxuXG4vKlxyXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxyXG4gKi9cbi51ay1pbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qXHJcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cclxuICovXG4udWstc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLypcclxuICogMS4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gYWxsIGJyb3dzZXJzXHJcbiAqIDIuIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgYW5kIHVzZSBgYm9sZGAgaW5zdGVhZC5cclxuICogTk9URTogQm90aCBkZWNsYXJhdGlvbnMgZG9uJ3Qgd29yayBpbiBDaHJvbWUsIFNhZmFyaSBhbmQgT3BlcmEuXHJcbiAqL1xuLnVrLXNlbGVjdCBvcHRncm91cCB7XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqL1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4vKlxyXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cclxuICovXG4udWstdGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKlxyXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgYW5kIGNhbmNlbCBidXR0b25zIGluIENocm9tZSBvbiBPUyBYIGFuZCBTYWZhcmkgb24gT1MgWC5cclxuICovXG4udWstaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbi51ay1pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qXHJcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cclxuICovXG4udWstaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbi51ay1pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi8qXHJcbiAqIFJlbW92ZXMgcGxhY2Vob2xkZXIgdHJhbnNwYXJlbmN5IGluIEZpcmVmb3guXHJcbiAqL1xuLnVrLWlucHV0OjotbW96LXBsYWNlaG9sZGVyLFxuLnVrLXRleHRhcmVhOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgb3BhY2l0eTogMTsgfVxuXG4vKlxyXG4gKiBJbXByb3ZlcyBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgZm9yIGNsaWNrYWJsZSBlbGVtZW50c1xyXG4gKi9cbi51ay1yYWRpbzpub3QoOmRpc2FibGVkKSxcbi51ay1jaGVja2JveDpub3QoOmRpc2FibGVkKSB7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4vKlxyXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXHJcbiAqL1xuLnVrLWZpZWxkc2V0IHtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyogSW5wdXQsIHNlbGVjdCBhbmQgdGV4dGFyZWFcclxuICogQWxsb3dlZDogYHRleHRgLCBgcGFzc3dvcmRgLCBgZGF0ZXRpbWVgLCBgZGF0ZXRpbWUtbG9jYWxgLCBgZGF0ZWAsICBgbW9udGhgLFxyXG4gICAgICAgICAgICBgdGltZWAsIGB3ZWVrYCwgYG51bWJlcmAsIGBlbWFpbGAsIGB1cmxgLCBgc2VhcmNoYCwgYHRlbGAsIGBjb2xvcmBcclxuICogRGlzYWxsb3dlZDogYHJhbmdlYCwgYHJhZGlvYCwgYGNoZWNrYm94YCwgYGZpbGVgLCBgc3VibWl0YCwgYHJlc2V0YCBhbmQgYGltYWdlYFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIFJlbW92ZSBkZWZhdWx0IHN0eWxlIGluIGlPUy5cclxuICovXG4udWstaW5wdXQsXG4udWstdGV4dGFyZWEge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLypcclxuICogMS4gUHJldmVudCBjb250ZW50IG92ZXJmbG93IGlmIGEgZml4ZWQgd2lkdGggaXMgdXNlZFxyXG4gKiAyLiBUYWtlIHRoZSBmdWxsIHdpZHRoXHJcbiAqIDMuIFJlc2V0IGRlZmF1bHRcclxuICogNC4gU3R5bGVcclxuICovXG4udWstaW5wdXQsXG4udWstc2VsZWN0LFxuLnVrLXRleHRhcmVhIHtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDIgKi9cbiAgd2lkdGg6IDEwMCU7XG4gIC8qIDMgKi9cbiAgYm9yZGVyOiAwIG5vbmU7XG4gIC8qIDQgKi9cbiAgcGFkZGluZzogMCAxMHB4O1xuICBiYWNrZ3JvdW5kOiAjZjhmOGY4O1xuICBjb2xvcjogIzY2NjsgfVxuXG4vKlxyXG4gKiBTaW5nbGUtbGluZVxyXG4gKiAxLiBBbGxvdyBhbnkgZWxlbWVudCB0byBsb29rIGxpa2UgYW4gYGlucHV0YCBvciBgc2VsZWN0YCBlbGVtZW50XHJcbiAqIDIuIE1ha2Ugc3VyZSBsaW5lLWhlaWdodCBpcyBub3QgbGFyZ2VyIHRoYW4gaGVpZ2h0XHJcbiAqICAgIEFsc28gbmVlZGVkIHRvIGNlbnRlciB0aGUgdGV4dCB2ZXJ0aWNhbGx5XHJcbiAqL1xuLnVrLWlucHV0LFxuLnVrLXNlbGVjdDpub3QoW211bHRpcGxlXSk6bm90KFtzaXplXSkge1xuICBoZWlnaHQ6IDQwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qIDIgKi9cbi51ay1pbnB1dDpub3QoaW5wdXQpLFxuLnVrLXNlbGVjdDpub3Qoc2VsZWN0KSB7XG4gIGxpbmUtaGVpZ2h0OiA0MHB4OyB9XG5cbi8qXHJcbiAqIE11bHRpLWxpbmVcclxuICovXG4udWstc2VsZWN0W211bHRpcGxlXSxcbi51ay1zZWxlY3Rbc2l6ZV0sXG4udWstdGV4dGFyZWEge1xuICBwYWRkaW5nLXRvcDogNHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG5cbi8qIEZvY3VzICovXG4udWstaW5wdXQ6Zm9jdXMsXG4udWstc2VsZWN0OmZvY3VzLFxuLnVrLXRleHRhcmVhOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbiAgY29sb3I6ICM2NjY7IH1cblxuLyogRGlzYWJsZWQgKi9cbi51ay1pbnB1dDpkaXNhYmxlZCxcbi51ay1zZWxlY3Q6ZGlzYWJsZWQsXG4udWstdGV4dGFyZWE6ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4O1xuICBjb2xvcjogIzk5OTsgfVxuXG4vKlxyXG4gKiBQbGFjZWhvbGRlclxyXG4gKi9cbi51ay1pbnB1dDo6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICM5OTkgIWltcG9ydGFudDsgfVxuXG4udWstaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICM5OTk7IH1cblxuLnVrLXRleHRhcmVhOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzk5OSAhaW1wb3J0YW50OyB9XG5cbi51ay10ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzk5OTsgfVxuXG4vKiBTdHlsZSBtb2RpZmllciAoYHVrLWlucHV0YCwgYHVrLXNlbGVjdGAgYW5kIGB1ay10ZXh0YXJlYWApXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogU21hbGxcclxuICovXG4udWstZm9ybS1zbWFsbCB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07IH1cblxuLnVrLWZvcm0tc21hbGw6bm90KHRleHRhcmVhKTpub3QoW211bHRpcGxlXSk6bm90KFtzaXplXSkge1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA4cHg7IH1cblxuLnVrLWZvcm0tc21hbGw6bm90KHNlbGVjdCk6bm90KGlucHV0KTpub3QodGV4dGFyZWEpIHtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7IH1cblxuLypcclxuICogTGFyZ2VcclxuICovXG4udWstZm9ybS1sYXJnZSB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuXG4udWstZm9ybS1sYXJnZTpub3QodGV4dGFyZWEpOm5vdChbbXVsdGlwbGVdKTpub3QoW3NpemVdKSB7XG4gIGhlaWdodDogNTVweDtcbiAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMnB4OyB9XG5cbi51ay1mb3JtLWxhcmdlOm5vdChzZWxlY3QpOm5vdChpbnB1dCk6bm90KHRleHRhcmVhKSB7XG4gIGxpbmUtaGVpZ2h0OiA1NXB4OyB9XG5cbi8qIFN0eWxlIG1vZGlmaWVyIChgdWstaW5wdXRgLCBgdWstc2VsZWN0YCBhbmQgYHVrLXRleHRhcmVhYClcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiBFcnJvclxyXG4gKi9cbi51ay1mb3JtLWRhbmdlcixcbi51ay1mb3JtLWRhbmdlcjpmb2N1cyB7XG4gIGNvbG9yOiAjZjA1MDZlOyB9XG5cbi8qXHJcbiAqIFN1Y2Nlc3NcclxuICovXG4udWstZm9ybS1zdWNjZXNzLFxuLnVrLWZvcm0tc3VjY2Vzczpmb2N1cyB7XG4gIGNvbG9yOiAjMzJkMjk2OyB9XG5cbi8qXHJcbiAqIEJsYW5rXHJcbiAqL1xuLnVrLWZvcm0tYmxhbmsge1xuICBiYWNrZ3JvdW5kOiBub25lOyB9XG5cbi8qIFdpZHRoIG1vZGlmaWVycyAoYHVrLWlucHV0YCwgYHVrLXNlbGVjdGAgYW5kIGB1ay10ZXh0YXJlYWApXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogRml4ZWQgd2lkdGhzXHJcbiAqIERpZmZlcmVudCB3aWR0aHMgZm9yIG1pbmkgc2l6ZWQgYGlucHV0YCBhbmQgYHNlbGVjdGAgZWxlbWVudHNcclxuICovXG5pbnB1dC51ay1mb3JtLXdpZHRoLXhzbWFsbCB7XG4gIHdpZHRoOiA1MHB4OyB9XG5cbnNlbGVjdC51ay1mb3JtLXdpZHRoLXhzbWFsbCB7XG4gIHdpZHRoOiA3NXB4OyB9XG5cbi51ay1mb3JtLXdpZHRoLXNtYWxsIHtcbiAgd2lkdGg6IDEzMHB4OyB9XG5cbi51ay1mb3JtLXdpZHRoLW1lZGl1bSB7XG4gIHdpZHRoOiAyMDBweDsgfVxuXG4udWstZm9ybS13aWR0aC1sYXJnZSB7XG4gIHdpZHRoOiA1MDBweDsgfVxuXG4vKiBTZWxlY3RcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiAxLiBSZW1vdmUgZGVmYXVsdCBzdHlsZS4gQWxzbyB3b3JrcyBpbiBGaXJlZm94XHJcbiAqIDIuIFN0eWxlXHJcbiAqIDMuIFJlbW92ZSBkZWZhdWx0IHN0eWxlIGluIElFIDEwLzExXHJcbiAqIDQuIFNldCBgY29sb3JgIGZvciBvcHRpb25zIGluIHRoZSBzZWxlY3QgZHJvcGRvd24sIGJlY2F1c2UgdGhlIGluaGVyaXRlZCBgY29sb3JgIG1pZ2h0IGJlIHRvbyBsaWdodC5cclxuICovXG4udWstc2VsZWN0Om5vdChbbXVsdGlwbGVdKTpub3QoW3NpemVdKSB7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC8qIDIgKi9cbiAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIyNCUyMiUyMGhlaWdodCUzRCUyMjE2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAxNiUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM2NjYlMjIlMjBwb2ludHMlM0QlMjIxMiUyMDElMjA5JTIwNiUyMDE1JTIwNiUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNjY2JTIyJTIwcG9pbnRzJTNEJTIyMTIlMjAxMyUyMDklMjA4JTIwMTUlMjA4JTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFJTBBXCIpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDUwJTsgfVxuXG4vKiAzICovXG4udWstc2VsZWN0Om5vdChbbXVsdGlwbGVdKTpub3QoW3NpemVdKTo6LW1zLWV4cGFuZCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogNCAqL1xuLnVrLXNlbGVjdDpub3QoW211bHRpcGxlXSk6bm90KFtzaXplXSkgb3B0aW9uIHtcbiAgY29sb3I6ICM0NDQ7IH1cblxuLypcclxuICogRGlzYWJsZWRcclxuICovXG4udWstc2VsZWN0Om5vdChbbXVsdGlwbGVdKTpub3QoW3NpemVdKTpkaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMjQlMjIlMjBoZWlnaHQlM0QlMjIxNiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMTYlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTk5JTIyJTIwcG9pbnRzJTNEJTIyMTIlMjAxJTIwOSUyMDYlMjAxNSUyMDYlMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk5OSUyMiUyMHBvaW50cyUzRCUyMjEyJTIwMTMlMjA5JTIwOCUyMDE1JTIwOCUyMiUyMCUyRiUzRSUwQSUzQyUyRnN2ZyUzRSUwQVwiKTsgfVxuXG4vKiBEYXRhbGlzdFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIDEuIFJlbW92ZSBkZWZhdWx0IHN0eWxlIGluIENocm9tZVxyXG4gKi9cbi51ay1pbnB1dFtsaXN0XSB7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlOyB9XG5cbi51ay1pbnB1dFtsaXN0XTpob3Zlcixcbi51ay1pbnB1dFtsaXN0XTpmb2N1cyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMjQlMjIlMjBoZWlnaHQlM0QlMjIxNiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMTYlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNjY2JTIyJTIwcG9pbnRzJTNEJTIyMTIlMjAxMiUyMDglMjA2JTIwMTYlMjA2JTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFJTBBXCIpOyB9XG5cbi8qIDEgKi9cbi51ay1pbnB1dFtsaXN0XTo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBSYWRpbyBhbmQgY2hlY2tib3hcclxuICogTm90ZTogRG9lcyBub3Qgd29yayBpbiBJRTExXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogMS4gU3R5bGVcclxuICogMi4gTWFrZSBib3ggbW9yZSByb2J1c3Qgc28gaXQgY2xpcHMgdGhlIGNoaWxkIGVsZW1lbnRcclxuICogMy4gVmVydGljYWwgYWxpZ25tZW50XHJcbiAqIDQuIFJlbW92ZSBkZWZhdWx0IHN0eWxlXHJcbiAqIDUuIEZpeCBibGFjayBiYWNrZ3JvdW5kIG9uIGlPU1xyXG4gKiA2LiBDZW50ZXIgaWNvbnNcclxuICovXG4udWstcmFkaW8sXG4udWstY2hlY2tib3gge1xuICAvKiAxICovXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAxNnB4O1xuICB3aWR0aDogMTZweDtcbiAgLyogMiAqL1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvKiAzICovXG4gIG1hcmdpbi10b3A6IC00cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIC8qIDQgKi9cbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC8qIDUgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjtcbiAgLyogNiAqL1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlOyB9XG5cbi51ay1yYWRpbyB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuXG4vKiBGb2N1cyAqL1xuLnVrLXJhZGlvOmZvY3VzLFxuLnVrLWNoZWNrYm94OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4vKlxyXG4gKiBDaGVja2VkXHJcbiAqL1xuLnVrLXJhZGlvOmNoZWNrZWQsXG4udWstY2hlY2tib3g6Y2hlY2tlZCxcbi51ay1jaGVja2JveDppbmRldGVybWluYXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlODdmMDsgfVxuXG4vKiBGb2N1cyAqL1xuLnVrLXJhZGlvOmNoZWNrZWQ6Zm9jdXMsXG4udWstY2hlY2tib3g6Y2hlY2tlZDpmb2N1cyxcbi51ay1jaGVja2JveDppbmRldGVybWluYXRlOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBlNmVjZDsgfVxuXG4vKlxyXG4gKiBJY29uc1xyXG4gKi9cbi51ay1yYWRpbzpjaGVja2VkIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIxNiUyMiUyMGhlaWdodCUzRCUyMjE2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTYlMjAxNiUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDY2lyY2xlJTIwZmlsbCUzRCUyMiUyM2ZmZiUyMiUyMGN4JTNEJTIyOCUyMiUyMGN5JTNEJTIyOCUyMiUyMHIlM0QlMjIyJTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFXCIpOyB9XG5cbi51ay1jaGVja2JveDpjaGVja2VkIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIxNCUyMiUyMGhlaWdodCUzRCUyMjExJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTQlMjAxMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBwb2ludHMlM0QlMjIxMiUyMDElMjA1JTIwNy41JTIwMiUyMDUlMjAxJTIwNS41JTIwNSUyMDEwJTIwMTMlMjAxLjUlMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0UlMEFcIik7IH1cblxuLnVrLWNoZWNrYm94OmluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjE2JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNiUyMDE2JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NyZWN0JTIwZmlsbCUzRCUyMiUyM2ZmZiUyMiUyMHglM0QlMjIzJTIyJTIweSUzRCUyMjglMjIlMjB3aWR0aCUzRCUyMjEwJTIyJTIwaGVpZ2h0JTNEJTIyMSUyMiUyMCUyRiUzRSUwQSUzQyUyRnN2ZyUzRVwiKTsgfVxuXG4vKlxyXG4gKiBEaXNhYmxlZFxyXG4gKi9cbi51ay1yYWRpbzpkaXNhYmxlZCxcbi51ay1jaGVja2JveDpkaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7IH1cblxuLnVrLXJhZGlvOmRpc2FibGVkOmNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjE2JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNiUyMDE2JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NjaXJjbGUlMjBmaWxsJTNEJTIyJTIzOTk5JTIyJTIwY3glM0QlMjI4JTIyJTIwY3klM0QlMjI4JTIyJTIwciUzRCUyMjIlMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0VcIik7IH1cblxuLnVrLWNoZWNrYm94OmRpc2FibGVkOmNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjE0JTIyJTIwaGVpZ2h0JTNEJTIyMTElMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNCUyMDExJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk5OSUyMiUyMHBvaW50cyUzRCUyMjEyJTIwMSUyMDUlMjA3LjUlMjAyJTIwNSUyMDElMjA1LjUlMjA1JTIwMTAlMjAxMyUyMDEuNSUyMiUyMCUyRiUzRSUwQSUzQyUyRnN2ZyUzRSUwQVwiKTsgfVxuXG4udWstY2hlY2tib3g6ZGlzYWJsZWQ6aW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTYlMjIlMjBoZWlnaHQlM0QlMjIxNiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE2JTIwMTYlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzOTk5JTIyJTIweCUzRCUyMjMlMjIlMjB5JTNEJTIyOCUyMiUyMHdpZHRoJTNEJTIyMTAlMjIlMjBoZWlnaHQlM0QlMjIxJTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFXCIpOyB9XG5cbi8qIExlZ2VuZFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIExlZ2VuZFxyXG4gKiAxLiBCZWhhdmUgbGlrZSBibG9jayBlbGVtZW50XHJcbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cclxuICogMy4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxyXG4gKiA0LiBTdHlsZVxyXG4gKi9cbi51ay1sZWdlbmQge1xuICAvKiAxICovXG4gIHdpZHRoOiAxMDAlO1xuICAvKiAyICovXG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAzICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDQgKi9cbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7IH1cblxuLyogQ3VzdG9tIGNvbnRyb2xzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogMS4gQ29udGFpbmVyIGZpdHMgaXRzIGNvbnRlbnRcclxuICogMi4gQ3JlYXRlIHBvc2l0aW9uIGNvbnRleHRcclxuICogMy4gUHJldmVudCBjb250ZW50IG92ZXJmbG93XHJcbiAqIDQuIEJlaGF2ZSBsaWtlIG1vc3QgaW5saW5lLWJsb2NrIGVsZW1lbnRzXHJcbiAqL1xuLnVrLWZvcm0tY3VzdG9tIHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDIgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvKiAzICovXG4gIG1heC13aWR0aDogMTAwJTtcbiAgLyogNCAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi8qXHJcbiAqIDEuIFBvc2l0aW9uIGFuZCByZXNpemUgdGhlIGZvcm0gY29udHJvbCB0byBhbHdheXMgY292ZXIgaXRzIGNvbnRhaW5lclxyXG4gKiAyLiBSZXF1aXJlZCBmb3IgRmlyZWZveCBmb3IgcG9zaXRpb25pbmcgdG8gdGhlIGxlZnRcclxuICogMy4gUmVxdWlyZWQgZm9yIFdlYmtpdCB0byBtYWtlIGBoZWlnaHRgIHdvcmtcclxuICogNC4gSGlkZSBjb250cm9sZSBhbmQgc2hvdyBjdXJzb3JcclxuICogNS4gTmVlZGVkIGZvciB0aGUgY3Vyc29yXHJcbiAqIDYuIENsaXAgaGVpZ2h0IGNhdXNlZCBieSA1LiBOZWVkZWQgZm9yIFdlYmtpdCBvbmx5XHJcbiAqL1xuLnVrLWZvcm0tY3VzdG9tIHNlbGVjdCxcbi51ay1mb3JtLWN1c3RvbSBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gIC8qIDEgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDE7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIC8qIDIgKi9cbiAgbGVmdDogMDtcbiAgLyogMyAqL1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC8qIDQgKi9cbiAgb3BhY2l0eTogMDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi51ay1mb3JtLWN1c3RvbSBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gIC8qIDUgKi9cbiAgZm9udC1zaXplOiA1MDBweDtcbiAgLyogNiAqL1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIExhYmVsXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogTGF5b3V0XHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogU3RhY2tlZFxyXG4gKi9cbi51ay1mb3JtLXN0YWNrZWQgLnVrLWZvcm0tbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4vKlxyXG4gKiBIb3Jpem9udGFsXHJcbiAqL1xuLyogVGFibGV0IHBvcnRyYWl0IGFuZCBzbWFsbGVyICovXG5AbWVkaWEgKG1heC13aWR0aDogOTU5cHgpIHtcbiAgLyogQmVoYXZlIGxpa2UgYHVrLWZvcm0tc3RhY2tlZGAgKi9cbiAgLnVrLWZvcm0taG9yaXpvbnRhbCAudWstZm9ybS1sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfSB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC51ay1mb3JtLWhvcml6b250YWwgLnVrLWZvcm0tbGFiZWwge1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnVrLWZvcm0taG9yaXpvbnRhbCAudWstZm9ybS1jb250cm9scyB7XG4gICAgbWFyZ2luLWxlZnQ6IDIxNXB4OyB9XG4gIC8qIEJldHRlciB2ZXJ0aWNhbCBhbGlnbm1lbnQgaWYgY29udHJvbHMgYXJlIGNoZWNrYm94ZXMgYW5kIHJhZGlvIGJ1dHRvbnMgd2l0aCB0ZXh0ICovXG4gIC51ay1mb3JtLWhvcml6b250YWwgLnVrLWZvcm0tY29udHJvbHMtdGV4dCB7XG4gICAgcGFkZGluZy10b3A6IDdweDsgfSB9XG5cbi8qIEljb25zXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogMS4gU2V0IHBvc2l0aW9uXHJcbiAqIDIuIFNldCB3aWR0aFxyXG4gKiAzLiBDZW50ZXIgaWNvbiB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHlcclxuICogNC4gU3R5bGVcclxuICovXG4udWstZm9ybS1pY29uIHtcbiAgLyogMSAqL1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICAvKiAyICovXG4gIHdpZHRoOiA0MHB4O1xuICAvKiAzICovXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLyogNCAqL1xuICBjb2xvcjogIzk5OTsgfVxuXG4vKlxyXG4gKiBSZXF1aXJlZCBmb3IgYGFgLlxyXG4gKi9cbi51ay1mb3JtLWljb246aG92ZXIge1xuICBjb2xvcjogIzY2NjsgfVxuXG4vKlxyXG4gKiBNYWtlIGBpbnB1dGAgZWxlbWVudCBjbGlja2FibGUgdGhyb3VnaCBpY29uLCBlLmcuIGlmIGl0J3MgYSBgc3BhbmBcclxuICovXG4udWstZm9ybS1pY29uOm5vdChhKTpub3QoYnV0dG9uKTpub3QoaW5wdXQpIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLypcclxuICogSW5wdXQgcGFkZGluZ1xyXG4gKi9cbi51ay1mb3JtLWljb246bm90KC51ay1mb3JtLWljb24tZmxpcCkgfiAudWstaW5wdXQge1xuICBwYWRkaW5nLWxlZnQ6IDQwcHggIWltcG9ydGFudDsgfVxuXG4vKlxyXG4gKiBQb3NpdGlvbiBtb2RpZmllclxyXG4gKi9cbi51ay1mb3JtLWljb24tZmxpcCB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi51ay1mb3JtLWljb24tZmxpcCB+IC51ay1pbnB1dCB7XG4gIHBhZGRpbmctcmlnaHQ6IDQwcHggIWltcG9ydGFudDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBCdXR0b25cclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiAxLiBSZW1vdmUgbWFyZ2lucyBpbiBDaHJvbWUsIFNhZmFyaSBhbmQgT3BlcmEuXHJcbiAqIDIuIFJlbW92ZSBib3JkZXJzIGZvciBgYnV0dG9uYC5cclxuICogMy4gQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRS5cclxuICogNC4gQ29ycmVjdCBgZm9udGAgcHJvcGVydGllcyBhbmQgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGZvciBgYnV0dG9uYC5cclxuICogNS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXHJcbiAqIDYuIFN0eWxlXHJcbiAqIDcuIGBsaW5lLWhlaWdodGAgaXMgdXNlZCB0byBjcmVhdGUgYSBoZWlnaHQgYmVjYXVzZSBpdCBhbHNvIGNlbnRlcnMgdGhlIHRleHQgdmVydGljYWxseSBmb3IgYGFgIGVsZW1lbnRzLlxyXG4gKiAgICBCZXR0ZXIgd291bGQgYmUgdG8gdXNlIGhlaWdodCBhbmQgZmxleGJveCB0byBjZW50ZXIgdGhlIHRleHQgdmVydGljYWxseSBidXQgZmxleGJveCBkb2Vzbid0IHdvcmsgaW4gRmlyZWZveCBvbiBgYnV0dG9uYCBlbGVtZW50cy5cclxuICogOC4gQWxpZ24gdGV4dCBpZiBidXR0b24gaGFzIGEgd2lkdGhcclxuICogOS4gUmVxdWlyZWQgZm9yIGBhYC5cclxuICovXG4udWstYnV0dG9uIHtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDIgKi9cbiAgYm9yZGVyOiBub25lO1xuICAvKiAzICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAvKiA0ICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiA1ICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAvKiA2ICovXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMCAzMHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXNpemU6IDE2cHg7XG4gIC8qIDcgKi9cbiAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gIC8qIDggKi9cbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAvKiA5ICovXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4udWstYnV0dG9uOm5vdCg6ZGlzYWJsZWQpIHtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi8qXHJcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXHJcbiAqL1xuLnVrLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4vKiBIb3ZlciAqL1xuLnVrLWJ1dHRvbjpob3ZlciB7XG4gIC8qIDkgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qIEZvY3VzICovXG4udWstYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4vKiBPbkNsaWNrICsgQWN0aXZlICovXG4vKiBTdHlsZSBtb2RpZmllcnNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiBEZWZhdWx0XHJcbiAqL1xuLnVrLWJ1dHRvbi1kZWZhdWx0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbiAgY29sb3I6ICMzMzM7IH1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLWJ1dHRvbi1kZWZhdWx0OmhvdmVyLFxuLnVrLWJ1dHRvbi1kZWZhdWx0OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjtcbiAgY29sb3I6ICMzMzM7IH1cblxuLyogT25DbGljayArIEFjdGl2ZSAqL1xuLnVrLWJ1dHRvbi1kZWZhdWx0OmFjdGl2ZSxcbi51ay1idXR0b24tZGVmYXVsdC51ay1hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZkZmRmO1xuICBjb2xvcjogIzMzMzsgfVxuXG4vKlxyXG4gKiBQcmltYXJ5XHJcbiAqL1xuLnVrLWJ1dHRvbi1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlODdmMDtcbiAgY29sb3I6ICNmZmY7IH1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLWJ1dHRvbi1wcmltYXJ5OmhvdmVyLFxuLnVrLWJ1dHRvbi1wcmltYXJ5OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBmN2FlNTtcbiAgY29sb3I6ICNmZmY7IH1cblxuLyogT25DbGljayArIEFjdGl2ZSAqL1xuLnVrLWJ1dHRvbi1wcmltYXJ5OmFjdGl2ZSxcbi51ay1idXR0b24tcHJpbWFyeS51ay1hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGU2ZWNkO1xuICBjb2xvcjogI2ZmZjsgfVxuXG4vKlxyXG4gKiBTZWNvbmRhcnlcclxuICovXG4udWstYnV0dG9uLXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay1idXR0b24tc2Vjb25kYXJ5OmhvdmVyLFxuLnVrLWJ1dHRvbi1zZWNvbmRhcnk6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTUxNTE1O1xuICBjb2xvcjogI2ZmZjsgfVxuXG4vKiBPbkNsaWNrICsgQWN0aXZlICovXG4udWstYnV0dG9uLXNlY29uZGFyeTphY3RpdmUsXG4udWstYnV0dG9uLXNlY29uZGFyeS51ay1hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDkwOTA5O1xuICBjb2xvcjogI2ZmZjsgfVxuXG4vKlxyXG4gKiBEYW5nZXJcclxuICovXG4udWstYnV0dG9uLWRhbmdlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMDUwNmU7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay1idXR0b24tZGFuZ2VyOmhvdmVyLFxuLnVrLWJ1dHRvbi1kYW5nZXI6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWUzOTViO1xuICBjb2xvcjogI2ZmZjsgfVxuXG4vKiBPbkNsaWNrICsgQWN0aXZlICovXG4udWstYnV0dG9uLWRhbmdlcjphY3RpdmUsXG4udWstYnV0dG9uLWRhbmdlci51ay1hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWMyMTQ3O1xuICBjb2xvcjogI2ZmZjsgfVxuXG4vKlxyXG4gKiBEaXNhYmxlZFxyXG4gKiBUaGUgc2FtZSBmb3IgYWxsIHN0eWxlIG1vZGlmaWVyc1xyXG4gKi9cbi51ay1idXR0b24tZGVmYXVsdDpkaXNhYmxlZCxcbi51ay1idXR0b24tcHJpbWFyeTpkaXNhYmxlZCxcbi51ay1idXR0b24tc2Vjb25kYXJ5OmRpc2FibGVkLFxuLnVrLWJ1dHRvbi1kYW5nZXI6ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4O1xuICBjb2xvcjogIzk5OTsgfVxuXG4vKiBTaXplIG1vZGlmaWVyc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1idXR0b24tc21hbGwge1xuICBwYWRkaW5nOiAwIDE1cHg7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG5cbi51ay1idXR0b24tbGFyZ2Uge1xuICBwYWRkaW5nOiAwIDQwcHg7XG4gIGxpbmUtaGVpZ2h0OiA1NXB4O1xuICBmb250LXNpemU6IDEuMjVyZW07IH1cblxuLyogVGV4dCBtb2RpZmllcnNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiBUZXh0XHJcbiAqIDEuIFJlc2V0XHJcbiAqIDIuIFN0eWxlXHJcbiAqL1xuLnVrLWJ1dHRvbi10ZXh0IHtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICAvKiAyICovXG4gIGNvbG9yOiAjOTk5OyB9XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay1idXR0b24tdGV4dDpob3Zlcixcbi51ay1idXR0b24tdGV4dDpmb2N1cyB7XG4gIGNvbG9yOiAjNjY2OyB9XG5cbi8qIERpc2FibGVkICovXG4udWstYnV0dG9uLXRleHQ6ZGlzYWJsZWQge1xuICBjb2xvcjogIzk5OTsgfVxuXG4vKlxyXG4gKiBMaW5rXHJcbiAqIDEuIFJlc2V0XHJcbiAqIDIuIFN0eWxlXHJcbiAqL1xuLnVrLWJ1dHRvbi1saW5rIHtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICAvKiAyICovXG4gIGNvbG9yOiAjMWU4N2YwOyB9XG5cbi8qIEhvdmVyICsgRm9jdXMgKi9cbi51ay1idXR0b24tbGluazpob3Zlcixcbi51ay1idXR0b24tbGluazpmb2N1cyB7XG4gIGNvbG9yOiAjMGY2ZWNkO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4vKiBEaXNhYmxlZCAqL1xuLnVrLWJ1dHRvbi1saW5rOmRpc2FibGVkIHtcbiAgY29sb3I6ICM5OTk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4vKiBHcm91cFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIDEuIFVzaW5nIGBmbGV4YCBpbnN0ZWFkIG9mIGBpbmxpbmUtYmxvY2tgIHRvIHByZXZlbnQgd2hpdGVzcGFjZSBiZXR3ZWVudCBjaGlsZCBlbGVtZW50c1xyXG4gKiAyLiBCZWhhdmUgbGlrZSBidXR0b25cclxuICogMy4gQ3JlYXRlIHBvc2l0aW9uIGNvbnRleHRcclxuICovXG4udWstYnV0dG9uLWdyb3VwIHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgLyogMiAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAvKiAzICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBTZWN0aW9uXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogMS4gTWFrZSBpdCB3b3JrIHdpdGggYDEwMHZoYCBhbmQgaGVpZ2h0IGluIGdlbmVyYWxcclxuICovXG4udWstc2VjdGlvbiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZy10b3A6IDQwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA0MHB4OyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC51ay1zZWN0aW9uIHtcbiAgICBwYWRkaW5nLXRvcDogNzBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNzBweDsgfSB9XG5cbi8qXHJcbiAqIE1pY3JvIGNsZWFyZml4XHJcbiAqL1xuLnVrLXNlY3Rpb246OmJlZm9yZSxcbi51ay1zZWN0aW9uOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IHRhYmxlOyB9XG5cbi51ay1zZWN0aW9uOjphZnRlciB7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi8qXHJcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxyXG4gKi9cbi51ay1zZWN0aW9uID4gOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qIFNpemUgbW9kaWZpZXJzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogWFNtYWxsXHJcbiAqL1xuLnVrLXNlY3Rpb24teHNtYWxsIHtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4OyB9XG5cbi8qXHJcbiAqIFNtYWxsXHJcbiAqL1xuLnVrLXNlY3Rpb24tc21hbGwge1xuICBwYWRkaW5nLXRvcDogNDBweDtcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7IH1cblxuLypcclxuICogTGFyZ2VcclxuICovXG4udWstc2VjdGlvbi1sYXJnZSB7XG4gIHBhZGRpbmctdG9wOiA3MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNzBweDsgfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAudWstc2VjdGlvbi1sYXJnZSB7XG4gICAgcGFkZGluZy10b3A6IDE0MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxNDBweDsgfSB9XG5cbi8qXHJcbiAqIFhMYXJnZVxyXG4gKi9cbi51ay1zZWN0aW9uLXhsYXJnZSB7XG4gIHBhZGRpbmctdG9wOiAxNDBweDtcbiAgcGFkZGluZy1ib3R0b206IDE0MHB4OyB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC51ay1zZWN0aW9uLXhsYXJnZSB7XG4gICAgcGFkZGluZy10b3A6IDIxMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAyMTBweDsgfSB9XG5cbi8qIFN0eWxlIG1vZGlmaWVyc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIERlZmF1bHRcclxuICovXG4udWstc2VjdGlvbi1kZWZhdWx0IHtcbiAgYmFja2dyb3VuZDogI2ZmZjsgfVxuXG4vKlxyXG4gKiBNdXRlZFxyXG4gKi9cbi51ay1zZWN0aW9uLW11dGVkIHtcbiAgYmFja2dyb3VuZDogI2Y4ZjhmODsgfVxuXG4vKlxyXG4gKiBQcmltYXJ5XHJcbiAqL1xuLnVrLXNlY3Rpb24tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6ICMxZTg3ZjA7IH1cblxuLypcclxuICogU2Vjb25kYXJ5XHJcbiAqL1xuLnVrLXNlY3Rpb24tc2Vjb25kYXJ5IHtcbiAgYmFja2dyb3VuZDogIzIyMjsgfVxuXG4vKiBPdmVybGFwIG1vZGlmaWVyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogUmVzZXJ2ZWQgbW9kaWZpZXIgdG8gbWFrZSBhIHNlY3Rpb24gb3ZlcmxhcCBhbm90aGVyIHNlY3Rpb24gd2l0aCBhbiBib3JkZXIgaW1hZ2VcclxuICogSW1wbGVtZW50ZWQgYnkgdGhlIHRoZW1lXHJcbiAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogQ29udGFpbmVyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogMS4gQm94IHNpemluZyBoYXMgdG8gYmUgYGNvbnRlbnQtYm94YCBzbyB0aGUgbWF4LXdpZHRoIGlzIGFsd2F5cyB0aGUgc2FtZSBhbmRcclxuICogICAgdW5hZmZlY3RlZCBieSB0aGUgcGFkZGluZyBvbiBkaWZmZXJlbnQgYnJlYWtwb2ludHMuIEl0J3MgaW1wb3J0YW50IGZvciB0aGUgc2l6ZSBtb2RpZmllcnMuXHJcbiAqL1xuLnVrLWNvbnRhaW5lciB7XG4gIC8qIDEgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIG1heC13aWR0aDogMTIwMHB4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7IH1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAudWstY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMzBweDsgfSB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC51ay1jb250YWluZXIge1xuICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4OyB9IH1cblxuLypcclxuICogTWljcm8gY2xlYXJmaXhcclxuICovXG4udWstY29udGFpbmVyOjpiZWZvcmUsXG4udWstY29udGFpbmVyOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IHRhYmxlOyB9XG5cbi51ay1jb250YWluZXI6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLypcclxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXHJcbiAqL1xuLnVrLWNvbnRhaW5lciA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vKlxyXG4gKiBSZW1vdmUgcGFkZGluZyBmcm9tIG5lc3RlZCBjb250YWluZXJzXHJcbiAqL1xuLnVrLWNvbnRhaW5lciAudWstY29udGFpbmVyIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi8qIFNpemUgbW9kaWZpZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstY29udGFpbmVyLXhzbWFsbCB7XG4gIG1heC13aWR0aDogNzUwcHg7IH1cblxuLnVrLWNvbnRhaW5lci1zbWFsbCB7XG4gIG1heC13aWR0aDogOTAwcHg7IH1cblxuLnVrLWNvbnRhaW5lci1sYXJnZSB7XG4gIG1heC13aWR0aDogMTYwMHB4OyB9XG5cbi51ay1jb250YWluZXItZXhwYW5kIHtcbiAgbWF4LXdpZHRoOiBub25lOyB9XG5cbi8qIEV4cGFuZCBtb2RpZmllclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIEV4cGFuZCBvbmUgc2lkZSBvbmx5XHJcbiAqL1xuLnVrLWNvbnRhaW5lci1leHBhbmQtbGVmdCB7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi51ay1jb250YWluZXItZXhwYW5kLXJpZ2h0IHtcbiAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLnVrLWNvbnRhaW5lci1leHBhbmQtbGVmdC51ay1jb250YWluZXIteHNtYWxsLFxuICAudWstY29udGFpbmVyLWV4cGFuZC1yaWdodC51ay1jb250YWluZXIteHNtYWxsIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoNTAlICsgKDc1MHB4IC8gMikgLSAzMHB4KTsgfVxuICAudWstY29udGFpbmVyLWV4cGFuZC1sZWZ0LnVrLWNvbnRhaW5lci1zbWFsbCxcbiAgLnVrLWNvbnRhaW5lci1leHBhbmQtcmlnaHQudWstY29udGFpbmVyLXNtYWxsIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoNTAlICsgKDkwMHB4IC8gMikgLSAzMHB4KTsgfSB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC51ay1jb250YWluZXItZXhwYW5kLWxlZnQsXG4gIC51ay1jb250YWluZXItZXhwYW5kLXJpZ2h0IHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoNTAlICsgKDEyMDBweCAvIDIpIC0gNDBweCk7IH1cbiAgLnVrLWNvbnRhaW5lci1leHBhbmQtbGVmdC51ay1jb250YWluZXIteHNtYWxsLFxuICAudWstY29udGFpbmVyLWV4cGFuZC1yaWdodC51ay1jb250YWluZXIteHNtYWxsIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoNTAlICsgKDc1MHB4IC8gMikgLSA0MHB4KTsgfVxuICAudWstY29udGFpbmVyLWV4cGFuZC1sZWZ0LnVrLWNvbnRhaW5lci1zbWFsbCxcbiAgLnVrLWNvbnRhaW5lci1leHBhbmQtcmlnaHQudWstY29udGFpbmVyLXNtYWxsIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoNTAlICsgKDkwMHB4IC8gMikgLSA0MHB4KTsgfVxuICAudWstY29udGFpbmVyLWV4cGFuZC1sZWZ0LnVrLWNvbnRhaW5lci1sYXJnZSxcbiAgLnVrLWNvbnRhaW5lci1leHBhbmQtcmlnaHQudWstY29udGFpbmVyLWxhcmdlIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoNTAlICsgKDE2MDBweCAvIDIpIC0gNDBweCk7IH0gfVxuXG4vKiBJdGVtXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogVXRpbGl0eSBjbGFzc2VzIHRvIHJlc2V0IGNvbnRhaW5lciBwYWRkaW5nIG9uIHRoZSBsZWZ0IG9yIHJpZ2h0IHNpZGVcclxuICogTm90ZTogSXQgaGFzIHRvIGJlIG5lZ2F0aXZlIG1hcmdpbiBvbiB0aGUgaXRlbSwgYmVjYXVzZSBpdCdzIHNwZWNpZmljIHRvIHRoZSBpdGVtLlxyXG4gKi9cbi51ay1jb250YWluZXItaXRlbS1wYWRkaW5nLXJlbW92ZS1sZWZ0LFxuLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLXJpZ2h0IHtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDE1cHgpOyB9XG5cbi51ay1jb250YWluZXItaXRlbS1wYWRkaW5nLXJlbW92ZS1sZWZ0IHtcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4OyB9XG5cbi51ay1jb250YWluZXItaXRlbS1wYWRkaW5nLXJlbW92ZS1yaWdodCB7XG4gIG1hcmdpbi1yaWdodDogLTE1cHg7IH1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAudWstY29udGFpbmVyLWl0ZW0tcGFkZGluZy1yZW1vdmUtbGVmdCxcbiAgLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLXJpZ2h0IHtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgMzBweCk7IH1cbiAgLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLWxlZnQge1xuICAgIG1hcmdpbi1sZWZ0OiAtMzBweDsgfVxuICAudWstY29udGFpbmVyLWl0ZW0tcGFkZGluZy1yZW1vdmUtcmlnaHQge1xuICAgIG1hcmdpbi1yaWdodDogLTMwcHg7IH0gfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAudWstY29udGFpbmVyLWl0ZW0tcGFkZGluZy1yZW1vdmUtbGVmdCxcbiAgLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLXJpZ2h0IHtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNDBweCk7IH1cbiAgLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLWxlZnQge1xuICAgIG1hcmdpbi1sZWZ0OiAtNDBweDsgfVxuICAudWstY29udGFpbmVyLWl0ZW0tcGFkZGluZy1yZW1vdmUtcmlnaHQge1xuICAgIG1hcmdpbi1yaWdodDogLTQwcHg7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBHcmlkXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogMS4gQWxsb3cgY2VsbHMgdG8gd3JhcCBpbnRvIHRoZSBuZXh0IGxpbmVcclxuICogMi4gUmVzZXQgbGlzdFxyXG4gKi9cbi51ay1ncmlkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgLyogMSAqL1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIC8qIDIgKi9cbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi8qXHJcbiAqIEdyaWQgY2VsbFxyXG4gKiBOb3RlOiBTcGFjZSBpcyBhbGxvY2F0ZWQgc29sZWx5IGJhc2VkIG9uIGNvbnRlbnQgZGltZW5zaW9ucywgYnV0IHNocmlua3M6IDAgMSBhdXRvXHJcbiAqIFJlc2V0IG1hcmdpbiBmb3IgZS5nLiBwYXJhZ3JhcGhzXHJcbiAqL1xuLnVrLWdyaWQgPiAqIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qXHJcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxyXG4gKi9cbi51ay1ncmlkID4gKiA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vKiBHdXR0ZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiBEZWZhdWx0XHJcbiAqL1xuLyogSG9yaXpvbnRhbCAqL1xuLnVrLWdyaWQge1xuICBtYXJnaW4tbGVmdDogLTMwcHg7IH1cblxuLnVrLWdyaWQgPiAqIHtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4OyB9XG5cbi8qIFZlcnRpY2FsICovXG4udWstZ3JpZCArIC51ay1ncmlkLFxuLnVrLWdyaWQgPiAudWstZ3JpZC1tYXJnaW4sXG4qICsgLnVrLWdyaWQtbWFyZ2luIHtcbiAgbWFyZ2luLXRvcDogMzBweDsgfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLyogSG9yaXpvbnRhbCAqL1xuICAudWstZ3JpZCB7XG4gICAgbWFyZ2luLWxlZnQ6IC00MHB4OyB9XG4gIC51ay1ncmlkID4gKiB7XG4gICAgcGFkZGluZy1sZWZ0OiA0MHB4OyB9XG4gIC8qIFZlcnRpY2FsICovXG4gIC51ay1ncmlkICsgLnVrLWdyaWQsXG4gIC51ay1ncmlkID4gLnVrLWdyaWQtbWFyZ2luLFxuICAqICsgLnVrLWdyaWQtbWFyZ2luIHtcbiAgICBtYXJnaW4tdG9wOiA0MHB4OyB9IH1cblxuLypcclxuICogU21hbGxcclxuICovXG4vKiBIb3Jpem9udGFsICovXG4udWstZ3JpZC1zbWFsbCxcbi51ay1ncmlkLWNvbHVtbi1zbWFsbCB7XG4gIG1hcmdpbi1sZWZ0OiAtMTVweDsgfVxuXG4udWstZ3JpZC1zbWFsbCA+ICosXG4udWstZ3JpZC1jb2x1bW4tc21hbGwgPiAqIHtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4OyB9XG5cbi8qIFZlcnRpY2FsICovXG4udWstZ3JpZCArIC51ay1ncmlkLXNtYWxsLFxuLnVrLWdyaWQgKyAudWstZ3JpZC1yb3ctc21hbGwsXG4udWstZ3JpZC1zbWFsbCA+IC51ay1ncmlkLW1hcmdpbixcbi51ay1ncmlkLXJvdy1zbWFsbCA+IC51ay1ncmlkLW1hcmdpbixcbiogKyAudWstZ3JpZC1tYXJnaW4tc21hbGwge1xuICBtYXJnaW4tdG9wOiAxNXB4OyB9XG5cbi8qXHJcbiAqIE1lZGl1bVxyXG4gKi9cbi8qIEhvcml6b250YWwgKi9cbi51ay1ncmlkLW1lZGl1bSxcbi51ay1ncmlkLWNvbHVtbi1tZWRpdW0ge1xuICBtYXJnaW4tbGVmdDogLTMwcHg7IH1cblxuLnVrLWdyaWQtbWVkaXVtID4gKixcbi51ay1ncmlkLWNvbHVtbi1tZWRpdW0gPiAqIHtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4OyB9XG5cbi8qIFZlcnRpY2FsICovXG4udWstZ3JpZCArIC51ay1ncmlkLW1lZGl1bSxcbi51ay1ncmlkICsgLnVrLWdyaWQtcm93LW1lZGl1bSxcbi51ay1ncmlkLW1lZGl1bSA+IC51ay1ncmlkLW1hcmdpbixcbi51ay1ncmlkLXJvdy1tZWRpdW0gPiAudWstZ3JpZC1tYXJnaW4sXG4qICsgLnVrLWdyaWQtbWFyZ2luLW1lZGl1bSB7XG4gIG1hcmdpbi10b3A6IDMwcHg7IH1cblxuLypcclxuICogTGFyZ2VcclxuICovXG4vKiBIb3Jpem9udGFsICovXG4udWstZ3JpZC1sYXJnZSxcbi51ay1ncmlkLWNvbHVtbi1sYXJnZSB7XG4gIG1hcmdpbi1sZWZ0OiAtNDBweDsgfVxuXG4udWstZ3JpZC1sYXJnZSA+ICosXG4udWstZ3JpZC1jb2x1bW4tbGFyZ2UgPiAqIHtcbiAgcGFkZGluZy1sZWZ0OiA0MHB4OyB9XG5cbi8qIFZlcnRpY2FsICovXG4udWstZ3JpZCArIC51ay1ncmlkLWxhcmdlLFxuLnVrLWdyaWQgKyAudWstZ3JpZC1yb3ctbGFyZ2UsXG4udWstZ3JpZC1sYXJnZSA+IC51ay1ncmlkLW1hcmdpbixcbi51ay1ncmlkLXJvdy1sYXJnZSA+IC51ay1ncmlkLW1hcmdpbixcbiogKyAudWstZ3JpZC1tYXJnaW4tbGFyZ2Uge1xuICBtYXJnaW4tdG9wOiA0MHB4OyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAvKiBIb3Jpem9udGFsICovXG4gIC51ay1ncmlkLWxhcmdlLFxuICAudWstZ3JpZC1jb2x1bW4tbGFyZ2Uge1xuICAgIG1hcmdpbi1sZWZ0OiAtNzBweDsgfVxuICAudWstZ3JpZC1sYXJnZSA+ICosXG4gIC51ay1ncmlkLWNvbHVtbi1sYXJnZSA+ICoge1xuICAgIHBhZGRpbmctbGVmdDogNzBweDsgfVxuICAvKiBWZXJ0aWNhbCAqL1xuICAudWstZ3JpZCArIC51ay1ncmlkLWxhcmdlLFxuICAudWstZ3JpZCArIC51ay1ncmlkLXJvdy1sYXJnZSxcbiAgLnVrLWdyaWQtbGFyZ2UgPiAudWstZ3JpZC1tYXJnaW4sXG4gIC51ay1ncmlkLXJvdy1sYXJnZSA+IC51ay1ncmlkLW1hcmdpbixcbiAgKiArIC51ay1ncmlkLW1hcmdpbi1sYXJnZSB7XG4gICAgbWFyZ2luLXRvcDogNzBweDsgfSB9XG5cbi8qXHJcbiAqIENvbGxhcHNlXHJcbiAqL1xuLyogSG9yaXpvbnRhbCAqL1xuLnVrLWdyaWQtY29sbGFwc2UsXG4udWstZ3JpZC1jb2x1bW4tY29sbGFwc2Uge1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4udWstZ3JpZC1jb2xsYXBzZSA+ICosXG4udWstZ3JpZC1jb2x1bW4tY29sbGFwc2UgPiAqIHtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi8qIFZlcnRpY2FsICovXG4udWstZ3JpZCArIC51ay1ncmlkLWNvbGxhcHNlLFxuLnVrLWdyaWQgKyAudWstZ3JpZC1yb3ctY29sbGFwc2UsXG4udWstZ3JpZC1jb2xsYXBzZSA+IC51ay1ncmlkLW1hcmdpbixcbi51ay1ncmlkLXJvdy1jb2xsYXBzZSA+IC51ay1ncmlkLW1hcmdpbiB7XG4gIG1hcmdpbi10b3A6IDA7IH1cblxuLyogRGl2aWRlclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1ncmlkLWRpdmlkZXIgPiAqIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi51ay1ncmlkLWRpdmlkZXIgPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLyogVmVydGljYWwgKi9cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLypcclxuICogRGVmYXVsdFxyXG4gKi9cbi8qIEhvcml6b250YWwgKi9cbi51ay1ncmlkLWRpdmlkZXIge1xuICBtYXJnaW4tbGVmdDogLTYwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlciA+ICoge1xuICBwYWRkaW5nLWxlZnQ6IDYwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlciA+IDpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSB7XG4gIGxlZnQ6IDMwcHg7IH1cblxuLyogVmVydGljYWwgKi9cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbiB7XG4gIG1hcmdpbi10b3A6IDYwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xuICB0b3A6IC0zMHB4O1xuICBsZWZ0OiA2MHB4OyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAvKiBIb3Jpem9udGFsICovXG4gIC51ay1ncmlkLWRpdmlkZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAtODBweDsgfVxuICAudWstZ3JpZC1kaXZpZGVyID4gKiB7XG4gICAgcGFkZGluZy1sZWZ0OiA4MHB4OyB9XG4gIC51ay1ncmlkLWRpdmlkZXIgPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUge1xuICAgIGxlZnQ6IDQwcHg7IH1cbiAgLyogVmVydGljYWwgKi9cbiAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luIHtcbiAgICBtYXJnaW4tdG9wOiA4MHB4OyB9XG4gIC51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHtcbiAgICB0b3A6IC00MHB4O1xuICAgIGxlZnQ6IDgwcHg7IH0gfVxuXG4vKlxyXG4gKiBTbWFsbFxyXG4gKi9cbi8qIEhvcml6b250YWwgKi9cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1zbWFsbCxcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tc21hbGwge1xuICBtYXJnaW4tbGVmdDogLTMwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXNtYWxsID4gKixcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tc21hbGwgPiAqIHtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4OyB9XG5cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1zbWFsbCA+IDpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSxcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tc21hbGwgPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUge1xuICBsZWZ0OiAxNXB4OyB9XG5cbi8qIFZlcnRpY2FsICovXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtc21hbGwudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbixcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1yb3ctc21hbGwudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbiB7XG4gIG1hcmdpbi10b3A6IDMwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXNtYWxsLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gIHRvcDogLTE1cHg7XG4gIGxlZnQ6IDMwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXJvdy1zbWFsbC51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xuICB0b3A6IC0xNXB4OyB9XG5cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tc21hbGwudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHtcbiAgbGVmdDogMzBweDsgfVxuXG4vKlxyXG4gKiBNZWRpdW1cclxuICovXG4vKiBIb3Jpem9udGFsICovXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbWVkaXVtLFxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1tZWRpdW0ge1xuICBtYXJnaW4tbGVmdDogLTYwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLW1lZGl1bSA+ICosXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLW1lZGl1bSA+ICoge1xuICBwYWRkaW5nLWxlZnQ6IDYwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLW1lZGl1bSA+IDpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSxcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbWVkaXVtID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHtcbiAgbGVmdDogMzBweDsgfVxuXG4vKiBWZXJ0aWNhbCAqL1xuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLW1lZGl1bS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luLFxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXJvdy1tZWRpdW0udWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbiB7XG4gIG1hcmdpbi10b3A6IDYwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLW1lZGl1bS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xuICB0b3A6IC0zMHB4O1xuICBsZWZ0OiA2MHB4OyB9XG5cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1yb3ctbWVkaXVtLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gIHRvcDogLTMwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1tZWRpdW0udWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHtcbiAgbGVmdDogNjBweDsgfVxuXG4vKlxyXG4gKiBMYXJnZVxyXG4gKi9cbi8qIEhvcml6b250YWwgKi9cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1sYXJnZSxcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbGFyZ2Uge1xuICBtYXJnaW4tbGVmdDogLTgwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWxhcmdlID4gKixcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbGFyZ2UgPiAqIHtcbiAgcGFkZGluZy1sZWZ0OiA4MHB4OyB9XG5cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1sYXJnZSA+IDpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSxcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbGFyZ2UgPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUge1xuICBsZWZ0OiA0MHB4OyB9XG5cbi8qIFZlcnRpY2FsICovXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbGFyZ2UudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbixcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1yb3ctbGFyZ2UudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbiB7XG4gIG1hcmdpbi10b3A6IDgwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWxhcmdlLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gIHRvcDogLTQwcHg7XG4gIGxlZnQ6IDgwcHg7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXJvdy1sYXJnZS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xuICB0b3A6IC00MHB4OyB9XG5cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbGFyZ2UudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHtcbiAgbGVmdDogODBweDsgfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLyogSG9yaXpvbnRhbCAqL1xuICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbGFyZ2UsXG4gIC51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbGFyZ2Uge1xuICAgIG1hcmdpbi1sZWZ0OiAtMTQwcHg7IH1cbiAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWxhcmdlID4gKixcbiAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1sYXJnZSA+ICoge1xuICAgIHBhZGRpbmctbGVmdDogMTQwcHg7IH1cbiAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWxhcmdlID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlLFxuICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLWxhcmdlID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHtcbiAgICBsZWZ0OiA3MHB4OyB9XG4gIC8qIFZlcnRpY2FsICovXG4gIC51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1sYXJnZS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luLFxuICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtcm93LWxhcmdlLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4ge1xuICAgIG1hcmdpbi10b3A6IDE0MHB4OyB9XG4gIC51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1sYXJnZS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xuICAgIHRvcDogLTcwcHg7XG4gICAgbGVmdDogMTQwcHg7IH1cbiAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXJvdy1sYXJnZS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xuICAgIHRvcDogLTcwcHg7IH1cbiAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1sYXJnZS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xuICAgIGxlZnQ6IDE0MHB4OyB9IH1cblxuLyogTWF0Y2ggY2hpbGQgb2YgYSBncmlkIGNlbGxcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiBCZWhhdmUgbGlrZSBhIGJsb2NrIGVsZW1lbnRcclxuICogMS4gV3JhcCBpbnRvIHRoZSBuZXh0IGxpbmVcclxuICogMi4gVGFrZSB0aGUgZnVsbCB3aWR0aCwgYXQgbGVhc3QgMTAwJS4gT25seSBpZiBubyBjbGFzcyBmcm9tIHRoZSBXaWR0aCBjb21wb25lbnQgaXMgc2V0LlxyXG4gKiAzLiBFeHBhbmQgd2lkdGggZXZlbiBpZiBsYXJnZXIgdGhhbiAxMDAlLCBlLmcuIGJlY2F1c2Ugb2YgbmVnYXRpdmUgbWFyZ2luIChOZWVkZWQgZm9yIG5lc3RlZCBncmlkcylcclxuICovXG4udWstZ3JpZC1tYXRjaCA+ICosXG4udWstZ3JpZC1pdGVtLW1hdGNoIHtcbiAgZGlzcGxheTogZmxleDtcbiAgLyogMSAqL1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cblxuLnVrLWdyaWQtbWF0Y2ggPiAqID4gOm5vdChbY2xhc3MqPSd1ay13aWR0aCddKSxcbi51ay1ncmlkLWl0ZW0tbWF0Y2ggPiA6bm90KFtjbGFzcyo9J3VrLXdpZHRoJ10pIHtcbiAgLyogMiAqL1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgLyogMyAqL1xuICBmbGV4OiBhdXRvOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IENhcmRcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4vKiBTZWN0aW9uc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1jYXJkLWJvZHkge1xuICBwYWRkaW5nOiAzMHB4IDMwcHg7IH1cblxuLnVrLWNhcmQtaGVhZGVyIHtcbiAgcGFkZGluZzogMTVweCAzMHB4OyB9XG5cbi51ay1jYXJkLWZvb3RlciB7XG4gIHBhZGRpbmc6IDE1cHggMzBweDsgfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVrLWNhcmQtYm9keSB7XG4gICAgcGFkZGluZzogNDBweCA0MHB4OyB9XG4gIC51ay1jYXJkLWhlYWRlciB7XG4gICAgcGFkZGluZzogMjBweCA0MHB4OyB9XG4gIC51ay1jYXJkLWZvb3RlciB7XG4gICAgcGFkZGluZzogMjBweCA0MHB4OyB9IH1cblxuLypcclxuICogTWljcm8gY2xlYXJmaXhcclxuICovXG4udWstY2FyZC1ib2R5OjpiZWZvcmUsXG4udWstY2FyZC1ib2R5OjphZnRlcixcbi51ay1jYXJkLWhlYWRlcjo6YmVmb3JlLFxuLnVrLWNhcmQtaGVhZGVyOjphZnRlcixcbi51ay1jYXJkLWZvb3Rlcjo6YmVmb3JlLFxuLnVrLWNhcmQtZm9vdGVyOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IHRhYmxlOyB9XG5cbi51ay1jYXJkLWJvZHk6OmFmdGVyLFxuLnVrLWNhcmQtaGVhZGVyOjphZnRlcixcbi51ay1jYXJkLWZvb3Rlcjo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDsgfVxuXG4vKlxyXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcclxuICovXG4udWstY2FyZC1ib2R5ID4gOmxhc3QtY2hpbGQsXG4udWstY2FyZC1oZWFkZXIgPiA6bGFzdC1jaGlsZCxcbi51ay1jYXJkLWZvb3RlciA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vKiBNZWRpYVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIFJlc2VydmVkIGFsaWdubWVudCBtb2RpZmllciB0byBzdHlsZSB0aGUgbWVkaWEgZWxlbWVudCwgZS5nLiB3aXRoIGBib3JkZXItcmFkaXVzYFxyXG4gKiBJbXBsZW1lbnRlZCBieSB0aGUgdGhlbWVcclxuICovXG4vKiBUaXRsZVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1jYXJkLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7IH1cblxuLyogQmFkZ2VcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstY2FyZC1iYWRnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzMHB4O1xuICByaWdodDogMzBweDtcbiAgei1pbmRleDogMTsgfVxuXG4vKlxyXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gYWRqYWNlbnQgZWxlbWVudFxyXG4gKi9cbi51ay1jYXJkLWJhZGdlOmZpcnN0LWNoaWxkICsgKiB7XG4gIG1hcmdpbi10b3A6IDA7IH1cblxuLyogSG92ZXIgbW9kaWZpZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstY2FyZC1ob3Zlcjpub3QoLnVrLWNhcmQtZGVmYXVsdCk6bm90KC51ay1jYXJkLXByaW1hcnkpOm5vdCgudWstY2FyZC1zZWNvbmRhcnkpOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI2Y4ZjhmODsgfVxuXG4vKiBTdHlsZSBtb2RpZmllcnNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiBEZWZhdWx0XHJcbiAqIE5vdGU6IEhlYWRlciBhbmQgRm9vdGVyIGFyZSBvbmx5IGltcGxlbWVudGVkIGZvciB0aGUgZGVmYXVsdCBzdHlsZVxyXG4gKi9cbi51ay1jYXJkLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kOiAjZjhmOGY4O1xuICBjb2xvcjogIzY2NjsgfVxuXG4udWstY2FyZC1kZWZhdWx0IC51ay1jYXJkLXRpdGxlIHtcbiAgY29sb3I6ICMzMzM7IH1cblxuLnVrLWNhcmQtZGVmYXVsdC51ay1jYXJkLWhvdmVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjsgfVxuXG4vKlxyXG4gKiBQcmltYXJ5XHJcbiAqL1xuLnVrLWNhcmQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6ICMxZTg3ZjA7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi51ay1jYXJkLXByaW1hcnkgLnVrLWNhcmQtdGl0bGUge1xuICBjb2xvcjogI2ZmZjsgfVxuXG4udWstY2FyZC1wcmltYXJ5LnVrLWNhcmQtaG92ZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGY3YWU1OyB9XG5cbi8qXHJcbiAqIFNlY29uZGFyeVxyXG4gKi9cbi51ay1jYXJkLXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQ6ICMyMjI7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi51ay1jYXJkLXNlY29uZGFyeSAudWstY2FyZC10aXRsZSB7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi51ay1jYXJkLXNlY29uZGFyeS51ay1jYXJkLWhvdmVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE1MTUxNTsgfVxuXG4vKiBTaXplIG1vZGlmaWVyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogU21hbGxcclxuICovXG4udWstY2FyZC1zbWFsbC51ay1jYXJkLWJvZHksXG4udWstY2FyZC1zbWFsbCAudWstY2FyZC1ib2R5IHtcbiAgcGFkZGluZzogMjBweCAyMHB4OyB9XG5cbi51ay1jYXJkLXNtYWxsIC51ay1jYXJkLWhlYWRlciB7XG4gIHBhZGRpbmc6IDEzcHggMjBweDsgfVxuXG4udWstY2FyZC1zbWFsbCAudWstY2FyZC1mb290ZXIge1xuICBwYWRkaW5nOiAxM3B4IDIwcHg7IH1cblxuLypcclxuICogTGFyZ2VcclxuICovXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVrLWNhcmQtbGFyZ2UudWstY2FyZC1ib2R5LFxuICAudWstY2FyZC1sYXJnZSAudWstY2FyZC1ib2R5IHtcbiAgICBwYWRkaW5nOiA3MHB4IDcwcHg7IH1cbiAgLnVrLWNhcmQtbGFyZ2UgLnVrLWNhcmQtaGVhZGVyIHtcbiAgICBwYWRkaW5nOiAzNXB4IDcwcHg7IH1cbiAgLnVrLWNhcmQtbGFyZ2UgLnVrLWNhcmQtZm9vdGVyIHtcbiAgICBwYWRkaW5nOiAzNXB4IDcwcHg7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBDbG9zZVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIEFkb3B0cyBgdWstaWNvbmBcclxuICovXG4udWstY2xvc2Uge1xuICBjb2xvcjogIzk5OTsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstY2xvc2U6aG92ZXIsXG4udWstY2xvc2U6Zm9jdXMge1xuICBjb2xvcjogIzY2NjtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBOYXZcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiBSZXNldFxyXG4gKiAxLiBQcmVwYXJlIGxpc3RzXHJcbiAqIDIuIFByZXBhcmUgbGlua3NcclxuICogMy4gUmVtb3ZlIGRlZmF1bHQgZm9jdXMgc3R5bGVcclxuICovXG4vKiAxICovXG4udWstbmF2LFxuLnVrLW5hdiB1bCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG4vKiAyICovXG4udWstbmF2IGxpID4gYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLyogMyAqL1xuLnVrLW5hdiBsaSA+IGE6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi8qXHJcbiAqIEl0ZW1zXHJcbiAqIE11c3QgdGFyZ2V0IGBhYCBlbGVtZW50cyB0byBleGNsdWRlIG90aGVyIGVsZW1lbnRzIChlLmcuIGxpc3RzKVxyXG4gKi9cbi51ay1uYXYgPiBsaSA+IGEge1xuICBwYWRkaW5nOiA1cHggMDsgfVxuXG4vKiBTdWJsaXN0c1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIExldmVsIDJcclxuICogYHVsYCBuZWVkZWQgZm9yIGhpZ2hlciBzcGVjaWZpY2l0eSB0byBvdmVycmlkZSBwYWRkaW5nXHJcbiAqL1xudWwudWstbmF2LXN1YiB7XG4gIHBhZGRpbmc6IDVweCAwIDVweCAxNXB4OyB9XG5cbi8qXHJcbiAqIExldmVsIDMgYW5kIGRlZXBlclxyXG4gKi9cbi51ay1uYXYtc3ViIHVsIHtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4OyB9XG5cbi8qXHJcbiAqIEl0ZW1zXHJcbiAqL1xuLnVrLW5hdi1zdWIgYSB7XG4gIHBhZGRpbmc6IDJweCAwOyB9XG5cbi8qIFBhcmVudCBpY29uIG1vZGlmaWVyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW5hdi1wYXJlbnQtaWNvbiA+IC51ay1wYXJlbnQgPiBhOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHdpZHRoOiAxLjVlbTtcbiAgaGVpZ2h0OiAxLjVlbTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjE0JTIyJTIwaGVpZ2h0JTNEJTIyMTQlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNCUyMDE0JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0Nwb2x5bGluZSUyMGZpbGwlM0QlMjJub25lJTIyJTIwc3Ryb2tlJTNEJTIyJTIzNjY2JTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMS4xJTIyJTIwcG9pbnRzJTNEJTIyMTAlMjAxJTIwNCUyMDclMjAxMCUyMDEzJTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFXCIpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlOyB9XG5cbi51ay1uYXYtcGFyZW50LWljb24gPiAudWstcGFyZW50LnVrLW9wZW4gPiBhOjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTQlMjIlMjBoZWlnaHQlM0QlMjIxNCUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE0JTIwMTQlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlsaW5lJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBzdHJva2UlM0QlMjIlMjM2NjYlMjIlMjBzdHJva2Utd2lkdGglM0QlMjIxLjElMjIlMjBwb2ludHMlM0QlMjIxJTIwNCUyMDclMjAxMCUyMDEzJTIwNCUyMiUyMCUyRiUzRSUwQSUzQyUyRnN2ZyUzRVwiKTsgfVxuXG4vKiBIZWFkZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbmF2LWhlYWRlciB7XG4gIHBhZGRpbmc6IDVweCAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG5cbi51ay1uYXYtaGVhZGVyOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLXRvcDogMjBweDsgfVxuXG4vKiBEaXZpZGVyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW5hdi1kaXZpZGVyIHtcbiAgbWFyZ2luOiA1cHggMDsgfVxuXG4vKiBEZWZhdWx0IG1vZGlmaWVyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogSXRlbXNcclxuICovXG4udWstbmF2LWRlZmF1bHQgPiBsaSA+IGEge1xuICBjb2xvcjogIzk5OTsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstbmF2LWRlZmF1bHQgPiBsaSA+IGE6aG92ZXIsXG4udWstbmF2LWRlZmF1bHQgPiBsaSA+IGE6Zm9jdXMge1xuICBjb2xvcjogIzY2NjsgfVxuXG4vKiBBY3RpdmUgKi9cbi51ay1uYXYtZGVmYXVsdCA+IGxpLnVrLWFjdGl2ZSA+IGEge1xuICBjb2xvcjogIzMzMzsgfVxuXG4vKlxyXG4gKiBIZWFkZXJcclxuICovXG4udWstbmF2LWRlZmF1bHQgLnVrLW5hdi1oZWFkZXIge1xuICBjb2xvcjogIzMzMzsgfVxuXG4vKlxyXG4gKiBEaXZpZGVyXHJcbiAqL1xuLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtZGl2aWRlciB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTVlNWU1OyB9XG5cbi8qXHJcbiAqIFN1Ymxpc3RzXHJcbiAqL1xuLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtc3ViIGEge1xuICBjb2xvcjogIzk5OTsgfVxuXG4udWstbmF2LWRlZmF1bHQgLnVrLW5hdi1zdWIgYTpob3Zlcixcbi51ay1uYXYtZGVmYXVsdCAudWstbmF2LXN1YiBhOmZvY3VzIHtcbiAgY29sb3I6ICM2NjY7IH1cblxuLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtc3ViIGxpLnVrLWFjdGl2ZSA+IGEge1xuICBjb2xvcjogIzMzMzsgfVxuXG4vKiBQcmltYXJ5IG1vZGlmaWVyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogSXRlbXNcclxuICovXG4udWstbmF2LXByaW1hcnkgPiBsaSA+IGEge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICM5OTk7IH1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLW5hdi1wcmltYXJ5ID4gbGkgPiBhOmhvdmVyLFxuLnVrLW5hdi1wcmltYXJ5ID4gbGkgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM2NjY7IH1cblxuLyogQWN0aXZlICovXG4udWstbmF2LXByaW1hcnkgPiBsaS51ay1hY3RpdmUgPiBhIHtcbiAgY29sb3I6ICMzMzM7IH1cblxuLypcclxuICogSGVhZGVyXHJcbiAqL1xuLnVrLW5hdi1wcmltYXJ5IC51ay1uYXYtaGVhZGVyIHtcbiAgY29sb3I6ICMzMzM7IH1cblxuLypcclxuICogRGl2aWRlclxyXG4gKi9cbi51ay1uYXYtcHJpbWFyeSAudWstbmF2LWRpdmlkZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZTVlNTsgfVxuXG4vKlxyXG4gKiBTdWJsaXN0c1xyXG4gKi9cbi51ay1uYXYtcHJpbWFyeSAudWstbmF2LXN1YiBhIHtcbiAgY29sb3I6ICM5OTk7IH1cblxuLnVrLW5hdi1wcmltYXJ5IC51ay1uYXYtc3ViIGE6aG92ZXIsXG4udWstbmF2LXByaW1hcnkgLnVrLW5hdi1zdWIgYTpmb2N1cyB7XG4gIGNvbG9yOiAjNjY2OyB9XG5cbi51ay1uYXYtcHJpbWFyeSAudWstbmF2LXN1YiBsaS51ay1hY3RpdmUgPiBhIHtcbiAgY29sb3I6ICMzMzM7IH1cblxuLyogQWxpZ25tZW50IG1vZGlmaWVyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW5hdi1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLyogU3VibGlzdHMgKi9cbi51ay1uYXYtY2VudGVyIC51ay1uYXYtc3ViLFxuLnVrLW5hdi1jZW50ZXIgLnVrLW5hdi1zdWIgdWwge1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLyogUGFyZW50IGljb24gbW9kaWZpZXIgICovXG4udWstbmF2LWNlbnRlci51ay1uYXYtcGFyZW50LWljb24gPiAudWstcGFyZW50ID4gYTo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogTmF2YmFyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogMS4gQ3JlYXRlIHBvc2l0aW9uIGNvbnRleHQgdG8gY2VudGVyIG5hdmJhciBncm91cFxyXG4gKi9cbi51ay1uYXZiYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICAvKiAxICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4vKiBDb250YWluZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbmF2YmFyLWNvbnRhaW5lcjpub3QoLnVrLW5hdmJhci10cmFuc3BhcmVudCkge1xuICBiYWNrZ3JvdW5kOiAjZjhmOGY4OyB9XG5cbi8qXHJcbiAqIFJlbW92ZSBwc2V1ZG8gZWxlbWVudHMgY3JlYXRlZCBieSBtaWNybyBjbGVhcmZpeCBhcyBwcmVjYXV0aW9uIChpZiBDb250YWluZXIgY29tcG9uZW50IGlzIHVzZWQpXHJcbiAqL1xuLnVrLW5hdmJhci1jb250YWluZXIgPiA6OmJlZm9yZSxcbi51ay1uYXZiYXItY29udGFpbmVyID4gOjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4vKiBHcm91cHNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiAxLiBBbGlnbiBuYXZzIGFuZCBpdGVtcyB2ZXJ0aWNhbGx5IGlmIHRoZXkgaGF2ZSBhIGRpZmZlcmVudCBoZWlnaHRcclxuICogMi4gTm90ZTogSUUgMTEgcmVxdWlyZXMgYW4gZXh0cmEgYGRpdmAgd2hpY2ggYWZmZWN0cyB0aGUgY2VudGVyIHNlbGVjdG9yXHJcbiAqL1xuLnVrLW5hdmJhci1sZWZ0LFxuLnVrLW5hdmJhci1yaWdodCxcbi51ay1uYXZiYXItY2VudGVyLFxuLnVrLW5hdmJhci1jZW50ZXItbGVmdCA+ICosXG4udWstbmF2YmFyLWNlbnRlci1yaWdodCA+ICoge1xuICBkaXNwbGF5OiBmbGV4O1xuICAvKiAxICovXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuLypcclxuICogSG9yaXpvbnRhbCBhbGlnbm1lbnRcclxuICogMS4gQ3JlYXRlIHBvc2l0aW9uIGNvbnRleHQgZm9yIGNlbnRlcmVkIG5hdmJhciB3aXRoIHN1YiBncm91cHMgKGxlZnQvcmlnaHQpXHJcbiAqIDIuIEZpeCB0ZXh0IHdyYXBwaW5nIGlmIGNvbnRlbnQgaXMgbGFyZ2VyIHRoYW4gNTAlIG9mIHRoZSBjb250YWluZXIuXHJcbiAqIDMuIE5lZWRlZCBmb3IgZHJvcGRvd25zIGJlY2F1c2UgYSBuZXcgcG9zaXRpb24gY29udGV4dCBpcyBjcmVhdGVkXHJcbiAqICAgIGB6LWluZGV4YCBtdXN0IGJlIHNtYWxsZXIgdGhhbiBvZmYtY2FudmFzXHJcbiAqIDQuIEFsaWduIHN1YiBncm91cHMgZm9yIGNlbnRlcmVkIG5hdmJhclxyXG4gKi9cbi51ay1uYXZiYXItcmlnaHQge1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuXG4udWstbmF2YmFyLWNlbnRlcjpvbmx5LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgLyogMSAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLnVrLW5hdmJhci1jZW50ZXI6bm90KDpvbmx5LWNoaWxkKSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIC8qIDIgKi9cbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAzICovXG4gIHotaW5kZXg6IDk5MDsgfVxuXG4vKiA0ICovXG4udWstbmF2YmFyLWNlbnRlci1sZWZ0LFxuLnVrLW5hdmJhci1jZW50ZXItcmlnaHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDsgfVxuXG4udWstbmF2YmFyLWNlbnRlci1sZWZ0IHtcbiAgcmlnaHQ6IDEwMCU7IH1cblxuLnVrLW5hdmJhci1jZW50ZXItcmlnaHQge1xuICBsZWZ0OiAxMDAlOyB9XG5cbltjbGFzcyo9J3VrLW5hdmJhci1jZW50ZXItJ10ge1xuICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLyogTmF2XHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogMS4gUmVzZXQgbGlzdFxyXG4gKi9cbi51ay1uYXZiYXItbmF2IHtcbiAgZGlzcGxheTogZmxleDtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLypcclxuICogQWxsb3cgaXRlbXMgdG8gd3JhcCBpbnRvIHRoZSBuZXh0IGxpbmVcclxuICogT25seSBub3QgYGFic29sdXRlYCBwb3NpdGlvbmVkIGdyb3Vwc1xyXG4gKi9cbi51ay1uYXZiYXItbGVmdCxcbi51ay1uYXZiYXItcmlnaHQsXG4udWstbmF2YmFyLWNlbnRlcjpvbmx5LWNoaWxkIHtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG5cbi8qXHJcbiAqIEl0ZW1zXHJcbiAqIDEuIENlbnRlciBjb250ZW50IHZlcnRpY2FsbHkgYW5kIGhvcml6b250YWxseVxyXG4gKiAyLiBEaW1lbnNpb25zXHJcbiAqIDMuIFN0eWxlXHJcbiAqIDQuIFJlcXVpcmVkIGZvciBgYWBcclxuICovXG4udWstbmF2YmFyLW5hdiA+IGxpID4gYSxcbi51ay1uYXZiYXItaXRlbSxcbi51ay1uYXZiYXItdG9nZ2xlIHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLyogMiAqL1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4taGVpZ2h0OiA4MHB4O1xuICBwYWRkaW5nOiAwIDE1cHg7XG4gIC8qIDMgKi9cbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBBcmlhbCwgXCJOb3RvIFNhbnNcIiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICAvKiA0ICovXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4vKlxyXG4gKiBOYXYgaXRlbXNcclxuICovXG4udWstbmF2YmFyLW5hdiA+IGxpID4gYSB7XG4gIGNvbG9yOiAjOTk5OyB9XG5cbi8qXHJcbiAqIEhvdmVyXHJcbiAqIEFwcGx5IGhvdmVyIHN0eWxlIGFsc28gdG8gZm9jdXMgc3RhdGUgYW5kIGlmIGRyb3Bkb3duIGlzIG9wZW5lZFxyXG4gKi9cbi51ay1uYXZiYXItbmF2ID4gbGk6aG92ZXIgPiBhLFxuLnVrLW5hdmJhci1uYXYgPiBsaSA+IGE6Zm9jdXMsXG4udWstbmF2YmFyLW5hdiA+IGxpID4gYS51ay1vcGVuIHtcbiAgY29sb3I6ICM2NjY7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLyogT25DbGljayAqL1xuLnVrLW5hdmJhci1uYXYgPiBsaSA+IGE6YWN0aXZlIHtcbiAgY29sb3I6ICMzMzM7IH1cblxuLyogQWN0aXZlICovXG4udWstbmF2YmFyLW5hdiA+IGxpLnVrLWFjdGl2ZSA+IGEge1xuICBjb2xvcjogIzMzMzsgfVxuXG4vKiBJdGVtXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW5hdmJhci1pdGVtIHtcbiAgY29sb3I6ICM2NjY7IH1cblxuLyogVG9nZ2xlXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW5hdmJhci10b2dnbGUge1xuICBjb2xvcjogIzk5OTsgfVxuXG4udWstbmF2YmFyLXRvZ2dsZTpob3Zlcixcbi51ay1uYXZiYXItdG9nZ2xlOmZvY3VzLFxuLnVrLW5hdmJhci10b2dnbGUudWstb3BlbiB7XG4gIGNvbG9yOiAjNjY2O1xuICBvdXRsaW5lOiBub25lO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLypcclxuICogSWNvblxyXG4gKiBBZG9wdHMgYHVrLWljb25gXHJcbiAqL1xuLyogSG92ZXIgKyBGb2N1cyAqL1xuLyogU3VidGl0bGVcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbmF2YmFyLXN1YnRpdGxlIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTsgfVxuXG4vKiBTdHlsZSBtb2RpZmllcnNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBEcm9wZG93blxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIEFkb3B0cyBgdWstZHJvcGRvd25gXHJcbiAqIDEuIEhpZGUgYnkgZGVmYXVsdFxyXG4gKiAyLiBTZXQgcG9zaXRpb25cclxuICogMy4gU2V0IGEgZGVmYXVsdCB3aWR0aFxyXG4gKiA0LiBTdHlsZVxyXG4gKi9cbi51ay1uYXZiYXItZHJvcGRvd24ge1xuICAvKiAxICovXG4gIGRpc3BsYXk6IG5vbmU7XG4gIC8qIDIgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDIwO1xuICAvKiAzICovXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAyMDBweDtcbiAgLyogNCAqL1xuICBwYWRkaW5nOiAxNXB4O1xuICBiYWNrZ3JvdW5kOiAjZjhmOGY4O1xuICBjb2xvcjogIzY2NjsgfVxuXG4vKiBTaG93ICovXG4udWstbmF2YmFyLWRyb3Bkb3duLnVrLW9wZW4ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKlxyXG4gKiBEaXJlY3Rpb24gLyBBbGlnbm1lbnQgbW9kaWZpZXJzXHJcbiAqL1xuLyogRGlyZWN0aW9uICovXG5bY2xhc3MqPSd1ay1uYXZiYXItZHJvcGRvd24tdG9wJ10ge1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbltjbGFzcyo9J3VrLW5hdmJhci1kcm9wZG93bi1ib3R0b20nXSB7XG4gIG1hcmdpbi10b3A6IDA7IH1cblxuW2NsYXNzKj0ndWstbmF2YmFyLWRyb3Bkb3duLWxlZnQnXSB7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbltjbGFzcyo9J3VrLW5hdmJhci1kcm9wZG93bi1yaWdodCddIHtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLypcclxuICogR3JpZFxyXG4gKiBBZG9wdHMgYHVrLWdyaWRgXHJcbiAqL1xuLyogR3V0dGVyIEhvcml6b250YWwgKi9cbi51ay1uYXZiYXItZHJvcGRvd24tZ3JpZCB7XG4gIG1hcmdpbi1sZWZ0OiAtMzBweDsgfVxuXG4udWstbmF2YmFyLWRyb3Bkb3duLWdyaWQgPiAqIHtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4OyB9XG5cbi8qIEd1dHRlciBWZXJ0aWNhbCAqL1xuLnVrLW5hdmJhci1kcm9wZG93bi1ncmlkID4gLnVrLWdyaWQtbWFyZ2luIHtcbiAgbWFyZ2luLXRvcDogMzBweDsgfVxuXG4vKiBTdGFjayAqL1xuLnVrLW5hdmJhci1kcm9wZG93bi1zdGFjayAudWstbmF2YmFyLWRyb3Bkb3duLWdyaWQgPiAqIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4vKlxyXG4gKiBXaWR0aCBtb2RpZmllclxyXG4gKi9cbi51ay1uYXZiYXItZHJvcGRvd24td2lkdGgtMjpub3QoLnVrLW5hdmJhci1kcm9wZG93bi1zdGFjaykge1xuICB3aWR0aDogNDAwcHg7IH1cblxuLnVrLW5hdmJhci1kcm9wZG93bi13aWR0aC0zOm5vdCgudWstbmF2YmFyLWRyb3Bkb3duLXN0YWNrKSB7XG4gIHdpZHRoOiA2MDBweDsgfVxuXG4udWstbmF2YmFyLWRyb3Bkb3duLXdpZHRoLTQ6bm90KC51ay1uYXZiYXItZHJvcGRvd24tc3RhY2spIHtcbiAgd2lkdGg6IDgwMHB4OyB9XG5cbi51ay1uYXZiYXItZHJvcGRvd24td2lkdGgtNTpub3QoLnVrLW5hdmJhci1kcm9wZG93bi1zdGFjaykge1xuICB3aWR0aDogMTAwMHB4OyB9XG5cbi8qXHJcbiAqIERyb3BiYXIgbW9kaWZpZXJcclxuICovXG4udWstbmF2YmFyLWRyb3Bkb3duLWRyb3BiYXIge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qIERyb3Bkb3duIE5hdlxyXG4gKiBBZG9wdHMgYHVrLW5hdmBcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiBJdGVtc1xyXG4gKi9cbi51ay1uYXZiYXItZHJvcGRvd24tbmF2ID4gbGkgPiBhIHtcbiAgY29sb3I6ICM5OTk7IH1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLW5hdmJhci1kcm9wZG93bi1uYXYgPiBsaSA+IGE6aG92ZXIsXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiA+IGxpID4gYTpmb2N1cyB7XG4gIGNvbG9yOiAjNjY2OyB9XG5cbi8qIEFjdGl2ZSAqL1xuLnVrLW5hdmJhci1kcm9wZG93bi1uYXYgPiBsaS51ay1hY3RpdmUgPiBhIHtcbiAgY29sb3I6ICMzMzM7IH1cblxuLypcclxuICogSGVhZGVyXHJcbiAqL1xuLnVrLW5hdmJhci1kcm9wZG93bi1uYXYgLnVrLW5hdi1oZWFkZXIge1xuICBjb2xvcjogIzMzMzsgfVxuXG4vKlxyXG4gKiBEaXZpZGVyXHJcbiAqL1xuLnVrLW5hdmJhci1kcm9wZG93bi1uYXYgLnVrLW5hdi1kaXZpZGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLypcclxuICogU3VibGlzdHNcclxuICovXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiAudWstbmF2LXN1YiBhIHtcbiAgY29sb3I6ICM5OTk7IH1cblxuLnVrLW5hdmJhci1kcm9wZG93bi1uYXYgLnVrLW5hdi1zdWIgYTpob3Zlcixcbi51ay1uYXZiYXItZHJvcGRvd24tbmF2IC51ay1uYXYtc3ViIGE6Zm9jdXMge1xuICBjb2xvcjogIzY2NjsgfVxuXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiAudWstbmF2LXN1YiBsaS51ay1hY3RpdmUgPiBhIHtcbiAgY29sb3I6ICMzMzM7IH1cblxuLyogRHJvcGJhclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1uYXZiYXItZHJvcGJhciB7XG4gIGJhY2tncm91bmQ6ICNmOGY4Zjg7IH1cblxuLypcclxuICogU2xpZGUgbW9kaWZpZXJcclxuICovXG4udWstbmF2YmFyLWRyb3BiYXItc2xpZGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDk4MDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogU2xpZGVuYXZcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiBBZG9wdHMgYHVrLWljb25gXHJcbiAqL1xuLnVrLXNsaWRlbmF2IHtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGNvbG9yOiByZ2JhKDEwMiwgMTAyLCAxMDIsIDAuNSk7IH1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLXNsaWRlbmF2OmhvdmVyLFxuLnVrLXNsaWRlbmF2OmZvY3VzIHtcbiAgY29sb3I6IHJnYmEoMTAyLCAxMDIsIDEwMiwgMC45KTtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4vKiBPbkNsaWNrICovXG4udWstc2xpZGVuYXY6YWN0aXZlIHtcbiAgY29sb3I6IHJnYmEoMTAyLCAxMDIsIDEwMiwgMC41KTsgfVxuXG4vKiBJY29uIG1vZGlmaWVyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogUHJldmlvdXNcclxuICovXG4vKlxyXG4gKiBOZXh0XHJcbiAqL1xuLyogU2l6ZSBtb2RpZmllclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1zbGlkZW5hdi1sYXJnZSB7XG4gIHBhZGRpbmc6IDEwcHggMTBweDsgfVxuXG4vKiBDb250YWluZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstc2xpZGVuYXYtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBEb3RuYXZcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiAxLiBBbGxvdyBpdGVtcyB0byB3cmFwIGludG8gdGhlIG5leHQgbGluZVxyXG4gKiAyLiBSZXNldCBsaXN0XHJcbiAqIDMuIEd1dHRlclxyXG4gKi9cbi51ay1kb3RuYXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICAvKiAxICovXG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgLyogMiAqL1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIC8qIDMgKi9cbiAgbWFyZ2luLWxlZnQ6IC0xMnB4OyB9XG5cbi8qXHJcbiAqIDEuIFNwYWNlIGlzIGFsbG9jYXRlZCBzb2xlbHkgYmFzZWQgb24gY29udGVudCBkaW1lbnNpb25zOiAwIDAgYXV0b1xyXG4gKiAyLiBHdXR0ZXJcclxuICovXG4udWstZG90bmF2ID4gKiB7XG4gIC8qIDEgKi9cbiAgZmxleDogbm9uZTtcbiAgLyogMiAqL1xuICBwYWRkaW5nLWxlZnQ6IDEycHg7IH1cblxuLyogSXRlbXNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiBJdGVtc1xyXG4gKiAxLiBIaWRlIHRleHQgaWYgcHJlc2VudFxyXG4gKi9cbi51ay1kb3RuYXYgPiAqID4gKiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTAyLCAxMDIsIDEwMiwgMC4yKTtcbiAgLyogMSAqL1xuICB0ZXh0LWluZGVudDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4vKiBIb3ZlciArIEZvY3VzICovXG4udWstZG90bmF2ID4gKiA+IDpob3Zlcixcbi51ay1kb3RuYXYgPiAqID4gOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDIsIDEwMiwgMTAyLCAwLjYpO1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi8qIE9uQ2xpY2sgKi9cbi51ay1kb3RuYXYgPiAqID4gOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAyLCAxMDIsIDEwMiwgMC4yKTsgfVxuXG4vKiBBY3RpdmUgKi9cbi51ay1kb3RuYXYgPiAudWstYWN0aXZlID4gKiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAyLCAxMDIsIDEwMiwgMC42KTsgfVxuXG4vKiBNb2RpZmllcjogJ3VrLWRvdG5hdi12ZXJ0aWNhbCdcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiAxLiBDaGFuZ2UgZGlyZWN0aW9uXHJcbiAqIDIuIEd1dHRlclxyXG4gKi9cbi51ay1kb3RuYXYtdmVydGljYWwge1xuICAvKiAxICovXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIC8qIDIgKi9cbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi10b3A6IC0xMnB4OyB9XG5cbi8qIDIgKi9cbi51ay1kb3RuYXYtdmVydGljYWwgPiAqIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXRvcDogMTJweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBBY2NvcmRpb25cclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstYWNjb3JkaW9uIHtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG4vKiBJdGVtXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWFjY29yZGlvbiA+IDpudGgtY2hpbGQobisyKSB7XG4gIG1hcmdpbi10b3A6IDIwcHg7IH1cblxuLyogVGl0bGVcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstYWNjb3JkaW9uLXRpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6ICMzMzM7IH1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLWFjY29yZGlvbi10aXRsZTpob3Zlcixcbi51ay1hY2NvcmRpb24tdGl0bGU6Zm9jdXMge1xuICBjb2xvcjogIzY2NjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi8qIENvbnRlbnRcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstYWNjb3JkaW9uLWNvbnRlbnQge1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG5cbi8qXHJcbiAqIE1pY3JvIGNsZWFyZml4XHJcbiAqL1xuLnVrLWFjY29yZGlvbi1jb250ZW50OjpiZWZvcmUsXG4udWstYWNjb3JkaW9uLWNvbnRlbnQ6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogdGFibGU7IH1cblxuLnVrLWFjY29yZGlvbi1jb250ZW50OjphZnRlciB7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi8qXHJcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxyXG4gKi9cbi51ay1hY2NvcmRpb24tY29udGVudCA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBEcm9wXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogMS4gSGlkZSBieSBkZWZhdWx0XHJcbiAqIDIuIFNldCBwb3NpdGlvblxyXG4gKiAzLiBTZXQgYSBkZWZhdWx0IHdpZHRoXHJcbiAqL1xuLnVrLWRyb3Age1xuICAvKiAxICovXG4gIGRpc3BsYXk6IG5vbmU7XG4gIC8qIDIgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDIwO1xuICAvKiAzICovXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAzMDBweDsgfVxuXG4vKiBTaG93ICovXG4udWstZHJvcC51ay1vcGVuIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyogRGlyZWN0aW9uIC8gQWxpZ25tZW50IG1vZGlmaWVyc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIERpcmVjdGlvbiAqL1xuW2NsYXNzKj0ndWstZHJvcC10b3AnXSB7XG4gIG1hcmdpbi10b3A6IC0yMHB4OyB9XG5cbltjbGFzcyo9J3VrLWRyb3AtYm90dG9tJ10ge1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG5cbltjbGFzcyo9J3VrLWRyb3AtbGVmdCddIHtcbiAgbWFyZ2luLWxlZnQ6IC0yMHB4OyB9XG5cbltjbGFzcyo9J3VrLWRyb3AtcmlnaHQnXSB7XG4gIG1hcmdpbi1sZWZ0OiAyMHB4OyB9XG5cbi8qIEdyaWQgbW9kaWZpZXJzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWRyb3Atc3RhY2sgLnVrLWRyb3AtZ3JpZCA+ICoge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IERyb3Bkb3duXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogMS4gSGlkZSBieSBkZWZhdWx0XHJcbiAqIDIuIFNldCBwb3NpdGlvblxyXG4gKiAzLiBTZXQgYSBkZWZhdWx0IHdpZHRoXHJcbiAqIDQuIFN0eWxlXHJcbiAqL1xuLnVrLWRyb3Bkb3duIHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBub25lO1xuICAvKiAyICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAyMDtcbiAgLyogMyAqL1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICAvKiA0ICovXG4gIHBhZGRpbmc6IDE1cHg7XG4gIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG4gIGNvbG9yOiAjNjY2OyB9XG5cbi8qIFNob3cgKi9cbi51ay1kcm9wZG93bi51ay1vcGVuIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyogTmF2XHJcbiAqIEFkb3B0cyBgdWstbmF2YFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1kcm9wZG93bi1uYXYge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi8qXHJcbiAqIEl0ZW1zXHJcbiAqL1xuLnVrLWRyb3Bkb3duLW5hdiA+IGxpID4gYSB7XG4gIGNvbG9yOiAjOTk5OyB9XG5cbi8qIEhvdmVyICsgRm9jdXMgKyBBY3RpdmUgKi9cbi51ay1kcm9wZG93bi1uYXYgPiBsaSA+IGE6aG92ZXIsXG4udWstZHJvcGRvd24tbmF2ID4gbGkgPiBhOmZvY3VzLFxuLnVrLWRyb3Bkb3duLW5hdiA+IGxpLnVrLWFjdGl2ZSA+IGEge1xuICBjb2xvcjogIzY2NjsgfVxuXG4vKlxyXG4gKiBIZWFkZXJcclxuICovXG4udWstZHJvcGRvd24tbmF2IC51ay1uYXYtaGVhZGVyIHtcbiAgY29sb3I6ICMzMzM7IH1cblxuLypcclxuICogRGl2aWRlclxyXG4gKi9cbi51ay1kcm9wZG93bi1uYXYgLnVrLW5hdi1kaXZpZGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxuLypcclxuICogU3VibGlzdHNcclxuICovXG4udWstZHJvcGRvd24tbmF2IC51ay1uYXYtc3ViIGEge1xuICBjb2xvcjogIzk5OTsgfVxuXG4udWstZHJvcGRvd24tbmF2IC51ay1uYXYtc3ViIGE6aG92ZXIsXG4udWstZHJvcGRvd24tbmF2IC51ay1uYXYtc3ViIGE6Zm9jdXMsXG4udWstZHJvcGRvd24tbmF2IC51ay1uYXYtc3ViIGxpLnVrLWFjdGl2ZSA+IGEge1xuICBjb2xvcjogIzY2NjsgfVxuXG4vKiBEaXJlY3Rpb24gLyBBbGlnbm1lbnQgbW9kaWZpZXJzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogRGlyZWN0aW9uICovXG5bY2xhc3MqPSd1ay1kcm9wZG93bi10b3AnXSB7XG4gIG1hcmdpbi10b3A6IC0xMHB4OyB9XG5cbltjbGFzcyo9J3VrLWRyb3Bkb3duLWJvdHRvbSddIHtcbiAgbWFyZ2luLXRvcDogMTBweDsgfVxuXG5bY2xhc3MqPSd1ay1kcm9wZG93bi1sZWZ0J10ge1xuICBtYXJnaW4tbGVmdDogLTEwcHg7IH1cblxuW2NsYXNzKj0ndWstZHJvcGRvd24tcmlnaHQnXSB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4OyB9XG5cbi8qIEdyaWQgbW9kaWZpZXJzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWRyb3Bkb3duLXN0YWNrIC51ay1kcm9wZG93bi1ncmlkID4gKiB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogTW9kYWxcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiAxLiBIaWRlIGJ5IGRlZmF1bHRcclxuICogMi4gU2V0IHBvc2l0aW9uXHJcbiAqIDMuIEFsbG93IHNjcm9sbGluZyBmb3IgdGhlIG1vZGFsIGRpYWxvZ1xyXG4gKiA0LiBIb3Jpem9udGFsIHBhZGRpbmdcclxuICogNS4gTWFzayB0aGUgYmFja2dyb3VuZCBwYWdlXHJcbiAqIDYuIEZhZGUtaW4gdHJhbnNpdGlvblxyXG4gKi9cbi51ay1tb2RhbCB7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogbm9uZTtcbiAgLyogMiAqL1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTAxMDtcbiAgLyogMyAqL1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIC8qIDQgKi9cbiAgcGFkZGluZzogMTVweCAxNXB4O1xuICAvKiA1ICovXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgLyogNiAqL1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhcjsgfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC51ay1tb2RhbCB7XG4gICAgcGFkZGluZzogNTBweCAzMHB4OyB9IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLnVrLW1vZGFsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG4gICAgcGFkZGluZy1yaWdodDogNDBweDsgfSB9XG5cbi8qXHJcbiAqIE9wZW5cclxuICovXG4udWstbW9kYWwudWstb3BlbiB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLyogUGFnZVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIFByZXZlbnQgc2Nyb2xsYmFyc1xyXG4gKi9cbi51ay1tb2RhbC1wYWdlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKiBEaWFsb2dcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiAxLiBDcmVhdGUgcG9zaXRpb24gY29udGV4dCBmb3Igc3Bpbm5lciBhbmQgY2xvc2UgYnV0dG9uXHJcbiAqIDIuIERpbWVuc2lvbnNcclxuICogMy4gRml4IGBtYXgtd2lkdGg6IDEwMCVgIG5vdCB3b3JraW5nIGluIGNvbWJpbmF0aW9uIHdpdGggZmxleCBhbmQgcmVzcG9uc2l2ZSBpbWFnZXMgaW4gSUUxMVxyXG4gKiAgICBgIWltcG9ydGFudGAgbmVlZGVkIHRvIG92ZXJ3cml0ZSBgdWstd2lkdGgtYXV0b2AuIFNlZSBgI21vZGFsLW1lZGlhLWltYWdlYCBpbiB0ZXN0c1xyXG4gKiA0LiBTdHlsZVxyXG4gKiA1LiBTbGlkZS1pbiB0cmFuc2l0aW9uXHJcbiAqL1xuLnVrLW1vZGFsLWRpYWxvZyB7XG4gIC8qIDEgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvKiAyICovXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB3aWR0aDogNjAwcHg7XG4gIC8qIDMgKi9cbiAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAwLjAxcHgpICFpbXBvcnRhbnQ7XG4gIC8qIDQgKi9cbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgLyogNSAqL1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMHB4KTtcbiAgdHJhbnNpdGlvbjogMC4zcyBsaW5lYXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIHRyYW5zZm9ybTsgfVxuXG4vKlxyXG4gKiBPcGVuXHJcbiAqL1xuLnVrLW9wZW4gPiAudWstbW9kYWwtZGlhbG9nIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5cbi8qIFNpemUgbW9kaWZpZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiBDb250YWluZXIgc2l6ZVxyXG4gKiBUYWtlIHRoZSBzYW1lIHNpemUgYXMgdGhlIENvbnRhaW5lciBjb21wb25lbnRcclxuICovXG4udWstbW9kYWwtY29udGFpbmVyIC51ay1tb2RhbC1kaWFsb2cge1xuICB3aWR0aDogMTIwMHB4OyB9XG5cbi8qXHJcbiAqIEZ1bGwgc2l6ZVxyXG4gKiAxLiBSZW1vdmUgcGFkZGluZyBhbmQgYmFja2dyb3VuZCBmcm9tIG1vZGFsXHJcbiAqIDIuIFJlc2V0IGFsbCBkZWZhdWx0IGRlY2xhcmF0aW9ucyBmcm9tIG1vZGFsIGRpYWxvZ1xyXG4gKi9cbi8qIDEgKi9cbi51ay1tb2RhbC1mdWxsIHtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogbm9uZTsgfVxuXG4vKiAyICovXG4udWstbW9kYWwtZnVsbCAudWstbW9kYWwtZGlhbG9nIHtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cblxuLyogU2VjdGlvbnNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbW9kYWwtYm9keSB7XG4gIHBhZGRpbmc6IDMwcHggMzBweDsgfVxuXG4udWstbW9kYWwtaGVhZGVyIHtcbiAgcGFkZGluZzogMTVweCAzMHB4O1xuICBiYWNrZ3JvdW5kOiAjZjhmOGY4OyB9XG5cbi51ay1tb2RhbC1mb290ZXIge1xuICBwYWRkaW5nOiAxNXB4IDMwcHg7XG4gIGJhY2tncm91bmQ6ICNmOGY4Zjg7IH1cblxuLypcclxuICogTWljcm8gY2xlYXJmaXhcclxuICovXG4udWstbW9kYWwtYm9keTo6YmVmb3JlLFxuLnVrLW1vZGFsLWJvZHk6OmFmdGVyLFxuLnVrLW1vZGFsLWhlYWRlcjo6YmVmb3JlLFxuLnVrLW1vZGFsLWhlYWRlcjo6YWZ0ZXIsXG4udWstbW9kYWwtZm9vdGVyOjpiZWZvcmUsXG4udWstbW9kYWwtZm9vdGVyOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IHRhYmxlOyB9XG5cbi51ay1tb2RhbC1ib2R5OjphZnRlcixcbi51ay1tb2RhbC1oZWFkZXI6OmFmdGVyLFxuLnVrLW1vZGFsLWZvb3Rlcjo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDsgfVxuXG4vKlxyXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcclxuICovXG4udWstbW9kYWwtYm9keSA+IDpsYXN0LWNoaWxkLFxuLnVrLW1vZGFsLWhlYWRlciA+IDpsYXN0LWNoaWxkLFxuLnVrLW1vZGFsLWZvb3RlciA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vKiBUaXRsZVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1tb2RhbC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMzsgfVxuXG4vKiBDbG9zZVxyXG4gKiBBZG9wdHMgYHVrLWNsb3NlYFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbltjbGFzcyo9J3VrLW1vZGFsLWNsb3NlLSddIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDEwO1xuICB0b3A6IDEwcHg7XG4gIHJpZ2h0OiAxMHB4O1xuICBwYWRkaW5nOiA1cHg7IH1cblxuLypcclxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIGFkamFjZW50IGVsZW1lbnRcclxuICovXG5bY2xhc3MqPSd1ay1tb2RhbC1jbG9zZS0nXTpmaXJzdC1jaGlsZCArICoge1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbi8qXHJcbiAqIEhvdmVyXHJcbiAqL1xuLypcclxuICogRGVmYXVsdFxyXG4gKi9cbi8qXHJcbiAqIE91dHNpZGVcclxuICogMS4gUHJldmVudCBzY3JvbGxiYXIgb24gc21hbGwgZGV2aWNlc1xyXG4gKi9cbi51ay1tb2RhbC1jbG9zZS1vdXRzaWRlIHtcbiAgdG9wOiAwO1xuICAvKiAxICovXG4gIHJpZ2h0OiAtNXB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTAwJSk7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuXG4udWstbW9kYWwtY2xvc2Utb3V0c2lkZTpob3ZlciB7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC8qIDEgKi9cbiAgLnVrLW1vZGFsLWNsb3NlLW91dHNpZGUge1xuICAgIHJpZ2h0OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDEwMCUsIC0xMDAlKTsgfSB9XG5cbi8qXHJcbiAqIEZ1bGxcclxuICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBMaWdodGJveFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIDEuIEhpZGUgYnkgZGVmYXVsdFxyXG4gKiAyLiBTZXQgcG9zaXRpb25cclxuICogMy4gQWxsb3cgc2Nyb2xsaW5nIGZvciB0aGUgbW9kYWwgZGlhbG9nXHJcbiAqIDQuIEhvcml6b250YWwgcGFkZGluZ1xyXG4gKiA1LiBNYXNrIHRoZSBiYWNrZ3JvdW5kIHBhZ2VcclxuICogNi4gRmFkZS1pbiB0cmFuc2l0aW9uXHJcbiAqL1xuLnVrLWxpZ2h0Ym94IHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBub25lO1xuICAvKiAyICovXG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDEwO1xuICAvKiA1ICovXG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIC8qIDYgKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXI7IH1cblxuLypcclxuICogT3BlblxyXG4gKiAxLiBDZW50ZXIgY2hpbGRcclxuICogMi4gRmFkZS1pblxyXG4gKi9cbi51ay1saWdodGJveC51ay1vcGVuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIC8qIDIgKi9cbiAgb3BhY2l0eTogMTsgfVxuXG4vKiBQYWdlXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogUHJldmVudCBzY3JvbGxiYXJzXHJcbiAqL1xuLnVrLWxpZ2h0Ym94LXBhZ2Uge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIEl0ZW1cclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiAxLiBDZW50ZXIgY2hpbGQgd2l0aGluIHRoZSB2aWV3cG9ydFxyXG4gKiAyLiBOb3QgdmlzaWJsZSBieSBkZWZhdWx0XHJcbiAqIDMuIENvbG9yIG5lZWRlZCBmb3Igc3Bpbm5lciBpY29uXHJcbiAqIDQuIE9wdGltaXplIGFuaW1hdGlvblxyXG4gKiA1LiBSZXNwb25zaXZlbmVzc1xyXG4gKiAgICBVc2luZyBgdmhgIGZvciBgbWF4LWhlaWdodGAgdG8gZml4IGltYWdlIHByb3BvcnRpb25zIGFmdGVyIHJlc2l6ZSBpbiBTYWZhcmkgYW5kIE9wZXJhXHJcbiAqICAgIFVzaW5nIGB2aGAgYW5kIGB2d2AgdG8gbWFrZSByZXNwb25zaXZlIGltYWdlIHdvcmsgaW4gSUUxMVxyXG4gKiA2LiBTdXBwcmVzcyBvdXRsaW5lIG9uIGZvY3VzXHJcbiAqL1xuLnVrLWxpZ2h0Ym94LWl0ZW1zID4gKiB7XG4gIC8qIDEgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIC8qIDIgKi9cbiAgZGlzcGxheTogbm9uZTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIC8qIDMgKi9cbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgLyogNCAqL1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5OyB9XG5cbi8qIDUgKi9cbi51ay1saWdodGJveC1pdGVtcyA+ICogPiAqIHtcbiAgbWF4LXdpZHRoOiAxMDB2dztcbiAgbWF4LWhlaWdodDogMTAwdmg7IH1cblxuLyogNiAqL1xuLnVrLWxpZ2h0Ym94LWl0ZW1zID4gOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4udWstbGlnaHRib3gtaXRlbXMgPiAqID4gOm5vdChpZnJhbWUpIHtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bzsgfVxuXG4udWstbGlnaHRib3gtaXRlbXMgPiAudWstYWN0aXZlIHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4vKiBUb29sYmFyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWxpZ2h0Ym94LXRvb2xiYXIge1xuICBwYWRkaW5nOiAxMHB4IDEwcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTsgfVxuXG4udWstbGlnaHRib3gtdG9vbGJhciA+ICoge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpOyB9XG5cbi8qIFRvb2xiYXIgSWNvbiAoQ2xvc2UpXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWxpZ2h0Ym94LXRvb2xiYXItaWNvbiB7XG4gIHBhZGRpbmc6IDVweDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTsgfVxuXG4vKlxyXG4gKiBIb3ZlclxyXG4gKi9cbi51ay1saWdodGJveC10b29sYmFyLWljb246aG92ZXIge1xuICBjb2xvcjogI2ZmZjsgfVxuXG4vKiBCdXR0b24gKFNsaWRlbmF2KVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIDEuIENlbnRlciBpY29uIHZlcnRpY2FsbHkgYW5kIGhvcml6b250YWxseVxyXG4gKi9cbi51ay1saWdodGJveC1idXR0b24ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi8qXHJcbiAqIEhvdmVyXHJcbiAqL1xuLnVrLWxpZ2h0Ym94LWJ1dHRvbjpob3ZlciB7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi8qIENhcHRpb25cclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBJZnJhbWVcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbGlnaHRib3gtaWZyYW1lIHtcbiAgd2lkdGg6IDgwJTtcbiAgaGVpZ2h0OiA4MCU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogU2xpZGVyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogMS4gUHJldmVudCB0YWIgaGlnaGxpZ2h0aW5nIG9uIGlPUy5cclxuICovXG4udWstc2xpZGVyIHtcbiAgLyogMSAqL1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qIENvbnRhaW5lclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIDEuIENsaXAgY2hpbGQgZWxlbWVudHNcclxuICovXG4udWstc2xpZGVyLWNvbnRhaW5lciB7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKiBJdGVtc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIDEuIE9wdGltaXplIGFuaW1hdGlvblxyXG4gKiAyLiBDcmVhdGUgYSBjb250YWluaW5nIGJsb2NrLiBJbiBTYWZhcmkgaXQncyBuZWl0aGVyIGNyZWF0ZWQgYnkgYHRyYW5zZm9ybWAgbm9yIGB3aWxsLWNoYW5nZWAuXHJcbiAqL1xuLnVrLXNsaWRlci1pdGVtcyB7XG4gIC8qIDEgKi9cbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgLyogMiAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLypcclxuICogMS4gUmVzZXQgbGlzdCBzdHlsZSB3aXRob3V0IGludGVyZmVyaW5nIHdpdGggZ3JpZFxyXG4gKiAyLiBQcmV2ZW50IGRpc3BsYXlpbmcgdGhlIGNhbGxvdXQgaW5mb3JtYXRpb24gb24gaU9TLlxyXG4gKi9cbi51ay1zbGlkZXItaXRlbXM6bm90KC51ay1ncmlkKSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8qIDEgKi9cbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICAvKiAyICovXG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsgfVxuXG4udWstc2xpZGVyLWl0ZW1zLnVrLWdyaWQge1xuICBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuXG4vKiBJdGVtXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogMS4gTGV0IGl0ZW1zIHRha2UgY29udGVudCBkaW1lbnNpb25zICgwIDAgYXV0bylcclxuICogMi4gQ3JlYXRlIHBvc2l0aW9uIGNvbnRleHRcclxuICogMy4gRGlzYWJsZSBob3Jpem9udGFsIHBhbm5pbmcgZ2VzdHVyZXMgaW4gSUUxMSBhbmQgRWRnZVxyXG4gKiA0LiBTdXBwcmVzcyBvdXRsaW5lIG9uIGZvY3VzXHJcbiAqL1xuLnVrLXNsaWRlci1pdGVtcyA+ICoge1xuICAvKiAxICovXG4gIGZsZXg6IG5vbmU7XG4gIC8qIDIgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvKiAzICovXG4gIHRvdWNoLWFjdGlvbjogcGFuLXk7IH1cblxuLyogNCAqL1xuLnVrLXNsaWRlci1pdGVtcyA+IDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogU3RpY2t5XHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogMS4gUmVzb2x2ZSBmcmFtZSByYXRlIGlzc3VlcyBvbiBkZXZpY2VzIHdpdGggbG93ZXIgZnJhbWUgcmF0ZXMgYnkgZm9yY2luZyBoYXJkd2FyZSBhY2NlbGVyYXRpb25cclxuICovXG4udWstc3RpY2t5LWZpeGVkIHtcbiAgei1pbmRleDogOTgwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgLyogMSAqL1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi8qXHJcbiAqIEZhc3RlciBhbmltYXRpb25zXHJcbiAqL1xuLnVrLXN0aWNreVtjbGFzcyo9J3VrLWFuaW1hdGlvbi0nXSB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC4yczsgfVxuXG4udWstc3RpY2t5LnVrLWFuaW1hdGlvbi1yZXZlcnNlIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjJzOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IE9mZi1jYW52YXNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiAxLiBIaWRlIGJ5IGRlZmF1bHRcclxuICogMi4gU2V0IHBvc2l0aW9uXHJcbiAqL1xuLnVrLW9mZmNhbnZhcyB7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogbm9uZTtcbiAgLyogMiAqL1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDAwOyB9XG5cbi8qXHJcbiAqIEZsaXAgbW9kaWZpZXJcclxuICovXG4udWstb2ZmY2FudmFzLWZsaXAgLnVrLW9mZmNhbnZhcyB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi8qIEJhclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIDEuIFNldCBwb3NpdGlvblxyXG4gKiAyLiBTaXplIGFuZCBzdHlsZVxyXG4gKiAzLiBBbGxvdyBzY3JvbGxpbmdcclxuICovXG4udWstb2ZmY2FudmFzLWJhciB7XG4gIC8qIDEgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogLTI3MHB4O1xuICAvKiAyICovXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAyNzBweDtcbiAgcGFkZGluZzogMjBweCAyMHB4O1xuICBiYWNrZ3JvdW5kOiAjMjIyO1xuICAvKiAzICovXG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsgfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAudWstb2ZmY2FudmFzLWJhciB7XG4gICAgbGVmdDogLTM1MHB4O1xuICAgIHdpZHRoOiAzNTBweDtcbiAgICBwYWRkaW5nOiA0MHB4IDQwcHg7IH0gfVxuXG4vKiBGbGlwIG1vZGlmaWVyICovXG4udWstb2ZmY2FudmFzLWZsaXAgLnVrLW9mZmNhbnZhcy1iYXIge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTI3MHB4OyB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC51ay1vZmZjYW52YXMtZmxpcCAudWstb2ZmY2FudmFzLWJhciB7XG4gICAgcmlnaHQ6IC0zNTBweDsgfSB9XG5cbi8qXHJcbiAqIE9wZW5cclxuICovXG4udWstb3BlbiA+IC51ay1vZmZjYW52YXMtYmFyIHtcbiAgbGVmdDogMDsgfVxuXG4udWstb2ZmY2FudmFzLWZsaXAgLnVrLW9wZW4gPiAudWstb2ZmY2FudmFzLWJhciB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwOyB9XG5cbi8qXHJcbiAqIFNsaWRlIEFuaW1hdGlvbiAoVXNlZCBpbiBzbGlkZSBhbmQgcHVzaCBtb2RlKVxyXG4gKi9cbi51ay1vZmZjYW52YXMtYmFyLWFuaW1hdGlvbiB7XG4gIHRyYW5zaXRpb246IGxlZnQgMC4zcyBlYXNlLW91dDsgfVxuXG4udWstb2ZmY2FudmFzLWZsaXAgLnVrLW9mZmNhbnZhcy1iYXItYW5pbWF0aW9uIHtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogcmlnaHQ7IH1cblxuLypcclxuICogUmV2ZWFsIEFuaW1hdGlvblxyXG4gKiAxLiBTZXQgcG9zaXRpb25cclxuICogMi4gQ2xpcCB0aGUgYmFyXHJcbiAqIDMuIEFuaW1hdGlvblxyXG4gKiA0LiBSZXNldCBwb3NpdGlvblxyXG4gKi9cbi51ay1vZmZjYW52YXMtcmV2ZWFsIHtcbiAgLyogMSAqL1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICAvKiAyICovXG4gIHdpZHRoOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvKiAzICovXG4gIHRyYW5zaXRpb246IHdpZHRoIDAuM3MgZWFzZS1vdXQ7IH1cblxuLnVrLW9mZmNhbnZhcy1yZXZlYWwgLnVrLW9mZmNhbnZhcy1iYXIge1xuICAvKiA0ICovXG4gIGxlZnQ6IDA7IH1cblxuLnVrLW9mZmNhbnZhcy1mbGlwIC51ay1vZmZjYW52YXMtcmV2ZWFsIC51ay1vZmZjYW52YXMtYmFyIHtcbiAgLyogNCAqL1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDsgfVxuXG4udWstb3BlbiA+IC51ay1vZmZjYW52YXMtcmV2ZWFsIHtcbiAgd2lkdGg6IDI3MHB4OyB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC51ay1vcGVuID4gLnVrLW9mZmNhbnZhcy1yZXZlYWwge1xuICAgIHdpZHRoOiAzNTBweDsgfSB9XG5cbi8qXHJcbiAqIEZsaXAgbW9kaWZpZXJcclxuICovXG4udWstb2ZmY2FudmFzLWZsaXAgLnVrLW9mZmNhbnZhcy1yZXZlYWwge1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bzsgfVxuXG4vKiBDbG9zZVxyXG4gKiBBZG9wdHMgYHVrLWNsb3NlYFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1vZmZjYW52YXMtY2xvc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHRvcDogMjBweDtcbiAgcmlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDVweDsgfVxuXG4vKiBPdmVybGF5XHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogT3ZlcmxheSB0aGUgd2hvbGUgcGFnZS4gTmVlZGVkIGZvciB0aGUgYDo6YmVmb3JlYFxyXG4gKiAxLiBVc2luZyBgMTAwdndgIHNvIG5vIG1vZGlmaWNhdGlvbiBpcyBuZWVkZWQgd2hlbiBvZmYtY2FudmFzIGlzIGZsaXBwZWRcclxuICogMi4gQWxsb3cgZm9yIGNsb3Npbmcgd2l0aCBzd2lwZSBnZXN0dXJlIG9uIGRldmljZXMgd2l0aCBwb2ludGVyIGV2ZW50cy5cclxuICovXG4udWstb2ZmY2FudmFzLW92ZXJsYXkge1xuICAvKiAxICovXG4gIHdpZHRoOiAxMDB2dztcbiAgLyogMiAqL1xuICB0b3VjaC1hY3Rpb246IG5vbmU7IH1cblxuLypcclxuICogMS4gTWFzayB0aGUgd2hvbGUgcGFnZVxyXG4gKiAyLiBGYWRlLWluIHRyYW5zaXRpb25cclxuICovXG4udWstb2ZmY2FudmFzLW92ZXJsYXk6OmJlZm9yZSB7XG4gIC8qIDEgKi9cbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgLyogMiAqL1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhcjsgfVxuXG4udWstb2ZmY2FudmFzLW92ZXJsYXkudWstb3Blbjo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMTsgfVxuXG4vKiBQcmV2ZW50IHNjcm9sbGluZ1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIFByZXZlbnQgaG9yaXpvbnRhbCBzY3JvbGxiYXIgd2hlbiB0aGUgY29udGVudCBpcyBzbGlkZS1vdXRcclxuICogSGFzIHRvIGJlIG9uIHRoZSBgaHRtbGAgZWxlbWVudCB0b28gdG8gbWFrZSBpdCB3b3JrIG9uIHRoZSBgYm9keWBcclxuICovXG4udWstb2ZmY2FudmFzLXBhZ2UsXG4udWstb2ZmY2FudmFzLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjsgfVxuXG4vKiBDb250YWluZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiBQcmVwYXJlIHNsaWRlLW91dCBhbmltYXRpb24gKFVzZWQgaW4gcmV2ZWFsIGFuZCBwdXNoIG1vZGUpXHJcbiAqIFVzaW5nIGBwb3NpdGlvbjogbGVmdGAgaW5zdGVhZCBvZiBgdHJhbnNmb3JtYCBiZWNhdXNlIHBvc2l0aW9uIGBmaXhlZGAgZWxlbWVudHMgbGlrZSBzdGlja3kgbmF2YmFyc1xyXG4gKiBsb3NlIHRoZWlyIGZpeGVkIHN0YXRlIGFuZCBiZWhhdmVzIGxpa2UgYGFic29sdXRlYCB3aXRoaW4gYSB0cmFuc2Zvcm1lZCBjb250YWluZXJcclxuICogMS4gUHJvdmlkZSBhIGZpeGVkIHdpZHRoIGFuZCBwcmV2ZW50IHNocmlua2luZ1xyXG4gKi9cbi51ay1vZmZjYW52YXMtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAwO1xuICB0cmFuc2l0aW9uOiBsZWZ0IDAuM3MgZWFzZS1vdXQ7XG4gIC8qIDEgKi9cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLypcclxuICogQWN0aXZhdGUgc2xpZGUtb3V0IGFuaW1hdGlvblxyXG4gKi9cbjpub3QoLnVrLW9mZmNhbnZhcy1mbGlwKS51ay1vZmZjYW52YXMtY29udGFpbmVyLWFuaW1hdGlvbiB7XG4gIGxlZnQ6IDI3MHB4OyB9XG5cbi51ay1vZmZjYW52YXMtZmxpcC51ay1vZmZjYW52YXMtY29udGFpbmVyLWFuaW1hdGlvbiB7XG4gIGxlZnQ6IC0yNzBweDsgfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICA6bm90KC51ay1vZmZjYW52YXMtZmxpcCkudWstb2ZmY2FudmFzLWNvbnRhaW5lci1hbmltYXRpb24ge1xuICAgIGxlZnQ6IDM1MHB4OyB9XG4gIC51ay1vZmZjYW52YXMtZmxpcC51ay1vZmZjYW52YXMtY29udGFpbmVyLWFuaW1hdGlvbiB7XG4gICAgbGVmdDogLTM1MHB4OyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogVG9vbHRpcFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIDEuIEhpZGUgYnkgZGVmYXVsdFxyXG4gKiAyLiBQb3NpdGlvblxyXG4gKiAzLiBEaW1lbnNpb25zXHJcbiAqIDQuIFN0eWxlXHJcbiAqL1xuLnVrLXRvb2x0aXAge1xuICAvKiAxICovXG4gIGRpc3BsYXk6IG5vbmU7XG4gIC8qIDIgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDMwO1xuICAvKiAzICovXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1heC13aWR0aDogMjAwcHg7XG4gIHBhZGRpbmc6IDNweCA2cHg7XG4gIC8qIDQgKi9cbiAgYmFja2dyb3VuZDogIzY2NjtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxMnB4OyB9XG5cbi8qIFNob3cgKi9cbi51ay10b29sdGlwLnVrLWFjdGl2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qIERpcmVjdGlvbiAvIEFsaWdubWVudCBtb2RpZmllcnNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBEaXJlY3Rpb24gKi9cbltjbGFzcyo9J3VrLXRvb2x0aXAtdG9wJ10ge1xuICBtYXJnaW4tdG9wOiAtMTBweDsgfVxuXG5bY2xhc3MqPSd1ay10b29sdGlwLWJvdHRvbSddIHtcbiAgbWFyZ2luLXRvcDogMTBweDsgfVxuXG5bY2xhc3MqPSd1ay10b29sdGlwLWxlZnQnXSB7XG4gIG1hcmdpbi1sZWZ0OiAtMTBweDsgfVxuXG5bY2xhc3MqPSd1ay10b29sdGlwLXJpZ2h0J10ge1xuICBtYXJnaW4tbGVmdDogMTBweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBBbmltYXRpb25cclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5bY2xhc3MqPSd1ay1hbmltYXRpb24tJ10ge1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNXM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyB9XG5cbi8qIEFuaW1hdGlvbnNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiBGYWRlXHJcbiAqL1xuLnVrLWFuaW1hdGlvbi1mYWRlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGU7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC44cztcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOyB9XG5cbi8qXHJcbiAqIFNjYWxlXHJcbiAqL1xuLnVrLWFuaW1hdGlvbi1zY2FsZS11cCB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLXNjYWxlLTAyOyB9XG5cbi51ay1hbmltYXRpb24tc2NhbGUtZG93biB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLXNjYWxlLTE4OyB9XG5cbi8qXHJcbiAqIFNsaWRlXHJcbiAqL1xuLnVrLWFuaW1hdGlvbi1zbGlkZS10b3Age1xuICBhbmltYXRpb24tbmFtZTogdWstZmFkZS10b3A7IH1cblxuLnVrLWFuaW1hdGlvbi1zbGlkZS1ib3R0b20ge1xuICBhbmltYXRpb24tbmFtZTogdWstZmFkZS1ib3R0b207IH1cblxuLnVrLWFuaW1hdGlvbi1zbGlkZS1sZWZ0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUtbGVmdDsgfVxuXG4udWstYW5pbWF0aW9uLXNsaWRlLXJpZ2h0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUtcmlnaHQ7IH1cblxuLypcclxuICogU2xpZGUgU21hbGxcclxuICovXG4udWstYW5pbWF0aW9uLXNsaWRlLXRvcC1zbWFsbCB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLXRvcC1zbWFsbDsgfVxuXG4udWstYW5pbWF0aW9uLXNsaWRlLWJvdHRvbS1zbWFsbCB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLWJvdHRvbS1zbWFsbDsgfVxuXG4udWstYW5pbWF0aW9uLXNsaWRlLWxlZnQtc21hbGwge1xuICBhbmltYXRpb24tbmFtZTogdWstZmFkZS1sZWZ0LXNtYWxsOyB9XG5cbi51ay1hbmltYXRpb24tc2xpZGUtcmlnaHQtc21hbGwge1xuICBhbmltYXRpb24tbmFtZTogdWstZmFkZS1yaWdodC1zbWFsbDsgfVxuXG4vKlxyXG4gKiBTbGlkZSBNZWRpdW1cclxuICovXG4udWstYW5pbWF0aW9uLXNsaWRlLXRvcC1tZWRpdW0ge1xuICBhbmltYXRpb24tbmFtZTogdWstZmFkZS10b3AtbWVkaXVtOyB9XG5cbi51ay1hbmltYXRpb24tc2xpZGUtYm90dG9tLW1lZGl1bSB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLWJvdHRvbS1tZWRpdW07IH1cblxuLnVrLWFuaW1hdGlvbi1zbGlkZS1sZWZ0LW1lZGl1bSB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLWxlZnQtbWVkaXVtOyB9XG5cbi51ay1hbmltYXRpb24tc2xpZGUtcmlnaHQtbWVkaXVtIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUtcmlnaHQtbWVkaXVtOyB9XG5cbi8qXHJcbiAqIEtlbmJ1cm5zXHJcbiAqL1xuLnVrLWFuaW1hdGlvbi1rZW5idXJucyB7XG4gIGFuaW1hdGlvbi1uYW1lOiB1ay1zY2FsZS1rZW5idXJucztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxNXM7IH1cblxuLypcclxuICogU2hha2VcclxuICovXG4udWstYW5pbWF0aW9uLXNoYWtlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHVrLXNoYWtlOyB9XG5cbi8qXHJcbiAqIFNWRyBTdHJva2VcclxuICogVGhlIGAtLXVrLWFuaW1hdGlvbi1zdHJva2VgIGN1c3RvbSBwcm9wZXJ0eSBjb250YWlucyB0aGUgbG9uZ2VzdCBwYXRoIGxlbmd0aC5cclxuICogU2V0IGl0IG1hbnVhbGx5IG9yIHVzZSBgdWstc3ZnPVwic3Ryb2tlLWFuaW1hdGlvbjogdHJ1ZVwiYCB0byBzZXQgaXQgYXV0b21hdGljYWxseS5cclxuICogQWxsIHN0cm9rZXMgYXJlIGFuaW1hdGVkIGJ5IHRoZSBzYW1lIHBhY2UgYW5kIGRvZXNuJ3QgZW5kIHNpbXVsdGFuZW91c2x5LlxyXG4gKiBUbyBlbmQgc2ltdWx0YW5lb3VzbHksIGBwYXRoTGVuZ3RoPVwiMVwiYCBjb3VsZCBiZSB1c2VkLCBidXQgaXQncyBub3Qgd29ya2luZyBpbiBTYWZhcmkgeWV0LlxyXG4gKi9cbi51ay1hbmltYXRpb24tc3Ryb2tlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHVrLXN0cm9rZTtcbiAgc3Ryb2tlLWRhc2hhcnJheTogdmFyKC0tdWstYW5pbWF0aW9uLXN0cm9rZSk7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMnM7IH1cblxuLyogRGlyZWN0aW9uIG1vZGlmaWVyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWFuaW1hdGlvbi1yZXZlcnNlIHtcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsgfVxuXG4vKiBEdXJhdGlvbiBtb2RpZmllclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1hbmltYXRpb24tZmFzdCB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC4xczsgfVxuXG4vKiBUb2dnbGUgKEhvdmVyICsgRm9jdXMpXHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiBUaGUgdG9nZ2xlIGlzIHRyaWdnZXJlZCBvbiB0b3VjaCBkZXZpY2VzIHVzaW5nIGA6Zm9jdXNgIGFuZCB0YWJpbmRleFxyXG4gKi9cbi51ay1hbmltYXRpb24tdG9nZ2xlOm5vdCg6aG92ZXIpOm5vdCg6Zm9jdXMpIFtjbGFzcyo9J3VrLWFuaW1hdGlvbi0nXSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBub25lOyB9XG5cbi8qXHJcbiAqIDEuIFByZXZlbnQgdGFiIGhpZ2hsaWdodGluZyBvbiBpT1MuXHJcbiAqL1xuLnVrLWFuaW1hdGlvbi10b2dnbGUge1xuICAvKiAxICovXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLypcclxuICogUmVtb3ZlIG91dGxpbmUgZm9yIGB0YWJpbmRleGBcclxuICovXG4udWstYW5pbWF0aW9uLXRvZ2dsZTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLyogS2V5ZnJhbWVzIHVzZWQgYnkgYW5pbWF0aW9uIGNsYXNzZXNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiBGYWRlXHJcbiAqL1xuQGtleWZyYW1lcyB1ay1mYWRlIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbi8qXHJcbiAqIFNsaWRlIFRvcFxyXG4gKi9cbkBrZXlmcmFtZXMgdWstZmFkZS10b3Age1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuLypcclxuICogU2xpZGUgQm90dG9tXHJcbiAqL1xuQGtleWZyYW1lcyB1ay1mYWRlLWJvdHRvbSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfSB9XG5cbi8qXHJcbiAqIFNsaWRlIExlZnRcclxuICovXG5Aa2V5ZnJhbWVzIHVrLWZhZGUtbGVmdCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0gfVxuXG4vKlxyXG4gKiBTbGlkZSBSaWdodFxyXG4gKi9cbkBrZXlmcmFtZXMgdWstZmFkZS1yaWdodCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbi8qXHJcbiAqIFNsaWRlIFRvcCBTbWFsbFxyXG4gKi9cbkBrZXlmcmFtZXMgdWstZmFkZS10b3Atc21hbGwge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cblxuLypcclxuICogU2xpZGUgQm90dG9tIFNtYWxsXHJcbiAqL1xuQGtleWZyYW1lcyB1ay1mYWRlLWJvdHRvbS1zbWFsbCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfSB9XG5cbi8qXHJcbiAqIFNsaWRlIExlZnQgU21hbGxcclxuICovXG5Aa2V5ZnJhbWVzIHVrLWZhZGUtbGVmdC1zbWFsbCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0gfVxuXG4vKlxyXG4gKiBTbGlkZSBSaWdodCBTbWFsbFxyXG4gKi9cbkBrZXlmcmFtZXMgdWstZmFkZS1yaWdodC1zbWFsbCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfSB9XG5cbi8qXHJcbiAqIFNsaWRlIFRvcCBNZWRpdW1cclxuICovXG5Aa2V5ZnJhbWVzIHVrLWZhZGUtdG9wLW1lZGl1bSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG4vKlxyXG4gKiBTbGlkZSBCb3R0b20gTWVkaXVtXHJcbiAqL1xuQGtleWZyYW1lcyB1ay1mYWRlLWJvdHRvbS1tZWRpdW0ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuXG4vKlxyXG4gKiBTbGlkZSBMZWZ0IE1lZGl1bVxyXG4gKi9cbkBrZXlmcmFtZXMgdWstZmFkZS1sZWZ0LW1lZGl1bSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0gfVxuXG4vKlxyXG4gKiBTbGlkZSBSaWdodCBNZWRpdW1cclxuICovXG5Aa2V5ZnJhbWVzIHVrLWZhZGUtcmlnaHQtbWVkaXVtIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwcHgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9IH1cblxuLypcclxuICogU2NhbGUgVXBcclxuICovXG5Aa2V5ZnJhbWVzIHVrLWZhZGUtc2NhbGUtMDIge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMik7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9IH1cblxuLypcclxuICogU2NhbGUgRG93blxyXG4gKi9cbkBrZXlmcmFtZXMgdWstZmFkZS1zY2FsZS0xOCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS44KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH0gfVxuXG4vKlxyXG4gKiBLZW5idXJuc1xyXG4gKi9cbkBrZXlmcmFtZXMgdWstc2NhbGUta2VuYnVybnMge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7IH0gfVxuXG4vKlxyXG4gKiBTaGFrZVxyXG4gKi9cbkBrZXlmcmFtZXMgdWstc2hha2Uge1xuICAwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gIDEwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC05cHgpOyB9XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDhweCk7IH1cbiAgMzAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTdweCk7IH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNnB4KTsgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNXB4KTsgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpOyB9XG4gIDcwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zcHgpOyB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCk7IH1cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTFweCk7IH0gfVxuXG4vKlxyXG4gKiBTdHJva2VcclxuICovXG5Aa2V5ZnJhbWVzIHVrLXN0cm9rZSB7XG4gIDAlIHtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogdmFyKC0tdWstYW5pbWF0aW9uLXN0cm9rZSk7IH1cbiAgMTAwJSB7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBXaWR0aFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIEVxdWFsIGNoaWxkIHdpZHRoc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbltjbGFzcyo9J3VrLWNoaWxkLXdpZHRoJ10gPiAqIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLnVrLWNoaWxkLXdpZHRoLTEtMiA+ICoge1xuICB3aWR0aDogNTAlOyB9XG5cbi51ay1jaGlsZC13aWR0aC0xLTMgPiAqIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAzLjAwMSk7IH1cblxuLnVrLWNoaWxkLXdpZHRoLTEtNCA+ICoge1xuICB3aWR0aDogMjUlOyB9XG5cbi51ay1jaGlsZC13aWR0aC0xLTUgPiAqIHtcbiAgd2lkdGg6IDIwJTsgfVxuXG4udWstY2hpbGQtd2lkdGgtMS02ID4gKiB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gNi4wMDEpOyB9XG5cbi51ay1jaGlsZC13aWR0aC1hdXRvID4gKiB7XG4gIHdpZHRoOiBhdXRvOyB9XG5cbi8qXHJcbiAqIDEuIFJlc2V0IHRoZSBgbWluLXdpZHRoYCwgd2hpY2ggaXMgc2V0IHRvIGF1dG8gYnkgZGVmYXVsdCwgYmVjYXVzZVxyXG4gKiAgICBmbGV4IGl0ZW1zIHdvbid0IHNocmluayBiZWxvdyB0aGVpciBtaW5pbXVtIGludHJpbnNpYyBjb250ZW50IHNpemUuXHJcbiAqICAgIFVzaW5nIGAxcHhgIGluc3RlYWQgb2YgYDBgLCBzbyBpdGVtcyBzdGlsbCB3cmFwIGludG8gdGhlIG5leHQgbGluZSxcclxuICogICAgaWYgdGhleSBoYXZlIHplcm8gd2lkdGggYW5kIHBhZGRpbmcgYW5kIHRoZSBwcmVkZWNlc3NvciBpcyAxMDAlIHdpZGUuXHJcbiAqL1xuLnVrLWNoaWxkLXdpZHRoLWV4cGFuZCA+IDpub3QoW2NsYXNzKj0ndWstd2lkdGgnXSkge1xuICBmbGV4OiAxO1xuICAvKiAxICovXG4gIG1pbi13aWR0aDogMXB4OyB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLnVrLWNoaWxkLXdpZHRoLTEtMVxcQHMgPiAqIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS0yXFxAcyA+ICoge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtM1xcQHMgPiAqIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDMuMDAxKTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS00XFxAcyA+ICoge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtNVxcQHMgPiAqIHtcbiAgICB3aWR0aDogMjAlOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTZcXEBzID4gKiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyA2LjAwMSk7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLWF1dG9cXEBzID4gKiB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLnVrLWNoaWxkLXdpZHRoLWV4cGFuZFxcQHMgPiA6bm90KFtjbGFzcyo9J3VrLXdpZHRoJ10pIHtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMXB4OyB9IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLnVrLWNoaWxkLXdpZHRoLTEtMVxcQG0gPiAqIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS0yXFxAbSA+ICoge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtM1xcQG0gPiAqIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDMuMDAxKTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS00XFxAbSA+ICoge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtNVxcQG0gPiAqIHtcbiAgICB3aWR0aDogMjAlOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTZcXEBtID4gKiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyA2LjAwMSk7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLWF1dG9cXEBtID4gKiB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLnVrLWNoaWxkLXdpZHRoLWV4cGFuZFxcQG0gPiA6bm90KFtjbGFzcyo9J3VrLXdpZHRoJ10pIHtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMXB4OyB9IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay1jaGlsZC13aWR0aC0xLTFcXEBsID4gKiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtMlxcQGwgPiAqIHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTNcXEBsID4gKiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAzLjAwMSk7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtNFxcQGwgPiAqIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTVcXEBsID4gKiB7XG4gICAgd2lkdGg6IDIwJTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS02XFxAbCA+ICoge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gNi4wMDEpOyB9XG4gIC51ay1jaGlsZC13aWR0aC1hdXRvXFxAbCA+ICoge1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC51ay1jaGlsZC13aWR0aC1leHBhbmRcXEBsID4gOm5vdChbY2xhc3MqPSd1ay13aWR0aCddKSB7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDFweDsgfSB9XG5cbi8qIExhcmdlIHNjcmVlbiBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KSB7XG4gIC51ay1jaGlsZC13aWR0aC0xLTFcXEB4bCA+ICoge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTJcXEB4bCA+ICoge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtM1xcQHhsID4gKiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAzLjAwMSk7IH1cbiAgLnVrLWNoaWxkLXdpZHRoLTEtNFxcQHhsID4gKiB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAudWstY2hpbGQtd2lkdGgtMS01XFxAeGwgPiAqIHtcbiAgICB3aWR0aDogMjAlOyB9XG4gIC51ay1jaGlsZC13aWR0aC0xLTZcXEB4bCA+ICoge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gNi4wMDEpOyB9XG4gIC51ay1jaGlsZC13aWR0aC1hdXRvXFxAeGwgPiAqIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAudWstY2hpbGQtd2lkdGgtZXhwYW5kXFxAeGwgPiA6bm90KFtjbGFzcyo9J3VrLXdpZHRoJ10pIHtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMXB4OyB9IH1cblxuLyogU2luZ2xlIFdpZHRoc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIDEuIGBtYXgtd2lkdGhgIGlzIG5lZWRlZCBmb3IgdGhlIHBpeGVsLWJhc2VkIGNsYXNzZXNcclxuICovXG5bY2xhc3MqPSd1ay13aWR0aCddIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi8qIEhhbHZlcyAqL1xuLnVrLXdpZHRoLTEtMiB7XG4gIHdpZHRoOiA1MCU7IH1cblxuLyogVGhpcmRzICovXG4udWstd2lkdGgtMS0zIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAzLjAwMSk7IH1cblxuLnVrLXdpZHRoLTItMyB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKiAyIC8gMy4wMDEpOyB9XG5cbi8qIFF1YXJ0ZXJzICovXG4udWstd2lkdGgtMS00IHtcbiAgd2lkdGg6IDI1JTsgfVxuXG4udWstd2lkdGgtMy00IHtcbiAgd2lkdGg6IDc1JTsgfVxuXG4vKiBGaWZ0aHMgKi9cbi51ay13aWR0aC0xLTUge1xuICB3aWR0aDogMjAlOyB9XG5cbi51ay13aWR0aC0yLTUge1xuICB3aWR0aDogNDAlOyB9XG5cbi51ay13aWR0aC0zLTUge1xuICB3aWR0aDogNjAlOyB9XG5cbi51ay13aWR0aC00LTUge1xuICB3aWR0aDogODAlOyB9XG5cbi8qIFNpeHRocyAqL1xuLnVrLXdpZHRoLTEtNiB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gNi4wMDEpOyB9XG5cbi51ay13aWR0aC01LTYge1xuICB3aWR0aDogY2FsYygxMDAlICogNSAvIDYuMDAxKTsgfVxuXG4vKiBQaXhlbCAqL1xuLnVrLXdpZHRoLXNtYWxsIHtcbiAgd2lkdGg6IDE1MHB4OyB9XG5cbi51ay13aWR0aC1tZWRpdW0ge1xuICB3aWR0aDogMzAwcHg7IH1cblxuLnVrLXdpZHRoLWxhcmdlIHtcbiAgd2lkdGg6IDQ1MHB4OyB9XG5cbi51ay13aWR0aC14bGFyZ2Uge1xuICB3aWR0aDogNjAwcHg7IH1cblxuLnVrLXdpZHRoLXh4bGFyZ2Uge1xuICB3aWR0aDogNzUwcHg7IH1cblxuLyogQXV0byAqL1xuLnVrLXdpZHRoLWF1dG8ge1xuICB3aWR0aDogYXV0bzsgfVxuXG4vKiBFeHBhbmQgKi9cbi51ay13aWR0aC1leHBhbmQge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDFweDsgfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC8qIFdob2xlICovXG4gIC51ay13aWR0aC0xLTFcXEBzIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAvKiBIYWx2ZXMgKi9cbiAgLnVrLXdpZHRoLTEtMlxcQHMge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLyogVGhpcmRzICovXG4gIC51ay13aWR0aC0xLTNcXEBzIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDMuMDAxKTsgfVxuICAudWstd2lkdGgtMi0zXFxAcyB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDIgLyAzLjAwMSk7IH1cbiAgLyogUXVhcnRlcnMgKi9cbiAgLnVrLXdpZHRoLTEtNFxcQHMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLnVrLXdpZHRoLTMtNFxcQHMge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLyogRmlmdGhzICovXG4gIC51ay13aWR0aC0xLTVcXEBzIHtcbiAgICB3aWR0aDogMjAlOyB9XG4gIC51ay13aWR0aC0yLTVcXEBzIHtcbiAgICB3aWR0aDogNDAlOyB9XG4gIC51ay13aWR0aC0zLTVcXEBzIHtcbiAgICB3aWR0aDogNjAlOyB9XG4gIC51ay13aWR0aC00LTVcXEBzIHtcbiAgICB3aWR0aDogODAlOyB9XG4gIC8qIFNpeHRocyAqL1xuICAudWstd2lkdGgtMS02XFxAcyB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyA2LjAwMSk7IH1cbiAgLnVrLXdpZHRoLTUtNlxcQHMge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiA1IC8gNi4wMDEpOyB9XG4gIC8qIFBpeGVsICovXG4gIC51ay13aWR0aC1zbWFsbFxcQHMge1xuICAgIHdpZHRoOiAxNTBweDsgfVxuICAudWstd2lkdGgtbWVkaXVtXFxAcyB7XG4gICAgd2lkdGg6IDMwMHB4OyB9XG4gIC51ay13aWR0aC1sYXJnZVxcQHMge1xuICAgIHdpZHRoOiA0NTBweDsgfVxuICAudWstd2lkdGgteGxhcmdlXFxAcyB7XG4gICAgd2lkdGg6IDYwMHB4OyB9XG4gIC51ay13aWR0aC14eGxhcmdlXFxAcyB7XG4gICAgd2lkdGg6IDc1MHB4OyB9XG4gIC8qIEF1dG8gKi9cbiAgLnVrLXdpZHRoLWF1dG9cXEBzIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAvKiBFeHBhbmQgKi9cbiAgLnVrLXdpZHRoLWV4cGFuZFxcQHMge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAxcHg7IH0gfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAvKiBXaG9sZSAqL1xuICAudWstd2lkdGgtMS0xXFxAbSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLyogSGFsdmVzICovXG4gIC51ay13aWR0aC0xLTJcXEBtIHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC8qIFRoaXJkcyAqL1xuICAudWstd2lkdGgtMS0zXFxAbSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAzLjAwMSk7IH1cbiAgLnVrLXdpZHRoLTItM1xcQG0ge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAyIC8gMy4wMDEpOyB9XG4gIC8qIFF1YXJ0ZXJzICovXG4gIC51ay13aWR0aC0xLTRcXEBtIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC51ay13aWR0aC0zLTRcXEBtIHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC8qIEZpZnRocyAqL1xuICAudWstd2lkdGgtMS01XFxAbSB7XG4gICAgd2lkdGg6IDIwJTsgfVxuICAudWstd2lkdGgtMi01XFxAbSB7XG4gICAgd2lkdGg6IDQwJTsgfVxuICAudWstd2lkdGgtMy01XFxAbSB7XG4gICAgd2lkdGg6IDYwJTsgfVxuICAudWstd2lkdGgtNC01XFxAbSB7XG4gICAgd2lkdGg6IDgwJTsgfVxuICAvKiBTaXh0aHMgKi9cbiAgLnVrLXdpZHRoLTEtNlxcQG0ge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiAxIC8gNi4wMDEpOyB9XG4gIC51ay13aWR0aC01LTZcXEBtIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogNSAvIDYuMDAxKTsgfVxuICAvKiBQaXhlbCAqL1xuICAudWstd2lkdGgtc21hbGxcXEBtIHtcbiAgICB3aWR0aDogMTUwcHg7IH1cbiAgLnVrLXdpZHRoLW1lZGl1bVxcQG0ge1xuICAgIHdpZHRoOiAzMDBweDsgfVxuICAudWstd2lkdGgtbGFyZ2VcXEBtIHtcbiAgICB3aWR0aDogNDUwcHg7IH1cbiAgLnVrLXdpZHRoLXhsYXJnZVxcQG0ge1xuICAgIHdpZHRoOiA2MDBweDsgfVxuICAudWstd2lkdGgteHhsYXJnZVxcQG0ge1xuICAgIHdpZHRoOiA3NTBweDsgfVxuICAvKiBBdXRvICovXG4gIC51ay13aWR0aC1hdXRvXFxAbSB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLyogRXhwYW5kICovXG4gIC51ay13aWR0aC1leHBhbmRcXEBtIHtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMXB4OyB9IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC8qIFdob2xlICovXG4gIC51ay13aWR0aC0xLTFcXEBsIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAvKiBIYWx2ZXMgKi9cbiAgLnVrLXdpZHRoLTEtMlxcQGwge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLyogVGhpcmRzICovXG4gIC51ay13aWR0aC0xLTNcXEBsIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMSAvIDMuMDAxKTsgfVxuICAudWstd2lkdGgtMi0zXFxAbCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDIgLyAzLjAwMSk7IH1cbiAgLyogUXVhcnRlcnMgKi9cbiAgLnVrLXdpZHRoLTEtNFxcQGwge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLnVrLXdpZHRoLTMtNFxcQGwge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLyogRmlmdGhzICovXG4gIC51ay13aWR0aC0xLTVcXEBsIHtcbiAgICB3aWR0aDogMjAlOyB9XG4gIC51ay13aWR0aC0yLTVcXEBsIHtcbiAgICB3aWR0aDogNDAlOyB9XG4gIC51ay13aWR0aC0zLTVcXEBsIHtcbiAgICB3aWR0aDogNjAlOyB9XG4gIC51ay13aWR0aC00LTVcXEBsIHtcbiAgICB3aWR0aDogODAlOyB9XG4gIC8qIFNpeHRocyAqL1xuICAudWstd2lkdGgtMS02XFxAbCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyA2LjAwMSk7IH1cbiAgLnVrLXdpZHRoLTUtNlxcQGwge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKiA1IC8gNi4wMDEpOyB9XG4gIC8qIFBpeGVsICovXG4gIC51ay13aWR0aC1zbWFsbFxcQGwge1xuICAgIHdpZHRoOiAxNTBweDsgfVxuICAudWstd2lkdGgtbWVkaXVtXFxAbCB7XG4gICAgd2lkdGg6IDMwMHB4OyB9XG4gIC51ay13aWR0aC1sYXJnZVxcQGwge1xuICAgIHdpZHRoOiA0NTBweDsgfVxuICAudWstd2lkdGgteGxhcmdlXFxAbCB7XG4gICAgd2lkdGg6IDYwMHB4OyB9XG4gIC51ay13aWR0aC14eGxhcmdlXFxAbCB7XG4gICAgd2lkdGg6IDc1MHB4OyB9XG4gIC8qIEF1dG8gKi9cbiAgLnVrLXdpZHRoLWF1dG9cXEBsIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAvKiBFeHBhbmQgKi9cbiAgLnVrLXdpZHRoLWV4cGFuZFxcQGwge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAxcHg7IH0gfVxuXG4vKiBMYXJnZSBzY3JlZW4gYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDE2MDBweCkge1xuICAvKiBXaG9sZSAqL1xuICAudWstd2lkdGgtMS0xXFxAeGwge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC8qIEhhbHZlcyAqL1xuICAudWstd2lkdGgtMS0yXFxAeGwge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLyogVGhpcmRzICovXG4gIC51ay13aWR0aC0xLTNcXEB4bCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAzLjAwMSk7IH1cbiAgLnVrLXdpZHRoLTItM1xcQHhsIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMiAvIDMuMDAxKTsgfVxuICAvKiBRdWFydGVycyAqL1xuICAudWstd2lkdGgtMS00XFxAeGwge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLnVrLXdpZHRoLTMtNFxcQHhsIHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC8qIEZpZnRocyAqL1xuICAudWstd2lkdGgtMS01XFxAeGwge1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLnVrLXdpZHRoLTItNVxcQHhsIHtcbiAgICB3aWR0aDogNDAlOyB9XG4gIC51ay13aWR0aC0zLTVcXEB4bCB7XG4gICAgd2lkdGg6IDYwJTsgfVxuICAudWstd2lkdGgtNC01XFxAeGwge1xuICAgIHdpZHRoOiA4MCU7IH1cbiAgLyogU2l4dGhzICovXG4gIC51ay13aWR0aC0xLTZcXEB4bCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyA2LjAwMSk7IH1cbiAgLnVrLXdpZHRoLTUtNlxcQHhsIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICogNSAvIDYuMDAxKTsgfVxuICAvKiBQaXhlbCAqL1xuICAudWstd2lkdGgtc21hbGxcXEB4bCB7XG4gICAgd2lkdGg6IDE1MHB4OyB9XG4gIC51ay13aWR0aC1tZWRpdW1cXEB4bCB7XG4gICAgd2lkdGg6IDMwMHB4OyB9XG4gIC51ay13aWR0aC1sYXJnZVxcQHhsIHtcbiAgICB3aWR0aDogNDUwcHg7IH1cbiAgLnVrLXdpZHRoLXhsYXJnZVxcQHhsIHtcbiAgICB3aWR0aDogNjAwcHg7IH1cbiAgLnVrLXdpZHRoLXh4bGFyZ2VcXEB4bCB7XG4gICAgd2lkdGg6IDc1MHB4OyB9XG4gIC8qIEF1dG8gKi9cbiAgLnVrLXdpZHRoLWF1dG9cXEB4bCB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLyogRXhwYW5kICovXG4gIC51ay13aWR0aC1leHBhbmRcXEB4bCB7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDFweDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IEhlaWdodFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbltjbGFzcyo9J3VrLWhlaWdodCddIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4vKlxyXG4gKiBPbmx5IHdvcmtzIGlmIHBhcmVudCBlbGVtZW50IGhhcyBhIGhlaWdodCBzZXRcclxuICovXG4udWstaGVpZ2h0LTEtMSB7XG4gIGhlaWdodDogMTAwJTsgfVxuXG4vKlxyXG4gKiBVc2VmdWwgdG8gY3JlYXRlIGltYWdlIHRlYXNlcnNcclxuICovXG4udWstaGVpZ2h0LXZpZXdwb3J0IHtcbiAgbWluLWhlaWdodDogMTAwdmg7IH1cblxuLypcclxuICogUGl4ZWxcclxuICogVXNlZnVsIGZvciBgb3ZlcmZsb3c6IGF1dG9gXHJcbiAqL1xuLnVrLWhlaWdodC1zbWFsbCB7XG4gIGhlaWdodDogMTUwcHg7IH1cblxuLnVrLWhlaWdodC1tZWRpdW0ge1xuICBoZWlnaHQ6IDMwMHB4OyB9XG5cbi51ay1oZWlnaHQtbGFyZ2Uge1xuICBoZWlnaHQ6IDQ1MHB4OyB9XG5cbi51ay1oZWlnaHQtbWF4LXNtYWxsIHtcbiAgbWF4LWhlaWdodDogMTUwcHg7IH1cblxuLnVrLWhlaWdodC1tYXgtbWVkaXVtIHtcbiAgbWF4LWhlaWdodDogMzAwcHg7IH1cblxuLnVrLWhlaWdodC1tYXgtbGFyZ2Uge1xuICBtYXgtaGVpZ2h0OiA0NTBweDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBUZXh0XHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogU3R5bGUgbW9kaWZpZXJzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXRleHQtbGVhZCB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzMzMzsgfVxuXG4udWstdGV4dC1tZXRhIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6ICM5OTk7IH1cblxuLyogU2l6ZSBtb2RpZmllcnNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstdGV4dC1zbWFsbCB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7IH1cblxuLnVrLXRleHQtbGFyZ2Uge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTsgfVxuXG4vKiBXZWlnaHQgbW9kaWZpZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstdGV4dC1saWdodCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7IH1cblxuLnVrLXRleHQtbm9ybWFsIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuXG4udWstdGV4dC1ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG4udWstdGV4dC1saWdodGVyIHtcbiAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7IH1cblxuLnVrLXRleHQtYm9sZGVyIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjsgfVxuXG4vKiBTdHlsZSBtb2RpZmllclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay10ZXh0LWl0YWxpYyB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4vKiBUcmFuc2Zvcm0gbW9kaWZpZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstdGV4dC1jYXBpdGFsaXplIHtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemUgIWltcG9ydGFudDsgfVxuXG4udWstdGV4dC11cHBlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFpbXBvcnRhbnQ7IH1cblxuLnVrLXRleHQtbG93ZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZSAhaW1wb3J0YW50OyB9XG5cbi8qIENvbG9yIG1vZGlmaWVyc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay10ZXh0LW11dGVkIHtcbiAgY29sb3I6ICM5OTkgIWltcG9ydGFudDsgfVxuXG4udWstdGV4dC1lbXBoYXNpcyB7XG4gIGNvbG9yOiAjMzMzICFpbXBvcnRhbnQ7IH1cblxuLnVrLXRleHQtcHJpbWFyeSB7XG4gIGNvbG9yOiAjMWU4N2YwICFpbXBvcnRhbnQ7IH1cblxuLnVrLXRleHQtc2Vjb25kYXJ5IHtcbiAgY29sb3I6ICMyMjIgIWltcG9ydGFudDsgfVxuXG4udWstdGV4dC1zdWNjZXNzIHtcbiAgY29sb3I6ICMzMmQyOTYgIWltcG9ydGFudDsgfVxuXG4udWstdGV4dC13YXJuaW5nIHtcbiAgY29sb3I6ICNmYWEwNWEgIWltcG9ydGFudDsgfVxuXG4udWstdGV4dC1kYW5nZXIge1xuICBjb2xvcjogI2YwNTA2ZSAhaW1wb3J0YW50OyB9XG5cbi8qIEJhY2tncm91bmQgbW9kaWZpZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiAxLiBUaGUgYmFja2dyb3VuZCBjbGlwcyB0byB0aGUgZm9yZWdyb3VuZCB0ZXh0LiBXb3JrcyBpbiBDaHJvbWUsIEZpcmVmb3gsIFNhZmFyaSwgRWRnZSBhbmQgT3BlcmFcclxuICogICAgRGVmYXVsdCBjb2xvciBpcyBzZXQgdG8gdHJhbnNwYXJlbnRcclxuICogMi4gQ29udGFpbmVyIGZpdHMgdGhlIHRleHRcclxuICogMy4gRmFsbGJhY2sgY29sb3IgZm9yIElFMTFcclxuICovXG4udWstdGV4dC1iYWNrZ3JvdW5kIHtcbiAgLyogMSAqL1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvKiAyICovXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgLyogMyAqL1xuICBjb2xvcjogIzFlODdmMCAhaW1wb3J0YW50OyB9XG5cbkBzdXBwb3J0cyAoLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQpIHtcbiAgLnVrLXRleHQtYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzFlODdmMDsgfSB9XG5cbi8qIEFsaWdubWVudCBtb2RpZmllcnNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstdGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XG5cbi51ay10ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxuXG4udWstdGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuXG4udWstdGV4dC1qdXN0aWZ5IHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeSAhaW1wb3J0YW50OyB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLnVrLXRleHQtbGVmdFxcQHMge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxuICAudWstdGV4dC1yaWdodFxcQHMge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cbiAgLnVrLXRleHQtY2VudGVyXFxAcyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAudWstdGV4dC1sZWZ0XFxAbSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XG4gIC51ay10ZXh0LXJpZ2h0XFxAbSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxuICAudWstdGV4dC1jZW50ZXJcXEBtIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgfSB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWstdGV4dC1sZWZ0XFxAbCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XG4gIC51ay10ZXh0LXJpZ2h0XFxAbCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxuICAudWstdGV4dC1jZW50ZXJcXEBsIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgfSB9XG5cbi8qIExhcmdlIHNjcmVlbiBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KSB7XG4gIC51ay10ZXh0LWxlZnRcXEB4bCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XG4gIC51ay10ZXh0LXJpZ2h0XFxAeGwge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cbiAgLnVrLXRleHQtY2VudGVyXFxAeGwge1xuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9IH1cblxuLypcclxuICogVmVydGljYWxcclxuICovXG4udWstdGV4dC10b3Age1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wICFpbXBvcnRhbnQ7IH1cblxuLnVrLXRleHQtbWlkZGxlIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50OyB9XG5cbi51ay10ZXh0LWJvdHRvbSB7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b20gIWltcG9ydGFudDsgfVxuXG4udWstdGV4dC1iYXNlbGluZSB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50OyB9XG5cbi8qIFdyYXAgbW9kaWZpZXJzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogUHJldmVudCB0ZXh0IGZyb20gd3JhcHBpbmcgb250byBtdWx0aXBsZSBsaW5lc1xyXG4gKi9cbi51ay10ZXh0LW5vd3JhcCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLypcclxuICogMS4gTWFrZSBzdXJlIGEgbWF4LXdpZHRoIGlzIHNldCBhZnRlciB3aGljaCB0cnVuY2F0aW9uIGNhbiBvY2N1clxyXG4gKiAyLiBQcmV2ZW50IHRleHQgZnJvbSB3cmFwcGluZyBvbnRvIG11bHRpcGxlIGxpbmVzLCBhbmQgdHJ1bmNhdGUgd2l0aCBhbiBlbGxpcHNpc1xyXG4gKiAzLiBGaXggZm9yIHRhYmxlIGNlbGxzXHJcbiAqL1xuLnVrLXRleHQtdHJ1bmNhdGUge1xuICAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTtcbiAgLyogMiAqL1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4vKiAyICovXG50aC51ay10ZXh0LXRydW5jYXRlLFxudGQudWstdGV4dC10cnVuY2F0ZSB7XG4gIG1heC13aWR0aDogMDsgfVxuXG4vKlxyXG4gKiAxLiBXcmFwIGxvbmcgd29yZHMgb250byB0aGUgbmV4dCBsaW5lIGFuZCBicmVhayB0aGVtIGlmIHRoZXkgYXJlIHRvbyBsb25nIHRvIGZpdFxyXG4gKiAyLiBMZWdhY3kgYHdvcmQtd3JhcGAgYXMgZmFsbGJhY2sgZm9yIGBvdmVyZmxvdy13cmFwYFxyXG4gKiAzLiBGaXggYG92ZXJmbG93LXdyYXBgIHdoaWNoIGRvZXNuJ3Qgd29yayB3aXRoIHRhYmxlIGNlbGxzIGluIENocm9tZSwgT3BlcmEsIElFMTEgYW5kIEVkZ2VcclxuICogICAgTXVzdCB1c2UgYGJyZWFrLWFsbGAgdG8gc3VwcG9ydCBJRTExIGFuZCBFZGdlXHJcbiAqIE5vdGU6IE5vdCB1c2luZyBgaHlwaGVuczogYXV0bztgIGJlY2F1c2UgaXQgaHlwaGVuYXRlcyB0ZXh0IGV2ZW4gaWYgbm90IG5lZWRlZFxyXG4gKi9cbi51ay10ZXh0LWJyZWFrIHtcbiAgLyogMSAqL1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAvKiAyICovXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDsgfVxuXG4vKiAzICovXG50aC51ay10ZXh0LWJyZWFrLFxudGQudWstdGV4dC1icmVhayB7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBDb2x1bW5cclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5bY2xhc3MqPSd1ay1jb2x1bW4tJ10ge1xuICBjb2x1bW4tZ2FwOiAzMHB4OyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICBbY2xhc3MqPSd1ay1jb2x1bW4tJ10ge1xuICAgIGNvbHVtbi1nYXA6IDQwcHg7IH0gfVxuXG4vKlxyXG4gKiBGaXggaW1hZ2UgMXB4IGxpbmUgd3JhcHBpbmcgaW50byB0aGUgbmV4dCBjb2x1bW4gaW4gQ2hyb21lXHJcbiAqL1xuW2NsYXNzKj0ndWstY29sdW1uLSddIGltZyB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7IH1cblxuLyogRGl2aWRlclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIDEuIERvdWJsZSB0aGUgY29sdW1uIGdhcFxyXG4gKi9cbi51ay1jb2x1bW4tZGl2aWRlciB7XG4gIGNvbHVtbi1ydWxlOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgLyogMSAqL1xuICBjb2x1bW4tZ2FwOiA2MHB4OyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWstY29sdW1uLWRpdmlkZXIge1xuICAgIGNvbHVtbi1nYXA6IDgwcHg7IH0gfVxuXG4vKiBXaWR0aCBtb2RpZmllcnNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstY29sdW1uLTEtMiB7XG4gIGNvbHVtbi1jb3VudDogMjsgfVxuXG4udWstY29sdW1uLTEtMyB7XG4gIGNvbHVtbi1jb3VudDogMzsgfVxuXG4udWstY29sdW1uLTEtNCB7XG4gIGNvbHVtbi1jb3VudDogNDsgfVxuXG4udWstY29sdW1uLTEtNSB7XG4gIGNvbHVtbi1jb3VudDogNTsgfVxuXG4udWstY29sdW1uLTEtNiB7XG4gIGNvbHVtbi1jb3VudDogNjsgfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC51ay1jb2x1bW4tMS0yXFxAcyB7XG4gICAgY29sdW1uLWNvdW50OiAyOyB9XG4gIC51ay1jb2x1bW4tMS0zXFxAcyB7XG4gICAgY29sdW1uLWNvdW50OiAzOyB9XG4gIC51ay1jb2x1bW4tMS00XFxAcyB7XG4gICAgY29sdW1uLWNvdW50OiA0OyB9XG4gIC51ay1jb2x1bW4tMS01XFxAcyB7XG4gICAgY29sdW1uLWNvdW50OiA1OyB9XG4gIC51ay1jb2x1bW4tMS02XFxAcyB7XG4gICAgY29sdW1uLWNvdW50OiA2OyB9IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLnVrLWNvbHVtbi0xLTJcXEBtIHtcbiAgICBjb2x1bW4tY291bnQ6IDI7IH1cbiAgLnVrLWNvbHVtbi0xLTNcXEBtIHtcbiAgICBjb2x1bW4tY291bnQ6IDM7IH1cbiAgLnVrLWNvbHVtbi0xLTRcXEBtIHtcbiAgICBjb2x1bW4tY291bnQ6IDQ7IH1cbiAgLnVrLWNvbHVtbi0xLTVcXEBtIHtcbiAgICBjb2x1bW4tY291bnQ6IDU7IH1cbiAgLnVrLWNvbHVtbi0xLTZcXEBtIHtcbiAgICBjb2x1bW4tY291bnQ6IDY7IH0gfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVrLWNvbHVtbi0xLTJcXEBsIHtcbiAgICBjb2x1bW4tY291bnQ6IDI7IH1cbiAgLnVrLWNvbHVtbi0xLTNcXEBsIHtcbiAgICBjb2x1bW4tY291bnQ6IDM7IH1cbiAgLnVrLWNvbHVtbi0xLTRcXEBsIHtcbiAgICBjb2x1bW4tY291bnQ6IDQ7IH1cbiAgLnVrLWNvbHVtbi0xLTVcXEBsIHtcbiAgICBjb2x1bW4tY291bnQ6IDU7IH1cbiAgLnVrLWNvbHVtbi0xLTZcXEBsIHtcbiAgICBjb2x1bW4tY291bnQ6IDY7IH0gfVxuXG4vKiBMYXJnZSBzY3JlZW4gYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDE2MDBweCkge1xuICAudWstY29sdW1uLTEtMlxcQHhsIHtcbiAgICBjb2x1bW4tY291bnQ6IDI7IH1cbiAgLnVrLWNvbHVtbi0xLTNcXEB4bCB7XG4gICAgY29sdW1uLWNvdW50OiAzOyB9XG4gIC51ay1jb2x1bW4tMS00XFxAeGwge1xuICAgIGNvbHVtbi1jb3VudDogNDsgfVxuICAudWstY29sdW1uLTEtNVxcQHhsIHtcbiAgICBjb2x1bW4tY291bnQ6IDU7IH1cbiAgLnVrLWNvbHVtbi0xLTZcXEB4bCB7XG4gICAgY29sdW1uLWNvdW50OiA2OyB9IH1cblxuLyogTWFrZSBlbGVtZW50IHNwYW4gYWNyb3NzIGFsbCBjb2x1bW5zXHJcbiAqIERvZXMgbm90IHdvcmsgaW4gRmlyZWZveCB5ZXRcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstY29sdW1uLXNwYW4ge1xuICBjb2x1bW4tc3BhbjogYWxsOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IEFsaWduXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogRGVmYXVsdFxyXG4gKi9cbltjbGFzcyo9J3VrLWFsaWduJ10ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuXG4qICsgW2NsYXNzKj0ndWstYWxpZ24nXSB7XG4gIG1hcmdpbi10b3A6IDMwcHg7IH1cblxuLypcclxuICogQ2VudGVyXHJcbiAqL1xuLnVrLWFsaWduLWNlbnRlciB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cblxuLypcclxuICogTGVmdC9SaWdodFxyXG4gKi9cbi51ay1hbGlnbi1sZWZ0IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xuICBmbG9hdDogbGVmdDsgfVxuXG4udWstYWxpZ24tcmlnaHQge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tbGVmdDogMzBweDtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLnVrLWFsaWduLWxlZnRcXEBzIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1yaWdodDogMzBweDtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAudWstYWxpZ24tcmlnaHRcXEBzIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgIGZsb2F0OiByaWdodDsgfSB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC51ay1hbGlnbi1sZWZ0XFxAbSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnVrLWFsaWduLXJpZ2h0XFxAbSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tbGVmdDogMzBweDtcbiAgICBmbG9hdDogcmlnaHQ7IH0gfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVrLWFsaWduLWxlZnRcXEBsIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC51ay1hbGlnbi1yaWdodFxcQGwge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC51ay1hbGlnbi1sZWZ0LFxuICAudWstYWxpZ24tbGVmdFxcQHMsXG4gIC51ay1hbGlnbi1sZWZ0XFxAbSxcbiAgLnVrLWFsaWduLWxlZnRcXEBsIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDQwcHg7IH1cbiAgLnVrLWFsaWduLXJpZ2h0LFxuICAudWstYWxpZ24tcmlnaHRcXEBzLFxuICAudWstYWxpZ24tcmlnaHRcXEBtLFxuICAudWstYWxpZ24tcmlnaHRcXEBsIHtcbiAgICBtYXJnaW4tbGVmdDogNDBweDsgfSB9XG5cbi8qIExhcmdlIHNjcmVlbiBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KSB7XG4gIC51ay1hbGlnbi1sZWZ0XFxAeGwge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiA0MHB4O1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC51ay1hbGlnbi1yaWdodFxcQHhsIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xuICAgIGZsb2F0OiByaWdodDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IFNWR1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIDEuIEZpbGwgYWxsIFNWRyBlbGVtZW50cyB3aXRoIHRoZSBjdXJyZW50IHRleHQgY29sb3IgaWYgbm8gYGZpbGxgIGF0dHJpYnV0ZSBpcyBzZXRcclxuICogMi4gU2V0IHRoZSBmaWxsIGFuZCBzdHJva2UgY29sb3Igb2YgYWxsIFNWRyBlbGVtZW50cyB0byB0aGUgY3VycmVudCB0ZXh0IGNvbG9yXHJcbiAqL1xuLyogMSAqL1xuLnVrLXN2Zyxcbi51ay1zdmc6bm90KC51ay1wcmVzZXJ2ZSkgW2ZpbGwqPScjJ106bm90KC51ay1wcmVzZXJ2ZSkge1xuICBmaWxsOiBjdXJyZW50Y29sb3I7IH1cblxuLnVrLXN2Zzpub3QoLnVrLXByZXNlcnZlKSBbc3Ryb2tlKj0nIyddOm5vdCgudWstcHJlc2VydmUpIHtcbiAgc3Ryb2tlOiBjdXJyZW50Y29sb3I7IH1cblxuLypcclxuICogRml4IEZpcmVmb3ggYmx1cnJ5IFNWRyByZW5kZXJpbmc6IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDY4MzVcclxuICovXG4udWstc3ZnIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogVXRpbGl0eVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIFBhbmVsXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXBhbmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi8qXHJcbiAqIE1pY3JvIGNsZWFyZml4XHJcbiAqL1xuLnVrLXBhbmVsOjpiZWZvcmUsXG4udWstcGFuZWw6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogdGFibGU7IH1cblxuLnVrLXBhbmVsOjphZnRlciB7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi8qXHJcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxyXG4gKi9cbi51ay1wYW5lbCA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vKlxyXG4gKiBTY3JvbGxhYmxlXHJcbiAqL1xuLnVrLXBhbmVsLXNjcm9sbGFibGUge1xuICBoZWlnaHQ6IDE3MHB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICBvdmVyZmxvdzogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICByZXNpemU6IGJvdGg7IH1cblxuLyogQ2xlYXJmaXhcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiAxLiBgdGFibGUtY2VsbGAgaXMgdXNlZCB3aXRoIGA6OmJlZm9yZWAgYmVjYXVzZSBgdGFibGVgIGNyZWF0ZXMgYSAxcHggZ2FwIHdoZW4gaXQgYmVjb21lcyBhIGZsZXggaXRlbSwgb25seSBpbiBXZWJraXRcclxuICogMi4gYHRhYmxlYCBpcyB1c2VkIGFnYWluIHdpdGggYDo6YWZ0ZXJgIGJlY2F1c2UgYGNsZWFyYCBvbmx5IHdvcmtzIHdpdGggYmxvY2sgZWxlbWVudHMuXHJcbiAqIE5vdGU6IGBkaXNwbGF5OiBibG9ja2Agd2l0aCBgb3ZlcmZsb3c6IGhpZGRlbmAgaXMgY3VycmVudGx5IG5vdCB3b3JraW5nIGluIHRoZSBsYXRlc3QgU2FmYXJpXHJcbiAqL1xuLyogMSAqL1xuLnVrLWNsZWFyZml4OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsOyB9XG5cbi8qIDIgKi9cbi51ay1jbGVhcmZpeDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLyogRmxvYXRcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiAxLiBQcmV2ZW50IGNvbnRlbnQgb3ZlcmZsb3dcclxuICovXG4udWstZmxvYXQtbGVmdCB7XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbi51ay1mbG9hdC1yaWdodCB7XG4gIGZsb2F0OiByaWdodDsgfVxuXG4vKiAxICovXG5bY2xhc3MqPSd1ay1mbG9hdC0nXSB7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG4vKiBPdmVyZm93XHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW92ZXJmbG93LWhpZGRlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLypcclxuICogRW5hYmxlIHNjcm9sbGJhcnMgaWYgY29udGVudCBpcyBjbGlwcGVkXHJcbiAqIE5vdGU6IEZpcmVmb3ggaWdub3JlcyBgcGFkZGluZy1ib3R0b21gIGZvciB0aGUgc2Nyb2xsYWJsZSBvdmVyZmxvdyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD03NDg1MThcclxuICovXG4udWstb3ZlcmZsb3ctYXV0byB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7IH1cblxuLnVrLW92ZXJmbG93LWF1dG8gPiA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLyogUmVzaXplXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXJlc2l6ZSB7XG4gIHJlc2l6ZTogYm90aDsgfVxuXG4udWstcmVzaXplLXZlcnRpY2FsIHtcbiAgcmVzaXplOiB2ZXJ0aWNhbDsgfVxuXG4vKiBEaXNwbGF5XHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWRpc3BsYXktYmxvY2sge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG5cbi51ay1kaXNwbGF5LWlubGluZSB7XG4gIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyB9XG5cbi51ay1kaXNwbGF5LWlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50OyB9XG5cbi8qIElubGluZVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIDEuIENvbnRhaW5lciBmaXRzIGl0cyBjb250ZW50XHJcbiAqIDIuIENyZWF0ZSBwb3NpdGlvbiBjb250ZXh0XHJcbiAqIDMuIFByZXZlbnQgY29udGVudCBvdmVyZmxvd1xyXG4gKiA0LiBCZWhhdmUgbGlrZSBtb3N0IGlubGluZS1ibG9jayBlbGVtZW50c1xyXG4gKiA1LiBGb3JjZSBoYXJkd2FyZSBhY2NlbGVyYXRpb24gd2l0aG91dCBjcmVhdGluZyBhIG5ldyBzdGFja2luZyBjb250ZXh0XHJcbiAqICAgIHRvIGZpeCAxcHggZ2xpdGNoIHdoZW4gY29tYmluZWQgd2l0aCBvdmVybGF5cyBhbmQgdHJhbnNpdGlvbnMgaW4gV2Via2l0XHJcbiAqIDYuIENsaXAgY2hpbGQgZWxlbWVudHNcclxuICovXG5bY2xhc3MqPSd1ay1pbmxpbmUnXSB7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvKiAyICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLyogMyAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDQgKi9cbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgLyogNSAqL1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4udWstaW5saW5lLWNsaXAge1xuICAvKiA2ICovXG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogUmVzcG9uc2l2ZSBvYmplY3RzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogUHJlc2VydmUgb3JpZ2luYWwgZGltZW5zaW9uc1xyXG4gKiBCZWNhdXNlIGBpbWcsIGB2aWRlb2AsIGBjYW52YXNgIGFuZCAgYGF1ZGlvYCBhcmUgYWxyZWFkeSByZXNwb25zaXZlIGJ5IGRlZmF1bHQsIHNlZSBCYXNlIGNvbXBvbmVudFxyXG4gKi9cbi51ay1wcmVzZXJ2ZS13aWR0aCxcbi51ay1wcmVzZXJ2ZS13aWR0aCBjYW52YXMsXG4udWstcHJlc2VydmUtd2lkdGggaW1nLFxuLnVrLXByZXNlcnZlLXdpZHRoIHN2Zyxcbi51ay1wcmVzZXJ2ZS13aWR0aCB2aWRlbyB7XG4gIG1heC13aWR0aDogbm9uZTsgfVxuXG4vKlxyXG4gKiBSZXNwb25zaXZlbmVzc1xyXG4gKiBDb3JyZWN0cyBgbWF4LXdpZHRoYCBhbmQgYG1heC1oZWlnaHRgIGJlaGF2aW9yIGlmIHBhZGRpbmcgYW5kIGJvcmRlciBhcmUgdXNlZFxyXG4gKi9cbi51ay1yZXNwb25zaXZlLXdpZHRoLFxuLnVrLXJlc3BvbnNpdmUtaGVpZ2h0IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4vKlxyXG4gKiAxLiBTZXQgYSBtYXhpbXVtIHdpZHRoLiBgaW1wb3J0YW50YCBuZWVkZWQgdG8gb3ZlcnJpZGUgYHVrLXByZXNlcnZlLXdpZHRoIGltZ2BcclxuICogMi4gQXV0byBzY2FsZSB0aGUgaGVpZ2h0LiBPbmx5IG5lZWRlZCBpZiBgaGVpZ2h0YCBhdHRyaWJ1dGUgaXMgcHJlc2VudFxyXG4gKi9cbi51ay1yZXNwb25zaXZlLXdpZHRoIHtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgLyogMiAqL1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLypcclxuICogMS4gU2V0IGEgbWF4aW11bSBoZWlnaHQuIE9ubHkgd29ya3MgaWYgdGhlIHBhcmVudCBlbGVtZW50IGhhcyBhIGZpeGVkIGhlaWdodFxyXG4gKiAyLiBBdXRvIHNjYWxlIHRoZSB3aWR0aC4gT25seSBuZWVkZWQgaWYgYHdpZHRoYCBhdHRyaWJ1dGUgaXMgcHJlc2VudFxyXG4gKiAzLiBSZXNldCBtYXgtd2lkdGgsIHdoaWNoIGBpbWcsIGB2aWRlb2AsIGBjYW52YXNgIGFuZCAgYGF1ZGlvYCBhbHJlYWR5IGhhdmUgYnkgZGVmYXVsdFxyXG4gKi9cbi51ay1yZXNwb25zaXZlLWhlaWdodCB7XG4gIC8qIDEgKi9cbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgLyogMiAqL1xuICB3aWR0aDogYXV0bztcbiAgLyogMyAqL1xuICBtYXgtd2lkdGg6IG5vbmU7IH1cblxuLyogQm9yZGVyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWJvcmRlci1jaXJjbGUge1xuICBib3JkZXItcmFkaXVzOiA1MCU7IH1cblxuLnVrLWJvcmRlci1waWxsIHtcbiAgYm9yZGVyLXJhZGl1czogNTAwcHg7IH1cblxuLnVrLWJvcmRlci1yb3VuZGVkIHtcbiAgYm9yZGVyLXJhZGl1czogNXB4OyB9XG5cbi8qXHJcbiAqIEZpeCBgb3ZlcmZsb3c6IGhpZGRlbmAgdG8gYmUgaWdub3JlZCB3aXRoIGJvcmRlci1yYWRpdXMgYW5kIENTUyB0cmFuc2Zvcm1zIGluIFdlYmtpdFxyXG4gKi9cbi51ay1pbmxpbmUtY2xpcFtjbGFzcyo9J3VrLWJvcmRlci0nXSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApOyB9XG5cbi8qIEJveC1zaGFkb3dcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstYm94LXNoYWRvdy1zbWFsbCB7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMDgpOyB9XG5cbi51ay1ib3gtc2hhZG93LW1lZGl1bSB7XG4gIGJveC1zaGFkb3c6IDAgNXB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjA4KTsgfVxuXG4udWstYm94LXNoYWRvdy1sYXJnZSB7XG4gIGJveC1zaGFkb3c6IDAgMTRweCAyNXB4IHJnYmEoMCwgMCwgMCwgMC4xNik7IH1cblxuLnVrLWJveC1zaGFkb3cteGxhcmdlIHtcbiAgYm94LXNoYWRvdzogMCAyOHB4IDUwcHggcmdiYSgwLCAwLCAwLCAwLjE2KTsgfVxuXG4vKlxyXG4gKiBIb3ZlclxyXG4gKi9cbltjbGFzcyo9J3VrLWJveC1zaGFkb3ctaG92ZXInXSB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4xcyBlYXNlLWluLW91dDsgfVxuXG4udWstYm94LXNoYWRvdy1ob3Zlci1zbWFsbDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMDgpOyB9XG5cbi51ay1ib3gtc2hhZG93LWhvdmVyLW1lZGl1bTpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgNXB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjA4KTsgfVxuXG4udWstYm94LXNoYWRvdy1ob3Zlci1sYXJnZTpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgMTRweCAyNXB4IHJnYmEoMCwgMCwgMCwgMC4xNik7IH1cblxuLnVrLWJveC1zaGFkb3ctaG92ZXIteGxhcmdlOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMCAyOHB4IDUwcHggcmdiYSgwLCAwLCAwLCAwLjE2KTsgfVxuXG4vKiBCb3gtc2hhZG93IGJvdHRvbVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIDEuIFNldCBwb3NpdGlvbi5cclxuICogMi4gU2V0IHN0eWxlXHJcbiAqIDMuIEJsdXIgZG9lc24ndCB3b3JrIG9uIHBzZXVkbyBlbGVtZW50cyB3aXRoIG5lZ2F0aXZlIGB6LWluZGV4YCBpbiBFZGdlLlxyXG4gKiAgICBTb2x2ZWQgYnkgdXNpbmcgYGJlZm9yZWAgYW5kIGFkZCBwb3NpdGlvbiBjb250ZXh0IHRvIGNoaWxkIGVsZW1lbnRzLlxyXG4gKi9cbkBzdXBwb3J0cyAoZmlsdGVyOiBibHVyKDApKSB7XG4gIC51ay1ib3gtc2hhZG93LWJvdHRvbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAudWstYm94LXNoYWRvdy1ib3R0b206OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgLyogMSAqL1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IC0zMHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgLyogMiAqL1xuICAgIGhlaWdodDogMzBweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICM0NDQ7XG4gICAgZmlsdGVyOiBibHVyKDIwcHgpOyB9XG4gIC8qIDMgKi9cbiAgLnVrLWJveC1zaGFkb3ctYm90dG9tID4gKiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9IH1cblxuLyogRHJvcCBjYXBcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiAxLiBGaXJlZm94IGRvZXNuJ3QgYXBwbHkgYDo6Zmlyc3QtbGV0dGVyYCBpZiB0aGUgZmlyc3QgbGV0dGVyIGlzIGluc2lkZSBjaGlsZCBlbGVtZW50c1xyXG4gKiAgICBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQwMDRcclxuICogMi4gSW4gRmlyZWZveCwgYSBmbG9hdGluZyBgOjpmaXJzdC1sZXR0ZXJgIGRvZXNuJ3QgaGF2ZSBhIGxpbmUgYm94IGFuZCB0aGVyZSBmb3Igbm8gYGxpbmUtaGVpZ2h0YFxyXG4gKiAgICBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTc5MzNcclxuICogMy4gQ2F1c2VkIGJ5IDEuOiBFZGdlIGNyZWF0ZXMgdHdvIG5lc3RlZCBgOjpmaXJzdC1sZXR0ZXJgIGNvbnRhaW5lcnMsIG9uZSBmb3IgZWFjaCBzZWxlY3RvclxyXG4gKiAgICBUaGlzIGRvdWJsZXMgdGhlIGBmb250LXNpemVgIGV4cG9uZW50aWFsIHdoZW4gdXNpbmcgdGhlIGBlbWAgdW5pdC5cclxuICovXG4udWstZHJvcGNhcDo6Zmlyc3QtbGV0dGVyLFxuLnVrLWRyb3BjYXAgPiBwOmZpcnN0LW9mLXR5cGU6OmZpcnN0LWxldHRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIGZsb2F0OiBsZWZ0O1xuICBmb250LXNpemU6IDQuNWVtO1xuICBsaW5lLWhlaWdodDogMTsgfVxuXG4vKiAyICovXG5ALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCkge1xuICAudWstZHJvcGNhcDo6Zmlyc3QtbGV0dGVyLFxuICAudWstZHJvcGNhcCA+IHA6Zmlyc3Qtb2YtdHlwZTo6Zmlyc3QtbGV0dGVyIHtcbiAgICBtYXJnaW4tdG9wOiAxLjElOyB9IH1cblxuLyogMyAqL1xuQHN1cHBvcnRzICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gIC51ay1kcm9wY2FwID4gcDpmaXJzdC1vZi10eXBlOjpmaXJzdC1sZXR0ZXIge1xuICAgIGZvbnQtc2l6ZTogMWVtOyB9IH1cblxuLyogTG9nb1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIDEuIFJlcXVpcmVkIGZvciBgYWBcclxuICovXG4udWstbG9nbyB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBBcmlhbCwgXCJOb3RvIFNhbnNcIiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICBjb2xvcjogIzY2NjtcbiAgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLyogSG92ZXIgKyBGb2N1cyAqL1xuLnVrLWxvZ286aG92ZXIsXG4udWstbG9nbzpmb2N1cyB7XG4gIGNvbG9yOiAjNjY2O1xuICBvdXRsaW5lOiBub25lO1xuICAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4udWstbG9nby1pbnZlcnNlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBEaXNhYmxlZCBTdGF0ZVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1kaXNhYmxlZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi8qIERyYWcgU3RhdGVcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiAxLiBOZWVkZWQgaWYgbW92aW5nIG92ZXIgZWxlbWVudHMgd2l0aCBoYXZlIHRoZWlyIG93biBjdXJzb3Igb24gaG92ZXIsIGUuZy4gbGlua3Mgb3IgYnV0dG9uc1xyXG4gKiAyLiBGaXggZHJhZ2dpbmcgb3ZlciBpZnJhbWVzXHJcbiAqL1xuLnVrLWRyYWcsXG4udWstZHJhZyAqIHtcbiAgY3Vyc29yOiBtb3ZlOyB9XG5cbi8qIDIgKi9cbi51ay1kcmFnIGlmcmFtZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi8qIERyYWdvdmVyIFN0YXRlXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogQ3JlYXRlIGEgYm94LXNoYWRvdyB3aGVuIGRyYWdnaW5nIGEgZmlsZSBvdmVyIHRoZSB1cGxvYWQgYXJlYVxyXG4gKi9cbi51ay1kcmFnb3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IHJnYmEoMTAwLCAxMDAsIDEwMCwgMC4zKTsgfVxuXG4vKiBCbGVuZCBtb2Rlc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1ibGVuZC1tdWx0aXBseSB7XG4gIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTsgfVxuXG4udWstYmxlbmQtc2NyZWVuIHtcbiAgbWl4LWJsZW5kLW1vZGU6IHNjcmVlbjsgfVxuXG4udWstYmxlbmQtb3ZlcmxheSB7XG4gIG1peC1ibGVuZC1tb2RlOiBvdmVybGF5OyB9XG5cbi51ay1ibGVuZC1kYXJrZW4ge1xuICBtaXgtYmxlbmQtbW9kZTogZGFya2VuOyB9XG5cbi51ay1ibGVuZC1saWdodGVuIHtcbiAgbWl4LWJsZW5kLW1vZGU6IGxpZ2h0ZW47IH1cblxuLnVrLWJsZW5kLWNvbG9yLWRvZGdlIHtcbiAgbWl4LWJsZW5kLW1vZGU6IGNvbG9yLWRvZGdlOyB9XG5cbi51ay1ibGVuZC1jb2xvci1idXJuIHtcbiAgbWl4LWJsZW5kLW1vZGU6IGNvbG9yLWJ1cm47IH1cblxuLnVrLWJsZW5kLWhhcmQtbGlnaHQge1xuICBtaXgtYmxlbmQtbW9kZTogaGFyZC1saWdodDsgfVxuXG4udWstYmxlbmQtc29mdC1saWdodCB7XG4gIG1peC1ibGVuZC1tb2RlOiBzb2Z0LWxpZ2h0OyB9XG5cbi51ay1ibGVuZC1kaWZmZXJlbmNlIHtcbiAgbWl4LWJsZW5kLW1vZGU6IGRpZmZlcmVuY2U7IH1cblxuLnVrLWJsZW5kLWV4Y2x1c2lvbiB7XG4gIG1peC1ibGVuZC1tb2RlOiBleGNsdXNpb247IH1cblxuLnVrLWJsZW5kLWh1ZSB7XG4gIG1peC1ibGVuZC1tb2RlOiBodWU7IH1cblxuLnVrLWJsZW5kLXNhdHVyYXRpb24ge1xuICBtaXgtYmxlbmQtbW9kZTogc2F0dXJhdGlvbjsgfVxuXG4udWstYmxlbmQtY29sb3Ige1xuICBtaXgtYmxlbmQtbW9kZTogY29sb3I7IH1cblxuLnVrLWJsZW5kLWx1bWlub3NpdHkge1xuICBtaXgtYmxlbmQtbW9kZTogbHVtaW5vc2l0eTsgfVxuXG4vKiBUcmFuc2Zvcm1cclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay10cmFuc2Zvcm0tY2VudGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IH1cblxuLyogVHJhbnNmb3JtIE9yaWdpblxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXRyYW5zZm9ybS1vcmlnaW4tdG9wLWxlZnQge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7IH1cblxuLnVrLXRyYW5zZm9ybS1vcmlnaW4tdG9wLWNlbnRlciB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAwOyB9XG5cbi51ay10cmFuc2Zvcm0tb3JpZ2luLXRvcC1yaWdodCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDsgfVxuXG4udWstdHJhbnNmb3JtLW9yaWdpbi1jZW50ZXItbGVmdCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgNTAlOyB9XG5cbi51ay10cmFuc2Zvcm0tb3JpZ2luLWNlbnRlci1yaWdodCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgNTAlOyB9XG5cbi51ay10cmFuc2Zvcm0tb3JpZ2luLWJvdHRvbS1sZWZ0IHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCAxMDAlOyB9XG5cbi51ay10cmFuc2Zvcm0tb3JpZ2luLWJvdHRvbS1jZW50ZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMTAwJTsgfVxuXG4udWstdHJhbnNmb3JtLW9yaWdpbi1ib3R0b20tcmlnaHQge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogRmxleFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1mbGV4IHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4udWstZmxleC1pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfVxuXG4vKlxyXG4gKiBSZW1vdmUgcHNldWRvIGVsZW1lbnRzIGNyZWF0ZWQgYnkgbWljcm8gY2xlYXJmaXggYXMgcHJlY2F1dGlvblxyXG4gKi9cbi51ay1mbGV4OjpiZWZvcmUsXG4udWstZmxleDo6YWZ0ZXIsXG4udWstZmxleC1pbmxpbmU6OmJlZm9yZSxcbi51ay1mbGV4LWlubGluZTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIEFsaWdubWVudFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIEFsaWduIGl0ZW1zIGFsb25nIHRoZSBtYWluIGF4aXMgb2YgdGhlIGN1cnJlbnQgbGluZSBvZiB0aGUgZmxleCBjb250YWluZXJcclxuICogUm93OiBIb3Jpem9udGFsXHJcbiAqL1xuLnVrLWZsZXgtbGVmdCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuXG4udWstZmxleC1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4udWstZmxleC1yaWdodCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cblxuLnVrLWZsZXgtYmV0d2VlbiB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuXG4udWstZmxleC1hcm91bmQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC51ay1mbGV4LWxlZnRcXEBzIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLnVrLWZsZXgtY2VudGVyXFxAcyB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLnVrLWZsZXgtcmlnaHRcXEBzIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gIC51ay1mbGV4LWJldHdlZW5cXEBzIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgLnVrLWZsZXgtYXJvdW5kXFxAcyB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH0gfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAudWstZmxleC1sZWZ0XFxAbSB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gIC51ay1mbGV4LWNlbnRlclxcQG0ge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC51ay1mbGV4LXJpZ2h0XFxAbSB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAudWstZmxleC1iZXR3ZWVuXFxAbSB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gIC51ay1mbGV4LWFyb3VuZFxcQG0ge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay1mbGV4LWxlZnRcXEBsIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLnVrLWZsZXgtY2VudGVyXFxAbCB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLnVrLWZsZXgtcmlnaHRcXEBsIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gIC51ay1mbGV4LWJldHdlZW5cXEBsIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgLnVrLWZsZXgtYXJvdW5kXFxAbCB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH0gfVxuXG4vKiBMYXJnZSBzY3JlZW4gYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDE2MDBweCkge1xuICAudWstZmxleC1sZWZ0XFxAeGwge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAudWstZmxleC1jZW50ZXJcXEB4bCB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLnVrLWZsZXgtcmlnaHRcXEB4bCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAudWstZmxleC1iZXR3ZWVuXFxAeGwge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAudWstZmxleC1hcm91bmRcXEB4bCB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH0gfVxuXG4vKlxyXG4gKiBBbGlnbiBpdGVtcyBpbiB0aGUgY3Jvc3MgYXhpcyBvZiB0aGUgY3VycmVudCBsaW5lIG9mIHRoZSBmbGV4IGNvbnRhaW5lclxyXG4gKiBSb3c6IFZlcnRpY2FsXHJcbiAqL1xuLnVrLWZsZXgtc3RyZXRjaCB7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG5cbi51ay1mbGV4LXRvcCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi51ay1mbGV4LW1pZGRsZSB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuLnVrLWZsZXgtYm90dG9tIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG5cbi8qIERpcmVjdGlvblxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1mbGV4LXJvdyB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cblxuLnVrLWZsZXgtcm93LXJldmVyc2Uge1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cblxuLnVrLWZsZXgtY29sdW1uIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuXG4udWstZmxleC1jb2x1bW4tcmV2ZXJzZSB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfVxuXG4vKiBXcmFwXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWZsZXgtbm93cmFwIHtcbiAgZmxleC13cmFwOiBub3dyYXA7IH1cblxuLnVrLWZsZXgtd3JhcCB7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuXG4udWstZmxleC13cmFwLXJldmVyc2Uge1xuICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTsgfVxuXG4vKlxyXG4gKiBBbGlnbnMgaXRlbXMgd2l0aGluIHRoZSBmbGV4IGNvbnRhaW5lciB3aGVuIHRoZXJlIGlzIGV4dHJhIHNwYWNlIGluIHRoZSBjcm9zcy1heGlzXHJcbiAqIE9ubHkgd29ya3MgaWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBsaW5lIG9mIGZsZXggaXRlbXNcclxuICovXG4udWstZmxleC13cmFwLXN0cmV0Y2gge1xuICBhbGlnbi1jb250ZW50OiBzdHJldGNoOyB9XG5cbi51ay1mbGV4LXdyYXAtdG9wIHtcbiAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDsgfVxuXG4udWstZmxleC13cmFwLW1pZGRsZSB7XG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4udWstZmxleC13cmFwLWJvdHRvbSB7XG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG5cbi51ay1mbGV4LXdyYXAtYmV0d2VlbiB7XG4gIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cblxuLnVrLWZsZXgtd3JhcC1hcm91bmQge1xuICBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cblxuLyogSXRlbSBvcmRlcmluZ1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIERlZmF1bHQgaXMgMFxyXG4gKi9cbi51ay1mbGV4LWZpcnN0IHtcbiAgb3JkZXI6IC0xOyB9XG5cbi51ay1mbGV4LWxhc3Qge1xuICBvcmRlcjogOTk7IH1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAudWstZmxleC1maXJzdFxcQHMge1xuICAgIG9yZGVyOiAtMTsgfVxuICAudWstZmxleC1sYXN0XFxAcyB7XG4gICAgb3JkZXI6IDk5OyB9IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLnVrLWZsZXgtZmlyc3RcXEBtIHtcbiAgICBvcmRlcjogLTE7IH1cbiAgLnVrLWZsZXgtbGFzdFxcQG0ge1xuICAgIG9yZGVyOiA5OTsgfSB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWstZmxleC1maXJzdFxcQGwge1xuICAgIG9yZGVyOiAtMTsgfVxuICAudWstZmxleC1sYXN0XFxAbCB7XG4gICAgb3JkZXI6IDk5OyB9IH1cblxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxNjAwcHgpIHtcbiAgLnVrLWZsZXgtZmlyc3RcXEB4bCB7XG4gICAgb3JkZXI6IC0xOyB9XG4gIC51ay1mbGV4LWxhc3RcXEB4bCB7XG4gICAgb3JkZXI6IDk5OyB9IH1cblxuLyogSXRlbSBkaW1lbnNpb25zXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogSW5pdGlhbDogMCAxIGF1dG9cclxuICogQ29udGVudCBkaW1lbnNpb25zLCBidXQgc2hyaW5rc1xyXG4gKi9cbi8qXHJcbiAqIE5vIEZsZXg6IDAgMCBhdXRvXHJcbiAqIENvbnRlbnQgZGltZW5zaW9uc1xyXG4gKi9cbi51ay1mbGV4LW5vbmUge1xuICBmbGV4OiBub25lOyB9XG5cbi8qXHJcbiAqIFJlbGF0aXZlIEZsZXg6IDEgMSBhdXRvXHJcbiAqIFNwYWNlIGlzIGFsbG9jYXRlZCBjb25zaWRlcmluZyBjb250ZW50XHJcbiAqL1xuLnVrLWZsZXgtYXV0byB7XG4gIGZsZXg6IGF1dG87IH1cblxuLypcclxuICogQWJzb2x1dGUgRmxleDogMSAxIDAlXHJcbiAqIFNwYWNlIGlzIGFsbG9jYXRlZCBzb2xlbHkgYmFzZWQgb24gZmxleFxyXG4gKi9cbi51ay1mbGV4LTEge1xuICBmbGV4OiAxOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IE1hcmdpblxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXHJcbiAqIERlZmF1bHRcclxuICovXG4udWstbWFyZ2luIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG4qICsgLnVrLW1hcmdpbiB7XG4gIG1hcmdpbi10b3A6IDIwcHggIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLXRvcCB7XG4gIG1hcmdpbi10b3A6IDIwcHggIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLWJvdHRvbSB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHggIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLWxlZnQge1xuICBtYXJnaW4tbGVmdDogMjBweCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tcmlnaHQge1xuICBtYXJnaW4tcmlnaHQ6IDIwcHggIWltcG9ydGFudDsgfVxuXG4vKiBTbWFsbFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1tYXJnaW4tc21hbGwge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbiogKyAudWstbWFyZ2luLXNtYWxsIHtcbiAgbWFyZ2luLXRvcDogMTBweCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tc21hbGwtdG9wIHtcbiAgbWFyZ2luLXRvcDogMTBweCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tc21hbGwtYm90dG9tIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tc21hbGwtbGVmdCB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4ICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1zbWFsbC1yaWdodCB7XG4gIG1hcmdpbi1yaWdodDogMTBweCAhaW1wb3J0YW50OyB9XG5cbi8qIE1lZGl1bVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1tYXJnaW4tbWVkaXVtIHtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDsgfVxuXG4qICsgLnVrLW1hcmdpbi1tZWRpdW0ge1xuICBtYXJnaW4tdG9wOiA0MHB4ICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1tZWRpdW0tdG9wIHtcbiAgbWFyZ2luLXRvcDogNDBweCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tbWVkaXVtLWJvdHRvbSB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHggIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLW1lZGl1bS1sZWZ0IHtcbiAgbWFyZ2luLWxlZnQ6IDQwcHggIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLW1lZGl1bS1yaWdodCB7XG4gIG1hcmdpbi1yaWdodDogNDBweCAhaW1wb3J0YW50OyB9XG5cbi8qIExhcmdlXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW1hcmdpbi1sYXJnZSB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7IH1cblxuKiArIC51ay1tYXJnaW4tbGFyZ2Uge1xuICBtYXJnaW4tdG9wOiA0MHB4ICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1sYXJnZS10b3Age1xuICBtYXJnaW4tdG9wOiA0MHB4ICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1sYXJnZS1ib3R0b20ge1xuICBtYXJnaW4tYm90dG9tOiA0MHB4ICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1sYXJnZS1sZWZ0IHtcbiAgbWFyZ2luLWxlZnQ6IDQwcHggIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLWxhcmdlLXJpZ2h0IHtcbiAgbWFyZ2luLXJpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay1tYXJnaW4tbGFyZ2Uge1xuICAgIG1hcmdpbi1ib3R0b206IDcwcHg7IH1cbiAgKiArIC51ay1tYXJnaW4tbGFyZ2Uge1xuICAgIG1hcmdpbi10b3A6IDcwcHggIWltcG9ydGFudDsgfVxuICAudWstbWFyZ2luLWxhcmdlLXRvcCB7XG4gICAgbWFyZ2luLXRvcDogNzBweCAhaW1wb3J0YW50OyB9XG4gIC51ay1tYXJnaW4tbGFyZ2UtYm90dG9tIHtcbiAgICBtYXJnaW4tYm90dG9tOiA3MHB4ICFpbXBvcnRhbnQ7IH1cbiAgLnVrLW1hcmdpbi1sYXJnZS1sZWZ0IHtcbiAgICBtYXJnaW4tbGVmdDogNzBweCAhaW1wb3J0YW50OyB9XG4gIC51ay1tYXJnaW4tbGFyZ2UtcmlnaHQge1xuICAgIG1hcmdpbi1yaWdodDogNzBweCAhaW1wb3J0YW50OyB9IH1cblxuLyogWExhcmdlXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLW1hcmdpbi14bGFyZ2Uge1xuICBtYXJnaW4tYm90dG9tOiA3MHB4OyB9XG5cbiogKyAudWstbWFyZ2luLXhsYXJnZSB7XG4gIG1hcmdpbi10b3A6IDcwcHggIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLXhsYXJnZS10b3Age1xuICBtYXJnaW4tdG9wOiA3MHB4ICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi14bGFyZ2UtYm90dG9tIHtcbiAgbWFyZ2luLWJvdHRvbTogNzBweCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4teGxhcmdlLWxlZnQge1xuICBtYXJnaW4tbGVmdDogNzBweCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4teGxhcmdlLXJpZ2h0IHtcbiAgbWFyZ2luLXJpZ2h0OiA3MHB4ICFpbXBvcnRhbnQ7IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay1tYXJnaW4teGxhcmdlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNDBweDsgfVxuICAqICsgLnVrLW1hcmdpbi14bGFyZ2Uge1xuICAgIG1hcmdpbi10b3A6IDE0MHB4ICFpbXBvcnRhbnQ7IH1cbiAgLnVrLW1hcmdpbi14bGFyZ2UtdG9wIHtcbiAgICBtYXJnaW4tdG9wOiAxNDBweCAhaW1wb3J0YW50OyB9XG4gIC51ay1tYXJnaW4teGxhcmdlLWJvdHRvbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTQwcHggIWltcG9ydGFudDsgfVxuICAudWstbWFyZ2luLXhsYXJnZS1sZWZ0IHtcbiAgICBtYXJnaW4tbGVmdDogMTQwcHggIWltcG9ydGFudDsgfVxuICAudWstbWFyZ2luLXhsYXJnZS1yaWdodCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNDBweCAhaW1wb3J0YW50OyB9IH1cblxuLyogQXV0b1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1tYXJnaW4tYXV0byB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tYXV0by10b3Age1xuICBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1hdXRvLWJvdHRvbSB7XG4gIG1hcmdpbi1ib3R0b206IGF1dG8gIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLWF1dG8tbGVmdCB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1hdXRvLXJpZ2h0IHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1hdXRvLXZlcnRpY2FsIHtcbiAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7IH1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAudWstbWFyZ2luLWF1dG9cXEBzIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OyB9XG4gIC51ay1tYXJnaW4tYXV0by1sZWZ0XFxAcyB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsgfVxuICAudWstbWFyZ2luLWF1dG8tcmlnaHRcXEBzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsgfSB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC51ay1tYXJnaW4tYXV0b1xcQG0ge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgLnVrLW1hcmdpbi1hdXRvLWxlZnRcXEBtIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50OyB9XG4gIC51ay1tYXJnaW4tYXV0by1yaWdodFxcQG0ge1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OyB9IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay1tYXJnaW4tYXV0b1xcQGwge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgLnVrLW1hcmdpbi1hdXRvLWxlZnRcXEBsIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50OyB9XG4gIC51ay1tYXJnaW4tYXV0by1yaWdodFxcQGwge1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OyB9IH1cblxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxNjAwcHgpIHtcbiAgLnVrLW1hcmdpbi1hdXRvXFxAeGwge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgLnVrLW1hcmdpbi1hdXRvLWxlZnRcXEB4bCB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsgfVxuICAudWstbWFyZ2luLWF1dG8tcmlnaHRcXEB4bCB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBSZW1vdmVcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstbWFyZ2luLXJlbW92ZSB7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tcmVtb3ZlLXRvcCB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLXJlbW92ZS1ib3R0b20ge1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1yZW1vdmUtbGVmdCB7XG4gIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1yZW1vdmUtcmlnaHQge1xuICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLXJlbW92ZS12ZXJ0aWNhbCB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tcmVtb3ZlLWFkamFjZW50ICsgKixcbi51ay1tYXJnaW4tcmVtb3ZlLWZpcnN0LWNoaWxkID4gOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tcmVtb3ZlLWxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsgfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC51ay1tYXJnaW4tcmVtb3ZlLWxlZnRcXEBzIHtcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OyB9XG4gIC51ay1tYXJnaW4tcmVtb3ZlLXJpZ2h0XFxAcyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAudWstbWFyZ2luLXJlbW92ZS1sZWZ0XFxAbSB7XG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxuICAudWstbWFyZ2luLXJlbW92ZS1yaWdodFxcQG0ge1xuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50OyB9IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay1tYXJnaW4tcmVtb3ZlLWxlZnRcXEBsIHtcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OyB9XG4gIC51ay1tYXJnaW4tcmVtb3ZlLXJpZ2h0XFxAbCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBMYXJnZSBzY3JlZW4gYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDE2MDBweCkge1xuICAudWstbWFyZ2luLXJlbW92ZS1sZWZ0XFxAeGwge1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cbiAgLnVrLW1hcmdpbi1yZW1vdmUtcmlnaHRcXEB4bCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBQYWRkaW5nXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXBhZGRpbmcge1xuICBwYWRkaW5nOiAzMHB4OyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWstcGFkZGluZyB7XG4gICAgcGFkZGluZzogNDBweDsgfSB9XG5cbi8qIFNtYWxsXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXBhZGRpbmctc21hbGwge1xuICBwYWRkaW5nOiAxNXB4OyB9XG5cbi8qIExhcmdlXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXBhZGRpbmctbGFyZ2Uge1xuICBwYWRkaW5nOiAzMHB4OyB9XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWstcGFkZGluZy1sYXJnZSB7XG4gICAgcGFkZGluZzogNzBweDsgfSB9XG5cbi8qIFJlbW92ZVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1wYWRkaW5nLXJlbW92ZSB7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDsgfVxuXG4udWstcGFkZGluZy1yZW1vdmUtdG9wIHtcbiAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDsgfVxuXG4udWstcGFkZGluZy1yZW1vdmUtYm90dG9tIHtcbiAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDsgfVxuXG4udWstcGFkZGluZy1yZW1vdmUtbGVmdCB7XG4gIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyB9XG5cbi51ay1wYWRkaW5nLXJlbW92ZS1yaWdodCB7XG4gIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxuXG4udWstcGFkZGluZy1yZW1vdmUtdmVydGljYWwge1xuICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG5cbi51ay1wYWRkaW5nLXJlbW92ZS1ob3Jpem9udGFsIHtcbiAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBQb3NpdGlvblxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIERpcmVjdGlvbnNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5bY2xhc3MqPSd1ay1wb3NpdGlvbi10b3AnXSxcbltjbGFzcyo9J3VrLXBvc2l0aW9uLWJvdHRvbSddLFxuW2NsYXNzKj0ndWstcG9zaXRpb24tbGVmdCddLFxuW2NsYXNzKj0ndWstcG9zaXRpb24tcmlnaHQnXSxcbltjbGFzcyo9J3VrLXBvc2l0aW9uLWNlbnRlciddIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7IH1cblxuLyogRWRnZXNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBEb24ndCB1c2UgYHdpZHRoOiAxMDAlYCBiZWNhdXNlIGl0IGlzIHdyb25nIGlmIHRoZSBwYXJlbnQgaGFzIHBhZGRpbmcuICovXG4udWstcG9zaXRpb24tdG9wIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDsgfVxuXG4udWstcG9zaXRpb24tYm90dG9tIHtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDsgfVxuXG4udWstcG9zaXRpb24tbGVmdCB7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwOyB9XG5cbi51ay1wb3NpdGlvbi1yaWdodCB7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDsgfVxuXG4vKiBDb3JuZXJzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXBvc2l0aW9uLXRvcC1sZWZ0IHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwOyB9XG5cbi51ay1wb3NpdGlvbi10b3AtcmlnaHQge1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwOyB9XG5cbi51ay1wb3NpdGlvbi1ib3R0b20tbGVmdCB7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDsgfVxuXG4udWstcG9zaXRpb24tYm90dG9tLXJpZ2h0IHtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDsgfVxuXG4vKlxyXG4gKiBDZW50ZXJcclxuICogMS4gRml4IHRleHQgd3JhcHBpbmcgaWYgY29udGVudCBpcyBsYXJnZXIgdGhhbiA1MCUgb2YgdGhlIGNvbnRhaW5lci5cclxuICovXG4udWstcG9zaXRpb24tY2VudGVyIHtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIC8qIDEgKi9cbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLyogVmVydGljYWwgKi9cbltjbGFzcyo9J3VrLXBvc2l0aW9uLWNlbnRlci1sZWZ0J10sXG5bY2xhc3MqPSd1ay1wb3NpdGlvbi1jZW50ZXItcmlnaHQnXSB7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cblxuLnVrLXBvc2l0aW9uLWNlbnRlci1sZWZ0IHtcbiAgbGVmdDogMDsgfVxuXG4udWstcG9zaXRpb24tY2VudGVyLXJpZ2h0IHtcbiAgcmlnaHQ6IDA7IH1cblxuLnVrLXBvc2l0aW9uLWNlbnRlci1sZWZ0LW91dCB7XG4gIHJpZ2h0OiAxMDAlO1xuICB3aWR0aDogbWF4LWNvbnRlbnQ7IH1cblxuLnVrLXBvc2l0aW9uLWNlbnRlci1yaWdodC1vdXQge1xuICBsZWZ0OiAxMDAlO1xuICB3aWR0aDogbWF4LWNvbnRlbnQ7IH1cblxuLyogSG9yaXpvbnRhbCAqL1xuLnVrLXBvc2l0aW9uLXRvcC1jZW50ZXIsXG4udWstcG9zaXRpb24tYm90dG9tLWNlbnRlciB7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAvKiAxICovXG4gIHdpZHRoOiBtYXgtY29udGVudDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi51ay1wb3NpdGlvbi10b3AtY2VudGVyIHtcbiAgdG9wOiAwOyB9XG5cbi51ay1wb3NpdGlvbi1ib3R0b20tY2VudGVyIHtcbiAgYm90dG9tOiAwOyB9XG5cbi8qIENvdmVyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLXBvc2l0aW9uLWNvdmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7IH1cblxuLyogVXRpbGl0eVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay1wb3NpdGlvbi1yZWxhdGl2ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50OyB9XG5cbi51ay1wb3NpdGlvbi1hYnNvbHV0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OyB9XG5cbi51ay1wb3NpdGlvbi1maXhlZCB7XG4gIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50OyB9XG5cbi51ay1wb3NpdGlvbi16LWluZGV4IHtcbiAgei1pbmRleDogMTsgfVxuXG4vKiBNYXJnaW4gbW9kaWZpZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiBTbWFsbFxyXG4gKi9cbi51ay1wb3NpdGlvbi1zbWFsbCB7XG4gIG1heC13aWR0aDogY2FsYygxMDAlIC0gKDE1cHggKiAyKSk7XG4gIG1hcmdpbjogMTVweDsgfVxuXG4udWstcG9zaXRpb24tc21hbGwudWstcG9zaXRpb24tY2VudGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgdHJhbnNsYXRlKC0xNXB4LCAtMTVweCk7IH1cblxuLnVrLXBvc2l0aW9uLXNtYWxsW2NsYXNzKj0ndWstcG9zaXRpb24tY2VudGVyLWxlZnQnXSxcbi51ay1wb3NpdGlvbi1zbWFsbFtjbGFzcyo9J3VrLXBvc2l0aW9uLWNlbnRlci1yaWdodCddIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVkoLTE1cHgpOyB9XG5cbi51ay1wb3NpdGlvbi1zbWFsbC51ay1wb3NpdGlvbi10b3AtY2VudGVyLFxuLnVrLXBvc2l0aW9uLXNtYWxsLnVrLXBvc2l0aW9uLWJvdHRvbS1jZW50ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWCgtMTVweCk7IH1cblxuLypcclxuICogTWVkaXVtXHJcbiAqL1xuLnVrLXBvc2l0aW9uLW1lZGl1bSB7XG4gIG1heC13aWR0aDogY2FsYygxMDAlIC0gKDMwcHggKiAyKSk7XG4gIG1hcmdpbjogMzBweDsgfVxuXG4udWstcG9zaXRpb24tbWVkaXVtLnVrLXBvc2l0aW9uLWNlbnRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHRyYW5zbGF0ZSgtMzBweCwgLTMwcHgpOyB9XG5cbi51ay1wb3NpdGlvbi1tZWRpdW1bY2xhc3MqPSd1ay1wb3NpdGlvbi1jZW50ZXItbGVmdCddLFxuLnVrLXBvc2l0aW9uLW1lZGl1bVtjbGFzcyo9J3VrLXBvc2l0aW9uLWNlbnRlci1yaWdodCddIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVkoLTMwcHgpOyB9XG5cbi51ay1wb3NpdGlvbi1tZWRpdW0udWstcG9zaXRpb24tdG9wLWNlbnRlcixcbi51ay1wb3NpdGlvbi1tZWRpdW0udWstcG9zaXRpb24tYm90dG9tLWNlbnRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVYKC0zMHB4KTsgfVxuXG4vKlxyXG4gKiBMYXJnZVxyXG4gKi9cbi51ay1wb3NpdGlvbi1sYXJnZSB7XG4gIG1heC13aWR0aDogY2FsYygxMDAlIC0gKDMwcHggKiAyKSk7XG4gIG1hcmdpbjogMzBweDsgfVxuXG4udWstcG9zaXRpb24tbGFyZ2UudWstcG9zaXRpb24tY2VudGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgdHJhbnNsYXRlKC0zMHB4LCAtMzBweCk7IH1cblxuLnVrLXBvc2l0aW9uLWxhcmdlW2NsYXNzKj0ndWstcG9zaXRpb24tY2VudGVyLWxlZnQnXSxcbi51ay1wb3NpdGlvbi1sYXJnZVtjbGFzcyo9J3VrLXBvc2l0aW9uLWNlbnRlci1yaWdodCddIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVkoLTMwcHgpOyB9XG5cbi51ay1wb3NpdGlvbi1sYXJnZS51ay1wb3NpdGlvbi10b3AtY2VudGVyLFxuLnVrLXBvc2l0aW9uLWxhcmdlLnVrLXBvc2l0aW9uLWJvdHRvbS1jZW50ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWCgtMzBweCk7IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay1wb3NpdGlvbi1sYXJnZSB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAoNTBweCAqIDIpKTtcbiAgICBtYXJnaW46IDUwcHg7IH1cbiAgLnVrLXBvc2l0aW9uLWxhcmdlLnVrLXBvc2l0aW9uLWNlbnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgdHJhbnNsYXRlKC01MHB4LCAtNTBweCk7IH1cbiAgLnVrLXBvc2l0aW9uLWxhcmdlW2NsYXNzKj0ndWstcG9zaXRpb24tY2VudGVyLWxlZnQnXSxcbiAgLnVrLXBvc2l0aW9uLWxhcmdlW2NsYXNzKj0ndWstcG9zaXRpb24tY2VudGVyLXJpZ2h0J10ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVZKC01MHB4KTsgfVxuICAudWstcG9zaXRpb24tbGFyZ2UudWstcG9zaXRpb24tdG9wLWNlbnRlcixcbiAgLnVrLXBvc2l0aW9uLWxhcmdlLnVrLXBvc2l0aW9uLWJvdHRvbS1jZW50ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVYKC01MHB4KTsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IFRyYW5zaXRpb25cclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBUb2dnbGUgKEhvdmVyICsgRm9jdXMpXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogMS4gUHJldmVudCB0YWIgaGlnaGxpZ2h0aW5nIG9uIGlPUy5cclxuICovXG4udWstdHJhbnNpdGlvbi10b2dnbGUge1xuICAvKiAxICovXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLypcclxuICogUmVtb3ZlIG91dGxpbmUgZm9yIGB0YWJpbmRleGBcclxuICovXG4udWstdHJhbnNpdGlvbi10b2dnbGU6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi8qIFRyYW5zaXRpb25zXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogVGhlIHRvZ2dsZSBpcyB0cmlnZ2VyZWQgb24gdG91Y2ggZGV2aWNlcyBieSB0d28gbWV0aG9kczpcclxuICogMS4gVXNpbmcgYDpmb2N1c2AgYW5kIHRhYmluZGV4XHJcbiAqIDIuIFVzaW5nIGA6aG92ZXJgIGFuZCBhIGB0b3VjaHN0YXJ0YCBldmVudCBsaXN0ZW5lciByZWdpc3RlcmVkIG9uIHRoZSBkb2N1bWVudFxyXG4gKiAgICAoRG9lc24ndCB3b3JrIG9uIFN1cmZhY2UgdG91Y2ggZGV2aWNlcylcclxuICpcclxuICogTm90ZTogVHJhbnNpdGlvbnMgZG9uJ3Qgd29yayB3aXRoIGB1ay1wb3N0aW9uLWNlbnRlci0qYCBjbGFzc2VzIGJlY2F1c2UgdGhleSBhbHNvIHVzZSBgdHJhbnNmb3JtYCxcclxuICogICAgICAgdGhlcmVmb3JlIGl0J3MgcmVjb21tZW5kZWQgdG8gdXNlIGFuIGV4dHJhIGBkaXZgIGZvciB0aGUgdHJhbnNpdGlvbi5cclxuICovXG4udWstdHJhbnNpdGlvbi1mYWRlLFxuW2NsYXNzKj0ndWstdHJhbnNpdGlvbi1zY2FsZSddLFxuW2NsYXNzKj0ndWstdHJhbnNpdGlvbi1zbGlkZSddIHtcbiAgdHJhbnNpdGlvbjogMC4zcyBlYXNlLW91dDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgdHJhbnNmb3JtLCBmaWx0ZXI7XG4gIG9wYWNpdHk6IDA7IH1cblxuLypcclxuICogRmFkZVxyXG4gKi9cbi51ay10cmFuc2l0aW9uLXRvZ2dsZTpob3ZlciAudWstdHJhbnNpdGlvbi1mYWRlLFxuLnVrLXRyYW5zaXRpb24tdG9nZ2xlOmZvY3VzIC51ay10cmFuc2l0aW9uLWZhZGUsXG4udWstdHJhbnNpdGlvbi1hY3RpdmUudWstYWN0aXZlIC51ay10cmFuc2l0aW9uLWZhZGUge1xuICBvcGFjaXR5OiAxOyB9XG5cbi8qXHJcbiAqIFNjYWxlXHJcbiAqL1xuLnVrLXRyYW5zaXRpb24tc2NhbGUtdXAge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpOyB9XG5cbi51ay10cmFuc2l0aW9uLXNjYWxlLWRvd24ge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMSwgMS4xKTsgfVxuXG4vKiBTaG93ICovXG4udWstdHJhbnNpdGlvbi10b2dnbGU6aG92ZXIgLnVrLXRyYW5zaXRpb24tc2NhbGUtdXAsXG4udWstdHJhbnNpdGlvbi10b2dnbGU6Zm9jdXMgLnVrLXRyYW5zaXRpb24tc2NhbGUtdXAsXG4udWstdHJhbnNpdGlvbi1hY3RpdmUudWstYWN0aXZlIC51ay10cmFuc2l0aW9uLXNjYWxlLXVwIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjEsIDEuMSk7IH1cblxuLnVrLXRyYW5zaXRpb24tdG9nZ2xlOmhvdmVyIC51ay10cmFuc2l0aW9uLXNjYWxlLWRvd24sXG4udWstdHJhbnNpdGlvbi10b2dnbGU6Zm9jdXMgLnVrLXRyYW5zaXRpb24tc2NhbGUtZG93bixcbi51ay10cmFuc2l0aW9uLWFjdGl2ZS51ay1hY3RpdmUgLnVrLXRyYW5zaXRpb24tc2NhbGUtZG93biB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7IH1cblxuLypcclxuICogU2xpZGVcclxuICovXG4udWstdHJhbnNpdGlvbi1zbGlkZS10b3Age1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpOyB9XG5cbi51ay10cmFuc2l0aW9uLXNsaWRlLWJvdHRvbSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTsgfVxuXG4udWstdHJhbnNpdGlvbi1zbGlkZS1sZWZ0IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgfVxuXG4udWstdHJhbnNpdGlvbi1zbGlkZS1yaWdodCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuXG4udWstdHJhbnNpdGlvbi1zbGlkZS10b3Atc21hbGwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpOyB9XG5cbi51ay10cmFuc2l0aW9uLXNsaWRlLWJvdHRvbS1zbWFsbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTsgfVxuXG4udWstdHJhbnNpdGlvbi1zbGlkZS1sZWZ0LXNtYWxsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMHB4KTsgfVxuXG4udWstdHJhbnNpdGlvbi1zbGlkZS1yaWdodC1zbWFsbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTsgfVxuXG4udWstdHJhbnNpdGlvbi1zbGlkZS10b3AtbWVkaXVtIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MHB4KTsgfVxuXG4udWstdHJhbnNpdGlvbi1zbGlkZS1ib3R0b20tbWVkaXVtIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwcHgpOyB9XG5cbi51ay10cmFuc2l0aW9uLXNsaWRlLWxlZnQtbWVkaXVtIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MHB4KTsgfVxuXG4udWstdHJhbnNpdGlvbi1zbGlkZS1yaWdodC1tZWRpdW0ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTBweCk7IH1cblxuLyogU2hvdyAqL1xuLnVrLXRyYW5zaXRpb24tdG9nZ2xlOmhvdmVyIFtjbGFzcyo9J3VrLXRyYW5zaXRpb24tc2xpZGUnXSxcbi51ay10cmFuc2l0aW9uLXRvZ2dsZTpmb2N1cyBbY2xhc3MqPSd1ay10cmFuc2l0aW9uLXNsaWRlJ10sXG4udWstdHJhbnNpdGlvbi1hY3RpdmUudWstYWN0aXZlIFtjbGFzcyo9J3VrLXRyYW5zaXRpb24tc2xpZGUnXSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG5cbi8qIE9wYWNpdHkgbW9kaWZpZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udWstdHJhbnNpdGlvbi1vcGFxdWUge1xuICBvcGFjaXR5OiAxOyB9XG5cbi8qIER1cmF0aW9uIG1vZGlmaWVyc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51ay10cmFuc2l0aW9uLXNsb3cge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjdzOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IFZpc2liaWxpdHlcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiBIaWRkZW5cclxuICogYGhpZGRlbmAgYXR0cmlidXRlIGFsc28gc2V0IGhlcmUgdG8gbWFrZSBpdCBzdHJvbmdlclxyXG4gKi9cbltoaWRkZW5dLFxuLnVrLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC51ay1oaWRkZW5cXEBzIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAudWstaGlkZGVuXFxAbSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51ay1oaWRkZW5cXEBsIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBMYXJnZSBzY3JlZW4gYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDE2MDBweCkge1xuICAudWstaGlkZGVuXFxAeGwge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi8qXHJcbiAqIFZpc2libGVcclxuICovXG4vKiBQaG9uZSBwb3J0cmFpdCBhbmQgc21hbGxlciAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDYzOXB4KSB7XG4gIC51ay12aXNpYmxlXFxAcyB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBzbWFsbGVyICovXG5AbWVkaWEgKG1heC13aWR0aDogOTU5cHgpIHtcbiAgLnVrLXZpc2libGVcXEBtIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBzbWFsbGVyICovXG5AbWVkaWEgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC51ay12aXNpYmxlXFxAbCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLyogRGVza3RvcCBhbmQgc21hbGxlciAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDE1OTlweCkge1xuICAudWstdmlzaWJsZVxcQHhsIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBWaXNpYmlsaXR5XHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVrLWludmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50OyB9XG5cbi8qIFRvZ2dsZSAoSG92ZXIgKyBGb2N1cylcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiBIaWRkZW5cclxuICogMS4gVGhlIHRvZ2dsZSBpcyB0cmlnZ2VyZWQgb24gdG91Y2ggZGV2aWNlcyB1c2luZyBgOmZvY3VzYCBhbmQgdGFiaW5kZXhcclxuICogMi4gVGhlIHRhcmdldCBzdGF5cyB2aXNpYmxlIGlmIGFueSBlbGVtZW50IHdpdGhpbiByZWNlaXZlcyBmb2N1cyB0aHJvdWdoIGtleWJvYXJkXHJcbiAqICAgIERvZXNuJ3Qgd29yayBpbiBFZGdlLCB5ZXQuXHJcbiAqIDMuIENhbid0IHVzZSBgZGlzcGxheTogbm9uZWAgbm9yIGB2aXNpYmlsaXR5OiBoaWRkZW5gIGJlY2F1c2UgYm90aCBhcmUgbm90IGZvY3VzYWJsZS5cclxuICpcclxuICovXG4vKiAxICsgMiAqL1xuLnVrLXZpc2libGUtdG9nZ2xlOm5vdCg6aG92ZXIpOm5vdCg6Zm9jdXMpIC51ay1oaWRkZW4taG92ZXI6bm90KDpmb2N1cy13aXRoaW4pIHtcbiAgLyogMyAqL1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDAgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDsgfVxuXG4vKlxyXG4gKiBJbnZpc2libGVcclxuICovXG4vKiAxICsgMiAqL1xuLnVrLXZpc2libGUtdG9nZ2xlOm5vdCg6aG92ZXIpOm5vdCg6Zm9jdXMpIC51ay1pbnZpc2libGUtaG92ZXI6bm90KDpmb2N1cy13aXRoaW4pIHtcbiAgLyogMyAqL1xuICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7IH1cblxuLypcclxuICogMS4gUHJldmVudCB0YWIgaGlnaGxpZ2h0aW5nIG9uIGlPUy5cclxuICovXG4udWstdmlzaWJsZS10b2dnbGUge1xuICAvKiAxICovXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLypcclxuICogUmVtb3ZlIG91dGxpbmUgZm9yIGB0YWJpbmRleGBcclxuICovXG4udWstdmlzaWJsZS10b2dnbGU6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi8qIFRvdWNoXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcclxuICogSGlkZSBpZiBwcmltYXJ5IHBvaW50aW5nIGRldmljZSBoYXMgbGltaXRlZCBhY2N1cmFjeSwgZS5nLiBhIHRvdWNoIHNjcmVlbi5cclxuICogV29ya3Mgb24gbW9iaWxlIGJyb3dzZXJzOiBTYWZhcmksIENocm9tZSBhbmQgQW5kcm9pZCBicm93c2VyXHJcbiAqL1xuQG1lZGlhIChwb2ludGVyOiBjb2Fyc2UpIHtcbiAgLnVrLWhpZGRlbi10b3VjaCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLypcclxuICogSGlkZSBpZiBwcmltYXJ5IHBvaW50aW5nIGRldmljZSBpcyBhY2N1cmF0ZSwgZS5nLiBtb3VzZS5cclxuICogMS4gRmFsbGJhY2sgZm9yIElFMTEgYW5kIEZpcmVmb3gsIGJlY2F1c2UgYHBvaW50ZXJgIGlzIG5vdCBzdXBwb3J0ZWRcclxuICogMi4gUmVzZXQgaWYgc3VwcG9ydGVkXHJcbiAqL1xuLyogMSAqL1xuLnVrLWhpZGRlbi1ub3RvdWNoIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbkBtZWRpYSAocG9pbnRlcjogY29hcnNlKSB7XG4gIC51ay1oaWRkZW4tbm90b3VjaCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IEludmVyc2VcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxyXG4gKiBJbXBsZW1lbnRlZCBjbGFzcyBkZXBlbmRzIG9uIHRoZSBnZW5lcmFsIHRoZW1lIGNvbG9yXHJcbiAqIGB1ay1saWdodGAgaXMgZm9yIGxpZ2h0IGNvbG9ycyBvbiBkYXJrIGJhY2tncm91bmRzXHJcbiAqIGB1ay1kYXJrYCBpcyBvciBkYXJrIGNvbG9ycyBvbiBsaWdodCBiYWNrZ3JvdW5kc1xyXG4gKi9cbiIsIiRnbG9iYWwtbWFyZ2luOiAyMHB4ICFkZWZhdWx0O1xyXG4kYWNjb3JkaW9uLWl0ZW0tbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRnbG9iYWwtbWVkaXVtLWZvbnQtc2l6ZTogMS4yNXJlbSAhZGVmYXVsdDtcclxuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6ICRnbG9iYWwtbWVkaXVtLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJGFjY29yZGlvbi10aXRsZS1saW5lLWhlaWdodDogMS40ICFkZWZhdWx0O1xyXG4kZ2xvYmFsLWVtcGhhc2lzLWNvbG9yOiAjMzMzICFkZWZhdWx0O1xyXG4kYWNjb3JkaW9uLXRpdGxlLWNvbG9yOiAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kZ2xvYmFsLWNvbG9yOiAjNjY2ICFkZWZhdWx0O1xyXG4kYWNjb3JkaW9uLXRpdGxlLWhvdmVyLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kYWNjb3JkaW9uLWNvbnRlbnQtbWFyZ2luLXRvcDogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRnbG9iYWwtaW52ZXJzZS1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcclxuJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yOiAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWFjY29yZGlvbi10aXRsZS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1nbG9iYWwtY29sb3I6IHJnYmEoJGdsb2JhbC1pbnZlcnNlLWNvbG9yLCAwLjcpICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1hY2NvcmRpb24tdGl0bGUtaG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGFsZXJ0LW1hcmdpbi12ZXJ0aWNhbDogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRnbG9iYWwtc21hbGwtZ3V0dGVyOiAxNXB4ICFkZWZhdWx0O1xyXG4kYWxlcnQtcGFkZGluZzogJGdsb2JhbC1zbWFsbC1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRhbGVydC1wYWRkaW5nLXJpZ2h0OiAkYWxlcnQtcGFkZGluZyArIDE0cHggIWRlZmF1bHQ7XHJcbiRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZDogI2Y4ZjhmOCAhZGVmYXVsdDtcclxuJGFsZXJ0LWJhY2tncm91bmQ6ICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGFsZXJ0LWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kYWxlcnQtY2xvc2UtdG9wOiAkYWxlcnQtcGFkZGluZyArIDVweCAhZGVmYXVsdDtcclxuJGFsZXJ0LWNsb3NlLXJpZ2h0OiAkYWxlcnQtcGFkZGluZyAhZGVmYXVsdDtcclxuJGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQ6ICMxZTg3ZjAgIWRlZmF1bHQ7XHJcbiRhbGVydC1wcmltYXJ5LWJhY2tncm91bmQ6IGxpZ2h0ZW4obWl4KHdoaXRlLCAkZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCwgNDAlKSwgMjAlKSAhZGVmYXVsdDtcclxuJGFsZXJ0LXByaW1hcnktY29sb3I6ICRnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kZ2xvYmFsLXN1Y2Nlc3MtYmFja2dyb3VuZDogIzMyZDI5NiAhZGVmYXVsdDtcclxuJGFsZXJ0LXN1Y2Nlc3MtYmFja2dyb3VuZDogbGlnaHRlbihtaXgod2hpdGUsICRnbG9iYWwtc3VjY2Vzcy1iYWNrZ3JvdW5kLCA0MCUpLCAyNSUpICFkZWZhdWx0O1xyXG4kYWxlcnQtc3VjY2Vzcy1jb2xvcjogJGdsb2JhbC1zdWNjZXNzLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRnbG9iYWwtd2FybmluZy1iYWNrZ3JvdW5kOiAjZmFhMDVhICFkZWZhdWx0O1xyXG4kYWxlcnQtd2FybmluZy1iYWNrZ3JvdW5kOiBsaWdodGVuKG1peCh3aGl0ZSwgJGdsb2JhbC13YXJuaW5nLWJhY2tncm91bmQsIDQ1JSksIDE1JSkgIWRlZmF1bHQ7XHJcbiRhbGVydC13YXJuaW5nLWNvbG9yOiAkZ2xvYmFsLXdhcm5pbmctYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZDogI2YwNTA2ZSAhZGVmYXVsdDtcclxuJGFsZXJ0LWRhbmdlci1iYWNrZ3JvdW5kOiBsaWdodGVuKG1peCh3aGl0ZSwgJGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZCwgNDAlKSwgMjAlKSAhZGVmYXVsdDtcclxuJGFsZXJ0LWRhbmdlci1jb2xvcjogJGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGdsb2JhbC1ndXR0ZXI6IDMwcHggIWRlZmF1bHQ7XHJcbiRhbGlnbi1tYXJnaW4taG9yaXpvbnRhbDogJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRhbGlnbi1tYXJnaW4tdmVydGljYWw6ICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kZ2xvYmFsLW1lZGl1bS1ndXR0ZXI6IDQwcHggIWRlZmF1bHQ7XHJcbiRhbGlnbi1tYXJnaW4taG9yaXpvbnRhbC1sOiAkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRhbmltYXRpb24tZHVyYXRpb246IDAuNXMgIWRlZmF1bHQ7XHJcbiRhbmltYXRpb24tZmFkZS1kdXJhdGlvbjogMC44cyAhZGVmYXVsdDtcclxuJGFuaW1hdGlvbi1zdHJva2UtZHVyYXRpb246IDJzICFkZWZhdWx0O1xyXG4kYW5pbWF0aW9uLWtlbmJ1cm5zLWR1cmF0aW9uOiAxNXMgIWRlZmF1bHQ7XHJcbiRhbmltYXRpb24tZmFzdC1kdXJhdGlvbjogMC4xcyAhZGVmYXVsdDtcclxuJGFuaW1hdGlvbi1zbGlkZS1zbWFsbC10cmFuc2xhdGU6IDEwcHggIWRlZmF1bHQ7XHJcbiRhbmltYXRpb24tc2xpZGUtbWVkaXVtLXRyYW5zbGF0ZTogNTBweCAhZGVmYXVsdDtcclxuJGdsb2JhbC1sYXJnZS1tYXJnaW46IDcwcHggIWRlZmF1bHQ7XHJcbiRhcnRpY2xlLW1hcmdpbi10b3A6ICRnbG9iYWwtbGFyZ2UtbWFyZ2luICFkZWZhdWx0O1xyXG4kZ2xvYmFsLXh4bGFyZ2UtZm9udC1zaXplOiAyLjYyNXJlbSAhZGVmYXVsdDtcclxuJGFydGljbGUtdGl0bGUtZm9udC1zaXplLW06ICRnbG9iYWwteHhsYXJnZS1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiRhcnRpY2xlLXRpdGxlLWZvbnQtc2l6ZTogJGFydGljbGUtdGl0bGUtZm9udC1zaXplLW0gKiAwLjg1ICFkZWZhdWx0O1xyXG4kYXJ0aWNsZS10aXRsZS1saW5lLWhlaWdodDogMS4yICFkZWZhdWx0O1xyXG4kZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZTogMC44NzVyZW0gIWRlZmF1bHQ7XHJcbiRhcnRpY2xlLW1ldGEtZm9udC1zaXplOiAkZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJGFydGljbGUtbWV0YS1saW5lLWhlaWdodDogMS40ICFkZWZhdWx0O1xyXG4kZ2xvYmFsLW11dGVkLWNvbG9yOiAjOTk5ICFkZWZhdWx0O1xyXG4kYXJ0aWNsZS1tZXRhLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3I6IHJnYmEoJGdsb2JhbC1pbnZlcnNlLWNvbG9yLCAwLjUpICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1hcnRpY2xlLW1ldGEtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGdsb2JhbC1iYWNrZ3JvdW5kOiAjZmZmICFkZWZhdWx0O1xyXG4kYmFja2dyb3VuZC1kZWZhdWx0LWJhY2tncm91bmQ6ICRnbG9iYWwtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGJhY2tncm91bmQtbXV0ZWQtYmFja2dyb3VuZDogJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kYmFja2dyb3VuZC1wcmltYXJ5LWJhY2tncm91bmQ6ICRnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kZ2xvYmFsLXNlY29uZGFyeS1iYWNrZ3JvdW5kOiAjMjIyICFkZWZhdWx0O1xyXG4kYmFja2dyb3VuZC1zZWNvbmRhcnktYmFja2dyb3VuZDogJGdsb2JhbC1zZWNvbmRhcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGJhZGdlLXNpemU6IDIycHggIWRlZmF1bHQ7XHJcbiRiYWRnZS1wYWRkaW5nLXZlcnRpY2FsOiAwICFkZWZhdWx0O1xyXG4kYmFkZ2UtcGFkZGluZy1ob3Jpem9udGFsOiA1cHggIWRlZmF1bHQ7XHJcbiRiYWRnZS1ib3JkZXItcmFkaXVzOiA1MDBweCAhZGVmYXVsdDtcclxuJGJhZGdlLWJhY2tncm91bmQ6ICRnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kYmFkZ2UtY29sb3I6ICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJGJhZGdlLWZvbnQtc2l6ZTogJGdsb2JhbC1zbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiRiYWRnZS1ob3Zlci1jb2xvcjogJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kOiAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWJhZGdlLWJhY2tncm91bmQ6ICRpbnZlcnNlLWdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWdsb2JhbC1pbnZlcnNlLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1iYWRnZS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWJhZGdlLWhvdmVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJGJhc2UtYm9keS1iYWNrZ3JvdW5kOiAkZ2xvYmFsLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRnbG9iYWwtZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgQXJpYWwsIFwiTm90byBTYW5zXCIsIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIiAhZGVmYXVsdDtcclxuJGJhc2UtYm9keS1mb250LWZhbWlseTogJGdsb2JhbC1mb250LWZhbWlseSAhZGVmYXVsdDtcclxuJGJhc2UtYm9keS1mb250LXdlaWdodDogbm9ybWFsICFkZWZhdWx0O1xyXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcclxuJGJhc2UtYm9keS1mb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kZ2xvYmFsLWxpbmUtaGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XHJcbiRiYXNlLWJvZHktbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XHJcbiRiYXNlLWJvZHktY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRnbG9iYWwtbGluay1jb2xvcjogIzFlODdmMCAhZGVmYXVsdDtcclxuJGJhc2UtbGluay1jb2xvcjogJGdsb2JhbC1saW5rLWNvbG9yICFkZWZhdWx0O1xyXG4kYmFzZS1saW5rLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcclxuJGdsb2JhbC1saW5rLWhvdmVyLWNvbG9yOiAjMGY2ZWNkICFkZWZhdWx0O1xyXG4kYmFzZS1saW5rLWhvdmVyLWNvbG9yOiAkZ2xvYmFsLWxpbmstaG92ZXItY29sb3IgIWRlZmF1bHQ7XHJcbiRiYXNlLWxpbmstaG92ZXItdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWRlZmF1bHQ7XHJcbiRiYXNlLXN0cm9uZy1mb250LXdlaWdodDogYm9sZGVyICFkZWZhdWx0O1xyXG4kYmFzZS1jb2RlLWZvbnQtc2l6ZTogJGdsb2JhbC1zbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiRiYXNlLWNvZGUtZm9udC1mYW1pbHk6IENvbnNvbGFzLCBtb25hY28sIG1vbm9zcGFjZSAhZGVmYXVsdDtcclxuJGJhc2UtY29kZS1jb2xvcjogJGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGJhc2UtZW0tY29sb3I6ICRnbG9iYWwtZGFuZ2VyLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRiYXNlLWlucy1iYWNrZ3JvdW5kOiAjZmZkICFkZWZhdWx0O1xyXG4kYmFzZS1pbnMtY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRiYXNlLW1hcmstYmFja2dyb3VuZDogI2ZmZCAhZGVmYXVsdDtcclxuJGJhc2UtbWFyay1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGJhc2UtcXVvdGUtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xyXG4kYmFzZS1zbWFsbC1mb250LXNpemU6IDgwJSAhZGVmYXVsdDtcclxuJGJhc2UtbWFyZ2luLXZlcnRpY2FsOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcclxuJGJhc2UtaGVhZGluZy1mb250LWZhbWlseTogJGdsb2JhbC1mb250LWZhbWlseSAhZGVmYXVsdDtcclxuJGJhc2UtaGVhZGluZy1mb250LXdlaWdodDogbm9ybWFsICFkZWZhdWx0O1xyXG4kYmFzZS1oZWFkaW5nLWNvbG9yOiAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kYmFzZS1oZWFkaW5nLXRleHQtdHJhbnNmb3JtOiBub25lICFkZWZhdWx0O1xyXG4kZ2xvYmFsLW1lZGl1bS1tYXJnaW46IDQwcHggIWRlZmF1bHQ7XHJcbiRiYXNlLWhlYWRpbmctbWFyZ2luLXRvcDogJGdsb2JhbC1tZWRpdW0tbWFyZ2luICFkZWZhdWx0O1xyXG4kYmFzZS1oMS1mb250LXNpemUtbTogJGdsb2JhbC14eGxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJGJhc2UtaDEtZm9udC1zaXplOiAkYmFzZS1oMS1mb250LXNpemUtbSAqIDAuODUgIWRlZmF1bHQ7XHJcbiRiYXNlLWgxLWxpbmUtaGVpZ2h0OiAxLjIgIWRlZmF1bHQ7XHJcbiRnbG9iYWwteGxhcmdlLWZvbnQtc2l6ZTogMnJlbSAhZGVmYXVsdDtcclxuJGJhc2UtaDItZm9udC1zaXplLW06ICRnbG9iYWwteGxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJGJhc2UtaDItZm9udC1zaXplOiAkYmFzZS1oMi1mb250LXNpemUtbSAqIDAuODUgIWRlZmF1bHQ7XHJcbiRiYXNlLWgyLWxpbmUtaGVpZ2h0OiAxLjMgIWRlZmF1bHQ7XHJcbiRnbG9iYWwtbGFyZ2UtZm9udC1zaXplOiAxLjVyZW0gIWRlZmF1bHQ7XHJcbiRiYXNlLWgzLWZvbnQtc2l6ZTogJGdsb2JhbC1sYXJnZS1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiRiYXNlLWgzLWxpbmUtaGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XHJcbiRiYXNlLWg0LWZvbnQtc2l6ZTogJGdsb2JhbC1tZWRpdW0tZm9udC1zaXplICFkZWZhdWx0O1xyXG4kYmFzZS1oNC1saW5lLWhlaWdodDogMS40ICFkZWZhdWx0O1xyXG4kYmFzZS1oNS1mb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kYmFzZS1oNS1saW5lLWhlaWdodDogMS40ICFkZWZhdWx0O1xyXG4kYmFzZS1oNi1mb250LXNpemU6ICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kYmFzZS1oNi1saW5lLWhlaWdodDogMS40ICFkZWZhdWx0O1xyXG4kYmFzZS1saXN0LXBhZGRpbmctbGVmdDogMzBweCAhZGVmYXVsdDtcclxuJGJhc2UtaHItbWFyZ2luLXZlcnRpY2FsOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcclxuJGdsb2JhbC1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcclxuJGJhc2UtaHItYm9yZGVyLXdpZHRoOiAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcclxuJGdsb2JhbC1ib3JkZXI6ICNlNWU1ZTUgIWRlZmF1bHQ7XHJcbiRiYXNlLWhyLWJvcmRlcjogJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XHJcbiRiYXNlLWJsb2NrcXVvdGUtZm9udC1zaXplOiAkZ2xvYmFsLW1lZGl1bS1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiRiYXNlLWJsb2NrcXVvdGUtbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcclxuJGJhc2UtYmxvY2txdW90ZS1mb250LXN0eWxlOiBpdGFsaWMgIWRlZmF1bHQ7XHJcbiRiYXNlLWJsb2NrcXVvdGUtbWFyZ2luLXZlcnRpY2FsOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcclxuJGdsb2JhbC1zbWFsbC1tYXJnaW46IDEwcHggIWRlZmF1bHQ7XHJcbiRiYXNlLWJsb2NrcXVvdGUtZm9vdGVyLW1hcmdpbi10b3A6ICRnbG9iYWwtc21hbGwtbWFyZ2luICFkZWZhdWx0O1xyXG4kYmFzZS1ibG9ja3F1b3RlLWZvb3Rlci1mb250LXNpemU6ICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kYmFzZS1ibG9ja3F1b3RlLWZvb3Rlci1saW5lLWhlaWdodDogMS41ICFkZWZhdWx0O1xyXG4kYmFzZS1wcmUtZm9udC1zaXplOiAkZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJGJhc2UtcHJlLWxpbmUtaGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XHJcbiRiYXNlLXByZS1mb250LWZhbWlseTogJGJhc2UtY29kZS1mb250LWZhbWlseSAhZGVmYXVsdDtcclxuJGJhc2UtcHJlLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kYmFzZS1zZWxlY3Rpb24tYmFja2dyb3VuZDogIzM5ZiAhZGVmYXVsdDtcclxuJGJhc2Utc2VsZWN0aW9uLWNvbG9yOiAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWJhc2UtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtYmFzZS1saW5rLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWJhc2UtbGluay1ob3Zlci1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1iYXNlLWNvZGUtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtYmFzZS1lbS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1iYXNlLWhlYWRpbmctY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtZ2xvYmFsLWJvcmRlcjogcmdiYSgkZ2xvYmFsLWludmVyc2UtY29sb3IsIDAuMikgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWJhc2UtaHItYm9yZGVyOiAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG4kYnJlYWRjcnVtYi1pdGVtLWZvbnQtc2l6ZTogJGdsb2JhbC1zbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiRicmVhZGNydW1iLWl0ZW0tY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRicmVhZGNydW1iLWl0ZW0taG92ZXItY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRicmVhZGNydW1iLWl0ZW0taG92ZXItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xyXG4kYnJlYWRjcnVtYi1pdGVtLWFjdGl2ZS1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGJyZWFkY3J1bWItZGl2aWRlcjogXCIvXCIgIWRlZmF1bHQ7XHJcbiRicmVhZGNydW1iLWRpdmlkZXItbWFyZ2luLWhvcml6b250YWw6IDIwcHggIWRlZmF1bHQ7XHJcbiRicmVhZGNydW1iLWRpdmlkZXItY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWJyZWFkY3J1bWItaXRlbS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1icmVhZGNydW1iLWl0ZW0taG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtYnJlYWRjcnVtYi1pdGVtLWFjdGl2ZS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1icmVhZGNydW1iLWRpdmlkZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGdsb2JhbC1jb250cm9sLWhlaWdodDogNDBweCAhZGVmYXVsdDtcclxuJGJ1dHRvbi1saW5lLWhlaWdodDogJGdsb2JhbC1jb250cm9sLWhlaWdodCAhZGVmYXVsdDtcclxuJGdsb2JhbC1jb250cm9sLXNtYWxsLWhlaWdodDogMzBweCAhZGVmYXVsdDtcclxuJGJ1dHRvbi1zbWFsbC1saW5lLWhlaWdodDogJGdsb2JhbC1jb250cm9sLXNtYWxsLWhlaWdodCAhZGVmYXVsdDtcclxuJGdsb2JhbC1jb250cm9sLWxhcmdlLWhlaWdodDogNTVweCAhZGVmYXVsdDtcclxuJGJ1dHRvbi1sYXJnZS1saW5lLWhlaWdodDogJGdsb2JhbC1jb250cm9sLWxhcmdlLWhlaWdodCAhZGVmYXVsdDtcclxuJGJ1dHRvbi1mb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kYnV0dG9uLXNtYWxsLWZvbnQtc2l6ZTogJGdsb2JhbC1zbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiRidXR0b24tbGFyZ2UtZm9udC1zaXplOiAkZ2xvYmFsLW1lZGl1bS1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiRidXR0b24tcGFkZGluZy1ob3Jpem9udGFsOiAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcclxuJGJ1dHRvbi1zbWFsbC1wYWRkaW5nLWhvcml6b250YWw6ICRnbG9iYWwtc21hbGwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kYnV0dG9uLWxhcmdlLXBhZGRpbmctaG9yaXpvbnRhbDogJGdsb2JhbC1tZWRpdW0tZ3V0dGVyICFkZWZhdWx0O1xyXG4kYnV0dG9uLWRlZmF1bHQtYmFja2dyb3VuZDogJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kYnV0dG9uLWRlZmF1bHQtY29sb3I6ICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XHJcbiRidXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kOiBkYXJrZW4oJGJ1dHRvbi1kZWZhdWx0LWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcclxuJGJ1dHRvbi1kZWZhdWx0LWhvdmVyLWNvbG9yOiAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kYnV0dG9uLWRlZmF1bHQtYWN0aXZlLWJhY2tncm91bmQ6IGRhcmtlbigkYnV0dG9uLWRlZmF1bHQtYmFja2dyb3VuZCwgMTAlKSAhZGVmYXVsdDtcclxuJGJ1dHRvbi1kZWZhdWx0LWFjdGl2ZS1jb2xvcjogJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuJGJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQ6ICRnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kYnV0dG9uLXByaW1hcnktY29sb3I6ICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJGJ1dHRvbi1wcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ6IGRhcmtlbigkYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZCwgNSUpICFkZWZhdWx0O1xyXG4kYnV0dG9uLXByaW1hcnktaG92ZXItY29sb3I6ICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJGJ1dHRvbi1wcmltYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kOiBkYXJrZW4oJGJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQsIDEwJSkgIWRlZmF1bHQ7XHJcbiRidXR0b24tcHJpbWFyeS1hY3RpdmUtY29sb3I6ICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJGJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZDogJGdsb2JhbC1zZWNvbmRhcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGJ1dHRvbi1zZWNvbmRhcnktY29sb3I6ICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDogZGFya2VuKCRidXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcclxuJGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItY29sb3I6ICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJGJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWJhY2tncm91bmQ6IGRhcmtlbigkYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kLCAxMCUpICFkZWZhdWx0O1xyXG4kYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtY29sb3I6ICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJGJ1dHRvbi1kYW5nZXItYmFja2dyb3VuZDogJGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGJ1dHRvbi1kYW5nZXItY29sb3I6ICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJGJ1dHRvbi1kYW5nZXItaG92ZXItYmFja2dyb3VuZDogZGFya2VuKCRidXR0b24tZGFuZ2VyLWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcclxuJGJ1dHRvbi1kYW5nZXItaG92ZXItY29sb3I6ICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJGJ1dHRvbi1kYW5nZXItYWN0aXZlLWJhY2tncm91bmQ6IGRhcmtlbigkYnV0dG9uLWRhbmdlci1iYWNrZ3JvdW5kLCAxMCUpICFkZWZhdWx0O1xyXG4kYnV0dG9uLWRhbmdlci1hY3RpdmUtY29sb3I6ICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJGJ1dHRvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kOiAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRidXR0b24tZGlzYWJsZWQtY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRidXR0b24tdGV4dC1saW5lLWhlaWdodDogJGdsb2JhbC1saW5lLWhlaWdodCAhZGVmYXVsdDtcclxuJGJ1dHRvbi10ZXh0LWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kYnV0dG9uLXRleHQtaG92ZXItY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRidXR0b24tdGV4dC1kaXNhYmxlZC1jb2xvcjogJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGJ1dHRvbi1saW5rLWxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmUtaGVpZ2h0ICFkZWZhdWx0O1xyXG4kYnV0dG9uLWxpbmstY29sb3I6ICRnbG9iYWwtbGluay1jb2xvciAhZGVmYXVsdDtcclxuJGJ1dHRvbi1saW5rLWhvdmVyLWNvbG9yOiAkZ2xvYmFsLWxpbmstaG92ZXItY29sb3IgIWRlZmF1bHQ7XHJcbiRidXR0b24tbGluay1ob3Zlci10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhZGVmYXVsdDtcclxuJGJ1dHRvbi1saW5rLWRpc2FibGVkLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1idXR0b24tZGVmYXVsdC1iYWNrZ3JvdW5kOiAkaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1idXR0b24tZGVmYXVsdC1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQ6IGRhcmtlbigkaW52ZXJzZS1idXR0b24tZGVmYXVsdC1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtYnV0dG9uLWRlZmF1bHQtYWN0aXZlLWJhY2tncm91bmQ6IGRhcmtlbigkaW52ZXJzZS1idXR0b24tZGVmYXVsdC1iYWNrZ3JvdW5kLCAxMCUpICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1idXR0b24tZGVmYXVsdC1hY3RpdmUtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1idXR0b24tcHJpbWFyeS1iYWNrZ3JvdW5kOiAkaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1idXR0b24tcHJpbWFyeS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ6IGRhcmtlbigkaW52ZXJzZS1idXR0b24tcHJpbWFyeS1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWhvdmVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtYnV0dG9uLXByaW1hcnktYWN0aXZlLWJhY2tncm91bmQ6IGRhcmtlbigkaW52ZXJzZS1idXR0b24tcHJpbWFyeS1iYWNrZ3JvdW5kLCAxMCUpICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1idXR0b24tcHJpbWFyeS1hY3RpdmUtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQ6ICRpbnZlcnNlLWdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ6IGRhcmtlbigkaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcclxuJGludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWJhY2tncm91bmQ6IGRhcmtlbigkaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQsIDEwJSkgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtYnV0dG9uLXRleHQtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtYnV0dG9uLXRleHQtaG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtYnV0dG9uLXRleHQtZGlzYWJsZWQtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtYnV0dG9uLWxpbmstY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtYnV0dG9uLWxpbmstaG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGNhcmQtYm9keS1wYWRkaW5nLWhvcml6b250YWw6ICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kY2FyZC1ib2R5LXBhZGRpbmctdmVydGljYWw6ICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kY2FyZC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbC1sOiAkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRjYXJkLWJvZHktcGFkZGluZy12ZXJ0aWNhbC1sOiAkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRjYXJkLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWw6ICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kY2FyZC1oZWFkZXItcGFkZGluZy12ZXJ0aWNhbDogcm91bmQoJGdsb2JhbC1ndXR0ZXIgLyAyKSAhZGVmYXVsdDtcclxuJGNhcmQtaGVhZGVyLXBhZGRpbmctaG9yaXpvbnRhbC1sOiAkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRjYXJkLWhlYWRlci1wYWRkaW5nLXZlcnRpY2FsLWw6IHJvdW5kKCRnbG9iYWwtbWVkaXVtLWd1dHRlciAvIDIpICFkZWZhdWx0O1xyXG4kY2FyZC1mb290ZXItcGFkZGluZy1ob3Jpem9udGFsOiAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcclxuJGNhcmQtZm9vdGVyLXBhZGRpbmctdmVydGljYWw6ICgkZ2xvYmFsLWd1dHRlciAvIDIpICFkZWZhdWx0O1xyXG4kY2FyZC1mb290ZXItcGFkZGluZy1ob3Jpem9udGFsLWw6ICRnbG9iYWwtbWVkaXVtLWd1dHRlciAhZGVmYXVsdDtcclxuJGNhcmQtZm9vdGVyLXBhZGRpbmctdmVydGljYWwtbDogcm91bmQoJGdsb2JhbC1tZWRpdW0tZ3V0dGVyIC8gMikgIWRlZmF1bHQ7XHJcbiRjYXJkLXRpdGxlLWZvbnQtc2l6ZTogJGdsb2JhbC1sYXJnZS1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiRjYXJkLXRpdGxlLWxpbmUtaGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XHJcbiRjYXJkLWJhZGdlLXRvcDogJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRjYXJkLWJhZGdlLXJpZ2h0OiAkY2FyZC1iYWRnZS10b3AgIWRlZmF1bHQ7XHJcbiRjYXJkLWhvdmVyLWJhY2tncm91bmQ6ICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGNhcmQtZGVmYXVsdC1iYWNrZ3JvdW5kOiAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRjYXJkLWRlZmF1bHQtY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRjYXJkLWRlZmF1bHQtdGl0bGUtY29sb3I6ICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XHJcbiRjYXJkLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZDogZGFya2VuKCRjYXJkLWRlZmF1bHQtYmFja2dyb3VuZCwgNSUpICFkZWZhdWx0O1xyXG4kY2FyZC1wcmltYXJ5LWJhY2tncm91bmQ6ICRnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kY2FyZC1wcmltYXJ5LWNvbG9yOiAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XHJcbiRjYXJkLXByaW1hcnktdGl0bGUtY29sb3I6ICRjYXJkLXByaW1hcnktY29sb3IgIWRlZmF1bHQ7XHJcbiRjYXJkLXByaW1hcnktaG92ZXItYmFja2dyb3VuZDogZGFya2VuKCRjYXJkLXByaW1hcnktYmFja2dyb3VuZCwgNSUpICFkZWZhdWx0O1xyXG4kY2FyZC1wcmltYXJ5LWNvbG9yLW1vZGU6IGxpZ2h0ICFkZWZhdWx0O1xyXG4kY2FyZC1zZWNvbmRhcnktYmFja2dyb3VuZDogJGdsb2JhbC1zZWNvbmRhcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGNhcmQtc2Vjb25kYXJ5LWNvbG9yOiAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XHJcbiRjYXJkLXNlY29uZGFyeS10aXRsZS1jb2xvcjogJGNhcmQtc2Vjb25kYXJ5LWNvbG9yICFkZWZhdWx0O1xyXG4kY2FyZC1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDogZGFya2VuKCRjYXJkLXNlY29uZGFyeS1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XHJcbiRjYXJkLXNlY29uZGFyeS1jb2xvci1tb2RlOiBsaWdodCAhZGVmYXVsdDtcclxuJGNhcmQtc21hbGwtYm9keS1wYWRkaW5nLWhvcml6b250YWw6ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xyXG4kY2FyZC1zbWFsbC1ib2R5LXBhZGRpbmctdmVydGljYWw6ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xyXG4kY2FyZC1zbWFsbC1oZWFkZXItcGFkZGluZy1ob3Jpem9udGFsOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcclxuJGNhcmQtc21hbGwtaGVhZGVyLXBhZGRpbmctdmVydGljYWw6IHJvdW5kKCRnbG9iYWwtbWFyZ2luIC8gMS41KSAhZGVmYXVsdDtcclxuJGNhcmQtc21hbGwtZm9vdGVyLXBhZGRpbmctaG9yaXpvbnRhbDogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRjYXJkLXNtYWxsLWZvb3Rlci1wYWRkaW5nLXZlcnRpY2FsOiByb3VuZCgkZ2xvYmFsLW1hcmdpbiAvIDEuNSkgIWRlZmF1bHQ7XHJcbiRnbG9iYWwtbGFyZ2UtZ3V0dGVyOiA3MHB4ICFkZWZhdWx0O1xyXG4kY2FyZC1sYXJnZS1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbC1sOiAkZ2xvYmFsLWxhcmdlLWd1dHRlciAhZGVmYXVsdDtcclxuJGNhcmQtbGFyZ2UtYm9keS1wYWRkaW5nLXZlcnRpY2FsLWw6ICRnbG9iYWwtbGFyZ2UtZ3V0dGVyICFkZWZhdWx0O1xyXG4kY2FyZC1sYXJnZS1oZWFkZXItcGFkZGluZy1ob3Jpem9udGFsLWw6ICRnbG9iYWwtbGFyZ2UtZ3V0dGVyICFkZWZhdWx0O1xyXG4kY2FyZC1sYXJnZS1oZWFkZXItcGFkZGluZy12ZXJ0aWNhbC1sOiByb3VuZCgkZ2xvYmFsLWxhcmdlLWd1dHRlciAvIDIpICFkZWZhdWx0O1xyXG4kY2FyZC1sYXJnZS1mb290ZXItcGFkZGluZy1ob3Jpem9udGFsLWw6ICRnbG9iYWwtbGFyZ2UtZ3V0dGVyICFkZWZhdWx0O1xyXG4kY2FyZC1sYXJnZS1mb290ZXItcGFkZGluZy12ZXJ0aWNhbC1sOiByb3VuZCgkZ2xvYmFsLWxhcmdlLWd1dHRlciAvIDIpICFkZWZhdWx0O1xyXG4kY2xvc2UtY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRjbG9zZS1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtY2xvc2UtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtY2xvc2UtaG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGNvbHVtbi1ndXR0ZXI6ICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kY29sdW1uLWd1dHRlci1sOiAkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRjb2x1bW4tZGl2aWRlci1ydWxlLWNvbG9yOiAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcclxuJGNvbHVtbi1kaXZpZGVyLXJ1bGUtd2lkdGg6IDFweCAhZGVmYXVsdDtcclxuJGludmVyc2UtY29sdW1uLWRpdmlkZXItcnVsZS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcclxuJGNvbW1lbnQtaGVhZGVyLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xyXG4kY29tbWVudC10aXRsZS1mb250LXNpemU6ICRnbG9iYWwtbWVkaXVtLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJGNvbW1lbnQtdGl0bGUtbGluZS1oZWlnaHQ6IDEuNCAhZGVmYXVsdDtcclxuJGNvbW1lbnQtbWV0YS1mb250LXNpemU6ICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kY29tbWVudC1tZXRhLWxpbmUtaGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XHJcbiRjb21tZW50LW1ldGEtY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRjb21tZW50LWxpc3QtbWFyZ2luLXRvcDogJGdsb2JhbC1sYXJnZS1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRjb21tZW50LWxpc3QtcGFkZGluZy1sZWZ0OiAzMHB4ICFkZWZhdWx0O1xyXG4kY29tbWVudC1saXN0LXBhZGRpbmctbGVmdC1tOiAxMDBweCAhZGVmYXVsdDtcclxuJGNvbnRhaW5lci1tYXgtd2lkdGg6IDEyMDBweCAhZGVmYXVsdDtcclxuJGNvbnRhaW5lci14c21hbGwtbWF4LXdpZHRoOiA3NTBweCAhZGVmYXVsdDtcclxuJGNvbnRhaW5lci1zbWFsbC1tYXgtd2lkdGg6IDkwMHB4ICFkZWZhdWx0O1xyXG4kY29udGFpbmVyLWxhcmdlLW1heC13aWR0aDogMTYwMHB4ICFkZWZhdWx0O1xyXG4kY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbDogMTVweCAhZGVmYXVsdDtcclxuJGNvbnRhaW5lci1wYWRkaW5nLWhvcml6b250YWwtczogJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsLW06ICRnbG9iYWwtbWVkaXVtLWd1dHRlciAhZGVmYXVsdDtcclxuJGNvdW50ZG93bi1pdGVtLWxpbmUtaGVpZ2h0OiAwLjggIWRlZmF1bHQ7XHJcbiRjb3VudGRvd24tbnVtYmVyLWZvbnQtc2l6ZTogMnJlbSAhZGVmYXVsdDtcclxuJGNvdW50ZG93bi1udW1iZXItZm9udC1zaXplLXM6IDRyZW0gIWRlZmF1bHQ7XHJcbiRjb3VudGRvd24tbnVtYmVyLWZvbnQtc2l6ZS1tOiA2cmVtICFkZWZhdWx0O1xyXG4kY291bnRkb3duLXNlcGFyYXRvci1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XHJcbiRjb3VudGRvd24tc2VwYXJhdG9yLWZvbnQtc2l6ZS1zOiAycmVtICFkZWZhdWx0O1xyXG4kY291bnRkb3duLXNlcGFyYXRvci1mb250LXNpemUtbTogM3JlbSAhZGVmYXVsdDtcclxuJGRlc2NyaXB0aW9uLWxpc3QtdGVybS1jb2xvcjogJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuJGRlc2NyaXB0aW9uLWxpc3QtdGVybS1tYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcclxuJGRlc2NyaXB0aW9uLWxpc3QtZGl2aWRlci10ZXJtLW1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xyXG4kZGVzY3JpcHRpb24tbGlzdC1kaXZpZGVyLXRlcm0tYm9yZGVyLXdpZHRoOiAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcclxuJGRlc2NyaXB0aW9uLWxpc3QtZGl2aWRlci10ZXJtLWJvcmRlcjogJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XHJcbiRkaXZpZGVyLW1hcmdpbi12ZXJ0aWNhbDogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRkaXZpZGVyLWljb24td2lkdGg6IDUwcHggIWRlZmF1bHQ7XHJcbiRkaXZpZGVyLWljb24taGVpZ2h0OiAyMHB4ICFkZWZhdWx0O1xyXG4kZGl2aWRlci1pY29uLWNvbG9yOiAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcclxuJGRpdmlkZXItaWNvbi1saW5lLXRvcDogNTAlICFkZWZhdWx0O1xyXG4kZGl2aWRlci1pY29uLWxpbmUtd2lkdGg6IDEwMCUgIWRlZmF1bHQ7XHJcbiRkaXZpZGVyLWljb24tbGluZS1ib3JkZXItd2lkdGg6ICRnbG9iYWwtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xyXG4kZGl2aWRlci1pY29uLWxpbmUtYm9yZGVyOiAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcclxuJGludGVybmFsLWRpdmlkZXItaWNvbi1pbWFnZTogXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjIwJTIyJTIwaGVpZ2h0JTNEJTIyMjAlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyMCUyMDIwJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NjaXJjbGUlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHN0cm9rZSUzRCUyMiMwMDAlMjIlMjBzdHJva2Utd2lkdGglM0QlMjIyJTIyJTIwY3glM0QlMjIxMCUyMiUyMGN5JTNEJTIyMTAlMjIlMjByJTNEJTIyNyUyMiUyMCUyRiUzRSUwQSUzQyUyRnN2ZyUzRSUwQVwiICFkZWZhdWx0O1xyXG4kZGl2aWRlci1zbWFsbC13aWR0aDogMTAwcHggIWRlZmF1bHQ7XHJcbiRkaXZpZGVyLXNtYWxsLWJvcmRlci13aWR0aDogJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XHJcbiRkaXZpZGVyLXNtYWxsLWJvcmRlcjogJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XHJcbiRkaXZpZGVyLXZlcnRpY2FsLWhlaWdodDogMTAwcHggIWRlZmF1bHQ7XHJcbiRkaXZpZGVyLXZlcnRpY2FsLWJvcmRlci13aWR0aDogJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XHJcbiRkaXZpZGVyLXZlcnRpY2FsLWJvcmRlcjogJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWRpdmlkZXItaWNvbi1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcclxuJGludmVyc2UtZGl2aWRlci1pY29uLWxpbmUtYm9yZGVyOiAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1kaXZpZGVyLXNtYWxsLWJvcmRlcjogJGludmVyc2UtZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcclxuJGludmVyc2UtZGl2aWRlci12ZXJ0aWNhbC1ib3JkZXI6ICRpbnZlcnNlLWdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XHJcbiRkb3RuYXYtbWFyZ2luLWhvcml6b250YWw6IDEycHggIWRlZmF1bHQ7XHJcbiRkb3RuYXYtbWFyZ2luLXZlcnRpY2FsOiAkZG90bmF2LW1hcmdpbi1ob3Jpem9udGFsICFkZWZhdWx0O1xyXG4kZG90bmF2LWl0ZW0td2lkdGg6IDEwcHggIWRlZmF1bHQ7XHJcbiRkb3RuYXYtaXRlbS1oZWlnaHQ6ICRkb3RuYXYtaXRlbS13aWR0aCAhZGVmYXVsdDtcclxuJGRvdG5hdi1pdGVtLWJvcmRlci1yYWRpdXM6IDUwJSAhZGVmYXVsdDtcclxuJGRvdG5hdi1pdGVtLWJhY2tncm91bmQ6IHJnYmEoJGdsb2JhbC1jb2xvciwgMC4yKSAhZGVmYXVsdDtcclxuJGRvdG5hdi1pdGVtLWhvdmVyLWJhY2tncm91bmQ6IHJnYmEoJGdsb2JhbC1jb2xvciwgMC42KSAhZGVmYXVsdDtcclxuJGRvdG5hdi1pdGVtLW9uY2xpY2stYmFja2dyb3VuZDogcmdiYSgkZ2xvYmFsLWNvbG9yLCAwLjIpICFkZWZhdWx0O1xyXG4kZG90bmF2LWl0ZW0tYWN0aXZlLWJhY2tncm91bmQ6IHJnYmEoJGdsb2JhbC1jb2xvciwgMC42KSAhZGVmYXVsdDtcclxuJGludmVyc2UtZG90bmF2LWl0ZW0tYmFja2dyb3VuZDogcmdiYSgkaW52ZXJzZS1nbG9iYWwtY29sb3IsIDAuNSkgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWRvdG5hdi1pdGVtLWhvdmVyLWJhY2tncm91bmQ6IHJnYmEoJGludmVyc2UtZ2xvYmFsLWNvbG9yLCAwLjkpICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1kb3RuYXYtaXRlbS1vbmNsaWNrLWJhY2tncm91bmQ6IHJnYmEoJGludmVyc2UtZ2xvYmFsLWNvbG9yLCAwLjUpICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1kb3RuYXYtaXRlbS1hY3RpdmUtYmFja2dyb3VuZDogcmdiYSgkaW52ZXJzZS1nbG9iYWwtY29sb3IsIDAuOSkgIWRlZmF1bHQ7XHJcbiRnbG9iYWwtei1pbmRleDogMTAwMCAhZGVmYXVsdDtcclxuJGRyb3Atei1pbmRleDogJGdsb2JhbC16LWluZGV4ICsgMjAgIWRlZmF1bHQ7XHJcbiRkcm9wLXdpZHRoOiAzMDBweCAhZGVmYXVsdDtcclxuJGRyb3AtbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcclxuJGRyb3Bkb3duLXotaW5kZXg6ICRnbG9iYWwtei1pbmRleCArIDIwICFkZWZhdWx0O1xyXG4kZHJvcGRvd24tbWluLXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcclxuJGRyb3Bkb3duLXBhZGRpbmc6IDE1cHggIWRlZmF1bHQ7XHJcbiRkcm9wZG93bi1iYWNrZ3JvdW5kOiAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRkcm9wZG93bi1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGRyb3Bkb3duLW1hcmdpbjogJGdsb2JhbC1zbWFsbC1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRkcm9wZG93bi1uYXYtaXRlbS1jb2xvcjogJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGRyb3Bkb3duLW5hdi1pdGVtLWhvdmVyLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kZHJvcGRvd24tbmF2LWhlYWRlci1jb2xvcjogJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuJGRyb3Bkb3duLW5hdi1kaXZpZGVyLWJvcmRlci13aWR0aDogJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XHJcbiRkcm9wZG93bi1uYXYtZGl2aWRlci1ib3JkZXI6ICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG4kZHJvcGRvd24tbmF2LXN1Ymxpc3QtaXRlbS1jb2xvcjogJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGRyb3Bkb3duLW5hdi1zdWJsaXN0LWl0ZW0taG92ZXItY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRmb3JtLXJhbmdlLXRodW1iLWhlaWdodDogMTVweCAhZGVmYXVsdDtcclxuJGZvcm0tcmFuZ2UtdGh1bWItYm9yZGVyLXJhZGl1czogNTAwcHggIWRlZmF1bHQ7XHJcbiRmb3JtLXJhbmdlLXRodW1iLWJhY2tncm91bmQ6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRmb3JtLXJhbmdlLXRyYWNrLWhlaWdodDogM3B4ICFkZWZhdWx0O1xyXG4kZm9ybS1yYW5nZS10cmFjay1iYWNrZ3JvdW5kOiBkYXJrZW4oJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XHJcbiRmb3JtLXJhbmdlLXRyYWNrLWZvY3VzLWJhY2tncm91bmQ6IGRhcmtlbigkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQsIDE1JSkgIWRlZmF1bHQ7XHJcbiRmb3JtLWhlaWdodDogJGdsb2JhbC1jb250cm9sLWhlaWdodCAhZGVmYXVsdDtcclxuJGZvcm0tbGluZS1oZWlnaHQ6ICRmb3JtLWhlaWdodCAhZGVmYXVsdDtcclxuJGZvcm0tcGFkZGluZy1ob3Jpem9udGFsOiAxMHB4ICFkZWZhdWx0O1xyXG4kZm9ybS1wYWRkaW5nLXZlcnRpY2FsOiA0cHggIWRlZmF1bHQ7XHJcbiRmb3JtLWJhY2tncm91bmQ6ICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGZvcm0tY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRmb3JtLWZvY3VzLWJhY2tncm91bmQ6ICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGZvcm0tZm9jdXMtY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRmb3JtLWRpc2FibGVkLWJhY2tncm91bmQ6ICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGZvcm0tZGlzYWJsZWQtY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRmb3JtLXBsYWNlaG9sZGVyLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kZm9ybS1zbWFsbC1oZWlnaHQ6ICRnbG9iYWwtY29udHJvbC1zbWFsbC1oZWlnaHQgIWRlZmF1bHQ7XHJcbiRmb3JtLXNtYWxsLXBhZGRpbmctaG9yaXpvbnRhbDogOHB4ICFkZWZhdWx0O1xyXG4kZm9ybS1zbWFsbC1saW5lLWhlaWdodDogJGZvcm0tc21hbGwtaGVpZ2h0ICFkZWZhdWx0O1xyXG4kZm9ybS1zbWFsbC1mb250LXNpemU6ICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kZm9ybS1sYXJnZS1oZWlnaHQ6ICRnbG9iYWwtY29udHJvbC1sYXJnZS1oZWlnaHQgIWRlZmF1bHQ7XHJcbiRmb3JtLWxhcmdlLXBhZGRpbmctaG9yaXpvbnRhbDogMTJweCAhZGVmYXVsdDtcclxuJGZvcm0tbGFyZ2UtbGluZS1oZWlnaHQ6ICRmb3JtLWxhcmdlLWhlaWdodCAhZGVmYXVsdDtcclxuJGZvcm0tbGFyZ2UtZm9udC1zaXplOiAkZ2xvYmFsLW1lZGl1bS1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiRmb3JtLWRhbmdlci1jb2xvcjogJGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGZvcm0tc3VjY2Vzcy1jb2xvcjogJGdsb2JhbC1zdWNjZXNzLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRmb3JtLXdpZHRoLXhzbWFsbDogNTBweCAhZGVmYXVsdDtcclxuJGZvcm0td2lkdGgtc21hbGw6IDEzMHB4ICFkZWZhdWx0O1xyXG4kZm9ybS13aWR0aC1tZWRpdW06IDIwMHB4ICFkZWZhdWx0O1xyXG4kZm9ybS13aWR0aC1sYXJnZTogNTAwcHggIWRlZmF1bHQ7XHJcbiRmb3JtLXNlbGVjdC1wYWRkaW5nLXJpZ2h0OiAyMHB4ICFkZWZhdWx0O1xyXG4kZm9ybS1zZWxlY3QtaWNvbi1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGZvcm0tc2VsZWN0LW9wdGlvbi1jb2xvcjogIzQ0NCAhZGVmYXVsdDtcclxuJGZvcm0tc2VsZWN0LWRpc2FibGVkLWljb24tY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRmb3JtLWRhdGFsaXN0LXBhZGRpbmctcmlnaHQ6IDIwcHggIWRlZmF1bHQ7XHJcbiRmb3JtLWRhdGFsaXN0LWljb24tY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRmb3JtLXJhZGlvLXNpemU6IDE2cHggIWRlZmF1bHQ7XHJcbiRmb3JtLXJhZGlvLW1hcmdpbi10b3A6IC00cHggIWRlZmF1bHQ7XHJcbiRmb3JtLXJhZGlvLWJhY2tncm91bmQ6IGRhcmtlbigkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcclxuJGZvcm0tcmFkaW8tY2hlY2tlZC1iYWNrZ3JvdW5kOiAkZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGZvcm0tcmFkaW8tY2hlY2tlZC1pY29uLWNvbG9yOiAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XHJcbiRmb3JtLXJhZGlvLWNoZWNrZWQtZm9jdXMtYmFja2dyb3VuZDogZGFya2VuKCRnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kLCAxMCUpICFkZWZhdWx0O1xyXG4kZm9ybS1yYWRpby1kaXNhYmxlZC1iYWNrZ3JvdW5kOiAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRmb3JtLXJhZGlvLWRpc2FibGVkLWljb24tY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRmb3JtLWxlZ2VuZC1mb250LXNpemU6ICRnbG9iYWwtbGFyZ2UtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kZm9ybS1sZWdlbmQtbGluZS1oZWlnaHQ6IDEuNCAhZGVmYXVsdDtcclxuJGZvcm0tc3RhY2tlZC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLXNtYWxsLW1hcmdpbiAhZGVmYXVsdDtcclxuJGZvcm0taG9yaXpvbnRhbC1sYWJlbC13aWR0aDogMjAwcHggIWRlZmF1bHQ7XHJcbiRmb3JtLWhvcml6b250YWwtbGFiZWwtbWFyZ2luLXRvcDogN3B4ICFkZWZhdWx0O1xyXG4kZm9ybS1ob3Jpem9udGFsLWNvbnRyb2xzLW1hcmdpbi1sZWZ0OiAyMTVweCAhZGVmYXVsdDtcclxuJGZvcm0taG9yaXpvbnRhbC1jb250cm9scy10ZXh0LXBhZGRpbmctdG9wOiA3cHggIWRlZmF1bHQ7XHJcbiRmb3JtLWljb24td2lkdGg6ICRmb3JtLWhlaWdodCAhZGVmYXVsdDtcclxuJGZvcm0taWNvbi1jb2xvcjogJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGZvcm0taWNvbi1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGludGVybmFsLWZvcm0tc2VsZWN0LWltYWdlOiBcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMjQlMjIlMjBoZWlnaHQlM0QlMjIxNiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMTYlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyIzAwMCUyMiUyMHBvaW50cyUzRCUyMjEyJTIwMSUyMDklMjA2JTIwMTUlMjA2JTIyJTIwJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIjMDAwJTIyJTIwcG9pbnRzJTNEJTIyMTIlMjAxMyUyMDklMjA4JTIwMTUlMjA4JTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFJTBBXCIgIWRlZmF1bHQ7XHJcbiRpbnRlcm5hbC1mb3JtLWRhdGFsaXN0LWltYWdlOiBcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMjQlMjIlMjBoZWlnaHQlM0QlMjIxNiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMTYlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyIzAwMCUyMiUyMHBvaW50cyUzRCUyMjEyJTIwMTIlMjA4JTIwNiUyMDE2JTIwNiUyMiUyMCUyRiUzRSUwQSUzQyUyRnN2ZyUzRSUwQVwiICFkZWZhdWx0O1xyXG4kaW50ZXJuYWwtZm9ybS1yYWRpby1pbWFnZTogXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjE2JTIyJTIwaGVpZ2h0JTNEJTIyMTYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNiUyMDE2JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NjaXJjbGUlMjBmaWxsJTNEJTIyIzAwMCUyMiUyMGN4JTNEJTIyOCUyMiUyMGN5JTNEJTIyOCUyMiUyMHIlM0QlMjIyJTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFXCIgIWRlZmF1bHQ7XHJcbiRpbnRlcm5hbC1mb3JtLWNoZWNrYm94LWltYWdlOiBcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTQlMjIlMjBoZWlnaHQlM0QlMjIxMSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE0JTIwMTElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyIzAwMCUyMiUyMHBvaW50cyUzRCUyMjEyJTIwMSUyMDUlMjA3LjUlMjAyJTIwNSUyMDElMjA1LjUlMjA1JTIwMTAlMjAxMyUyMDEuNSUyMiUyMCUyRiUzRSUwQSUzQyUyRnN2ZyUzRSUwQVwiICFkZWZhdWx0O1xyXG4kaW50ZXJuYWwtZm9ybS1jaGVja2JveC1pbmRldGVybWluYXRlLWltYWdlOiBcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTYlMjIlMjBoZWlnaHQlM0QlMjIxNiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE2JTIwMTYlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyIzAwMCUyMiUyMHglM0QlMjIzJTIyJTIweSUzRCUyMjglMjIlMjB3aWR0aCUzRCUyMjEwJTIyJTIwaGVpZ2h0JTNEJTIyMSUyMiUyMCUyRiUzRSUwQSUzQyUyRnN2ZyUzRVwiICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1nbG9iYWwtbXV0ZWQtYmFja2dyb3VuZDogcmdiYSgkZ2xvYmFsLWludmVyc2UtY29sb3IsIDAuMSkgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWZvcm0tYmFja2dyb3VuZDogJGludmVyc2UtZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWZvcm0tY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtZm9ybS1mb2N1cy1iYWNrZ3JvdW5kOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGludmVyc2UtZm9ybS1mb2N1cy1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1mb3JtLXBsYWNlaG9sZGVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWZvcm0tc2VsZWN0LWljb24tY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtZm9ybS1kYXRhbGlzdC1pY29uLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWZvcm0tcmFkaW8tYmFja2dyb3VuZDogZGFya2VuKCRpbnZlcnNlLWdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWZvcm0tcmFkaW8tY2hlY2tlZC1iYWNrZ3JvdW5kOiAkaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1mb3JtLXJhZGlvLWNoZWNrZWQtaWNvbi1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWZvcm0tcmFkaW8tY2hlY2tlZC1mb2N1cy1iYWNrZ3JvdW5kOiBkYXJrZW4oJGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCwgMTAlKSAhZGVmYXVsdDtcclxuJGludmVyc2UtZm9ybS1pY29uLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWZvcm0taWNvbi1ob3Zlci1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbDogJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRncmlkLWd1dHRlci12ZXJ0aWNhbDogJGdyaWQtZ3V0dGVyLWhvcml6b250YWwgIWRlZmF1bHQ7XHJcbiRncmlkLWd1dHRlci1ob3Jpem9udGFsLWw6ICRnbG9iYWwtbWVkaXVtLWd1dHRlciAhZGVmYXVsdDtcclxuJGdyaWQtZ3V0dGVyLXZlcnRpY2FsLWw6ICRncmlkLWd1dHRlci1ob3Jpem9udGFsLWwgIWRlZmF1bHQ7XHJcbiRncmlkLXNtYWxsLWd1dHRlci1ob3Jpem9udGFsOiAkZ2xvYmFsLXNtYWxsLWd1dHRlciAhZGVmYXVsdDtcclxuJGdyaWQtc21hbGwtZ3V0dGVyLXZlcnRpY2FsOiAkZ3JpZC1zbWFsbC1ndXR0ZXItaG9yaXpvbnRhbCAhZGVmYXVsdDtcclxuJGdyaWQtbWVkaXVtLWd1dHRlci1ob3Jpem9udGFsOiAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcclxuJGdyaWQtbWVkaXVtLWd1dHRlci12ZXJ0aWNhbDogJGdyaWQtbWVkaXVtLWd1dHRlci1ob3Jpem9udGFsICFkZWZhdWx0O1xyXG4kZ3JpZC1sYXJnZS1ndXR0ZXItaG9yaXpvbnRhbDogJGdsb2JhbC1tZWRpdW0tZ3V0dGVyICFkZWZhdWx0O1xyXG4kZ3JpZC1sYXJnZS1ndXR0ZXItdmVydGljYWw6ICRncmlkLWxhcmdlLWd1dHRlci1ob3Jpem9udGFsICFkZWZhdWx0O1xyXG4kZ3JpZC1sYXJnZS1ndXR0ZXItaG9yaXpvbnRhbC1sOiAkZ2xvYmFsLWxhcmdlLWd1dHRlciAhZGVmYXVsdDtcclxuJGdyaWQtbGFyZ2UtZ3V0dGVyLXZlcnRpY2FsLWw6ICRncmlkLWxhcmdlLWd1dHRlci1ob3Jpem9udGFsLWwgIWRlZmF1bHQ7XHJcbiRncmlkLWRpdmlkZXItYm9yZGVyLXdpZHRoOiAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcclxuJGdyaWQtZGl2aWRlci1ib3JkZXI6ICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1ncmlkLWRpdmlkZXItYm9yZGVyOiAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG4kaGVhZGluZy1tZWRpdW0tZm9udC1zaXplLWw6IDRyZW0gIWRlZmF1bHQ7XHJcbiRoZWFkaW5nLXNtYWxsLWZvbnQtc2l6ZS1tOiAkaGVhZGluZy1tZWRpdW0tZm9udC1zaXplLWwgKiAwLjgxMjUgIWRlZmF1bHQ7XHJcbiRoZWFkaW5nLXNtYWxsLWZvbnQtc2l6ZTogJGhlYWRpbmctc21hbGwtZm9udC1zaXplLW0gKiAwLjggIWRlZmF1bHQ7XHJcbiRoZWFkaW5nLW1lZGl1bS1mb250LXNpemUtbTogJGhlYWRpbmctbWVkaXVtLWZvbnQtc2l6ZS1sICogMC44NzUgIWRlZmF1bHQ7XHJcbiRoZWFkaW5nLW1lZGl1bS1mb250LXNpemU6ICRoZWFkaW5nLW1lZGl1bS1mb250LXNpemUtbSAqIDAuODI1ICFkZWZhdWx0O1xyXG4kaGVhZGluZy1sYXJnZS1mb250LXNpemUtbTogJGhlYWRpbmctbWVkaXVtLWZvbnQtc2l6ZS1sICFkZWZhdWx0O1xyXG4kaGVhZGluZy1sYXJnZS1mb250LXNpemU6ICRoZWFkaW5nLWxhcmdlLWZvbnQtc2l6ZS1tICogMC44NSAhZGVmYXVsdDtcclxuJGhlYWRpbmcteGxhcmdlLWZvbnQtc2l6ZTogJGhlYWRpbmctbGFyZ2UtZm9udC1zaXplLW0gIWRlZmF1bHQ7XHJcbiRoZWFkaW5nLWxhcmdlLWZvbnQtc2l6ZS1sOiA2cmVtICFkZWZhdWx0O1xyXG4kaGVhZGluZy14bGFyZ2UtZm9udC1zaXplLW06ICRoZWFkaW5nLWxhcmdlLWZvbnQtc2l6ZS1sICFkZWZhdWx0O1xyXG4kaGVhZGluZy0yeGxhcmdlLWZvbnQtc2l6ZTogJGhlYWRpbmcteGxhcmdlLWZvbnQtc2l6ZS1tICFkZWZhdWx0O1xyXG4kaGVhZGluZy14bGFyZ2UtZm9udC1zaXplLWw6IDhyZW0gIWRlZmF1bHQ7XHJcbiRoZWFkaW5nLTJ4bGFyZ2UtZm9udC1zaXplLW06ICRoZWFkaW5nLXhsYXJnZS1mb250LXNpemUtbCAhZGVmYXVsdDtcclxuJGhlYWRpbmctMnhsYXJnZS1mb250LXNpemUtbDogMTFyZW0gIWRlZmF1bHQ7XHJcbiRoZWFkaW5nLXNtYWxsLWxpbmUtaGVpZ2h0OiAxLjIgIWRlZmF1bHQ7XHJcbiRoZWFkaW5nLW1lZGl1bS1saW5lLWhlaWdodDogMS4xICFkZWZhdWx0O1xyXG4kaGVhZGluZy1sYXJnZS1saW5lLWhlaWdodDogMS4xICFkZWZhdWx0O1xyXG4kaGVhZGluZy14bGFyZ2UtbGluZS1oZWlnaHQ6IDEgIWRlZmF1bHQ7XHJcbiRoZWFkaW5nLTJ4bGFyZ2UtbGluZS1oZWlnaHQ6IDEgIWRlZmF1bHQ7XHJcbiRoZWFkaW5nLWRpdmlkZXItcGFkZGluZy1ib3R0b206IHVucXVvdGUoJ2NhbGMoNXB4ICsgMC4xZW0pJykgIWRlZmF1bHQ7XHJcbiRoZWFkaW5nLWRpdmlkZXItYm9yZGVyLXdpZHRoOiB1bnF1b3RlKCdjYWxjKDAuMnB4ICsgMC4wNWVtKScpICFkZWZhdWx0O1xyXG4kaGVhZGluZy1kaXZpZGVyLWJvcmRlcjogJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XHJcbiRoZWFkaW5nLWJ1bGxldC10b3A6IHVucXVvdGUoJ2NhbGMoLTAuMSAqIDFlbSknKSAhZGVmYXVsdDtcclxuJGhlYWRpbmctYnVsbGV0LWhlaWdodDogdW5xdW90ZSgnY2FsYyg0cHggKyAwLjdlbSknKSAhZGVmYXVsdDtcclxuJGhlYWRpbmctYnVsbGV0LW1hcmdpbi1yaWdodDogdW5xdW90ZSgnY2FsYyg1cHggKyAwLjJlbSknKSAhZGVmYXVsdDtcclxuJGhlYWRpbmctYnVsbGV0LWJvcmRlci13aWR0aDogdW5xdW90ZSgnY2FsYyg1cHggKyAwLjFlbSknKSAhZGVmYXVsdDtcclxuJGhlYWRpbmctYnVsbGV0LWJvcmRlcjogJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XHJcbiRoZWFkaW5nLWxpbmUtdG9wOiA1MCUgIWRlZmF1bHQ7XHJcbiRoZWFkaW5nLWxpbmUtYm9yZGVyLXdpZHRoOiB1bnF1b3RlKCdjYWxjKDAuMnB4ICsgMC4wNWVtKScpICFkZWZhdWx0O1xyXG4kaGVhZGluZy1saW5lLWhlaWdodDogJGhlYWRpbmctbGluZS1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XHJcbiRoZWFkaW5nLWxpbmUtd2lkdGg6IDIwMDBweCAhZGVmYXVsdDtcclxuJGhlYWRpbmctbGluZS1ib3JkZXI6ICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG4kaGVhZGluZy1saW5lLW1hcmdpbi1ob3Jpem9udGFsOiB1bnF1b3RlKCdjYWxjKDVweCArIDAuM2VtKScpICFkZWZhdWx0O1xyXG4kaGVhZGluZy1wcmltYXJ5LWZvbnQtc2l6ZS1sOiAzLjc1cmVtICFkZWZhdWx0O1xyXG4kaGVhZGluZy1wcmltYXJ5LWxpbmUtaGVpZ2h0LWw6IDEuMSAhZGVmYXVsdDtcclxuJGhlYWRpbmctcHJpbWFyeS1mb250LXNpemUtbTogJGhlYWRpbmctcHJpbWFyeS1mb250LXNpemUtbCAqIDAuOSAhZGVmYXVsdDtcclxuJGhlYWRpbmctcHJpbWFyeS1mb250LXNpemU6ICRoZWFkaW5nLXByaW1hcnktZm9udC1zaXplLWwgKiAwLjggIWRlZmF1bHQ7XHJcbiRoZWFkaW5nLXByaW1hcnktbGluZS1oZWlnaHQ6IDEuMiAhZGVmYXVsdDtcclxuJGhlYWRpbmctaGVyby1mb250LXNpemUtbDogOHJlbSAhZGVmYXVsdDtcclxuJGhlYWRpbmctaGVyby1saW5lLWhlaWdodC1sOiAxICFkZWZhdWx0O1xyXG4kaGVhZGluZy1oZXJvLWZvbnQtc2l6ZS1tOiAkaGVhZGluZy1oZXJvLWZvbnQtc2l6ZS1sICogMC43NSAhZGVmYXVsdDtcclxuJGhlYWRpbmctaGVyby1saW5lLWhlaWdodC1tOiAxICFkZWZhdWx0O1xyXG4kaGVhZGluZy1oZXJvLWZvbnQtc2l6ZTogJGhlYWRpbmctaGVyby1mb250LXNpemUtbCAqIDAuNSAhZGVmYXVsdDtcclxuJGhlYWRpbmctaGVyby1saW5lLWhlaWdodDogMS4xICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1oZWFkaW5nLWRpdmlkZXItYm9yZGVyOiAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1oZWFkaW5nLWJ1bGxldC1ib3JkZXI6ICRpbnZlcnNlLWdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWhlYWRpbmctbGluZS1ib3JkZXI6ICRpbnZlcnNlLWdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XHJcbiRoZWlnaHQtc21hbGwtaGVpZ2h0OiAxNTBweCAhZGVmYXVsdDtcclxuJGhlaWdodC1tZWRpdW0taGVpZ2h0OiAzMDBweCAhZGVmYXVsdDtcclxuJGhlaWdodC1sYXJnZS1oZWlnaHQ6IDQ1MHB4ICFkZWZhdWx0O1xyXG4kaWNvbi1pbWFnZS1zaXplOiAyMHB4ICFkZWZhdWx0O1xyXG4kaWNvbi1saW5rLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kaWNvbi1saW5rLWhvdmVyLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kaWNvbi1saW5rLWFjdGl2ZS1jb2xvcjogZGFya2VuKCRnbG9iYWwtY29sb3IsIDUlKSAhZGVmYXVsdDtcclxuJGljb24tYnV0dG9uLXNpemU6IDM2cHggIWRlZmF1bHQ7XHJcbiRpY29uLWJ1dHRvbi1ib3JkZXItcmFkaXVzOiA1MDBweCAhZGVmYXVsdDtcclxuJGljb24tYnV0dG9uLWJhY2tncm91bmQ6ICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGljb24tYnV0dG9uLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kaWNvbi1idXR0b24taG92ZXItYmFja2dyb3VuZDogZGFya2VuKCRpY29uLWJ1dHRvbi1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XHJcbiRpY29uLWJ1dHRvbi1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGljb24tYnV0dG9uLWFjdGl2ZS1iYWNrZ3JvdW5kOiBkYXJrZW4oJGljb24tYnV0dG9uLWJhY2tncm91bmQsIDEwJSkgIWRlZmF1bHQ7XHJcbiRpY29uLWJ1dHRvbi1hY3RpdmUtY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWljb24tbGluay1jb2xvcjogJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1pY29uLWxpbmstaG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtaWNvbi1saW5rLWFjdGl2ZS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1pY29uLWJ1dHRvbi1iYWNrZ3JvdW5kOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGludmVyc2UtaWNvbi1idXR0b24tY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtaWNvbi1idXR0b24taG92ZXItYmFja2dyb3VuZDogZGFya2VuKCRpbnZlcnNlLWljb24tYnV0dG9uLWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcclxuJGludmVyc2UtaWNvbi1idXR0b24taG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtaWNvbi1idXR0b24tYWN0aXZlLWJhY2tncm91bmQ6IGRhcmtlbigkaW52ZXJzZS1pY29uLWJ1dHRvbi1iYWNrZ3JvdW5kLCAxMCUpICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1pY29uLWJ1dHRvbi1hY3RpdmUtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGljb25uYXYtbWFyZ2luLWhvcml6b250YWw6ICRnbG9iYWwtc21hbGwtbWFyZ2luICFkZWZhdWx0O1xyXG4kaWNvbm5hdi1tYXJnaW4tdmVydGljYWw6ICRpY29ubmF2LW1hcmdpbi1ob3Jpem9udGFsICFkZWZhdWx0O1xyXG4kaWNvbm5hdi1pdGVtLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kaWNvbm5hdi1pdGVtLWhvdmVyLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kaWNvbm5hdi1pdGVtLWFjdGl2ZS1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtaWNvbm5hdi1pdGVtLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWljb25uYXYtaXRlbS1ob3Zlci1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1pY29ubmF2LWl0ZW0tYWN0aXZlLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWdsb2JhbC1jb2xvci1tb2RlOiBsaWdodCAhZGVmYXVsdDtcclxuJGxhYmVsLXBhZGRpbmctdmVydGljYWw6IDAgIWRlZmF1bHQ7XHJcbiRsYWJlbC1wYWRkaW5nLWhvcml6b250YWw6ICRnbG9iYWwtc21hbGwtbWFyZ2luICFkZWZhdWx0O1xyXG4kbGFiZWwtYmFja2dyb3VuZDogJGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRsYWJlbC1saW5lLWhlaWdodDogJGdsb2JhbC1saW5lLWhlaWdodCAhZGVmYXVsdDtcclxuJGxhYmVsLWZvbnQtc2l6ZTogJGdsb2JhbC1zbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiRsYWJlbC1jb2xvcjogJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xyXG4kbGFiZWwtc3VjY2Vzcy1iYWNrZ3JvdW5kOiAkZ2xvYmFsLXN1Y2Nlc3MtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGxhYmVsLXN1Y2Nlc3MtY29sb3I6ICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJGxhYmVsLXdhcm5pbmctYmFja2dyb3VuZDogJGdsb2JhbC13YXJuaW5nLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRsYWJlbC13YXJuaW5nLWNvbG9yOiAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XHJcbiRsYWJlbC1kYW5nZXItYmFja2dyb3VuZDogJGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGxhYmVsLWRhbmdlci1jb2xvcjogJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1sYWJlbC1iYWNrZ3JvdW5kOiAkaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1sYWJlbC1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XHJcbiRsZWFkZXItZmlsbC1jb250ZW50OiB1bnF1b3RlKCcuJykgIWRlZmF1bHQ7XHJcbiRsZWFkZXItZmlsbC1tYXJnaW4tbGVmdDogJGdsb2JhbC1zbWFsbC1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRsaWdodGJveC16LWluZGV4OiAkZ2xvYmFsLXotaW5kZXggKyAxMCAhZGVmYXVsdDtcclxuJGxpZ2h0Ym94LWJhY2tncm91bmQ6ICMwMDAgIWRlZmF1bHQ7XHJcbiRsaWdodGJveC1pdGVtLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNykgIWRlZmF1bHQ7XHJcbiRsaWdodGJveC1pdGVtLW1heC13aWR0aDogMTAwdncgIWRlZmF1bHQ7XHJcbiRsaWdodGJveC1pdGVtLW1heC1oZWlnaHQ6IDEwMHZoICFkZWZhdWx0O1xyXG4kbGlnaHRib3gtdG9vbGJhci1wYWRkaW5nLXZlcnRpY2FsOiAxMHB4ICFkZWZhdWx0O1xyXG4kbGlnaHRib3gtdG9vbGJhci1wYWRkaW5nLWhvcml6b250YWw6IDEwcHggIWRlZmF1bHQ7XHJcbiRsaWdodGJveC10b29sYmFyLWJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4zKSAhZGVmYXVsdDtcclxuJGxpZ2h0Ym94LXRvb2xiYXItY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC43KSAhZGVmYXVsdDtcclxuJGxpZ2h0Ym94LXRvb2xiYXItaWNvbi1wYWRkaW5nOiA1cHggIWRlZmF1bHQ7XHJcbiRsaWdodGJveC10b29sYmFyLWljb24tY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC43KSAhZGVmYXVsdDtcclxuJGxpZ2h0Ym94LXRvb2xiYXItaWNvbi1ob3Zlci1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcclxuJGxpZ2h0Ym94LWJ1dHRvbi1zaXplOiA1MHB4ICFkZWZhdWx0O1xyXG4kbGlnaHRib3gtYnV0dG9uLWJhY2tncm91bmQ6ICRsaWdodGJveC10b29sYmFyLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRsaWdodGJveC1idXR0b24tY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC43KSAhZGVmYXVsdDtcclxuJGxpZ2h0Ym94LWJ1dHRvbi1ob3Zlci1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcclxuJGxpbmstbXV0ZWQtY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRsaW5rLW11dGVkLWhvdmVyLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kbGluay10ZXh0LWhvdmVyLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kbGluay1oZWFkaW5nLWhvdmVyLWNvbG9yOiAkZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGxpbmstaGVhZGluZy1ob3Zlci10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWxpbmstbXV0ZWQtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtbGluay1tdXRlZC1ob3Zlci1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1saW5rLXRleHQtaG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtbGluay1oZWFkaW5nLWhvdmVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kbGlzdC1tYXJnaW4tdG9wOiAkZ2xvYmFsLXNtYWxsLW1hcmdpbiAhZGVmYXVsdDtcclxuJGxpc3QtbmVzdGVkLXBhZGRpbmctbGVmdDogJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRsaXN0LWRpdmlkZXItbWFyZ2luLXRvcDogJGdsb2JhbC1zbWFsbC1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRsaXN0LWRpdmlkZXItYm9yZGVyLXdpZHRoOiAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcclxuJGxpc3QtZGl2aWRlci1ib3JkZXI6ICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG4kbGlzdC1zdHJpcGVkLXBhZGRpbmctdmVydGljYWw6ICRnbG9iYWwtc21hbGwtbWFyZ2luICFkZWZhdWx0O1xyXG4kbGlzdC1zdHJpcGVkLXBhZGRpbmctaG9yaXpvbnRhbDogJGdsb2JhbC1zbWFsbC1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRsaXN0LXN0cmlwZWQtYmFja2dyb3VuZDogJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kbGlzdC1idWxsZXQtd2lkdGg6ICgkZ2xvYmFsLWxpbmUtaGVpZ2h0ICogMWVtKSAhZGVmYXVsdDtcclxuJGxpc3QtYnVsbGV0LWhlaWdodDogJGxpc3QtYnVsbGV0LXdpZHRoICFkZWZhdWx0O1xyXG4kbGlzdC1idWxsZXQtbWFyZ2luLXJpZ2h0OiAkZ2xvYmFsLXNtYWxsLW1hcmdpbiAhZGVmYXVsdDtcclxuJGxpc3QtYnVsbGV0LWljb24tY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRsaXN0LWxhcmdlLW1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xyXG4kbGlzdC1sYXJnZS1kaXZpZGVyLW1hcmdpbi10b3A6ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xyXG4kbGlzdC1sYXJnZS1zdHJpcGVkLXBhZGRpbmctdmVydGljYWw6ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xyXG4kbGlzdC1sYXJnZS1zdHJpcGVkLXBhZGRpbmctaG9yaXpvbnRhbDogJGdsb2JhbC1zbWFsbC1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRpbnRlcm5hbC1saXN0LWJ1bGxldC1pbWFnZTogXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjYlMjIlMjBoZWlnaHQlM0QlMjI2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwNiUyMDYlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ2NpcmNsZSUyMGZpbGwlM0QlMjIjMDAwJTIyJTIwY3glM0QlMjIzJTIyJTIwY3klM0QlMjIzJTIyJTIwciUzRCUyMjMlMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0VcIiAhZGVmYXVsdDtcclxuJGludmVyc2UtbGlzdC1kaXZpZGVyLWJvcmRlcjogJGludmVyc2UtZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcclxuJGludmVyc2UtbGlzdC1zdHJpcGVkLWJhY2tncm91bmQ6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1saXN0LWJ1bGxldC1pY29uLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRtYXJnaW4tbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcclxuJG1hcmdpbi1zbWFsbC1tYXJnaW46ICRnbG9iYWwtc21hbGwtbWFyZ2luICFkZWZhdWx0O1xyXG4kbWFyZ2luLW1lZGl1bS1tYXJnaW46ICRnbG9iYWwtbWVkaXVtLW1hcmdpbiAhZGVmYXVsdDtcclxuJG1hcmdpbi1sYXJnZS1tYXJnaW46ICRnbG9iYWwtbWVkaXVtLW1hcmdpbiAhZGVmYXVsdDtcclxuJG1hcmdpbi1sYXJnZS1tYXJnaW4tbDogJGdsb2JhbC1sYXJnZS1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRtYXJnaW4teGxhcmdlLW1hcmdpbjogJGdsb2JhbC1sYXJnZS1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRnbG9iYWwteGxhcmdlLW1hcmdpbjogMTQwcHggIWRlZmF1bHQ7XHJcbiRtYXJnaW4teGxhcmdlLW1hcmdpbi1sOiAkZ2xvYmFsLXhsYXJnZS1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRtYXJrZXItcGFkZGluZzogNXB4ICFkZWZhdWx0O1xyXG4kbWFya2VyLWJhY2tncm91bmQ6ICRnbG9iYWwtc2Vjb25kYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRtYXJrZXItY29sb3I6ICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJG1hcmtlci1ob3Zlci1jb2xvcjogJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1tYXJrZXItYmFja2dyb3VuZDogJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1tYXJrZXItY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLW1hcmtlci1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJG1vZGFsLXotaW5kZXg6ICRnbG9iYWwtei1pbmRleCArIDEwICFkZWZhdWx0O1xyXG4kbW9kYWwtYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjYpICFkZWZhdWx0O1xyXG4kbW9kYWwtcGFkZGluZy1ob3Jpem9udGFsOiAxNXB4ICFkZWZhdWx0O1xyXG4kbW9kYWwtcGFkZGluZy1ob3Jpem9udGFsLXM6ICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kbW9kYWwtcGFkZGluZy1ob3Jpem9udGFsLW06ICRnbG9iYWwtbWVkaXVtLWd1dHRlciAhZGVmYXVsdDtcclxuJG1vZGFsLXBhZGRpbmctdmVydGljYWw6ICRtb2RhbC1wYWRkaW5nLWhvcml6b250YWwgIWRlZmF1bHQ7XHJcbiRtb2RhbC1wYWRkaW5nLXZlcnRpY2FsLXM6IDUwcHggIWRlZmF1bHQ7XHJcbiRtb2RhbC1kaWFsb2ctd2lkdGg6IDYwMHB4ICFkZWZhdWx0O1xyXG4kbW9kYWwtZGlhbG9nLWJhY2tncm91bmQ6ICRnbG9iYWwtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJG1vZGFsLWNvbnRhaW5lci13aWR0aDogMTIwMHB4ICFkZWZhdWx0O1xyXG4kbW9kYWwtYm9keS1wYWRkaW5nLWhvcml6b250YWw6ICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kbW9kYWwtYm9keS1wYWRkaW5nLXZlcnRpY2FsOiAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcclxuJG1vZGFsLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWw6ICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kbW9kYWwtaGVhZGVyLXBhZGRpbmctdmVydGljYWw6ICgkbW9kYWwtaGVhZGVyLXBhZGRpbmctaG9yaXpvbnRhbCAvIDIpICFkZWZhdWx0O1xyXG4kbW9kYWwtaGVhZGVyLWJhY2tncm91bmQ6ICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJG1vZGFsLWZvb3Rlci1wYWRkaW5nLWhvcml6b250YWw6ICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kbW9kYWwtZm9vdGVyLXBhZGRpbmctdmVydGljYWw6ICgkbW9kYWwtZm9vdGVyLXBhZGRpbmctaG9yaXpvbnRhbCAvIDIpICFkZWZhdWx0O1xyXG4kbW9kYWwtZm9vdGVyLWJhY2tncm91bmQ6ICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJG1vZGFsLXRpdGxlLWZvbnQtc2l6ZTogJGdsb2JhbC14bGFyZ2UtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kbW9kYWwtdGl0bGUtbGluZS1oZWlnaHQ6IDEuMyAhZGVmYXVsdDtcclxuJG1vZGFsLWNsb3NlLXBvc2l0aW9uOiAkZ2xvYmFsLXNtYWxsLW1hcmdpbiAhZGVmYXVsdDtcclxuJG1vZGFsLWNsb3NlLXBhZGRpbmc6IDVweCAhZGVmYXVsdDtcclxuJG1vZGFsLWNsb3NlLW91dHNpZGUtcG9zaXRpb246IDAgIWRlZmF1bHQ7XHJcbiRtb2RhbC1jbG9zZS1vdXRzaWRlLXRyYW5zbGF0ZTogMTAwJSAhZGVmYXVsdDtcclxuJG1vZGFsLWNsb3NlLW91dHNpZGUtY29sb3I6IGxpZ2h0ZW4oJGdsb2JhbC1pbnZlcnNlLWNvbG9yLCAyMCUpICFkZWZhdWx0O1xyXG4kbW9kYWwtY2xvc2Utb3V0c2lkZS1ob3Zlci1jb2xvcjogJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbDogNXB4ICFkZWZhdWx0O1xyXG4kbmF2LWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsOiAwICFkZWZhdWx0O1xyXG4kbmF2LXN1Ymxpc3QtcGFkZGluZy12ZXJ0aWNhbDogNXB4ICFkZWZhdWx0O1xyXG4kbmF2LXN1Ymxpc3QtcGFkZGluZy1sZWZ0OiAxNXB4ICFkZWZhdWx0O1xyXG4kbmF2LXN1Ymxpc3QtZGVlcGVyLXBhZGRpbmctbGVmdDogMTVweCAhZGVmYXVsdDtcclxuJG5hdi1zdWJsaXN0LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbDogMnB4ICFkZWZhdWx0O1xyXG4kbmF2LXBhcmVudC1pY29uLXdpZHRoOiAoJGdsb2JhbC1saW5lLWhlaWdodCAqIDFlbSkgIWRlZmF1bHQ7XHJcbiRuYXYtcGFyZW50LWljb24taGVpZ2h0OiAkbmF2LXBhcmVudC1pY29uLXdpZHRoICFkZWZhdWx0O1xyXG4kbmF2LXBhcmVudC1pY29uLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2LWhlYWRlci1wYWRkaW5nLXZlcnRpY2FsOiAkbmF2LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbCAhZGVmYXVsdDtcclxuJG5hdi1oZWFkZXItcGFkZGluZy1ob3Jpem9udGFsOiAkbmF2LWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsICFkZWZhdWx0O1xyXG4kbmF2LWhlYWRlci1mb250LXNpemU6ICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kbmF2LWhlYWRlci10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xyXG4kbmF2LWhlYWRlci1tYXJnaW4tdG9wOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcclxuJG5hdi1kaXZpZGVyLW1hcmdpbi12ZXJ0aWNhbDogNXB4ICFkZWZhdWx0O1xyXG4kbmF2LWRpdmlkZXItbWFyZ2luLWhvcml6b250YWw6IDAgIWRlZmF1bHQ7XHJcbiRuYXYtZGVmYXVsdC1pdGVtLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2LWRlZmF1bHQtaXRlbS1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJG5hdi1kZWZhdWx0LWl0ZW0tYWN0aXZlLWNvbG9yOiAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2LWRlZmF1bHQtaGVhZGVyLWNvbG9yOiAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2LWRlZmF1bHQtZGl2aWRlci1ib3JkZXItd2lkdGg6ICRnbG9iYWwtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xyXG4kbmF2LWRlZmF1bHQtZGl2aWRlci1ib3JkZXI6ICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG4kbmF2LWRlZmF1bHQtc3VibGlzdC1pdGVtLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2LWRlZmF1bHQtc3VibGlzdC1pdGVtLWhvdmVyLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2LWRlZmF1bHQtc3VibGlzdC1pdGVtLWFjdGl2ZS1jb2xvcjogJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuJG5hdi1wcmltYXJ5LWl0ZW0tZm9udC1zaXplOiAkZ2xvYmFsLWxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJG5hdi1wcmltYXJ5LWl0ZW0tbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XHJcbiRuYXYtcHJpbWFyeS1pdGVtLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2LXByaW1hcnktaXRlbS1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJG5hdi1wcmltYXJ5LWl0ZW0tYWN0aXZlLWNvbG9yOiAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2LXByaW1hcnktaGVhZGVyLWNvbG9yOiAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2LXByaW1hcnktZGl2aWRlci1ib3JkZXItd2lkdGg6ICRnbG9iYWwtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xyXG4kbmF2LXByaW1hcnktZGl2aWRlci1ib3JkZXI6ICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG4kbmF2LXByaW1hcnktc3VibGlzdC1pdGVtLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2LXByaW1hcnktc3VibGlzdC1pdGVtLWhvdmVyLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2LXByaW1hcnktc3VibGlzdC1pdGVtLWFjdGl2ZS1jb2xvcjogJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuJGludGVybmFsLW5hdi1wYXJlbnQtY2xvc2UtaW1hZ2U6IFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIxNCUyMiUyMGhlaWdodCUzRCUyMjE0JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTQlMjAxNCUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcG9seWxpbmUlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHN0cm9rZSUzRCUyMiMwMDAlMjIlMjBzdHJva2Utd2lkdGglM0QlMjIxLjElMjIlMjBwb2ludHMlM0QlMjIxMCUyMDElMjA0JTIwNyUyMDEwJTIwMTMlMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0VcIiAhZGVmYXVsdDtcclxuJGludGVybmFsLW5hdi1wYXJlbnQtb3Blbi1pbWFnZTogXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjE0JTIyJTIwaGVpZ2h0JTNEJTIyMTQlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNCUyMDE0JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0Nwb2x5bGluZSUyMGZpbGwlM0QlMjJub25lJTIyJTIwc3Ryb2tlJTNEJTIyIzAwMCUyMiUyMHN0cm9rZS13aWR0aCUzRCUyMjEuMSUyMiUyMHBvaW50cyUzRCUyMjElMjA0JTIwNyUyMDEwJTIwMTMlMjA0JTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFXCIgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLW5hdi1wYXJlbnQtaWNvbi1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1uYXYtZGVmYXVsdC1pdGVtLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLW5hdi1kZWZhdWx0LWl0ZW0taG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtbmF2LWRlZmF1bHQtaXRlbS1hY3RpdmUtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtbmF2LWRlZmF1bHQtaGVhZGVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLW5hdi1kZWZhdWx0LWRpdmlkZXItYm9yZGVyOiAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1uYXYtZGVmYXVsdC1zdWJsaXN0LWl0ZW0tY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtbmF2LWRlZmF1bHQtc3VibGlzdC1pdGVtLWhvdmVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLW5hdi1kZWZhdWx0LXN1Ymxpc3QtaXRlbS1hY3RpdmUtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtbmF2LXByaW1hcnktaXRlbS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1uYXYtcHJpbWFyeS1pdGVtLWhvdmVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLW5hdi1wcmltYXJ5LWl0ZW0tYWN0aXZlLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLW5hdi1wcmltYXJ5LWhlYWRlci1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1uYXYtcHJpbWFyeS1kaXZpZGVyLWJvcmRlcjogJGludmVyc2UtZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcclxuJGludmVyc2UtbmF2LXByaW1hcnktc3VibGlzdC1pdGVtLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLW5hdi1wcmltYXJ5LXN1Ymxpc3QtaXRlbS1ob3Zlci1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1uYXYtcHJpbWFyeS1zdWJsaXN0LWl0ZW0tYWN0aXZlLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XHJcbiRuYXZiYXItYmFja2dyb3VuZDogJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kbmF2YmFyLWNvbG9yLW1vZGU6IG5vbmUgIWRlZmF1bHQ7XHJcbiRuYXZiYXItbmF2LWl0ZW0taGVpZ2h0OiA4MHB4ICFkZWZhdWx0O1xyXG4kbmF2YmFyLW5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDogMTVweCAhZGVmYXVsdDtcclxuJG5hdmJhci1uYXYtaXRlbS1jb2xvcjogJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJG5hdmJhci1uYXYtaXRlbS1mb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kbmF2YmFyLW5hdi1pdGVtLWZvbnQtZmFtaWx5OiAkZ2xvYmFsLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xyXG4kbmF2YmFyLW5hdi1pdGVtLWhvdmVyLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2YmFyLW5hdi1pdGVtLW9uY2xpY2stY29sb3I6ICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XHJcbiRuYXZiYXItbmF2LWl0ZW0tYWN0aXZlLWNvbG9yOiAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2YmFyLWl0ZW0tY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRuYXZiYXItdG9nZ2xlLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2YmFyLXRvZ2dsZS1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJG5hdmJhci1zdWJ0aXRsZS1mb250LXNpemU6ICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kbmF2YmFyLWRyb3Bkb3duLXotaW5kZXg6ICRnbG9iYWwtei1pbmRleCArIDIwICFkZWZhdWx0O1xyXG4kbmF2YmFyLWRyb3Bkb3duLXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcclxuJG5hdmJhci1kcm9wZG93bi1tYXJnaW46IDAgIWRlZmF1bHQ7XHJcbiRuYXZiYXItZHJvcGRvd24tcGFkZGluZzogMTVweCAhZGVmYXVsdDtcclxuJG5hdmJhci1kcm9wZG93bi1iYWNrZ3JvdW5kOiAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRuYXZiYXItZHJvcGRvd24tY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRuYXZiYXItZHJvcGRvd24tZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbDogJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRuYXZiYXItZHJvcGRvd24tZ3JpZC1ndXR0ZXItdmVydGljYWw6ICRuYXZiYXItZHJvcGRvd24tZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbCAhZGVmYXVsdDtcclxuJG5hdmJhci1kcm9wZG93bi1kcm9wYmFyLW1hcmdpbi10b3A6IDAgIWRlZmF1bHQ7XHJcbiRuYXZiYXItZHJvcGRvd24tZHJvcGJhci1tYXJnaW4tYm90dG9tOiAkbmF2YmFyLWRyb3Bkb3duLWRyb3BiYXItbWFyZ2luLXRvcCAhZGVmYXVsdDtcclxuJG5hdmJhci1kcm9wZG93bi1uYXYtaXRlbS1jb2xvcjogJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJG5hdmJhci1kcm9wZG93bi1uYXYtaXRlbS1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJG5hdmJhci1kcm9wZG93bi1uYXYtaXRlbS1hY3RpdmUtY29sb3I6ICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XHJcbiRuYXZiYXItZHJvcGRvd24tbmF2LWhlYWRlci1jb2xvcjogJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuJG5hdmJhci1kcm9wZG93bi1uYXYtZGl2aWRlci1ib3JkZXItd2lkdGg6ICRnbG9iYWwtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xyXG4kbmF2YmFyLWRyb3Bkb3duLW5hdi1kaXZpZGVyLWJvcmRlcjogJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XHJcbiRuYXZiYXItZHJvcGRvd24tbmF2LXN1Ymxpc3QtaXRlbS1jb2xvcjogJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJG5hdmJhci1kcm9wZG93bi1uYXYtc3VibGlzdC1pdGVtLWhvdmVyLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2YmFyLWRyb3Bkb3duLW5hdi1zdWJsaXN0LWl0ZW0tYWN0aXZlLWNvbG9yOiAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2YmFyLWRyb3BiYXItYmFja2dyb3VuZDogJG5hdmJhci1kcm9wZG93bi1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kbmF2YmFyLWRyb3BiYXItei1pbmRleDogJGdsb2JhbC16LWluZGV4IC0gMjAgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLW5hdmJhci1uYXYtaXRlbS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0taG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtbmF2YmFyLW5hdi1pdGVtLW9uY2xpY2stY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtbmF2YmFyLW5hdi1pdGVtLWFjdGl2ZS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1uYXZiYXItaXRlbS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1uYXZiYXItdG9nZ2xlLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLW5hdmJhci10b2dnbGUtaG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJG5vdGlmaWNhdGlvbi1wb3NpdGlvbjogMTBweCAhZGVmYXVsdDtcclxuJG5vdGlmaWNhdGlvbi16LWluZGV4OiAkZ2xvYmFsLXotaW5kZXggKyA0MCAhZGVmYXVsdDtcclxuJG5vdGlmaWNhdGlvbi13aWR0aDogMzUwcHggIWRlZmF1bHQ7XHJcbiRub3RpZmljYXRpb24tbWVzc2FnZS1tYXJnaW4tdG9wOiAxMHB4ICFkZWZhdWx0O1xyXG4kbm90aWZpY2F0aW9uLW1lc3NhZ2UtcGFkZGluZzogJGdsb2JhbC1zbWFsbC1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRub3RpZmljYXRpb24tbWVzc2FnZS1iYWNrZ3JvdW5kOiAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRub3RpZmljYXRpb24tbWVzc2FnZS1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJG5vdGlmaWNhdGlvbi1tZXNzYWdlLWZvbnQtc2l6ZTogJGdsb2JhbC1tZWRpdW0tZm9udC1zaXplICFkZWZhdWx0O1xyXG4kbm90aWZpY2F0aW9uLW1lc3NhZ2UtbGluZS1oZWlnaHQ6IDEuNCAhZGVmYXVsdDtcclxuJG5vdGlmaWNhdGlvbi1jbG9zZS10b3A6ICRub3RpZmljYXRpb24tbWVzc2FnZS1wYWRkaW5nICsgNXB4ICFkZWZhdWx0O1xyXG4kbm90aWZpY2F0aW9uLWNsb3NlLXJpZ2h0OiAkbm90aWZpY2F0aW9uLW1lc3NhZ2UtcGFkZGluZyAhZGVmYXVsdDtcclxuJG5vdGlmaWNhdGlvbi1tZXNzYWdlLXByaW1hcnktY29sb3I6ICRnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kbm90aWZpY2F0aW9uLW1lc3NhZ2Utc3VjY2Vzcy1jb2xvcjogJGdsb2JhbC1zdWNjZXNzLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRub3RpZmljYXRpb24tbWVzc2FnZS13YXJuaW5nLWNvbG9yOiAkZ2xvYmFsLXdhcm5pbmctYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJG5vdGlmaWNhdGlvbi1tZXNzYWdlLWRhbmdlci1jb2xvcjogJGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJG9mZmNhbnZhcy16LWluZGV4OiAkZ2xvYmFsLXotaW5kZXggIWRlZmF1bHQ7XHJcbiRvZmZjYW52YXMtYmFyLXdpZHRoOiAyNzBweCAhZGVmYXVsdDtcclxuJG9mZmNhbnZhcy1iYXItcGFkZGluZy12ZXJ0aWNhbDogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRvZmZjYW52YXMtYmFyLXBhZGRpbmctaG9yaXpvbnRhbDogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRvZmZjYW52YXMtYmFyLWJhY2tncm91bmQ6ICRnbG9iYWwtc2Vjb25kYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRvZmZjYW52YXMtYmFyLWNvbG9yLW1vZGU6IGxpZ2h0ICFkZWZhdWx0O1xyXG4kb2ZmY2FudmFzLWJhci13aWR0aC1tOiAzNTBweCAhZGVmYXVsdDtcclxuJG9mZmNhbnZhcy1iYXItcGFkZGluZy12ZXJ0aWNhbC1tOiAkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRvZmZjYW52YXMtYmFyLXBhZGRpbmctaG9yaXpvbnRhbC1tOiAkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRvZmZjYW52YXMtY2xvc2UtcG9zaXRpb246IDIwcHggIWRlZmF1bHQ7XHJcbiRvZmZjYW52YXMtY2xvc2UtcGFkZGluZzogNXB4ICFkZWZhdWx0O1xyXG4kb2ZmY2FudmFzLW92ZXJsYXktYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEpICFkZWZhdWx0O1xyXG4kb3ZlcmxheS1wYWRkaW5nLWhvcml6b250YWw6ICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kb3ZlcmxheS1wYWRkaW5nLXZlcnRpY2FsOiAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcclxuJG92ZXJsYXktZGVmYXVsdC1iYWNrZ3JvdW5kOiByZ2JhKCRnbG9iYWwtYmFja2dyb3VuZCwgMC44KSAhZGVmYXVsdDtcclxuJG92ZXJsYXktcHJpbWFyeS1iYWNrZ3JvdW5kOiByZ2JhKCRnbG9iYWwtc2Vjb25kYXJ5LWJhY2tncm91bmQsIDAuOCkgIWRlZmF1bHQ7XHJcbiRvdmVybGF5LXByaW1hcnktY29sb3ItbW9kZTogbGlnaHQgIWRlZmF1bHQ7XHJcbiRwYWRkaW5nLXBhZGRpbmc6ICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kcGFkZGluZy1wYWRkaW5nLWw6ICRnbG9iYWwtbWVkaXVtLWd1dHRlciAhZGVmYXVsdDtcclxuJHBhZGRpbmctc21hbGwtcGFkZGluZzogJGdsb2JhbC1zbWFsbC1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRwYWRkaW5nLWxhcmdlLXBhZGRpbmc6ICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kcGFkZGluZy1sYXJnZS1wYWRkaW5nLWw6ICRnbG9iYWwtbGFyZ2UtZ3V0dGVyICFkZWZhdWx0O1xyXG4kcGFnaW5hdGlvbi1tYXJnaW4taG9yaXpvbnRhbDogMjBweCAhZGVmYXVsdDtcclxuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJHBhZ2luYXRpb24taXRlbS1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJHBhZ2luYXRpb24taXRlbS1ob3Zlci10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XHJcbiRwYWdpbmF0aW9uLWl0ZW0tYWN0aXZlLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtcGFnaW5hdGlvbi1pdGVtLWhvdmVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLXBhZ2luYXRpb24taXRlbS1hY3RpdmUtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRwbGFjZWhvbGRlci1tYXJnaW4tdmVydGljYWw6ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xyXG4kcGxhY2Vob2xkZXItcGFkZGluZy12ZXJ0aWNhbDogJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRwbGFjZWhvbGRlci1wYWRkaW5nLWhvcml6b250YWw6ICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kcGxhY2Vob2xkZXItYmFja2dyb3VuZDogJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kcG9zaXRpb24tc21hbGwtbWFyZ2luOiAkZ2xvYmFsLXNtYWxsLWd1dHRlciAhZGVmYXVsdDtcclxuJHBvc2l0aW9uLW1lZGl1bS1tYXJnaW46ICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kcG9zaXRpb24tbGFyZ2UtbWFyZ2luOiAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcclxuJHBvc2l0aW9uLWxhcmdlLW1hcmdpbi1sOiA1MHB4ICFkZWZhdWx0O1xyXG4kcHJvZ3Jlc3MtaGVpZ2h0OiAxNXB4ICFkZWZhdWx0O1xyXG4kcHJvZ3Jlc3MtbWFyZ2luLXZlcnRpY2FsOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcclxuJHByb2dyZXNzLWJhY2tncm91bmQ6ICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJHByb2dyZXNzLWJhci1iYWNrZ3JvdW5kOiAkZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJHNlYXJjaC1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJHNlYXJjaC1wbGFjZWhvbGRlci1jb2xvcjogJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJHNlYXJjaC1pY29uLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kc2VhcmNoLWRlZmF1bHQtd2lkdGg6IDE4MHB4ICFkZWZhdWx0O1xyXG4kc2VhcmNoLWRlZmF1bHQtaGVpZ2h0OiAkZ2xvYmFsLWNvbnRyb2wtaGVpZ2h0ICFkZWZhdWx0O1xyXG4kc2VhcmNoLWRlZmF1bHQtcGFkZGluZy1ob3Jpem9udGFsOiA2cHggIWRlZmF1bHQ7XHJcbiRzZWFyY2gtZGVmYXVsdC1iYWNrZ3JvdW5kOiAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRzZWFyY2gtZGVmYXVsdC1mb2N1cy1iYWNrZ3JvdW5kOiAkc2VhcmNoLWRlZmF1bHQtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJHNlYXJjaC1kZWZhdWx0LWljb24td2lkdGg6ICRnbG9iYWwtY29udHJvbC1oZWlnaHQgIWRlZmF1bHQ7XHJcbiRzZWFyY2gtbmF2YmFyLXdpZHRoOiA0MDBweCAhZGVmYXVsdDtcclxuJHNlYXJjaC1uYXZiYXItaGVpZ2h0OiA0MHB4ICFkZWZhdWx0O1xyXG4kc2VhcmNoLW5hdmJhci1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcclxuJHNlYXJjaC1uYXZiYXItZm9udC1zaXplOiAkZ2xvYmFsLWxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJHNlYXJjaC1uYXZiYXItaWNvbi13aWR0aDogNDBweCAhZGVmYXVsdDtcclxuJHNlYXJjaC1sYXJnZS13aWR0aDogNTAwcHggIWRlZmF1bHQ7XHJcbiRzZWFyY2gtbGFyZ2UtaGVpZ2h0OiA4MHB4ICFkZWZhdWx0O1xyXG4kc2VhcmNoLWxhcmdlLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xyXG4kc2VhcmNoLWxhcmdlLWZvbnQtc2l6ZTogJGdsb2JhbC14eGxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJHNlYXJjaC1sYXJnZS1pY29uLXdpZHRoOiA4MHB4ICFkZWZhdWx0O1xyXG4kc2VhcmNoLXRvZ2dsZS1jb2xvcjogJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJHNlYXJjaC10b2dnbGUtaG92ZXItY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLXNlYXJjaC1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1zZWFyY2gtcGxhY2Vob2xkZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2Utc2VhcmNoLWljb24tY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2Utc2VhcmNoLWRlZmF1bHQtYmFja2dyb3VuZDogJGludmVyc2UtZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLXNlYXJjaC1kZWZhdWx0LWZvY3VzLWJhY2tncm91bmQ6ICRpbnZlcnNlLXNlYXJjaC1kZWZhdWx0LWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLXNlYXJjaC1uYXZiYXItYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLXNlYXJjaC1sYXJnZS1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcclxuJGludmVyc2Utc2VhcmNoLXRvZ2dsZS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1zZWFyY2gtdG9nZ2xlLWhvdmVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRzZWN0aW9uLXBhZGRpbmctdmVydGljYWw6ICRnbG9iYWwtbWVkaXVtLW1hcmdpbiAhZGVmYXVsdDtcclxuJHNlY3Rpb24tcGFkZGluZy12ZXJ0aWNhbC1tOiAkZ2xvYmFsLWxhcmdlLW1hcmdpbiAhZGVmYXVsdDtcclxuJHNlY3Rpb24teHNtYWxsLXBhZGRpbmctdmVydGljYWw6ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xyXG4kc2VjdGlvbi1zbWFsbC1wYWRkaW5nLXZlcnRpY2FsOiAkZ2xvYmFsLW1lZGl1bS1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRzZWN0aW9uLWxhcmdlLXBhZGRpbmctdmVydGljYWw6ICRnbG9iYWwtbGFyZ2UtbWFyZ2luICFkZWZhdWx0O1xyXG4kc2VjdGlvbi1sYXJnZS1wYWRkaW5nLXZlcnRpY2FsLW06ICRnbG9iYWwteGxhcmdlLW1hcmdpbiAhZGVmYXVsdDtcclxuJHNlY3Rpb24teGxhcmdlLXBhZGRpbmctdmVydGljYWw6ICRnbG9iYWwteGxhcmdlLW1hcmdpbiAhZGVmYXVsdDtcclxuJHNlY3Rpb24teGxhcmdlLXBhZGRpbmctdmVydGljYWwtbTogKCRnbG9iYWwtbGFyZ2UtbWFyZ2luICsgJGdsb2JhbC14bGFyZ2UtbWFyZ2luKSAhZGVmYXVsdDtcclxuJHNlY3Rpb24tZGVmYXVsdC1iYWNrZ3JvdW5kOiAkZ2xvYmFsLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRzZWN0aW9uLW11dGVkLWJhY2tncm91bmQ6ICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJHNlY3Rpb24tcHJpbWFyeS1iYWNrZ3JvdW5kOiAkZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJHNlY3Rpb24tcHJpbWFyeS1jb2xvci1tb2RlOiBsaWdodCAhZGVmYXVsdDtcclxuJHNlY3Rpb24tc2Vjb25kYXJ5LWJhY2tncm91bmQ6ICRnbG9iYWwtc2Vjb25kYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRzZWN0aW9uLXNlY29uZGFyeS1jb2xvci1tb2RlOiBsaWdodCAhZGVmYXVsdDtcclxuJHNsaWRlbmF2LXBhZGRpbmctdmVydGljYWw6IDVweCAhZGVmYXVsdDtcclxuJHNsaWRlbmF2LXBhZGRpbmctaG9yaXpvbnRhbDogMTBweCAhZGVmYXVsdDtcclxuJHNsaWRlbmF2LWNvbG9yOiByZ2JhKCRnbG9iYWwtY29sb3IsIDAuNSkgIWRlZmF1bHQ7XHJcbiRzbGlkZW5hdi1ob3Zlci1jb2xvcjogcmdiYSgkZ2xvYmFsLWNvbG9yLCAwLjkpICFkZWZhdWx0O1xyXG4kc2xpZGVuYXYtYWN0aXZlLWNvbG9yOiByZ2JhKCRnbG9iYWwtY29sb3IsIDAuNSkgIWRlZmF1bHQ7XHJcbiRzbGlkZW5hdi1sYXJnZS1wYWRkaW5nLXZlcnRpY2FsOiAxMHB4ICFkZWZhdWx0O1xyXG4kc2xpZGVuYXYtbGFyZ2UtcGFkZGluZy1ob3Jpem9udGFsOiAkc2xpZGVuYXYtbGFyZ2UtcGFkZGluZy12ZXJ0aWNhbCAhZGVmYXVsdDtcclxuJGludmVyc2Utc2xpZGVuYXYtY29sb3I6IHJnYmEoJGludmVyc2UtZ2xvYmFsLWNvbG9yLCAwLjcpICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1zbGlkZW5hdi1ob3Zlci1jb2xvcjogcmdiYSgkaW52ZXJzZS1nbG9iYWwtY29sb3IsIDAuOTUpICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1zbGlkZW5hdi1hY3RpdmUtY29sb3I6IHJnYmEoJGludmVyc2UtZ2xvYmFsLWNvbG9yLCAwLjcpICFkZWZhdWx0O1xyXG4kc29ydGFibGUtZHJhZ2dlZC16LWluZGV4OiAkZ2xvYmFsLXotaW5kZXggKyA1MCAhZGVmYXVsdDtcclxuJHNvcnRhYmxlLXBsYWNlaG9sZGVyLW9wYWNpdHk6IDAgIWRlZmF1bHQ7XHJcbiRzb3J0YWJsZS1lbXB0eS1oZWlnaHQ6IDUwcHggIWRlZmF1bHQ7XHJcbiRzcGlubmVyLXNpemU6IDMwcHggIWRlZmF1bHQ7XHJcbiRzcGlubmVyLXN0cm9rZS13aWR0aDogMSAhZGVmYXVsdDtcclxuJHNwaW5uZXItcmFkaXVzOiBmbG9vcigoJHNwaW5uZXItc2l6ZSAtICRzcGlubmVyLXN0cm9rZS13aWR0aCkgLyAyKSAhZGVmYXVsdDtcclxuJHNwaW5uZXItY2lyY3VtZmVyZW5jZTogcm91bmQoMiAqIDMuMTQxICogJHNwaW5uZXItcmFkaXVzKSAhZGVmYXVsdDtcclxuJHNwaW5uZXItZHVyYXRpb246IDEuNHMgIWRlZmF1bHQ7XHJcbiRzdGlja3ktei1pbmRleDogJGdsb2JhbC16LWluZGV4IC0gMjAgIWRlZmF1bHQ7XHJcbiRzdGlja3ktYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjJzICFkZWZhdWx0O1xyXG4kc3RpY2t5LXJldmVyc2UtYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjJzICFkZWZhdWx0O1xyXG4kc3VibmF2LW1hcmdpbi1ob3Jpem9udGFsOiAyMHB4ICFkZWZhdWx0O1xyXG4kc3VibmF2LWl0ZW0tY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRzdWJuYXYtaXRlbS1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJHN1Ym5hdi1pdGVtLWhvdmVyLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcclxuJHN1Ym5hdi1pdGVtLWFjdGl2ZS1jb2xvcjogJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuJHN1Ym5hdi1kaXZpZGVyLW1hcmdpbi1ob3Jpem9udGFsOiAkc3VibmF2LW1hcmdpbi1ob3Jpem9udGFsICFkZWZhdWx0O1xyXG4kc3VibmF2LWRpdmlkZXItYm9yZGVyLWhlaWdodDogMS41ZW0gIWRlZmF1bHQ7XHJcbiRzdWJuYXYtZGl2aWRlci1ib3JkZXItd2lkdGg6ICRnbG9iYWwtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xyXG4kc3VibmF2LWRpdmlkZXItYm9yZGVyOiAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcclxuJHN1Ym5hdi1waWxsLWl0ZW0tcGFkZGluZy12ZXJ0aWNhbDogNXB4ICFkZWZhdWx0O1xyXG4kc3VibmF2LXBpbGwtaXRlbS1wYWRkaW5nLWhvcml6b250YWw6IDEwcHggIWRlZmF1bHQ7XHJcbiRzdWJuYXYtcGlsbC1pdGVtLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xyXG4kc3VibmF2LXBpbGwtaXRlbS1jb2xvcjogJHN1Ym5hdi1pdGVtLWNvbG9yICFkZWZhdWx0O1xyXG4kc3VibmF2LXBpbGwtaXRlbS1ob3Zlci1iYWNrZ3JvdW5kOiAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRzdWJuYXYtcGlsbC1pdGVtLWhvdmVyLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kc3VibmF2LXBpbGwtaXRlbS1vbmNsaWNrLWJhY2tncm91bmQ6ICRzdWJuYXYtcGlsbC1pdGVtLWhvdmVyLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRzdWJuYXYtcGlsbC1pdGVtLW9uY2xpY2stY29sb3I6ICRzdWJuYXYtcGlsbC1pdGVtLWhvdmVyLWNvbG9yICFkZWZhdWx0O1xyXG4kc3VibmF2LXBpbGwtaXRlbS1hY3RpdmUtYmFja2dyb3VuZDogJGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRzdWJuYXYtcGlsbC1pdGVtLWFjdGl2ZS1jb2xvcjogJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xyXG4kc3VibmF2LWl0ZW0tZGlzYWJsZWQtY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLXN1Ym5hdi1pdGVtLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLXN1Ym5hdi1pdGVtLWhvdmVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLXN1Ym5hdi1pdGVtLWFjdGl2ZS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1zdWJuYXYtZGl2aWRlci1ib3JkZXI6ICRpbnZlcnNlLWdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0tYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0tY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1ob3Zlci1iYWNrZ3JvdW5kOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1ob3Zlci1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLW9uY2xpY2stYmFja2dyb3VuZDogJGludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1ob3Zlci1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLW9uY2xpY2stY29sb3I6ICRpbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0taG92ZXItY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0tYWN0aXZlLWJhY2tncm91bmQ6ICRpbnZlcnNlLWdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0tYWN0aXZlLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2Utc3VibmF2LWl0ZW0tZGlzYWJsZWQtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJHRhYi1tYXJnaW4taG9yaXpvbnRhbDogMjBweCAhZGVmYXVsdDtcclxuJHRhYi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDogMTBweCAhZGVmYXVsdDtcclxuJHRhYi1pdGVtLXBhZGRpbmctdmVydGljYWw6IDVweCAhZGVmYXVsdDtcclxuJHRhYi1pdGVtLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kdGFiLWl0ZW0taG92ZXItY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiR0YWItaXRlbS1ob3Zlci10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XHJcbiR0YWItaXRlbS1hY3RpdmUtY29sb3I6ICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XHJcbiR0YWItaXRlbS1kaXNhYmxlZC1jb2xvcjogJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtdGFiLWl0ZW0tY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtdGFiLWl0ZW0taG92ZXItY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtdGFiLWl0ZW0tYWN0aXZlLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLXRhYi1pdGVtLWRpc2FibGVkLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiR0YWJsZS1tYXJnaW4tdmVydGljYWw6ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xyXG4kdGFibGUtY2VsbC1wYWRkaW5nLXZlcnRpY2FsOiAxNnB4ICFkZWZhdWx0O1xyXG4kdGFibGUtY2VsbC1wYWRkaW5nLWhvcml6b250YWw6IDEycHggIWRlZmF1bHQ7XHJcbiR0YWJsZS1oZWFkZXItY2VsbC1mb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kdGFibGUtaGVhZGVyLWNlbGwtZm9udC13ZWlnaHQ6IGJvbGQgIWRlZmF1bHQ7XHJcbiR0YWJsZS1oZWFkZXItY2VsbC1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJHRhYmxlLWZvb3Rlci1mb250LXNpemU6ICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kdGFibGUtY2FwdGlvbi1mb250LXNpemU6ICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kdGFibGUtY2FwdGlvbi1jb2xvcjogJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJHRhYmxlLXJvdy1hY3RpdmUtYmFja2dyb3VuZDogI2ZmZCAhZGVmYXVsdDtcclxuJHRhYmxlLWRpdmlkZXItYm9yZGVyLXdpZHRoOiAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcclxuJHRhYmxlLWRpdmlkZXItYm9yZGVyOiAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcclxuJHRhYmxlLXN0cmlwZWQtcm93LWJhY2tncm91bmQ6ICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJHRhYmxlLWhvdmVyLXJvdy1iYWNrZ3JvdW5kOiAkdGFibGUtcm93LWFjdGl2ZS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kdGFibGUtc21hbGwtY2VsbC1wYWRkaW5nLXZlcnRpY2FsOiAxMHB4ICFkZWZhdWx0O1xyXG4kdGFibGUtc21hbGwtY2VsbC1wYWRkaW5nLWhvcml6b250YWw6IDEycHggIWRlZmF1bHQ7XHJcbiR0YWJsZS1sYXJnZS1jZWxsLXBhZGRpbmctdmVydGljYWw6IDIycHggIWRlZmF1bHQ7XHJcbiR0YWJsZS1sYXJnZS1jZWxsLXBhZGRpbmctaG9yaXpvbnRhbDogMTJweCAhZGVmYXVsdDtcclxuJHRhYmxlLWV4cGFuZC1taW4td2lkdGg6IDE1MHB4ICFkZWZhdWx0O1xyXG4kaW52ZXJzZS10YWJsZS1oZWFkZXItY2VsbC1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS10YWJsZS1jYXB0aW9uLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLXRhYmxlLXJvdy1hY3RpdmUtYmFja2dyb3VuZDogZmFkZS1vdXQoJGludmVyc2UtZ2xvYmFsLW11dGVkLWJhY2tncm91bmQsIDAuMDIpICFkZWZhdWx0O1xyXG4kaW52ZXJzZS10YWJsZS1kaXZpZGVyLWJvcmRlcjogJGludmVyc2UtZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcclxuJGludmVyc2UtdGFibGUtc3RyaXBlZC1yb3ctYmFja2dyb3VuZDogJGludmVyc2UtZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLXRhYmxlLWhvdmVyLXJvdy1iYWNrZ3JvdW5kOiAkaW52ZXJzZS10YWJsZS1yb3ctYWN0aXZlLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiR0ZXh0LWxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJHRleHQtbGVhZC1saW5lLWhlaWdodDogMS41ICFkZWZhdWx0O1xyXG4kdGV4dC1sZWFkLWNvbG9yOiAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kdGV4dC1tZXRhLWZvbnQtc2l6ZTogJGdsb2JhbC1zbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiR0ZXh0LW1ldGEtbGluZS1oZWlnaHQ6IDEuNCAhZGVmYXVsdDtcclxuJHRleHQtbWV0YS1jb2xvcjogJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJHRleHQtc21hbGwtZm9udC1zaXplOiAkZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJHRleHQtc21hbGwtbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcclxuJHRleHQtbGFyZ2UtZm9udC1zaXplOiAkZ2xvYmFsLWxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJHRleHQtbGFyZ2UtbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcclxuJHRleHQtbXV0ZWQtY29sb3I6ICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiR0ZXh0LWVtcGhhc2lzLWNvbG9yOiAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kdGV4dC1wcmltYXJ5LWNvbG9yOiAkZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJHRleHQtc2Vjb25kYXJ5LWNvbG9yOiAkZ2xvYmFsLXNlY29uZGFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kdGV4dC1zdWNjZXNzLWNvbG9yOiAkZ2xvYmFsLXN1Y2Nlc3MtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJHRleHQtd2FybmluZy1jb2xvcjogJGdsb2JhbC13YXJuaW5nLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiR0ZXh0LWRhbmdlci1jb2xvcjogJGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJHRleHQtYmFja2dyb3VuZC1jb2xvcjogJGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLXRleHQtbGVhZC1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS10ZXh0LW1ldGEtY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtdGV4dC1tdXRlZC1jb2xvcjogJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS10ZXh0LWVtcGhhc2lzLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLXRleHQtcHJpbWFyeS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGludmVyc2UtdGV4dC1zZWNvbmRhcnktY29sb3I6ICRpbnZlcnNlLWdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiR0aHVtYm5hdi1tYXJnaW4taG9yaXpvbnRhbDogMTVweCAhZGVmYXVsdDtcclxuJHRodW1ibmF2LW1hcmdpbi12ZXJ0aWNhbDogJHRodW1ibmF2LW1hcmdpbi1ob3Jpem9udGFsICFkZWZhdWx0O1xyXG4kdGlsZS1wYWRkaW5nLWhvcml6b250YWw6IDE1cHggIWRlZmF1bHQ7XHJcbiR0aWxlLXBhZGRpbmctaG9yaXpvbnRhbC1zOiAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcclxuJHRpbGUtcGFkZGluZy1ob3Jpem9udGFsLW06ICRnbG9iYWwtbWVkaXVtLWd1dHRlciAhZGVmYXVsdDtcclxuJHRpbGUtcGFkZGluZy12ZXJ0aWNhbDogJGdsb2JhbC1tZWRpdW0tbWFyZ2luICFkZWZhdWx0O1xyXG4kdGlsZS1wYWRkaW5nLXZlcnRpY2FsLW06ICRnbG9iYWwtbGFyZ2UtbWFyZ2luICFkZWZhdWx0O1xyXG4kdGlsZS14c21hbGwtcGFkZGluZy12ZXJ0aWNhbDogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XHJcbiR0aWxlLXNtYWxsLXBhZGRpbmctdmVydGljYWw6ICRnbG9iYWwtbWVkaXVtLW1hcmdpbiAhZGVmYXVsdDtcclxuJHRpbGUtbGFyZ2UtcGFkZGluZy12ZXJ0aWNhbDogJGdsb2JhbC1sYXJnZS1tYXJnaW4gIWRlZmF1bHQ7XHJcbiR0aWxlLWxhcmdlLXBhZGRpbmctdmVydGljYWwtbTogJGdsb2JhbC14bGFyZ2UtbWFyZ2luICFkZWZhdWx0O1xyXG4kdGlsZS14bGFyZ2UtcGFkZGluZy12ZXJ0aWNhbDogJGdsb2JhbC14bGFyZ2UtbWFyZ2luICFkZWZhdWx0O1xyXG4kdGlsZS14bGFyZ2UtcGFkZGluZy12ZXJ0aWNhbC1tOiAoJGdsb2JhbC1sYXJnZS1tYXJnaW4gKyAkZ2xvYmFsLXhsYXJnZS1tYXJnaW4pICFkZWZhdWx0O1xyXG4kdGlsZS1kZWZhdWx0LWJhY2tncm91bmQ6ICRnbG9iYWwtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJHRpbGUtbXV0ZWQtYmFja2dyb3VuZDogJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kdGlsZS1wcmltYXJ5LWJhY2tncm91bmQ6ICRnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kdGlsZS1wcmltYXJ5LWNvbG9yLW1vZGU6IGxpZ2h0ICFkZWZhdWx0O1xyXG4kdGlsZS1zZWNvbmRhcnktYmFja2dyb3VuZDogJGdsb2JhbC1zZWNvbmRhcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJHRpbGUtc2Vjb25kYXJ5LWNvbG9yLW1vZGU6IGxpZ2h0ICFkZWZhdWx0O1xyXG4kdG9vbHRpcC16LWluZGV4OiAkZ2xvYmFsLXotaW5kZXggKyAzMCAhZGVmYXVsdDtcclxuJHRvb2x0aXAtbWF4LXdpZHRoOiAyMDBweCAhZGVmYXVsdDtcclxuJHRvb2x0aXAtcGFkZGluZy12ZXJ0aWNhbDogM3B4ICFkZWZhdWx0O1xyXG4kdG9vbHRpcC1wYWRkaW5nLWhvcml6b250YWw6IDZweCAhZGVmYXVsdDtcclxuJHRvb2x0aXAtYmFja2dyb3VuZDogIzY2NiAhZGVmYXVsdDtcclxuJHRvb2x0aXAtYm9yZGVyLXJhZGl1czogMnB4ICFkZWZhdWx0O1xyXG4kdG9vbHRpcC1jb2xvcjogJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xyXG4kdG9vbHRpcC1mb250LXNpemU6IDEycHggIWRlZmF1bHQ7XHJcbiR0b29sdGlwLW1hcmdpbjogMTBweCAhZGVmYXVsdDtcclxuJHRvdG9wLXBhZGRpbmc6IDVweCAhZGVmYXVsdDtcclxuJHRvdG9wLWNvbG9yOiAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kdG90b3AtaG92ZXItY29sb3I6ICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiR0b3RvcC1hY3RpdmUtY29sb3I6ICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLXRvdG9wLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLXRvdG9wLWhvdmVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLXRvdG9wLWFjdGl2ZS1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcyAhZGVmYXVsdDtcclxuJHRyYW5zaXRpb24tc2NhbGU6IDEuMSAhZGVmYXVsdDtcclxuJHRyYW5zaXRpb24tc2xpZGUtc21hbGwtdHJhbnNsYXRlOiAxMHB4ICFkZWZhdWx0O1xyXG4kdHJhbnNpdGlvbi1zbGlkZS1tZWRpdW0tdHJhbnNsYXRlOiA1MHB4ICFkZWZhdWx0O1xyXG4kdHJhbnNpdGlvbi1zbG93LWR1cmF0aW9uOiAwLjdzICFkZWZhdWx0O1xyXG4kcGFuZWwtc2Nyb2xsYWJsZS1oZWlnaHQ6IDE3MHB4ICFkZWZhdWx0O1xyXG4kcGFuZWwtc2Nyb2xsYWJsZS1wYWRkaW5nOiAxMHB4ICFkZWZhdWx0O1xyXG4kcGFuZWwtc2Nyb2xsYWJsZS1ib3JkZXItd2lkdGg6ICRnbG9iYWwtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xyXG4kcGFuZWwtc2Nyb2xsYWJsZS1ib3JkZXI6ICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG4kYm9yZGVyLXJvdW5kZWQtYm9yZGVyLXJhZGl1czogNXB4ICFkZWZhdWx0O1xyXG4kYm94LXNoYWRvdy1kdXJhdGlvbjogMC4xcyAhZGVmYXVsdDtcclxuJGJveC1zaGFkb3ctYm90dG9tLWhlaWdodDogMzBweCAhZGVmYXVsdDtcclxuJGJveC1zaGFkb3ctYm90dG9tLWJvcmRlci1yYWRpdXM6IDEwMCUgIWRlZmF1bHQ7XHJcbiRib3gtc2hhZG93LWJvdHRvbS1iYWNrZ3JvdW5kOiAjNDQ0ICFkZWZhdWx0O1xyXG4kYm94LXNoYWRvdy1ib3R0b20tYmx1cjogMjBweCAhZGVmYXVsdDtcclxuJGRyb3BjYXAtbWFyZ2luLXJpZ2h0OiAxMHB4ICFkZWZhdWx0O1xyXG4kZHJvcGNhcC1mb250LXNpemU6ICgoJGdsb2JhbC1saW5lLWhlaWdodCAqIDMpICogMWVtKSAhZGVmYXVsdDtcclxuJGxvZ28tZm9udC1zaXplOiAkZ2xvYmFsLWxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJGxvZ28tZm9udC1mYW1pbHk6ICRnbG9iYWwtZm9udC1mYW1pbHkgIWRlZmF1bHQ7XHJcbiRsb2dvLWNvbG9yOiAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kbG9nby1ob3Zlci1jb2xvcjogJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGRyYWdvdmVyLWJveC1zaGFkb3c6IDAgMCAyMHB4IHJnYmEoMTAwLDEwMCwxMDAsMC4zKSAhZGVmYXVsdDtcclxuJGludmVyc2UtbG9nby1jb2xvcjogJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1sb2dvLWhvdmVyLWNvbG9yOiAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRkZXByZWNhdGVkOiBmYWxzZSAhZGVmYXVsdDtcclxuJGJyZWFrcG9pbnQtc21hbGw6IDY0MHB4ICFkZWZhdWx0O1xyXG4kYnJlYWtwb2ludC1tZWRpdW06IDk2MHB4ICFkZWZhdWx0O1xyXG4kYnJlYWtwb2ludC1sYXJnZTogMTIwMHB4ICFkZWZhdWx0O1xyXG4kYnJlYWtwb2ludC14bGFyZ2U6IDE2MDBweCAhZGVmYXVsdDtcclxuJGJyZWFrcG9pbnQteHNtYWxsLW1heDogKCRicmVha3BvaW50LXNtYWxsIC0gMSkgIWRlZmF1bHQ7XHJcbiRicmVha3BvaW50LXNtYWxsLW1heDogKCRicmVha3BvaW50LW1lZGl1bSAtIDEpICFkZWZhdWx0O1xyXG4kYnJlYWtwb2ludC1tZWRpdW0tbWF4OiAoJGJyZWFrcG9pbnQtbGFyZ2UgLSAxKSAhZGVmYXVsdDtcclxuJGJyZWFrcG9pbnQtbGFyZ2UtbWF4OiAoJGJyZWFrcG9pbnQteGxhcmdlIC0gMSkgIWRlZmF1bHQ7XHJcbiRnbG9iYWwtc21hbGwtYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwwLDAsMC4wOCkgIWRlZmF1bHQ7XHJcbiRnbG9iYWwtbWVkaXVtLWJveC1zaGFkb3c6IDAgNXB4IDE1cHggcmdiYSgwLDAsMCwwLjA4KSAhZGVmYXVsdDtcclxuJGdsb2JhbC1sYXJnZS1ib3gtc2hhZG93OiAwIDE0cHggMjVweCByZ2JhKDAsMCwwLDAuMTYpICFkZWZhdWx0O1xyXG4kZ2xvYmFsLXhsYXJnZS1ib3gtc2hhZG93OiAwIDI4cHggNTBweCByZ2JhKDAsMCwwLDAuMTYpICFkZWZhdWx0O1xyXG4kd2lkdGgtc21hbGwtd2lkdGg6IDE1MHB4ICFkZWZhdWx0O1xyXG4kd2lkdGgtbWVkaXVtLXdpZHRoOiAzMDBweCAhZGVmYXVsdDtcclxuJHdpZHRoLWxhcmdlLXdpZHRoOiA0NTBweCAhZGVmYXVsdDtcclxuJHdpZHRoLXhsYXJnZS13aWR0aDogNjAwcHggIWRlZmF1bHQ7XHJcbiR3aWR0aC14eGxhcmdlLXdpZHRoOiA3NTBweCAhZGVmYXVsdDsiLCIvLyBOYW1lOiAgICAgICAgICAgIExpbmtcclxuLy8gRGVzY3JpcHRpb246ICAgICBTdHlsZXMgZm9yIGxpbmtzXHJcbi8vXHJcbi8vIENvbXBvbmVudDogICAgICAgYHVrLWxpbmstbXV0ZWRgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWxpbmstdGV4dGBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstbGluay1oZWFkaW5nYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1saW5rLXJlc2V0YFxyXG4vL1xyXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay1saW5rLXRvZ2dsZWBcclxuLy9cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5cclxuLy8gVmFyaWFibGVzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuJGxpbmstbXV0ZWQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRsaW5rLW11dGVkLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG5cclxuJGxpbmstdGV4dC1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4kbGluay1oZWFkaW5nLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRsaW5rLWhlYWRpbmctaG92ZXItdGV4dC1kZWNvcmF0aW9uOiAgICAgICAgICAgICBub25lICFkZWZhdWx0O1xyXG5cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IExpbmtcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5cclxuLyogTXV0ZWRcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5hLnVrLWxpbmstbXV0ZWQsXHJcbi51ay1saW5rLW11dGVkIGEge1xyXG4gICAgY29sb3I6ICRsaW5rLW11dGVkLWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWxpbmstbXV0ZWQpKSB7QGluY2x1ZGUgaG9vay1saW5rLW11dGVkKCk7fVxyXG59XHJcblxyXG5hLnVrLWxpbmstbXV0ZWQ6aG92ZXIsXHJcbi51ay1saW5rLW11dGVkIGE6aG92ZXIsXHJcbi51ay1saW5rLXRvZ2dsZTpob3ZlciAudWstbGluay1tdXRlZCxcclxuLnVrLWxpbmstdG9nZ2xlOmZvY3VzIC51ay1saW5rLW11dGVkIHtcclxuICAgIGNvbG9yOiAkbGluay1tdXRlZC1ob3Zlci1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1saW5rLW11dGVkLWhvdmVyKSkge0BpbmNsdWRlIGhvb2stbGluay1tdXRlZC1ob3ZlcigpO31cclxufVxyXG5cclxuXHJcbi8qIFRleHRcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5hLnVrLWxpbmstdGV4dCxcclxuLnVrLWxpbmstdGV4dCBhIHtcclxuICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWxpbmstdGV4dCkpIHtAaW5jbHVkZSBob29rLWxpbmstdGV4dCgpO31cclxufVxyXG5cclxuYS51ay1saW5rLXRleHQ6aG92ZXIsXHJcbi51ay1saW5rLXRleHQgYTpob3ZlcixcclxuLnVrLWxpbmstdG9nZ2xlOmhvdmVyIC51ay1saW5rLXRleHQsXHJcbi51ay1saW5rLXRvZ2dsZTpmb2N1cyAudWstbGluay10ZXh0IHtcclxuICAgIGNvbG9yOiAkbGluay10ZXh0LWhvdmVyLWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWxpbmstdGV4dC1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWxpbmstdGV4dC1ob3ZlcigpO31cclxufVxyXG5cclxuXHJcbi8qIEhlYWRpbmdcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5hLnVrLWxpbmstaGVhZGluZyxcclxuLnVrLWxpbmstaGVhZGluZyBhIHtcclxuICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWxpbmstaGVhZGluZykpIHtAaW5jbHVkZSBob29rLWxpbmstaGVhZGluZygpO31cclxufVxyXG5cclxuYS51ay1saW5rLWhlYWRpbmc6aG92ZXIsXHJcbi51ay1saW5rLWhlYWRpbmcgYTpob3ZlcixcclxuLnVrLWxpbmstdG9nZ2xlOmhvdmVyIC51ay1saW5rLWhlYWRpbmcsXHJcbi51ay1saW5rLXRvZ2dsZTpmb2N1cyAudWstbGluay1oZWFkaW5nIHtcclxuICAgIGNvbG9yOiAkbGluay1oZWFkaW5nLWhvdmVyLWNvbG9yO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkbGluay1oZWFkaW5nLWhvdmVyLXRleHQtZGVjb3JhdGlvbjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1saW5rLWhlYWRpbmctaG92ZXIpKSB7QGluY2x1ZGUgaG9vay1saW5rLWhlYWRpbmctaG92ZXIoKTt9XHJcbn1cclxuXHJcblxyXG4vKiBSZXNldFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIGAhaW1wb3J0YW50YCBuZWVkZWQgdG8gb3ZlcnJpZGUgaW52ZXJzZSBjb21wb25lbnRcclxuICovXHJcblxyXG5hLnVrLWxpbmstcmVzZXQsXHJcbi51ay1saW5rLXJlc2V0IGEge1xyXG4gICAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWxpbmstcmVzZXQpKSB7QGluY2x1ZGUgaG9vay1saW5rLXJlc2V0KCk7fVxyXG59XHJcblxyXG5cclxuLyogVG9nZ2xlXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVrLWxpbmstdG9nZ2xlIHtcclxuICAgIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcclxufVxyXG4gXHJcbi51ay1saW5rLXRvZ2dsZTpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IH1cclxuXHJcblxyXG4vLyBIb29rc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbkBpZihtaXhpbi1leGlzdHMoaG9vay1saW5rLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1saW5rLW1pc2MoKTt9XHJcblxyXG4vLyBAbWl4aW4gaG9vay1saW5rLW11dGVkKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1saW5rLW11dGVkLWhvdmVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1saW5rLXRleHQoKXt9XHJcbi8vIEBtaXhpbiBob29rLWxpbmstdGV4dC1ob3Zlcigpe31cclxuLy8gQG1peGluIGhvb2stbGluay1oZWFkaW5nKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1saW5rLWhlYWRpbmctaG92ZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLWxpbmstcmVzZXQoKXt9XHJcbi8vIEBtaXhpbiBob29rLWxpbmstbWlzYygpe31cclxuXHJcblxyXG4vLyBJbnZlcnNlXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuJGludmVyc2UtbGluay1tdXRlZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1saW5rLW11dGVkLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWxpbmstdGV4dC1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtbGluay1oZWFkaW5nLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuXHJcblxyXG5cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1saW5rLW11dGVkKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWxpbmstbXV0ZWQtaG92ZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLWludmVyc2UtbGluay10ZXh0LWhvdmVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWxpbmstaGVhZGluZy1ob3Zlcigpe31cclxuIiwiLy8gTmFtZTogICAgICAgICAgICBIZWFkaW5nXHJcbi8vIERlc2NyaXB0aW9uOiAgICAgU3R5bGVzIGZvciBoZWFkaW5nc1xyXG4vL1xyXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1oZWFkaW5nLXByaW1hcnlgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWhlYWRpbmctaGVyb2BcclxuLy8gICAgICAgICAgICAgICAgICBgdWstaGVhZGluZy1kaXZpZGVyYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1oZWFkaW5nLWJ1bGxldGBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstaGVhZGluZy1saW5lYFxyXG4vL1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcblxyXG4vLyBWYXJpYWJsZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4kaGVhZGluZy1zbWFsbC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgJGhlYWRpbmctc21hbGwtZm9udC1zaXplLW0gKiAwLjggIWRlZmF1bHQ7ICAgICAgLy8gMzhweCAwLjczXHJcbiRoZWFkaW5nLW1lZGl1bS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAkaGVhZGluZy1tZWRpdW0tZm9udC1zaXplLW0gKiAwLjgyNSAhZGVmYXVsdDsgICAgIC8vIDQwcHggMC43MTRcclxuJGhlYWRpbmctbGFyZ2UtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICRoZWFkaW5nLWxhcmdlLWZvbnQtc2l6ZS1tICogMC44NSAhZGVmYXVsdDsgICAgICAvLyA1MHB4IDAuNzhcclxuJGhlYWRpbmcteGxhcmdlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICRoZWFkaW5nLWxhcmdlLWZvbnQtc2l6ZS1tICFkZWZhdWx0OyAgICAgICAgICAgICAvLyA0cmVtIC8gNjRweFxyXG4kaGVhZGluZy0yeGxhcmdlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgJGhlYWRpbmcteGxhcmdlLWZvbnQtc2l6ZS1tICFkZWZhdWx0OyAgICAgICAgICAgIC8vIDZyZW0gLyA5NnB4XHJcblxyXG4kaGVhZGluZy1zbWFsbC1mb250LXNpemUtbTogICAgICAgICAgICAgICAgICAgICAgJGhlYWRpbmctbWVkaXVtLWZvbnQtc2l6ZS1sICogMC44MTI1ICFkZWZhdWx0OyAgIC8vIDMuMjVyZW0gLyA1MnB4XHJcbiRoZWFkaW5nLW1lZGl1bS1mb250LXNpemUtbTogICAgICAgICAgICAgICAgICAgICAkaGVhZGluZy1tZWRpdW0tZm9udC1zaXplLWwgKiAwLjg3NSAhZGVmYXVsdDsgICAgLy8gMy41cmVtIC8gNTZweCBcclxuJGhlYWRpbmctbGFyZ2UtZm9udC1zaXplLW06ICAgICAgICAgICAgICAgICAgICAgICRoZWFkaW5nLW1lZGl1bS1mb250LXNpemUtbCAhZGVmYXVsdDsgICAgICAgICAgICAvLyA0cmVtIC8gNjRweFxyXG4kaGVhZGluZy14bGFyZ2UtZm9udC1zaXplLW06ICAgICAgICAgICAgICAgICAgICAgJGhlYWRpbmctbGFyZ2UtZm9udC1zaXplLWwgIWRlZmF1bHQ7ICAgICAgICAgICAgIC8vIDZyZW0gLyA5NnB4XHJcbiRoZWFkaW5nLTJ4bGFyZ2UtZm9udC1zaXplLW06ICAgICAgICAgICAgICAgICAgICAkaGVhZGluZy14bGFyZ2UtZm9udC1zaXplLWwgIWRlZmF1bHQ7ICAgICAgICAgICAgLy8gOHJlbSAvIDEyOHB4XHJcblxyXG4kaGVhZGluZy1tZWRpdW0tZm9udC1zaXplLWw6ICAgICAgICAgICAgICAgICAgICAgNHJlbSAhZGVmYXVsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDY0cHhcclxuJGhlYWRpbmctbGFyZ2UtZm9udC1zaXplLWw6ICAgICAgICAgICAgICAgICAgICAgIDZyZW0gIWRlZmF1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA5NnB4XHJcbiRoZWFkaW5nLXhsYXJnZS1mb250LXNpemUtbDogICAgICAgICAgICAgICAgICAgICA4cmVtICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMTI4cHhcclxuJGhlYWRpbmctMnhsYXJnZS1mb250LXNpemUtbDogICAgICAgICAgICAgICAgICAgIDExcmVtICFkZWZhdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAxNzZweFxyXG5cclxuJGhlYWRpbmctc21hbGwtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgIDEuMiAhZGVmYXVsdDtcclxuJGhlYWRpbmctbWVkaXVtLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgIDEuMSAhZGVmYXVsdDtcclxuJGhlYWRpbmctbGFyZ2UtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgIDEuMSAhZGVmYXVsdDtcclxuJGhlYWRpbmcteGxhcmdlLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgIDEgIWRlZmF1bHQ7XHJcbiRoZWFkaW5nLTJ4bGFyZ2UtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAxICFkZWZhdWx0O1xyXG5cclxuJGhlYWRpbmctZGl2aWRlci1wYWRkaW5nLWJvdHRvbTogICAgICAgICAgICAgICAgIHVucXVvdGUoJ2NhbGMoNXB4ICsgMC4xZW0pJykgIWRlZmF1bHQ7XHJcbiRoZWFkaW5nLWRpdmlkZXItYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICB1bnF1b3RlKCdjYWxjKDAuMnB4ICsgMC4wNWVtKScpICFkZWZhdWx0O1xyXG4kaGVhZGluZy1kaXZpZGVyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XHJcblxyXG4kaGVhZGluZy1idWxsZXQtdG9wOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5xdW90ZSgnY2FsYygtMC4xICogMWVtKScpICFkZWZhdWx0O1xyXG4kaGVhZGluZy1idWxsZXQtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgdW5xdW90ZSgnY2FsYyg0cHggKyAwLjdlbSknKSAhZGVmYXVsdDtcclxuJGhlYWRpbmctYnVsbGV0LW1hcmdpbi1yaWdodDogICAgICAgICAgICAgICAgICAgIHVucXVvdGUoJ2NhbGMoNXB4ICsgMC4yZW0pJykgIWRlZmF1bHQ7XHJcbiRoZWFkaW5nLWJ1bGxldC1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAgICB1bnF1b3RlKCdjYWxjKDVweCArIDAuMWVtKScpICFkZWZhdWx0O1xyXG4kaGVhZGluZy1idWxsZXQtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XHJcblxyXG4kaGVhZGluZy1saW5lLXRvcDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTAlICFkZWZhdWx0O1xyXG4kaGVhZGluZy1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGhlYWRpbmctbGluZS1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XHJcbiRoZWFkaW5nLWxpbmUtd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMDAwcHggIWRlZmF1bHQ7XHJcbiRoZWFkaW5nLWxpbmUtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICB1bnF1b3RlKCdjYWxjKDAuMnB4ICsgMC4wNWVtKScpICFkZWZhdWx0O1xyXG4kaGVhZGluZy1saW5lLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XHJcbiRoZWFkaW5nLWxpbmUtbWFyZ2luLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICB1bnF1b3RlKCdjYWxjKDVweCArIDAuM2VtKScpICFkZWZhdWx0O1xyXG5cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IEhlYWRpbmdcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstaGVhZGluZy1zbWFsbCB7XHJcbiAgICBmb250LXNpemU6ICRoZWFkaW5nLXNtYWxsLWZvbnQtc2l6ZTtcclxuICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGluZy1zbWFsbC1saW5lLWhlaWdodDtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1oZWFkaW5nLXNtYWxsKSkge0BpbmNsdWRlIGhvb2staGVhZGluZy1zbWFsbCgpO31cclxufVxyXG5cclxuLnVrLWhlYWRpbmctbWVkaXVtIHtcclxuICAgIGZvbnQtc2l6ZTogJGhlYWRpbmctbWVkaXVtLWZvbnQtc2l6ZTtcclxuICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGluZy1tZWRpdW0tbGluZS1oZWlnaHQ7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staGVhZGluZy1tZWRpdW0pKSB7QGluY2x1ZGUgaG9vay1oZWFkaW5nLW1lZGl1bSgpO31cclxufVxyXG5cclxuLnVrLWhlYWRpbmctbGFyZ2Uge1xyXG4gICAgZm9udC1zaXplOiAkaGVhZGluZy1sYXJnZS1mb250LXNpemU7XHJcbiAgICBsaW5lLWhlaWdodDogJGhlYWRpbmctbGFyZ2UtbGluZS1oZWlnaHQ7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staGVhZGluZy1sYXJnZSkpIHtAaW5jbHVkZSBob29rLWhlYWRpbmctbGFyZ2UoKTt9XHJcbn1cclxuXHJcbi51ay1oZWFkaW5nLXhsYXJnZSB7XHJcbiAgICBmb250LXNpemU6ICRoZWFkaW5nLXhsYXJnZS1mb250LXNpemU7XHJcbiAgICBsaW5lLWhlaWdodDogJGhlYWRpbmcteGxhcmdlLWxpbmUtaGVpZ2h0O1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWhlYWRpbmcteGxhcmdlKSkge0BpbmNsdWRlIGhvb2staGVhZGluZy14bGFyZ2UoKTt9XHJcbn1cclxuXHJcbi51ay1oZWFkaW5nLTJ4bGFyZ2Uge1xyXG4gICAgZm9udC1zaXplOiAkaGVhZGluZy0yeGxhcmdlLWZvbnQtc2l6ZTtcclxuICAgIGxpbmUtaGVpZ2h0OiAkaGVhZGluZy0yeGxhcmdlLWxpbmUtaGVpZ2h0O1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWhlYWRpbmctMnhsYXJnZSkpIHtAaW5jbHVkZSBob29rLWhlYWRpbmctMnhsYXJnZSgpO31cclxufVxyXG5cclxuLyogVGFibGV0IExhbmRzY2FwZSBhbmQgYmlnZ2VyICovXHJcbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcclxuXHJcbiAgICAudWstaGVhZGluZy1zbWFsbCB7IGZvbnQtc2l6ZTogJGhlYWRpbmctc21hbGwtZm9udC1zaXplLW07IH1cclxuICAgIC51ay1oZWFkaW5nLW1lZGl1bSB7IGZvbnQtc2l6ZTogJGhlYWRpbmctbWVkaXVtLWZvbnQtc2l6ZS1tOyB9XHJcbiAgICAudWstaGVhZGluZy1sYXJnZSB7IGZvbnQtc2l6ZTogJGhlYWRpbmctbGFyZ2UtZm9udC1zaXplLW07IH1cclxuICAgIC51ay1oZWFkaW5nLXhsYXJnZSB7IGZvbnQtc2l6ZTogJGhlYWRpbmcteGxhcmdlLWZvbnQtc2l6ZS1tOyB9XHJcbiAgICAudWstaGVhZGluZy0yeGxhcmdlIHsgZm9udC1zaXplOiAkaGVhZGluZy0yeGxhcmdlLWZvbnQtc2l6ZS1tOyB9XHJcblxyXG59XHJcblxyXG4vKiBMYXB0b3AgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UpIHtcclxuXHJcbiAgICAudWstaGVhZGluZy1tZWRpdW0geyBmb250LXNpemU6ICRoZWFkaW5nLW1lZGl1bS1mb250LXNpemUtbDsgfVxyXG4gICAgLnVrLWhlYWRpbmctbGFyZ2UgeyBmb250LXNpemU6ICRoZWFkaW5nLWxhcmdlLWZvbnQtc2l6ZS1sOyB9XHJcbiAgICAudWstaGVhZGluZy14bGFyZ2UgeyBmb250LXNpemU6ICRoZWFkaW5nLXhsYXJnZS1mb250LXNpemUtbDsgfVxyXG4gICAgLnVrLWhlYWRpbmctMnhsYXJnZSB7IGZvbnQtc2l6ZTogJGhlYWRpbmctMnhsYXJnZS1mb250LXNpemUtbDsgfVxyXG5cclxufVxyXG5cclxuXHJcbi8qIFByaW1hcnlcclxuICAgRGVwcmVjYXRlZDogVXNlIGB1ay1oZWFkaW5nLW1lZGl1bWAgaW5zdGVhZFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiRoZWFkaW5nLXByaW1hcnktZm9udC1zaXplLWw6ICAgICAgICAgICAgICAgICAgICAzLjc1cmVtICFkZWZhdWx0OyAgLy8gNjBweFxyXG4kaGVhZGluZy1wcmltYXJ5LWxpbmUtaGVpZ2h0LWw6ICAgICAgICAgICAgICAgICAgMS4xICFkZWZhdWx0O1xyXG5cclxuJGhlYWRpbmctcHJpbWFyeS1mb250LXNpemUtbTogICAgICAgICAgICAgICAgICAgICRoZWFkaW5nLXByaW1hcnktZm9udC1zaXplLWwgKiAwLjkgIWRlZmF1bHQ7IC8vIDU0cHhcclxuXHJcbiRoZWFkaW5nLXByaW1hcnktZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAkaGVhZGluZy1wcmltYXJ5LWZvbnQtc2l6ZS1sICogMC44ICFkZWZhdWx0OyAvLyA0OHB4XHJcbiRoZWFkaW5nLXByaW1hcnktbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAxLjIgIWRlZmF1bHQ7XHJcblxyXG5AaWYgKCRkZXByZWNhdGVkID09IHRydWUpIHtcclxuLnVrLWhlYWRpbmctcHJpbWFyeSB7XHJcbiAgICBmb250LXNpemU6ICRoZWFkaW5nLXByaW1hcnktZm9udC1zaXplO1xyXG4gICAgbGluZS1oZWlnaHQ6ICRoZWFkaW5nLXByaW1hcnktbGluZS1oZWlnaHQ7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staGVhZGluZy1wcmltYXJ5KSkge0BpbmNsdWRlIGhvb2staGVhZGluZy1wcmltYXJ5KCk7fVxyXG59XHJcbn1cclxuXHJcbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XHJcblxyXG4gICAgQGlmICgkZGVwcmVjYXRlZCA9PSB0cnVlKSB7XHJcbi51ay1oZWFkaW5nLXByaW1hcnkgeyBmb250LXNpemU6ICRoZWFkaW5nLXByaW1hcnktZm9udC1zaXplLW07IH1cclxufVxyXG5cclxufVxyXG5cclxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXHJcbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZSkge1xyXG5cclxuICAgIEBpZiAoJGRlcHJlY2F0ZWQgPT0gdHJ1ZSkge1xyXG4udWstaGVhZGluZy1wcmltYXJ5IHtcclxuICAgICAgICBmb250LXNpemU6ICRoZWFkaW5nLXByaW1hcnktZm9udC1zaXplLWw7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRoZWFkaW5nLXByaW1hcnktbGluZS1oZWlnaHQtbDtcclxuICAgIH1cclxufVxyXG5cclxufVxyXG5cclxuXHJcbi8qIEhlcm9cclxuICAgRGVwcmVjYXRlZDogVXNlIGB1ay1oZWFkaW5nLXhsYXJnZWAgaW5zdGVhZFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiRoZWFkaW5nLWhlcm8tZm9udC1zaXplLWw6ICAgICAgICAgICAgICAgICAgICAgICA4cmVtICFkZWZhdWx0OyAvLyAxMjhweFxyXG4kaGVhZGluZy1oZXJvLWxpbmUtaGVpZ2h0LWw6ICAgICAgICAgICAgICAgICAgICAgMSAhZGVmYXVsdDtcclxuXHJcbiRoZWFkaW5nLWhlcm8tZm9udC1zaXplLW06ICAgICAgICAgICAgICAgICAgICAgICAkaGVhZGluZy1oZXJvLWZvbnQtc2l6ZS1sICogMC43NSAhZGVmYXVsdDsgLy8gOTZweFxyXG4kaGVhZGluZy1oZXJvLWxpbmUtaGVpZ2h0LW06ICAgICAgICAgICAgICAgICAgICAgMSAhZGVmYXVsdDtcclxuXHJcbiRoZWFkaW5nLWhlcm8tZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAkaGVhZGluZy1oZXJvLWZvbnQtc2l6ZS1sICogMC41ICFkZWZhdWx0OyAvLyA2NHB4XHJcbiRoZWFkaW5nLWhlcm8tbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAxLjEgIWRlZmF1bHQ7XHJcblxyXG5AaWYgKCRkZXByZWNhdGVkID09IHRydWUpIHtcclxuLnVrLWhlYWRpbmctaGVybyB7XHJcbiAgICBmb250LXNpemU6ICRoZWFkaW5nLWhlcm8tZm9udC1zaXplO1xyXG4gICAgbGluZS1oZWlnaHQ6ICRoZWFkaW5nLWhlcm8tbGluZS1oZWlnaHQ7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staGVhZGluZy1oZXJvKSkge0BpbmNsdWRlIGhvb2staGVhZGluZy1oZXJvKCk7fVxyXG59XHJcbn1cclxuXHJcbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XHJcblxyXG4gICAgQGlmICgkZGVwcmVjYXRlZCA9PSB0cnVlKSB7XHJcbi51ay1oZWFkaW5nLWhlcm8ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogJGhlYWRpbmctaGVyby1mb250LXNpemUtbTtcclxuICAgICAgICBsaW5lLWhlaWdodDogJGhlYWRpbmctaGVyby1saW5lLWhlaWdodC1tO1xyXG4gICAgfVxyXG59XHJcblxyXG59XHJcblxyXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LWxhcmdlKSB7XHJcblxyXG4gICAgQGlmICgkZGVwcmVjYXRlZCA9PSB0cnVlKSB7XHJcbi51ay1oZWFkaW5nLWhlcm8ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogJGhlYWRpbmctaGVyby1mb250LXNpemUtbDtcclxuICAgICAgICBsaW5lLWhlaWdodDogJGhlYWRpbmctaGVyby1saW5lLWhlaWdodC1sO1xyXG4gICAgfVxyXG59XHJcblxyXG59XHJcblxyXG5cclxuLyogRGl2aWRlclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1oZWFkaW5nLWRpdmlkZXIge1xyXG4gICAgcGFkZGluZy1ib3R0b206ICRoZWFkaW5nLWRpdmlkZXItcGFkZGluZy1ib3R0b207XHJcbiAgICBib3JkZXItYm90dG9tOiAkaGVhZGluZy1kaXZpZGVyLWJvcmRlci13aWR0aCBzb2xpZCAkaGVhZGluZy1kaXZpZGVyLWJvcmRlcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1oZWFkaW5nLWRpdmlkZXIpKSB7QGluY2x1ZGUgaG9vay1oZWFkaW5nLWRpdmlkZXIoKTt9XHJcbn1cclxuXHJcblxyXG4vKiBCdWxsZXRcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstaGVhZGluZy1idWxsZXQgeyBwb3NpdGlvbjogcmVsYXRpdmU7IH1cclxuXHJcbi8qXHJcbiAqIDEuIFVzaW5nIGBpbmxpbmUtYmxvY2tgIHRvIG1ha2UgaXQgd29yayB3aXRoIHRleHQgYWxpZ25tZW50XHJcbiAqIDIuIENlbnRlciB2ZXJ0aWNhbGx5XHJcbiAqIDMuIFN0eWxlXHJcbiAqL1xyXG5cclxuLnVrLWhlYWRpbmctYnVsbGV0OjpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIC8qIDEgKi9cclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIC8qIDIgKi9cclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHRvcDogJGhlYWRpbmctYnVsbGV0LXRvcDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAvKiAzICovXHJcbiAgICBoZWlnaHQ6ICRoZWFkaW5nLWJ1bGxldC1oZWlnaHQ7XHJcbiAgICBtYXJnaW4tcmlnaHQ6ICRoZWFkaW5nLWJ1bGxldC1tYXJnaW4tcmlnaHQ7XHJcbiAgICBib3JkZXItbGVmdDogJGhlYWRpbmctYnVsbGV0LWJvcmRlci13aWR0aCBzb2xpZCAkaGVhZGluZy1idWxsZXQtYm9yZGVyO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWhlYWRpbmctYnVsbGV0KSkge0BpbmNsdWRlIGhvb2staGVhZGluZy1idWxsZXQoKTt9XHJcbn1cclxuXHJcblxyXG4vKiBMaW5lXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogQ2xpcCB0aGUgY2hpbGQgZWxlbWVudFxyXG4gKi9cclxuXHJcbi51ay1oZWFkaW5nLWxpbmUgeyBvdmVyZmxvdzogaGlkZGVuOyB9XHJcblxyXG4vKlxyXG4gKiBFeHRyYSBtYXJrdXAgaXMgbmVlZGVkIHRvIG1ha2UgaXQgd29yayB3aXRoIHRleHQgYWxpZ25cclxuICovXHJcblxyXG4udWstaGVhZGluZy1saW5lID4gKiB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi8qXHJcbiAqIDEuIENlbnRlciB2ZXJ0aWNhbGx5XHJcbiAqIDIuIE1ha2UgdGhlIGVsZW1lbnQgYXMgbGFyZ2UgYXMgcG9zc2libGUuIEl0J3MgY2xpcHBlZCBieSB0aGUgY29udGFpbmVyLlxyXG4gKiAzLiBTdHlsZVxyXG4gKi9cclxuXHJcbi51ay1oZWFkaW5nLWxpbmUgPiA6OmJlZm9yZSxcclxuLnVrLWhlYWRpbmctbGluZSA+IDo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIC8qIDEgKi9cclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogdW5xdW90ZSgnY2FsYygjeyRoZWFkaW5nLWxpbmUtdG9wfSAtICgjeyRoZWFkaW5nLWxpbmUtaGVpZ2h0fSAvIDIpKScpO1xyXG4gICAgLyogMiAqL1xyXG4gICAgd2lkdGg6ICRoZWFkaW5nLWxpbmUtd2lkdGg7XHJcbiAgICAvKiAzICovXHJcbiAgICBib3JkZXItYm90dG9tOiAkaGVhZGluZy1saW5lLWJvcmRlci13aWR0aCBzb2xpZCAkaGVhZGluZy1saW5lLWJvcmRlcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1oZWFkaW5nLWxpbmUpKSB7QGluY2x1ZGUgaG9vay1oZWFkaW5nLWxpbmUoKTt9XHJcbn1cclxuXHJcbi51ay1oZWFkaW5nLWxpbmUgPiA6OmJlZm9yZSB7XHJcbiAgICByaWdodDogMTAwJTtcclxuICAgIG1hcmdpbi1yaWdodDogJGhlYWRpbmctbGluZS1tYXJnaW4taG9yaXpvbnRhbDtcclxufVxyXG4udWstaGVhZGluZy1saW5lID4gOjphZnRlciB7XHJcbiAgICBsZWZ0OiAxMDAlO1xyXG4gICAgbWFyZ2luLWxlZnQ6ICRoZWFkaW5nLWxpbmUtbWFyZ2luLWhvcml6b250YWw7XHJcbn1cclxuXHJcblxyXG4vLyBIb29rc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbkBpZihtaXhpbi1leGlzdHMoaG9vay1oZWFkaW5nLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1oZWFkaW5nLW1pc2MoKTt9XHJcblxyXG4vLyBAbWl4aW4gaG9vay1oZWFkaW5nLXNtYWxsKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1oZWFkaW5nLW1lZGl1bSgpe31cclxuLy8gQG1peGluIGhvb2staGVhZGluZy1sYXJnZSgpe31cclxuLy8gQG1peGluIGhvb2staGVhZGluZy14bGFyZ2UoKXt9XHJcbi8vIEBtaXhpbiBob29rLWhlYWRpbmctMnhsYXJnZSgpe31cclxuLy8gQG1peGluIGhvb2staGVhZGluZy1wcmltYXJ5KCl7fVxyXG4vLyBAbWl4aW4gaG9vay1oZWFkaW5nLWhlcm8oKXt9XHJcbi8vIEBtaXhpbiBob29rLWhlYWRpbmctZGl2aWRlcigpe31cclxuLy8gQG1peGluIGhvb2staGVhZGluZy1idWxsZXQoKXt9XHJcbi8vIEBtaXhpbiBob29rLWhlYWRpbmctbGluZSgpe31cclxuLy8gQG1peGluIGhvb2staGVhZGluZy1taXNjKCl7fVxyXG5cclxuXHJcbi8vIEludmVyc2VcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4kaW52ZXJzZS1oZWFkaW5nLWRpdmlkZXItYm9yZGVyOiAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1oZWFkaW5nLWJ1bGxldC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1oZWFkaW5nLWxpbmUtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG5cclxuXHJcblxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWhlYWRpbmctc21hbGwoKXt9XHJcbi8vIEBtaXhpbiBob29rLWludmVyc2UtaGVhZGluZy1tZWRpdW0oKXt9XHJcbi8vIEBtaXhpbiBob29rLWludmVyc2UtaGVhZGluZy1sYXJnZSgpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1oZWFkaW5nLXhsYXJnZSgpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1oZWFkaW5nLTJ4bGFyZ2UoKXt9XHJcbi8vIEBtaXhpbiBob29rLWludmVyc2UtaGVhZGluZy1wcmltYXJ5KCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWhlYWRpbmctaGVybygpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1oZWFkaW5nLWRpdmlkZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLWludmVyc2UtaGVhZGluZy1idWxsZXQoKXt9XHJcbi8vIEBtaXhpbiBob29rLWludmVyc2UtaGVhZGluZy1saW5lKCl7fVxyXG4iLCIvLyBOYW1lOiAgICAgICAgICAgIERpdmlkZXJcclxuLy8gRGVzY3JpcHRpb246ICAgICBTdHlsZXMgZm9yIGRpdmlkZXJzXHJcbi8vXHJcbi8vIENvbXBvbmVudDogICAgICAgYHVrLWRpdmlkZXItaWNvbmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstZGl2aWRlci1zbWFsbGBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstZGl2aWRlci12ZXJ0aWNhbGBcclxuLy9cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5cclxuLy8gVmFyaWFibGVzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuJGRpdmlkZXItbWFyZ2luLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xyXG5cclxuJGRpdmlkZXItaWNvbi13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwcHggIWRlZmF1bHQ7XHJcbiRkaXZpZGVyLWljb24taGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMHB4ICFkZWZhdWx0O1xyXG4kZGl2aWRlci1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XHJcbiRkaXZpZGVyLWljb24tbGluZS10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgICA1MCUgIWRlZmF1bHQ7XHJcbiRkaXZpZGVyLWljb24tbGluZS13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAxMDAlICFkZWZhdWx0O1xyXG4kZGl2aWRlci1pY29uLWxpbmUtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XHJcbiRkaXZpZGVyLWljb24tbGluZS1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcclxuXHJcbiRpbnRlcm5hbC1kaXZpZGVyLWljb24taW1hZ2U6IFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIyMCUyMiUyMGhlaWdodCUzRCUyMjIwJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjAlMjAyMCUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDY2lyY2xlJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBzdHJva2UlM0QlMjIjMDAwJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMiUyMiUyMGN4JTNEJTIyMTAlMjIlMjBjeSUzRCUyMjEwJTIyJTIwciUzRCUyMjclMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0UlMEFcIiAhZGVmYXVsdDtcclxuXHJcbiRkaXZpZGVyLXNtYWxsLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDBweCAhZGVmYXVsdDtcclxuJGRpdmlkZXItc21hbGwtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xyXG4kZGl2aWRlci1zbWFsbC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XHJcblxyXG4kZGl2aWRlci12ZXJ0aWNhbC1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgMTAwcHggIWRlZmF1bHQ7XHJcbiRkaXZpZGVyLXZlcnRpY2FsLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcclxuJGRpdmlkZXItdmVydGljYWwtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG5cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IERpdmlkZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBSZXNldCBkZWZhdWx0IGBocmBcclxuICogMi4gU2V0IG1hcmdpbiBpZiBhIGBkaXZgIGlzIHVzZWQgZm9yIHNlbWFudGljYWwgcmVhc29uXHJcbiAqL1xyXG5cclxuW2NsYXNzKj0ndWstZGl2aWRlciddIHtcclxuICAgIC8qIDEgKi9cclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIC8qIDIgKi9cclxuICAgIG1hcmdpbi1ib3R0b206ICRkaXZpZGVyLW1hcmdpbi12ZXJ0aWNhbDtcclxufVxyXG5cclxuLyogQWRkIG1hcmdpbiBpZiBhZGphY2VudCBlbGVtZW50ICovXHJcbiogKyBbY2xhc3MqPSd1ay1kaXZpZGVyJ10geyBtYXJnaW4tdG9wOiAkZGl2aWRlci1tYXJnaW4tdmVydGljYWw7IH1cclxuXHJcblxyXG4vKiBJY29uXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVrLWRpdmlkZXItaWNvbiB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBoZWlnaHQ6ICRkaXZpZGVyLWljb24taGVpZ2h0O1xyXG4gICAgQGluY2x1ZGUgc3ZnLWZpbGwoJGludGVybmFsLWRpdmlkZXItaWNvbi1pbWFnZSwgXCIjMDAwXCIsICRkaXZpZGVyLWljb24tY29sb3IpO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZGl2aWRlci1pY29uKSkge0BpbmNsdWRlIGhvb2stZGl2aWRlci1pY29uKCk7fVxyXG59XHJcblxyXG4udWstZGl2aWRlci1pY29uOjpiZWZvcmUsXHJcbi51ay1kaXZpZGVyLWljb246OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6ICRkaXZpZGVyLWljb24tbGluZS10b3A7XHJcbiAgICBtYXgtd2lkdGg6IHVucXVvdGUoJ2NhbGMoNTAlIC0gKCN7JGRpdmlkZXItaWNvbi13aWR0aH0gLyAyKSknKTtcclxuICAgIGJvcmRlci1ib3R0b206ICRkaXZpZGVyLWljb24tbGluZS1ib3JkZXItd2lkdGggc29saWQgJGRpdmlkZXItaWNvbi1saW5lLWJvcmRlcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1kaXZpZGVyLWljb24tbGluZSkpIHtAaW5jbHVkZSBob29rLWRpdmlkZXItaWNvbi1saW5lKCk7fVxyXG59XHJcblxyXG4udWstZGl2aWRlci1pY29uOjpiZWZvcmUge1xyXG4gICAgcmlnaHQ6IHVucXVvdGUoJ2NhbGMoNTAlICsgKCN7JGRpdmlkZXItaWNvbi13aWR0aH0gLyAyKSknKTtcclxuICAgIHdpZHRoOiAkZGl2aWRlci1pY29uLWxpbmUtd2lkdGg7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZGl2aWRlci1pY29uLWxpbmUtbGVmdCkpIHtAaW5jbHVkZSBob29rLWRpdmlkZXItaWNvbi1saW5lLWxlZnQoKTt9XHJcbn1cclxuXHJcbi51ay1kaXZpZGVyLWljb246OmFmdGVyIHtcclxuICAgIGxlZnQ6IHVucXVvdGUoJ2NhbGMoNTAlICsgKCN7JGRpdmlkZXItaWNvbi13aWR0aH0gLyAyKSknKTtcclxuICAgIHdpZHRoOiAkZGl2aWRlci1pY29uLWxpbmUtd2lkdGg7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZGl2aWRlci1pY29uLWxpbmUtcmlnaHQpKSB7QGluY2x1ZGUgaG9vay1kaXZpZGVyLWljb24tbGluZS1yaWdodCgpO31cclxufVxyXG5cclxuXHJcbi8qIFNtYWxsXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogMS4gRml4IGhlaWdodCBiZWNhdXNlIG9mIGBpbmxpbmUtYmxvY2tgXHJcbiAqIDIuIFVzaW5nIDo6YWZ0ZXIgYW5kIGlubGluZS1ibG9jayB0byBtYWtlIGB0ZXh0LWFsaWduYCB3b3JrXHJcbiAqL1xyXG5cclxuLyogMSAqL1xyXG4udWstZGl2aWRlci1zbWFsbCB7IGxpbmUtaGVpZ2h0OiAwOyB9XHJcblxyXG4vKiAyICovXHJcbi51ay1kaXZpZGVyLXNtYWxsOjphZnRlciB7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgd2lkdGg6ICRkaXZpZGVyLXNtYWxsLXdpZHRoO1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgYm9yZGVyLXRvcDogJGRpdmlkZXItc21hbGwtYm9yZGVyLXdpZHRoIHNvbGlkICRkaXZpZGVyLXNtYWxsLWJvcmRlcjtcclxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZGl2aWRlci1zbWFsbCkpIHtAaW5jbHVkZSBob29rLWRpdmlkZXItc21hbGwoKTt9XHJcbn1cclxuXHJcblxyXG4vKiBWZXJ0aWNhbFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1kaXZpZGVyLXZlcnRpY2FsIHtcclxuICAgIHdpZHRoOiAxcHg7XHJcbiAgICBoZWlnaHQ6ICRkaXZpZGVyLXZlcnRpY2FsLWhlaWdodDtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgYm9yZGVyLWxlZnQ6ICRkaXZpZGVyLXZlcnRpY2FsLWJvcmRlci13aWR0aCBzb2xpZCAkZGl2aWRlci12ZXJ0aWNhbC1ib3JkZXI7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZGl2aWRlci12ZXJ0aWNhbCkpIHtAaW5jbHVkZSBob29rLWRpdmlkZXItdmVydGljYWwoKTt9XHJcbn1cclxuXHJcblxyXG4vLyBIb29rc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbkBpZihtaXhpbi1leGlzdHMoaG9vay1kaXZpZGVyLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1kaXZpZGVyLW1pc2MoKTt9XHJcblxyXG4vLyBAbWl4aW4gaG9vay1kaXZpZGVyLWljb24oKXt9XHJcbi8vIEBtaXhpbiBob29rLWRpdmlkZXItaWNvbi1saW5lKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1kaXZpZGVyLWljb24tbGluZS1sZWZ0KCl7fVxyXG4vLyBAbWl4aW4gaG9vay1kaXZpZGVyLWljb24tbGluZS1yaWdodCgpe31cclxuLy8gQG1peGluIGhvb2stZGl2aWRlci1zbWFsbCgpe31cclxuLy8gQG1peGluIGhvb2stZGl2aWRlci12ZXJ0aWNhbCgpe31cclxuLy8gQG1peGluIGhvb2stZGl2aWRlci1taXNjKCl7fVxyXG5cclxuXHJcbi8vIEludmVyc2VcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4kaW52ZXJzZS1kaXZpZGVyLWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1kaXZpZGVyLWljb24tbGluZS1ib3JkZXI6ICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1kaXZpZGVyLXNtYWxsLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1kaXZpZGVyLXZlcnRpY2FsLWJvcmRlcjogICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG5cclxuXHJcblxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWRpdmlkZXItaWNvbigpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1kaXZpZGVyLWljb24tbGluZSgpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1kaXZpZGVyLXNtYWxsKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWRpdmlkZXItdmVydGljYWwoKXt9XHJcbiIsIi8vXHJcbi8vIENvbXBvbmVudDogICAgICAgTWl4aW5cclxuLy8gRGVzY3JpcHRpb246ICAgICBEZWZpbmVzIG1peGlucyB3aGljaCBhcmUgdXNlZCBhY3Jvc3MgYWxsIGNvbXBvbmVudHNcclxuLy9cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5cclxuLy8gU1ZHXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuLy8vIFJlcGxhY2UgYCRzZWFyY2hgIHdpdGggYCRyZXBsYWNlYCBpbiBgJHN0cmluZ2BcclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHJpbmcgLSBJbml0aWFsIHN0cmluZ1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWFyY2ggLSBTdWJzdHJpbmcgdG8gcmVwbGFjZVxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRyZXBsYWNlICgnJykgLSBOZXcgdmFsdWVcclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBVcGRhdGVkIHN0cmluZ1xyXG5AZnVuY3Rpb24gc3RyLXJlcGxhY2UoJHN0cmluZywgJHNlYXJjaCwgJHJlcGxhY2U6ICcnKSB7XHJcbiAgJGluZGV4OiBzdHItaW5kZXgoJHN0cmluZywgJHNlYXJjaCk7XHJcblxyXG4gIEBpZiAkaW5kZXgge1xyXG4gICAgQHJldHVybiBzdHItc2xpY2UoJHN0cmluZywgMSwgJGluZGV4IC0gMSkgKyAkcmVwbGFjZSArIHN0ci1yZXBsYWNlKHN0ci1zbGljZSgkc3RyaW5nLCAkaW5kZXggKyBzdHItbGVuZ3RoKCRzZWFyY2gpKSwgJHNlYXJjaCwgJHJlcGxhY2UpO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkc3RyaW5nO1xyXG59XHJcblxyXG5AbWl4aW4gc3ZnLWZpbGwoJHNyYywgJGNvbG9yLWRlZmF1bHQsICRjb2xvci1uZXcpe1xyXG5cclxuICAgICRyZXBsYWNlLXNyYzogc3RyLXJlcGxhY2UoJHNyYywgJGNvbG9yLWRlZmF1bHQsICRjb2xvci1uZXcpICFkZWZhdWx0O1xyXG4gICAgJHJlcGxhY2Utc3JjOiBzdHItcmVwbGFjZSgkcmVwbGFjZS1zcmMsIFwiI1wiLCBcIiUyM1wiKTtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChxdW90ZSgkcmVwbGFjZS1zcmMpKTtcclxufSIsIi8vIE5hbWU6ICAgICAgICAgICAgTGlzdFxyXG4vLyBEZXNjcmlwdGlvbjogICAgIFN0eWxlcyBmb3IgbGlzdHNcclxuLy9cclxuLy8gQ29tcG9uZW50OiAgICAgICBgdWstbGlzdGBcclxuLy9cclxuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstbGlzdC1kaXZpZGVyYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1saXN0LXN0cmlwZWRgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWxpc3QtYnVsbGV0YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1saXN0LWxhcmdlYFxyXG4vL1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcblxyXG4vLyBWYXJpYWJsZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4kbGlzdC1tYXJnaW4tdG9wOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zbWFsbC1tYXJnaW4gIWRlZmF1bHQ7XHJcblxyXG4kbGlzdC1uZXN0ZWQtcGFkZGluZy1sZWZ0OiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XHJcblxyXG4kbGlzdC1kaXZpZGVyLW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zbWFsbC1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRsaXN0LWRpdmlkZXItYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcclxuJGxpc3QtZGl2aWRlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG5cclxuJGxpc3Qtc3RyaXBlZC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICRnbG9iYWwtc21hbGwtbWFyZ2luICFkZWZhdWx0O1xyXG4kbGlzdC1zdHJpcGVkLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgJGdsb2JhbC1zbWFsbC1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRsaXN0LXN0cmlwZWQtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcblxyXG4kbGlzdC1idWxsZXQtd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCRnbG9iYWwtbGluZS1oZWlnaHQgKiAxZW0pICFkZWZhdWx0O1xyXG4kbGlzdC1idWxsZXQtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpc3QtYnVsbGV0LXdpZHRoICFkZWZhdWx0O1xyXG4kbGlzdC1idWxsZXQtbWFyZ2luLXJpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zbWFsbC1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRsaXN0LWJ1bGxldC1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG5cclxuJGxpc3QtbGFyZ2UtbWFyZ2luLXRvcDogICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xyXG4kbGlzdC1sYXJnZS1kaXZpZGVyLW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRsaXN0LWxhcmdlLXN0cmlwZWQtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcclxuJGxpc3QtbGFyZ2Utc3RyaXBlZC1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICRnbG9iYWwtc21hbGwtbWFyZ2luICFkZWZhdWx0O1xyXG5cclxuJGludGVybmFsLWxpc3QtYnVsbGV0LWltYWdlOiBcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyNiUyMiUyMGhlaWdodCUzRCUyMjYlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA2JTIwNiUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDY2lyY2xlJTIwZmlsbCUzRCUyMiMwMDAlMjIlMjBjeCUzRCUyMjMlMjIlMjBjeSUzRCUyMjMlMjIlMjByJTNEJTIyMyUyMiUyMCUyRiUzRSUwQSUzQyUyRnN2ZyUzRVwiICFkZWZhdWx0O1xyXG5cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IExpc3RcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstbGlzdCB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxufVxyXG5cclxuLypcclxuICogTWljcm8gY2xlYXJmaXhcclxuICovXHJcblxyXG4udWstbGlzdCA+IGxpOjpiZWZvcmUsXHJcbi51ay1saXN0ID4gbGk6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBkaXNwbGF5OiB0YWJsZTtcclxufVxyXG5cclxuLnVrLWxpc3QgPiBsaTo6YWZ0ZXIgeyBjbGVhcjogYm90aDsgfVxyXG5cclxuLypcclxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXHJcbiAqL1xyXG5cclxuLnVrLWxpc3QgPiBsaSA+IDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxyXG5cclxuLypcclxuICogTmVzdGVkIGxpc3RzXHJcbiAqL1xyXG5cclxuLnVrLWxpc3QgdWwge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAkbGlzdC1uZXN0ZWQtcGFkZGluZy1sZWZ0O1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxufVxyXG5cclxuLypcclxuICogU3R5bGVcclxuICovXHJcblxyXG4udWstbGlzdCA+IGxpOm50aC1jaGlsZChuKzIpLFxyXG4udWstbGlzdCA+IGxpID4gdWwgeyBtYXJnaW4tdG9wOiAkbGlzdC1tYXJnaW4tdG9wOyB9XHJcblxyXG5cclxuLyogU3R5bGUgbW9kaWZpZXJzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogRGl2aWRlclxyXG4gKi9cclxuXHJcbi51ay1saXN0LWRpdmlkZXIgPiBsaTpudGgtY2hpbGQobisyKSB7XHJcbiAgICBtYXJnaW4tdG9wOiAkbGlzdC1kaXZpZGVyLW1hcmdpbi10b3A7XHJcbiAgICBwYWRkaW5nLXRvcDogJGxpc3QtZGl2aWRlci1tYXJnaW4tdG9wO1xyXG4gICAgYm9yZGVyLXRvcDogJGxpc3QtZGl2aWRlci1ib3JkZXItd2lkdGggc29saWQgJGxpc3QtZGl2aWRlci1ib3JkZXI7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbGlzdC1kaXZpZGVyKSkge0BpbmNsdWRlIGhvb2stbGlzdC1kaXZpZGVyKCk7fVxyXG59XHJcblxyXG4vKlxyXG4gKiBTdHJpcGVkXHJcbiAqL1xyXG5cclxuLnVrLWxpc3Qtc3RyaXBlZCA+IGxpIHtcclxuICAgIHBhZGRpbmc6ICRsaXN0LXN0cmlwZWQtcGFkZGluZy12ZXJ0aWNhbCAkbGlzdC1zdHJpcGVkLXBhZGRpbmctaG9yaXpvbnRhbDtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1saXN0LXN0cmlwZWQpKSB7QGluY2x1ZGUgaG9vay1saXN0LXN0cmlwZWQoKTt9XHJcbn1cclxuXHJcbi51ay1saXN0LXN0cmlwZWQgPiBsaTpudGgtb2YtdHlwZShvZGQpIHsgYmFja2dyb3VuZDogJGxpc3Qtc3RyaXBlZC1iYWNrZ3JvdW5kOyB9XHJcblxyXG4udWstbGlzdC1zdHJpcGVkID4gbGk6bnRoLWNoaWxkKG4rMikgeyBtYXJnaW4tdG9wOiAwOyB9XHJcblxyXG4vKlxyXG4gKiBCdWxsZXRcclxuICogMS4gUmVzZXQgZGlzcGxheSBgdGFibGVgIHdoaWNoIGNhdXNlcyBpc3N1ZXMgaW4gY29tYmluYXRpb24gd2l0aCBtdWx0aSBjb2x1bW4gbGF5b3V0cy5cclxuICovXHJcblxyXG4udWstbGlzdC1idWxsZXQgPiBsaSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IHVucXVvdGUoJ2NhbGMoI3skbGlzdC1idWxsZXQtd2lkdGh9ICsgI3skbGlzdC1idWxsZXQtbWFyZ2luLXJpZ2h0fSknKTtcclxufVxyXG5cclxuLnVrLWxpc3QtYnVsbGV0ID4gbGk6OmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAkbGlzdC1idWxsZXQtd2lkdGg7XHJcbiAgICBoZWlnaHQ6ICRsaXN0LWJ1bGxldC1oZWlnaHQ7XHJcbiAgICBAaW5jbHVkZSBzdmctZmlsbCgkaW50ZXJuYWwtbGlzdC1idWxsZXQtaW1hZ2UsIFwiIzAwMFwiLCAkbGlzdC1idWxsZXQtaWNvbi1jb2xvcik7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcclxuICAgIC8qIDEgKi9cclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWxpc3QtYnVsbGV0KSkge0BpbmNsdWRlIGhvb2stbGlzdC1idWxsZXQoKTt9XHJcbn1cclxuXHJcblxyXG4vKiBTaXplIG1vZGlmaWVyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVrLWxpc3QtbGFyZ2UgPiBsaTpudGgtY2hpbGQobisyKSxcclxuLnVrLWxpc3QtbGFyZ2UgPiBsaSA+IHVsIHsgbWFyZ2luLXRvcDogJGxpc3QtbGFyZ2UtbWFyZ2luLXRvcDsgfVxyXG5cclxuLypcclxuICogRGl2aWRlclxyXG4gKi9cclxuXHJcbi51ay1saXN0LWxhcmdlLnVrLWxpc3QtZGl2aWRlciA+IGxpOm50aC1jaGlsZChuKzIpIHtcclxuICAgIG1hcmdpbi10b3A6ICRsaXN0LWxhcmdlLWRpdmlkZXItbWFyZ2luLXRvcDtcclxuICAgIHBhZGRpbmctdG9wOiAkbGlzdC1sYXJnZS1kaXZpZGVyLW1hcmdpbi10b3A7XHJcbn1cclxuXHJcbi8qXHJcbiAqIFN0cmlwZWRcclxuICovXHJcblxyXG4udWstbGlzdC1sYXJnZS51ay1saXN0LXN0cmlwZWQgPiBsaSB7XHJcbiAgICBwYWRkaW5nOiAkbGlzdC1sYXJnZS1zdHJpcGVkLXBhZGRpbmctdmVydGljYWwgJGxpc3QtbGFyZ2Utc3RyaXBlZC1wYWRkaW5nLWhvcml6b250YWw7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbGlzdC1zdHJpcGVkKSkge0BpbmNsdWRlIGhvb2stbGlzdC1zdHJpcGVkKCk7fVxyXG59XHJcblxyXG4udWstbGlzdC1sYXJnZS51ay1saXN0LXN0cmlwZWQgPiBsaTpudGgtY2hpbGQobisyKSB7IG1hcmdpbi10b3A6IDA7IH1cclxuXHJcblxyXG4vLyBIb29rc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbkBpZihtaXhpbi1leGlzdHMoaG9vay1saXN0LW1pc2MpKSB7QGluY2x1ZGUgaG9vay1saXN0LW1pc2MoKTt9XHJcblxyXG4vLyBAbWl4aW4gaG9vay1saXN0LWRpdmlkZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLWxpc3Qtc3RyaXBlZCgpe31cclxuLy8gQG1peGluIGhvb2stbGlzdC1idWxsZXQoKXt9XHJcbi8vIEBtaXhpbiBob29rLWxpc3QtbWlzYygpe31cclxuXHJcblxyXG4vLyBJbnZlcnNlXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuJGludmVyc2UtbGlzdC1kaXZpZGVyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcclxuJGludmVyc2UtbGlzdC1zdHJpcGVkLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWxpc3QtYnVsbGV0LWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuXHJcblxyXG5cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1saXN0LWRpdmlkZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLWludmVyc2UtbGlzdC1zdHJpcGVkKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWxpc3QtYnVsbGV0KCl7fVxyXG4iLCIvLyBOYW1lOiAgICAgICAgICAgIEljb25cclxuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gY3JlYXRlIGljb25zXHJcbi8vXHJcbi8vIENvbXBvbmVudDogICAgICAgYHVrLWljb25gXHJcbi8vXHJcbi8vIE1vZGlmaWVyczogICAgICAgYHVrLWljb24taW1hZ2VgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWljb24tbGlua2BcclxuLy8gICAgICAgICAgICAgICAgICBgdWstaWNvbi1idXR0b25gXHJcbi8vXHJcbi8vIFN0YXRlczogICAgICAgICAgYHVrLXByZXNlcnZlYFxyXG4vL1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcblxyXG4vLyBWYXJpYWJsZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4kaWNvbi1pbWFnZS1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjBweCAhZGVmYXVsdDtcclxuXHJcbiRpY29uLWxpbmstY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kaWNvbi1saW5rLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGljb24tbGluay1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgIGRhcmtlbigkZ2xvYmFsLWNvbG9yLCA1JSkgIWRlZmF1bHQ7XHJcblxyXG4kaWNvbi1idXR0b24tc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzZweCAhZGVmYXVsdDtcclxuJGljb24tYnV0dG9uLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICAgIDUwMHB4ICFkZWZhdWx0O1xyXG4kaWNvbi1idXR0b24tYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kaWNvbi1idXR0b24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuXHJcbiRpY29uLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICBkYXJrZW4oJGljb24tYnV0dG9uLWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcclxuJGljb24tYnV0dG9uLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4kaWNvbi1idXR0b24tYWN0aXZlLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgZGFya2VuKCRpY29uLWJ1dHRvbi1iYWNrZ3JvdW5kLCAxMCUpICFkZWZhdWx0O1xyXG4kaWNvbi1idXR0b24tYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuXHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBJY29uXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogTm90ZTogMS4gLSA3LiBpcyByZXF1aXJlZCBmb3IgYGJ1dHRvbmAgZWxlbWVudHMuIE5lZWRlZCBmb3IgQ2xvc2UgYW5kIEZvcm0gSWNvbiBjb21wb25lbnQuXHJcbiAqIDEuIFJlbW92ZSBtYXJnaW5zIGluIENocm9tZSwgU2FmYXJpIGFuZCBPcGVyYS5cclxuICogMi4gUmVtb3ZlIGJvcmRlcnMgZm9yIGBidXR0b25gLlxyXG4gKiAzLiBSZW1vdmUgYm9yZGVyLXJhZGl1cyBpbiBDaHJvbWUuXHJcbiAqIDQuIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUuXHJcbiAqIDUuIENvcnJlY3QgYGZvbnRgIHByb3BlcnRpZXMgYW5kIGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBmb3IgYGJ1dHRvbmAuXHJcbiAqIDYuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxyXG4gKiA3LiBSZW1vdmUgZGVmYXVsdCBgYnV0dG9uYCBwYWRkaW5nIGFuZCBiYWNrZ3JvdW5kIGNvbG9yXHJcbiAqIDguIFN0eWxlXHJcbiAqIDkuIEZpbGwgYWxsIFNWRyBlbGVtZW50cyB3aXRoIHRoZSBjdXJyZW50IHRleHQgY29sb3IgaWYgbm8gYGZpbGxgIGF0dHJpYnV0ZSBpcyBzZXRcclxuICogMTAuIExldCB0aGUgY29udGFpbmVyIGZpdCB0aGUgaGVpZ2h0IG9mIHRoZSBpY29uXHJcbiAqL1xyXG5cclxuLnVrLWljb24ge1xyXG4gICAgLyogMSAqL1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgLyogMiAqL1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgLyogMyAqL1xyXG4gICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgIC8qIDQgKi9cclxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gICAgLyogNSAqL1xyXG4gICAgZm9udDogaW5oZXJpdDtcclxuICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgLyogNiAqL1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbiAgICAvKiA3LiAqL1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgLyogOCAqL1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgLyogOSAqL1xyXG4gICAgZmlsbDogY3VycmVudGNvbG9yO1xyXG4gICAgLyogMTAgKi9cclxuICAgIGxpbmUtaGVpZ2h0OiAwO1xyXG59XHJcblxyXG4vKiBSZXF1aXJlZCBmb3IgYGJ1dHRvbmAuICovXHJcbmJ1dHRvbi51ay1pY29uOm5vdCg6ZGlzYWJsZWQpIHsgY3Vyc29yOiBwb2ludGVyOyB9XHJcblxyXG4vKlxyXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxyXG4gKi9cclxuXHJcbi51ay1pY29uOjotbW96LWZvY3VzLWlubmVyIHtcclxuICAgIGJvcmRlcjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbi8qXHJcbiAqIFNldCB0aGUgZmlsbCBhbmQgc3Ryb2tlIGNvbG9yIG9mIGFsbCBTVkcgZWxlbWVudHMgdG8gdGhlIGN1cnJlbnQgdGV4dCBjb2xvclxyXG4gKi9cclxuXHJcbi51ay1pY29uOm5vdCgudWstcHJlc2VydmUpIFtmaWxsKj0nIyddOm5vdCgudWstcHJlc2VydmUpIHsgZmlsbDogY3VycmVudGNvbG9yOyB9XHJcbi51ay1pY29uOm5vdCgudWstcHJlc2VydmUpIFtzdHJva2UqPScjJ106bm90KC51ay1wcmVzZXJ2ZSkgeyBzdHJva2U6IGN1cnJlbnRjb2xvcjsgfVxyXG5cclxuLypcclxuICogRml4IEZpcmVmb3ggYmx1cnJ5IFNWRyByZW5kZXJpbmc6IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDY4MzVcclxuICovXHJcblxyXG4udWstaWNvbiA+ICogeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLDApOyB9XHJcblxyXG5cclxuLyogSW1hZ2UgbW9kaWZpZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiBEaXNwbGF5IGltYWdlcyBpbiBpY29uIGRpbWVuc2lvbnNcclxuICovXHJcblxyXG4udWstaWNvbi1pbWFnZSB7XHJcbiAgICB3aWR0aDogJGljb24taW1hZ2Utc2l6ZTtcclxuICAgIGhlaWdodDogJGljb24taW1hZ2Utc2l6ZTtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxufVxyXG5cclxuXHJcbi8qIFN0eWxlIG1vZGlmaWVyc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIExpbmtcclxuICovXHJcblxyXG4udWstaWNvbi1saW5rIHtcclxuICAgIGNvbG9yOiAkaWNvbi1saW5rLWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWljb24tbGluaykpIHtAaW5jbHVkZSBob29rLWljb24tbGluaygpO31cclxufVxyXG5cclxuLnVrLWljb24tbGluazpob3ZlcixcclxuLnVrLWljb24tbGluazpmb2N1cyB7XHJcbiAgICBjb2xvcjogJGljb24tbGluay1ob3Zlci1jb2xvcjtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staWNvbi1saW5rLWhvdmVyKSkge0BpbmNsdWRlIGhvb2staWNvbi1saW5rLWhvdmVyKCk7fVxyXG59XHJcblxyXG4vKiBPbkNsaWNrICsgQWN0aXZlICovXHJcbi51ay1pY29uLWxpbms6YWN0aXZlLFxyXG4udWstYWN0aXZlID4gLnVrLWljb24tbGluayB7XHJcbiAgICBjb2xvcjogJGljb24tbGluay1hY3RpdmUtY29sb3I7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staWNvbi1saW5rLWFjdGl2ZSkpIHtAaW5jbHVkZSBob29rLWljb24tbGluay1hY3RpdmUoKTt9XHJcbn1cclxuXHJcbi8qXHJcbiAqIEJ1dHRvblxyXG4gKiAxLiBDZW50ZXIgaWNvbiB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHlcclxuICovXHJcblxyXG4udWstaWNvbi1idXR0b24ge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIHdpZHRoOiAkaWNvbi1idXR0b24tc2l6ZTtcclxuICAgIGhlaWdodDogJGljb24tYnV0dG9uLXNpemU7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkaWNvbi1idXR0b24tYm9yZGVyLXJhZGl1cztcclxuICAgIGJhY2tncm91bmQ6ICRpY29uLWJ1dHRvbi1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRpY29uLWJ1dHRvbi1jb2xvcjtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAvKiAxICovXHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1pY29uLWJ1dHRvbikpIHtAaW5jbHVkZSBob29rLWljb24tYnV0dG9uKCk7fVxyXG59XHJcblxyXG4vKiBIb3ZlciArIEZvY3VzICovXHJcbi51ay1pY29uLWJ1dHRvbjpob3ZlcixcclxuLnVrLWljb24tYnV0dG9uOmZvY3VzIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRpY29uLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRpY29uLWJ1dHRvbi1ob3Zlci1jb2xvcjtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2staWNvbi1idXR0b24taG92ZXIpKSB7QGluY2x1ZGUgaG9vay1pY29uLWJ1dHRvbi1ob3ZlcigpO31cclxufVxyXG5cclxuLyogT25DbGljayArIEFjdGl2ZSAqL1xyXG4udWstaWNvbi1idXR0b246YWN0aXZlLFxyXG4udWstYWN0aXZlID4gLnVrLWljb24tYnV0dG9uIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRpY29uLWJ1dHRvbi1hY3RpdmUtYmFja2dyb3VuZDtcclxuICAgIGNvbG9yOiAkaWNvbi1idXR0b24tYWN0aXZlLWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWljb24tYnV0dG9uLWFjdGl2ZSkpIHtAaW5jbHVkZSBob29rLWljb24tYnV0dG9uLWFjdGl2ZSgpO31cclxufVxyXG5cclxuXHJcbi8vIEhvb2tzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuQGlmKG1peGluLWV4aXN0cyhob29rLWljb24tbWlzYykpIHtAaW5jbHVkZSBob29rLWljb24tbWlzYygpO31cclxuXHJcbi8vIEBtaXhpbiBob29rLWljb24tbGluaygpe31cclxuLy8gQG1peGluIGhvb2staWNvbi1saW5rLWhvdmVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pY29uLWxpbmstYWN0aXZlKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pY29uLWJ1dHRvbigpe31cclxuLy8gQG1peGluIGhvb2staWNvbi1idXR0b24taG92ZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLWljb24tYnV0dG9uLWFjdGl2ZSgpe31cclxuLy8gQG1peGluIGhvb2staWNvbi1taXNjKCl7fVxyXG5cclxuXHJcbi8vIEludmVyc2VcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4kaW52ZXJzZS1pY29uLWxpbmstY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWljb24tbGluay1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtaWNvbi1saW5rLWFjdGl2ZS1jb2xvcjogICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1pY29uLWJ1dHRvbi1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGludmVyc2UtaWNvbi1idXR0b24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1pY29uLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICBkYXJrZW4oJGludmVyc2UtaWNvbi1idXR0b24tYmFja2dyb3VuZCwgNSUpICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1pY29uLWJ1dHRvbi1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWljb24tYnV0dG9uLWFjdGl2ZS1iYWNrZ3JvdW5kOiAgICAgICAgIGRhcmtlbigkaW52ZXJzZS1pY29uLWJ1dHRvbi1iYWNrZ3JvdW5kLCAxMCUpICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1pY29uLWJ1dHRvbi1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcblxyXG5cclxuXHJcbi8vIEBtaXhpbiBob29rLWludmVyc2UtaWNvbi1saW5rKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWljb24tbGluay1ob3Zlcigpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1pY29uLWxpbmstYWN0aXZlKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWljb24tYnV0dG9uKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWljb24tYnV0dG9uLWhvdmVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWljb24tYnV0dG9uLWFjdGl2ZSgpe31cclxuIiwiLy8gTmFtZTogICAgICAgICAgICBGb3JtXHJcbi8vIERlc2NyaXB0aW9uOiAgICAgU3R5bGVzIGZvciBmb3Jtc1xyXG4vL1xyXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1mb3JtLSpgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWlucHV0YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1zZWxlY3RgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRleHRhcmVhYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1yYWRpb2BcclxuLy8gICAgICAgICAgICAgICAgICBgdWstY2hlY2tib3hgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWxlZ2VuZGBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstZmllbGRzZXRgXHJcbi8vXHJcbi8vIFN1Yi1vYmplY3RzOiAgICAgYHVrLWZvcm0tY3VzdG9tYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1mb3JtLXN0YWNrZWRgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWZvcm0taG9yaXpvbnRhbGBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstZm9ybS1sYWJlbGBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstZm9ybS1jb250cm9sc2BcclxuLy8gICAgICAgICAgICAgICAgICBgdWstZm9ybS1pY29uYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1mb3JtLWljb24tZmxpcGBcclxuLy9cclxuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstZm9ybS1zbWFsbGBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstZm9ybS1sYXJnZWBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstZm9ybS1kYW5nZXJgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWZvcm0tc3VjY2Vzc2BcclxuLy8gICAgICAgICAgICAgICAgICBgdWstZm9ybS1ibGFua2BcclxuLy8gICAgICAgICAgICAgICAgICBgdWstZm9ybS13aWR0aC14c21hbGxgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWZvcm0td2lkdGgtc21hbGxgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWZvcm0td2lkdGgtbWVkaXVtYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1mb3JtLXdpZHRoLWxhcmdlYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1mb3JtLWNvbnRyb2xzLXRleHRgXHJcbi8vXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuXHJcbi8vIFZhcmlhYmxlc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiRmb3JtLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbnRyb2wtaGVpZ2h0ICFkZWZhdWx0O1xyXG4kZm9ybS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvcm0taGVpZ2h0ICFkZWZhdWx0O1xyXG4kZm9ybS1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcclxuJGZvcm0tcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgICAgIDRweCAhZGVmYXVsdDtcclxuXHJcbiRmb3JtLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRmb3JtLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG5cclxuJGZvcm0tZm9jdXMtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGZvcm0tZm9jdXMtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4kZm9ybS1kaXNhYmxlZC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kZm9ybS1kaXNhYmxlZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuXHJcbiRmb3JtLXBsYWNlaG9sZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG5cclxuJGZvcm0tc21hbGwtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29udHJvbC1zbWFsbC1oZWlnaHQgIWRlZmF1bHQ7XHJcbiRmb3JtLXNtYWxsLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICA4cHggIWRlZmF1bHQ7XHJcbiRmb3JtLXNtYWxsLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAkZm9ybS1zbWFsbC1oZWlnaHQgIWRlZmF1bHQ7XHJcbiRmb3JtLXNtYWxsLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuXHJcbiRmb3JtLWxhcmdlLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbnRyb2wtbGFyZ2UtaGVpZ2h0ICFkZWZhdWx0O1xyXG4kZm9ybS1sYXJnZS1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgMTJweCAhZGVmYXVsdDtcclxuJGZvcm0tbGFyZ2UtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICRmb3JtLWxhcmdlLWhlaWdodCAhZGVmYXVsdDtcclxuJGZvcm0tbGFyZ2UtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWVkaXVtLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuXHJcbiRmb3JtLWRhbmdlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWRhbmdlci1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kZm9ybS1zdWNjZXNzLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zdWNjZXNzLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcblxyXG4kZm9ybS13aWR0aC14c21hbGw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTBweCAhZGVmYXVsdDtcclxuJGZvcm0td2lkdGgtc21hbGw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzMHB4ICFkZWZhdWx0O1xyXG4kZm9ybS13aWR0aC1tZWRpdW06ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAwcHggIWRlZmF1bHQ7XHJcbiRmb3JtLXdpZHRoLWxhcmdlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1MDBweCAhZGVmYXVsdDtcclxuXHJcbiRmb3JtLXNlbGVjdC1wYWRkaW5nLXJpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAyMHB4ICFkZWZhdWx0O1xyXG4kZm9ybS1zZWxlY3QtaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGZvcm0tc2VsZWN0LW9wdGlvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICM0NDQgIWRlZmF1bHQ7XHJcbiRmb3JtLXNlbGVjdC1kaXNhYmxlZC1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG5cclxuJGZvcm0tZGF0YWxpc3QtcGFkZGluZy1yaWdodDogICAgICAgICAgICAgICAgICAgIDIwcHggIWRlZmF1bHQ7XHJcbiRmb3JtLWRhdGFsaXN0LWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG5cclxuJGZvcm0tcmFkaW8tc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2cHggIWRlZmF1bHQ7XHJcbiRmb3JtLXJhZGlvLW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgICAtNHB4ICFkZWZhdWx0O1xyXG4kZm9ybS1yYWRpby1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgZGFya2VuKCRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCwgNSUpICFkZWZhdWx0O1xyXG5cclxuJGZvcm0tcmFkaW8tY2hlY2tlZC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICRnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kZm9ybS1yYWRpby1jaGVja2VkLWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xyXG5cclxuJGZvcm0tcmFkaW8tY2hlY2tlZC1mb2N1cy1iYWNrZ3JvdW5kOiAgICAgICAgICAgIGRhcmtlbigkZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCwgMTAlKSAhZGVmYXVsdDtcclxuXHJcbiRmb3JtLXJhZGlvLWRpc2FibGVkLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRmb3JtLXJhZGlvLWRpc2FibGVkLWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG5cclxuJGZvcm0tbGVnZW5kLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbGFyZ2UtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kZm9ybS1sZWdlbmQtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgMS40ICFkZWZhdWx0O1xyXG5cclxuJGZvcm0tc3RhY2tlZC1tYXJnaW4tYm90dG9tOiAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtc21hbGwtbWFyZ2luICFkZWZhdWx0O1xyXG5cclxuJGZvcm0taG9yaXpvbnRhbC1sYWJlbC13aWR0aDogICAgICAgICAgICAgICAgICAgIDIwMHB4ICFkZWZhdWx0O1xyXG4kZm9ybS1ob3Jpem9udGFsLWxhYmVsLW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgN3B4ICFkZWZhdWx0O1xyXG4kZm9ybS1ob3Jpem9udGFsLWNvbnRyb2xzLW1hcmdpbi1sZWZ0OiAgICAgICAgICAgMjE1cHggIWRlZmF1bHQ7XHJcbiRmb3JtLWhvcml6b250YWwtY29udHJvbHMtdGV4dC1wYWRkaW5nLXRvcDogICAgICA3cHggIWRlZmF1bHQ7XHJcblxyXG4kZm9ybS1pY29uLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvcm0taGVpZ2h0ICFkZWZhdWx0O1xyXG4kZm9ybS1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGZvcm0taWNvbi1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4kaW50ZXJuYWwtZm9ybS1zZWxlY3QtaW1hZ2U6IFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIyNCUyMiUyMGhlaWdodCUzRCUyMjE2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAxNiUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIjMDAwJTIyJTIwcG9pbnRzJTNEJTIyMTIlMjAxJTIwOSUyMDYlMjAxNSUyMDYlMjIlMjAlMkYlM0UlMEElMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiMwMDAlMjIlMjBwb2ludHMlM0QlMjIxMiUyMDEzJTIwOSUyMDglMjAxNSUyMDglMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0UlMEFcIiAhZGVmYXVsdDtcclxuJGludGVybmFsLWZvcm0tZGF0YWxpc3QtaW1hZ2U6IFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIyNCUyMiUyMGhlaWdodCUzRCUyMjE2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAxNiUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIjMDAwJTIyJTIwcG9pbnRzJTNEJTIyMTIlMjAxMiUyMDglMjA2JTIwMTYlMjA2JTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFJTBBXCIgIWRlZmF1bHQ7XHJcbiRpbnRlcm5hbC1mb3JtLXJhZGlvLWltYWdlOiBcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTYlMjIlMjBoZWlnaHQlM0QlMjIxNiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE2JTIwMTYlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ2NpcmNsZSUyMGZpbGwlM0QlMjIjMDAwJTIyJTIwY3glM0QlMjI4JTIyJTIwY3klM0QlMjI4JTIyJTIwciUzRCUyMjIlMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0VcIiAhZGVmYXVsdDtcclxuJGludGVybmFsLWZvcm0tY2hlY2tib3gtaW1hZ2U6IFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIxNCUyMiUyMGhlaWdodCUzRCUyMjExJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTQlMjAxMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIjMDAwJTIyJTIwcG9pbnRzJTNEJTIyMTIlMjAxJTIwNSUyMDcuNSUyMDIlMjA1JTIwMSUyMDUuNSUyMDUlMjAxMCUyMDEzJTIwMS41JTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFJTBBXCIgIWRlZmF1bHQ7XHJcbiRpbnRlcm5hbC1mb3JtLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtaW1hZ2U6IFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIxNiUyMiUyMGhlaWdodCUzRCUyMjE2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTYlMjAxNiUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIjMDAwJTIyJTIweCUzRCUyMjMlMjIlMjB5JTNEJTIyOCUyMiUyMHdpZHRoJTNEJTIyMTAlMjIlMjBoZWlnaHQlM0QlMjIxJTIyJTIwJTJGJTNFJTBBJTNDJTJGc3ZnJTNFXCIgIWRlZmF1bHQ7XHJcblxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogRm9ybVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIDEuIERlZmluZSBjb25zaXN0ZW50IGJveCBzaXppbmcuXHJcbiAqICAgIERlZmF1bHQgaXMgYGNvbnRlbnQtYm94YCB3aXRoIGZvbGxvd2luZyBleGNlcHRpb25zIHNldCB0byBgYm9yZGVyLWJveGBcclxuICogICAgYHNlbGVjdGAsIGBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl1gIGFuZCBgaW5wdXRbdHlwZT1cInJhZGlvXCJdYFxyXG4gKiAgICBgaW5wdXRbdHlwZT1cInNlYXJjaFwiXWAgaW4gQ2hyb21lLCBTYWZhcmkgYW5kIE9wZXJhXHJcbiAqICAgIGBpbnB1dFt0eXBlPVwiY29sb3JcIl1gIGluIEZpcmVmb3hcclxuICogMi4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94L0lFIGFuZCBDaHJvbWUvU2FmYXJpL09wZXJhLlxyXG4gKiAzLiBSZW1vdmUgYGJvcmRlci1yYWRpdXNgIGluIGlPUy5cclxuICogNC4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbi51ay1pbnB1dCxcclxuLnVrLXNlbGVjdCxcclxuLnVrLXRleHRhcmVhLFxyXG4udWstcmFkaW8sXHJcbi51ay1jaGVja2JveCB7XHJcbiAgICAvKiAxICovXHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgLyogMiAqL1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgLyogMyAqL1xyXG4gICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgIC8qIDQgKi9cclxuICAgIGZvbnQ6IGluaGVyaXQ7XHJcbn1cclxuXHJcbi8qXHJcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXHJcbiAqL1xyXG5cclxuLnVrLWlucHV0IHsgb3ZlcmZsb3c6IHZpc2libGU7IH1cclxuXHJcbi8qXHJcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cclxuICovXHJcblxyXG4udWstc2VsZWN0IHsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cclxuXHJcbi8qXHJcbiAqIDEuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIGFsbCBicm93c2Vyc1xyXG4gKiAyLiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIGFuZCB1c2UgYGJvbGRgIGluc3RlYWQuXHJcbiAqIE5PVEU6IEJvdGggZGVjbGFyYXRpb25zIGRvbid0IHdvcmsgaW4gQ2hyb21lLCBTYWZhcmkgYW5kIE9wZXJhLlxyXG4gKi9cclxuXHJcbi51ay1zZWxlY3Qgb3B0Z3JvdXAge1xyXG4gICAgLyogMSAqL1xyXG4gICAgZm9udDogaW5oZXJpdDtcclxuICAgIC8qIDIgKi9cclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4vKlxyXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cclxuICovXHJcblxyXG4udWstdGV4dGFyZWEgeyBvdmVyZmxvdzogYXV0bzsgfVxyXG5cclxuLypcclxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgb24gT1MgWCBhbmQgU2FmYXJpIG9uIE9TIFguXHJcbiAqL1xyXG5cclxuLnVrLWlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXHJcbi51ay1pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHsgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XHJcblxyXG5cclxuLypcclxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxyXG4gKi9cclxuXHJcbi51ay1pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxyXG4udWstaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7IGhlaWdodDogYXV0bzsgfVxyXG5cclxuLypcclxuICogUmVtb3ZlcyBwbGFjZWhvbGRlciB0cmFuc3BhcmVuY3kgaW4gRmlyZWZveC5cclxuICovXHJcblxyXG4udWstaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIsXHJcbi51ay10ZXh0YXJlYTo6LW1vei1wbGFjZWhvbGRlciB7IG9wYWNpdHk6IDE7IH1cclxuXHJcbi8qXHJcbiAqIEltcHJvdmVzIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBmb3IgY2xpY2thYmxlIGVsZW1lbnRzXHJcbiAqL1xyXG5cclxuLnVrLXJhZGlvOm5vdCg6ZGlzYWJsZWQpLFxyXG4udWstY2hlY2tib3g6bm90KDpkaXNhYmxlZCkgeyBjdXJzb3I6IHBvaW50ZXI7IH1cclxuXHJcbi8qXHJcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cclxuICovXHJcblxyXG4udWstZmllbGRzZXQge1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxufVxyXG5cclxuXHJcbi8qIElucHV0LCBzZWxlY3QgYW5kIHRleHRhcmVhXHJcbiAqIEFsbG93ZWQ6IGB0ZXh0YCwgYHBhc3N3b3JkYCwgYGRhdGV0aW1lYCwgYGRhdGV0aW1lLWxvY2FsYCwgYGRhdGVgLCAgYG1vbnRoYCxcclxuICAgICAgICAgICAgYHRpbWVgLCBgd2Vla2AsIGBudW1iZXJgLCBgZW1haWxgLCBgdXJsYCwgYHNlYXJjaGAsIGB0ZWxgLCBgY29sb3JgXHJcbiAqIERpc2FsbG93ZWQ6IGByYW5nZWAsIGByYWRpb2AsIGBjaGVja2JveGAsIGBmaWxlYCwgYHN1Ym1pdGAsIGByZXNldGAgYW5kIGBpbWFnZWBcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiBSZW1vdmUgZGVmYXVsdCBzdHlsZSBpbiBpT1MuXHJcbiAqL1xyXG5cclxuLnVrLWlucHV0LFxyXG4udWstdGV4dGFyZWEgeyAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cclxuXHJcbi8qXHJcbiAqIDEuIFByZXZlbnQgY29udGVudCBvdmVyZmxvdyBpZiBhIGZpeGVkIHdpZHRoIGlzIHVzZWRcclxuICogMi4gVGFrZSB0aGUgZnVsbCB3aWR0aFxyXG4gKiAzLiBSZXNldCBkZWZhdWx0XHJcbiAqIDQuIFN0eWxlXHJcbiAqL1xyXG5cclxuLnVrLWlucHV0LFxyXG4udWstc2VsZWN0LFxyXG4udWstdGV4dGFyZWEge1xyXG4gICAgLyogMSAqL1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgLyogMiAqL1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICAvKiAzICovXHJcbiAgICBib3JkZXI6IDAgbm9uZTtcclxuICAgIC8qIDQgKi9cclxuICAgIHBhZGRpbmc6IDAgJGZvcm0tcGFkZGluZy1ob3Jpem9udGFsO1xyXG4gICAgYmFja2dyb3VuZDogJGZvcm0tYmFja2dyb3VuZDtcclxuICAgIGNvbG9yOiAkZm9ybS1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1mb3JtKSkge0BpbmNsdWRlIGhvb2stZm9ybSgpO31cclxufVxyXG5cclxuLypcclxuICogU2luZ2xlLWxpbmVcclxuICogMS4gQWxsb3cgYW55IGVsZW1lbnQgdG8gbG9vayBsaWtlIGFuIGBpbnB1dGAgb3IgYHNlbGVjdGAgZWxlbWVudFxyXG4gKiAyLiBNYWtlIHN1cmUgbGluZS1oZWlnaHQgaXMgbm90IGxhcmdlciB0aGFuIGhlaWdodFxyXG4gKiAgICBBbHNvIG5lZWRlZCB0byBjZW50ZXIgdGhlIHRleHQgdmVydGljYWxseVxyXG4gKi9cclxuXHJcbi51ay1pbnB1dCxcclxuLnVrLXNlbGVjdDpub3QoW211bHRpcGxlXSk6bm90KFtzaXplXSkge1xyXG4gICAgaGVpZ2h0OiAkZm9ybS1oZWlnaHQ7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgLyogMSAqL1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWZvcm0tc2luZ2xlLWxpbmUpKSB7QGluY2x1ZGUgaG9vay1mb3JtLXNpbmdsZS1saW5lKCk7fVxyXG59XHJcblxyXG4vKiAyICovXHJcbi51ay1pbnB1dDpub3QoaW5wdXQpLFxyXG4udWstc2VsZWN0Om5vdChzZWxlY3QpIHsgbGluZS1oZWlnaHQ6ICRmb3JtLWxpbmUtaGVpZ2h0OyB9XHJcblxyXG4vKlxyXG4gKiBNdWx0aS1saW5lXHJcbiAqL1xyXG5cclxuLnVrLXNlbGVjdFttdWx0aXBsZV0sXHJcbi51ay1zZWxlY3Rbc2l6ZV0sXHJcbi51ay10ZXh0YXJlYSB7XHJcbiAgICBwYWRkaW5nLXRvcDogJGZvcm0tcGFkZGluZy12ZXJ0aWNhbDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAkZm9ybS1wYWRkaW5nLXZlcnRpY2FsO1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1mb3JtLW11bHRpLWxpbmUpKSB7QGluY2x1ZGUgaG9vay1mb3JtLW11bHRpLWxpbmUoKTt9XHJcbn1cclxuXHJcbi8qIEZvY3VzICovXHJcbi51ay1pbnB1dDpmb2N1cyxcclxuLnVrLXNlbGVjdDpmb2N1cyxcclxuLnVrLXRleHRhcmVhOmZvY3VzIHtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9ybS1mb2N1cy1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRmb3JtLWZvY3VzLWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWZvcm0tZm9jdXMpKSB7QGluY2x1ZGUgaG9vay1mb3JtLWZvY3VzKCk7fVxyXG59XHJcblxyXG4vKiBEaXNhYmxlZCAqL1xyXG4udWstaW5wdXQ6ZGlzYWJsZWQsXHJcbi51ay1zZWxlY3Q6ZGlzYWJsZWQsXHJcbi51ay10ZXh0YXJlYTpkaXNhYmxlZCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9ybS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRmb3JtLWRpc2FibGVkLWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWZvcm0tZGlzYWJsZWQpKSB7QGluY2x1ZGUgaG9vay1mb3JtLWRpc2FibGVkKCk7fVxyXG59XHJcblxyXG4vKlxyXG4gKiBQbGFjZWhvbGRlclxyXG4gKi9cclxuXHJcbi51ay1pbnB1dDo6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6ICRmb3JtLXBsYWNlaG9sZGVyLWNvbG9yICFpbXBvcnRhbnQ7IH1cclxuLnVrLWlucHV0OjpwbGFjZWhvbGRlciB7IGNvbG9yOiAkZm9ybS1wbGFjZWhvbGRlci1jb2xvcjsgfVxyXG5cclxuLnVrLXRleHRhcmVhOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjogJGZvcm0tcGxhY2Vob2xkZXItY29sb3IgIWltcG9ydGFudDsgfVxyXG4udWstdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHsgY29sb3I6ICRmb3JtLXBsYWNlaG9sZGVyLWNvbG9yOyB9XHJcblxyXG5cclxuLyogU3R5bGUgbW9kaWZpZXIgKGB1ay1pbnB1dGAsIGB1ay1zZWxlY3RgIGFuZCBgdWstdGV4dGFyZWFgKVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIFNtYWxsXHJcbiAqL1xyXG5cclxuLnVrLWZvcm0tc21hbGwgeyBmb250LXNpemU6ICRmb3JtLXNtYWxsLWZvbnQtc2l6ZTsgfVxyXG5cclxuLnVrLWZvcm0tc21hbGw6bm90KHRleHRhcmVhKTpub3QoW211bHRpcGxlXSk6bm90KFtzaXplXSkge1xyXG4gICAgaGVpZ2h0OiAkZm9ybS1zbWFsbC1oZWlnaHQ7XHJcbiAgICBwYWRkaW5nLWxlZnQ6ICRmb3JtLXNtYWxsLXBhZGRpbmctaG9yaXpvbnRhbDtcclxuICAgIHBhZGRpbmctcmlnaHQ6ICRmb3JtLXNtYWxsLXBhZGRpbmctaG9yaXpvbnRhbDtcclxufVxyXG5cclxuLnVrLWZvcm0tc21hbGw6bm90KHNlbGVjdCk6bm90KGlucHV0KTpub3QodGV4dGFyZWEpIHsgbGluZS1oZWlnaHQ6ICRmb3JtLXNtYWxsLWxpbmUtaGVpZ2h0OyB9XHJcblxyXG4vKlxyXG4gKiBMYXJnZVxyXG4gKi9cclxuXHJcbi51ay1mb3JtLWxhcmdlIHsgZm9udC1zaXplOiAkZm9ybS1sYXJnZS1mb250LXNpemU7IH1cclxuXHJcbi51ay1mb3JtLWxhcmdlOm5vdCh0ZXh0YXJlYSk6bm90KFttdWx0aXBsZV0pOm5vdChbc2l6ZV0pIHtcclxuICAgIGhlaWdodDogJGZvcm0tbGFyZ2UtaGVpZ2h0O1xyXG4gICAgcGFkZGluZy1sZWZ0OiAkZm9ybS1sYXJnZS1wYWRkaW5nLWhvcml6b250YWw7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAkZm9ybS1sYXJnZS1wYWRkaW5nLWhvcml6b250YWw7XHJcbn1cclxuXHJcbi51ay1mb3JtLWxhcmdlOm5vdChzZWxlY3QpOm5vdChpbnB1dCk6bm90KHRleHRhcmVhKSB7IGxpbmUtaGVpZ2h0OiAkZm9ybS1sYXJnZS1saW5lLWhlaWdodDsgfVxyXG5cclxuXHJcbi8qIFN0eWxlIG1vZGlmaWVyIChgdWstaW5wdXRgLCBgdWstc2VsZWN0YCBhbmQgYHVrLXRleHRhcmVhYClcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiBFcnJvclxyXG4gKi9cclxuXHJcbi51ay1mb3JtLWRhbmdlcixcclxuLnVrLWZvcm0tZGFuZ2VyOmZvY3VzIHtcclxuICAgIGNvbG9yOiAkZm9ybS1kYW5nZXItY29sb3I7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZm9ybS1kYW5nZXIpKSB7QGluY2x1ZGUgaG9vay1mb3JtLWRhbmdlcigpO31cclxufVxyXG5cclxuLypcclxuICogU3VjY2Vzc1xyXG4gKi9cclxuXHJcbi51ay1mb3JtLXN1Y2Nlc3MsXHJcbi51ay1mb3JtLXN1Y2Nlc3M6Zm9jdXMgIHtcclxuICAgIGNvbG9yOiAkZm9ybS1zdWNjZXNzLWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWZvcm0tc3VjY2VzcykpIHtAaW5jbHVkZSBob29rLWZvcm0tc3VjY2VzcygpO31cclxufVxyXG5cclxuLypcclxuICogQmxhbmtcclxuICovXHJcblxyXG4udWstZm9ybS1ibGFuayB7XHJcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWZvcm0tYmxhbmspKSB7QGluY2x1ZGUgaG9vay1mb3JtLWJsYW5rKCk7fVxyXG59XHJcblxyXG4udWstZm9ybS1ibGFuazpmb2N1cyB7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZm9ybS1ibGFuay1mb2N1cykpIHtAaW5jbHVkZSBob29rLWZvcm0tYmxhbmstZm9jdXMoKTt9XHJcbn1cclxuXHJcblxyXG4vKiBXaWR0aCBtb2RpZmllcnMgKGB1ay1pbnB1dGAsIGB1ay1zZWxlY3RgIGFuZCBgdWstdGV4dGFyZWFgKVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIEZpeGVkIHdpZHRoc1xyXG4gKiBEaWZmZXJlbnQgd2lkdGhzIGZvciBtaW5pIHNpemVkIGBpbnB1dGAgYW5kIGBzZWxlY3RgIGVsZW1lbnRzXHJcbiAqL1xyXG5cclxuaW5wdXQudWstZm9ybS13aWR0aC14c21hbGwgeyB3aWR0aDogJGZvcm0td2lkdGgteHNtYWxsOyB9XHJcblxyXG5zZWxlY3QudWstZm9ybS13aWR0aC14c21hbGwgeyB3aWR0aDogKCRmb3JtLXdpZHRoLXhzbWFsbCArIDI1cHgpOyB9XHJcblxyXG4udWstZm9ybS13aWR0aC1zbWFsbCB7IHdpZHRoOiAkZm9ybS13aWR0aC1zbWFsbDsgfVxyXG5cclxuLnVrLWZvcm0td2lkdGgtbWVkaXVtIHsgd2lkdGg6ICRmb3JtLXdpZHRoLW1lZGl1bTsgfVxyXG5cclxuLnVrLWZvcm0td2lkdGgtbGFyZ2UgeyB3aWR0aDogJGZvcm0td2lkdGgtbGFyZ2U7IH1cclxuXHJcblxyXG4vKiBTZWxlY3RcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBSZW1vdmUgZGVmYXVsdCBzdHlsZS4gQWxzbyB3b3JrcyBpbiBGaXJlZm94XHJcbiAqIDIuIFN0eWxlXHJcbiAqIDMuIFJlbW92ZSBkZWZhdWx0IHN0eWxlIGluIElFIDEwLzExXHJcbiAqIDQuIFNldCBgY29sb3JgIGZvciBvcHRpb25zIGluIHRoZSBzZWxlY3QgZHJvcGRvd24sIGJlY2F1c2UgdGhlIGluaGVyaXRlZCBgY29sb3JgIG1pZ2h0IGJlIHRvbyBsaWdodC5cclxuICovXHJcblxyXG4udWstc2VsZWN0Om5vdChbbXVsdGlwbGVdKTpub3QoW3NpemVdKSB7XHJcbiAgICAvKiAxICovXHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAvKiAyICovXHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAkZm9ybS1zZWxlY3QtcGFkZGluZy1yaWdodDtcclxuICAgIEBpbmNsdWRlIHN2Zy1maWxsKCRpbnRlcm5hbC1mb3JtLXNlbGVjdC1pbWFnZSwgXCIjMDAwXCIsICRmb3JtLXNlbGVjdC1pY29uLWNvbG9yKTtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDUwJTtcclxufVxyXG5cclxuLyogMyAqL1xyXG4udWstc2VsZWN0Om5vdChbbXVsdGlwbGVdKTpub3QoW3NpemVdKTo6LW1zLWV4cGFuZCB7IGRpc3BsYXk6IG5vbmU7IH1cclxuXHJcbi8qIDQgKi9cclxuLnVrLXNlbGVjdDpub3QoW211bHRpcGxlXSk6bm90KFtzaXplXSkgb3B0aW9uIHsgY29sb3I6ICRmb3JtLXNlbGVjdC1vcHRpb24tY29sb3I7IH1cclxuXHJcbi8qXHJcbiAqIERpc2FibGVkXHJcbiAqL1xyXG5cclxuLnVrLXNlbGVjdDpub3QoW211bHRpcGxlXSk6bm90KFtzaXplXSk6ZGlzYWJsZWQgeyBAaW5jbHVkZSBzdmctZmlsbCgkaW50ZXJuYWwtZm9ybS1zZWxlY3QtaW1hZ2UsIFwiIzAwMFwiLCAkZm9ybS1zZWxlY3QtZGlzYWJsZWQtaWNvbi1jb2xvcik7IH1cclxuXHJcblxyXG4vKiBEYXRhbGlzdFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIDEuIFJlbW92ZSBkZWZhdWx0IHN0eWxlIGluIENocm9tZVxyXG4gKi9cclxuXHJcbiAudWstaW5wdXRbbGlzdF0ge1xyXG4gICAgcGFkZGluZy1yaWdodDogJGZvcm0tZGF0YWxpc3QtcGFkZGluZy1yaWdodDtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDUwJTtcclxufVxyXG5cclxuLnVrLWlucHV0W2xpc3RdOmhvdmVyLFxyXG4udWstaW5wdXRbbGlzdF06Zm9jdXMgeyBAaW5jbHVkZSBzdmctZmlsbCgkaW50ZXJuYWwtZm9ybS1kYXRhbGlzdC1pbWFnZSwgXCIjMDAwXCIsICRmb3JtLWRhdGFsaXN0LWljb24tY29sb3IpOyB9XHJcblxyXG4vKiAxICovXHJcbi51ay1pbnB1dFtsaXN0XTo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yIHsgZGlzcGxheTogbm9uZTsgfVxyXG5cclxuXHJcbi8qIFJhZGlvIGFuZCBjaGVja2JveFxyXG4gKiBOb3RlOiBEb2VzIG5vdCB3b3JrIGluIElFMTFcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBTdHlsZVxyXG4gKiAyLiBNYWtlIGJveCBtb3JlIHJvYnVzdCBzbyBpdCBjbGlwcyB0aGUgY2hpbGQgZWxlbWVudFxyXG4gKiAzLiBWZXJ0aWNhbCBhbGlnbm1lbnRcclxuICogNC4gUmVtb3ZlIGRlZmF1bHQgc3R5bGVcclxuICogNS4gRml4IGJsYWNrIGJhY2tncm91bmQgb24gaU9TXHJcbiAqIDYuIENlbnRlciBpY29uc1xyXG4gKi9cclxuXHJcbi51ay1yYWRpbyxcclxuLnVrLWNoZWNrYm94IHtcclxuICAgIC8qIDEgKi9cclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGhlaWdodDogJGZvcm0tcmFkaW8tc2l6ZTtcclxuICAgIHdpZHRoOiAkZm9ybS1yYWRpby1zaXplO1xyXG4gICAgLyogMiAqL1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIC8qIDMgKi9cclxuICAgIG1hcmdpbi10b3A6ICRmb3JtLXJhZGlvLW1hcmdpbi10b3A7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgLyogNCAqL1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgLyogNSAqL1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGZvcm0tcmFkaW8tYmFja2dyb3VuZDtcclxuICAgIC8qIDYgKi9cclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWZvcm0tcmFkaW8pKSB7QGluY2x1ZGUgaG9vay1mb3JtLXJhZGlvKCk7fVxyXG59XHJcblxyXG4udWstcmFkaW8geyBib3JkZXItcmFkaXVzOiA1MCU7IH1cclxuXHJcbi8qIEZvY3VzICovXHJcbi51ay1yYWRpbzpmb2N1cyxcclxuLnVrLWNoZWNrYm94OmZvY3VzIHtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZm9ybS1yYWRpby1mb2N1cykpIHtAaW5jbHVkZSBob29rLWZvcm0tcmFkaW8tZm9jdXMoKTt9XHJcbn1cclxuXHJcbi8qXHJcbiAqIENoZWNrZWRcclxuICovXHJcblxyXG4udWstcmFkaW86Y2hlY2tlZCxcclxuLnVrLWNoZWNrYm94OmNoZWNrZWQsXHJcbi51ay1jaGVja2JveDppbmRldGVybWluYXRlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3JtLXJhZGlvLWNoZWNrZWQtYmFja2dyb3VuZDtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1mb3JtLXJhZGlvLWNoZWNrZWQpKSB7QGluY2x1ZGUgaG9vay1mb3JtLXJhZGlvLWNoZWNrZWQoKTt9XHJcbn1cclxuXHJcbi8qIEZvY3VzICovXHJcbi51ay1yYWRpbzpjaGVja2VkOmZvY3VzLFxyXG4udWstY2hlY2tib3g6Y2hlY2tlZDpmb2N1cyxcclxuLnVrLWNoZWNrYm94OmluZGV0ZXJtaW5hdGU6Zm9jdXMge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGZvcm0tcmFkaW8tY2hlY2tlZC1mb2N1cy1iYWNrZ3JvdW5kO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWZvcm0tcmFkaW8tY2hlY2tlZC1mb2N1cykpIHtAaW5jbHVkZSBob29rLWZvcm0tcmFkaW8tY2hlY2tlZC1mb2N1cygpO31cclxufVxyXG5cclxuLypcclxuICogSWNvbnNcclxuICovXHJcblxyXG4udWstcmFkaW86Y2hlY2tlZCB7IEBpbmNsdWRlIHN2Zy1maWxsKCRpbnRlcm5hbC1mb3JtLXJhZGlvLWltYWdlLCBcIiMwMDBcIiwgJGZvcm0tcmFkaW8tY2hlY2tlZC1pY29uLWNvbG9yKTsgfVxyXG4udWstY2hlY2tib3g6Y2hlY2tlZCB7IEBpbmNsdWRlIHN2Zy1maWxsKCRpbnRlcm5hbC1mb3JtLWNoZWNrYm94LWltYWdlLCBcIiMwMDBcIiwgJGZvcm0tcmFkaW8tY2hlY2tlZC1pY29uLWNvbG9yKTsgfVxyXG4udWstY2hlY2tib3g6aW5kZXRlcm1pbmF0ZSB7IEBpbmNsdWRlIHN2Zy1maWxsKCRpbnRlcm5hbC1mb3JtLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtaW1hZ2UsIFwiIzAwMFwiLCAkZm9ybS1yYWRpby1jaGVja2VkLWljb24tY29sb3IpOyB9XHJcblxyXG4vKlxyXG4gKiBEaXNhYmxlZFxyXG4gKi9cclxuXHJcbi51ay1yYWRpbzpkaXNhYmxlZCxcclxuLnVrLWNoZWNrYm94OmRpc2FibGVkIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3JtLXJhZGlvLWRpc2FibGVkLWJhY2tncm91bmQ7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZm9ybS1yYWRpby1kaXNhYmxlZCkpIHtAaW5jbHVkZSBob29rLWZvcm0tcmFkaW8tZGlzYWJsZWQoKTt9XHJcbn1cclxuXHJcbi51ay1yYWRpbzpkaXNhYmxlZDpjaGVja2VkIHsgQGluY2x1ZGUgc3ZnLWZpbGwoJGludGVybmFsLWZvcm0tcmFkaW8taW1hZ2UsIFwiIzAwMFwiLCAkZm9ybS1yYWRpby1kaXNhYmxlZC1pY29uLWNvbG9yKTsgfVxyXG4udWstY2hlY2tib3g6ZGlzYWJsZWQ6Y2hlY2tlZCB7IEBpbmNsdWRlIHN2Zy1maWxsKCRpbnRlcm5hbC1mb3JtLWNoZWNrYm94LWltYWdlLCBcIiMwMDBcIiwgJGZvcm0tcmFkaW8tZGlzYWJsZWQtaWNvbi1jb2xvcik7IH1cclxuLnVrLWNoZWNrYm94OmRpc2FibGVkOmluZGV0ZXJtaW5hdGUgeyBAaW5jbHVkZSBzdmctZmlsbCgkaW50ZXJuYWwtZm9ybS1jaGVja2JveC1pbmRldGVybWluYXRlLWltYWdlLCBcIiMwMDBcIiwgJGZvcm0tcmFkaW8tZGlzYWJsZWQtaWNvbi1jb2xvcik7IH1cclxuXHJcblxyXG4vKiBMZWdlbmRcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiBMZWdlbmRcclxuICogMS4gQmVoYXZlIGxpa2UgYmxvY2sgZWxlbWVudFxyXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXHJcbiAqIDMuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cclxuICogNC4gU3R5bGVcclxuICovXHJcblxyXG4udWstbGVnZW5kIHtcclxuICAgIC8qIDEgKi9cclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgLyogMiAqL1xyXG4gICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICAvKiAzICovXHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgLyogNCAqL1xyXG4gICAgZm9udC1zaXplOiAkZm9ybS1sZWdlbmQtZm9udC1zaXplO1xyXG4gICAgbGluZS1oZWlnaHQ6ICRmb3JtLWxlZ2VuZC1saW5lLWhlaWdodDtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1mb3JtLWxlZ2VuZCkpIHtAaW5jbHVkZSBob29rLWZvcm0tbGVnZW5kKCk7fVxyXG59XHJcblxyXG5cclxuLyogQ3VzdG9tIGNvbnRyb2xzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogMS4gQ29udGFpbmVyIGZpdHMgaXRzIGNvbnRlbnRcclxuICogMi4gQ3JlYXRlIHBvc2l0aW9uIGNvbnRleHRcclxuICogMy4gUHJldmVudCBjb250ZW50IG92ZXJmbG93XHJcbiAqIDQuIEJlaGF2ZSBsaWtlIG1vc3QgaW5saW5lLWJsb2NrIGVsZW1lbnRzXHJcbiAqL1xyXG5cclxuLnVrLWZvcm0tY3VzdG9tIHtcclxuICAgIC8qIDEgKi9cclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIC8qIDIgKi9cclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIC8qIDMgKi9cclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIC8qIDQgKi9cclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbn1cclxuXHJcbi8qXHJcbiAqIDEuIFBvc2l0aW9uIGFuZCByZXNpemUgdGhlIGZvcm0gY29udHJvbCB0byBhbHdheXMgY292ZXIgaXRzIGNvbnRhaW5lclxyXG4gKiAyLiBSZXF1aXJlZCBmb3IgRmlyZWZveCBmb3IgcG9zaXRpb25pbmcgdG8gdGhlIGxlZnRcclxuICogMy4gUmVxdWlyZWQgZm9yIFdlYmtpdCB0byBtYWtlIGBoZWlnaHRgIHdvcmtcclxuICogNC4gSGlkZSBjb250cm9sZSBhbmQgc2hvdyBjdXJzb3JcclxuICogNS4gTmVlZGVkIGZvciB0aGUgY3Vyc29yXHJcbiAqIDYuIENsaXAgaGVpZ2h0IGNhdXNlZCBieSA1LiBOZWVkZWQgZm9yIFdlYmtpdCBvbmx5XHJcbiAqL1xyXG5cclxuLnVrLWZvcm0tY3VzdG9tIHNlbGVjdCxcclxuLnVrLWZvcm0tY3VzdG9tIGlucHV0W3R5cGU9XCJmaWxlXCJdIHtcclxuICAgIC8qIDEgKi9cclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIHotaW5kZXg6IDE7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIC8qIDIgKi9cclxuICAgIGxlZnQ6IDA7XHJcbiAgICAvKiAzICovXHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAvKiA0ICovXHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4udWstZm9ybS1jdXN0b20gaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xyXG4gICAgLyogNSAqL1xyXG4gICAgZm9udC1zaXplOiA1MDBweDtcclxuICAgIC8qIDYgKi9cclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcblxyXG4vKiBMYWJlbFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1mb3JtLWxhYmVsIHtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1mb3JtLWxhYmVsKSkge0BpbmNsdWRlIGhvb2stZm9ybS1sYWJlbCgpO31cclxufVxyXG5cclxuXHJcbi8qIExheW91dFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIFN0YWNrZWRcclxuICovXHJcblxyXG4udWstZm9ybS1zdGFja2VkIC51ay1mb3JtLWxhYmVsIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3RhY2tlZC1tYXJnaW4tYm90dG9tO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWZvcm0tc3RhY2tlZC1sYWJlbCkpIHtAaW5jbHVkZSBob29rLWZvcm0tc3RhY2tlZC1sYWJlbCgpO31cclxufVxyXG5cclxuLypcclxuICogSG9yaXpvbnRhbFxyXG4gKi9cclxuXHJcbi8qIFRhYmxldCBwb3J0cmFpdCBhbmQgc21hbGxlciAqL1xyXG5AbWVkaWEgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtc21hbGwtbWF4KSB7XHJcblxyXG4gICAgLyogQmVoYXZlIGxpa2UgYHVrLWZvcm0tc3RhY2tlZGAgKi9cclxuICAgIC51ay1mb3JtLWhvcml6b250YWwgLnVrLWZvcm0tbGFiZWwge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXN0YWNrZWQtbWFyZ2luLWJvdHRvbTtcclxuICAgICAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZm9ybS1zdGFja2VkLWxhYmVsKSkge0BpbmNsdWRlIGhvb2stZm9ybS1zdGFja2VkLWxhYmVsKCk7fVxyXG4gICAgfVxyXG5cclxufVxyXG5cclxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXHJcbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcclxuXHJcbiAgICAudWstZm9ybS1ob3Jpem9udGFsIC51ay1mb3JtLWxhYmVsIHtcclxuICAgICAgICB3aWR0aDogJGZvcm0taG9yaXpvbnRhbC1sYWJlbC13aWR0aDtcclxuICAgICAgICBtYXJnaW4tdG9wOiAkZm9ybS1ob3Jpem9udGFsLWxhYmVsLW1hcmdpbi10b3A7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWZvcm0taG9yaXpvbnRhbC1sYWJlbCkpIHtAaW5jbHVkZSBob29rLWZvcm0taG9yaXpvbnRhbC1sYWJlbCgpO31cclxuICAgIH1cclxuXHJcbiAgICAudWstZm9ybS1ob3Jpem9udGFsIC51ay1mb3JtLWNvbnRyb2xzIHsgbWFyZ2luLWxlZnQ6ICRmb3JtLWhvcml6b250YWwtY29udHJvbHMtbWFyZ2luLWxlZnQ7IH1cclxuXHJcbiAgICAvKiBCZXR0ZXIgdmVydGljYWwgYWxpZ25tZW50IGlmIGNvbnRyb2xzIGFyZSBjaGVja2JveGVzIGFuZCByYWRpbyBidXR0b25zIHdpdGggdGV4dCAqL1xyXG4gICAgLnVrLWZvcm0taG9yaXpvbnRhbCAudWstZm9ybS1jb250cm9scy10ZXh0IHsgcGFkZGluZy10b3A6ICRmb3JtLWhvcml6b250YWwtY29udHJvbHMtdGV4dC1wYWRkaW5nLXRvcDsgfVxyXG5cclxufVxyXG5cclxuXHJcbi8qIEljb25zXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogMS4gU2V0IHBvc2l0aW9uXHJcbiAqIDIuIFNldCB3aWR0aFxyXG4gKiAzLiBDZW50ZXIgaWNvbiB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHlcclxuICogNC4gU3R5bGVcclxuICovXHJcblxyXG4udWstZm9ybS1pY29uIHtcclxuICAgIC8qIDEgKi9cclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICAvKiAyICovXHJcbiAgICB3aWR0aDogJGZvcm0taWNvbi13aWR0aDtcclxuICAgIC8qIDMgKi9cclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgLyogNCAqL1xyXG4gICAgY29sb3I6ICRmb3JtLWljb24tY29sb3I7XHJcbn1cclxuXHJcbi8qXHJcbiAqIFJlcXVpcmVkIGZvciBgYWAuXHJcbiAqL1xyXG5cclxuLnVrLWZvcm0taWNvbjpob3ZlciB7IGNvbG9yOiAkZm9ybS1pY29uLWhvdmVyLWNvbG9yOyB9XHJcblxyXG4vKlxyXG4gKiBNYWtlIGBpbnB1dGAgZWxlbWVudCBjbGlja2FibGUgdGhyb3VnaCBpY29uLCBlLmcuIGlmIGl0J3MgYSBgc3BhbmBcclxuICovXHJcblxyXG4udWstZm9ybS1pY29uOm5vdChhKTpub3QoYnV0dG9uKTpub3QoaW5wdXQpIHsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cclxuXHJcbi8qXHJcbiAqIElucHV0IHBhZGRpbmdcclxuICovXHJcblxyXG4udWstZm9ybS1pY29uOm5vdCgudWstZm9ybS1pY29uLWZsaXApIH4gLnVrLWlucHV0IHsgcGFkZGluZy1sZWZ0OiAkZm9ybS1pY29uLXdpZHRoICFpbXBvcnRhbnQ7IH1cclxuXHJcbi8qXHJcbiAqIFBvc2l0aW9uIG1vZGlmaWVyXHJcbiAqL1xyXG5cclxuLnVrLWZvcm0taWNvbi1mbGlwIHtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgbGVmdDogYXV0bztcclxufVxyXG5cclxuLnVrLWZvcm0taWNvbi1mbGlwIH4gLnVrLWlucHV0IHsgcGFkZGluZy1yaWdodDogJGZvcm0taWNvbi13aWR0aCAhaW1wb3J0YW50OyB9XHJcblxyXG5cclxuLy8gSG9va3NcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stZm9ybS1taXNjKSkge0BpbmNsdWRlIGhvb2stZm9ybS1taXNjKCk7fVxyXG5cclxuLy8gQG1peGluIGhvb2stZm9ybSgpe31cclxuLy8gQG1peGluIGhvb2stZm9ybS1zaW5nbGUtbGluZSgpe31cclxuLy8gQG1peGluIGhvb2stZm9ybS1tdWx0aS1saW5lKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1mb3JtLWZvY3VzKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1mb3JtLWRpc2FibGVkKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1mb3JtLWRhbmdlcigpe31cclxuLy8gQG1peGluIGhvb2stZm9ybS1zdWNjZXNzKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1mb3JtLWJsYW5rKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1mb3JtLWJsYW5rLWZvY3VzKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1mb3JtLXJhZGlvKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1mb3JtLXJhZGlvLWZvY3VzKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1mb3JtLXJhZGlvLWNoZWNrZWQoKXt9XHJcbi8vIEBtaXhpbiBob29rLWZvcm0tcmFkaW8tY2hlY2tlZC1mb2N1cygpe31cclxuLy8gQG1peGluIGhvb2stZm9ybS1yYWRpby1kaXNhYmxlZCgpe31cclxuLy8gQG1peGluIGhvb2stZm9ybS1sZWdlbmQoKXt9XHJcbi8vIEBtaXhpbiBob29rLWZvcm0tbGFiZWwoKXt9XHJcbi8vIEBtaXhpbiBob29rLWZvcm0tc3RhY2tlZC1sYWJlbCgpe31cclxuLy8gQG1peGluIGhvb2stZm9ybS1ob3Jpem9udGFsLWxhYmVsKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1mb3JtLW1pc2MoKXt9XHJcblxyXG5cclxuLy8gSW52ZXJzZVxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiRpbnZlcnNlLWZvcm0tYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1mb3JtLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWZvcm0tZm9jdXMtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1mb3JtLWZvY3VzLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWZvcm0tcGxhY2Vob2xkZXItY29sb3I6ICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuXHJcbiRpbnZlcnNlLWZvcm0tc2VsZWN0LWljb24tY29sb3I6ICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuXHJcbiRpbnZlcnNlLWZvcm0tZGF0YWxpc3QtaWNvbi1jb2xvcjogICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuXHJcbiRpbnZlcnNlLWZvcm0tcmFkaW8tYmFja2dyb3VuZDogICAgICAgICAgICAgICAgIGRhcmtlbigkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCwgNSUpICFkZWZhdWx0O1xyXG5cclxuJGludmVyc2UtZm9ybS1yYWRpby1jaGVja2VkLWJhY2tncm91bmQ6ICAgICAgICAgJGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGludmVyc2UtZm9ybS1yYWRpby1jaGVja2VkLWljb24tY29sb3I6ICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4kaW52ZXJzZS1mb3JtLXJhZGlvLWNoZWNrZWQtZm9jdXMtYmFja2dyb3VuZDogICBkYXJrZW4oJGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCwgMTAlKSAhZGVmYXVsdDtcclxuXHJcbiRpbnZlcnNlLWZvcm0taWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtZm9ybS1pY29uLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG5cclxuXHJcblxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWZvcm0oKXt9XHJcbi8vIEBtaXhpbiBob29rLWludmVyc2UtZm9ybS1mb2N1cygpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1mb3JtLXJhZGlvKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWZvcm0tcmFkaW8tZm9jdXMoKXt9XHJcbi8vIEBtaXhpbiBob29rLWludmVyc2UtZm9ybS1yYWRpby1jaGVja2VkKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWZvcm0tcmFkaW8tY2hlY2tlZC1mb2N1cygpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1mb3JtLWxhYmVsKCl7fVxyXG4iLCIvLyBOYW1lOiAgICAgICAgICAgIEJ1dHRvblxyXG4vLyBEZXNjcmlwdGlvbjogICAgIFN0eWxlcyBmb3IgYnV0dG9uc1xyXG4vL1xyXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1idXR0b25gXHJcbi8vXHJcbi8vIFN1Yi1vYmplY3RzOiAgICAgYHVrLWJ1dHRvbi1ncm91cGBcclxuLy9cclxuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstYnV0dG9uLWRlZmF1bHRgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWJ1dHRvbi1wcmltYXJ5YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1idXR0b24tc2Vjb25kYXJ5YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1idXR0b24tZGFuZ2VyYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1idXR0b24tdGV4dGBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstYnV0dG9uLWxpbmtgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWJ1dHRvbi1zbWFsbGBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstYnV0dG9uLWxhcmdlYFxyXG4vL1xyXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1hY3RpdmVgXHJcbi8vXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuXHJcbi8vIFZhcmlhYmxlc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiRidXR0b24tbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbnRyb2wtaGVpZ2h0ICFkZWZhdWx0O1xyXG4kYnV0dG9uLXNtYWxsLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb250cm9sLXNtYWxsLWhlaWdodCAhZGVmYXVsdDtcclxuJGJ1dHRvbi1sYXJnZS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29udHJvbC1sYXJnZS1oZWlnaHQgIWRlZmF1bHQ7XHJcblxyXG4kYnV0dG9uLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiRidXR0b24tc21hbGwtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJGJ1dHRvbi1sYXJnZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWVkaXVtLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuXHJcbiRidXR0b24tcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcclxuJGJ1dHRvbi1zbWFsbC1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICRnbG9iYWwtc21hbGwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kYnV0dG9uLWxhcmdlLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgJGdsb2JhbC1tZWRpdW0tZ3V0dGVyICFkZWZhdWx0O1xyXG5cclxuJGJ1dHRvbi1kZWZhdWx0LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGJ1dHRvbi1kZWZhdWx0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XHJcbiRidXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICBkYXJrZW4oJGJ1dHRvbi1kZWZhdWx0LWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcclxuJGJ1dHRvbi1kZWZhdWx0LWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XHJcbiRidXR0b24tZGVmYXVsdC1hY3RpdmUtYmFja2dyb3VuZDogICAgICAgICAgICAgICBkYXJrZW4oJGJ1dHRvbi1kZWZhdWx0LWJhY2tncm91bmQsIDEwJSkgIWRlZmF1bHQ7XHJcbiRidXR0b24tZGVmYXVsdC1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG5cclxuJGJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kYnV0dG9uLXByaW1hcnktY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xyXG4kYnV0dG9uLXByaW1hcnktaG92ZXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgZGFya2VuKCRidXR0b24tcHJpbWFyeS1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XHJcbiRidXR0b24tcHJpbWFyeS1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XHJcbiRidXR0b24tcHJpbWFyeS1hY3RpdmUtYmFja2dyb3VuZDogICAgICAgICAgICAgICBkYXJrZW4oJGJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQsIDEwJSkgIWRlZmF1bHQ7XHJcbiRidXR0b24tcHJpbWFyeS1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4kYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zZWNvbmRhcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGJ1dHRvbi1zZWNvbmRhcnktY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDogICAgICAgICAgICAgIGRhcmtlbigkYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XHJcbiRidXR0b24tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XHJcbiRidXR0b24tc2Vjb25kYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICBkYXJrZW4oJGJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZCwgMTAlKSAhZGVmYXVsdDtcclxuJGJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAgICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuXHJcbiRidXR0b24tZGFuZ2VyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWRhbmdlci1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kYnV0dG9uLWRhbmdlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xyXG4kYnV0dG9uLWRhbmdlci1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgZGFya2VuKCRidXR0b24tZGFuZ2VyLWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcclxuJGJ1dHRvbi1kYW5nZXItaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJGJ1dHRvbi1kYW5nZXItYWN0aXZlLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgIGRhcmtlbigkYnV0dG9uLWRhbmdlci1iYWNrZ3JvdW5kLCAxMCUpICFkZWZhdWx0O1xyXG4kYnV0dG9uLWRhbmdlci1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xyXG5cclxuJGJ1dHRvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGJ1dHRvbi1kaXNhYmxlZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4kYnV0dG9uLXRleHQtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1saW5lLWhlaWdodCAhZGVmYXVsdDtcclxuJGJ1dHRvbi10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRidXR0b24tdGV4dC1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kYnV0dG9uLXRleHQtZGlzYWJsZWQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuXHJcbiRidXR0b24tbGluay1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWxpbmUtaGVpZ2h0ICFkZWZhdWx0O1xyXG4kYnV0dG9uLWxpbmstY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1saW5rLWNvbG9yICFkZWZhdWx0O1xyXG4kYnV0dG9uLWxpbmstaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1saW5rLWhvdmVyLWNvbG9yICFkZWZhdWx0O1xyXG4kYnV0dG9uLWxpbmstaG92ZXItdGV4dC1kZWNvcmF0aW9uOiAgICAgICAgICAgICAgdW5kZXJsaW5lICFkZWZhdWx0O1xyXG4kYnV0dG9uLWxpbmstZGlzYWJsZWQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuXHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBCdXR0b25cclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBSZW1vdmUgbWFyZ2lucyBpbiBDaHJvbWUsIFNhZmFyaSBhbmQgT3BlcmEuXHJcbiAqIDIuIFJlbW92ZSBib3JkZXJzIGZvciBgYnV0dG9uYC5cclxuICogMy4gQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRS5cclxuICogNC4gQ29ycmVjdCBgZm9udGAgcHJvcGVydGllcyBhbmQgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGZvciBgYnV0dG9uYC5cclxuICogNS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXHJcbiAqIDYuIFN0eWxlXHJcbiAqIDcuIGBsaW5lLWhlaWdodGAgaXMgdXNlZCB0byBjcmVhdGUgYSBoZWlnaHQgYmVjYXVzZSBpdCBhbHNvIGNlbnRlcnMgdGhlIHRleHQgdmVydGljYWxseSBmb3IgYGFgIGVsZW1lbnRzLlxyXG4gKiAgICBCZXR0ZXIgd291bGQgYmUgdG8gdXNlIGhlaWdodCBhbmQgZmxleGJveCB0byBjZW50ZXIgdGhlIHRleHQgdmVydGljYWxseSBidXQgZmxleGJveCBkb2Vzbid0IHdvcmsgaW4gRmlyZWZveCBvbiBgYnV0dG9uYCBlbGVtZW50cy5cclxuICogOC4gQWxpZ24gdGV4dCBpZiBidXR0b24gaGFzIGEgd2lkdGhcclxuICogOS4gUmVxdWlyZWQgZm9yIGBhYC5cclxuICovXHJcblxyXG4udWstYnV0dG9uIHtcclxuICAgIC8qIDEgKi9cclxuICAgIG1hcmdpbjogMDtcclxuICAgIC8qIDIgKi9cclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIC8qIDMgKi9cclxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gICAgLyogNCAqL1xyXG4gICAgZm9udDogaW5oZXJpdDtcclxuICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgLyogNSAqL1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbiAgICAvKiA2ICovXHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgcGFkZGluZzogMCAkYnV0dG9uLXBhZGRpbmctaG9yaXpvbnRhbDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICBmb250LXNpemU6ICRidXR0b24tZm9udC1zaXplO1xyXG4gICAgLyogNyAqL1xyXG4gICAgbGluZS1oZWlnaHQ6ICRidXR0b24tbGluZS1oZWlnaHQ7XHJcbiAgICAvKiA4ICovXHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAvKiA5ICovXHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYnV0dG9uKSkge0BpbmNsdWRlIGhvb2stYnV0dG9uKCk7fVxyXG59XHJcblxyXG4udWstYnV0dG9uOm5vdCg6ZGlzYWJsZWQpIHsgY3Vyc29yOiBwb2ludGVyOyB9XHJcblxyXG4vKlxyXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxyXG4gKi9cclxuXHJcbi51ay1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxufVxyXG5cclxuLyogSG92ZXIgKi9cclxuLnVrLWJ1dHRvbjpob3ZlciB7XHJcbiAgICAvKiA5ICovXHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYnV0dG9uLWhvdmVyKSkge0BpbmNsdWRlIGhvb2stYnV0dG9uLWhvdmVyKCk7fVxyXG59XHJcblxyXG4vKiBGb2N1cyAqL1xyXG4udWstYnV0dG9uOmZvY3VzIHtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYnV0dG9uLWZvY3VzKSkge0BpbmNsdWRlIGhvb2stYnV0dG9uLWZvY3VzKCk7fVxyXG59XHJcblxyXG4vKiBPbkNsaWNrICsgQWN0aXZlICovXHJcbi51ay1idXR0b246YWN0aXZlLFxyXG4udWstYnV0dG9uLnVrLWFjdGl2ZSB7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYnV0dG9uLWFjdGl2ZSkpIHtAaW5jbHVkZSBob29rLWJ1dHRvbi1hY3RpdmUoKTt9XHJcbn1cclxuXHJcblxyXG4vKiBTdHlsZSBtb2RpZmllcnNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiBEZWZhdWx0XHJcbiAqL1xyXG5cclxuLnVrLWJ1dHRvbi1kZWZhdWx0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tZGVmYXVsdC1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRidXR0b24tZGVmYXVsdC1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1idXR0b24tZGVmYXVsdCkpIHtAaW5jbHVkZSBob29rLWJ1dHRvbi1kZWZhdWx0KCk7fVxyXG59XHJcblxyXG4vKiBIb3ZlciArIEZvY3VzICovXHJcbi51ay1idXR0b24tZGVmYXVsdDpob3ZlcixcclxuLnVrLWJ1dHRvbi1kZWZhdWx0OmZvY3VzIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRidXR0b24tZGVmYXVsdC1ob3Zlci1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1idXR0b24tZGVmYXVsdC1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWJ1dHRvbi1kZWZhdWx0LWhvdmVyKCk7fVxyXG59XHJcblxyXG4vKiBPbkNsaWNrICsgQWN0aXZlICovXHJcbi51ay1idXR0b24tZGVmYXVsdDphY3RpdmUsXHJcbi51ay1idXR0b24tZGVmYXVsdC51ay1hY3RpdmUge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1kZWZhdWx0LWFjdGl2ZS1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRidXR0b24tZGVmYXVsdC1hY3RpdmUtY29sb3I7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYnV0dG9uLWRlZmF1bHQtYWN0aXZlKSkge0BpbmNsdWRlIGhvb2stYnV0dG9uLWRlZmF1bHQtYWN0aXZlKCk7fVxyXG59XHJcblxyXG4vKlxyXG4gKiBQcmltYXJ5XHJcbiAqL1xyXG5cclxuLnVrLWJ1dHRvbi1wcmltYXJ5IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tcHJpbWFyeS1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRidXR0b24tcHJpbWFyeS1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1idXR0b24tcHJpbWFyeSkpIHtAaW5jbHVkZSBob29rLWJ1dHRvbi1wcmltYXJ5KCk7fVxyXG59XHJcblxyXG4vKiBIb3ZlciArIEZvY3VzICovXHJcbi51ay1idXR0b24tcHJpbWFyeTpob3ZlcixcclxuLnVrLWJ1dHRvbi1wcmltYXJ5OmZvY3VzIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRidXR0b24tcHJpbWFyeS1ob3Zlci1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1idXR0b24tcHJpbWFyeS1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWJ1dHRvbi1wcmltYXJ5LWhvdmVyKCk7fVxyXG59XHJcblxyXG4vKiBPbkNsaWNrICsgQWN0aXZlICovXHJcbi51ay1idXR0b24tcHJpbWFyeTphY3RpdmUsXHJcbi51ay1idXR0b24tcHJpbWFyeS51ay1hY3RpdmUge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1wcmltYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRidXR0b24tcHJpbWFyeS1hY3RpdmUtY29sb3I7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYnV0dG9uLXByaW1hcnktYWN0aXZlKSkge0BpbmNsdWRlIGhvb2stYnV0dG9uLXByaW1hcnktYWN0aXZlKCk7fVxyXG59XHJcblxyXG4vKlxyXG4gKiBTZWNvbmRhcnlcclxuICovXHJcblxyXG4udWstYnV0dG9uLXNlY29uZGFyeSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRidXR0b24tc2Vjb25kYXJ5LWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJ1dHRvbi1zZWNvbmRhcnkpKSB7QGluY2x1ZGUgaG9vay1idXR0b24tc2Vjb25kYXJ5KCk7fVxyXG59XHJcblxyXG4vKiBIb3ZlciArIEZvY3VzICovXHJcbi51ay1idXR0b24tc2Vjb25kYXJ5OmhvdmVyLFxyXG4udWstYnV0dG9uLXNlY29uZGFyeTpmb2N1cyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRidXR0b24tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXIpKSB7QGluY2x1ZGUgaG9vay1idXR0b24tc2Vjb25kYXJ5LWhvdmVyKCk7fVxyXG59XHJcblxyXG4vKiBPbkNsaWNrICsgQWN0aXZlICovXHJcbi51ay1idXR0b24tc2Vjb25kYXJ5OmFjdGl2ZSxcclxuLnVrLWJ1dHRvbi1zZWNvbmRhcnkudWstYWN0aXZlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tc2Vjb25kYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRidXR0b24tc2Vjb25kYXJ5LWFjdGl2ZS1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1idXR0b24tc2Vjb25kYXJ5LWFjdGl2ZSkpIHtAaW5jbHVkZSBob29rLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlKCk7fVxyXG59XHJcblxyXG4vKlxyXG4gKiBEYW5nZXJcclxuICovXHJcblxyXG4udWstYnV0dG9uLWRhbmdlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWRhbmdlci1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRidXR0b24tZGFuZ2VyLWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJ1dHRvbi1kYW5nZXIpKSB7QGluY2x1ZGUgaG9vay1idXR0b24tZGFuZ2VyKCk7fVxyXG59XHJcblxyXG4vKiBIb3ZlciArIEZvY3VzICovXHJcbi51ay1idXR0b24tZGFuZ2VyOmhvdmVyLFxyXG4udWstYnV0dG9uLWRhbmdlcjpmb2N1cyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWRhbmdlci1ob3Zlci1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRidXR0b24tZGFuZ2VyLWhvdmVyLWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJ1dHRvbi1kYW5nZXItaG92ZXIpKSB7QGluY2x1ZGUgaG9vay1idXR0b24tZGFuZ2VyLWhvdmVyKCk7fVxyXG59XHJcblxyXG4vKiBPbkNsaWNrICsgQWN0aXZlICovXHJcbi51ay1idXR0b24tZGFuZ2VyOmFjdGl2ZSxcclxuLnVrLWJ1dHRvbi1kYW5nZXIudWstYWN0aXZlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tZGFuZ2VyLWFjdGl2ZS1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRidXR0b24tZGFuZ2VyLWFjdGl2ZS1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1idXR0b24tZGFuZ2VyLWFjdGl2ZSkpIHtAaW5jbHVkZSBob29rLWJ1dHRvbi1kYW5nZXItYWN0aXZlKCk7fVxyXG59XHJcblxyXG4vKlxyXG4gKiBEaXNhYmxlZFxyXG4gKiBUaGUgc2FtZSBmb3IgYWxsIHN0eWxlIG1vZGlmaWVyc1xyXG4gKi9cclxuXHJcbi51ay1idXR0b24tZGVmYXVsdDpkaXNhYmxlZCxcclxuLnVrLWJ1dHRvbi1wcmltYXJ5OmRpc2FibGVkLFxyXG4udWstYnV0dG9uLXNlY29uZGFyeTpkaXNhYmxlZCxcclxuLnVrLWJ1dHRvbi1kYW5nZXI6ZGlzYWJsZWQge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRidXR0b24tZGlzYWJsZWQtY29sb3I7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYnV0dG9uLWRpc2FibGVkKSkge0BpbmNsdWRlIGhvb2stYnV0dG9uLWRpc2FibGVkKCk7fVxyXG59XHJcblxyXG5cclxuLyogU2l6ZSBtb2RpZmllcnNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstYnV0dG9uLXNtYWxsIHtcclxuICAgIHBhZGRpbmc6IDAgJGJ1dHRvbi1zbWFsbC1wYWRkaW5nLWhvcml6b250YWw7XHJcbiAgICBsaW5lLWhlaWdodDogJGJ1dHRvbi1zbWFsbC1saW5lLWhlaWdodDtcclxuICAgIGZvbnQtc2l6ZTogJGJ1dHRvbi1zbWFsbC1mb250LXNpemU7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYnV0dG9uLXNtYWxsKSkge0BpbmNsdWRlIGhvb2stYnV0dG9uLXNtYWxsKCk7fVxyXG59XHJcblxyXG4udWstYnV0dG9uLWxhcmdlIHtcclxuICAgIHBhZGRpbmc6IDAgJGJ1dHRvbi1sYXJnZS1wYWRkaW5nLWhvcml6b250YWw7XHJcbiAgICBsaW5lLWhlaWdodDogJGJ1dHRvbi1sYXJnZS1saW5lLWhlaWdodDtcclxuICAgIGZvbnQtc2l6ZTogJGJ1dHRvbi1sYXJnZS1mb250LXNpemU7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYnV0dG9uLWxhcmdlKSkge0BpbmNsdWRlIGhvb2stYnV0dG9uLWxhcmdlKCk7fVxyXG59XHJcblxyXG5cclxuLyogVGV4dCBtb2RpZmllcnNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiBUZXh0XHJcbiAqIDEuIFJlc2V0XHJcbiAqIDIuIFN0eWxlXHJcbiAqL1xyXG5cclxuLnVrLWJ1dHRvbi10ZXh0IHtcclxuICAgIC8qIDEgKi9cclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBsaW5lLWhlaWdodDogJGJ1dHRvbi10ZXh0LWxpbmUtaGVpZ2h0O1xyXG4gICAgYmFja2dyb3VuZDogbm9uZTtcclxuICAgIC8qIDIgKi9cclxuICAgIGNvbG9yOiAkYnV0dG9uLXRleHQtY29sb3I7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYnV0dG9uLXRleHQpKSB7QGluY2x1ZGUgaG9vay1idXR0b24tdGV4dCgpO31cclxufVxyXG5cclxuLyogSG92ZXIgKyBGb2N1cyAqL1xyXG4udWstYnV0dG9uLXRleHQ6aG92ZXIsXHJcbi51ay1idXR0b24tdGV4dDpmb2N1cyB7XHJcbiAgICBjb2xvcjogJGJ1dHRvbi10ZXh0LWhvdmVyLWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJ1dHRvbi10ZXh0LWhvdmVyKSkge0BpbmNsdWRlIGhvb2stYnV0dG9uLXRleHQtaG92ZXIoKTt9XHJcbn1cclxuXHJcbi8qIERpc2FibGVkICovXHJcbi51ay1idXR0b24tdGV4dDpkaXNhYmxlZCB7XHJcbiAgICBjb2xvcjogJGJ1dHRvbi10ZXh0LWRpc2FibGVkLWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJ1dHRvbi10ZXh0LWRpc2FibGVkKSkge0BpbmNsdWRlIGhvb2stYnV0dG9uLXRleHQtZGlzYWJsZWQoKTt9XHJcbn1cclxuXHJcbi8qXHJcbiAqIExpbmtcclxuICogMS4gUmVzZXRcclxuICogMi4gU3R5bGVcclxuICovXHJcblxyXG4udWstYnV0dG9uLWxpbmsge1xyXG4gICAgLyogMSAqL1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGxpbmUtaGVpZ2h0OiAkYnV0dG9uLWxpbmstbGluZS1oZWlnaHQ7XHJcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgLyogMiAqL1xyXG4gICAgY29sb3I6ICRidXR0b24tbGluay1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1idXR0b24tbGluaykpIHtAaW5jbHVkZSBob29rLWJ1dHRvbi1saW5rKCk7fVxyXG59XHJcblxyXG4vKiBIb3ZlciArIEZvY3VzICovXHJcbi51ay1idXR0b24tbGluazpob3ZlcixcclxuLnVrLWJ1dHRvbi1saW5rOmZvY3VzIHtcclxuICAgIGNvbG9yOiAkYnV0dG9uLWxpbmstaG92ZXItY29sb3I7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246ICRidXR0b24tbGluay1ob3Zlci10ZXh0LWRlY29yYXRpb247XHJcbn1cclxuXHJcbi8qIERpc2FibGVkICovXHJcbi51ay1idXR0b24tbGluazpkaXNhYmxlZCB7XHJcbiAgICBjb2xvcjogJGJ1dHRvbi1saW5rLWRpc2FibGVkLWNvbG9yO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG59XHJcblxyXG5cclxuLyogR3JvdXBcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBVc2luZyBgZmxleGAgaW5zdGVhZCBvZiBgaW5saW5lLWJsb2NrYCB0byBwcmV2ZW50IHdoaXRlc3BhY2UgYmV0d2VlbnQgY2hpbGQgZWxlbWVudHNcclxuICogMi4gQmVoYXZlIGxpa2UgYnV0dG9uXHJcbiAqIDMuIENyZWF0ZSBwb3NpdGlvbiBjb250ZXh0XHJcbiAqL1xyXG5cclxuLnVrLWJ1dHRvbi1ncm91cCB7XHJcbiAgICAvKiAxICovXHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgIC8qIDIgKi9cclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAvKiAzICovXHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcblxyXG4vLyBIb29rc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbkBpZihtaXhpbi1leGlzdHMoaG9vay1idXR0b24tbWlzYykpIHtAaW5jbHVkZSBob29rLWJ1dHRvbi1taXNjKCk7fVxyXG5cclxuLy8gQG1peGluIGhvb2stYnV0dG9uKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1idXR0b24taG92ZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLWJ1dHRvbi1mb2N1cygpe31cclxuLy8gQG1peGluIGhvb2stYnV0dG9uLWFjdGl2ZSgpe31cclxuLy8gQG1peGluIGhvb2stYnV0dG9uLWRlZmF1bHQoKXt9XHJcbi8vIEBtaXhpbiBob29rLWJ1dHRvbi1kZWZhdWx0LWhvdmVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1idXR0b24tZGVmYXVsdC1hY3RpdmUoKXt9XHJcbi8vIEBtaXhpbiBob29rLWJ1dHRvbi1wcmltYXJ5KCl7fVxyXG4vLyBAbWl4aW4gaG9vay1idXR0b24tcHJpbWFyeS1ob3Zlcigpe31cclxuLy8gQG1peGluIGhvb2stYnV0dG9uLXByaW1hcnktYWN0aXZlKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1idXR0b24tc2Vjb25kYXJ5KCl7fVxyXG4vLyBAbWl4aW4gaG9vay1idXR0b24tc2Vjb25kYXJ5LWhvdmVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1idXR0b24tc2Vjb25kYXJ5LWFjdGl2ZSgpe31cclxuLy8gQG1peGluIGhvb2stYnV0dG9uLWRhbmdlcigpe31cclxuLy8gQG1peGluIGhvb2stYnV0dG9uLWRhbmdlci1ob3Zlcigpe31cclxuLy8gQG1peGluIGhvb2stYnV0dG9uLWRhbmdlci1hY3RpdmUoKXt9XHJcbi8vIEBtaXhpbiBob29rLWJ1dHRvbi1kaXNhYmxlZCgpe31cclxuLy8gQG1peGluIGhvb2stYnV0dG9uLXNtYWxsKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1idXR0b24tbGFyZ2UoKXt9XHJcbi8vIEBtaXhpbiBob29rLWJ1dHRvbi10ZXh0KCl7fVxyXG4vLyBAbWl4aW4gaG9vay1idXR0b24tdGV4dC1ob3Zlcigpe31cclxuLy8gQG1peGluIGhvb2stYnV0dG9uLXRleHQtZGlzYWJsZWQoKXt9XHJcbi8vIEBtaXhpbiBob29rLWJ1dHRvbi1saW5rKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1idXR0b24tbWlzYygpe31cclxuXHJcblxyXG4vLyBJbnZlcnNlXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuJGludmVyc2UtYnV0dG9uLWRlZmF1bHQtYmFja2dyb3VuZDogICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGludmVyc2UtYnV0dG9uLWRlZmF1bHQtY29sb3I6ICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQ6ICAgICAgIGRhcmtlbigkaW52ZXJzZS1idXR0b24tZGVmYXVsdC1iYWNrZ3JvdW5kLCA1JSkgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWNvbG9yOiAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1idXR0b24tZGVmYXVsdC1hY3RpdmUtYmFja2dyb3VuZDogICAgICBkYXJrZW4oJGludmVyc2UtYnV0dG9uLWRlZmF1bHQtYmFja2dyb3VuZCwgMTAlKSAhZGVmYXVsdDtcclxuJGludmVyc2UtYnV0dG9uLWRlZmF1bHQtYWN0aXZlLWNvbG9yOiAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQ6ICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWNvbG9yOiAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1idXR0b24tcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICBkYXJrZW4oJGludmVyc2UtYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZCwgNSUpICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1idXR0b24tcHJpbWFyeS1ob3Zlci1jb2xvcjogICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtYnV0dG9uLXByaW1hcnktYWN0aXZlLWJhY2tncm91bmQ6ICAgICAgZGFya2VuKCRpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQsIDEwJSkgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWFjdGl2ZS1jb2xvcjogICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQ6ICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWNvbG9yOiAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgZGFya2VuKCRpbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZCwgNSUpICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yOiAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZDogICAgZGFya2VuKCRpbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZCwgMTAlKSAhZGVmYXVsdDtcclxuJGludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtY29sb3I6ICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWJ1dHRvbi10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtYnV0dG9uLXRleHQtaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1idXR0b24tdGV4dC1kaXNhYmxlZC1jb2xvcjogICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWJ1dHRvbi1saW5rLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtYnV0dG9uLWxpbmstaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG5cclxuXHJcblxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJ1dHRvbi1kZWZhdWx0KCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWhvdmVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZSgpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1idXR0b24tcHJpbWFyeSgpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1idXR0b24tcHJpbWFyeS1ob3Zlcigpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1idXR0b24tcHJpbWFyeS1hY3RpdmUoKXt9XHJcbi8vIEBtaXhpbiBob29rLWludmVyc2UtYnV0dG9uLXNlY29uZGFyeSgpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWhvdmVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJ1dHRvbi10ZXh0KCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJ1dHRvbi10ZXh0LWhvdmVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJ1dHRvbi10ZXh0LWRpc2FibGVkKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWJ1dHRvbi1saW5rKCl7fVxyXG4iLCIvLyBOYW1lOiAgICAgICAgICAgIFNlY3Rpb25cclxuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gY3JlYXRlIGhvcml6b250YWwgbGF5b3V0IHNlY3Rpb25cclxuLy9cclxuLy8gQ29tcG9uZW50OiAgICAgICBgdWstc2VjdGlvbmBcclxuLy9cclxuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstc2VjdGlvbi14c21hbGxgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLXNlY3Rpb24tc21hbGxgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLXNlY3Rpb24tbGFyZ2VgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLXNlY3Rpb24teGxhcmdlYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1zZWN0aW9uLWRlZmF1bHRgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLXNlY3Rpb24tbXV0ZWRgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLXNlY3Rpb24tcHJpbWFyeWBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstc2VjdGlvbi1zZWNvbmRhcnlgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLXNlY3Rpb24tb3ZlcmxhcGBcclxuLy9cclxuLy8gU3RhdGVzOiAgICAgICAgICBgdWstcHJlc2VydmUtY29sb3JgXHJcbi8vXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuXHJcbi8vIFZhcmlhYmxlc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiRzZWN0aW9uLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWVkaXVtLW1hcmdpbiAhZGVmYXVsdDtcclxuJHNlY3Rpb24tcGFkZGluZy12ZXJ0aWNhbC1tOiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1sYXJnZS1tYXJnaW4gIWRlZmF1bHQ7XHJcblxyXG4kc2VjdGlvbi14c21hbGwtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcclxuXHJcbiRzZWN0aW9uLXNtYWxsLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWVkaXVtLW1hcmdpbiAhZGVmYXVsdDtcclxuXHJcbiRzZWN0aW9uLWxhcmdlLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbGFyZ2UtbWFyZ2luICFkZWZhdWx0O1xyXG4kc2VjdGlvbi1sYXJnZS1wYWRkaW5nLXZlcnRpY2FsLW06ICAgICAgICAgICAgICAgICAkZ2xvYmFsLXhsYXJnZS1tYXJnaW4gIWRlZmF1bHQ7XHJcblxyXG4kc2VjdGlvbi14bGFyZ2UtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAkZ2xvYmFsLXhsYXJnZS1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRzZWN0aW9uLXhsYXJnZS1wYWRkaW5nLXZlcnRpY2FsLW06ICAgICAgICAgICAgICAgICgkZ2xvYmFsLWxhcmdlLW1hcmdpbiArICRnbG9iYWwteGxhcmdlLW1hcmdpbikgIWRlZmF1bHQ7XHJcblxyXG4kc2VjdGlvbi1kZWZhdWx0LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcblxyXG4kc2VjdGlvbi1tdXRlZC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcblxyXG4kc2VjdGlvbi1wcmltYXJ5LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJHNlY3Rpb24tcHJpbWFyeS1jb2xvci1tb2RlOiAgICAgICAgICAgICAgICAgICAgICAgbGlnaHQgIWRlZmF1bHQ7XHJcblxyXG4kc2VjdGlvbi1zZWNvbmRhcnktYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXNlY29uZGFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kc2VjdGlvbi1zZWNvbmRhcnktY29sb3ItbW9kZTogICAgICAgICAgICAgICAgICAgICBsaWdodCAhZGVmYXVsdDtcclxuXHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBTZWN0aW9uXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogMS4gTWFrZSBpdCB3b3JrIHdpdGggYDEwMHZoYCBhbmQgaGVpZ2h0IGluIGdlbmVyYWxcclxuICovXHJcblxyXG4udWstc2VjdGlvbiB7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXHJcbiAgICBwYWRkaW5nLXRvcDogJHNlY3Rpb24tcGFkZGluZy12ZXJ0aWNhbDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAkc2VjdGlvbi1wYWRkaW5nLXZlcnRpY2FsO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXNlY3Rpb24pKSB7QGluY2x1ZGUgaG9vay1zZWN0aW9uKCk7fVxyXG59XHJcblxyXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LW1lZGl1bSkge1xyXG5cclxuICAgIC51ay1zZWN0aW9uIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogJHNlY3Rpb24tcGFkZGluZy12ZXJ0aWNhbC1tO1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkc2VjdGlvbi1wYWRkaW5nLXZlcnRpY2FsLW07XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4vKlxyXG4gKiBNaWNybyBjbGVhcmZpeFxyXG4gKi9cclxuXHJcbi51ay1zZWN0aW9uOjpiZWZvcmUsXHJcbi51ay1zZWN0aW9uOjphZnRlciB7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgZGlzcGxheTogdGFibGU7XHJcbn1cclxuXHJcbi51ay1zZWN0aW9uOjphZnRlciB7IGNsZWFyOiBib3RoOyB9XHJcblxyXG4vKlxyXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcclxuICovXHJcblxyXG4udWstc2VjdGlvbiA+IDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxyXG5cclxuXHJcbi8qIFNpemUgbW9kaWZpZXJzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogWFNtYWxsXHJcbiAqL1xyXG5cclxuLnVrLXNlY3Rpb24teHNtYWxsIHtcclxuICAgIHBhZGRpbmctdG9wOiAkc2VjdGlvbi14c21hbGwtcGFkZGluZy12ZXJ0aWNhbDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAkc2VjdGlvbi14c21hbGwtcGFkZGluZy12ZXJ0aWNhbDtcclxufVxyXG5cclxuLypcclxuICogU21hbGxcclxuICovXHJcblxyXG4udWstc2VjdGlvbi1zbWFsbCB7XHJcbiAgICBwYWRkaW5nLXRvcDogJHNlY3Rpb24tc21hbGwtcGFkZGluZy12ZXJ0aWNhbDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAkc2VjdGlvbi1zbWFsbC1wYWRkaW5nLXZlcnRpY2FsO1xyXG59XHJcblxyXG4vKlxyXG4gKiBMYXJnZVxyXG4gKi9cclxuXHJcbi51ay1zZWN0aW9uLWxhcmdlIHtcclxuICAgIHBhZGRpbmctdG9wOiAkc2VjdGlvbi1sYXJnZS1wYWRkaW5nLXZlcnRpY2FsO1xyXG4gICAgcGFkZGluZy1ib3R0b206ICRzZWN0aW9uLWxhcmdlLXBhZGRpbmctdmVydGljYWw7XHJcbn1cclxuXHJcbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XHJcblxyXG4gICAgLnVrLXNlY3Rpb24tbGFyZ2Uge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAkc2VjdGlvbi1sYXJnZS1wYWRkaW5nLXZlcnRpY2FsLW07XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRzZWN0aW9uLWxhcmdlLXBhZGRpbmctdmVydGljYWwtbTtcclxuICAgIH1cclxuXHJcbn1cclxuXHJcblxyXG4vKlxyXG4gKiBYTGFyZ2VcclxuICovXHJcblxyXG4udWstc2VjdGlvbi14bGFyZ2Uge1xyXG4gICAgcGFkZGluZy10b3A6ICRzZWN0aW9uLXhsYXJnZS1wYWRkaW5nLXZlcnRpY2FsO1xyXG4gICAgcGFkZGluZy1ib3R0b206ICRzZWN0aW9uLXhsYXJnZS1wYWRkaW5nLXZlcnRpY2FsO1xyXG59XHJcblxyXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LW1lZGl1bSkge1xyXG5cclxuICAgIC51ay1zZWN0aW9uLXhsYXJnZSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6ICRzZWN0aW9uLXhsYXJnZS1wYWRkaW5nLXZlcnRpY2FsLW07XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRzZWN0aW9uLXhsYXJnZS1wYWRkaW5nLXZlcnRpY2FsLW07XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG5cclxuLyogU3R5bGUgbW9kaWZpZXJzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogRGVmYXVsdFxyXG4gKi9cclxuXHJcbi51ay1zZWN0aW9uLWRlZmF1bHQge1xyXG4gICAgYmFja2dyb3VuZDogJHNlY3Rpb24tZGVmYXVsdC1iYWNrZ3JvdW5kO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXNlY3Rpb24tZGVmYXVsdCkpIHtAaW5jbHVkZSBob29rLXNlY3Rpb24tZGVmYXVsdCgpO31cclxufVxyXG5cclxuLypcclxuICogTXV0ZWRcclxuICovXHJcblxyXG4udWstc2VjdGlvbi1tdXRlZCB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkc2VjdGlvbi1tdXRlZC1iYWNrZ3JvdW5kO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXNlY3Rpb24tbXV0ZWQpKSB7QGluY2x1ZGUgaG9vay1zZWN0aW9uLW11dGVkKCk7fVxyXG59XHJcblxyXG4vKlxyXG4gKiBQcmltYXJ5XHJcbiAqL1xyXG5cclxuLnVrLXNlY3Rpb24tcHJpbWFyeSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkc2VjdGlvbi1wcmltYXJ5LWJhY2tncm91bmQ7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stc2VjdGlvbi1wcmltYXJ5KSkge0BpbmNsdWRlIGhvb2stc2VjdGlvbi1wcmltYXJ5KCk7fVxyXG59XHJcblxyXG5AaWYgKCAkc2VjdGlvbi1wcmltYXJ5LWNvbG9yLW1vZGUgPT0gbGlnaHQgKSB7IC51ay1zZWN0aW9uLXByaW1hcnk6bm90KC51ay1wcmVzZXJ2ZS1jb2xvcikgeyBAZXh0ZW5kIC51ay1saWdodCAhb3B0aW9uYWw7fSB9XHJcbkBpZiAoICRzZWN0aW9uLXByaW1hcnktY29sb3ItbW9kZSA9PSBkYXJrICkgeyAudWstc2VjdGlvbi1wcmltYXJ5Om5vdCgudWstcHJlc2VydmUtY29sb3IpIHsgQGV4dGVuZCAudWstZGFyayAhb3B0aW9uYWw7fSB9XHJcblxyXG5cclxuLypcclxuICogU2Vjb25kYXJ5XHJcbiAqL1xyXG5cclxuLnVrLXNlY3Rpb24tc2Vjb25kYXJ5IHtcclxuICAgIGJhY2tncm91bmQ6ICRzZWN0aW9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXNlY3Rpb24tc2Vjb25kYXJ5KSkge0BpbmNsdWRlIGhvb2stc2VjdGlvbi1zZWNvbmRhcnkoKTt9XHJcbn1cclxuXHJcbkBpZiAoICRzZWN0aW9uLXNlY29uZGFyeS1jb2xvci1tb2RlID09IGxpZ2h0ICkgeyAudWstc2VjdGlvbi1zZWNvbmRhcnk6bm90KC51ay1wcmVzZXJ2ZS1jb2xvcikgeyBAZXh0ZW5kIC51ay1saWdodCAhb3B0aW9uYWw7fSB9XHJcbkBpZiAoICRzZWN0aW9uLXNlY29uZGFyeS1jb2xvci1tb2RlID09IGRhcmsgKSB7IC51ay1zZWN0aW9uLXNlY29uZGFyeTpub3QoLnVrLXByZXNlcnZlLWNvbG9yKSB7IEBleHRlbmQgLnVrLWRhcmsgIW9wdGlvbmFsO30gfVxyXG5cclxuXHJcbi8qIE92ZXJsYXAgbW9kaWZpZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiBSZXNlcnZlZCBtb2RpZmllciB0byBtYWtlIGEgc2VjdGlvbiBvdmVybGFwIGFub3RoZXIgc2VjdGlvbiB3aXRoIGFuIGJvcmRlciBpbWFnZVxyXG4gKiBJbXBsZW1lbnRlZCBieSB0aGUgdGhlbWVcclxuICovXHJcblxyXG4udWstc2VjdGlvbi1vdmVybGFwIHtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1zZWN0aW9uLW92ZXJsYXApKSB7QGluY2x1ZGUgaG9vay1zZWN0aW9uLW92ZXJsYXAoKTt9XHJcbn1cclxuXHJcblxyXG4vLyBIb29rc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbkBpZihtaXhpbi1leGlzdHMoaG9vay1zZWN0aW9uLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1zZWN0aW9uLW1pc2MoKTt9XHJcblxyXG4vLyBAbWl4aW4gaG9vay1zZWN0aW9uKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1zZWN0aW9uLWRlZmF1bHQoKXt9XHJcbi8vIEBtaXhpbiBob29rLXNlY3Rpb24tbXV0ZWQoKXt9XHJcbi8vIEBtaXhpbiBob29rLXNlY3Rpb24tc2Vjb25kYXJ5KCl7fVxyXG4vLyBAbWl4aW4gaG9vay1zZWN0aW9uLXByaW1hcnkoKXt9XHJcbi8vIEBtaXhpbiBob29rLXNlY3Rpb24tb3ZlcmxhcCgpe31cclxuLy8gQG1peGluIGhvb2stc2VjdGlvbi1taXNjKCl7fSIsIi8vIE5hbWU6ICAgICAgICAgICAgQ29udGFpbmVyXHJcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGFsaWduIGFuZCBjZW50ZXIgeW91ciBzaXRlIGFuZCBncmlkIGNvbnRlbnRcclxuLy9cclxuLy8gQ29tcG9uZW50OiAgICAgICBgdWstY29udGFpbmVyYFxyXG4vL1xyXG4vLyBNb2RpZmllcjogICAgICAgIGB1ay1jb250YWluZXItc21hbGxgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWNvbnRhaW5lci1sYXJnZWBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstY29udGFpbmVyLWV4cGFuZGBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstY29udGFpbmVyLWV4cGFuZC1sZWZ0YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1jb250YWluZXItZXhwYW5kLXJpZ2h0YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1jb250YWluZXItaXRlbS1wYWRkaW5nLXJlbW92ZS1sZWZ0YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1jb250YWluZXItaXRlbS1wYWRkaW5nLXJlbW92ZS1yaWdodGBcclxuLy9cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5cclxuLy8gVmFyaWFibGVzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuJGNvbnRhaW5lci1tYXgtd2lkdGg6ICAgICAgICAgICAgICAgICAgICAxMjAwcHggIWRlZmF1bHQ7XHJcbiRjb250YWluZXIteHNtYWxsLW1heC13aWR0aDogICAgICAgICAgICAgNzUwcHggIWRlZmF1bHQ7XHJcbiRjb250YWluZXItc21hbGwtbWF4LXdpZHRoOiAgICAgICAgICAgICAgOTAwcHggIWRlZmF1bHQ7XHJcbiRjb250YWluZXItbGFyZ2UtbWF4LXdpZHRoOiAgICAgICAgICAgICAgMTYwMHB4ICFkZWZhdWx0O1xyXG5cclxuJGNvbnRhaW5lci1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAxNXB4ICFkZWZhdWx0O1xyXG4kY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1zOiAgICAgICAgICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1tOiAgICAgICAgICRnbG9iYWwtbWVkaXVtLWd1dHRlciAhZGVmYXVsdDtcclxuXHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBDb250YWluZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBCb3ggc2l6aW5nIGhhcyB0byBiZSBgY29udGVudC1ib3hgIHNvIHRoZSBtYXgtd2lkdGggaXMgYWx3YXlzIHRoZSBzYW1lIGFuZFxyXG4gKiAgICB1bmFmZmVjdGVkIGJ5IHRoZSBwYWRkaW5nIG9uIGRpZmZlcmVudCBicmVha3BvaW50cy4gSXQncyBpbXBvcnRhbnQgZm9yIHRoZSBzaXplIG1vZGlmaWVycy5cclxuICovXHJcblxyXG4udWstY29udGFpbmVyIHtcclxuICAgIC8qIDEgKi9cclxuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG4gICAgbWF4LXdpZHRoOiAkY29udGFpbmVyLW1heC13aWR0aDtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAkY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbDtcclxuICAgIHBhZGRpbmctcmlnaHQ6ICRjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsO1xyXG59XHJcblxyXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtc21hbGwpIHtcclxuXHJcbiAgICAudWstY29udGFpbmVyIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsLXM7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGNvbnRhaW5lci1wYWRkaW5nLWhvcml6b250YWwtcztcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XHJcblxyXG4gICAgLnVrLWNvbnRhaW5lciB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1tO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsLW07XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4vKlxyXG4gKiBNaWNybyBjbGVhcmZpeFxyXG4gKi9cclxuXHJcbi51ay1jb250YWluZXI6OmJlZm9yZSxcclxuLnVrLWNvbnRhaW5lcjo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIGRpc3BsYXk6IHRhYmxlO1xyXG59XHJcblxyXG4udWstY29udGFpbmVyOjphZnRlciB7IGNsZWFyOiBib3RoOyB9XHJcblxyXG4vKlxyXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcclxuICovXHJcblxyXG4udWstY29udGFpbmVyID4gOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XHJcblxyXG4vKlxyXG4gKiBSZW1vdmUgcGFkZGluZyBmcm9tIG5lc3RlZCBjb250YWluZXJzXHJcbiAqL1xyXG5cclxuLnVrLWNvbnRhaW5lciAudWstY29udGFpbmVyIHtcclxuICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbn1cclxuXHJcblxyXG4vKiBTaXplIG1vZGlmaWVyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVrLWNvbnRhaW5lci14c21hbGwgeyBtYXgtd2lkdGg6ICRjb250YWluZXIteHNtYWxsLW1heC13aWR0aDsgfVxyXG5cclxuLnVrLWNvbnRhaW5lci1zbWFsbCB7IG1heC13aWR0aDogJGNvbnRhaW5lci1zbWFsbC1tYXgtd2lkdGg7IH1cclxuXHJcbi51ay1jb250YWluZXItbGFyZ2UgeyBtYXgtd2lkdGg6ICRjb250YWluZXItbGFyZ2UtbWF4LXdpZHRoOyB9XHJcblxyXG4udWstY29udGFpbmVyLWV4cGFuZCB7IG1heC13aWR0aDogbm9uZTsgfVxyXG5cclxuXHJcbi8qIEV4cGFuZCBtb2RpZmllclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIEV4cGFuZCBvbmUgc2lkZSBvbmx5XHJcbiAqL1xyXG5cclxuLnVrLWNvbnRhaW5lci1leHBhbmQtbGVmdCB7IG1hcmdpbi1sZWZ0OiAwOyB9XHJcbi51ay1jb250YWluZXItZXhwYW5kLXJpZ2h0IHsgbWFyZ2luLXJpZ2h0OiAwOyB9XHJcblxyXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtc21hbGwpIHtcclxuXHJcbiAgICAudWstY29udGFpbmVyLWV4cGFuZC1sZWZ0LnVrLWNvbnRhaW5lci14c21hbGwsXHJcbiAgICAudWstY29udGFpbmVyLWV4cGFuZC1yaWdodC51ay1jb250YWluZXIteHNtYWxsIHsgbWF4LXdpZHRoOiB1bnF1b3RlKCdjYWxjKDUwJSArICgjeyRjb250YWluZXIteHNtYWxsLW1heC13aWR0aH0gLyAyKSAtICN7JGNvbnRhaW5lci1wYWRkaW5nLWhvcml6b250YWwtc30pJyk7IH1cclxuXHJcbiAgICAudWstY29udGFpbmVyLWV4cGFuZC1sZWZ0LnVrLWNvbnRhaW5lci1zbWFsbCxcclxuICAgIC51ay1jb250YWluZXItZXhwYW5kLXJpZ2h0LnVrLWNvbnRhaW5lci1zbWFsbCB7IG1heC13aWR0aDogdW5xdW90ZSgnY2FsYyg1MCUgKyAoI3skY29udGFpbmVyLXNtYWxsLW1heC13aWR0aH0gLyAyKSAtICN7JGNvbnRhaW5lci1wYWRkaW5nLWhvcml6b250YWwtc30pJyk7IH1cclxuXHJcbn1cclxuXHJcbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XHJcblxyXG4gICAgLnVrLWNvbnRhaW5lci1leHBhbmQtbGVmdCxcclxuICAgIC51ay1jb250YWluZXItZXhwYW5kLXJpZ2h0IHsgbWF4LXdpZHRoOiB1bnF1b3RlKCdjYWxjKDUwJSArICgjeyRjb250YWluZXItbWF4LXdpZHRofSAvIDIpIC0gI3skY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1tfSknKTsgfVxyXG5cclxuICAgIC51ay1jb250YWluZXItZXhwYW5kLWxlZnQudWstY29udGFpbmVyLXhzbWFsbCxcclxuICAgIC51ay1jb250YWluZXItZXhwYW5kLXJpZ2h0LnVrLWNvbnRhaW5lci14c21hbGwgeyBtYXgtd2lkdGg6IHVucXVvdGUoJ2NhbGMoNTAlICsgKCN7JGNvbnRhaW5lci14c21hbGwtbWF4LXdpZHRofSAvIDIpIC0gI3skY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1tfSknKTsgfVxyXG5cclxuICAgIC51ay1jb250YWluZXItZXhwYW5kLWxlZnQudWstY29udGFpbmVyLXNtYWxsLFxyXG4gICAgLnVrLWNvbnRhaW5lci1leHBhbmQtcmlnaHQudWstY29udGFpbmVyLXNtYWxsIHsgbWF4LXdpZHRoOiB1bnF1b3RlKCdjYWxjKDUwJSArICgjeyRjb250YWluZXItc21hbGwtbWF4LXdpZHRofSAvIDIpIC0gI3skY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1tfSknKTsgfVxyXG5cclxuICAgIC51ay1jb250YWluZXItZXhwYW5kLWxlZnQudWstY29udGFpbmVyLWxhcmdlLFxyXG4gICAgLnVrLWNvbnRhaW5lci1leHBhbmQtcmlnaHQudWstY29udGFpbmVyLWxhcmdlIHsgbWF4LXdpZHRoOiB1bnF1b3RlKCdjYWxjKDUwJSArICgjeyRjb250YWluZXItbGFyZ2UtbWF4LXdpZHRofSAvIDIpIC0gI3skY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1tfSknKTsgfVxyXG5cclxufVxyXG5cclxuXHJcbi8qIEl0ZW1cclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiBVdGlsaXR5IGNsYXNzZXMgdG8gcmVzZXQgY29udGFpbmVyIHBhZGRpbmcgb24gdGhlIGxlZnQgb3IgcmlnaHQgc2lkZVxyXG4gKiBOb3RlOiBJdCBoYXMgdG8gYmUgbmVnYXRpdmUgbWFyZ2luIG9uIHRoZSBpdGVtLCBiZWNhdXNlIGl0J3Mgc3BlY2lmaWMgdG8gdGhlIGl0ZW0uXHJcbiAqL1xyXG5cclxuLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLWxlZnQsXHJcbi51ay1jb250YWluZXItaXRlbS1wYWRkaW5nLXJlbW92ZS1yaWdodCB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKyAjeyRjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsfSknKSB9XHJcblxyXG4udWstY29udGFpbmVyLWl0ZW0tcGFkZGluZy1yZW1vdmUtbGVmdCB7IG1hcmdpbi1sZWZ0OiAoLSRjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsKTsgfVxyXG4udWstY29udGFpbmVyLWl0ZW0tcGFkZGluZy1yZW1vdmUtcmlnaHQgeyBtYXJnaW4tcmlnaHQ6ICgtJGNvbnRhaW5lci1wYWRkaW5nLWhvcml6b250YWwpOyB9XHJcblxyXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtc21hbGwpIHtcclxuXHJcbiAgICAudWstY29udGFpbmVyLWl0ZW0tcGFkZGluZy1yZW1vdmUtbGVmdCxcclxuICAgIC51ay1jb250YWluZXItaXRlbS1wYWRkaW5nLXJlbW92ZS1yaWdodCB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKyAjeyRjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsLXN9KScpIH1cclxuXHJcbiAgICAudWstY29udGFpbmVyLWl0ZW0tcGFkZGluZy1yZW1vdmUtbGVmdCB7IG1hcmdpbi1sZWZ0OiAoLSRjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsLXMpOyB9XHJcbiAgICAudWstY29udGFpbmVyLWl0ZW0tcGFkZGluZy1yZW1vdmUtcmlnaHQgeyBtYXJnaW4tcmlnaHQ6ICgtJGNvbnRhaW5lci1wYWRkaW5nLWhvcml6b250YWwtcyk7IH1cclxuXHJcbn1cclxuXHJcbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XHJcblxyXG4gICAgLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLWxlZnQsXHJcbiAgICAudWstY29udGFpbmVyLWl0ZW0tcGFkZGluZy1yZW1vdmUtcmlnaHQgeyB3aWR0aDogdW5xdW90ZSgnY2FsYygxMDAlICsgI3skY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1tfSknKSB9XHJcblxyXG4gICAgLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLWxlZnQgeyBtYXJnaW4tbGVmdDogKC0kY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1tKTsgfVxyXG4gICAgLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLXJpZ2h0IHsgbWFyZ2luLXJpZ2h0OiAoLSRjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsLW0pOyB9XHJcblxyXG59XHJcblxyXG5cclxuLy8gSG9va3NcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stY29udGFpbmVyLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1jb250YWluZXItbWlzYygpO31cclxuXHJcbi8vIEBtaXhpbiBob29rLWNvbnRhaW5lci1taXNjKCl7fSIsIi8vIE5hbWU6ICAgICAgICAgICAgR3JpZFxyXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgcmVzcG9uc2l2ZSwgZmx1aWQgYW5kIG5lc3RhYmxlIGdyaWRzXHJcbi8vXHJcbi8vIENvbXBvbmVudDogICAgICAgYHVrLWdyaWRgXHJcbi8vXHJcbi8vIE1vZGlmaWVyczogICAgICAgYHVrLWdyaWQtc21hbGxgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWdyaWQtbWVkaXVtYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ncmlkLWxhcmdlYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ncmlkLWNvbGxhcHNlYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ncmlkLWRpdmlkZXJgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWdyaWQtbWF0Y2hgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWdyaWQtc3RhY2tgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWdyaWQtbWFyZ2luYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ncmlkLW1hcmdpbi1zbWFsbGBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstZ3JpZC1tYXJnaW4tbWVkaXVtYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ncmlkLW1hcmdpbi1sYXJnZWBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstZ3JpZC1tYXJnaW4tY29sbGFwc2VgXHJcbi8vXHJcbi8vIFN1Yi1tb2RpZmllcjogICAgYHVrLWdyaWQtaXRlbS1tYXRjaGBcclxuLy9cclxuLy8gU3RhdGVzOiAgICAgICAgICBgdWstZmlyc3QtY29sdW1uYFxyXG4vL1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcblxyXG4vLyBWYXJpYWJsZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4kZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRncmlkLWd1dHRlci12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgICAgICAkZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbCAhZGVmYXVsdDtcclxuJGdyaWQtZ3V0dGVyLWhvcml6b250YWwtbDogICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWVkaXVtLWd1dHRlciAhZGVmYXVsdDtcclxuJGdyaWQtZ3V0dGVyLXZlcnRpY2FsLWw6ICAgICAgICAgICAgICAgICAgICAgICAgICRncmlkLWd1dHRlci1ob3Jpem9udGFsLWwgIWRlZmF1bHQ7XHJcblxyXG4kZ3JpZC1zbWFsbC1ndXR0ZXItaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zbWFsbC1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRncmlkLXNtYWxsLWd1dHRlci12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAkZ3JpZC1zbWFsbC1ndXR0ZXItaG9yaXpvbnRhbCAhZGVmYXVsdDtcclxuXHJcbiRncmlkLW1lZGl1bS1ndXR0ZXItaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcclxuJGdyaWQtbWVkaXVtLWd1dHRlci12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICRncmlkLW1lZGl1bS1ndXR0ZXItaG9yaXpvbnRhbCAhZGVmYXVsdDtcclxuXHJcbiRncmlkLWxhcmdlLWd1dHRlci1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRncmlkLWxhcmdlLWd1dHRlci12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAkZ3JpZC1sYXJnZS1ndXR0ZXItaG9yaXpvbnRhbCAhZGVmYXVsdDtcclxuJGdyaWQtbGFyZ2UtZ3V0dGVyLWhvcml6b250YWwtbDogICAgICAgICAgICAgICAgICRnbG9iYWwtbGFyZ2UtZ3V0dGVyICFkZWZhdWx0O1xyXG4kZ3JpZC1sYXJnZS1ndXR0ZXItdmVydGljYWwtbDogICAgICAgICAgICAgICAgICAgJGdyaWQtbGFyZ2UtZ3V0dGVyLWhvcml6b250YWwtbCAhZGVmYXVsdDtcclxuXHJcbiRncmlkLWRpdmlkZXItYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcclxuJGdyaWQtZGl2aWRlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG5cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IEdyaWRcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBBbGxvdyBjZWxscyB0byB3cmFwIGludG8gdGhlIG5leHQgbGluZVxyXG4gKiAyLiBSZXNldCBsaXN0XHJcbiAqL1xyXG5cclxuLnVrLWdyaWQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIC8qIDEgKi9cclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIC8qIDIgKi9cclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG59XHJcblxyXG4vKlxyXG4gKiBHcmlkIGNlbGxcclxuICogTm90ZTogU3BhY2UgaXMgYWxsb2NhdGVkIHNvbGVseSBiYXNlZCBvbiBjb250ZW50IGRpbWVuc2lvbnMsIGJ1dCBzaHJpbmtzOiAwIDEgYXV0b1xyXG4gKiBSZXNldCBtYXJnaW4gZm9yIGUuZy4gcGFyYWdyYXBoc1xyXG4gKi9cclxuXHJcbi51ay1ncmlkID4gKiB7IG1hcmdpbjogMDsgfVxyXG5cclxuLypcclxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXHJcbiAqL1xyXG5cclxuLnVrLWdyaWQgPiAqID4gOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XHJcblxyXG5cclxuLyogR3V0dGVyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogRGVmYXVsdFxyXG4gKi9cclxuXHJcbi8qIEhvcml6b250YWwgKi9cclxuLnVrLWdyaWQgeyBtYXJnaW4tbGVmdDogKC0kZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbCk7IH1cclxuLnVrLWdyaWQgPiAqIHsgcGFkZGluZy1sZWZ0OiAkZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbDsgfVxyXG5cclxuLyogVmVydGljYWwgKi9cclxuLnVrLWdyaWQgKyAudWstZ3JpZCxcclxuLnVrLWdyaWQgPiAudWstZ3JpZC1tYXJnaW4sXHJcbiogKyAudWstZ3JpZC1tYXJnaW4geyBtYXJnaW4tdG9wOiAkZ3JpZC1ndXR0ZXItdmVydGljYWw7IH1cclxuXHJcbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UpIHtcclxuXHJcbiAgICAvKiBIb3Jpem9udGFsICovXHJcbiAgICAudWstZ3JpZCB7IG1hcmdpbi1sZWZ0OiAoLSRncmlkLWd1dHRlci1ob3Jpem9udGFsLWwpOyB9XHJcbiAgICAudWstZ3JpZCA+ICogeyBwYWRkaW5nLWxlZnQ6ICRncmlkLWd1dHRlci1ob3Jpem9udGFsLWw7IH1cclxuXHJcbiAgICAvKiBWZXJ0aWNhbCAqL1xyXG4gICAgLnVrLWdyaWQgKyAudWstZ3JpZCxcclxuICAgIC51ay1ncmlkID4gLnVrLWdyaWQtbWFyZ2luLFxyXG4gICAgKiArIC51ay1ncmlkLW1hcmdpbiB7IG1hcmdpbi10b3A6ICRncmlkLWd1dHRlci12ZXJ0aWNhbC1sOyB9XHJcblxyXG59XHJcblxyXG4vKlxyXG4gKiBTbWFsbFxyXG4gKi9cclxuXHJcbi8qIEhvcml6b250YWwgKi9cclxuLnVrLWdyaWQtc21hbGwsXHJcbi51ay1ncmlkLWNvbHVtbi1zbWFsbCB7IG1hcmdpbi1sZWZ0OiAoLSRncmlkLXNtYWxsLWd1dHRlci1ob3Jpem9udGFsKTsgfVxyXG4udWstZ3JpZC1zbWFsbCA+ICosXHJcbi51ay1ncmlkLWNvbHVtbi1zbWFsbCA+ICogIHsgcGFkZGluZy1sZWZ0OiAkZ3JpZC1zbWFsbC1ndXR0ZXItaG9yaXpvbnRhbDsgfVxyXG5cclxuLyogVmVydGljYWwgKi9cclxuLnVrLWdyaWQgKyAudWstZ3JpZC1zbWFsbCxcclxuLnVrLWdyaWQgKyAudWstZ3JpZC1yb3ctc21hbGwsXHJcbi51ay1ncmlkLXNtYWxsID4gLnVrLWdyaWQtbWFyZ2luLFxyXG4udWstZ3JpZC1yb3ctc21hbGwgPiAudWstZ3JpZC1tYXJnaW4sXHJcbiogKyAudWstZ3JpZC1tYXJnaW4tc21hbGwgeyBtYXJnaW4tdG9wOiAkZ3JpZC1zbWFsbC1ndXR0ZXItdmVydGljYWw7IH1cclxuXHJcbi8qXHJcbiAqIE1lZGl1bVxyXG4gKi9cclxuXHJcbi8qIEhvcml6b250YWwgKi9cclxuLnVrLWdyaWQtbWVkaXVtLFxyXG4udWstZ3JpZC1jb2x1bW4tbWVkaXVtIHsgbWFyZ2luLWxlZnQ6ICgtJGdyaWQtbWVkaXVtLWd1dHRlci1ob3Jpem9udGFsKTsgfVxyXG4udWstZ3JpZC1tZWRpdW0gPiAqLFxyXG4udWstZ3JpZC1jb2x1bW4tbWVkaXVtID4gKiB7IHBhZGRpbmctbGVmdDogJGdyaWQtbWVkaXVtLWd1dHRlci1ob3Jpem9udGFsOyB9XHJcblxyXG4vKiBWZXJ0aWNhbCAqL1xyXG4udWstZ3JpZCArIC51ay1ncmlkLW1lZGl1bSxcclxuLnVrLWdyaWQgKyAudWstZ3JpZC1yb3ctbWVkaXVtLFxyXG4udWstZ3JpZC1tZWRpdW0gPiAudWstZ3JpZC1tYXJnaW4sXHJcbi51ay1ncmlkLXJvdy1tZWRpdW0gPiAudWstZ3JpZC1tYXJnaW4sXHJcbiogKyAudWstZ3JpZC1tYXJnaW4tbWVkaXVtIHsgbWFyZ2luLXRvcDogJGdyaWQtbWVkaXVtLWd1dHRlci12ZXJ0aWNhbDsgfVxyXG5cclxuLypcclxuICogTGFyZ2VcclxuICovXHJcblxyXG4vKiBIb3Jpem9udGFsICovXHJcbi51ay1ncmlkLWxhcmdlLFxyXG4udWstZ3JpZC1jb2x1bW4tbGFyZ2UgeyBtYXJnaW4tbGVmdDogKC0kZ3JpZC1sYXJnZS1ndXR0ZXItaG9yaXpvbnRhbCk7IH1cclxuLnVrLWdyaWQtbGFyZ2UgPiAqLFxyXG4udWstZ3JpZC1jb2x1bW4tbGFyZ2UgPiAqIHsgcGFkZGluZy1sZWZ0OiAkZ3JpZC1sYXJnZS1ndXR0ZXItaG9yaXpvbnRhbDsgfVxyXG5cclxuLyogVmVydGljYWwgKi9cclxuLnVrLWdyaWQgKyAudWstZ3JpZC1sYXJnZSxcclxuLnVrLWdyaWQgKyAudWstZ3JpZC1yb3ctbGFyZ2UsXHJcbi51ay1ncmlkLWxhcmdlID4gLnVrLWdyaWQtbWFyZ2luLFxyXG4udWstZ3JpZC1yb3ctbGFyZ2UgPiAudWstZ3JpZC1tYXJnaW4sXHJcbiogKyAudWstZ3JpZC1tYXJnaW4tbGFyZ2UgeyBtYXJnaW4tdG9wOiAkZ3JpZC1sYXJnZS1ndXR0ZXItdmVydGljYWw7IH1cclxuXHJcbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UpIHtcclxuXHJcbiAgICAvKiBIb3Jpem9udGFsICovXHJcbiAgICAudWstZ3JpZC1sYXJnZSxcclxuICAgIC51ay1ncmlkLWNvbHVtbi1sYXJnZSB7IG1hcmdpbi1sZWZ0OiAoLSRncmlkLWxhcmdlLWd1dHRlci1ob3Jpem9udGFsLWwpOyB9XHJcbiAgICAudWstZ3JpZC1sYXJnZSA+ICosXHJcbiAgICAudWstZ3JpZC1jb2x1bW4tbGFyZ2UgPiAqIHsgcGFkZGluZy1sZWZ0OiAkZ3JpZC1sYXJnZS1ndXR0ZXItaG9yaXpvbnRhbC1sOyB9XHJcblxyXG4gICAgLyogVmVydGljYWwgKi9cclxuICAgIC51ay1ncmlkICsgLnVrLWdyaWQtbGFyZ2UsXHJcbiAgICAudWstZ3JpZCArIC51ay1ncmlkLXJvdy1sYXJnZSxcclxuICAgIC51ay1ncmlkLWxhcmdlID4gLnVrLWdyaWQtbWFyZ2luLFxyXG4gICAgLnVrLWdyaWQtcm93LWxhcmdlID4gLnVrLWdyaWQtbWFyZ2luLFxyXG4gICAgKiArIC51ay1ncmlkLW1hcmdpbi1sYXJnZSB7IG1hcmdpbi10b3A6ICRncmlkLWxhcmdlLWd1dHRlci12ZXJ0aWNhbC1sOyB9XHJcblxyXG59XHJcblxyXG4vKlxyXG4gKiBDb2xsYXBzZVxyXG4gKi9cclxuXHJcbi8qIEhvcml6b250YWwgKi9cclxuLnVrLWdyaWQtY29sbGFwc2UsXHJcbi51ay1ncmlkLWNvbHVtbi1jb2xsYXBzZSB7IG1hcmdpbi1sZWZ0OiAwOyB9XHJcbi51ay1ncmlkLWNvbGxhcHNlID4gKixcclxuLnVrLWdyaWQtY29sdW1uLWNvbGxhcHNlID4gKiB7IHBhZGRpbmctbGVmdDogMDsgfVxyXG5cclxuLyogVmVydGljYWwgKi9cclxuLnVrLWdyaWQgKyAudWstZ3JpZC1jb2xsYXBzZSxcclxuLnVrLWdyaWQgKyAudWstZ3JpZC1yb3ctY29sbGFwc2UsXHJcbi51ay1ncmlkLWNvbGxhcHNlID4gLnVrLWdyaWQtbWFyZ2luLFxyXG4udWstZ3JpZC1yb3ctY29sbGFwc2UgPiAudWstZ3JpZC1tYXJnaW4geyBtYXJnaW4tdG9wOiAwOyB9XHJcblxyXG5cclxuLyogRGl2aWRlclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1ncmlkLWRpdmlkZXIgPiAqIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XHJcblxyXG4udWstZ3JpZC1kaXZpZGVyID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBib3JkZXItbGVmdDogJGdyaWQtZGl2aWRlci1ib3JkZXItd2lkdGggc29saWQgJGdyaWQtZGl2aWRlci1ib3JkZXI7XHJcbn1cclxuXHJcbi8qIFZlcnRpY2FsICovXHJcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBib3JkZXItdG9wOiAkZ3JpZC1kaXZpZGVyLWJvcmRlci13aWR0aCBzb2xpZCAkZ3JpZC1kaXZpZGVyLWJvcmRlcjtcclxufVxyXG5cclxuLypcclxuICogRGVmYXVsdFxyXG4gKi9cclxuXHJcbi8qIEhvcml6b250YWwgKi9cclxuLnVrLWdyaWQtZGl2aWRlciB7IG1hcmdpbi1sZWZ0OiAtKCRncmlkLWd1dHRlci1ob3Jpem9udGFsICogMik7IH1cclxuLnVrLWdyaWQtZGl2aWRlciA+ICogeyBwYWRkaW5nLWxlZnQ6ICgkZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbCAqIDIpOyB9XHJcblxyXG4udWstZ3JpZC1kaXZpZGVyID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHsgbGVmdDogJGdyaWQtZ3V0dGVyLWhvcml6b250YWw7IH1cclxuXHJcbi8qIFZlcnRpY2FsICovXHJcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbiB7IG1hcmdpbi10b3A6ICgkZ3JpZC1ndXR0ZXItdmVydGljYWwgKiAyKTsgfVxyXG5cclxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xyXG4gICAgdG9wOiAoLSRncmlkLWd1dHRlci12ZXJ0aWNhbCk7XHJcbiAgICBsZWZ0OiAoJGdyaWQtZ3V0dGVyLWhvcml6b250YWwgKiAyKTtcclxufVxyXG5cclxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXHJcbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZSkge1xyXG5cclxuICAgIC8qIEhvcml6b250YWwgKi9cclxuICAgIC51ay1ncmlkLWRpdmlkZXIgeyBtYXJnaW4tbGVmdDogLSgkZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbC1sICogMik7IH1cclxuICAgIC51ay1ncmlkLWRpdmlkZXIgPiAqIHsgcGFkZGluZy1sZWZ0OiAoJGdyaWQtZ3V0dGVyLWhvcml6b250YWwtbCAqIDIpOyB9XHJcblxyXG4gICAgLnVrLWdyaWQtZGl2aWRlciA+IDpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSB7IGxlZnQ6ICRncmlkLWd1dHRlci1ob3Jpem9udGFsLWw7IH1cclxuXHJcbiAgICAvKiBWZXJ0aWNhbCAqL1xyXG4gICAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luIHsgbWFyZ2luLXRvcDogKCRncmlkLWd1dHRlci12ZXJ0aWNhbC1sICogMik7IH1cclxuXHJcbiAgICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XHJcbiAgICAgICAgdG9wOiAoLSRncmlkLWd1dHRlci12ZXJ0aWNhbC1sKTtcclxuICAgICAgICBsZWZ0OiAoJGdyaWQtZ3V0dGVyLWhvcml6b250YWwtbCAqIDIpO1xyXG4gICAgfVxyXG5cclxufVxyXG5cclxuLypcclxuICogU21hbGxcclxuICovXHJcblxyXG4vKiBIb3Jpem9udGFsICovXHJcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1zbWFsbCxcclxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1zbWFsbCB7IG1hcmdpbi1sZWZ0OiAtKCRncmlkLXNtYWxsLWd1dHRlci1ob3Jpem9udGFsICogMik7IH1cclxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXNtYWxsID4gKixcclxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1zbWFsbCA+ICogeyBwYWRkaW5nLWxlZnQ6ICgkZ3JpZC1zbWFsbC1ndXR0ZXItaG9yaXpvbnRhbCAqIDIpOyB9XHJcblxyXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtc21hbGwgPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUsXHJcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tc21hbGwgPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUgeyBsZWZ0OiAkZ3JpZC1zbWFsbC1ndXR0ZXItaG9yaXpvbnRhbDsgfVxyXG5cclxuLyogVmVydGljYWwgKi9cclxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXNtYWxsLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4sXHJcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1yb3ctc21hbGwudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbiB7IG1hcmdpbi10b3A6ICgkZ3JpZC1zbWFsbC1ndXR0ZXItdmVydGljYWwgKiAyKTsgfVxyXG5cclxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXNtYWxsLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XHJcbiAgICB0b3A6ICgtJGdyaWQtc21hbGwtZ3V0dGVyLXZlcnRpY2FsKTtcclxuICAgIGxlZnQ6ICgkZ3JpZC1zbWFsbC1ndXR0ZXItaG9yaXpvbnRhbCAqIDIpO1xyXG59XHJcblxyXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtcm93LXNtYWxsLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7IHRvcDogKC0kZ3JpZC1zbWFsbC1ndXR0ZXItdmVydGljYWwpOyB9XHJcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tc21hbGwudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHsgbGVmdDogKCRncmlkLXNtYWxsLWd1dHRlci1ob3Jpem9udGFsICogMik7IH1cclxuXHJcbi8qXHJcbiAqIE1lZGl1bVxyXG4gKi9cclxuXHJcbi8qIEhvcml6b250YWwgKi9cclxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLW1lZGl1bSxcclxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1tZWRpdW0geyBtYXJnaW4tbGVmdDogLSgkZ3JpZC1tZWRpdW0tZ3V0dGVyLWhvcml6b250YWwgKiAyKTsgfVxyXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbWVkaXVtID4gKixcclxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1tZWRpdW0gPiAqIHsgcGFkZGluZy1sZWZ0OiAoJGdyaWQtbWVkaXVtLWd1dHRlci1ob3Jpem9udGFsICogMik7IH1cclxuXHJcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1tZWRpdW0gPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUsXHJcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbWVkaXVtID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHsgbGVmdDogJGdyaWQtbWVkaXVtLWd1dHRlci1ob3Jpem9udGFsOyB9XHJcblxyXG4vKiBWZXJ0aWNhbCAqL1xyXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbWVkaXVtLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4sXHJcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1yb3ctbWVkaXVtLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4geyBtYXJnaW4tdG9wOiAoJGdyaWQtbWVkaXVtLWd1dHRlci12ZXJ0aWNhbCAqIDIpOyB9XHJcblxyXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbWVkaXVtLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XHJcbiAgICB0b3A6ICgtJGdyaWQtbWVkaXVtLWd1dHRlci12ZXJ0aWNhbCk7XHJcbiAgICBsZWZ0OiAoJGdyaWQtbWVkaXVtLWd1dHRlci1ob3Jpem9udGFsICogMik7XHJcbn1cclxuXHJcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1yb3ctbWVkaXVtLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7IHRvcDogKC0kZ3JpZC1tZWRpdW0tZ3V0dGVyLXZlcnRpY2FsKTsgfVxyXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLW1lZGl1bS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUgeyBsZWZ0OiAoJGdyaWQtbWVkaXVtLWd1dHRlci1ob3Jpem9udGFsICogMik7IH1cclxuXHJcbi8qXHJcbiAqIExhcmdlXHJcbiAqL1xyXG5cclxuLyogSG9yaXpvbnRhbCAqL1xyXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbGFyZ2UsXHJcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbGFyZ2UgeyBtYXJnaW4tbGVmdDogLSgkZ3JpZC1sYXJnZS1ndXR0ZXItaG9yaXpvbnRhbCAqIDIpOyB9XHJcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1sYXJnZSA+ICosXHJcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbGFyZ2UgPiAqIHsgcGFkZGluZy1sZWZ0OiAoJGdyaWQtbGFyZ2UtZ3V0dGVyLWhvcml6b250YWwgKiAyKTsgfVxyXG5cclxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWxhcmdlID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlLFxyXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLWxhcmdlID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHsgbGVmdDogJGdyaWQtbGFyZ2UtZ3V0dGVyLWhvcml6b250YWw7IH1cclxuXHJcbi8qIFZlcnRpY2FsICovXHJcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1sYXJnZS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luLFxyXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtcm93LWxhcmdlLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4geyBtYXJnaW4tdG9wOiAoJGdyaWQtbGFyZ2UtZ3V0dGVyLXZlcnRpY2FsICogMik7IH1cclxuXHJcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1sYXJnZS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xyXG4gICAgdG9wOiAoLSRncmlkLWxhcmdlLWd1dHRlci12ZXJ0aWNhbCk7XHJcbiAgICBsZWZ0OiAoJGdyaWQtbGFyZ2UtZ3V0dGVyLWhvcml6b250YWwgKiAyKTtcclxufVxyXG5cclxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXJvdy1sYXJnZS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUgeyB0b3A6ICgtJGdyaWQtbGFyZ2UtZ3V0dGVyLXZlcnRpY2FsKTsgfVxyXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLWxhcmdlLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7IGxlZnQ6ICgkZ3JpZC1sYXJnZS1ndXR0ZXItaG9yaXpvbnRhbCAqIDIpOyB9XHJcblxyXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LWxhcmdlKSB7XHJcblxyXG4gICAgLyogSG9yaXpvbnRhbCAqL1xyXG4gICAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWxhcmdlLFxyXG4gICAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1sYXJnZSB7IG1hcmdpbi1sZWZ0OiAtKCRncmlkLWxhcmdlLWd1dHRlci1ob3Jpem9udGFsLWwgKiAyKTsgfVxyXG4gICAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWxhcmdlID4gKixcclxuICAgIC51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbGFyZ2UgPiAqIHsgcGFkZGluZy1sZWZ0OiAoJGdyaWQtbGFyZ2UtZ3V0dGVyLWhvcml6b250YWwtbCAqIDIpOyB9XHJcblxyXG4gICAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWxhcmdlID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlLFxyXG4gICAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1sYXJnZSA+IDpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSB7IGxlZnQ6ICRncmlkLWxhcmdlLWd1dHRlci1ob3Jpem9udGFsLWw7IH1cclxuXHJcbiAgICAvKiBWZXJ0aWNhbCAqL1xyXG4gICAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWxhcmdlLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4sXHJcbiAgICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtcm93LWxhcmdlLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4geyBtYXJnaW4tdG9wOiAoJGdyaWQtbGFyZ2UtZ3V0dGVyLXZlcnRpY2FsLWwgKiAyKTsgfVxyXG5cclxuICAgIC51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1sYXJnZS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xyXG4gICAgICAgIHRvcDogKC0kZ3JpZC1sYXJnZS1ndXR0ZXItdmVydGljYWwtbCk7XHJcbiAgICAgICAgbGVmdDogKCRncmlkLWxhcmdlLWd1dHRlci1ob3Jpem9udGFsLWwgKiAyKTtcclxuICAgIH1cclxuXHJcbiAgICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtcm93LWxhcmdlLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7IHRvcDogKC0kZ3JpZC1sYXJnZS1ndXR0ZXItdmVydGljYWwtbCk7IH1cclxuICAgIC51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbGFyZ2UudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHsgbGVmdDogKCRncmlkLWxhcmdlLWd1dHRlci1ob3Jpem9udGFsLWwgKiAyKTsgfVxyXG5cclxufVxyXG5cclxuXHJcbi8qIE1hdGNoIGNoaWxkIG9mIGEgZ3JpZCBjZWxsXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogQmVoYXZlIGxpa2UgYSBibG9jayBlbGVtZW50XHJcbiAqIDEuIFdyYXAgaW50byB0aGUgbmV4dCBsaW5lXHJcbiAqIDIuIFRha2UgdGhlIGZ1bGwgd2lkdGgsIGF0IGxlYXN0IDEwMCUuIE9ubHkgaWYgbm8gY2xhc3MgZnJvbSB0aGUgV2lkdGggY29tcG9uZW50IGlzIHNldC5cclxuICogMy4gRXhwYW5kIHdpZHRoIGV2ZW4gaWYgbGFyZ2VyIHRoYW4gMTAwJSwgZS5nLiBiZWNhdXNlIG9mIG5lZ2F0aXZlIG1hcmdpbiAoTmVlZGVkIGZvciBuZXN0ZWQgZ3JpZHMpXHJcbiAqL1xyXG5cclxuLnVrLWdyaWQtbWF0Y2ggPiAqLFxyXG4udWstZ3JpZC1pdGVtLW1hdGNoIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAvKiAxICovXHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbn1cclxuXHJcbi51ay1ncmlkLW1hdGNoID4gKiA+IDpub3QoW2NsYXNzKj0ndWstd2lkdGgnXSksXHJcbi51ay1ncmlkLWl0ZW0tbWF0Y2ggPiA6bm90KFtjbGFzcyo9J3VrLXdpZHRoJ10pIHtcclxuICAgIC8qIDIgKi9cclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIC8qIDMgKi9cclxuICAgIGZsZXg6IGF1dG87XHJcbn1cclxuXHJcblxyXG4vLyBIb29rc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbkBpZihtaXhpbi1leGlzdHMoaG9vay1ncmlkLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1ncmlkLW1pc2MoKTt9XHJcblxyXG4vLyBAbWl4aW4gaG9vay1ncmlkLW1pc2MoKXt9XHJcblxyXG5cclxuLy8gSW52ZXJzZVxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiRpbnZlcnNlLWdyaWQtZGl2aWRlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XHJcblxyXG5cclxuIiwiLy8gTmFtZTogICAgICAgICAgICBDYXJkXHJcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBib3hlZCBjb250ZW50IGNvbnRhaW5lcnNcclxuLy9cclxuLy8gQ29tcG9uZW50OiAgICAgICBgdWstY2FyZGBcclxuLy9cclxuLy8gU3ViLW9iamVjdHM6ICAgICBgdWstY2FyZC1ib2R5YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1jYXJkLWhlYWRlcmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstY2FyZC1mb290ZXJgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWNhcmQtbWVkaWEtKmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstY2FyZC10aXRsZWBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstY2FyZC1iYWRnZWBcclxuLy9cclxuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstY2FyZC1ob3ZlcmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstY2FyZC1kZWZhdWx0YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1jYXJkLXByaW1hcnlgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWNhcmQtc2Vjb25kYXJ5YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1jYXJkLXNtYWxsYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1jYXJkLWxhcmdlYFxyXG4vL1xyXG4vLyBVc2VzOiAgICAgICAgICAgIGB1ay1ncmlkLXN0YWNrYFxyXG4vL1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcblxyXG4vLyBWYXJpYWJsZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4kY2FyZC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcclxuJGNhcmQtYm9keS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XHJcblxyXG4kY2FyZC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbC1sOiAgICAgICAgICAgICAgICAkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRjYXJkLWJvZHktcGFkZGluZy12ZXJ0aWNhbC1sOiAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWVkaXVtLWd1dHRlciAhZGVmYXVsdDtcclxuXHJcbiRjYXJkLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kY2FyZC1oZWFkZXItcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICByb3VuZCgkZ2xvYmFsLWd1dHRlciAvIDIpICFkZWZhdWx0O1xyXG5cclxuJGNhcmQtaGVhZGVyLXBhZGRpbmctaG9yaXpvbnRhbC1sOiAgICAgICAgICAgICAgJGdsb2JhbC1tZWRpdW0tZ3V0dGVyICFkZWZhdWx0O1xyXG4kY2FyZC1oZWFkZXItcGFkZGluZy12ZXJ0aWNhbC1sOiAgICAgICAgICAgICAgICByb3VuZCgkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgLyAyKSAhZGVmYXVsdDtcclxuXHJcbiRjYXJkLWZvb3Rlci1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kY2FyZC1mb290ZXItcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAoJGdsb2JhbC1ndXR0ZXIgLyAyKSAhZGVmYXVsdDtcclxuXHJcbiRjYXJkLWZvb3Rlci1wYWRkaW5nLWhvcml6b250YWwtbDogICAgICAgICAgICAgICRnbG9iYWwtbWVkaXVtLWd1dHRlciAhZGVmYXVsdDtcclxuJGNhcmQtZm9vdGVyLXBhZGRpbmctdmVydGljYWwtbDogICAgICAgICAgICAgICAgcm91bmQoJGdsb2JhbC1tZWRpdW0tZ3V0dGVyIC8gMikgIWRlZmF1bHQ7XHJcblxyXG4kY2FyZC10aXRsZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJGNhcmQtdGl0bGUtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgMS40ICFkZWZhdWx0O1xyXG5cclxuJGNhcmQtYmFkZ2UtdG9wOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRjYXJkLWJhZGdlLXJpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjYXJkLWJhZGdlLXRvcCAhZGVmYXVsdDtcclxuXHJcbiRjYXJkLWhvdmVyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuXHJcbiRjYXJkLWRlZmF1bHQtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJGNhcmQtZGVmYXVsdC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGNhcmQtZGVmYXVsdC10aXRsZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuJGNhcmQtZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgZGFya2VuKCRjYXJkLWRlZmF1bHQtYmFja2dyb3VuZCwgNSUpICFkZWZhdWx0O1xyXG5cclxuJGNhcmQtcHJpbWFyeS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRjYXJkLXByaW1hcnktY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJGNhcmQtcHJpbWFyeS10aXRsZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgJGNhcmQtcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcclxuJGNhcmQtcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgZGFya2VuKCRjYXJkLXByaW1hcnktYmFja2dyb3VuZCwgNSUpICFkZWZhdWx0O1xyXG4kY2FyZC1wcmltYXJ5LWNvbG9yLW1vZGU6ICAgICAgICAgICAgICAgICAgICAgICBsaWdodCAhZGVmYXVsdDtcclxuXHJcbiRjYXJkLXNlY29uZGFyeS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtc2Vjb25kYXJ5LWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRjYXJkLXNlY29uZGFyeS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJGNhcmQtc2Vjb25kYXJ5LXRpdGxlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgJGNhcmQtc2Vjb25kYXJ5LWNvbG9yICFkZWZhdWx0O1xyXG4kY2FyZC1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDogICAgICAgICAgICAgICBkYXJrZW4oJGNhcmQtc2Vjb25kYXJ5LWJhY2tncm91bmQsIDUlKSAhZGVmYXVsdDtcclxuJGNhcmQtc2Vjb25kYXJ5LWNvbG9yLW1vZGU6ICAgICAgICAgICAgICAgICAgICAgbGlnaHQgIWRlZmF1bHQ7XHJcblxyXG4kY2FyZC1zbWFsbC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcclxuJGNhcmQtc21hbGwtYm9keS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRjYXJkLXNtYWxsLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xyXG4kY2FyZC1zbWFsbC1oZWFkZXItcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICByb3VuZCgkZ2xvYmFsLW1hcmdpbiAvIDEuNSkgIWRlZmF1bHQ7XHJcbiRjYXJkLXNtYWxsLWZvb3Rlci1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xyXG4kY2FyZC1zbWFsbC1mb290ZXItcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICByb3VuZCgkZ2xvYmFsLW1hcmdpbiAvIDEuNSkgIWRlZmF1bHQ7XHJcblxyXG4kY2FyZC1sYXJnZS1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbC1sOiAgICAgICAgICAkZ2xvYmFsLWxhcmdlLWd1dHRlciAhZGVmYXVsdDtcclxuJGNhcmQtbGFyZ2UtYm9keS1wYWRkaW5nLXZlcnRpY2FsLWw6ICAgICAgICAgICAgJGdsb2JhbC1sYXJnZS1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRjYXJkLWxhcmdlLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWwtbDogICAgICAgICRnbG9iYWwtbGFyZ2UtZ3V0dGVyICFkZWZhdWx0O1xyXG4kY2FyZC1sYXJnZS1oZWFkZXItcGFkZGluZy12ZXJ0aWNhbC1sOiAgICAgICAgICByb3VuZCgkZ2xvYmFsLWxhcmdlLWd1dHRlciAvIDIpICFkZWZhdWx0O1xyXG4kY2FyZC1sYXJnZS1mb290ZXItcGFkZGluZy1ob3Jpem9udGFsLWw6ICAgICAgICAkZ2xvYmFsLWxhcmdlLWd1dHRlciAhZGVmYXVsdDtcclxuJGNhcmQtbGFyZ2UtZm9vdGVyLXBhZGRpbmctdmVydGljYWwtbDogICAgICAgICAgcm91bmQoJGdsb2JhbC1sYXJnZS1ndXR0ZXIgLyAyKSAhZGVmYXVsdDtcclxuXHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBDYXJkXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVrLWNhcmQge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1jYXJkKSkge0BpbmNsdWRlIGhvb2stY2FyZCgpO31cclxufVxyXG5cclxuXHJcbi8qIFNlY3Rpb25zXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVrLWNhcmQtYm9keSB7XHJcbiAgICBwYWRkaW5nOiAkY2FyZC1ib2R5LXBhZGRpbmctdmVydGljYWwgJGNhcmQtYm9keS1wYWRkaW5nLWhvcml6b250YWw7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1ib2R5KSkge0BpbmNsdWRlIGhvb2stY2FyZC1ib2R5KCk7fVxyXG59XHJcblxyXG4udWstY2FyZC1oZWFkZXIge1xyXG4gICAgcGFkZGluZzogJGNhcmQtaGVhZGVyLXBhZGRpbmctdmVydGljYWwgJGNhcmQtaGVhZGVyLXBhZGRpbmctaG9yaXpvbnRhbDtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1jYXJkLWhlYWRlcikpIHtAaW5jbHVkZSBob29rLWNhcmQtaGVhZGVyKCk7fVxyXG59XHJcblxyXG4udWstY2FyZC1mb290ZXIge1xyXG4gICAgcGFkZGluZzogJGNhcmQtZm9vdGVyLXBhZGRpbmctdmVydGljYWwgJGNhcmQtZm9vdGVyLXBhZGRpbmctaG9yaXpvbnRhbDtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1jYXJkLWZvb3RlcikpIHtAaW5jbHVkZSBob29rLWNhcmQtZm9vdGVyKCk7fVxyXG59XHJcblxyXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LWxhcmdlKSB7XHJcblxyXG4gICAgLnVrLWNhcmQtYm9keSB7IHBhZGRpbmc6ICRjYXJkLWJvZHktcGFkZGluZy12ZXJ0aWNhbC1sICRjYXJkLWJvZHktcGFkZGluZy1ob3Jpem9udGFsLWw7IH1cclxuXHJcbiAgICAudWstY2FyZC1oZWFkZXIgeyBwYWRkaW5nOiAkY2FyZC1oZWFkZXItcGFkZGluZy12ZXJ0aWNhbC1sICRjYXJkLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWwtbDsgfVxyXG5cclxuICAgIC51ay1jYXJkLWZvb3RlciB7IHBhZGRpbmc6ICRjYXJkLWZvb3Rlci1wYWRkaW5nLXZlcnRpY2FsLWwgJGNhcmQtZm9vdGVyLXBhZGRpbmctaG9yaXpvbnRhbC1sOyB9XHJcblxyXG59XHJcblxyXG4vKlxyXG4gKiBNaWNybyBjbGVhcmZpeFxyXG4gKi9cclxuXHJcbi51ay1jYXJkLWJvZHk6OmJlZm9yZSxcclxuLnVrLWNhcmQtYm9keTo6YWZ0ZXIsXHJcbi51ay1jYXJkLWhlYWRlcjo6YmVmb3JlLFxyXG4udWstY2FyZC1oZWFkZXI6OmFmdGVyLFxyXG4udWstY2FyZC1mb290ZXI6OmJlZm9yZSxcclxuLnVrLWNhcmQtZm9vdGVyOjphZnRlciB7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgZGlzcGxheTogdGFibGU7XHJcbn1cclxuXHJcbi51ay1jYXJkLWJvZHk6OmFmdGVyLFxyXG4udWstY2FyZC1oZWFkZXI6OmFmdGVyLFxyXG4udWstY2FyZC1mb290ZXI6OmFmdGVyIHsgY2xlYXI6IGJvdGg7IH1cclxuXHJcbi8qXHJcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxyXG4gKi9cclxuXHJcbi51ay1jYXJkLWJvZHkgPiA6bGFzdC1jaGlsZCxcclxuLnVrLWNhcmQtaGVhZGVyID4gOmxhc3QtY2hpbGQsXHJcbi51ay1jYXJkLWZvb3RlciA+IDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxyXG5cclxuXHJcbi8qIE1lZGlhXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogUmVzZXJ2ZWQgYWxpZ25tZW50IG1vZGlmaWVyIHRvIHN0eWxlIHRoZSBtZWRpYSBlbGVtZW50LCBlLmcuIHdpdGggYGJvcmRlci1yYWRpdXNgXHJcbiAqIEltcGxlbWVudGVkIGJ5IHRoZSB0aGVtZVxyXG4gKi9cclxuXHJcbltjbGFzcyo9J3VrLWNhcmQtbWVkaWEnXSB7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1tZWRpYSkpIHtAaW5jbHVkZSBob29rLWNhcmQtbWVkaWEoKTt9XHJcbn1cclxuXHJcbi51ay1jYXJkLW1lZGlhLXRvcCxcclxuLnVrLWdyaWQtc3RhY2sgPiAudWstY2FyZC1tZWRpYS1sZWZ0LFxyXG4udWstZ3JpZC1zdGFjayA+IC51ay1jYXJkLW1lZGlhLXJpZ2h0ICB7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1tZWRpYS10b3ApKSB7QGluY2x1ZGUgaG9vay1jYXJkLW1lZGlhLXRvcCgpO31cclxufVxyXG5cclxuLnVrLWNhcmQtbWVkaWEtYm90dG9tIHtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1jYXJkLW1lZGlhLWJvdHRvbSkpIHtAaW5jbHVkZSBob29rLWNhcmQtbWVkaWEtYm90dG9tKCk7fVxyXG59XHJcblxyXG46bm90KC51ay1ncmlkLXN0YWNrKSA+IC51ay1jYXJkLW1lZGlhLWxlZnQge1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWNhcmQtbWVkaWEtbGVmdCkpIHtAaW5jbHVkZSBob29rLWNhcmQtbWVkaWEtbGVmdCgpO31cclxufVxyXG5cclxuOm5vdCgudWstZ3JpZC1zdGFjaykgPiAudWstY2FyZC1tZWRpYS1yaWdodCB7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1tZWRpYS1yaWdodCkpIHtAaW5jbHVkZSBob29rLWNhcmQtbWVkaWEtcmlnaHQoKTt9XHJcbn1cclxuXHJcblxyXG4vKiBUaXRsZVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1jYXJkLXRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogJGNhcmQtdGl0bGUtZm9udC1zaXplO1xyXG4gICAgbGluZS1oZWlnaHQ6ICRjYXJkLXRpdGxlLWxpbmUtaGVpZ2h0O1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWNhcmQtdGl0bGUpKSB7QGluY2x1ZGUgaG9vay1jYXJkLXRpdGxlKCk7fVxyXG59XHJcblxyXG5cclxuLyogQmFkZ2VcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstY2FyZC1iYWRnZSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6ICRjYXJkLWJhZGdlLXRvcDtcclxuICAgIHJpZ2h0OiAkY2FyZC1iYWRnZS1yaWdodDtcclxuICAgIHotaW5kZXg6IDE7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1iYWRnZSkpIHtAaW5jbHVkZSBob29rLWNhcmQtYmFkZ2UoKTt9XHJcbn1cclxuXHJcbi8qXHJcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSBhZGphY2VudCBlbGVtZW50XHJcbiAqL1xyXG5cclxuLnVrLWNhcmQtYmFkZ2U6Zmlyc3QtY2hpbGQgKyAqIHsgbWFyZ2luLXRvcDogMDsgfVxyXG5cclxuXHJcbi8qIEhvdmVyIG1vZGlmaWVyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVrLWNhcmQtaG92ZXI6bm90KC51ay1jYXJkLWRlZmF1bHQpOm5vdCgudWstY2FyZC1wcmltYXJ5KTpub3QoLnVrLWNhcmQtc2Vjb25kYXJ5KTpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkY2FyZC1ob3Zlci1iYWNrZ3JvdW5kO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWNhcmQtaG92ZXIpKSB7QGluY2x1ZGUgaG9vay1jYXJkLWhvdmVyKCk7fVxyXG59XHJcblxyXG5cclxuLyogU3R5bGUgbW9kaWZpZXJzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogRGVmYXVsdFxyXG4gKiBOb3RlOiBIZWFkZXIgYW5kIEZvb3RlciBhcmUgb25seSBpbXBsZW1lbnRlZCBmb3IgdGhlIGRlZmF1bHQgc3R5bGVcclxuICovXHJcblxyXG4udWstY2FyZC1kZWZhdWx0IHtcclxuICAgIGJhY2tncm91bmQ6ICRjYXJkLWRlZmF1bHQtYmFja2dyb3VuZDtcclxuICAgIGNvbG9yOiAkY2FyZC1kZWZhdWx0LWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWNhcmQtZGVmYXVsdCkpIHtAaW5jbHVkZSBob29rLWNhcmQtZGVmYXVsdCgpO31cclxufVxyXG5cclxuLnVrLWNhcmQtZGVmYXVsdCAudWstY2FyZC10aXRsZSB7XHJcbiAgICBjb2xvcjogJGNhcmQtZGVmYXVsdC10aXRsZS1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1jYXJkLWRlZmF1bHQtdGl0bGUpKSB7QGluY2x1ZGUgaG9vay1jYXJkLWRlZmF1bHQtdGl0bGUoKTt9XHJcbn1cclxuXHJcbi51ay1jYXJkLWRlZmF1bHQudWstY2FyZC1ob3Zlcjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FyZC1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQ7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1kZWZhdWx0LWhvdmVyKSkge0BpbmNsdWRlIGhvb2stY2FyZC1kZWZhdWx0LWhvdmVyKCk7fVxyXG59XHJcblxyXG4udWstY2FyZC1kZWZhdWx0IC51ay1jYXJkLWhlYWRlciB7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1kZWZhdWx0LWhlYWRlcikpIHtAaW5jbHVkZSBob29rLWNhcmQtZGVmYXVsdC1oZWFkZXIoKTt9XHJcbn1cclxuXHJcbi51ay1jYXJkLWRlZmF1bHQgLnVrLWNhcmQtZm9vdGVyIHtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1jYXJkLWRlZmF1bHQtZm9vdGVyKSkge0BpbmNsdWRlIGhvb2stY2FyZC1kZWZhdWx0LWZvb3RlcigpO31cclxufVxyXG5cclxuLypcclxuICogUHJpbWFyeVxyXG4gKi9cclxuXHJcbi51ay1jYXJkLXByaW1hcnkge1xyXG4gICAgYmFja2dyb3VuZDogJGNhcmQtcHJpbWFyeS1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRjYXJkLXByaW1hcnktY29sb3I7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1wcmltYXJ5KSkge0BpbmNsdWRlIGhvb2stY2FyZC1wcmltYXJ5KCk7fVxyXG59XHJcblxyXG4udWstY2FyZC1wcmltYXJ5IC51ay1jYXJkLXRpdGxlIHtcclxuICAgIGNvbG9yOiAkY2FyZC1wcmltYXJ5LXRpdGxlLWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWNhcmQtcHJpbWFyeS10aXRsZSkpIHtAaW5jbHVkZSBob29rLWNhcmQtcHJpbWFyeS10aXRsZSgpO31cclxufVxyXG5cclxuLnVrLWNhcmQtcHJpbWFyeS51ay1jYXJkLWhvdmVyOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjYXJkLXByaW1hcnktaG92ZXItYmFja2dyb3VuZDtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1jYXJkLXByaW1hcnktaG92ZXIpKSB7QGluY2x1ZGUgaG9vay1jYXJkLXByaW1hcnktaG92ZXIoKTt9XHJcbn1cclxuXHJcbi8vIENvbG9yIE1vZGVcclxuQGlmICggJGNhcmQtcHJpbWFyeS1jb2xvci1tb2RlID09IGxpZ2h0ICkgeyAudWstY2FyZC1wcmltYXJ5LnVrLWNhcmQtYm9keSB7IEBleHRlbmQgLnVrLWxpZ2h0ICFvcHRpb25hbDt9IH1cclxuQGlmICggJGNhcmQtcHJpbWFyeS1jb2xvci1tb2RlID09IGxpZ2h0ICkgeyAudWstY2FyZC1wcmltYXJ5ID4gOm5vdChbY2xhc3MqPSd1ay1jYXJkLW1lZGlhJ10pIHsgQGV4dGVuZCAudWstbGlnaHQgIW9wdGlvbmFsO30gfVxyXG5AaWYgKCAkY2FyZC1wcmltYXJ5LWNvbG9yLW1vZGUgPT0gZGFyayApIHsgLnVrLWNhcmQtcHJpbWFyeS51ay1jYXJkLWJvZHkgeyBAZXh0ZW5kIC51ay1kYXJrICFvcHRpb25hbDt9IH1cclxuQGlmICggJGNhcmQtcHJpbWFyeS1jb2xvci1tb2RlID09IGRhcmsgKSB7IC51ay1jYXJkLXByaW1hcnkgPiA6bm90KFtjbGFzcyo9J3VrLWNhcmQtbWVkaWEnXSkgeyBAZXh0ZW5kIC51ay1kYXJrICFvcHRpb25hbDt9IH1cclxuXHJcbi8qXHJcbiAqIFNlY29uZGFyeVxyXG4gKi9cclxuXHJcbi51ay1jYXJkLXNlY29uZGFyeSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkY2FyZC1zZWNvbmRhcnktYmFja2dyb3VuZDtcclxuICAgIGNvbG9yOiAkY2FyZC1zZWNvbmRhcnktY29sb3I7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1zZWNvbmRhcnkpKSB7QGluY2x1ZGUgaG9vay1jYXJkLXNlY29uZGFyeSgpO31cclxufVxyXG5cclxuLnVrLWNhcmQtc2Vjb25kYXJ5IC51ay1jYXJkLXRpdGxlIHtcclxuICAgIGNvbG9yOiAkY2FyZC1zZWNvbmRhcnktdGl0bGUtY29sb3I7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1zZWNvbmRhcnktdGl0bGUpKSB7QGluY2x1ZGUgaG9vay1jYXJkLXNlY29uZGFyeS10aXRsZSgpO31cclxufVxyXG5cclxuLnVrLWNhcmQtc2Vjb25kYXJ5LnVrLWNhcmQtaG92ZXI6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNhcmQtc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stY2FyZC1zZWNvbmRhcnktaG92ZXIpKSB7QGluY2x1ZGUgaG9vay1jYXJkLXNlY29uZGFyeS1ob3ZlcigpO31cclxufVxyXG5cclxuLy8gQ29sb3IgTW9kZVxyXG5AaWYgKCAkY2FyZC1zZWNvbmRhcnktY29sb3ItbW9kZSA9PSBsaWdodCApIHsgLnVrLWNhcmQtc2Vjb25kYXJ5LnVrLWNhcmQtYm9keSB7IEBleHRlbmQgLnVrLWxpZ2h0ICFvcHRpb25hbDt9IH1cclxuQGlmICggJGNhcmQtc2Vjb25kYXJ5LWNvbG9yLW1vZGUgPT0gbGlnaHQgKSB7IC51ay1jYXJkLXNlY29uZGFyeSA+IDpub3QoW2NsYXNzKj0ndWstY2FyZC1tZWRpYSddKSB7IEBleHRlbmQgLnVrLWxpZ2h0ICFvcHRpb25hbDt9IH1cclxuQGlmICggJGNhcmQtc2Vjb25kYXJ5LWNvbG9yLW1vZGUgPT0gZGFyayApIHsgLnVrLWNhcmQtc2Vjb25kYXJ5LnVrLWNhcmQtYm9keSB7IEBleHRlbmQgLnVrLWRhcmsgIW9wdGlvbmFsO30gfVxyXG5AaWYgKCAkY2FyZC1zZWNvbmRhcnktY29sb3ItbW9kZSA9PSBkYXJrICkgeyAudWstY2FyZC1zZWNvbmRhcnkgPiA6bm90KFtjbGFzcyo9J3VrLWNhcmQtbWVkaWEnXSkgeyBAZXh0ZW5kIC51ay1kYXJrICFvcHRpb25hbDt9IH1cclxuXHJcblxyXG4vKiBTaXplIG1vZGlmaWVyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogU21hbGxcclxuICovXHJcblxyXG4udWstY2FyZC1zbWFsbC51ay1jYXJkLWJvZHksXHJcbi51ay1jYXJkLXNtYWxsIC51ay1jYXJkLWJvZHkgeyBwYWRkaW5nOiAkY2FyZC1zbWFsbC1ib2R5LXBhZGRpbmctdmVydGljYWwgJGNhcmQtc21hbGwtYm9keS1wYWRkaW5nLWhvcml6b250YWw7IH1cclxuXHJcbi51ay1jYXJkLXNtYWxsIC51ay1jYXJkLWhlYWRlciB7IHBhZGRpbmc6ICRjYXJkLXNtYWxsLWhlYWRlci1wYWRkaW5nLXZlcnRpY2FsICRjYXJkLXNtYWxsLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWw7IH1cclxuLnVrLWNhcmQtc21hbGwgLnVrLWNhcmQtZm9vdGVyIHsgcGFkZGluZzogJGNhcmQtc21hbGwtZm9vdGVyLXBhZGRpbmctdmVydGljYWwgJGNhcmQtc21hbGwtZm9vdGVyLXBhZGRpbmctaG9yaXpvbnRhbDsgfVxyXG5cclxuLypcclxuICogTGFyZ2VcclxuICovXHJcblxyXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LWxhcmdlKSB7XHJcblxyXG4gICAgLnVrLWNhcmQtbGFyZ2UudWstY2FyZC1ib2R5LFxyXG4gICAgLnVrLWNhcmQtbGFyZ2UgLnVrLWNhcmQtYm9keSB7IHBhZGRpbmc6ICRjYXJkLWxhcmdlLWJvZHktcGFkZGluZy12ZXJ0aWNhbC1sICRjYXJkLWxhcmdlLWJvZHktcGFkZGluZy1ob3Jpem9udGFsLWw7IH1cclxuXHJcbiAgICAudWstY2FyZC1sYXJnZSAudWstY2FyZC1oZWFkZXIgeyBwYWRkaW5nOiAkY2FyZC1sYXJnZS1oZWFkZXItcGFkZGluZy12ZXJ0aWNhbC1sICRjYXJkLWxhcmdlLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWwtbDsgfVxyXG4gICAgLnVrLWNhcmQtbGFyZ2UgLnVrLWNhcmQtZm9vdGVyIHsgcGFkZGluZzogJGNhcmQtbGFyZ2UtZm9vdGVyLXBhZGRpbmctdmVydGljYWwtbCAkY2FyZC1sYXJnZS1mb290ZXItcGFkZGluZy1ob3Jpem9udGFsLWw7IH1cclxuXHJcbn1cclxuXHJcblxyXG4vLyBIb29rc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbkBpZihtaXhpbi1leGlzdHMoaG9vay1jYXJkLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1jYXJkLW1pc2MoKTt9XHJcblxyXG4vLyBAbWl4aW4gaG9vay1jYXJkKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1jYXJkLWJvZHkoKXt9XHJcbi8vIEBtaXhpbiBob29rLWNhcmQtaGVhZGVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1jYXJkLWZvb3Rlcigpe31cclxuLy8gQG1peGluIGhvb2stY2FyZC1tZWRpYSgpe31cclxuLy8gQG1peGluIGhvb2stY2FyZC1tZWRpYS10b3AoKXt9XHJcbi8vIEBtaXhpbiBob29rLWNhcmQtbWVkaWEtYm90dG9tKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1jYXJkLW1lZGlhLWxlZnQoKXt9XHJcbi8vIEBtaXhpbiBob29rLWNhcmQtbWVkaWEtcmlnaHQoKXt9XHJcbi8vIEBtaXhpbiBob29rLWNhcmQtdGl0bGUoKXt9XHJcbi8vIEBtaXhpbiBob29rLWNhcmQtYmFkZ2UoKXt9XHJcbi8vIEBtaXhpbiBob29rLWNhcmQtaG92ZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLWNhcmQtZGVmYXVsdCgpe31cclxuLy8gQG1peGluIGhvb2stY2FyZC1kZWZhdWx0LXRpdGxlKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1jYXJkLWRlZmF1bHQtaG92ZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLWNhcmQtZGVmYXVsdC1oZWFkZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLWNhcmQtZGVmYXVsdC1mb290ZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLWNhcmQtcHJpbWFyeSgpe31cclxuLy8gQG1peGluIGhvb2stY2FyZC1wcmltYXJ5LXRpdGxlKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1jYXJkLXByaW1hcnktaG92ZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLWNhcmQtc2Vjb25kYXJ5KCl7fVxyXG4vLyBAbWl4aW4gaG9vay1jYXJkLXNlY29uZGFyeS10aXRsZSgpe31cclxuLy8gQG1peGluIGhvb2stY2FyZC1zZWNvbmRhcnktaG92ZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLWNhcmQtbWlzYygpe31cclxuIiwiLy8gTmFtZTogICAgICAgICAgICBDbG9zZVxyXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgYSBjbG9zZSBidXR0b25cclxuLy9cclxuLy8gQ29tcG9uZW50OiAgICAgICBgdWstY2xvc2VgXHJcbi8vXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuXHJcbi8vIFZhcmlhYmxlc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiRjbG9zZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kY2xvc2UtaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuXHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBDbG9zZVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIEFkb3B0cyBgdWstaWNvbmBcclxuICovXHJcblxyXG4udWstY2xvc2Uge1xyXG4gICAgY29sb3I6ICRjbG9zZS1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1jbG9zZSkpIHtAaW5jbHVkZSBob29rLWNsb3NlKCk7fVxyXG59XHJcblxyXG4vKiBIb3ZlciArIEZvY3VzICovXHJcbi51ay1jbG9zZTpob3ZlcixcclxuLnVrLWNsb3NlOmZvY3VzIHtcclxuICAgIGNvbG9yOiAkY2xvc2UtaG92ZXItY29sb3I7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWNsb3NlLWhvdmVyKSkge0BpbmNsdWRlIGhvb2stY2xvc2UtaG92ZXIoKTt9XHJcbn1cclxuXHJcblxyXG4vLyBIb29rc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbkBpZihtaXhpbi1leGlzdHMoaG9vay1jbG9zZS1taXNjKSkge0BpbmNsdWRlIGhvb2stY2xvc2UtbWlzYygpO31cclxuXHJcbi8vIEBtaXhpbiBob29rLWNsb3NlKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1jbG9zZS1ob3Zlcigpe31cclxuLy8gQG1peGluIGhvb2stY2xvc2UtbWlzYygpe31cclxuXHJcblxyXG4vLyBJbnZlcnNlXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuJGludmVyc2UtY2xvc2UtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtY2xvc2UtaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuXHJcblxyXG5cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1jbG9zZSgpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1jbG9zZS1ob3Zlcigpe31cclxuIiwiLy8gTmFtZTogICAgICAgICAgICBOYXZcclxuLy8gRGVzY3JpcHRpb246ICAgICBEZWZpbmVzIHN0eWxlcyBmb3IgbGlzdCBuYXZpZ2F0aW9uc1xyXG4vL1xyXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1uYXZgXHJcbi8vXHJcbi8vIFN1Yi1vYmplY3RzOiAgICAgYHVrLW5hdi1oZWFkZXJgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLW5hdi1kaXZpZGVyYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXYtc3ViYFxyXG4vL1xyXG4vLyBNb2RpZmllcnM6ICAgICAgIGB1ay1uYXYtcGFyZW50LWljb25gXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLW5hdi1kZWZhdWx0YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXYtcHJpbWFyeWBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2LWNlbnRlcmBcclxuLy9cclxuLy8gU3RhdGVzOiAgICAgICAgICBgdWstYWN0aXZlYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wYXJlbnRgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLW9wZW5gXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRvdWNoYFxyXG4vL1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcblxyXG4vLyBWYXJpYWJsZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4kbmF2LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgNXB4ICFkZWZhdWx0O1xyXG4kbmF2LWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcclxuXHJcbiRuYXYtc3VibGlzdC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICA1cHggIWRlZmF1bHQ7XHJcbiRuYXYtc3VibGlzdC1wYWRkaW5nLWxlZnQ6ICAgICAgICAgICAgICAgICAgICAgICAxNXB4ICFkZWZhdWx0O1xyXG4kbmF2LXN1Ymxpc3QtZGVlcGVyLXBhZGRpbmctbGVmdDogICAgICAgICAgICAgICAgMTVweCAhZGVmYXVsdDtcclxuJG5hdi1zdWJsaXN0LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgIDJweCAhZGVmYXVsdDtcclxuXHJcbiRuYXYtcGFyZW50LWljb24td2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAoJGdsb2JhbC1saW5lLWhlaWdodCAqIDFlbSkgIWRlZmF1bHQ7XHJcbiRuYXYtcGFyZW50LWljb24taGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAkbmF2LXBhcmVudC1pY29uLXdpZHRoICFkZWZhdWx0O1xyXG4kbmF2LXBhcmVudC1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuXHJcbiRuYXYtaGVhZGVyLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAkbmF2LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbCAhZGVmYXVsdDtcclxuJG5hdi1oZWFkZXItcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICRuYXYtaXRlbS1wYWRkaW5nLWhvcml6b250YWwgIWRlZmF1bHQ7XHJcbiRuYXYtaGVhZGVyLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJG5hdi1oZWFkZXItdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgICAgICAgICAgIHVwcGVyY2FzZSAhZGVmYXVsdDtcclxuJG5hdi1oZWFkZXItbWFyZ2luLXRvcDogICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xyXG5cclxuJG5hdi1kaXZpZGVyLW1hcmdpbi12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgIDVweCAhZGVmYXVsdDtcclxuJG5hdi1kaXZpZGVyLW1hcmdpbi1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XHJcblxyXG4kbmF2LWRlZmF1bHQtaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJG5hdi1kZWZhdWx0LWl0ZW0taG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRuYXYtZGVmYXVsdC1pdGVtLWFjdGl2ZS1jb2xvcjogICAgICAgICAgICAgICAgICAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2LWRlZmF1bHQtaGVhZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuJG5hdi1kZWZhdWx0LWRpdmlkZXItYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICRnbG9iYWwtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xyXG4kbmF2LWRlZmF1bHQtZGl2aWRlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XHJcbiRuYXYtZGVmYXVsdC1zdWJsaXN0LWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2LWRlZmF1bHQtc3VibGlzdC1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJG5hdi1kZWZhdWx0LXN1Ymxpc3QtaXRlbS1hY3RpdmUtY29sb3I6ICAgICAgICAgICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4kbmF2LXByaW1hcnktaXRlbS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1sYXJnZS1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiRuYXYtcHJpbWFyeS1pdGVtLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWxpbmUtaGVpZ2h0ICFkZWZhdWx0O1xyXG4kbmF2LXByaW1hcnktaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJG5hdi1wcmltYXJ5LWl0ZW0taG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRuYXYtcHJpbWFyeS1pdGVtLWFjdGl2ZS1jb2xvcjogICAgICAgICAgICAgICAgICAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2LXByaW1hcnktaGVhZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuJG5hdi1wcmltYXJ5LWRpdmlkZXItYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICRnbG9iYWwtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xyXG4kbmF2LXByaW1hcnktZGl2aWRlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XHJcbiRuYXYtcHJpbWFyeS1zdWJsaXN0LWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2LXByaW1hcnktc3VibGlzdC1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJG5hdi1wcmltYXJ5LXN1Ymxpc3QtaXRlbS1hY3RpdmUtY29sb3I6ICAgICAgICAgICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4kaW50ZXJuYWwtbmF2LXBhcmVudC1jbG9zZS1pbWFnZTogXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjE0JTIyJTIwaGVpZ2h0JTNEJTIyMTQlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNCUyMDE0JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlMEElMjAlMjAlMjAlMjAlM0Nwb2x5bGluZSUyMGZpbGwlM0QlMjJub25lJTIyJTIwc3Ryb2tlJTNEJTIyIzAwMCUyMiUyMHN0cm9rZS13aWR0aCUzRCUyMjEuMSUyMiUyMHBvaW50cyUzRCUyMjEwJTIwMSUyMDQlMjA3JTIwMTAlMjAxMyUyMiUyMCUyRiUzRSUwQSUzQyUyRnN2ZyUzRVwiICFkZWZhdWx0O1xyXG4kaW50ZXJuYWwtbmF2LXBhcmVudC1vcGVuLWltYWdlOiBcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMTQlMjIlMjBoZWlnaHQlM0QlMjIxNCUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE0JTIwMTQlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BvbHlsaW5lJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBzdHJva2UlM0QlMjIjMDAwJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMS4xJTIyJTIwcG9pbnRzJTNEJTIyMSUyMDQlMjA3JTIwMTAlMjAxMyUyMDQlMjIlMjAlMkYlM0UlMEElM0MlMkZzdmclM0VcIiAhZGVmYXVsdDtcclxuXHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBOYXZcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiBSZXNldFxyXG4gKiAxLiBQcmVwYXJlIGxpc3RzXHJcbiAqIDIuIFByZXBhcmUgbGlua3NcclxuICogMy4gUmVtb3ZlIGRlZmF1bHQgZm9jdXMgc3R5bGVcclxuICovXHJcblxyXG4vKiAxICovXHJcbi51ay1uYXYsXHJcbi51ay1uYXYgdWwge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbn1cclxuXHJcbi8qIDIgKi9cclxuLnVrLW5hdiBsaSA+IGEge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbn1cclxuXHJcbi8qIDMgKi9cclxuLnVrLW5hdiBsaSA+IGE6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XHJcblxyXG4vKlxyXG4gKiBJdGVtc1xyXG4gKiBNdXN0IHRhcmdldCBgYWAgZWxlbWVudHMgdG8gZXhjbHVkZSBvdGhlciBlbGVtZW50cyAoZS5nLiBsaXN0cylcclxuICovXHJcblxyXG4udWstbmF2ID4gbGkgPiBhIHsgcGFkZGluZzogJG5hdi1pdGVtLXBhZGRpbmctdmVydGljYWwgJG5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDsgfVxyXG5cclxuXHJcbi8qIFN1Ymxpc3RzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogTGV2ZWwgMlxyXG4gKiBgdWxgIG5lZWRlZCBmb3IgaGlnaGVyIHNwZWNpZmljaXR5IHRvIG92ZXJyaWRlIHBhZGRpbmdcclxuICovXHJcblxyXG51bC51ay1uYXYtc3ViIHtcclxuICAgIHBhZGRpbmc6ICRuYXYtc3VibGlzdC1wYWRkaW5nLXZlcnRpY2FsIDAgJG5hdi1zdWJsaXN0LXBhZGRpbmctdmVydGljYWwgJG5hdi1zdWJsaXN0LXBhZGRpbmctbGVmdDtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXYtc3ViKSkge0BpbmNsdWRlIGhvb2stbmF2LXN1YigpO31cclxufVxyXG5cclxuLypcclxuICogTGV2ZWwgMyBhbmQgZGVlcGVyXHJcbiAqL1xyXG5cclxuLnVrLW5hdi1zdWIgdWwgeyBwYWRkaW5nLWxlZnQ6ICRuYXYtc3VibGlzdC1kZWVwZXItcGFkZGluZy1sZWZ0OyB9XHJcblxyXG4vKlxyXG4gKiBJdGVtc1xyXG4gKi9cclxuXHJcbi51ay1uYXYtc3ViIGEgeyBwYWRkaW5nOiAkbmF2LXN1Ymxpc3QtaXRlbS1wYWRkaW5nLXZlcnRpY2FsIDA7IH1cclxuXHJcblxyXG4vKiBQYXJlbnQgaWNvbiBtb2RpZmllclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1uYXYtcGFyZW50LWljb24gPiAudWstcGFyZW50ID4gYTo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIHdpZHRoOiAkbmF2LXBhcmVudC1pY29uLXdpZHRoO1xyXG4gICAgaGVpZ2h0OiAkbmF2LXBhcmVudC1pY29uLWhlaWdodDtcclxuICAgIGZsb2F0OiByaWdodDtcclxuICAgIEBpbmNsdWRlIHN2Zy1maWxsKCRpbnRlcm5hbC1uYXYtcGFyZW50LWNsb3NlLWltYWdlLCBcIiMwMDBcIiwgJG5hdi1wYXJlbnQtaWNvbi1jb2xvcik7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXYtcGFyZW50LWljb24pKSB7QGluY2x1ZGUgaG9vay1uYXYtcGFyZW50LWljb24oKTt9XHJcbn1cclxuXHJcbi51ay1uYXYtcGFyZW50LWljb24gPiAudWstcGFyZW50LnVrLW9wZW4gPiBhOjphZnRlciB7IEBpbmNsdWRlIHN2Zy1maWxsKCRpbnRlcm5hbC1uYXYtcGFyZW50LW9wZW4taW1hZ2UsIFwiIzAwMFwiLCAkbmF2LXBhcmVudC1pY29uLWNvbG9yKTsgfVxyXG5cclxuXHJcbi8qIEhlYWRlclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1uYXYtaGVhZGVyIHtcclxuICAgIHBhZGRpbmc6ICRuYXYtaGVhZGVyLXBhZGRpbmctdmVydGljYWwgJG5hdi1oZWFkZXItcGFkZGluZy1ob3Jpem9udGFsO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06ICRuYXYtaGVhZGVyLXRleHQtdHJhbnNmb3JtO1xyXG4gICAgZm9udC1zaXplOiAkbmF2LWhlYWRlci1mb250LXNpemU7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2LWhlYWRlcikpIHtAaW5jbHVkZSBob29rLW5hdi1oZWFkZXIoKTt9XHJcbn1cclxuXHJcbi51ay1uYXYtaGVhZGVyOm5vdCg6Zmlyc3QtY2hpbGQpIHsgbWFyZ2luLXRvcDogJG5hdi1oZWFkZXItbWFyZ2luLXRvcDsgfVxyXG5cclxuXHJcbi8qIERpdmlkZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstbmF2LWRpdmlkZXIge1xyXG4gICAgbWFyZ2luOiAkbmF2LWRpdmlkZXItbWFyZ2luLXZlcnRpY2FsICRuYXYtZGl2aWRlci1tYXJnaW4taG9yaXpvbnRhbDtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXYtZGl2aWRlcikpIHtAaW5jbHVkZSBob29rLW5hdi1kaXZpZGVyKCk7fVxyXG59XHJcblxyXG5cclxuLyogRGVmYXVsdCBtb2RpZmllclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1uYXYtZGVmYXVsdCB7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2LWRlZmF1bHQpKSB7QGluY2x1ZGUgaG9vay1uYXYtZGVmYXVsdCgpO31cclxufVxyXG5cclxuLypcclxuICogSXRlbXNcclxuICovXHJcblxyXG4udWstbmF2LWRlZmF1bHQgPiBsaSA+IGEge1xyXG4gICAgY29sb3I6ICRuYXYtZGVmYXVsdC1pdGVtLWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdi1kZWZhdWx0LWl0ZW0pKSB7QGluY2x1ZGUgaG9vay1uYXYtZGVmYXVsdC1pdGVtKCk7fVxyXG59XHJcblxyXG4vKiBIb3ZlciArIEZvY3VzICovXHJcbi51ay1uYXYtZGVmYXVsdCA+IGxpID4gYTpob3ZlcixcclxuLnVrLW5hdi1kZWZhdWx0ID4gbGkgPiBhOmZvY3VzIHtcclxuICAgIGNvbG9yOiAkbmF2LWRlZmF1bHQtaXRlbS1ob3Zlci1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXYtZGVmYXVsdC1pdGVtLWhvdmVyKSkge0BpbmNsdWRlIGhvb2stbmF2LWRlZmF1bHQtaXRlbS1ob3ZlcigpO31cclxufVxyXG5cclxuLyogQWN0aXZlICovXHJcbi51ay1uYXYtZGVmYXVsdCA+IGxpLnVrLWFjdGl2ZSA+IGEge1xyXG4gICAgY29sb3I6ICRuYXYtZGVmYXVsdC1pdGVtLWFjdGl2ZS1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXYtZGVmYXVsdC1pdGVtLWFjdGl2ZSkpIHtAaW5jbHVkZSBob29rLW5hdi1kZWZhdWx0LWl0ZW0tYWN0aXZlKCk7fVxyXG59XHJcblxyXG4vKlxyXG4gKiBIZWFkZXJcclxuICovXHJcblxyXG4udWstbmF2LWRlZmF1bHQgLnVrLW5hdi1oZWFkZXIge1xyXG4gICAgY29sb3I6ICRuYXYtZGVmYXVsdC1oZWFkZXItY29sb3I7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2LWRlZmF1bHQtaGVhZGVyKSkge0BpbmNsdWRlIGhvb2stbmF2LWRlZmF1bHQtaGVhZGVyKCk7fVxyXG59XHJcblxyXG4vKlxyXG4gKiBEaXZpZGVyXHJcbiAqL1xyXG5cclxuLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtZGl2aWRlciB7XHJcbiAgICBib3JkZXItdG9wOiAkbmF2LWRlZmF1bHQtZGl2aWRlci1ib3JkZXItd2lkdGggc29saWQgJG5hdi1kZWZhdWx0LWRpdmlkZXItYm9yZGVyO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdi1kZWZhdWx0LWRpdmlkZXIpKSB7QGluY2x1ZGUgaG9vay1uYXYtZGVmYXVsdC1kaXZpZGVyKCk7fVxyXG59XHJcblxyXG4vKlxyXG4gKiBTdWJsaXN0c1xyXG4gKi9cclxuXHJcbi51ay1uYXYtZGVmYXVsdCAudWstbmF2LXN1YiBhIHsgY29sb3I6ICRuYXYtZGVmYXVsdC1zdWJsaXN0LWl0ZW0tY29sb3I7IH1cclxuXHJcbi51ay1uYXYtZGVmYXVsdCAudWstbmF2LXN1YiBhOmhvdmVyLFxyXG4udWstbmF2LWRlZmF1bHQgLnVrLW5hdi1zdWIgYTpmb2N1cyB7IGNvbG9yOiAkbmF2LWRlZmF1bHQtc3VibGlzdC1pdGVtLWhvdmVyLWNvbG9yOyB9XHJcblxyXG4udWstbmF2LWRlZmF1bHQgLnVrLW5hdi1zdWIgbGkudWstYWN0aXZlID4gYSB7IGNvbG9yOiAkbmF2LWRlZmF1bHQtc3VibGlzdC1pdGVtLWFjdGl2ZS1jb2xvcjsgfVxyXG5cclxuXHJcbi8qIFByaW1hcnkgbW9kaWZpZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstbmF2LXByaW1hcnkge1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdi1wcmltYXJ5KSkge0BpbmNsdWRlIGhvb2stbmF2LXByaW1hcnkoKTt9XHJcbn1cclxuXHJcbi8qXHJcbiAqIEl0ZW1zXHJcbiAqL1xyXG5cclxuLnVrLW5hdi1wcmltYXJ5ID4gbGkgPiBhIHtcclxuICAgIGZvbnQtc2l6ZTogJG5hdi1wcmltYXJ5LWl0ZW0tZm9udC1zaXplO1xyXG4gICAgbGluZS1oZWlnaHQ6ICRuYXYtcHJpbWFyeS1pdGVtLWxpbmUtaGVpZ2h0O1xyXG4gICAgY29sb3I6ICRuYXYtcHJpbWFyeS1pdGVtLWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdi1wcmltYXJ5LWl0ZW0pKSB7QGluY2x1ZGUgaG9vay1uYXYtcHJpbWFyeS1pdGVtKCk7fVxyXG59XHJcblxyXG4vKiBIb3ZlciArIEZvY3VzICovXHJcbi51ay1uYXYtcHJpbWFyeSA+IGxpID4gYTpob3ZlcixcclxuLnVrLW5hdi1wcmltYXJ5ID4gbGkgPiBhOmZvY3VzIHtcclxuICAgIGNvbG9yOiAkbmF2LXByaW1hcnktaXRlbS1ob3Zlci1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXYtcHJpbWFyeS1pdGVtLWhvdmVyKSkge0BpbmNsdWRlIGhvb2stbmF2LXByaW1hcnktaXRlbS1ob3ZlcigpO31cclxufVxyXG5cclxuLyogQWN0aXZlICovXHJcbi51ay1uYXYtcHJpbWFyeSA+IGxpLnVrLWFjdGl2ZSA+IGEge1xyXG4gICAgY29sb3I6ICRuYXYtcHJpbWFyeS1pdGVtLWFjdGl2ZS1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXYtcHJpbWFyeS1pdGVtLWFjdGl2ZSkpIHtAaW5jbHVkZSBob29rLW5hdi1wcmltYXJ5LWl0ZW0tYWN0aXZlKCk7fVxyXG59XHJcblxyXG4vKlxyXG4gKiBIZWFkZXJcclxuICovXHJcblxyXG4udWstbmF2LXByaW1hcnkgLnVrLW5hdi1oZWFkZXIge1xyXG4gICAgY29sb3I6ICRuYXYtcHJpbWFyeS1oZWFkZXItY29sb3I7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2LXByaW1hcnktaGVhZGVyKSkge0BpbmNsdWRlIGhvb2stbmF2LXByaW1hcnktaGVhZGVyKCk7fVxyXG59XHJcblxyXG4vKlxyXG4gKiBEaXZpZGVyXHJcbiAqL1xyXG5cclxuLnVrLW5hdi1wcmltYXJ5IC51ay1uYXYtZGl2aWRlciB7XHJcbiAgICBib3JkZXItdG9wOiAkbmF2LXByaW1hcnktZGl2aWRlci1ib3JkZXItd2lkdGggc29saWQgJG5hdi1wcmltYXJ5LWRpdmlkZXItYm9yZGVyO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdi1wcmltYXJ5LWRpdmlkZXIpKSB7QGluY2x1ZGUgaG9vay1uYXYtcHJpbWFyeS1kaXZpZGVyKCk7fVxyXG59XHJcblxyXG4vKlxyXG4gKiBTdWJsaXN0c1xyXG4gKi9cclxuXHJcbi51ay1uYXYtcHJpbWFyeSAudWstbmF2LXN1YiBhIHsgY29sb3I6ICRuYXYtcHJpbWFyeS1zdWJsaXN0LWl0ZW0tY29sb3I7IH1cclxuXHJcbi51ay1uYXYtcHJpbWFyeSAudWstbmF2LXN1YiBhOmhvdmVyLFxyXG4udWstbmF2LXByaW1hcnkgLnVrLW5hdi1zdWIgYTpmb2N1cyB7IGNvbG9yOiAkbmF2LXByaW1hcnktc3VibGlzdC1pdGVtLWhvdmVyLWNvbG9yOyB9XHJcblxyXG4udWstbmF2LXByaW1hcnkgLnVrLW5hdi1zdWIgbGkudWstYWN0aXZlID4gYSB7IGNvbG9yOiAkbmF2LXByaW1hcnktc3VibGlzdC1pdGVtLWFjdGl2ZS1jb2xvcjsgfVxyXG5cclxuXHJcbi8qIEFsaWdubWVudCBtb2RpZmllclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1uYXYtY2VudGVyIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XHJcblxyXG4vKiBTdWJsaXN0cyAqL1xyXG4udWstbmF2LWNlbnRlciAudWstbmF2LXN1YixcclxuLnVrLW5hdi1jZW50ZXIgLnVrLW5hdi1zdWIgdWwgeyBwYWRkaW5nLWxlZnQ6IDA7IH1cclxuXHJcbi8qIFBhcmVudCBpY29uIG1vZGlmaWVyICAqL1xyXG4udWstbmF2LWNlbnRlci51ay1uYXYtcGFyZW50LWljb24gPiAudWstcGFyZW50ID4gYTo6YWZ0ZXIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IH1cclxuXHJcblxyXG4vLyBIb29rc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbkBpZihtaXhpbi1leGlzdHMoaG9vay1uYXYtbWlzYykpIHtAaW5jbHVkZSBob29rLW5hdi1taXNjKCk7fVxyXG5cclxuLy8gQG1peGluIGhvb2stbmF2LXN1Yigpe31cclxuLy8gQG1peGluIGhvb2stbmF2LXBhcmVudC1pY29uKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1uYXYtaGVhZGVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1uYXYtZGl2aWRlcigpe31cclxuLy8gQG1peGluIGhvb2stbmF2LWRlZmF1bHQoKXt9XHJcbi8vIEBtaXhpbiBob29rLW5hdi1kZWZhdWx0LWl0ZW0oKXt9XHJcbi8vIEBtaXhpbiBob29rLW5hdi1kZWZhdWx0LWl0ZW0taG92ZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLW5hdi1kZWZhdWx0LWl0ZW0tYWN0aXZlKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1uYXYtZGVmYXVsdC1oZWFkZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLW5hdi1kZWZhdWx0LWRpdmlkZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLW5hdi1wcmltYXJ5KCl7fVxyXG4vLyBAbWl4aW4gaG9vay1uYXYtcHJpbWFyeS1pdGVtKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1uYXYtcHJpbWFyeS1pdGVtLWhvdmVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1uYXYtcHJpbWFyeS1pdGVtLWFjdGl2ZSgpe31cclxuLy8gQG1peGluIGhvb2stbmF2LXByaW1hcnktaGVhZGVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1uYXYtcHJpbWFyeS1kaXZpZGVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1uYXYtbWlzYygpe31cclxuXHJcblxyXG4vLyBJbnZlcnNlXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuJGludmVyc2UtbmF2LXBhcmVudC1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtbmF2LWRlZmF1bHQtaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtbmF2LWRlZmF1bHQtaXRlbS1ob3Zlci1jb2xvcjogICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtbmF2LWRlZmF1bHQtaXRlbS1hY3RpdmUtY29sb3I6ICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtbmF2LWRlZmF1bHQtaGVhZGVyLWNvbG9yOiAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtbmF2LWRlZmF1bHQtZGl2aWRlci1ib3JkZXI6ICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1ib3JkZXIgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLW5hdi1kZWZhdWx0LXN1Ymxpc3QtaXRlbS1jb2xvcjogICAgICAgICAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLW5hdi1kZWZhdWx0LXN1Ymxpc3QtaXRlbS1ob3Zlci1jb2xvcjogICAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLW5hdi1kZWZhdWx0LXN1Ymxpc3QtaXRlbS1hY3RpdmUtY29sb3I6ICAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4kaW52ZXJzZS1uYXYtcHJpbWFyeS1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1uYXYtcHJpbWFyeS1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1uYXYtcHJpbWFyeS1pdGVtLWFjdGl2ZS1jb2xvcjogICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1uYXYtcHJpbWFyeS1oZWFkZXItY29sb3I6ICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1uYXYtcHJpbWFyeS1kaXZpZGVyLWJvcmRlcjogICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcclxuJGludmVyc2UtbmF2LXByaW1hcnktc3VibGlzdC1pdGVtLWNvbG9yOiAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtbmF2LXByaW1hcnktc3VibGlzdC1pdGVtLWhvdmVyLWNvbG9yOiAgICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtbmF2LXByaW1hcnktc3VibGlzdC1pdGVtLWFjdGl2ZS1jb2xvcjogICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuXHJcblxyXG5cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1uYXYtcGFyZW50LWljb24oKXt9XHJcbi8vIEBtaXhpbiBob29rLWludmVyc2UtbmF2LWRlZmF1bHQtaXRlbSgpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1uYXYtZGVmYXVsdC1pdGVtLWhvdmVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLW5hdi1kZWZhdWx0LWl0ZW0tYWN0aXZlKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLW5hdi1kZWZhdWx0LWhlYWRlcigpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1uYXYtZGVmYXVsdC1kaXZpZGVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLW5hdi1wcmltYXJ5LWl0ZW0oKXt9XHJcbi8vIEBtaXhpbiBob29rLWludmVyc2UtbmF2LXByaW1hcnktaXRlbS1ob3Zlcigpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1uYXYtcHJpbWFyeS1pdGVtLWFjdGl2ZSgpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1uYXYtcHJpbWFyeS1oZWFkZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLWludmVyc2UtbmF2LXByaW1hcnktZGl2aWRlcigpe31cclxuIiwiLy8gTmFtZTogICAgICAgICAgICBOYXZiYXJcclxuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gY3JlYXRlIGhvcml6b250YWwgbmF2aWdhdGlvbiBiYXJzXHJcbi8vXHJcbi8vIENvbXBvbmVudDogICAgICAgYHVrLW5hdmJhcmBcclxuLy9cclxuLy8gU3ViLW9iamVjdHM6ICAgICBgdWstbmF2YmFyLWNvbnRhaW5lcmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2YmFyLWxlZnRgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLW5hdmJhci1yaWdodGBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2YmFyLWNlbnRlcmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2YmFyLWNlbnRlci1sZWZ0YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXZiYXItY2VudGVyLXJpZ2h0YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXZiYXItbmF2YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXZiYXItaXRlbWBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2YmFyLXRvZ2dsZWBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2YmFyLXN1YnRpdGxlYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXZiYXItZHJvcGJhcmBcclxuLy9cclxuLy8gQWRvcHRlZDogICAgICAgICBgdWstbmF2YmFyLWRyb3Bkb3duYCArIE1vZGlmaWVyc1xyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXZiYXItZHJvcGRvd24tbmF2YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXZiYXItZHJvcGRvd24tZ3JpZGBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2YmFyLXRvZ2dsZS1pY29uYFxyXG4vL1xyXG4vLyBNb2RpZmllcnM6ICAgICAgIGB1ay1uYXZiYXItcHJpbWFyeWBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2YmFyLXRyYW5zcGFyZW50YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXZiYXItc3RpY2t5YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXZiYXItZHJvcGRvd24tc3RhY2tgXHJcbi8vXHJcbi8vIFN0YXRlczogICAgICAgICAgYHVrLWFjdGl2ZWBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstcGFyZW50YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1vcGVuYFxyXG4vL1xyXG4vL1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcblxyXG4vLyBWYXJpYWJsZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4kbmF2YmFyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kbmF2YmFyLWNvbG9yLW1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9uZSAhZGVmYXVsdDtcclxuXHJcbiRuYXZiYXItbmF2LWl0ZW0taGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICA4MHB4ICFkZWZhdWx0O1xyXG4kbmF2YmFyLW5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgMTVweCAhZGVmYXVsdDtcclxuJG5hdmJhci1uYXYtaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRuYXZiYXItbmF2LWl0ZW0tZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJG5hdmJhci1uYXYtaXRlbS1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZm9udC1mYW1pbHkgIWRlZmF1bHQ7XHJcbiRuYXZiYXItbmF2LWl0ZW0taG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2YmFyLW5hdi1pdGVtLW9uY2xpY2stY29sb3I6ICAgICAgICAgICAgICAgICAgJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuJG5hdmJhci1uYXYtaXRlbS1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4kbmF2YmFyLWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuXHJcbiRuYXZiYXItdG9nZ2xlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2YmFyLXRvZ2dsZS1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuXHJcbiRuYXZiYXItc3VidGl0bGUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuXHJcbiRuYXZiYXItZHJvcGRvd24tei1pbmRleDogICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXotaW5kZXggKyAyMCAhZGVmYXVsdDtcclxuJG5hdmJhci1kcm9wZG93bi13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgIDIwMHB4ICFkZWZhdWx0O1xyXG4kbmF2YmFyLWRyb3Bkb3duLW1hcmdpbjogICAgICAgICAgICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcclxuJG5hdmJhci1kcm9wZG93bi1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAgIDE1cHggIWRlZmF1bHQ7XHJcbiRuYXZiYXItZHJvcGRvd24tYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRuYXZiYXItZHJvcGRvd24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2YmFyLWRyb3Bkb3duLWdyaWQtZ3V0dGVyLWhvcml6b250YWw6ICAgICAgICAgJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRuYXZiYXItZHJvcGRvd24tZ3JpZC1ndXR0ZXItdmVydGljYWw6ICAgICAgICAgICAkbmF2YmFyLWRyb3Bkb3duLWdyaWQtZ3V0dGVyLWhvcml6b250YWwgIWRlZmF1bHQ7XHJcblxyXG4kbmF2YmFyLWRyb3Bkb3duLWRyb3BiYXItbWFyZ2luLXRvcDogICAgICAgICAgICAgMCAhZGVmYXVsdDtcclxuJG5hdmJhci1kcm9wZG93bi1kcm9wYmFyLW1hcmdpbi1ib3R0b206ICAgICAgICAgICRuYXZiYXItZHJvcGRvd24tZHJvcGJhci1tYXJnaW4tdG9wICFkZWZhdWx0O1xyXG5cclxuJG5hdmJhci1kcm9wZG93bi1uYXYtaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRuYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0taG92ZXItY29sb3I6ICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2YmFyLWRyb3Bkb3duLW5hdi1pdGVtLWFjdGl2ZS1jb2xvcjogICAgICAgICAgJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuJG5hdmJhci1kcm9wZG93bi1uYXYtaGVhZGVyLWNvbG9yOiAgICAgICAgICAgICAgICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XHJcbiRuYXZiYXItZHJvcGRvd24tbmF2LWRpdmlkZXItYm9yZGVyLXdpZHRoOiAgICAgICAkZ2xvYmFsLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcclxuJG5hdmJhci1kcm9wZG93bi1uYXYtZGl2aWRlci1ib3JkZXI6ICAgICAgICAgICAgICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG4kbmF2YmFyLWRyb3Bkb3duLW5hdi1zdWJsaXN0LWl0ZW0tY29sb3I6ICAgICAgICAgJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJG5hdmJhci1kcm9wZG93bi1uYXYtc3VibGlzdC1pdGVtLWhvdmVyLWNvbG9yOiAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRuYXZiYXItZHJvcGRvd24tbmF2LXN1Ymxpc3QtaXRlbS1hY3RpdmUtY29sb3I6ICAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG5cclxuJG5hdmJhci1kcm9wYmFyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICRuYXZiYXItZHJvcGRvd24tYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJG5hdmJhci1kcm9wYmFyLXotaW5kZXg6ICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtei1pbmRleCAtIDIwICFkZWZhdWx0O1xyXG5cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IE5hdmJhclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIDEuIENyZWF0ZSBwb3NpdGlvbiBjb250ZXh0IHRvIGNlbnRlciBuYXZiYXIgZ3JvdXBcclxuICovXHJcblxyXG4udWstbmF2YmFyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAvKiAxICovXHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2YmFyKSkge0BpbmNsdWRlIGhvb2stbmF2YmFyKCk7fVxyXG59XHJcblxyXG5cclxuLyogQ29udGFpbmVyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVrLW5hdmJhci1jb250YWluZXI6bm90KC51ay1uYXZiYXItdHJhbnNwYXJlbnQpIHtcclxuICAgIGJhY2tncm91bmQ6ICRuYXZiYXItYmFja2dyb3VuZDtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXZiYXItY29udGFpbmVyKSkge0BpbmNsdWRlIGhvb2stbmF2YmFyLWNvbnRhaW5lcigpO31cclxufVxyXG5cclxuLy8gQ29sb3IgTW9kZVxyXG5AaWYgKCAkbmF2YmFyLWNvbG9yLW1vZGUgPT0gbGlnaHQgKSB7IC51ay1uYXZiYXItY29udGFpbmVyOm5vdCgudWstbmF2YmFyLXRyYW5zcGFyZW50KSB7IEBleHRlbmQgLnVrLWxpZ2h0ICFvcHRpb25hbDt9IH1cclxuQGlmICggJG5hdmJhci1jb2xvci1tb2RlID09IGRhcmsgKSB7IC51ay1uYXZiYXItY29udGFpbmVyOm5vdCgudWstbmF2YmFyLXRyYW5zcGFyZW50KSB7IEBleHRlbmQgLnVrLWRhcmsgIW9wdGlvbmFsO30gfVxyXG5cclxuLypcclxuICogUmVtb3ZlIHBzZXVkbyBlbGVtZW50cyBjcmVhdGVkIGJ5IG1pY3JvIGNsZWFyZml4IGFzIHByZWNhdXRpb24gKGlmIENvbnRhaW5lciBjb21wb25lbnQgaXMgdXNlZClcclxuICovXHJcblxyXG4udWstbmF2YmFyLWNvbnRhaW5lciA+IDo6YmVmb3JlLFxyXG4udWstbmF2YmFyLWNvbnRhaW5lciA+IDo6YWZ0ZXIgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cclxuXHJcblxyXG4vKiBHcm91cHNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBBbGlnbiBuYXZzIGFuZCBpdGVtcyB2ZXJ0aWNhbGx5IGlmIHRoZXkgaGF2ZSBhIGRpZmZlcmVudCBoZWlnaHRcclxuICogMi4gTm90ZTogSUUgMTEgcmVxdWlyZXMgYW4gZXh0cmEgYGRpdmAgd2hpY2ggYWZmZWN0cyB0aGUgY2VudGVyIHNlbGVjdG9yXHJcbiAqL1xyXG5cclxuLnVrLW5hdmJhci1sZWZ0LFxyXG4udWstbmF2YmFyLXJpZ2h0LFxyXG4vLyAyLiBbY2xhc3MqPSd1ay1uYXZiYXItY2VudGVyJ10sXHJcbi51ay1uYXZiYXItY2VudGVyLFxyXG4udWstbmF2YmFyLWNlbnRlci1sZWZ0ID4gKixcclxuLnVrLW5hdmJhci1jZW50ZXItcmlnaHQgPiAqIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAvKiAxICovXHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG4vKlxyXG4gKiBIb3Jpem9udGFsIGFsaWdubWVudFxyXG4gKiAxLiBDcmVhdGUgcG9zaXRpb24gY29udGV4dCBmb3IgY2VudGVyZWQgbmF2YmFyIHdpdGggc3ViIGdyb3VwcyAobGVmdC9yaWdodClcclxuICogMi4gRml4IHRleHQgd3JhcHBpbmcgaWYgY29udGVudCBpcyBsYXJnZXIgdGhhbiA1MCUgb2YgdGhlIGNvbnRhaW5lci5cclxuICogMy4gTmVlZGVkIGZvciBkcm9wZG93bnMgYmVjYXVzZSBhIG5ldyBwb3NpdGlvbiBjb250ZXh0IGlzIGNyZWF0ZWRcclxuICogICAgYHotaW5kZXhgIG11c3QgYmUgc21hbGxlciB0aGFuIG9mZi1jYW52YXNcclxuICogNC4gQWxpZ24gc3ViIGdyb3VwcyBmb3IgY2VudGVyZWQgbmF2YmFyXHJcbiAqL1xyXG5cclxuLnVrLW5hdmJhci1yaWdodCB7IG1hcmdpbi1sZWZ0OiBhdXRvOyB9XHJcblxyXG4udWstbmF2YmFyLWNlbnRlcjpvbmx5LWNoaWxkIHtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgLyogMSAqL1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4udWstbmF2YmFyLWNlbnRlcjpub3QoOm9ubHktY2hpbGQpIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgbGVmdDogNTAlO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwtNTAlKTtcclxuICAgIC8qIDIgKi9cclxuICAgIHdpZHRoOiBtYXgtY29udGVudDtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAvKiAzICovXHJcbiAgICB6LWluZGV4OiAkZ2xvYmFsLXotaW5kZXggLSAxMDtcclxufVxyXG5cclxuLyogNCAqL1xyXG4udWstbmF2YmFyLWNlbnRlci1sZWZ0LFxyXG4udWstbmF2YmFyLWNlbnRlci1yaWdodCB7XHJcbiAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgdG9wOiAwO1xyXG59XHJcblxyXG4udWstbmF2YmFyLWNlbnRlci1sZWZ0IHsgcmlnaHQ6IDEwMCU7IH1cclxuLnVrLW5hdmJhci1jZW50ZXItcmlnaHQgeyBsZWZ0OiAxMDAlOyB9XHJcblxyXG5bY2xhc3MqPSd1ay1uYXZiYXItY2VudGVyLSddIHtcclxuICAgIHdpZHRoOiBtYXgtY29udGVudDtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbn1cclxuXHJcblxyXG4vKiBOYXZcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBSZXNldCBsaXN0XHJcbiAqL1xyXG5cclxuLnVrLW5hdmJhci1uYXYge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIC8qIDEgKi9cclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG59XHJcblxyXG4vKlxyXG4gKiBBbGxvdyBpdGVtcyB0byB3cmFwIGludG8gdGhlIG5leHQgbGluZVxyXG4gKiBPbmx5IG5vdCBgYWJzb2x1dGVgIHBvc2l0aW9uZWQgZ3JvdXBzXHJcbiAqL1xyXG5cclxuLnVrLW5hdmJhci1sZWZ0LFxyXG4udWstbmF2YmFyLXJpZ2h0LFxyXG4udWstbmF2YmFyLWNlbnRlcjpvbmx5LWNoaWxkIHsgZmxleC13cmFwOiB3cmFwOyB9XHJcblxyXG4vKlxyXG4gKiBJdGVtc1xyXG4gKiAxLiBDZW50ZXIgY29udGVudCB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHlcclxuICogMi4gRGltZW5zaW9uc1xyXG4gKiAzLiBTdHlsZVxyXG4gKiA0LiBSZXF1aXJlZCBmb3IgYGFgXHJcbiAqL1xyXG5cclxuLnVrLW5hdmJhci1uYXYgPiBsaSA+IGEsICAgIC8vIE5hdiBpdGVtXHJcbi51ay1uYXZiYXItaXRlbSwgICAgICAgICAgICAvLyBDb250ZW50IGl0ZW1cclxuLnVrLW5hdmJhci10b2dnbGUgeyAgICAgICAgIC8vIENsaWNrYWJsZSBpdGVtXHJcbiAgICAvKiAxICovXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgLyogMiAqL1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIG1pbi1oZWlnaHQ6ICRuYXZiYXItbmF2LWl0ZW0taGVpZ2h0O1xyXG4gICAgcGFkZGluZzogMCAkbmF2YmFyLW5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDtcclxuICAgIC8qIDMgKi9cclxuICAgIGZvbnQtc2l6ZTogJG5hdmJhci1uYXYtaXRlbS1mb250LXNpemU7XHJcbiAgICBmb250LWZhbWlseTogJG5hdmJhci1uYXYtaXRlbS1mb250LWZhbWlseTtcclxuICAgIC8qIDQgKi9cclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxufVxyXG5cclxuLypcclxuICogTmF2IGl0ZW1zXHJcbiAqL1xyXG5cclxuLnVrLW5hdmJhci1uYXYgPiBsaSA+IGEge1xyXG4gICAgY29sb3I6ICRuYXZiYXItbmF2LWl0ZW0tY29sb3I7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2YmFyLW5hdi1pdGVtKSkge0BpbmNsdWRlIGhvb2stbmF2YmFyLW5hdi1pdGVtKCk7fVxyXG59XHJcblxyXG4vKlxyXG4gKiBIb3ZlclxyXG4gKiBBcHBseSBob3ZlciBzdHlsZSBhbHNvIHRvIGZvY3VzIHN0YXRlIGFuZCBpZiBkcm9wZG93biBpcyBvcGVuZWRcclxuICovXHJcblxyXG4udWstbmF2YmFyLW5hdiA+IGxpOmhvdmVyID4gYSxcclxuLnVrLW5hdmJhci1uYXYgPiBsaSA+IGE6Zm9jdXMsXHJcbi51ay1uYXZiYXItbmF2ID4gbGkgPiBhLnVrLW9wZW4ge1xyXG4gICAgY29sb3I6ICRuYXZiYXItbmF2LWl0ZW0taG92ZXItY29sb3I7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdmJhci1uYXYtaXRlbS1ob3ZlcikpIHtAaW5jbHVkZSBob29rLW5hdmJhci1uYXYtaXRlbS1ob3ZlcigpO31cclxufVxyXG5cclxuLyogT25DbGljayAqL1xyXG4udWstbmF2YmFyLW5hdiA+IGxpID4gYTphY3RpdmUge1xyXG4gICAgY29sb3I6ICRuYXZiYXItbmF2LWl0ZW0tb25jbGljay1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXZiYXItbmF2LWl0ZW0tb25jbGljaykpIHtAaW5jbHVkZSBob29rLW5hdmJhci1uYXYtaXRlbS1vbmNsaWNrKCk7fVxyXG59XHJcblxyXG4vKiBBY3RpdmUgKi9cclxuLnVrLW5hdmJhci1uYXYgPiBsaS51ay1hY3RpdmUgPiBhIHtcclxuICAgIGNvbG9yOiAkbmF2YmFyLW5hdi1pdGVtLWFjdGl2ZS1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXZiYXItbmF2LWl0ZW0tYWN0aXZlKSkge0BpbmNsdWRlIGhvb2stbmF2YmFyLW5hdi1pdGVtLWFjdGl2ZSgpO31cclxufVxyXG5cclxuXHJcbi8qIEl0ZW1cclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstbmF2YmFyLWl0ZW0ge1xyXG4gICAgY29sb3I6ICRuYXZiYXItaXRlbS1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXZiYXItaXRlbSkpIHtAaW5jbHVkZSBob29rLW5hdmJhci1pdGVtKCk7fVxyXG59XHJcblxyXG5cclxuLyogVG9nZ2xlXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVrLW5hdmJhci10b2dnbGUge1xyXG4gICAgY29sb3I6ICRuYXZiYXItdG9nZ2xlLWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdmJhci10b2dnbGUpKSB7QGluY2x1ZGUgaG9vay1uYXZiYXItdG9nZ2xlKCk7fVxyXG59XHJcblxyXG4udWstbmF2YmFyLXRvZ2dsZTpob3ZlcixcclxuLnVrLW5hdmJhci10b2dnbGU6Zm9jdXMsXHJcbi51ay1uYXZiYXItdG9nZ2xlLnVrLW9wZW4ge1xyXG4gICAgY29sb3I6ICRuYXZiYXItdG9nZ2xlLWhvdmVyLWNvbG9yO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXZiYXItdG9nZ2xlLWhvdmVyKSkge0BpbmNsdWRlIGhvb2stbmF2YmFyLXRvZ2dsZS1ob3ZlcigpO31cclxufVxyXG5cclxuLypcclxuICogSWNvblxyXG4gKiBBZG9wdHMgYHVrLWljb25gXHJcbiAqL1xyXG5cclxuLnVrLW5hdmJhci10b2dnbGUtaWNvbiB7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2YmFyLXRvZ2dsZS1pY29uKSkge0BpbmNsdWRlIGhvb2stbmF2YmFyLXRvZ2dsZS1pY29uKCk7fVxyXG59XHJcblxyXG4vKiBIb3ZlciArIEZvY3VzICovXHJcbjpob3ZlciA+IC51ay1uYXZiYXItdG9nZ2xlLWljb24sXHJcbjpmb2N1cyA+IC51ay1uYXZiYXItdG9nZ2xlLWljb24ge1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdmJhci10b2dnbGUtaWNvbi1ob3ZlcikpIHtAaW5jbHVkZSBob29rLW5hdmJhci10b2dnbGUtaWNvbi1ob3ZlcigpO31cclxufVxyXG5cclxuXHJcbi8qIFN1YnRpdGxlXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVrLW5hdmJhci1zdWJ0aXRsZSB7XHJcbiAgICBmb250LXNpemU6ICRuYXZiYXItc3VidGl0bGUtZm9udC1zaXplO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdmJhci1zdWJ0aXRsZSkpIHtAaW5jbHVkZSBob29rLW5hdmJhci1zdWJ0aXRsZSgpO31cclxufVxyXG5cclxuXHJcbi8qIFN0eWxlIG1vZGlmaWVyc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1uYXZiYXItcHJpbWFyeSB7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2YmFyLXByaW1hcnkpKSB7QGluY2x1ZGUgaG9vay1uYXZiYXItcHJpbWFyeSgpO31cclxufVxyXG5cclxuLnVrLW5hdmJhci10cmFuc3BhcmVudCB7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2YmFyLXRyYW5zcGFyZW50KSkge0BpbmNsdWRlIGhvb2stbmF2YmFyLXRyYW5zcGFyZW50KCk7fVxyXG59XHJcblxyXG4udWstbmF2YmFyLXN0aWNreSB7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2YmFyLXN0aWNreSkpIHtAaW5jbHVkZSBob29rLW5hdmJhci1zdGlja3koKTt9XHJcbn1cclxuXHJcblxyXG4vKiBEcm9wZG93blxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIEFkb3B0cyBgdWstZHJvcGRvd25gXHJcbiAqIDEuIEhpZGUgYnkgZGVmYXVsdFxyXG4gKiAyLiBTZXQgcG9zaXRpb25cclxuICogMy4gU2V0IGEgZGVmYXVsdCB3aWR0aFxyXG4gKiA0LiBTdHlsZVxyXG4gKi9cclxuXHJcbi51ay1uYXZiYXItZHJvcGRvd24ge1xyXG4gICAgLyogMSAqL1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIC8qIDIgKi9cclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHotaW5kZXg6ICRuYXZiYXItZHJvcGRvd24tei1pbmRleDtcclxuICAgIC8qIDMgKi9cclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB3aWR0aDogJG5hdmJhci1kcm9wZG93bi13aWR0aDtcclxuICAgIC8qIDQgKi9cclxuICAgIHBhZGRpbmc6ICRuYXZiYXItZHJvcGRvd24tcGFkZGluZztcclxuICAgIGJhY2tncm91bmQ6ICRuYXZiYXItZHJvcGRvd24tYmFja2dyb3VuZDtcclxuICAgIGNvbG9yOiAkbmF2YmFyLWRyb3Bkb3duLWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdmJhci1kcm9wZG93bikpIHtAaW5jbHVkZSBob29rLW5hdmJhci1kcm9wZG93bigpO31cclxufVxyXG5cclxuLyogU2hvdyAqL1xyXG4udWstbmF2YmFyLWRyb3Bkb3duLnVrLW9wZW4geyBkaXNwbGF5OiBibG9jazsgfVxyXG5cclxuLypcclxuICogRGlyZWN0aW9uIC8gQWxpZ25tZW50IG1vZGlmaWVyc1xyXG4gKi9cclxuXHJcbi8qIERpcmVjdGlvbiAqL1xyXG5bY2xhc3MqPSd1ay1uYXZiYXItZHJvcGRvd24tdG9wJ10geyBtYXJnaW4tdG9wOiAoLSRuYXZiYXItZHJvcGRvd24tbWFyZ2luKTsgfVxyXG5bY2xhc3MqPSd1ay1uYXZiYXItZHJvcGRvd24tYm90dG9tJ10geyBtYXJnaW4tdG9wOiAkbmF2YmFyLWRyb3Bkb3duLW1hcmdpbjsgfVxyXG5bY2xhc3MqPSd1ay1uYXZiYXItZHJvcGRvd24tbGVmdCddIHsgbWFyZ2luLWxlZnQ6ICgtJG5hdmJhci1kcm9wZG93bi1tYXJnaW4pOyB9XHJcbltjbGFzcyo9J3VrLW5hdmJhci1kcm9wZG93bi1yaWdodCddIHsgbWFyZ2luLWxlZnQ6ICRuYXZiYXItZHJvcGRvd24tbWFyZ2luOyB9XHJcblxyXG4vKlxyXG4gKiBHcmlkXHJcbiAqIEFkb3B0cyBgdWstZ3JpZGBcclxuICovXHJcblxyXG4vKiBHdXR0ZXIgSG9yaXpvbnRhbCAqL1xyXG4udWstbmF2YmFyLWRyb3Bkb3duLWdyaWQgeyBtYXJnaW4tbGVmdDogKC0kbmF2YmFyLWRyb3Bkb3duLWdyaWQtZ3V0dGVyLWhvcml6b250YWwpOyB9XHJcbi51ay1uYXZiYXItZHJvcGRvd24tZ3JpZCA+ICogeyBwYWRkaW5nLWxlZnQ6ICRuYXZiYXItZHJvcGRvd24tZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbDsgfVxyXG5cclxuLyogR3V0dGVyIFZlcnRpY2FsICovXHJcbi51ay1uYXZiYXItZHJvcGRvd24tZ3JpZCA+IC51ay1ncmlkLW1hcmdpbiB7IG1hcmdpbi10b3A6ICRuYXZiYXItZHJvcGRvd24tZ3JpZC1ndXR0ZXItdmVydGljYWw7IH1cclxuXHJcbi8qIFN0YWNrICovXHJcbi51ay1uYXZiYXItZHJvcGRvd24tc3RhY2sgLnVrLW5hdmJhci1kcm9wZG93bi1ncmlkID4gKiB7IHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cclxuXHJcbi8qXHJcbiAqIFdpZHRoIG1vZGlmaWVyXHJcbiAqL1xyXG5cclxuLnVrLW5hdmJhci1kcm9wZG93bi13aWR0aC0yOm5vdCgudWstbmF2YmFyLWRyb3Bkb3duLXN0YWNrKSB7IHdpZHRoOiAoJG5hdmJhci1kcm9wZG93bi13aWR0aCAqIDIpOyB9XHJcbi51ay1uYXZiYXItZHJvcGRvd24td2lkdGgtMzpub3QoLnVrLW5hdmJhci1kcm9wZG93bi1zdGFjaykgeyB3aWR0aDogKCRuYXZiYXItZHJvcGRvd24td2lkdGggKiAzKTsgfVxyXG4udWstbmF2YmFyLWRyb3Bkb3duLXdpZHRoLTQ6bm90KC51ay1uYXZiYXItZHJvcGRvd24tc3RhY2spIHsgd2lkdGg6ICgkbmF2YmFyLWRyb3Bkb3duLXdpZHRoICogNCk7IH1cclxuLnVrLW5hdmJhci1kcm9wZG93bi13aWR0aC01Om5vdCgudWstbmF2YmFyLWRyb3Bkb3duLXN0YWNrKSB7IHdpZHRoOiAoJG5hdmJhci1kcm9wZG93bi13aWR0aCAqIDUpOyB9XHJcblxyXG4vKlxyXG4gKiBEcm9wYmFyIG1vZGlmaWVyXHJcbiAqL1xyXG5cclxuLnVrLW5hdmJhci1kcm9wZG93bi1kcm9wYmFyIHtcclxuICAgIG1hcmdpbi10b3A6ICRuYXZiYXItZHJvcGRvd24tZHJvcGJhci1tYXJnaW4tdG9wO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogJG5hdmJhci1kcm9wZG93bi1kcm9wYmFyLW1hcmdpbi1ib3R0b207XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2YmFyLWRyb3Bkb3duLWRyb3BiYXIpKSB7QGluY2x1ZGUgaG9vay1uYXZiYXItZHJvcGRvd24tZHJvcGJhcigpO31cclxufVxyXG5cclxuXHJcbi8qIERyb3Bkb3duIE5hdlxyXG4gKiBBZG9wdHMgYHVrLW5hdmBcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiB7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdikpIHtAaW5jbHVkZSBob29rLW5hdmJhci1kcm9wZG93bi1uYXYoKTt9XHJcbn1cclxuXHJcbi8qXHJcbiAqIEl0ZW1zXHJcbiAqL1xyXG5cclxuLnVrLW5hdmJhci1kcm9wZG93bi1uYXYgPiBsaSA+IGEge1xyXG4gICAgY29sb3I6ICRuYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0tY29sb3I7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdi1pdGVtKSkge0BpbmNsdWRlIGhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdi1pdGVtKCk7fVxyXG59XHJcblxyXG4vKiBIb3ZlciArIEZvY3VzICovXHJcbi51ay1uYXZiYXItZHJvcGRvd24tbmF2ID4gbGkgPiBhOmhvdmVyLFxyXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiA+IGxpID4gYTpmb2N1cyB7XHJcbiAgICBjb2xvcjogJG5hdmJhci1kcm9wZG93bi1uYXYtaXRlbS1ob3Zlci1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0taG92ZXIpKSB7QGluY2x1ZGUgaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0taG92ZXIoKTt9XHJcbn1cclxuXHJcbi8qIEFjdGl2ZSAqL1xyXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiA+IGxpLnVrLWFjdGl2ZSA+IGEge1xyXG4gICAgY29sb3I6ICRuYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0tYWN0aXZlLWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdmJhci1kcm9wZG93bi1uYXYtaXRlbS1hY3RpdmUpKSB7QGluY2x1ZGUgaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0tYWN0aXZlKCk7fVxyXG59XHJcblxyXG4vKlxyXG4gKiBIZWFkZXJcclxuICovXHJcblxyXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiAudWstbmF2LWhlYWRlciB7XHJcbiAgICBjb2xvcjogJG5hdmJhci1kcm9wZG93bi1uYXYtaGVhZGVyLWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW5hdmJhci1kcm9wZG93bi1uYXYtaGVhZGVyKSkge0BpbmNsdWRlIGhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdi1oZWFkZXIoKTt9XHJcbn1cclxuXHJcbi8qXHJcbiAqIERpdmlkZXJcclxuICovXHJcblxyXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiAudWstbmF2LWRpdmlkZXIge1xyXG4gICAgYm9yZGVyLXRvcDogJG5hdmJhci1kcm9wZG93bi1uYXYtZGl2aWRlci1ib3JkZXItd2lkdGggc29saWQgJG5hdmJhci1kcm9wZG93bi1uYXYtZGl2aWRlci1ib3JkZXI7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdi1kaXZpZGVyKSkge0BpbmNsdWRlIGhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdi1kaXZpZGVyKCk7fVxyXG59XHJcblxyXG4vKlxyXG4gKiBTdWJsaXN0c1xyXG4gKi9cclxuXHJcbi51ay1uYXZiYXItZHJvcGRvd24tbmF2IC51ay1uYXYtc3ViIGEgeyBjb2xvcjogJG5hdmJhci1kcm9wZG93bi1uYXYtc3VibGlzdC1pdGVtLWNvbG9yOyB9XHJcblxyXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiAudWstbmF2LXN1YiBhOmhvdmVyLFxyXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiAudWstbmF2LXN1YiBhOmZvY3VzIHsgY29sb3I6ICRuYXZiYXItZHJvcGRvd24tbmF2LXN1Ymxpc3QtaXRlbS1ob3Zlci1jb2xvcjsgfVxyXG5cclxuLnVrLW5hdmJhci1kcm9wZG93bi1uYXYgLnVrLW5hdi1zdWIgbGkudWstYWN0aXZlID4gYSB7IGNvbG9yOiAkbmF2YmFyLWRyb3Bkb3duLW5hdi1zdWJsaXN0LWl0ZW0tYWN0aXZlLWNvbG9yOyB9XHJcblxyXG5cclxuLyogRHJvcGJhclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1uYXZiYXItZHJvcGJhciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkbmF2YmFyLWRyb3BiYXItYmFja2dyb3VuZDtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXZiYXItZHJvcGJhcikpIHtAaW5jbHVkZSBob29rLW5hdmJhci1kcm9wYmFyKCk7fVxyXG59XHJcblxyXG4vKlxyXG4gKiBTbGlkZSBtb2RpZmllclxyXG4gKi9cclxuXHJcbi51ay1uYXZiYXItZHJvcGJhci1zbGlkZSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB6LWluZGV4OiAkbmF2YmFyLWRyb3BiYXItei1pbmRleDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1uYXZiYXItZHJvcGJhci1zbGlkZSkpIHtAaW5jbHVkZSBob29rLW5hdmJhci1kcm9wYmFyLXNsaWRlKCk7fVxyXG59XHJcblxyXG5cclxuLy8gSG9va3NcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stbmF2YmFyLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1uYXZiYXItbWlzYygpO31cclxuXHJcbi8vIEBtaXhpbiBob29rLW5hdmJhcigpe31cclxuLy8gQG1peGluIGhvb2stbmF2YmFyLWNvbnRhaW5lcigpe31cclxuLy8gQG1peGluIGhvb2stbmF2YmFyLW5hdi1pdGVtKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1uYXZiYXItbmF2LWl0ZW0taG92ZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLW5hdmJhci1uYXYtaXRlbS1vbmNsaWNrKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1uYXZiYXItbmF2LWl0ZW0tYWN0aXZlKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1uYXZiYXItaXRlbSgpe31cclxuLy8gQG1peGluIGhvb2stbmF2YmFyLXRvZ2dsZSgpe31cclxuLy8gQG1peGluIGhvb2stbmF2YmFyLXRvZ2dsZS1ob3Zlcigpe31cclxuLy8gQG1peGluIGhvb2stbmF2YmFyLXRvZ2dsZS1pY29uKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1uYXZiYXItdG9nZ2xlLWljb24taG92ZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLW5hdmJhci1zdWJ0aXRsZSgpe31cclxuLy8gQG1peGluIGhvb2stbmF2YmFyLXByaW1hcnkoKXt9XHJcbi8vIEBtaXhpbiBob29rLW5hdmJhci10cmFuc3BhcmVudCgpe31cclxuLy8gQG1peGluIGhvb2stbmF2YmFyLXN0aWNreSgpe31cclxuLy8gQG1peGluIGhvb2stbmF2YmFyLWRyb3Bkb3duKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1uYXZiYXItZHJvcGRvd24tZHJvcGJhcigpe31cclxuLy8gQG1peGluIGhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdigpe31cclxuLy8gQG1peGluIGhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdi1pdGVtKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0taG92ZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLW5hdmJhci1kcm9wZG93bi1uYXYtaXRlbS1hY3RpdmUoKXt9XHJcbi8vIEBtaXhpbiBob29rLW5hdmJhci1kcm9wZG93bi1uYXYtaGVhZGVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LWRpdmlkZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLW5hdmJhci1kcm9wYmFyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1uYXZiYXItZHJvcGJhci1zbGlkZSgpe31cclxuLy8gQG1peGluIGhvb2stbmF2YmFyLW1pc2MoKXt9XHJcblxyXG5cclxuLy8gSW52ZXJzZVxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiRpbnZlcnNlLW5hdmJhci1uYXYtaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtbmF2YmFyLW5hdi1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0tb25jbGljay1jb2xvcjogICAgICAgICAkaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLW5hdmJhci1uYXYtaXRlbS1hY3RpdmUtY29sb3I6ICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtbmF2YmFyLWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1uYXZiYXItdG9nZ2xlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLW5hdmJhci10b2dnbGUtaG92ZXItY29sb3I6ICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuXHJcblxyXG5cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0oKXt9XHJcbi8vIEBtaXhpbiBob29rLWludmVyc2UtbmF2YmFyLW5hdi1pdGVtLWhvdmVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLW5hdmJhci1uYXYtaXRlbS1vbmNsaWNrKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLW5hdmJhci1uYXYtaXRlbS1hY3RpdmUoKXt9XHJcbi8vIEBtaXhpbiBob29rLWludmVyc2UtbmF2YmFyLWl0ZW0oKXt9XHJcbi8vIEBtaXhpbiBob29rLWludmVyc2UtbmF2YmFyLXRvZ2dsZSgpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1uYXZiYXItdG9nZ2xlLWhvdmVyKCl7fVxyXG4iLCIvLyBOYW1lOiAgICAgICAgICAgIFNsaWRlbmF2XHJcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBwcmV2aW91cy9uZXh0IGljb24gbmF2aWdhdGlvbnNcclxuLy9cclxuLy8gQ29tcG9uZW50OiAgICAgICBgdWstc2xpZGVuYXZgXHJcbi8vXHJcbi8vIFN1Yi1vYmplY3RzOiAgICAgYHVrLXNsaWRlbmF2LWNvbnRhaW5lcmBcclxuLy9cclxuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstc2xpZGVuYXYtcHJldmlvdXNgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLXNsaWRlbmF2LW5leHRgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLXNsaWRlbmF2LWxhcmdlYFxyXG4vL1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcblxyXG4vLyBWYXJpYWJsZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4kc2xpZGVuYXYtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgNXB4ICFkZWZhdWx0O1xyXG4kc2xpZGVuYXYtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcclxuXHJcbiRzbGlkZW5hdi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZ2JhKCRnbG9iYWwtY29sb3IsIDAuNSkgIWRlZmF1bHQ7XHJcbiRzbGlkZW5hdi1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICByZ2JhKCRnbG9iYWwtY29sb3IsIDAuOSkgIWRlZmF1bHQ7XHJcbiRzbGlkZW5hdi1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICByZ2JhKCRnbG9iYWwtY29sb3IsIDAuNSkgIWRlZmF1bHQ7XHJcblxyXG4kc2xpZGVuYXYtbGFyZ2UtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcclxuJHNsaWRlbmF2LWxhcmdlLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICRzbGlkZW5hdi1sYXJnZS1wYWRkaW5nLXZlcnRpY2FsICFkZWZhdWx0O1xyXG5cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IFNsaWRlbmF2XHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogQWRvcHRzIGB1ay1pY29uYFxyXG4gKi9cclxuXHJcbi51ay1zbGlkZW5hdiB7XHJcbiAgICBwYWRkaW5nOiAkc2xpZGVuYXYtcGFkZGluZy12ZXJ0aWNhbCAkc2xpZGVuYXYtcGFkZGluZy1ob3Jpem9udGFsO1xyXG4gICAgY29sb3I6ICRzbGlkZW5hdi1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1zbGlkZW5hdikpIHtAaW5jbHVkZSBob29rLXNsaWRlbmF2KCk7fVxyXG59XHJcblxyXG4vKiBIb3ZlciArIEZvY3VzICovXHJcbi51ay1zbGlkZW5hdjpob3ZlcixcclxuLnVrLXNsaWRlbmF2OmZvY3VzIHtcclxuICAgIGNvbG9yOiAkc2xpZGVuYXYtaG92ZXItY29sb3I7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXNsaWRlbmF2LWhvdmVyKSkge0BpbmNsdWRlIGhvb2stc2xpZGVuYXYtaG92ZXIoKTt9XHJcbn1cclxuXHJcbi8qIE9uQ2xpY2sgKi9cclxuLnVrLXNsaWRlbmF2OmFjdGl2ZSB7XHJcbiAgICBjb2xvcjogJHNsaWRlbmF2LWFjdGl2ZS1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1zbGlkZW5hdi1hY3RpdmUpKSB7QGluY2x1ZGUgaG9vay1zbGlkZW5hdi1hY3RpdmUoKTt9XHJcbn1cclxuXHJcblxyXG4vKiBJY29uIG1vZGlmaWVyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogUHJldmlvdXNcclxuICovXHJcblxyXG4udWstc2xpZGVuYXYtcHJldmlvdXMge1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXNsaWRlbmF2LXByZXZpb3VzKSkge0BpbmNsdWRlIGhvb2stc2xpZGVuYXYtcHJldmlvdXMoKTt9XHJcbn1cclxuXHJcbi8qXHJcbiAqIE5leHRcclxuICovXHJcblxyXG4udWstc2xpZGVuYXYtbmV4dCB7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stc2xpZGVuYXYtbmV4dCkpIHtAaW5jbHVkZSBob29rLXNsaWRlbmF2LW5leHQoKTt9XHJcbn1cclxuXHJcblxyXG4vKiBTaXplIG1vZGlmaWVyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVrLXNsaWRlbmF2LWxhcmdlIHtcclxuICAgIHBhZGRpbmc6ICRzbGlkZW5hdi1sYXJnZS1wYWRkaW5nLXZlcnRpY2FsICRzbGlkZW5hdi1sYXJnZS1wYWRkaW5nLWhvcml6b250YWw7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stc2xpZGVuYXYtbGFyZ2UpKSB7QGluY2x1ZGUgaG9vay1zbGlkZW5hdi1sYXJnZSgpO31cclxufVxyXG5cclxuXHJcbi8qIENvbnRhaW5lclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1zbGlkZW5hdi1jb250YWluZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1zbGlkZW5hdi1jb250YWluZXIpKSB7QGluY2x1ZGUgaG9vay1zbGlkZW5hdi1jb250YWluZXIoKTt9XHJcbn1cclxuXHJcblxyXG4vLyBIb29rc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbkBpZihtaXhpbi1leGlzdHMoaG9vay1zbGlkZW5hdi1taXNjKSkge0BpbmNsdWRlIGhvb2stc2xpZGVuYXYtbWlzYygpO31cclxuXHJcbi8vIEBtaXhpbiBob29rLXNsaWRlbmF2KCl7fVxyXG4vLyBAbWl4aW4gaG9vay1zbGlkZW5hdi1ob3Zlcigpe31cclxuLy8gQG1peGluIGhvb2stc2xpZGVuYXYtYWN0aXZlKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1zbGlkZW5hdi1wcmV2aW91cygpe31cclxuLy8gQG1peGluIGhvb2stc2xpZGVuYXYtbmV4dCgpe31cclxuLy8gQG1peGluIGhvb2stc2xpZGVuYXYtbGFyZ2UoKXt9XHJcbi8vIEBtaXhpbiBob29rLXNsaWRlbmF2LWNvbnRhaW5lcigpe31cclxuLy8gQG1peGluIGhvb2stc2xpZGVuYXYtbWlzYygpe31cclxuXHJcblxyXG4vLyBJbnZlcnNlXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuJGludmVyc2Utc2xpZGVuYXYtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgcmdiYSgkaW52ZXJzZS1nbG9iYWwtY29sb3IsIDAuNykgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLXNsaWRlbmF2LWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgIHJnYmEoJGludmVyc2UtZ2xvYmFsLWNvbG9yLCAwLjk1KSAhZGVmYXVsdDtcclxuJGludmVyc2Utc2xpZGVuYXYtYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAgcmdiYSgkaW52ZXJzZS1nbG9iYWwtY29sb3IsIDAuNykgIWRlZmF1bHQ7XHJcblxyXG5cclxuXHJcbi8vIEBtaXhpbiBob29rLWludmVyc2Utc2xpZGVuYXYoKXt9XHJcbi8vIEBtaXhpbiBob29rLWludmVyc2Utc2xpZGVuYXYtaG92ZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLWludmVyc2Utc2xpZGVuYXYtYWN0aXZlKCl7fVxyXG4iLCIvLyBOYW1lOiAgICAgICAgICAgIERvdG5hdlxyXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgZG90IG5hdmlnYXRpb25zXHJcbi8vXHJcbi8vIENvbXBvbmVudDogICAgICAgYHVrLWRvdG5hdmBcclxuLy9cclxuLy8gTW9kaWZpZXI6ICAgICAgICBgdWstZG90bmF2LXZlcnRpY2FsYFxyXG4vL1xyXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1hY3RpdmVgXHJcbi8vXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuXHJcbi8vIFZhcmlhYmxlc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiRkb3RuYXYtbWFyZ2luLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgICAgICAxMnB4ICFkZWZhdWx0O1xyXG4kZG90bmF2LW1hcmdpbi12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgICAgJGRvdG5hdi1tYXJnaW4taG9yaXpvbnRhbCAhZGVmYXVsdDtcclxuXHJcbiRkb3RuYXYtaXRlbS13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMHB4ICFkZWZhdWx0O1xyXG4kZG90bmF2LWl0ZW0taGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRvdG5hdi1pdGVtLXdpZHRoICFkZWZhdWx0O1xyXG4kZG90bmF2LWl0ZW0tYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgICAgICAgNTAlICFkZWZhdWx0O1xyXG5cclxuJGRvdG5hdi1pdGVtLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgIHJnYmEoJGdsb2JhbC1jb2xvciwgMC4yKSAhZGVmYXVsdDtcclxuJGRvdG5hdi1pdGVtLWhvdmVyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgIHJnYmEoJGdsb2JhbC1jb2xvciwgMC42KSAhZGVmYXVsdDtcclxuJGRvdG5hdi1pdGVtLW9uY2xpY2stYmFja2dyb3VuZDogICAgICAgICAgICAgICAgIHJnYmEoJGdsb2JhbC1jb2xvciwgMC4yKSAhZGVmYXVsdDtcclxuJGRvdG5hdi1pdGVtLWFjdGl2ZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgIHJnYmEoJGdsb2JhbC1jb2xvciwgMC42KSAhZGVmYXVsdDtcclxuXHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBEb3RuYXZcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBBbGxvdyBpdGVtcyB0byB3cmFwIGludG8gdGhlIG5leHQgbGluZVxyXG4gKiAyLiBSZXNldCBsaXN0XHJcbiAqIDMuIEd1dHRlclxyXG4gKi9cclxuXHJcbi51ay1kb3RuYXYge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIC8qIDEgKi9cclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIC8qIDIgKi9cclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgLyogMyAqL1xyXG4gICAgbWFyZ2luLWxlZnQ6ICgtJGRvdG5hdi1tYXJnaW4taG9yaXpvbnRhbCk7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZG90bmF2KSkge0BpbmNsdWRlIGhvb2stZG90bmF2KCk7fVxyXG59XHJcblxyXG4vKlxyXG4gKiAxLiBTcGFjZSBpcyBhbGxvY2F0ZWQgc29sZWx5IGJhc2VkIG9uIGNvbnRlbnQgZGltZW5zaW9uczogMCAwIGF1dG9cclxuICogMi4gR3V0dGVyXHJcbiAqL1xyXG5cclxuLnVrLWRvdG5hdiA+ICoge1xyXG4gICAgLyogMSAqL1xyXG4gICAgZmxleDogbm9uZTtcclxuICAgIC8qIDIgKi9cclxuICAgIHBhZGRpbmctbGVmdDogJGRvdG5hdi1tYXJnaW4taG9yaXpvbnRhbDtcclxufVxyXG5cclxuXHJcbi8qIEl0ZW1zXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogSXRlbXNcclxuICogMS4gSGlkZSB0ZXh0IGlmIHByZXNlbnRcclxuICovXHJcblxyXG4udWstZG90bmF2ID4gKiA+ICoge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgd2lkdGg6ICRkb3RuYXYtaXRlbS13aWR0aDtcclxuICAgIGhlaWdodDogJGRvdG5hdi1pdGVtLWhlaWdodDtcclxuICAgIGJvcmRlci1yYWRpdXM6ICRkb3RuYXYtaXRlbS1ib3JkZXItcmFkaXVzO1xyXG4gICAgYmFja2dyb3VuZDogJGRvdG5hdi1pdGVtLWJhY2tncm91bmQ7XHJcbiAgICAvKiAxICovXHJcbiAgICB0ZXh0LWluZGVudDogMTAwJTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWRvdG5hdi1pdGVtKSkge0BpbmNsdWRlIGhvb2stZG90bmF2LWl0ZW0oKTt9XHJcbn1cclxuXHJcbi8qIEhvdmVyICsgRm9jdXMgKi9cclxuLnVrLWRvdG5hdiA+ICogPiA6aG92ZXIsXHJcbi51ay1kb3RuYXYgPiAqID4gOmZvY3VzIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRkb3RuYXYtaXRlbS1ob3Zlci1iYWNrZ3JvdW5kO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1kb3RuYXYtaXRlbS1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWRvdG5hdi1pdGVtLWhvdmVyKCk7fVxyXG59XHJcblxyXG4vKiBPbkNsaWNrICovXHJcbi51ay1kb3RuYXYgPiAqID4gOmFjdGl2ZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZG90bmF2LWl0ZW0tb25jbGljay1iYWNrZ3JvdW5kO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWRvdG5hdi1pdGVtLW9uY2xpY2spKSB7QGluY2x1ZGUgaG9vay1kb3RuYXYtaXRlbS1vbmNsaWNrKCk7fVxyXG59XHJcblxyXG4vKiBBY3RpdmUgKi9cclxuLnVrLWRvdG5hdiA+IC51ay1hY3RpdmUgPiAqIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRkb3RuYXYtaXRlbS1hY3RpdmUtYmFja2dyb3VuZDtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1kb3RuYXYtaXRlbS1hY3RpdmUpKSB7QGluY2x1ZGUgaG9vay1kb3RuYXYtaXRlbS1hY3RpdmUoKTt9XHJcbn1cclxuXHJcblxyXG4vKiBNb2RpZmllcjogJ3VrLWRvdG5hdi12ZXJ0aWNhbCdcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBDaGFuZ2UgZGlyZWN0aW9uXHJcbiAqIDIuIEd1dHRlclxyXG4gKi9cclxuXHJcbi51ay1kb3RuYXYtdmVydGljYWwge1xyXG4gICAgLyogMSAqL1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIC8qIDIgKi9cclxuICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgbWFyZ2luLXRvcDogKC0kZG90bmF2LW1hcmdpbi12ZXJ0aWNhbCk7XHJcbn1cclxuXHJcbi8qIDIgKi9cclxuLnVrLWRvdG5hdi12ZXJ0aWNhbCA+ICoge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgcGFkZGluZy10b3A6ICRkb3RuYXYtbWFyZ2luLXZlcnRpY2FsO1xyXG59XHJcblxyXG5cclxuLy8gSG9va3NcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stZG90bmF2LW1pc2MpKSB7QGluY2x1ZGUgaG9vay1kb3RuYXYtbWlzYygpO31cclxuXHJcbi8vIEBtaXhpbiBob29rLWRvdG5hdigpe31cclxuLy8gQG1peGluIGhvb2stZG90bmF2LWl0ZW0oKXt9XHJcbi8vIEBtaXhpbiBob29rLWRvdG5hdi1pdGVtLWhvdmVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1kb3RuYXYtaXRlbS1vbmNsaWNrKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1kb3RuYXYtaXRlbS1hY3RpdmUoKXt9XHJcbi8vIEBtaXhpbiBob29rLWRvdG5hdi1taXNjKCl7fVxyXG5cclxuXHJcbi8vIEludmVyc2VcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4kaW52ZXJzZS1kb3RuYXYtaXRlbS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICByZ2JhKCRpbnZlcnNlLWdsb2JhbC1jb2xvciwgMC41KSAhZGVmYXVsdDtcclxuJGludmVyc2UtZG90bmF2LWl0ZW0taG92ZXItYmFja2dyb3VuZDogICAgICAgICAgcmdiYSgkaW52ZXJzZS1nbG9iYWwtY29sb3IsIDAuOSkgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWRvdG5hdi1pdGVtLW9uY2xpY2stYmFja2dyb3VuZDogICAgICAgIHJnYmEoJGludmVyc2UtZ2xvYmFsLWNvbG9yLCAwLjUpICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1kb3RuYXYtaXRlbS1hY3RpdmUtYmFja2dyb3VuZDogICAgICAgICByZ2JhKCRpbnZlcnNlLWdsb2JhbC1jb2xvciwgMC45KSAhZGVmYXVsdDtcclxuXHJcblxyXG5cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1kb3RuYXYtaXRlbSgpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1kb3RuYXYtaXRlbS1ob3Zlcigpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1kb3RuYXYtaXRlbS1vbmNsaWNrKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWRvdG5hdi1pdGVtLWFjdGl2ZSgpe30iLCIvLyBOYW1lOiAgICAgICAgICAgIEFjY29yZGlvblxyXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgYWNjb3JkaW9uc1xyXG4vL1xyXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1hY2NvcmRpb25gXHJcbi8vXHJcbi8vIFN1Yi1vYmplY3RzOiAgICAgYHVrLWFjY29yZGlvbi10aXRsZWBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstYWNjb3JkaW9uLWNvbnRlbnRgXHJcbi8vXHJcbi8vIFN0YXRlczogICAgICAgICAgYHVrLW9wZW5gXHJcbi8vXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuXHJcbi8vIFZhcmlhYmxlc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiRhY2NvcmRpb24taXRlbS1tYXJnaW4tdG9wOiAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xyXG5cclxuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tZWRpdW0tZm9udC1zaXplICFkZWZhdWx0O1xyXG4kYWNjb3JkaW9uLXRpdGxlLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAxLjQgIWRlZmF1bHQ7XHJcbiRhY2NvcmRpb24tdGl0bGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZW1waGFzaXMtY29sb3IgIWRlZmF1bHQ7XHJcbiRhY2NvcmRpb24tdGl0bGUtaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4kYWNjb3JkaW9uLWNvbnRlbnQtbWFyZ2luLXRvcDogICAgICAgICAgICAgICAgICAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcclxuXHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBBY2NvcmRpb25cclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstYWNjb3JkaW9uIHtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWFjY29yZGlvbikpIHtAaW5jbHVkZSBob29rLWFjY29yZGlvbigpO31cclxufVxyXG5cclxuXHJcbi8qIEl0ZW1cclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstYWNjb3JkaW9uID4gOm50aC1jaGlsZChuKzIpIHtcclxuICAgIG1hcmdpbi10b3A6ICRhY2NvcmRpb24taXRlbS1tYXJnaW4tdG9wO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWFjY29yZGlvbi1pdGVtKSkge0BpbmNsdWRlIGhvb2stYWNjb3JkaW9uLWl0ZW0oKTt9XHJcbn1cclxuXHJcblxyXG4vKiBUaXRsZVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1hY2NvcmRpb24tdGl0bGUge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBmb250LXNpemU6ICRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplO1xyXG4gICAgbGluZS1oZWlnaHQ6ICRhY2NvcmRpb24tdGl0bGUtbGluZS1oZWlnaHQ7XHJcbiAgICBjb2xvcjogJGFjY29yZGlvbi10aXRsZS1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1hY2NvcmRpb24tdGl0bGUpKSB7QGluY2x1ZGUgaG9vay1hY2NvcmRpb24tdGl0bGUoKTt9XHJcbn1cclxuXHJcbi8qIEhvdmVyICsgRm9jdXMgKi9cclxuLnVrLWFjY29yZGlvbi10aXRsZTpob3ZlcixcclxuLnVrLWFjY29yZGlvbi10aXRsZTpmb2N1cyB7XHJcbiAgICBjb2xvcjogJGFjY29yZGlvbi10aXRsZS1ob3Zlci1jb2xvcjtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stYWNjb3JkaW9uLXRpdGxlLWhvdmVyKSkge0BpbmNsdWRlIGhvb2stYWNjb3JkaW9uLXRpdGxlLWhvdmVyKCk7fVxyXG59XHJcblxyXG5cclxuLyogQ29udGVudFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1hY2NvcmRpb24tY29udGVudCB7XHJcbiAgICBtYXJnaW4tdG9wOiAkYWNjb3JkaW9uLWNvbnRlbnQtbWFyZ2luLXRvcDtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1hY2NvcmRpb24tY29udGVudCkpIHtAaW5jbHVkZSBob29rLWFjY29yZGlvbi1jb250ZW50KCk7fVxyXG59XHJcblxyXG4vKlxyXG4gKiBNaWNybyBjbGVhcmZpeFxyXG4gKi9cclxuXHJcbi51ay1hY2NvcmRpb24tY29udGVudDo6YmVmb3JlLFxyXG4udWstYWNjb3JkaW9uLWNvbnRlbnQ6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBkaXNwbGF5OiB0YWJsZTtcclxufVxyXG5cclxuLnVrLWFjY29yZGlvbi1jb250ZW50OjphZnRlciB7IGNsZWFyOiBib3RoOyB9XHJcblxyXG4vKlxyXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcclxuICovXHJcblxyXG4gLnVrLWFjY29yZGlvbi1jb250ZW50ID4gOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XHJcblxyXG5cclxuLy8gSG9va3NcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stYWNjb3JkaW9uLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1hY2NvcmRpb24tbWlzYygpO31cclxuXHJcbi8vIEBtaXhpbiBob29rLWFjY29yZGlvbigpe31cclxuLy8gQG1peGluIGhvb2stYWNjb3JkaW9uLWl0ZW0oKXt9XHJcbi8vIEBtaXhpbiBob29rLWFjY29yZGlvbi10aXRsZSgpe31cclxuLy8gQG1peGluIGhvb2stYWNjb3JkaW9uLXRpdGxlLWhvdmVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1hY2NvcmRpb24tY29udGVudCgpe31cclxuLy8gQG1peGluIGhvb2stYWNjb3JkaW9uLW1pc2MoKXt9XHJcblxyXG5cclxuLy8gSW52ZXJzZVxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiRpbnZlcnNlLWFjY29yZGlvbi10aXRsZS1jb2xvcjogICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtYWNjb3JkaW9uLXRpdGxlLWhvdmVyLWNvbG9yOiAgICAgICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG5cclxuXHJcblxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWFjY29yZGlvbi1pdGVtKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWFjY29yZGlvbi10aXRsZSgpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1hY2NvcmRpb24tdGl0bGUtaG92ZXIoKXt9IiwiLy8gTmFtZTogICAgICAgICAgICBEcm9wXHJcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIHBvc2l0aW9uIGFueSBlbGVtZW50IG5leHQgdG8gYW55IG90aGVyIGVsZW1lbnQuXHJcbi8vXHJcbi8vIENvbXBvbmVudDogICAgICAgYHVrLWRyb3BgXHJcbi8vXHJcbi8vIE1vZGlmaWVyczogICAgICAgYHVrLWRyb3AtdG9wLSpgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWRyb3AtYm90dG9tLSpgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWRyb3AtbGVmdC0qYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1kcm9wLXJpZ2h0LSpgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWRyb3Atc3RhY2tgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWRyb3AtZ3JpZGBcclxuLy9cclxuLy8gU3RhdGVzOiAgICAgICAgICBgdWstb3BlbmBcclxuLy9cclxuLy8gVXNlczogICAgICAgICAgICBBbmltYXRpb25cclxuLy9cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5cclxuLy8gVmFyaWFibGVzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuJGRyb3Atei1pbmRleDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC16LWluZGV4ICsgMjAgIWRlZmF1bHQ7XHJcbiRkcm9wLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwMHB4ICFkZWZhdWx0O1xyXG4kZHJvcC1tYXJnaW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcclxuXHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBEcm9wXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogMS4gSGlkZSBieSBkZWZhdWx0XHJcbiAqIDIuIFNldCBwb3NpdGlvblxyXG4gKiAzLiBTZXQgYSBkZWZhdWx0IHdpZHRoXHJcbiAqL1xyXG5cclxuLnVrLWRyb3Age1xyXG4gICAgLyogMSAqL1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIC8qIDIgKi9cclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHotaW5kZXg6ICRkcm9wLXotaW5kZXg7XHJcbiAgICAvKiAzICovXHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgd2lkdGg6ICRkcm9wLXdpZHRoO1xyXG59XHJcblxyXG4vKiBTaG93ICovXHJcbi51ay1kcm9wLnVrLW9wZW4geyBkaXNwbGF5OiBibG9jazsgfVxyXG5cclxuXHJcbi8qIERpcmVjdGlvbiAvIEFsaWdubWVudCBtb2RpZmllcnNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKiBEaXJlY3Rpb24gKi9cclxuW2NsYXNzKj0ndWstZHJvcC10b3AnXSB7IG1hcmdpbi10b3A6ICgtJGRyb3AtbWFyZ2luKTsgfVxyXG5bY2xhc3MqPSd1ay1kcm9wLWJvdHRvbSddIHsgbWFyZ2luLXRvcDogJGRyb3AtbWFyZ2luOyB9XHJcbltjbGFzcyo9J3VrLWRyb3AtbGVmdCddIHsgbWFyZ2luLWxlZnQ6ICgtJGRyb3AtbWFyZ2luKTsgfVxyXG5bY2xhc3MqPSd1ay1kcm9wLXJpZ2h0J10geyBtYXJnaW4tbGVmdDogJGRyb3AtbWFyZ2luOyB9XHJcblxyXG5cclxuLyogR3JpZCBtb2RpZmllcnNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstZHJvcC1zdGFjayAudWstZHJvcC1ncmlkID4gKiB7IHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cclxuXHJcblxyXG4vLyBIb29rc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbkBpZihtaXhpbi1leGlzdHMoaG9vay1kcm9wLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1kcm9wLW1pc2MoKTt9XHJcblxyXG4vLyBAbWl4aW4gaG9vay1kcm9wLW1pc2MoKXt9XHJcbiIsIi8vIE5hbWU6ICAgICAgICAgICAgRHJvcGRvd25cclxuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gY3JlYXRlIGRyb3Bkb3duIG1lbnVzXHJcbi8vXHJcbi8vIENvbXBvbmVudDogICAgICAgYHVrLWRyb3Bkb3duYFxyXG4vL1xyXG4vLyBBZG9wdGVkOiAgICAgICAgIGB1ay1kcm9wZG93bi1uYXZgXHJcbi8vXHJcbi8vIE1vZGlmaWVyczogICAgICAgYHVrLWRyb3Bkb3duLXRvcC0qYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1kcm9wZG93bi1ib3R0b20tKmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstZHJvcGRvd24tbGVmdC0qYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1kcm9wZG93bi1yaWdodC0qYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1kcm9wZG93bi1zdGFja2BcclxuLy8gICAgICAgICAgICAgICAgICBgdWstZHJvcGRvd24tZ3JpZGBcclxuLy9cclxuLy8gU3RhdGVzOiAgICAgICAgICBgdWstYWN0aXZlYFxyXG4vL1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcblxyXG4vLyBWYXJpYWJsZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4kZHJvcGRvd24tei1pbmRleDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC16LWluZGV4ICsgMjAgIWRlZmF1bHQ7XHJcbiRkcm9wZG93bi1taW4td2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMDBweCAhZGVmYXVsdDtcclxuJGRyb3Bkb3duLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1cHggIWRlZmF1bHQ7XHJcbiRkcm9wZG93bi1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiRkcm9wZG93bi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kZHJvcGRvd24tbWFyZ2luOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zbWFsbC1tYXJnaW4gIWRlZmF1bHQ7XHJcblxyXG4kZHJvcGRvd24tbmF2LWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGRyb3Bkb3duLW5hdi1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcbiRkcm9wZG93bi1uYXYtaGVhZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kZHJvcGRvd24tbmF2LWRpdmlkZXItYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XHJcbiRkcm9wZG93bi1uYXYtZGl2aWRlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcclxuJGRyb3Bkb3duLW5hdi1zdWJsaXN0LWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRkcm9wZG93bi1uYXYtc3VibGlzdC1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICAkZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG5cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IERyb3Bkb3duXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogMS4gSGlkZSBieSBkZWZhdWx0XHJcbiAqIDIuIFNldCBwb3NpdGlvblxyXG4gKiAzLiBTZXQgYSBkZWZhdWx0IHdpZHRoXHJcbiAqIDQuIFN0eWxlXHJcbiAqL1xyXG5cclxuLnVrLWRyb3Bkb3duIHtcclxuICAgIC8qIDEgKi9cclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAvKiAyICovXHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB6LWluZGV4OiAkZHJvcGRvd24tei1pbmRleDtcclxuICAgIC8qIDMgKi9cclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBtaW4td2lkdGg6ICRkcm9wZG93bi1taW4td2lkdGg7XHJcbiAgICAvKiA0ICovXHJcbiAgICBwYWRkaW5nOiAkZHJvcGRvd24tcGFkZGluZztcclxuICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bi1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRkcm9wZG93bi1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1kcm9wZG93bikpIHtAaW5jbHVkZSBob29rLWRyb3Bkb3duKCk7fVxyXG59XHJcblxyXG4vKiBTaG93ICovXHJcbi51ay1kcm9wZG93bi51ay1vcGVuIHsgZGlzcGxheTogYmxvY2s7IH1cclxuXHJcblxyXG4vKiBOYXZcclxuICogQWRvcHRzIGB1ay1uYXZgXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVrLWRyb3Bkb3duLW5hdiB7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWRyb3Bkb3duLW5hdikpIHtAaW5jbHVkZSBob29rLWRyb3Bkb3duLW5hdigpO31cclxufVxyXG5cclxuLypcclxuICogSXRlbXNcclxuICovXHJcblxyXG4udWstZHJvcGRvd24tbmF2ID4gbGkgPiBhIHtcclxuICAgIGNvbG9yOiAkZHJvcGRvd24tbmF2LWl0ZW0tY29sb3I7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZHJvcGRvd24tbmF2LWl0ZW0pKSB7QGluY2x1ZGUgaG9vay1kcm9wZG93bi1uYXYtaXRlbSgpO31cclxufVxyXG5cclxuLyogSG92ZXIgKyBGb2N1cyArIEFjdGl2ZSAqL1xyXG4udWstZHJvcGRvd24tbmF2ID4gbGkgPiBhOmhvdmVyLFxyXG4udWstZHJvcGRvd24tbmF2ID4gbGkgPiBhOmZvY3VzLFxyXG4udWstZHJvcGRvd24tbmF2ID4gbGkudWstYWN0aXZlID4gYSB7XHJcbiAgICBjb2xvcjogJGRyb3Bkb3duLW5hdi1pdGVtLWhvdmVyLWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWRyb3Bkb3duLW5hdi1pdGVtLWhvdmVyKSkge0BpbmNsdWRlIGhvb2stZHJvcGRvd24tbmF2LWl0ZW0taG92ZXIoKTt9XHJcbn1cclxuXHJcbi8qXHJcbiAqIEhlYWRlclxyXG4gKi9cclxuXHJcbi51ay1kcm9wZG93bi1uYXYgLnVrLW5hdi1oZWFkZXIge1xyXG4gICAgY29sb3I6ICRkcm9wZG93bi1uYXYtaGVhZGVyLWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWRyb3Bkb3duLW5hdi1oZWFkZXIpKSB7QGluY2x1ZGUgaG9vay1kcm9wZG93bi1uYXYtaGVhZGVyKCk7fVxyXG59XHJcblxyXG4vKlxyXG4gKiBEaXZpZGVyXHJcbiAqL1xyXG5cclxuLnVrLWRyb3Bkb3duLW5hdiAudWstbmF2LWRpdmlkZXIge1xyXG4gICAgYm9yZGVyLXRvcDogJGRyb3Bkb3duLW5hdi1kaXZpZGVyLWJvcmRlci13aWR0aCBzb2xpZCAkZHJvcGRvd24tbmF2LWRpdmlkZXItYm9yZGVyO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWRyb3Bkb3duLW5hdi1kaXZpZGVyKSkge0BpbmNsdWRlIGhvb2stZHJvcGRvd24tbmF2LWRpdmlkZXIoKTt9XHJcbn1cclxuXHJcbi8qXHJcbiAqIFN1Ymxpc3RzXHJcbiAqL1xyXG5cclxuLnVrLWRyb3Bkb3duLW5hdiAudWstbmF2LXN1YiBhIHsgY29sb3I6ICRkcm9wZG93bi1uYXYtc3VibGlzdC1pdGVtLWNvbG9yOyB9XHJcblxyXG4udWstZHJvcGRvd24tbmF2IC51ay1uYXYtc3ViIGE6aG92ZXIsXHJcbi51ay1kcm9wZG93bi1uYXYgLnVrLW5hdi1zdWIgYTpmb2N1cyxcclxuLnVrLWRyb3Bkb3duLW5hdiAudWstbmF2LXN1YiBsaS51ay1hY3RpdmUgPiBhIHsgY29sb3I6ICRkcm9wZG93bi1uYXYtc3VibGlzdC1pdGVtLWhvdmVyLWNvbG9yOyB9XHJcblxyXG5cclxuLyogRGlyZWN0aW9uIC8gQWxpZ25tZW50IG1vZGlmaWVyc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qIERpcmVjdGlvbiAqL1xyXG5bY2xhc3MqPSd1ay1kcm9wZG93bi10b3AnXSB7IG1hcmdpbi10b3A6ICgtJGRyb3Bkb3duLW1hcmdpbik7IH1cclxuW2NsYXNzKj0ndWstZHJvcGRvd24tYm90dG9tJ10geyBtYXJnaW4tdG9wOiAkZHJvcGRvd24tbWFyZ2luOyB9XHJcbltjbGFzcyo9J3VrLWRyb3Bkb3duLWxlZnQnXSB7IG1hcmdpbi1sZWZ0OiAoLSRkcm9wZG93bi1tYXJnaW4pOyB9XHJcbltjbGFzcyo9J3VrLWRyb3Bkb3duLXJpZ2h0J10geyBtYXJnaW4tbGVmdDogJGRyb3Bkb3duLW1hcmdpbjsgfVxyXG5cclxuXHJcbi8qIEdyaWQgbW9kaWZpZXJzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVrLWRyb3Bkb3duLXN0YWNrIC51ay1kcm9wZG93bi1ncmlkID4gKiB7IHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cclxuXHJcblxyXG5cclxuLy8gSG9va3NcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stZHJvcGRvd24tbWlzYykpIHtAaW5jbHVkZSBob29rLWRyb3Bkb3duLW1pc2MoKTt9XHJcblxyXG4vLyBAbWl4aW4gaG9vay1kcm9wZG93bigpe31cclxuLy8gQG1peGluIGhvb2stZHJvcGRvd24tbmF2KCl7fVxyXG4vLyBAbWl4aW4gaG9vay1kcm9wZG93bi1uYXYtaXRlbSgpe31cclxuLy8gQG1peGluIGhvb2stZHJvcGRvd24tbmF2LWl0ZW0taG92ZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLWRyb3Bkb3duLW5hdi1oZWFkZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLWRyb3Bkb3duLW5hdi1kaXZpZGVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1kcm9wZG93bi1taXNjKCl7fVxyXG4iLCIvLyBOYW1lOiAgICAgICAgICAgIE1vZGFsXHJcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBtb2RhbCBkaWFsb2dzXHJcbi8vXHJcbi8vIENvbXBvbmVudDogICAgICAgYHVrLW1vZGFsYFxyXG4vL1xyXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay1tb2RhbC1wYWdlYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1tb2RhbC1kaWFsb2dgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLW1vZGFsLWhlYWRlcmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstbW9kYWwtYm9keWBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstbW9kYWwtZm9vdGVyYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1tb2RhbC10aXRsZWBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstbW9kYWwtY2xvc2VgXHJcbi8vXHJcbi8vIEFkb3B0ZWQ6ICAgICAgICAgYHVrLW1vZGFsLWNsb3NlLWRlZmF1bHRgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLW1vZGFsLWNsb3NlLW91dHNpZGVgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLW1vZGFsLWNsb3NlLWZ1bGxgXHJcbi8vXHJcbi8vIE1vZGlmaWVyczogICAgICAgYHVrLW1vZGFsLWNvbnRhaW5lcmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstbW9kYWwtZnVsbGBcclxuLy9cclxuLy8gU3RhdGVzOiAgICAgICAgICBgdWstb3BlbmBcclxuLy9cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5cclxuLy8gVmFyaWFibGVzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuJG1vZGFsLXotaW5kZXg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtei1pbmRleCArIDEwICFkZWZhdWx0O1xyXG4kbW9kYWwtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmdiYSgwLDAsMCwwLjYpICFkZWZhdWx0O1xyXG5cclxuJG1vZGFsLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAgICAgIDE1cHggIWRlZmF1bHQ7XHJcbiRtb2RhbC1wYWRkaW5nLWhvcml6b250YWwtczogICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcclxuJG1vZGFsLXBhZGRpbmctaG9yaXpvbnRhbC1tOiAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWVkaXVtLWd1dHRlciAhZGVmYXVsdDtcclxuJG1vZGFsLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAgICAgICRtb2RhbC1wYWRkaW5nLWhvcml6b250YWwgIWRlZmF1bHQ7XHJcbiRtb2RhbC1wYWRkaW5nLXZlcnRpY2FsLXM6ICAgICAgICAgICAgICAgICAgICAgICA1MHB4ICFkZWZhdWx0O1xyXG5cclxuJG1vZGFsLWRpYWxvZy13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYwMHB4ICFkZWZhdWx0O1xyXG4kbW9kYWwtZGlhbG9nLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG5cclxuJG1vZGFsLWNvbnRhaW5lci13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgIDEyMDBweCAhZGVmYXVsdDtcclxuXHJcbiRtb2RhbC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcclxuJG1vZGFsLWJvZHktcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xyXG5cclxuJG1vZGFsLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kbW9kYWwtaGVhZGVyLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgKCRtb2RhbC1oZWFkZXItcGFkZGluZy1ob3Jpem9udGFsIC8gMikgIWRlZmF1bHQ7XHJcbiRtb2RhbC1oZWFkZXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcblxyXG4kbW9kYWwtZm9vdGVyLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRtb2RhbC1mb290ZXItcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAoJG1vZGFsLWZvb3Rlci1wYWRkaW5nLWhvcml6b250YWwgLyAyKSAhZGVmYXVsdDtcclxuJG1vZGFsLWZvb3Rlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuXHJcbiRtb2RhbC10aXRsZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXhsYXJnZS1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiRtb2RhbC10aXRsZS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAxLjMgIWRlZmF1bHQ7XHJcblxyXG4kbW9kYWwtY2xvc2UtcG9zaXRpb246ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zbWFsbC1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRtb2RhbC1jbG9zZS1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAgICA1cHggIWRlZmF1bHQ7XHJcblxyXG4kbW9kYWwtY2xvc2Utb3V0c2lkZS1wb3NpdGlvbjogICAgICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcclxuJG1vZGFsLWNsb3NlLW91dHNpZGUtdHJhbnNsYXRlOiAgICAgICAgICAgICAgICAgIDEwMCUgIWRlZmF1bHQ7XHJcbiRtb2RhbC1jbG9zZS1vdXRzaWRlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICBsaWdodGVuKCRnbG9iYWwtaW52ZXJzZS1jb2xvciwgMjAlKSAhZGVmYXVsdDtcclxuJG1vZGFsLWNsb3NlLW91dHNpZGUtaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuXHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBNb2RhbFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIDEuIEhpZGUgYnkgZGVmYXVsdFxyXG4gKiAyLiBTZXQgcG9zaXRpb25cclxuICogMy4gQWxsb3cgc2Nyb2xsaW5nIGZvciB0aGUgbW9kYWwgZGlhbG9nXHJcbiAqIDQuIEhvcml6b250YWwgcGFkZGluZ1xyXG4gKiA1LiBNYXNrIHRoZSBiYWNrZ3JvdW5kIHBhZ2VcclxuICogNi4gRmFkZS1pbiB0cmFuc2l0aW9uXHJcbiAqL1xyXG5cclxuLnVrLW1vZGFsIHtcclxuICAgIC8qIDEgKi9cclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAvKiAyICovXHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3A6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB6LWluZGV4OiAkbW9kYWwtei1pbmRleDtcclxuICAgIC8qIDMgKi9cclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XHJcbiAgICAvKiA0ICovXHJcbiAgICBwYWRkaW5nOiAkbW9kYWwtcGFkZGluZy12ZXJ0aWNhbCAkbW9kYWwtcGFkZGluZy1ob3Jpem9udGFsO1xyXG4gICAgLyogNSAqL1xyXG4gICAgYmFja2dyb3VuZDogJG1vZGFsLWJhY2tncm91bmQ7XHJcbiAgICAvKiA2ICovXHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXI7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbW9kYWwpKSB7QGluY2x1ZGUgaG9vay1tb2RhbCgpO31cclxufVxyXG5cclxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXNtYWxsKSB7XHJcblxyXG4gICAgLnVrLW1vZGFsIHsgcGFkZGluZzogJG1vZGFsLXBhZGRpbmctdmVydGljYWwtcyAkbW9kYWwtcGFkZGluZy1ob3Jpem9udGFsLXM7IH1cclxuXHJcbn1cclxuXHJcbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XHJcblxyXG4gICAgLnVrLW1vZGFsIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRtb2RhbC1wYWRkaW5nLWhvcml6b250YWwtbTtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkbW9kYWwtcGFkZGluZy1ob3Jpem9udGFsLW07XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4vKlxyXG4gKiBPcGVuXHJcbiAqL1xyXG5cclxuLnVrLW1vZGFsLnVrLW9wZW4geyBvcGFjaXR5OiAxOyB9XHJcblxyXG5cclxuLyogUGFnZVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIFByZXZlbnQgc2Nyb2xsYmFyc1xyXG4gKi9cclxuXHJcbi51ay1tb2RhbC1wYWdlIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxyXG5cclxuXHJcbi8qIERpYWxvZ1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIDEuIENyZWF0ZSBwb3NpdGlvbiBjb250ZXh0IGZvciBzcGlubmVyIGFuZCBjbG9zZSBidXR0b25cclxuICogMi4gRGltZW5zaW9uc1xyXG4gKiAzLiBGaXggYG1heC13aWR0aDogMTAwJWAgbm90IHdvcmtpbmcgaW4gY29tYmluYXRpb24gd2l0aCBmbGV4IGFuZCByZXNwb25zaXZlIGltYWdlcyBpbiBJRTExXHJcbiAqICAgIGAhaW1wb3J0YW50YCBuZWVkZWQgdG8gb3ZlcndyaXRlIGB1ay13aWR0aC1hdXRvYC4gU2VlIGAjbW9kYWwtbWVkaWEtaW1hZ2VgIGluIHRlc3RzXHJcbiAqIDQuIFN0eWxlXHJcbiAqIDUuIFNsaWRlLWluIHRyYW5zaXRpb25cclxuICovXHJcblxyXG4udWstbW9kYWwtZGlhbG9nIHtcclxuICAgIC8qIDEgKi9cclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIC8qIDIgKi9cclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICAgIHdpZHRoOiAkbW9kYWwtZGlhbG9nLXdpZHRoO1xyXG4gICAgLyogMyAqL1xyXG4gICAgbWF4LXdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgLSAwLjAxcHgpJykgIWltcG9ydGFudDtcclxuICAgIC8qIDQgKi9cclxuICAgIGJhY2tncm91bmQ6ICRtb2RhbC1kaWFsb2ctYmFja2dyb3VuZDtcclxuICAgIC8qIDUgKi9cclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMHB4KTtcclxuICAgIHRyYW5zaXRpb246IDAuM3MgbGluZWFyO1xyXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgdHJhbnNmb3JtO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW1vZGFsLWRpYWxvZykpIHtAaW5jbHVkZSBob29rLW1vZGFsLWRpYWxvZygpO31cclxufVxyXG5cclxuLypcclxuICogT3BlblxyXG4gKi9cclxuXHJcbi51ay1vcGVuID4gLnVrLW1vZGFsLWRpYWxvZyB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG59XHJcblxyXG5cclxuLyogU2l6ZSBtb2RpZmllclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIENvbnRhaW5lciBzaXplXHJcbiAqIFRha2UgdGhlIHNhbWUgc2l6ZSBhcyB0aGUgQ29udGFpbmVyIGNvbXBvbmVudFxyXG4gKi9cclxuXHJcbi51ay1tb2RhbC1jb250YWluZXIgLnVrLW1vZGFsLWRpYWxvZyB7IHdpZHRoOiAkbW9kYWwtY29udGFpbmVyLXdpZHRoOyB9XHJcblxyXG4vKlxyXG4gKiBGdWxsIHNpemVcclxuICogMS4gUmVtb3ZlIHBhZGRpbmcgYW5kIGJhY2tncm91bmQgZnJvbSBtb2RhbFxyXG4gKiAyLiBSZXNldCBhbGwgZGVmYXVsdCBkZWNsYXJhdGlvbnMgZnJvbSBtb2RhbCBkaWFsb2dcclxuICovXHJcblxyXG4vKiAxICovXHJcbi51ay1tb2RhbC1mdWxsIHtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG59XHJcblxyXG4vKiAyICovXHJcbi51ay1tb2RhbC1mdWxsIC51ay1tb2RhbC1kaWFsb2cge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbW9kYWwtZnVsbCkpIHtAaW5jbHVkZSBob29rLW1vZGFsLWZ1bGwoKTt9XHJcbn1cclxuXHJcblxyXG4vKiBTZWN0aW9uc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1tb2RhbC1ib2R5IHtcclxuICAgIHBhZGRpbmc6ICRtb2RhbC1ib2R5LXBhZGRpbmctdmVydGljYWwgJG1vZGFsLWJvZHktcGFkZGluZy1ob3Jpem9udGFsO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW1vZGFsLWJvZHkpKSB7QGluY2x1ZGUgaG9vay1tb2RhbC1ib2R5KCk7fVxyXG59XHJcblxyXG4udWstbW9kYWwtaGVhZGVyIHtcclxuICAgIHBhZGRpbmc6ICRtb2RhbC1oZWFkZXItcGFkZGluZy12ZXJ0aWNhbCAkbW9kYWwtaGVhZGVyLXBhZGRpbmctaG9yaXpvbnRhbDtcclxuICAgIGJhY2tncm91bmQ6ICRtb2RhbC1oZWFkZXItYmFja2dyb3VuZDtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1tb2RhbC1oZWFkZXIpKSB7QGluY2x1ZGUgaG9vay1tb2RhbC1oZWFkZXIoKTt9XHJcbn1cclxuXHJcbi51ay1tb2RhbC1mb290ZXIge1xyXG4gICAgcGFkZGluZzogJG1vZGFsLWZvb3Rlci1wYWRkaW5nLXZlcnRpY2FsICRtb2RhbC1mb290ZXItcGFkZGluZy1ob3Jpem9udGFsO1xyXG4gICAgYmFja2dyb3VuZDogJG1vZGFsLWZvb3Rlci1iYWNrZ3JvdW5kO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW1vZGFsLWZvb3RlcikpIHtAaW5jbHVkZSBob29rLW1vZGFsLWZvb3RlcigpO31cclxufVxyXG5cclxuLypcclxuICogTWljcm8gY2xlYXJmaXhcclxuICovXHJcblxyXG4udWstbW9kYWwtYm9keTo6YmVmb3JlLFxyXG4udWstbW9kYWwtYm9keTo6YWZ0ZXIsXHJcbi51ay1tb2RhbC1oZWFkZXI6OmJlZm9yZSxcclxuLnVrLW1vZGFsLWhlYWRlcjo6YWZ0ZXIsXHJcbi51ay1tb2RhbC1mb290ZXI6OmJlZm9yZSxcclxuLnVrLW1vZGFsLWZvb3Rlcjo6YWZ0ZXIge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIGRpc3BsYXk6IHRhYmxlO1xyXG59XHJcblxyXG4udWstbW9kYWwtYm9keTo6YWZ0ZXIsXHJcbi51ay1tb2RhbC1oZWFkZXI6OmFmdGVyLFxyXG4udWstbW9kYWwtZm9vdGVyOjphZnRlciB7IGNsZWFyOiBib3RoOyB9XHJcblxyXG4vKlxyXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcclxuICovXHJcblxyXG4udWstbW9kYWwtYm9keSA+IDpsYXN0LWNoaWxkLFxyXG4udWstbW9kYWwtaGVhZGVyID4gOmxhc3QtY2hpbGQsXHJcbi51ay1tb2RhbC1mb290ZXIgPiA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cclxuXHJcblxyXG4vKiBUaXRsZVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1tb2RhbC10aXRsZSB7XHJcbiAgICBmb250LXNpemU6ICRtb2RhbC10aXRsZS1mb250LXNpemU7XHJcbiAgICBsaW5lLWhlaWdodDogJG1vZGFsLXRpdGxlLWxpbmUtaGVpZ2h0O1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW1vZGFsLXRpdGxlKSkge0BpbmNsdWRlIGhvb2stbW9kYWwtdGl0bGUoKTt9XHJcbn1cclxuXHJcblxyXG4vKiBDbG9zZVxyXG4gKiBBZG9wdHMgYHVrLWNsb3NlYFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbltjbGFzcyo9J3VrLW1vZGFsLWNsb3NlLSddIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHotaW5kZXg6ICRtb2RhbC16LWluZGV4O1xyXG4gICAgdG9wOiAkbW9kYWwtY2xvc2UtcG9zaXRpb247XHJcbiAgICByaWdodDogJG1vZGFsLWNsb3NlLXBvc2l0aW9uO1xyXG4gICAgcGFkZGluZzogJG1vZGFsLWNsb3NlLXBhZGRpbmc7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbW9kYWwtY2xvc2UpKSB7QGluY2x1ZGUgaG9vay1tb2RhbC1jbG9zZSgpO31cclxufVxyXG5cclxuLypcclxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIGFkamFjZW50IGVsZW1lbnRcclxuICovXHJcblxyXG5bY2xhc3MqPSd1ay1tb2RhbC1jbG9zZS0nXTpmaXJzdC1jaGlsZCArICogeyBtYXJnaW4tdG9wOiAwOyB9XHJcblxyXG4vKlxyXG4gKiBIb3ZlclxyXG4gKi9cclxuXHJcbltjbGFzcyo9J3VrLW1vZGFsLWNsb3NlLSddOmhvdmVyIHtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1tb2RhbC1jbG9zZS1ob3ZlcikpIHtAaW5jbHVkZSBob29rLW1vZGFsLWNsb3NlLWhvdmVyKCk7fVxyXG59XHJcblxyXG4vKlxyXG4gKiBEZWZhdWx0XHJcbiAqL1xyXG5cclxuLnVrLW1vZGFsLWNsb3NlLWRlZmF1bHQge1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW1vZGFsLWNsb3NlLWRlZmF1bHQpKSB7QGluY2x1ZGUgaG9vay1tb2RhbC1jbG9zZS1kZWZhdWx0KCk7fVxyXG59XHJcblxyXG4udWstbW9kYWwtY2xvc2UtZGVmYXVsdDpob3ZlciB7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbW9kYWwtY2xvc2UtZGVmYXVsdC1ob3ZlcikpIHtAaW5jbHVkZSBob29rLW1vZGFsLWNsb3NlLWRlZmF1bHQtaG92ZXIoKTt9XHJcbn1cclxuXHJcbi8qXHJcbiAqIE91dHNpZGVcclxuICogMS4gUHJldmVudCBzY3JvbGxiYXIgb24gc21hbGwgZGV2aWNlc1xyXG4gKi9cclxuXHJcbi51ay1tb2RhbC1jbG9zZS1vdXRzaWRlIHtcclxuICAgIHRvcDogJG1vZGFsLWNsb3NlLW91dHNpZGUtcG9zaXRpb247XHJcbiAgICAvKiAxICovXHJcbiAgICByaWdodDogKC0kbW9kYWwtY2xvc2UtcGFkZGluZyk7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtKCRtb2RhbC1jbG9zZS1vdXRzaWRlLXRyYW5zbGF0ZSkpO1xyXG4gICAgY29sb3I6ICRtb2RhbC1jbG9zZS1vdXRzaWRlLWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW1vZGFsLWNsb3NlLW91dHNpZGUpKSB7QGluY2x1ZGUgaG9vay1tb2RhbC1jbG9zZS1vdXRzaWRlKCk7fVxyXG59XHJcblxyXG4udWstbW9kYWwtY2xvc2Utb3V0c2lkZTpob3ZlciB7XHJcbiAgICBjb2xvcjogJG1vZGFsLWNsb3NlLW91dHNpZGUtaG92ZXItY29sb3I7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbW9kYWwtY2xvc2Utb3V0c2lkZS1ob3ZlcikpIHtAaW5jbHVkZSBob29rLW1vZGFsLWNsb3NlLW91dHNpZGUtaG92ZXIoKTt9XHJcbn1cclxuXHJcbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XHJcblxyXG4gICAgLyogMSAqL1xyXG4gICAgLnVrLW1vZGFsLWNsb3NlLW91dHNpZGUge1xyXG4gICAgICAgIHJpZ2h0OiAkbW9kYWwtY2xvc2Utb3V0c2lkZS1wb3NpdGlvbjtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgkbW9kYWwtY2xvc2Utb3V0c2lkZS10cmFuc2xhdGUsIC0oJG1vZGFsLWNsb3NlLW91dHNpZGUtdHJhbnNsYXRlKSk7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4vKlxyXG4gKiBGdWxsXHJcbiAqL1xyXG5cclxuLnVrLW1vZGFsLWNsb3NlLWZ1bGwge1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW1vZGFsLWNsb3NlLWZ1bGwpKSB7QGluY2x1ZGUgaG9vay1tb2RhbC1jbG9zZS1mdWxsKCk7fVxyXG59XHJcblxyXG4udWstbW9kYWwtY2xvc2UtZnVsbDpob3ZlciB7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbW9kYWwtY2xvc2UtZnVsbC1ob3ZlcikpIHtAaW5jbHVkZSBob29rLW1vZGFsLWNsb3NlLWZ1bGwtaG92ZXIoKTt9XHJcbn1cclxuXHJcblxyXG4vLyBIb29rc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbkBpZihtaXhpbi1leGlzdHMoaG9vay1tb2RhbC1taXNjKSkge0BpbmNsdWRlIGhvb2stbW9kYWwtbWlzYygpO31cclxuXHJcbi8vIEBtaXhpbiBob29rLW1vZGFsKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1tb2RhbC1kaWFsb2coKXt9XHJcbi8vIEBtaXhpbiBob29rLW1vZGFsLWZ1bGwoKXt9XHJcbi8vIEBtaXhpbiBob29rLW1vZGFsLWhlYWRlcigpe31cclxuLy8gQG1peGluIGhvb2stbW9kYWwtYm9keSgpe31cclxuLy8gQG1peGluIGhvb2stbW9kYWwtZm9vdGVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1tb2RhbC10aXRsZSgpe31cclxuLy8gQG1peGluIGhvb2stbW9kYWwtY2xvc2UoKXt9XHJcbi8vIEBtaXhpbiBob29rLW1vZGFsLWNsb3NlLWhvdmVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1tb2RhbC1jbG9zZS1kZWZhdWx0KCl7fVxyXG4vLyBAbWl4aW4gaG9vay1tb2RhbC1jbG9zZS1kZWZhdWx0LWhvdmVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1tb2RhbC1jbG9zZS1vdXRzaWRlKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1tb2RhbC1jbG9zZS1vdXRzaWRlLWhvdmVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1tb2RhbC1jbG9zZS1mdWxsKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1tb2RhbC1jbG9zZS1mdWxsLWhvdmVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1tb2RhbC1taXNjKCl7fVxyXG4iLCIvLyBOYW1lOiAgICAgICAgICAgIExpZ2h0Ym94XHJcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBhbiBsaWdodGJveCBpbWFnZSBnYWxsZXJ5XHJcbi8vXHJcbi8vIENvbXBvbmVudDogICAgICAgYHVrLWxpZ2h0Ym94YFxyXG4vL1xyXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay1saWdodGJveC1wYWdlYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1saWdodGJveC1pdGVtc2BcclxuLy8gICAgICAgICAgICAgICAgICBgdWstbGlnaHRib3gtdG9vbGJhcmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstbGlnaHRib3gtdG9vbGJhci1pY29uYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1saWdodGJveC1idXR0b25gXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWxpZ2h0Ym94LWNhcHRpb25gXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWxpZ2h0Ym94LWlmcmFtZWBcclxuLy9cclxuLy8gU3RhdGVzOiAgICAgICAgICBgdWstb3BlbmBcclxuLy9cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5cclxuLy8gVmFyaWFibGVzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuJGxpZ2h0Ym94LXotaW5kZXg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtei1pbmRleCArIDEwICFkZWZhdWx0O1xyXG4kbGlnaHRib3gtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIzAwMCAhZGVmYXVsdDtcclxuXHJcbiRsaWdodGJveC1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuNykgIWRlZmF1bHQ7XHJcbiRsaWdodGJveC1pdGVtLW1heC13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAxMDB2dyAhZGVmYXVsdDtcclxuJGxpZ2h0Ym94LWl0ZW0tbWF4LWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgIDEwMHZoICFkZWZhdWx0O1xyXG5cclxuJGxpZ2h0Ym94LXRvb2xiYXItcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgIDEwcHggIWRlZmF1bHQ7XHJcbiRsaWdodGJveC10b29sYmFyLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAxMHB4ICFkZWZhdWx0O1xyXG4kbGlnaHRib3gtdG9vbGJhci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgcmdiYSgwLDAsMCwwLjMpICFkZWZhdWx0O1xyXG4kbGlnaHRib3gtdG9vbGJhci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgcmdiYSgyNTUsMjU1LDI1NSwwLjcpICFkZWZhdWx0O1xyXG5cclxuJGxpZ2h0Ym94LXRvb2xiYXItaWNvbi1wYWRkaW5nOiAgICAgICAgICAgICAgICAgIDVweCAhZGVmYXVsdDtcclxuJGxpZ2h0Ym94LXRvb2xiYXItaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgIHJnYmEoMjU1LDI1NSwyNTUsMC43KSAhZGVmYXVsdDtcclxuXHJcbiRsaWdodGJveC10b29sYmFyLWljb24taG92ZXItY29sb3I6ICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xyXG5cclxuJGxpZ2h0Ym94LWJ1dHRvbi1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwcHggIWRlZmF1bHQ7XHJcbiRsaWdodGJveC1idXR0b24tYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAkbGlnaHRib3gtdG9vbGJhci1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kbGlnaHRib3gtYnV0dG9uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgcmdiYSgyNTUsMjU1LDI1NSwwLjcpICFkZWZhdWx0O1xyXG5cclxuJGxpZ2h0Ym94LWJ1dHRvbi1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XHJcblxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogTGlnaHRib3hcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBIaWRlIGJ5IGRlZmF1bHRcclxuICogMi4gU2V0IHBvc2l0aW9uXHJcbiAqIDMuIEFsbG93IHNjcm9sbGluZyBmb3IgdGhlIG1vZGFsIGRpYWxvZ1xyXG4gKiA0LiBIb3Jpem9udGFsIHBhZGRpbmdcclxuICogNS4gTWFzayB0aGUgYmFja2dyb3VuZCBwYWdlXHJcbiAqIDYuIEZhZGUtaW4gdHJhbnNpdGlvblxyXG4gKi9cclxuXHJcbi51ay1saWdodGJveCB7XHJcbiAgICAvKiAxICovXHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgLyogMiAqL1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgei1pbmRleDogJGxpZ2h0Ym94LXotaW5kZXg7XHJcbiAgICAvKiA1ICovXHJcbiAgICBiYWNrZ3JvdW5kOiAkbGlnaHRib3gtYmFja2dyb3VuZDtcclxuICAgIC8qIDYgKi9cclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1saWdodGJveCkpIHtAaW5jbHVkZSBob29rLWxpZ2h0Ym94KCk7fVxyXG59XHJcblxyXG4vKlxyXG4gKiBPcGVuXHJcbiAqIDEuIENlbnRlciBjaGlsZFxyXG4gKiAyLiBGYWRlLWluXHJcbiAqL1xyXG5cclxuLnVrLWxpZ2h0Ym94LnVrLW9wZW4ge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAvKiAyICovXHJcbiAgICBvcGFjaXR5OiAxO1xyXG59XHJcblxyXG5cclxuLyogUGFnZVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIFByZXZlbnQgc2Nyb2xsYmFyc1xyXG4gKi9cclxuXHJcbi51ay1saWdodGJveC1wYWdlIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxyXG5cclxuXHJcbi8qIEl0ZW1cclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBDZW50ZXIgY2hpbGQgd2l0aGluIHRoZSB2aWV3cG9ydFxyXG4gKiAyLiBOb3QgdmlzaWJsZSBieSBkZWZhdWx0XHJcbiAqIDMuIENvbG9yIG5lZWRlZCBmb3Igc3Bpbm5lciBpY29uXHJcbiAqIDQuIE9wdGltaXplIGFuaW1hdGlvblxyXG4gKiA1LiBSZXNwb25zaXZlbmVzc1xyXG4gKiAgICBVc2luZyBgdmhgIGZvciBgbWF4LWhlaWdodGAgdG8gZml4IGltYWdlIHByb3BvcnRpb25zIGFmdGVyIHJlc2l6ZSBpbiBTYWZhcmkgYW5kIE9wZXJhXHJcbiAqICAgIFVzaW5nIGB2aGAgYW5kIGB2d2AgdG8gbWFrZSByZXNwb25zaXZlIGltYWdlIHdvcmsgaW4gSUUxMVxyXG4gKiA2LiBTdXBwcmVzcyBvdXRsaW5lIG9uIGZvY3VzXHJcbiAqL1xyXG5cclxuLnVrLWxpZ2h0Ym94LWl0ZW1zID4gKiB7XHJcbiAgICAvKiAxICovXHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICAvKiAyICovXHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgLyogMyAqL1xyXG4gICAgY29sb3I6ICRsaWdodGJveC1pdGVtLWNvbG9yO1xyXG4gICAgLyogNCAqL1xyXG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1saWdodGJveC1pdGVtKSkge0BpbmNsdWRlIGhvb2stbGlnaHRib3gtaXRlbSgpO31cclxufVxyXG5cclxuLyogNSAqL1xyXG4udWstbGlnaHRib3gtaXRlbXMgPiAqID4gKiB7XHJcbiAgICBtYXgtd2lkdGg6ICRsaWdodGJveC1pdGVtLW1heC13aWR0aDtcclxuICAgIG1heC1oZWlnaHQ6ICRsaWdodGJveC1pdGVtLW1heC1oZWlnaHQ7XHJcbn1cclxuXHJcbi8qIDYgKi9cclxuLnVrLWxpZ2h0Ym94LWl0ZW1zID4gOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxyXG5cclxuLnVrLWxpZ2h0Ym94LWl0ZW1zID4gKiA+IDpub3QoaWZyYW1lKSB7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIGhlaWdodDogYXV0bztcclxufVxyXG5cclxuLnVrLWxpZ2h0Ym94LWl0ZW1zID4gLnVrLWFjdGl2ZSB7IGRpc3BsYXk6IGZsZXg7IH1cclxuXHJcbi8qIFRvb2xiYXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstbGlnaHRib3gtdG9vbGJhciB7XHJcbiAgICBwYWRkaW5nOiAkbGlnaHRib3gtdG9vbGJhci1wYWRkaW5nLXZlcnRpY2FsICRsaWdodGJveC10b29sYmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcclxuICAgIGJhY2tncm91bmQ6ICRsaWdodGJveC10b29sYmFyLWJhY2tncm91bmQ7XHJcbiAgICBjb2xvcjogJGxpZ2h0Ym94LXRvb2xiYXItY29sb3I7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stbGlnaHRib3gtdG9vbGJhcikpIHtAaW5jbHVkZSBob29rLWxpZ2h0Ym94LXRvb2xiYXIoKTt9XHJcbn1cclxuXHJcbi51ay1saWdodGJveC10b29sYmFyID4gKiB7IGNvbG9yOiAkbGlnaHRib3gtdG9vbGJhci1jb2xvcjsgfVxyXG5cclxuXHJcbi8qIFRvb2xiYXIgSWNvbiAoQ2xvc2UpXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVrLWxpZ2h0Ym94LXRvb2xiYXItaWNvbiB7XHJcbiAgICBwYWRkaW5nOiAkbGlnaHRib3gtdG9vbGJhci1pY29uLXBhZGRpbmc7XHJcbiAgICBjb2xvcjogJGxpZ2h0Ym94LXRvb2xiYXItaWNvbi1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1saWdodGJveC10b29sYmFyLWljb24pKSB7QGluY2x1ZGUgaG9vay1saWdodGJveC10b29sYmFyLWljb24oKTt9XHJcbn1cclxuXHJcbi8qXHJcbiAqIEhvdmVyXHJcbiAqL1xyXG5cclxuLnVrLWxpZ2h0Ym94LXRvb2xiYXItaWNvbjpob3ZlciB7XHJcbiAgICBjb2xvcjogJGxpZ2h0Ym94LXRvb2xiYXItaWNvbi1ob3Zlci1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1saWdodGJveC10b29sYmFyLWljb24taG92ZXIpKSB7QGluY2x1ZGUgaG9vay1saWdodGJveC10b29sYmFyLWljb24taG92ZXIoKTt9XHJcbn1cclxuXHJcblxyXG5cclxuLyogQnV0dG9uIChTbGlkZW5hdilcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBDZW50ZXIgaWNvbiB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHlcclxuICovXHJcblxyXG4udWstbGlnaHRib3gtYnV0dG9uIHtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB3aWR0aDogJGxpZ2h0Ym94LWJ1dHRvbi1zaXplO1xyXG4gICAgaGVpZ2h0OiAkbGlnaHRib3gtYnV0dG9uLXNpemU7XHJcbiAgICBiYWNrZ3JvdW5kOiAkbGlnaHRib3gtYnV0dG9uLWJhY2tncm91bmQ7XHJcbiAgICBjb2xvcjogJGxpZ2h0Ym94LWJ1dHRvbi1jb2xvcjtcclxuICAgIC8qIDEgKi9cclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWxpZ2h0Ym94LWJ1dHRvbikpIHtAaW5jbHVkZSBob29rLWxpZ2h0Ym94LWJ1dHRvbigpO31cclxufVxyXG5cclxuLypcclxuICogSG92ZXJcclxuICovXHJcblxyXG4udWstbGlnaHRib3gtYnV0dG9uOmhvdmVyIHtcclxuICAgIGNvbG9yOiAkbGlnaHRib3gtYnV0dG9uLWhvdmVyLWNvbG9yO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLWxpZ2h0Ym94LWJ1dHRvbi1ob3ZlcikpIHtAaW5jbHVkZSBob29rLWxpZ2h0Ym94LWJ1dHRvbi1ob3ZlcigpO31cclxufVxyXG5cclxuXHJcbi8qIENhcHRpb25cclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstbGlnaHRib3gtY2FwdGlvbiB7fVxyXG5cclxuXHJcbi8qIElmcmFtZVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1saWdodGJveC1pZnJhbWUge1xyXG4gICAgd2lkdGg6IDgwJTtcclxuICAgIGhlaWdodDogODAlO1xyXG59XHJcblxyXG5cclxuLy8gSG9va3NcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stbGlnaHRib3gtbWlzYykpIHtAaW5jbHVkZSBob29rLWxpZ2h0Ym94LW1pc2MoKTt9XHJcblxyXG4vLyBAbWl4aW4gaG9vay1saWdodGJveCgpe31cclxuLy8gQG1peGluIGhvb2stbGlnaHRib3gtaXRlbSgpe31cclxuLy8gQG1peGluIGhvb2stbGlnaHRib3gtdG9vbGJhcigpe31cclxuLy8gQG1peGluIGhvb2stbGlnaHRib3gtdG9vbGJhci1pY29uKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1saWdodGJveC10b29sYmFyLWljb24taG92ZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLWxpZ2h0Ym94LWJ1dHRvbigpe31cclxuLy8gQG1peGluIGhvb2stbGlnaHRib3gtYnV0dG9uLWhvdmVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1saWdodGJveC1taXNjKCl7fVxyXG4iLCIvLyBOYW1lOiAgICAgICAgICAgIFNsaWRlclxyXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgaG9yaXpvbnRhbCBzbGlkZXJzXHJcbi8vXHJcbi8vIENvbXBvbmVudDogICAgICAgYHVrLXNsaWRlcmBcclxuLy9cclxuLy8gU3ViLW9iamVjdHM6ICAgICBgdWstc2xpZGVyLWNvbnRhaW5lcmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstc2xpZGVyLWl0ZW1zYFxyXG4vL1xyXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1hY3RpdmVgXHJcbi8vXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IFNsaWRlclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIDEuIFByZXZlbnQgdGFiIGhpZ2hsaWdodGluZyBvbiBpT1MuXHJcbiAqL1xyXG5cclxuLnVrLXNsaWRlciB7XHJcbiAgICAvKiAxICovXHJcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXNsaWRlcikpIHtAaW5jbHVkZSBob29rLXNsaWRlcigpO31cclxufVxyXG5cclxuXHJcbi8qIENvbnRhaW5lclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIDEuIENsaXAgY2hpbGQgZWxlbWVudHNcclxuICovXHJcblxyXG4udWstc2xpZGVyLWNvbnRhaW5lciB7XHJcbiAgICAvKiAxICovXHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4vKiBJdGVtc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIDEuIE9wdGltaXplIGFuaW1hdGlvblxyXG4gKiAyLiBDcmVhdGUgYSBjb250YWluaW5nIGJsb2NrLiBJbiBTYWZhcmkgaXQncyBuZWl0aGVyIGNyZWF0ZWQgYnkgYHRyYW5zZm9ybWAgbm9yIGB3aWxsLWNoYW5nZWAuXHJcbiAqL1xyXG5cclxuLnVrLXNsaWRlci1pdGVtcyB7XHJcbiAgICAvKiAxICovXHJcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xyXG4gICAgLyogMiAqL1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4vKlxyXG4gKiAxLiBSZXNldCBsaXN0IHN0eWxlIHdpdGhvdXQgaW50ZXJmZXJpbmcgd2l0aCBncmlkXHJcbiAqIDIuIFByZXZlbnQgZGlzcGxheWluZyB0aGUgY2FsbG91dCBpbmZvcm1hdGlvbiBvbiBpT1MuXHJcbiAqL1xyXG5cclxuLnVrLXNsaWRlci1pdGVtczpub3QoLnVrLWdyaWQpIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAvKiAxICovXHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIC8qIDIgKi9cclxuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcclxufVxyXG5cclxuLnVrLXNsaWRlci1pdGVtcy51ay1ncmlkIHsgZmxleC13cmFwOiBub3dyYXA7IH1cclxuXHJcblxyXG4vKiBJdGVtXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogMS4gTGV0IGl0ZW1zIHRha2UgY29udGVudCBkaW1lbnNpb25zICgwIDAgYXV0bylcclxuICogMi4gQ3JlYXRlIHBvc2l0aW9uIGNvbnRleHRcclxuICogMy4gRGlzYWJsZSBob3Jpem9udGFsIHBhbm5pbmcgZ2VzdHVyZXMgaW4gSUUxMSBhbmQgRWRnZVxyXG4gKiA0LiBTdXBwcmVzcyBvdXRsaW5lIG9uIGZvY3VzXHJcbiAqL1xyXG5cclxuLnVrLXNsaWRlci1pdGVtcyA+ICoge1xyXG4gICAgLyogMSAqL1xyXG4gICAgZmxleDogbm9uZTtcclxuICAgIC8qIDIgKi9cclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIC8qIDMgKi9cclxuICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XHJcbn1cclxuXHJcbi8qIDQgKi9cclxuLnVrLXNsaWRlci1pdGVtcyA+IDpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IH1cclxuXHJcblxyXG4vLyBIb29rc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbkBpZihtaXhpbi1leGlzdHMoaG9vay1zbGlkZXItbWlzYykpIHtAaW5jbHVkZSBob29rLXNsaWRlci1taXNjKCk7fVxyXG5cclxuLy8gQG1peGluIGhvb2stc2xpZGVyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1zbGlkZXItbWlzYygpe31cclxuIiwiLy8gTmFtZTogICAgICAgICAgICBTdGlja3lcclxuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gbWFrZSBlbGVtZW50cyBzdGlja3kgaW4gdGhlIHZpZXdwb3J0XHJcbi8vXHJcbi8vIENvbXBvbmVudDogICAgICAgYHVrLXN0aWNreWBcclxuLy9cclxuLy8gTW9kaWZpZXI6ICAgICAgICBgdWstc3RpY2t5LWZpeGVkYFxyXG4vL1xyXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1hY3RpdmVgXHJcbi8vXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuXHJcbi8vIFZhcmlhYmxlc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiRzdGlja3ktei1pbmRleDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXotaW5kZXggLSAyMCAhZGVmYXVsdDtcclxuXHJcbiRzdGlja3ktYW5pbWF0aW9uLWR1cmF0aW9uOiAgICAgICAgICAgICAgICAgICAgICAwLjJzICFkZWZhdWx0O1xyXG4kc3RpY2t5LXJldmVyc2UtYW5pbWF0aW9uLWR1cmF0aW9uOiAgICAgICAgICAgICAgMC4ycyAhZGVmYXVsdDtcclxuXHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBTdGlja3lcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBSZXNvbHZlIGZyYW1lIHJhdGUgaXNzdWVzIG9uIGRldmljZXMgd2l0aCBsb3dlciBmcmFtZSByYXRlcyBieSBmb3JjaW5nIGhhcmR3YXJlIGFjY2VsZXJhdGlvblxyXG4gKi9cclxuXHJcbi51ay1zdGlja3ktZml4ZWQge1xyXG4gICAgei1pbmRleDogJHN0aWNreS16LWluZGV4O1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xyXG4gICAgLyogMSAqL1xyXG4gICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcbn1cclxuXHJcbi8qXHJcbiAqIEZhc3RlciBhbmltYXRpb25zXHJcbiAqL1xyXG5cclxuLnVrLXN0aWNreVtjbGFzcyo9J3VrLWFuaW1hdGlvbi0nXSB7IGFuaW1hdGlvbi1kdXJhdGlvbjogJHN0aWNreS1hbmltYXRpb24tZHVyYXRpb247IH1cclxuXHJcbi51ay1zdGlja3kudWstYW5pbWF0aW9uLXJldmVyc2UgeyBhbmltYXRpb24tZHVyYXRpb246ICRzdGlja3ktcmV2ZXJzZS1hbmltYXRpb24tZHVyYXRpb247IH1cclxuXHJcblxyXG4vLyBIb29rc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbkBpZihtaXhpbi1leGlzdHMoaG9vay1zdGlja3ktbWlzYykpIHtAaW5jbHVkZSBob29rLXN0aWNreS1taXNjKCk7fVxyXG5cclxuLy8gQG1peGluIGhvb2stc3RpY2t5LW1pc2MoKXt9XHJcbiIsIi8vIE5hbWU6ICAgICAgICAgICAgT2ZmLWNhbnZhc1xyXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgYW4gb2ZmLWNhbnZhcyBzaWRlYmFyXHJcbi8vXHJcbi8vIENvbXBvbmVudDogICAgICAgYHVrLW9mZmNhbnZhc2BcclxuLy9cclxuLy8gU3ViLW9iamVjdHM6ICAgICBgdWstb2ZmY2FudmFzLWJhcmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstb2ZmY2FudmFzLWNvbnRhaW5lcmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstb2ZmY2FudmFzLXBhZ2VgXHJcbi8vXHJcbi8vIEFkb3B0ZWQ6ICAgICAgICAgYHVrLW9mZmNhbnZhcy1jbG9zZWBcclxuLy9cclxuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstb2ZmY2FudmFzLWZsaXBgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLW9mZmNhbnZhcy1iYXItYW5pbWF0aW9uYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1vZmZjYW52YXMtcmV2ZWFsYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1vZmZjYW52YXMtb3ZlcmxheWBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstb2ZmY2FudmFzLWNvbnRhaW5lci1hbmltYXRpb25gXHJcbi8vXHJcbi8vIFN0YXRlczogICAgICAgICAgYHVrLW9wZW5gXHJcbi8vXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuXHJcbi8vIFZhcmlhYmxlc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiRvZmZjYW52YXMtei1pbmRleDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXotaW5kZXggIWRlZmF1bHQ7XHJcblxyXG4kb2ZmY2FudmFzLWJhci13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgMjcwcHggIWRlZmF1bHQ7XHJcbiRvZmZjYW52YXMtYmFyLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcclxuJG9mZmNhbnZhcy1iYXItcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xyXG4kb2ZmY2FudmFzLWJhci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zZWNvbmRhcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJG9mZmNhbnZhcy1iYXItY29sb3ItbW9kZTogICAgICAgICAgICAgICAgICAgICAgIGxpZ2h0ICFkZWZhdWx0O1xyXG5cclxuJG9mZmNhbnZhcy1iYXItd2lkdGgtbTogICAgICAgICAgICAgICAgICAgICAgICAgIDM1MHB4ICFkZWZhdWx0O1xyXG4kb2ZmY2FudmFzLWJhci1wYWRkaW5nLXZlcnRpY2FsLW06ICAgICAgICAgICAgICAgJGdsb2JhbC1tZWRpdW0tZ3V0dGVyICFkZWZhdWx0O1xyXG4kb2ZmY2FudmFzLWJhci1wYWRkaW5nLWhvcml6b250YWwtbTogICAgICAgICAgICAgJGdsb2JhbC1tZWRpdW0tZ3V0dGVyICFkZWZhdWx0O1xyXG5cclxuJG9mZmNhbnZhcy1jbG9zZS1wb3NpdGlvbjogICAgICAgICAgICAgICAgICAgICAgIDIwcHggIWRlZmF1bHQ7XHJcbiRvZmZjYW52YXMtY2xvc2UtcGFkZGluZzogICAgICAgICAgICAgICAgICAgICAgICA1cHggIWRlZmF1bHQ7XHJcblxyXG4kb2ZmY2FudmFzLW92ZXJsYXktYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgcmdiYSgwLDAsMCwwLjEpICFkZWZhdWx0O1xyXG5cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IE9mZi1jYW52YXNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBIaWRlIGJ5IGRlZmF1bHRcclxuICogMi4gU2V0IHBvc2l0aW9uXHJcbiAqL1xyXG5cclxuLnVrLW9mZmNhbnZhcyB7XHJcbiAgICAvKiAxICovXHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgLyogMiAqL1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHotaW5kZXg6ICRvZmZjYW52YXMtei1pbmRleDtcclxufVxyXG5cclxuLypcclxuICogRmxpcCBtb2RpZmllclxyXG4gKi9cclxuXHJcbi51ay1vZmZjYW52YXMtZmxpcCAudWstb2ZmY2FudmFzIHtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgbGVmdDogYXV0bztcclxufVxyXG5cclxuXHJcbi8qIEJhclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIDEuIFNldCBwb3NpdGlvblxyXG4gKiAyLiBTaXplIGFuZCBzdHlsZVxyXG4gKiAzLiBBbGxvdyBzY3JvbGxpbmdcclxuICovXHJcblxyXG4udWstb2ZmY2FudmFzLWJhciB7XHJcbiAgICAvKiAxICovXHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAoLSRvZmZjYW52YXMtYmFyLXdpZHRoKTtcclxuICAgIC8qIDIgKi9cclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB3aWR0aDogJG9mZmNhbnZhcy1iYXItd2lkdGg7XHJcbiAgICBwYWRkaW5nOiAkb2ZmY2FudmFzLWJhci1wYWRkaW5nLXZlcnRpY2FsICRvZmZjYW52YXMtYmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcclxuICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtYmFyLWJhY2tncm91bmQ7XHJcbiAgICAvKiAzICovXHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW9mZmNhbnZhcy1iYXIpKSB7QGluY2x1ZGUgaG9vay1vZmZjYW52YXMtYmFyKCk7fVxyXG59XHJcblxyXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LW1lZGl1bSkge1xyXG5cclxuICAgIC51ay1vZmZjYW52YXMtYmFyIHtcclxuICAgICAgICBsZWZ0OiAoLSRvZmZjYW52YXMtYmFyLXdpZHRoLW0pO1xyXG4gICAgICAgIHdpZHRoOiAkb2ZmY2FudmFzLWJhci13aWR0aC1tO1xyXG4gICAgICAgIHBhZGRpbmc6ICRvZmZjYW52YXMtYmFyLXBhZGRpbmctdmVydGljYWwtbSAkb2ZmY2FudmFzLWJhci1wYWRkaW5nLWhvcml6b250YWwtbTtcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbi8vIENvbG9yIE1vZGVcclxuQGlmICggJG9mZmNhbnZhcy1iYXItY29sb3ItbW9kZSA9PSBsaWdodCApIHsgLnVrLW9mZmNhbnZhcy1iYXIgeyBAZXh0ZW5kIC51ay1saWdodCAhb3B0aW9uYWw7fSB9XHJcbkBpZiAoICRvZmZjYW52YXMtYmFyLWNvbG9yLW1vZGUgPT0gZGFyayApIHsgLnVrLW9mZmNhbnZhcy1iYXIgeyBAZXh0ZW5kIC51ay1kYXJrICFvcHRpb25hbDt9IH1cclxuXHJcbi8qIEZsaXAgbW9kaWZpZXIgKi9cclxuLnVrLW9mZmNhbnZhcy1mbGlwIC51ay1vZmZjYW52YXMtYmFyIHtcclxuICAgIGxlZnQ6IGF1dG87XHJcbiAgICByaWdodDogKC0kb2ZmY2FudmFzLWJhci13aWR0aCk7XHJcbn1cclxuXHJcbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XHJcblxyXG4gICAgLnVrLW9mZmNhbnZhcy1mbGlwIC51ay1vZmZjYW52YXMtYmFyIHsgcmlnaHQ6ICgtJG9mZmNhbnZhcy1iYXItd2lkdGgtbSk7IH1cclxuXHJcbn1cclxuXHJcbi8qXHJcbiAqIE9wZW5cclxuICovXHJcblxyXG4udWstb3BlbiA+IC51ay1vZmZjYW52YXMtYmFyIHsgbGVmdDogMDsgfVxyXG4udWstb2ZmY2FudmFzLWZsaXAgLnVrLW9wZW4gPiAudWstb2ZmY2FudmFzLWJhciB7XHJcbiAgICBsZWZ0OiBhdXRvO1xyXG4gICAgcmlnaHQ6IDA7XHJcbn1cclxuXHJcbi8qXHJcbiAqIFNsaWRlIEFuaW1hdGlvbiAoVXNlZCBpbiBzbGlkZSBhbmQgcHVzaCBtb2RlKVxyXG4gKi9cclxuXHJcbi51ay1vZmZjYW52YXMtYmFyLWFuaW1hdGlvbiB7IHRyYW5zaXRpb246IGxlZnQgMC4zcyBlYXNlLW91dDsgfVxyXG4udWstb2ZmY2FudmFzLWZsaXAgLnVrLW9mZmNhbnZhcy1iYXItYW5pbWF0aW9uIHsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogcmlnaHQ7IH1cclxuXHJcbi8qXHJcbiAqIFJldmVhbCBBbmltYXRpb25cclxuICogMS4gU2V0IHBvc2l0aW9uXHJcbiAqIDIuIENsaXAgdGhlIGJhclxyXG4gKiAzLiBBbmltYXRpb25cclxuICogNC4gUmVzZXQgcG9zaXRpb25cclxuICovXHJcblxyXG4udWstb2ZmY2FudmFzLXJldmVhbCB7XHJcbiAgICAvKiAxICovXHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgLyogMiAqL1xyXG4gICAgd2lkdGg6IDA7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgLyogMyAqL1xyXG4gICAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBlYXNlLW91dDtcclxufVxyXG5cclxuLnVrLW9mZmNhbnZhcy1yZXZlYWwgLnVrLW9mZmNhbnZhcy1iYXIge1xyXG4gICAgLyogNCAqL1xyXG4gICAgbGVmdDogMDtcclxufVxyXG5cclxuLnVrLW9mZmNhbnZhcy1mbGlwIC51ay1vZmZjYW52YXMtcmV2ZWFsIC51ay1vZmZjYW52YXMtYmFyIHtcclxuICAgIC8qIDQgKi9cclxuICAgIGxlZnQ6IGF1dG87XHJcbiAgICByaWdodDogMDtcclxufVxyXG5cclxuLnVrLW9wZW4gPiAudWstb2ZmY2FudmFzLXJldmVhbCB7IHdpZHRoOiAkb2ZmY2FudmFzLWJhci13aWR0aDsgfVxyXG5cclxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXHJcbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcclxuXHJcbiAgICAudWstb3BlbiA+IC51ay1vZmZjYW52YXMtcmV2ZWFsIHsgd2lkdGg6ICRvZmZjYW52YXMtYmFyLXdpZHRoLW07IH1cclxuXHJcbn1cclxuXHJcbi8qXHJcbiAqIEZsaXAgbW9kaWZpZXJcclxuICovXHJcblxyXG4udWstb2ZmY2FudmFzLWZsaXAgLnVrLW9mZmNhbnZhcy1yZXZlYWwge1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBsZWZ0OiBhdXRvO1xyXG59XHJcblxyXG5cclxuLyogQ2xvc2VcclxuICogQWRvcHRzIGB1ay1jbG9zZWBcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstb2ZmY2FudmFzLWNsb3NlIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHotaW5kZXg6ICRvZmZjYW52YXMtei1pbmRleDtcclxuICAgIHRvcDogJG9mZmNhbnZhcy1jbG9zZS1wb3NpdGlvbjtcclxuICAgIHJpZ2h0OiAkb2ZmY2FudmFzLWNsb3NlLXBvc2l0aW9uO1xyXG4gICAgcGFkZGluZzogJG9mZmNhbnZhcy1jbG9zZS1wYWRkaW5nO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW9mZmNhbnZhcy1jbG9zZSkpIHtAaW5jbHVkZSBob29rLW9mZmNhbnZhcy1jbG9zZSgpO31cclxufVxyXG5cclxuXHJcbi8qIE92ZXJsYXlcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiBPdmVybGF5IHRoZSB3aG9sZSBwYWdlLiBOZWVkZWQgZm9yIHRoZSBgOjpiZWZvcmVgXHJcbiAqIDEuIFVzaW5nIGAxMDB2d2Agc28gbm8gbW9kaWZpY2F0aW9uIGlzIG5lZWRlZCB3aGVuIG9mZi1jYW52YXMgaXMgZmxpcHBlZFxyXG4gKiAyLiBBbGxvdyBmb3IgY2xvc2luZyB3aXRoIHN3aXBlIGdlc3R1cmUgb24gZGV2aWNlcyB3aXRoIHBvaW50ZXIgZXZlbnRzLlxyXG4gKi9cclxuXHJcbi51ay1vZmZjYW52YXMtb3ZlcmxheSB7XHJcbiAgICAvKiAxICovXHJcbiAgICB3aWR0aDogMTAwdnc7XHJcbiAgICAvKiAyICovXHJcbiAgICB0b3VjaC1hY3Rpb246IG5vbmU7XHJcbn1cclxuXHJcbi8qXHJcbiAqIDEuIE1hc2sgdGhlIHdob2xlIHBhZ2VcclxuICogMi4gRmFkZS1pbiB0cmFuc2l0aW9uXHJcbiAqL1xyXG5cclxuLnVrLW9mZmNhbnZhcy1vdmVybGF5OjpiZWZvcmUge1xyXG4gICAgLyogMSAqL1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtb3ZlcmxheS1iYWNrZ3JvdW5kO1xyXG4gICAgLyogMiAqL1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLW9mZmNhbnZhcy1vdmVybGF5KSkge0BpbmNsdWRlIGhvb2stb2ZmY2FudmFzLW92ZXJsYXkoKTt9XHJcbn1cclxuXHJcbi51ay1vZmZjYW52YXMtb3ZlcmxheS51ay1vcGVuOjpiZWZvcmUgeyBvcGFjaXR5OiAxOyB9XHJcblxyXG5cclxuLyogUHJldmVudCBzY3JvbGxpbmdcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiBQcmV2ZW50IGhvcml6b250YWwgc2Nyb2xsYmFyIHdoZW4gdGhlIGNvbnRlbnQgaXMgc2xpZGUtb3V0XHJcbiAqIEhhcyB0byBiZSBvbiB0aGUgYGh0bWxgIGVsZW1lbnQgdG9vIHRvIG1ha2UgaXQgd29yayBvbiB0aGUgYGJvZHlgXHJcbiAqL1xyXG5cclxuLnVrLW9mZmNhbnZhcy1wYWdlLFxyXG4udWstb2ZmY2FudmFzLWNvbnRhaW5lciB7IG92ZXJmbG93LXg6IGhpZGRlbjsgfVxyXG5cclxuXHJcbi8qIENvbnRhaW5lclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIFByZXBhcmUgc2xpZGUtb3V0IGFuaW1hdGlvbiAoVXNlZCBpbiByZXZlYWwgYW5kIHB1c2ggbW9kZSlcclxuICogVXNpbmcgYHBvc2l0aW9uOiBsZWZ0YCBpbnN0ZWFkIG9mIGB0cmFuc2Zvcm1gIGJlY2F1c2UgcG9zaXRpb24gYGZpeGVkYCBlbGVtZW50cyBsaWtlIHN0aWNreSBuYXZiYXJzXHJcbiAqIGxvc2UgdGhlaXIgZml4ZWQgc3RhdGUgYW5kIGJlaGF2ZXMgbGlrZSBgYWJzb2x1dGVgIHdpdGhpbiBhIHRyYW5zZm9ybWVkIGNvbnRhaW5lclxyXG4gKiAxLiBQcm92aWRlIGEgZml4ZWQgd2lkdGggYW5kIHByZXZlbnQgc2hyaW5raW5nXHJcbiAqL1xyXG5cclxuLnVrLW9mZmNhbnZhcy1jb250YWluZXIge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRyYW5zaXRpb246IGxlZnQgMC4zcyBlYXNlLW91dDtcclxuICAgIC8qIDEgKi9cclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLypcclxuICogQWN0aXZhdGUgc2xpZGUtb3V0IGFuaW1hdGlvblxyXG4gKi9cclxuXHJcbjpub3QoLnVrLW9mZmNhbnZhcy1mbGlwKS51ay1vZmZjYW52YXMtY29udGFpbmVyLWFuaW1hdGlvbiB7IGxlZnQ6ICRvZmZjYW52YXMtYmFyLXdpZHRoOyB9XHJcblxyXG4udWstb2ZmY2FudmFzLWZsaXAudWstb2ZmY2FudmFzLWNvbnRhaW5lci1hbmltYXRpb24geyBsZWZ0OiAoLSRvZmZjYW52YXMtYmFyLXdpZHRoKTsgfVxyXG5cclxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXHJcbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcclxuXHJcbiAgICA6bm90KC51ay1vZmZjYW52YXMtZmxpcCkudWstb2ZmY2FudmFzLWNvbnRhaW5lci1hbmltYXRpb24geyBsZWZ0OiAkb2ZmY2FudmFzLWJhci13aWR0aC1tOyB9XHJcblxyXG4gICAgLnVrLW9mZmNhbnZhcy1mbGlwLnVrLW9mZmNhbnZhcy1jb250YWluZXItYW5pbWF0aW9uIHsgbGVmdDogKC0kb2ZmY2FudmFzLWJhci13aWR0aC1tKTsgfVxyXG5cclxufVxyXG5cclxuXHJcbi8vIEhvb2tzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuQGlmKG1peGluLWV4aXN0cyhob29rLW9mZmNhbnZhcy1taXNjKSkge0BpbmNsdWRlIGhvb2stb2ZmY2FudmFzLW1pc2MoKTt9XHJcblxyXG4vLyBAbWl4aW4gaG9vay1vZmZjYW52YXMtYmFyKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1vZmZjYW52YXMtY2xvc2UoKXt9XHJcbi8vIEBtaXhpbiBob29rLW9mZmNhbnZhcy1vdmVybGF5KCl7fVxyXG4vLyBAbWl4aW4gaG9vay1vZmZjYW52YXMtbWlzYygpe31cclxuIiwiLy8gTmFtZTogICAgICAgICAgICBUb29sdGlwXHJcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSB0b29sdGlwc1xyXG4vL1xyXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay10b29sdGlwYFxyXG4vL1xyXG4vLyBNb2RpZmllcnMgICAgICAgIGB1ay10b29sdGlwLXRvcGBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstdG9vbHRpcC10b3AtbGVmdGBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstdG9vbHRpcC10b3AtcmlnaHRgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRvb2x0aXAtYm90dG9tYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10b29sdGlwLWJvdHRvbS1sZWZ0YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10b29sdGlwLWJvdHRvbS1yaWdodGBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstdG9vbHRpcC1sZWZ0YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10b29sdGlwLXJpZ2h0YFxyXG4vL1xyXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1hY3RpdmVgXHJcbi8vXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuXHJcbi8vIFZhcmlhYmxlc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiR0b29sdGlwLXotaW5kZXg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXotaW5kZXggKyAzMCAhZGVmYXVsdDtcclxuJHRvb2x0aXAtbWF4LXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMHB4ICFkZWZhdWx0O1xyXG4kdG9vbHRpcC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICAgM3B4ICFkZWZhdWx0O1xyXG4kdG9vbHRpcC1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgICAgNnB4ICFkZWZhdWx0O1xyXG4kdG9vbHRpcC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzY2NiAhZGVmYXVsdDtcclxuJHRvb2x0aXAtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgICAgICAgICAgIDJweCAhZGVmYXVsdDtcclxuJHRvb2x0aXAtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtaW52ZXJzZS1jb2xvciAhZGVmYXVsdDtcclxuJHRvb2x0aXAtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEycHggIWRlZmF1bHQ7XHJcblxyXG4kdG9vbHRpcC1tYXJnaW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcclxuXHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBUb29sdGlwXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogMS4gSGlkZSBieSBkZWZhdWx0XHJcbiAqIDIuIFBvc2l0aW9uXHJcbiAqIDMuIERpbWVuc2lvbnNcclxuICogNC4gU3R5bGVcclxuICovXHJcblxyXG4udWstdG9vbHRpcCB7XHJcbiAgICAvKiAxICovXHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgLyogMiAqL1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgei1pbmRleDogJHRvb2x0aXAtei1pbmRleDtcclxuICAgIC8qIDMgKi9cclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBtYXgtd2lkdGg6ICR0b29sdGlwLW1heC13aWR0aDtcclxuICAgIHBhZGRpbmc6ICR0b29sdGlwLXBhZGRpbmctdmVydGljYWwgJHRvb2x0aXAtcGFkZGluZy1ob3Jpem9udGFsO1xyXG4gICAgLyogNCAqL1xyXG4gICAgYmFja2dyb3VuZDogJHRvb2x0aXAtYmFja2dyb3VuZDtcclxuICAgIGJvcmRlci1yYWRpdXM6ICR0b29sdGlwLWJvcmRlci1yYWRpdXM7XHJcbiAgICBjb2xvcjogJHRvb2x0aXAtY29sb3I7XHJcbiAgICBmb250LXNpemU6ICR0b29sdGlwLWZvbnQtc2l6ZTtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay10b29sdGlwKSkge0BpbmNsdWRlIGhvb2stdG9vbHRpcCgpO31cclxufVxyXG5cclxuLyogU2hvdyAqL1xyXG4udWstdG9vbHRpcC51ay1hY3RpdmUgeyBkaXNwbGF5OiBibG9jazsgfVxyXG5cclxuXHJcbi8qIERpcmVjdGlvbiAvIEFsaWdubWVudCBtb2RpZmllcnNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKiBEaXJlY3Rpb24gKi9cclxuW2NsYXNzKj0ndWstdG9vbHRpcC10b3AnXSB7IG1hcmdpbi10b3A6ICgtJHRvb2x0aXAtbWFyZ2luKTsgfVxyXG5bY2xhc3MqPSd1ay10b29sdGlwLWJvdHRvbSddIHsgbWFyZ2luLXRvcDogJHRvb2x0aXAtbWFyZ2luOyB9XHJcbltjbGFzcyo9J3VrLXRvb2x0aXAtbGVmdCddIHsgbWFyZ2luLWxlZnQ6ICgtJHRvb2x0aXAtbWFyZ2luKTsgfVxyXG5bY2xhc3MqPSd1ay10b29sdGlwLXJpZ2h0J10geyBtYXJnaW4tbGVmdDogJHRvb2x0aXAtbWFyZ2luOyB9XHJcblxyXG5cclxuLy8gSG9va3NcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stdG9vbHRpcC1taXNjKSkge0BpbmNsdWRlIGhvb2stdG9vbHRpcC1taXNjKCk7fVxyXG5cclxuLy8gQG1peGluIGhvb2stdG9vbHRpcCgpe31cclxuLy8gQG1peGluIGhvb2stdG9vbHRpcC1taXNjKCl7fVxyXG4iLCIvLyBOYW1lOiAgICAgICAgICAgIEFuaW1hdGlvblxyXG4vLyBEZXNjcmlwdGlvbjogICAgIFV0aWxpdGllcyBmb3Iga2V5ZnJhbWUgYW5pbWF0aW9uc1xyXG4vL1xyXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1hbmltYXRpb24tKmBcclxuLy9cclxuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstYW5pbWF0aW9uLWZhZGVgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWFuaW1hdGlvbi1zY2FsZS11cGBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstYW5pbWF0aW9uLXNjYWxlLWRvd25gXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWFuaW1hdGlvbi1zbGlkZS10b3AtKmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstYW5pbWF0aW9uLXNsaWRlLWJvdHRvbS0qYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1hbmltYXRpb24tc2xpZGUtbGVmdC0qYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1hbmltYXRpb24tc2xpZGUtcmlnaHQtKmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstYW5pbWF0aW9uLWtlbmJ1cm5zYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1hbmltYXRpb24tc2hha2VgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWFuaW1hdGlvbi1zdHJva2VgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWFuaW1hdGlvbi1yZXZlcnNlYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1hbmltYXRpb24tZmFzdGBcclxuLy9cclxuLy8gU3ViLW9iamVjdHM6ICAgICBgdWstYW5pbWF0aW9uLXRvZ2dsZWBcclxuLy9cclxuLy8gU3RhdGVzOiAgICAgICAgICBgdWstYWN0aXZlYFxyXG4vL1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcblxyXG4vLyBWYXJpYWJsZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4kYW5pbWF0aW9uLWR1cmF0aW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC41cyAhZGVmYXVsdDtcclxuJGFuaW1hdGlvbi1mYWRlLWR1cmF0aW9uOiAgICAgICAgICAgICAgICAgICAgICAgIDAuOHMgIWRlZmF1bHQ7XHJcbiRhbmltYXRpb24tc3Ryb2tlLWR1cmF0aW9uOiAgICAgICAgICAgICAgICAgICAgICAycyAhZGVmYXVsdDtcclxuJGFuaW1hdGlvbi1rZW5idXJucy1kdXJhdGlvbjogICAgICAgICAgICAgICAgICAgIDE1cyAhZGVmYXVsdDtcclxuJGFuaW1hdGlvbi1mYXN0LWR1cmF0aW9uOiAgICAgICAgICAgICAgICAgICAgICAgIDAuMXMgIWRlZmF1bHQ7XHJcblxyXG4kYW5pbWF0aW9uLXNsaWRlLXNtYWxsLXRyYW5zbGF0ZTogICAgICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcclxuJGFuaW1hdGlvbi1zbGlkZS1tZWRpdW0tdHJhbnNsYXRlOiAgICAgICAgICAgICAgIDUwcHggIWRlZmF1bHQ7XHJcblxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogQW5pbWF0aW9uXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuW2NsYXNzKj0ndWstYW5pbWF0aW9uLSddIHtcclxuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogJGFuaW1hdGlvbi1kdXJhdGlvbjtcclxuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xyXG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcclxufVxyXG5cclxuXHJcbi8qIEFuaW1hdGlvbnNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiBGYWRlXHJcbiAqL1xyXG5cclxuLnVrLWFuaW1hdGlvbi1mYWRlIHtcclxuICAgIGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlO1xyXG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAkYW5pbWF0aW9uLWZhZGUtZHVyYXRpb247XHJcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XHJcbn1cclxuXHJcbi8qXHJcbiAqIFNjYWxlXHJcbiAqL1xyXG5cclxuLnVrLWFuaW1hdGlvbi1zY2FsZS11cCB7IGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLXNjYWxlLTAyOyB9XHJcbi51ay1hbmltYXRpb24tc2NhbGUtZG93biB7IGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLXNjYWxlLTE4OyB9XHJcblxyXG4vKlxyXG4gKiBTbGlkZVxyXG4gKi9cclxuXHJcbi51ay1hbmltYXRpb24tc2xpZGUtdG9wIHsgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUtdG9wOyB9XHJcbi51ay1hbmltYXRpb24tc2xpZGUtYm90dG9tIHsgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUtYm90dG9tOyB9XHJcbi51ay1hbmltYXRpb24tc2xpZGUtbGVmdCB7IGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLWxlZnQ7IH1cclxuLnVrLWFuaW1hdGlvbi1zbGlkZS1yaWdodCB7IGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLXJpZ2h0OyB9XHJcblxyXG4vKlxyXG4gKiBTbGlkZSBTbWFsbFxyXG4gKi9cclxuXHJcbi51ay1hbmltYXRpb24tc2xpZGUtdG9wLXNtYWxsIHsgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUtdG9wLXNtYWxsOyB9XHJcbi51ay1hbmltYXRpb24tc2xpZGUtYm90dG9tLXNtYWxsIHsgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUtYm90dG9tLXNtYWxsOyB9XHJcbi51ay1hbmltYXRpb24tc2xpZGUtbGVmdC1zbWFsbCB7IGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLWxlZnQtc21hbGw7IH1cclxuLnVrLWFuaW1hdGlvbi1zbGlkZS1yaWdodC1zbWFsbCB7IGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLXJpZ2h0LXNtYWxsOyB9XHJcblxyXG4vKlxyXG4gKiBTbGlkZSBNZWRpdW1cclxuICovXHJcblxyXG4udWstYW5pbWF0aW9uLXNsaWRlLXRvcC1tZWRpdW0geyBhbmltYXRpb24tbmFtZTogdWstZmFkZS10b3AtbWVkaXVtOyB9XHJcbi51ay1hbmltYXRpb24tc2xpZGUtYm90dG9tLW1lZGl1bSB7IGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLWJvdHRvbS1tZWRpdW07IH1cclxuLnVrLWFuaW1hdGlvbi1zbGlkZS1sZWZ0LW1lZGl1bSB7IGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLWxlZnQtbWVkaXVtOyB9XHJcbi51ay1hbmltYXRpb24tc2xpZGUtcmlnaHQtbWVkaXVtIHsgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUtcmlnaHQtbWVkaXVtOyB9XHJcblxyXG4vKlxyXG4gKiBLZW5idXJuc1xyXG4gKi9cclxuXHJcbi51ay1hbmltYXRpb24ta2VuYnVybnMge1xyXG4gICAgYW5pbWF0aW9uLW5hbWU6IHVrLXNjYWxlLWtlbmJ1cm5zO1xyXG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAkYW5pbWF0aW9uLWtlbmJ1cm5zLWR1cmF0aW9uO1xyXG59XHJcblxyXG4vKlxyXG4gKiBTaGFrZVxyXG4gKi9cclxuXHJcbi51ay1hbmltYXRpb24tc2hha2UgeyBhbmltYXRpb24tbmFtZTogdWstc2hha2U7IH1cclxuXHJcbi8qXHJcbiAqIFNWRyBTdHJva2VcclxuICogVGhlIGAtLXVrLWFuaW1hdGlvbi1zdHJva2VgIGN1c3RvbSBwcm9wZXJ0eSBjb250YWlucyB0aGUgbG9uZ2VzdCBwYXRoIGxlbmd0aC5cclxuICogU2V0IGl0IG1hbnVhbGx5IG9yIHVzZSBgdWstc3ZnPVwic3Ryb2tlLWFuaW1hdGlvbjogdHJ1ZVwiYCB0byBzZXQgaXQgYXV0b21hdGljYWxseS5cclxuICogQWxsIHN0cm9rZXMgYXJlIGFuaW1hdGVkIGJ5IHRoZSBzYW1lIHBhY2UgYW5kIGRvZXNuJ3QgZW5kIHNpbXVsdGFuZW91c2x5LlxyXG4gKiBUbyBlbmQgc2ltdWx0YW5lb3VzbHksIGBwYXRoTGVuZ3RoPVwiMVwiYCBjb3VsZCBiZSB1c2VkLCBidXQgaXQncyBub3Qgd29ya2luZyBpbiBTYWZhcmkgeWV0LlxyXG4gKi9cclxuXHJcbi51ay1hbmltYXRpb24tc3Ryb2tlIHtcclxuICAgIGFuaW1hdGlvbi1uYW1lOiB1ay1zdHJva2U7XHJcbiAgICBzdHJva2UtZGFzaGFycmF5OiB2YXIoLS11ay1hbmltYXRpb24tc3Ryb2tlKTtcclxuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogJGFuaW1hdGlvbi1zdHJva2UtZHVyYXRpb247XHJcbn1cclxuXHJcblxyXG4vKiBEaXJlY3Rpb24gbW9kaWZpZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gLnVrLWFuaW1hdGlvbi1yZXZlcnNlIHtcclxuICAgIGFuaW1hdGlvbi1kaXJlY3Rpb246IHJldmVyc2U7XHJcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xyXG59XHJcblxyXG5cclxuLyogRHVyYXRpb24gbW9kaWZpZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gLnVrLWFuaW1hdGlvbi1mYXN0IHsgYW5pbWF0aW9uLWR1cmF0aW9uOiAkYW5pbWF0aW9uLWZhc3QtZHVyYXRpb247IH1cclxuXHJcblxyXG4vKiBUb2dnbGUgKEhvdmVyICsgRm9jdXMpXHJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiBUaGUgdG9nZ2xlIGlzIHRyaWdnZXJlZCBvbiB0b3VjaCBkZXZpY2VzIHVzaW5nIGA6Zm9jdXNgIGFuZCB0YWJpbmRleFxyXG4gKi9cclxuXHJcbi51ay1hbmltYXRpb24tdG9nZ2xlOm5vdCg6aG92ZXIpOm5vdCg6Zm9jdXMpIFtjbGFzcyo9J3VrLWFuaW1hdGlvbi0nXSB7IGFuaW1hdGlvbi1uYW1lOiBub25lOyB9XHJcblxyXG4vKlxyXG4gKiAxLiBQcmV2ZW50IHRhYiBoaWdobGlnaHRpbmcgb24gaU9TLlxyXG4gKi9cclxuXHJcbi51ay1hbmltYXRpb24tdG9nZ2xlIHtcclxuICAgIC8qIDEgKi9cclxuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi8qXHJcbiAqIFJlbW92ZSBvdXRsaW5lIGZvciBgdGFiaW5kZXhgXHJcbiAqL1xyXG5cclxuLnVrLWFuaW1hdGlvbi10b2dnbGU6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyB9XHJcblxyXG5cclxuLyogS2V5ZnJhbWVzIHVzZWQgYnkgYW5pbWF0aW9uIGNsYXNzZXNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiBGYWRlXHJcbiAqL1xyXG5cclxuQGtleWZyYW1lcyB1ay1mYWRlIHtcclxuICAgIDAlIHsgb3BhY2l0eTogMDsgfVxyXG4gICAgMTAwJSB7IG9wYWNpdHk6IDE7IH1cclxufVxyXG5cclxuLypcclxuICogU2xpZGUgVG9wXHJcbiAqL1xyXG5cclxuQGtleWZyYW1lcyB1ay1mYWRlLXRvcCB7XHJcbiAgICAwJSB7XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xyXG4gICAgfVxyXG4gICAgMTAwJSB7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qXHJcbiAqIFNsaWRlIEJvdHRvbVxyXG4gKi9cclxuXHJcbkBrZXlmcmFtZXMgdWstZmFkZS1ib3R0b20ge1xyXG4gICAgMCUge1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xyXG4gICAgfVxyXG4gICAgMTAwJSB7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qXHJcbiAqIFNsaWRlIExlZnRcclxuICovXHJcblxyXG5Aa2V5ZnJhbWVzIHVrLWZhZGUtbGVmdCB7XHJcbiAgICAwJSB7XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xyXG4gICAgfVxyXG4gICAgMTAwJSB7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qXHJcbiAqIFNsaWRlIFJpZ2h0XHJcbiAqL1xyXG5cclxuQGtleWZyYW1lcyB1ay1mYWRlLXJpZ2h0IHtcclxuICAgIDAlIHtcclxuICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcclxuICAgIH1cclxuICAgIDEwMCUge1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKlxyXG4gKiBTbGlkZSBUb3AgU21hbGxcclxuICovXHJcblxyXG5Aa2V5ZnJhbWVzIHVrLWZhZGUtdG9wLXNtYWxsIHtcclxuICAgIDAlIHtcclxuICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGFuaW1hdGlvbi1zbGlkZS1zbWFsbC10cmFuc2xhdGUpO1xyXG4gICAgfVxyXG4gICAgMTAwJSB7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qXHJcbiAqIFNsaWRlIEJvdHRvbSBTbWFsbFxyXG4gKi9cclxuXHJcbkBrZXlmcmFtZXMgdWstZmFkZS1ib3R0b20tc21hbGwge1xyXG4gICAgMCUge1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRhbmltYXRpb24tc2xpZGUtc21hbGwtdHJhbnNsYXRlKTtcclxuICAgIH1cclxuICAgIDEwMCUge1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKlxyXG4gKiBTbGlkZSBMZWZ0IFNtYWxsXHJcbiAqL1xyXG5cclxuQGtleWZyYW1lcyB1ay1mYWRlLWxlZnQtc21hbGwge1xyXG4gICAgMCUge1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kYW5pbWF0aW9uLXNsaWRlLXNtYWxsLXRyYW5zbGF0ZSk7XHJcbiAgICB9XHJcbiAgICAxMDAlIHtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcclxuICAgIH1cclxufVxyXG5cclxuLypcclxuICogU2xpZGUgUmlnaHQgU21hbGxcclxuICovXHJcblxyXG5Aa2V5ZnJhbWVzIHVrLWZhZGUtcmlnaHQtc21hbGwge1xyXG4gICAgMCUge1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRhbmltYXRpb24tc2xpZGUtc21hbGwtdHJhbnNsYXRlKTtcclxuICAgIH1cclxuICAgIDEwMCUge1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKlxyXG4gKiBTbGlkZSBUb3AgTWVkaXVtXHJcbiAqL1xyXG5cclxuQGtleWZyYW1lcyB1ay1mYWRlLXRvcC1tZWRpdW0ge1xyXG4gICAgMCUge1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kYW5pbWF0aW9uLXNsaWRlLW1lZGl1bS10cmFuc2xhdGUpO1xyXG4gICAgfVxyXG4gICAgMTAwJSB7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qXHJcbiAqIFNsaWRlIEJvdHRvbSBNZWRpdW1cclxuICovXHJcblxyXG5Aa2V5ZnJhbWVzIHVrLWZhZGUtYm90dG9tLW1lZGl1bSB7XHJcbiAgICAwJSB7XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJGFuaW1hdGlvbi1zbGlkZS1tZWRpdW0tdHJhbnNsYXRlKTtcclxuICAgIH1cclxuICAgIDEwMCUge1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKlxyXG4gKiBTbGlkZSBMZWZ0IE1lZGl1bVxyXG4gKi9cclxuXHJcbkBrZXlmcmFtZXMgdWstZmFkZS1sZWZ0LW1lZGl1bSB7XHJcbiAgICAwJSB7XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRhbmltYXRpb24tc2xpZGUtbWVkaXVtLXRyYW5zbGF0ZSk7XHJcbiAgICB9XHJcbiAgICAxMDAlIHtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcclxuICAgIH1cclxufVxyXG5cclxuLypcclxuICogU2xpZGUgUmlnaHQgTWVkaXVtXHJcbiAqL1xyXG5cclxuQGtleWZyYW1lcyB1ay1mYWRlLXJpZ2h0LW1lZGl1bSB7XHJcbiAgICAwJSB7XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJGFuaW1hdGlvbi1zbGlkZS1tZWRpdW0tdHJhbnNsYXRlKTtcclxuICAgIH1cclxuICAgIDEwMCUge1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKlxyXG4gKiBTY2FsZSBVcFxyXG4gKi9cclxuXHJcbkBrZXlmcmFtZXMgdWstZmFkZS1zY2FsZS0wMiB7XHJcbiAgICAwJSB7XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMik7XHJcbiAgICB9XHJcbiAgICAxMDAlIHtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qXHJcbiAqIFNjYWxlIERvd25cclxuICovXHJcblxyXG5Aa2V5ZnJhbWVzIHVrLWZhZGUtc2NhbGUtMTgge1xyXG4gICAgMCUge1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjgpO1xyXG4gICAgfVxyXG4gICAgMTAwJSB7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKlxyXG4gKiBLZW5idXJuc1xyXG4gKi9cclxuXHJcbkBrZXlmcmFtZXMgdWstc2NhbGUta2VuYnVybnMge1xyXG4gICAgMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XHJcbiAgICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjIpOyB9XHJcbn1cclxuXHJcbi8qXHJcbiAqIFNoYWtlXHJcbiAqL1xyXG5cclxuQGtleWZyYW1lcyB1ay1zaGFrZSB7XHJcbiAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxyXG4gICAgMTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC05cHgpOyB9XHJcbiAgICAyMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoOHB4KTsgfVxyXG4gICAgMzAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03cHgpOyB9XHJcbiAgICA0MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNnB4KTsgfVxyXG4gICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01cHgpOyB9XHJcbiAgICA2MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNHB4KTsgfVxyXG4gICAgNzAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zcHgpOyB9XHJcbiAgICA4MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KTsgfVxyXG4gICAgOTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xcHgpOyB9XHJcbn1cclxuXHJcbi8qXHJcbiAqIFN0cm9rZVxyXG4gKi9cclxuXHJcbiBAa2V5ZnJhbWVzIHVrLXN0cm9rZSB7XHJcbiAgICAwJSB7IHN0cm9rZS1kYXNob2Zmc2V0OiB2YXIoLS11ay1hbmltYXRpb24tc3Ryb2tlKTsgfVxyXG4gICAgMTAwJSB7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyB9XHJcbn1cclxuXHJcblxyXG4vLyBIb29rc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbkBpZihtaXhpbi1leGlzdHMoaG9vay1hbmltYXRpb24tbWlzYykpIHtAaW5jbHVkZSBob29rLWFuaW1hdGlvbi1taXNjKCk7fVxyXG5cclxuLy8gQG1peGluIGhvb2stYW5pbWF0aW9uLW1pc2MoKXt9XHJcbiIsIi8vIE5hbWU6ICAgICAgICAgICAgV2lkdGhcclxuLy8gRGVzY3JpcHRpb246ICAgICBVdGlsaXRpZXMgZm9yIHdpZHRoc1xyXG4vL1xyXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1jaGlsZC13aWR0aC0qYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay13aWR0aC0qYFxyXG4vL1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcblxyXG4vLyBWYXJpYWJsZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4kd2lkdGgtc21hbGwtd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUwcHggIWRlZmF1bHQ7XHJcbiR3aWR0aC1tZWRpdW0td2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMDBweCAhZGVmYXVsdDtcclxuJHdpZHRoLWxhcmdlLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ1MHB4ICFkZWZhdWx0O1xyXG4kd2lkdGgteGxhcmdlLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjAwcHggIWRlZmF1bHQ7XHJcbiR3aWR0aC14eGxhcmdlLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICA3NTBweCAhZGVmYXVsdDtcclxuXHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBXaWR0aFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcblxyXG4vKiBFcXVhbCBjaGlsZCB3aWR0aHNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5bY2xhc3MqPSd1ay1jaGlsZC13aWR0aCddID4gKiB7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi51ay1jaGlsZC13aWR0aC0xLTIgPiAqIHsgd2lkdGg6IDUwJTsgfVxyXG4udWstY2hpbGQtd2lkdGgtMS0zID4gKiB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAxIC8gMy4wMDEpJyk7IH1cclxuLnVrLWNoaWxkLXdpZHRoLTEtNCA+ICogeyB3aWR0aDogMjUlOyB9XHJcbi51ay1jaGlsZC13aWR0aC0xLTUgPiAqIHsgd2lkdGg6IDIwJTsgfVxyXG4udWstY2hpbGQtd2lkdGgtMS02ID4gKiB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAxIC8gNi4wMDEpJyk7IH1cclxuXHJcbi51ay1jaGlsZC13aWR0aC1hdXRvID4gKiB7IHdpZHRoOiBhdXRvOyB9XHJcblxyXG4vKlxyXG4gKiAxLiBSZXNldCB0aGUgYG1pbi13aWR0aGAsIHdoaWNoIGlzIHNldCB0byBhdXRvIGJ5IGRlZmF1bHQsIGJlY2F1c2VcclxuICogICAgZmxleCBpdGVtcyB3b24ndCBzaHJpbmsgYmVsb3cgdGhlaXIgbWluaW11bSBpbnRyaW5zaWMgY29udGVudCBzaXplLlxyXG4gKiAgICBVc2luZyBgMXB4YCBpbnN0ZWFkIG9mIGAwYCwgc28gaXRlbXMgc3RpbGwgd3JhcCBpbnRvIHRoZSBuZXh0IGxpbmUsXHJcbiAqICAgIGlmIHRoZXkgaGF2ZSB6ZXJvIHdpZHRoIGFuZCBwYWRkaW5nIGFuZCB0aGUgcHJlZGVjZXNzb3IgaXMgMTAwJSB3aWRlLlxyXG4gKi9cclxuXHJcbi51ay1jaGlsZC13aWR0aC1leHBhbmQgPiA6bm90KFtjbGFzcyo9J3VrLXdpZHRoJ10pIHtcclxuICAgIGZsZXg6IDE7XHJcbiAgICAvKiAxICovXHJcbiAgICBtaW4td2lkdGg6IDFweDtcclxufVxyXG5cclxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXNtYWxsKSB7XHJcblxyXG4gICAgLnVrLWNoaWxkLXdpZHRoLTEtMVxcQHMgPiAqIHsgd2lkdGg6IDEwMCU7IH1cclxuICAgIC51ay1jaGlsZC13aWR0aC0xLTJcXEBzID4gKiB7IHdpZHRoOiA1MCU7IH1cclxuICAgIC51ay1jaGlsZC13aWR0aC0xLTNcXEBzID4gKiB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAxIC8gMy4wMDEpJyk7IH1cclxuICAgIC51ay1jaGlsZC13aWR0aC0xLTRcXEBzID4gKiB7IHdpZHRoOiAyNSU7IH1cclxuICAgIC51ay1jaGlsZC13aWR0aC0xLTVcXEBzID4gKiB7IHdpZHRoOiAyMCU7IH1cclxuICAgIC51ay1jaGlsZC13aWR0aC0xLTZcXEBzID4gKiB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAxIC8gNi4wMDEpJyk7IH1cclxuXHJcbiAgICAudWstY2hpbGQtd2lkdGgtYXV0b1xcQHMgPiAqIHsgd2lkdGg6IGF1dG87IH1cclxuICAgIC51ay1jaGlsZC13aWR0aC1leHBhbmRcXEBzID4gOm5vdChbY2xhc3MqPSd1ay13aWR0aCddKSB7XHJcbiAgICAgICAgZmxleDogMTtcclxuICAgICAgICBtaW4td2lkdGg6IDFweDtcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XHJcblxyXG4gICAgLnVrLWNoaWxkLXdpZHRoLTEtMVxcQG0gPiAqIHsgd2lkdGg6IDEwMCU7IH1cclxuICAgIC51ay1jaGlsZC13aWR0aC0xLTJcXEBtID4gKiB7IHdpZHRoOiA1MCU7IH1cclxuICAgIC51ay1jaGlsZC13aWR0aC0xLTNcXEBtID4gKiB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAxIC8gMy4wMDEpJyk7IH1cclxuICAgIC51ay1jaGlsZC13aWR0aC0xLTRcXEBtID4gKiB7IHdpZHRoOiAyNSU7IH1cclxuICAgIC51ay1jaGlsZC13aWR0aC0xLTVcXEBtID4gKiB7IHdpZHRoOiAyMCU7IH1cclxuICAgIC51ay1jaGlsZC13aWR0aC0xLTZcXEBtID4gKiB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAxIC8gNi4wMDEpJyk7IH1cclxuXHJcbiAgICAudWstY2hpbGQtd2lkdGgtYXV0b1xcQG0gPiAqIHsgd2lkdGg6IGF1dG87IH1cclxuICAgIC51ay1jaGlsZC13aWR0aC1leHBhbmRcXEBtID4gOm5vdChbY2xhc3MqPSd1ay13aWR0aCddKSB7XHJcbiAgICAgICAgZmxleDogMTtcclxuICAgICAgICBtaW4td2lkdGg6IDFweDtcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UpIHtcclxuXHJcbiAgICAudWstY2hpbGQtd2lkdGgtMS0xXFxAbCA+ICogeyB3aWR0aDogMTAwJTsgfVxyXG4gICAgLnVrLWNoaWxkLXdpZHRoLTEtMlxcQGwgPiAqIHsgd2lkdGg6IDUwJTsgfVxyXG4gICAgLnVrLWNoaWxkLXdpZHRoLTEtM1xcQGwgPiAqIHsgd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSAqIDEgLyAzLjAwMSknKTsgfVxyXG4gICAgLnVrLWNoaWxkLXdpZHRoLTEtNFxcQGwgPiAqIHsgd2lkdGg6IDI1JTsgfVxyXG4gICAgLnVrLWNoaWxkLXdpZHRoLTEtNVxcQGwgPiAqIHsgd2lkdGg6IDIwJTsgfVxyXG4gICAgLnVrLWNoaWxkLXdpZHRoLTEtNlxcQGwgPiAqIHsgd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSAqIDEgLyA2LjAwMSknKTsgfVxyXG5cclxuICAgIC51ay1jaGlsZC13aWR0aC1hdXRvXFxAbCA+ICogeyB3aWR0aDogYXV0bzsgfVxyXG4gICAgLnVrLWNoaWxkLXdpZHRoLWV4cGFuZFxcQGwgPiA6bm90KFtjbGFzcyo9J3VrLXdpZHRoJ10pIHtcclxuICAgICAgICBmbGV4OiAxO1xyXG4gICAgICAgIG1pbi13aWR0aDogMXB4O1xyXG4gICAgfVxyXG5cclxufVxyXG5cclxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXhsYXJnZSkge1xyXG5cclxuICAgIC51ay1jaGlsZC13aWR0aC0xLTFcXEB4bCA+ICogeyB3aWR0aDogMTAwJTsgfVxyXG4gICAgLnVrLWNoaWxkLXdpZHRoLTEtMlxcQHhsID4gKiB7IHdpZHRoOiA1MCU7IH1cclxuICAgIC51ay1jaGlsZC13aWR0aC0xLTNcXEB4bCA+ICogeyB3aWR0aDogdW5xdW90ZSgnY2FsYygxMDAlICogMSAvIDMuMDAxKScpOyB9XHJcbiAgICAudWstY2hpbGQtd2lkdGgtMS00XFxAeGwgPiAqIHsgd2lkdGg6IDI1JTsgfVxyXG4gICAgLnVrLWNoaWxkLXdpZHRoLTEtNVxcQHhsID4gKiB7IHdpZHRoOiAyMCU7IH1cclxuICAgIC51ay1jaGlsZC13aWR0aC0xLTZcXEB4bCA+ICogeyB3aWR0aDogdW5xdW90ZSgnY2FsYygxMDAlICogMSAvIDYuMDAxKScpOyB9XHJcblxyXG4gICAgLnVrLWNoaWxkLXdpZHRoLWF1dG9cXEB4bCA+ICogeyB3aWR0aDogYXV0bzsgfVxyXG4gICAgLnVrLWNoaWxkLXdpZHRoLWV4cGFuZFxcQHhsID4gOm5vdChbY2xhc3MqPSd1ay13aWR0aCddKSB7XHJcbiAgICAgICAgZmxleDogMTtcclxuICAgICAgICBtaW4td2lkdGg6IDFweDtcclxuICAgIH1cclxuXHJcbn1cclxuXHJcblxyXG4vKiBTaW5nbGUgV2lkdGhzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogMS4gYG1heC13aWR0aGAgaXMgbmVlZGVkIGZvciB0aGUgcGl4ZWwtYmFzZWQgY2xhc3Nlc1xyXG4gKi9cclxuXHJcbltjbGFzcyo9J3VrLXdpZHRoJ10ge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgLyogMSAqL1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4vKiBIYWx2ZXMgKi9cclxuLnVrLXdpZHRoLTEtMiB7IHdpZHRoOiA1MCU7IH1cclxuXHJcbi8qIFRoaXJkcyAqL1xyXG4udWstd2lkdGgtMS0zIHsgd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSAqIDEgLyAzLjAwMSknKTsgfVxyXG4udWstd2lkdGgtMi0zIHsgd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSAqIDIgLyAzLjAwMSknKTsgfVxyXG5cclxuLyogUXVhcnRlcnMgKi9cclxuLnVrLXdpZHRoLTEtNCB7IHdpZHRoOiAyNSU7IH1cclxuLnVrLXdpZHRoLTMtNCB7IHdpZHRoOiA3NSU7IH1cclxuXHJcbi8qIEZpZnRocyAqL1xyXG4udWstd2lkdGgtMS01IHsgd2lkdGg6IDIwJTsgfVxyXG4udWstd2lkdGgtMi01IHsgd2lkdGg6IDQwJTsgfVxyXG4udWstd2lkdGgtMy01IHsgd2lkdGg6IDYwJTsgfVxyXG4udWstd2lkdGgtNC01IHsgd2lkdGg6IDgwJTsgfVxyXG5cclxuLyogU2l4dGhzICovXHJcbi51ay13aWR0aC0xLTYgeyB3aWR0aDogdW5xdW90ZSgnY2FsYygxMDAlICogMSAvIDYuMDAxKScpOyB9XHJcbi51ay13aWR0aC01LTYgeyB3aWR0aDogdW5xdW90ZSgnY2FsYygxMDAlICogNSAvIDYuMDAxKScpOyB9XHJcblxyXG4vKiBQaXhlbCAqL1xyXG4udWstd2lkdGgtc21hbGwgeyB3aWR0aDogJHdpZHRoLXNtYWxsLXdpZHRoOyB9XHJcbi51ay13aWR0aC1tZWRpdW0geyB3aWR0aDogJHdpZHRoLW1lZGl1bS13aWR0aDsgfVxyXG4udWstd2lkdGgtbGFyZ2UgeyB3aWR0aDogJHdpZHRoLWxhcmdlLXdpZHRoOyB9XHJcbi51ay13aWR0aC14bGFyZ2UgeyB3aWR0aDogJHdpZHRoLXhsYXJnZS13aWR0aDsgfVxyXG4udWstd2lkdGgteHhsYXJnZSB7IHdpZHRoOiAkd2lkdGgteHhsYXJnZS13aWR0aDsgfVxyXG5cclxuLyogQXV0byAqL1xyXG4udWstd2lkdGgtYXV0byB7IHdpZHRoOiBhdXRvOyB9XHJcblxyXG4vKiBFeHBhbmQgKi9cclxuLnVrLXdpZHRoLWV4cGFuZCB7XHJcbiAgICBmbGV4OiAxO1xyXG4gICAgbWluLXdpZHRoOiAxcHg7XHJcbn1cclxuXHJcbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXHJcbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbCkge1xyXG5cclxuICAgIC8qIFdob2xlICovXHJcbiAgICAudWstd2lkdGgtMS0xXFxAcyB7IHdpZHRoOiAxMDAlOyB9XHJcblxyXG4gICAgLyogSGFsdmVzICovXHJcbiAgICAudWstd2lkdGgtMS0yXFxAcyB7IHdpZHRoOiA1MCU7IH1cclxuXHJcbiAgICAvKiBUaGlyZHMgKi9cclxuICAgIC51ay13aWR0aC0xLTNcXEBzIHsgd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSAqIDEgLyAzLjAwMSknKTsgfVxyXG4gICAgLnVrLXdpZHRoLTItM1xcQHMgeyB3aWR0aDogdW5xdW90ZSgnY2FsYygxMDAlICogMiAvIDMuMDAxKScpOyB9XHJcblxyXG4gICAgLyogUXVhcnRlcnMgKi9cclxuICAgIC51ay13aWR0aC0xLTRcXEBzIHsgd2lkdGg6IDI1JTsgfVxyXG4gICAgLnVrLXdpZHRoLTMtNFxcQHMgeyB3aWR0aDogNzUlOyB9XHJcblxyXG4gICAgLyogRmlmdGhzICovXHJcbiAgICAudWstd2lkdGgtMS01XFxAcyB7IHdpZHRoOiAyMCU7IH1cclxuICAgIC51ay13aWR0aC0yLTVcXEBzIHsgd2lkdGg6IDQwJTsgfVxyXG4gICAgLnVrLXdpZHRoLTMtNVxcQHMgeyB3aWR0aDogNjAlOyB9XHJcbiAgICAudWstd2lkdGgtNC01XFxAcyB7IHdpZHRoOiA4MCU7IH1cclxuXHJcbiAgICAvKiBTaXh0aHMgKi9cclxuICAgIC51ay13aWR0aC0xLTZcXEBzIHsgd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSAqIDEgLyA2LjAwMSknKTsgfVxyXG4gICAgLnVrLXdpZHRoLTUtNlxcQHMgeyB3aWR0aDogdW5xdW90ZSgnY2FsYygxMDAlICogNSAvIDYuMDAxKScpOyB9XHJcblxyXG4gICAgLyogUGl4ZWwgKi9cclxuICAgIC51ay13aWR0aC1zbWFsbFxcQHMgeyB3aWR0aDogJHdpZHRoLXNtYWxsLXdpZHRoOyB9XHJcbiAgICAudWstd2lkdGgtbWVkaXVtXFxAcyB7IHdpZHRoOiAkd2lkdGgtbWVkaXVtLXdpZHRoOyB9XHJcbiAgICAudWstd2lkdGgtbGFyZ2VcXEBzIHsgd2lkdGg6ICR3aWR0aC1sYXJnZS13aWR0aDsgfVxyXG4gICAgLnVrLXdpZHRoLXhsYXJnZVxcQHMgeyB3aWR0aDogJHdpZHRoLXhsYXJnZS13aWR0aDsgfVxyXG4gICAgLnVrLXdpZHRoLXh4bGFyZ2VcXEBzIHsgd2lkdGg6ICR3aWR0aC14eGxhcmdlLXdpZHRoOyB9XHJcblxyXG4gICAgLyogQXV0byAqL1xyXG4gICAgLnVrLXdpZHRoLWF1dG9cXEBzIHsgd2lkdGg6IGF1dG87IH1cclxuXHJcbiAgICAvKiBFeHBhbmQgKi9cclxuICAgIC51ay13aWR0aC1leHBhbmRcXEBzIHtcclxuICAgICAgICBmbGV4OiAxO1xyXG4gICAgICAgIG1pbi13aWR0aDogMXB4O1xyXG4gICAgfVxyXG5cclxufVxyXG5cclxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXHJcbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcclxuXHJcbiAgICAvKiBXaG9sZSAqL1xyXG4gICAgLnVrLXdpZHRoLTEtMVxcQG0geyB3aWR0aDogMTAwJTsgfVxyXG5cclxuICAgIC8qIEhhbHZlcyAqL1xyXG4gICAgLnVrLXdpZHRoLTEtMlxcQG0geyB3aWR0aDogNTAlOyB9XHJcblxyXG4gICAgLyogVGhpcmRzICovXHJcbiAgICAudWstd2lkdGgtMS0zXFxAbSB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAxIC8gMy4wMDEpJyk7IH1cclxuICAgIC51ay13aWR0aC0yLTNcXEBtIHsgd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSAqIDIgLyAzLjAwMSknKTsgfVxyXG5cclxuICAgIC8qIFF1YXJ0ZXJzICovXHJcbiAgICAudWstd2lkdGgtMS00XFxAbSB7IHdpZHRoOiAyNSU7IH1cclxuICAgIC51ay13aWR0aC0zLTRcXEBtIHsgd2lkdGg6IDc1JTsgfVxyXG5cclxuICAgIC8qIEZpZnRocyAqL1xyXG4gICAgLnVrLXdpZHRoLTEtNVxcQG0geyB3aWR0aDogMjAlOyB9XHJcbiAgICAudWstd2lkdGgtMi01XFxAbSB7IHdpZHRoOiA0MCU7IH1cclxuICAgIC51ay13aWR0aC0zLTVcXEBtIHsgd2lkdGg6IDYwJTsgfVxyXG4gICAgLnVrLXdpZHRoLTQtNVxcQG0geyB3aWR0aDogODAlOyB9XHJcblxyXG4gICAgLyogU2l4dGhzICovXHJcbiAgICAudWstd2lkdGgtMS02XFxAbSB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAxIC8gNi4wMDEpJyk7IH1cclxuICAgIC51ay13aWR0aC01LTZcXEBtIHsgd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSAqIDUgLyA2LjAwMSknKTsgfVxyXG5cclxuICAgIC8qIFBpeGVsICovXHJcbiAgICAudWstd2lkdGgtc21hbGxcXEBtIHsgd2lkdGg6ICR3aWR0aC1zbWFsbC13aWR0aDsgfVxyXG4gICAgLnVrLXdpZHRoLW1lZGl1bVxcQG0geyB3aWR0aDogJHdpZHRoLW1lZGl1bS13aWR0aDsgfVxyXG4gICAgLnVrLXdpZHRoLWxhcmdlXFxAbSB7IHdpZHRoOiAkd2lkdGgtbGFyZ2Utd2lkdGg7IH1cclxuICAgIC51ay13aWR0aC14bGFyZ2VcXEBtIHsgd2lkdGg6ICR3aWR0aC14bGFyZ2Utd2lkdGg7IH1cclxuICAgIC51ay13aWR0aC14eGxhcmdlXFxAbSB7IHdpZHRoOiAkd2lkdGgteHhsYXJnZS13aWR0aDsgfVxyXG5cclxuICAgICAvKiBBdXRvICovXHJcbiAgICAudWstd2lkdGgtYXV0b1xcQG0geyB3aWR0aDogYXV0bzsgfVxyXG5cclxuICAgIC8qIEV4cGFuZCAqL1xyXG4gICAgLnVrLXdpZHRoLWV4cGFuZFxcQG0ge1xyXG4gICAgICAgIGZsZXg6IDE7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxcHg7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LWxhcmdlKSB7XHJcblxyXG4gICAgLyogV2hvbGUgKi9cclxuICAgIC51ay13aWR0aC0xLTFcXEBsIHsgd2lkdGg6IDEwMCU7IH1cclxuXHJcbiAgICAvKiBIYWx2ZXMgKi9cclxuICAgIC51ay13aWR0aC0xLTJcXEBsIHsgd2lkdGg6IDUwJTsgfVxyXG5cclxuICAgIC8qIFRoaXJkcyAqL1xyXG4gICAgLnVrLXdpZHRoLTEtM1xcQGwgeyB3aWR0aDogdW5xdW90ZSgnY2FsYygxMDAlICogMSAvIDMuMDAxKScpOyB9XHJcbiAgICAudWstd2lkdGgtMi0zXFxAbCB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAyIC8gMy4wMDEpJyk7IH1cclxuXHJcbiAgICAvKiBRdWFydGVycyAqL1xyXG4gICAgLnVrLXdpZHRoLTEtNFxcQGwgeyB3aWR0aDogMjUlOyB9XHJcbiAgICAudWstd2lkdGgtMy00XFxAbCB7IHdpZHRoOiA3NSU7IH1cclxuXHJcbiAgICAvKiBGaWZ0aHMgKi9cclxuICAgIC51ay13aWR0aC0xLTVcXEBsIHsgd2lkdGg6IDIwJTsgfVxyXG4gICAgLnVrLXdpZHRoLTItNVxcQGwgeyB3aWR0aDogNDAlOyB9XHJcbiAgICAudWstd2lkdGgtMy01XFxAbCB7IHdpZHRoOiA2MCU7IH1cclxuICAgIC51ay13aWR0aC00LTVcXEBsIHsgd2lkdGg6IDgwJTsgfVxyXG5cclxuICAgIC8qIFNpeHRocyAqL1xyXG4gICAgLnVrLXdpZHRoLTEtNlxcQGwgeyB3aWR0aDogdW5xdW90ZSgnY2FsYygxMDAlICogMSAvIDYuMDAxKScpOyB9XHJcbiAgICAudWstd2lkdGgtNS02XFxAbCB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiA1IC8gNi4wMDEpJyk7IH1cclxuXHJcbiAgICAvKiBQaXhlbCAqL1xyXG4gICAgLnVrLXdpZHRoLXNtYWxsXFxAbCB7IHdpZHRoOiAkd2lkdGgtc21hbGwtd2lkdGg7IH1cclxuICAgIC51ay13aWR0aC1tZWRpdW1cXEBsIHsgd2lkdGg6ICR3aWR0aC1tZWRpdW0td2lkdGg7IH1cclxuICAgIC51ay13aWR0aC1sYXJnZVxcQGwgeyB3aWR0aDogJHdpZHRoLWxhcmdlLXdpZHRoOyB9XHJcbiAgICAudWstd2lkdGgteGxhcmdlXFxAbCB7IHdpZHRoOiAkd2lkdGgteGxhcmdlLXdpZHRoOyB9XHJcbiAgICAudWstd2lkdGgteHhsYXJnZVxcQGwgeyB3aWR0aDogJHdpZHRoLXh4bGFyZ2Utd2lkdGg7IH1cclxuXHJcbiAgICAvKiBBdXRvICovXHJcbiAgICAudWstd2lkdGgtYXV0b1xcQGwgeyB3aWR0aDogYXV0bzsgfVxyXG5cclxuICAgIC8qIEV4cGFuZCAqL1xyXG4gICAgLnVrLXdpZHRoLWV4cGFuZFxcQGwge1xyXG4gICAgICAgIGZsZXg6IDE7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxcHg7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4vKiBMYXJnZSBzY3JlZW4gYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQteGxhcmdlKSB7XHJcblxyXG4gICAgLyogV2hvbGUgKi9cclxuICAgIC51ay13aWR0aC0xLTFcXEB4bCB7IHdpZHRoOiAxMDAlOyB9XHJcblxyXG4gICAgLyogSGFsdmVzICovXHJcbiAgICAudWstd2lkdGgtMS0yXFxAeGwgeyB3aWR0aDogNTAlOyB9XHJcblxyXG4gICAgLyogVGhpcmRzICovXHJcbiAgICAudWstd2lkdGgtMS0zXFxAeGwgeyB3aWR0aDogdW5xdW90ZSgnY2FsYygxMDAlICogMSAvIDMuMDAxKScpOyB9XHJcbiAgICAudWstd2lkdGgtMi0zXFxAeGwgeyB3aWR0aDogdW5xdW90ZSgnY2FsYygxMDAlICogMiAvIDMuMDAxKScpOyB9XHJcblxyXG4gICAgLyogUXVhcnRlcnMgKi9cclxuICAgIC51ay13aWR0aC0xLTRcXEB4bCB7IHdpZHRoOiAyNSU7IH1cclxuICAgIC51ay13aWR0aC0zLTRcXEB4bCB7IHdpZHRoOiA3NSU7IH1cclxuXHJcbiAgICAvKiBGaWZ0aHMgKi9cclxuICAgIC51ay13aWR0aC0xLTVcXEB4bCB7IHdpZHRoOiAyMCU7IH1cclxuICAgIC51ay13aWR0aC0yLTVcXEB4bCB7IHdpZHRoOiA0MCU7IH1cclxuICAgIC51ay13aWR0aC0zLTVcXEB4bCB7IHdpZHRoOiA2MCU7IH1cclxuICAgIC51ay13aWR0aC00LTVcXEB4bCB7IHdpZHRoOiA4MCU7IH1cclxuXHJcbiAgICAvKiBTaXh0aHMgKi9cclxuICAgIC51ay13aWR0aC0xLTZcXEB4bCB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiAxIC8gNi4wMDEpJyk7IH1cclxuICAgIC51ay13aWR0aC01LTZcXEB4bCB7IHdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgKiA1IC8gNi4wMDEpJyk7IH1cclxuXHJcbiAgICAvKiBQaXhlbCAqL1xyXG4gICAgLnVrLXdpZHRoLXNtYWxsXFxAeGwgeyB3aWR0aDogJHdpZHRoLXNtYWxsLXdpZHRoOyB9XHJcbiAgICAudWstd2lkdGgtbWVkaXVtXFxAeGwgeyB3aWR0aDogJHdpZHRoLW1lZGl1bS13aWR0aDsgfVxyXG4gICAgLnVrLXdpZHRoLWxhcmdlXFxAeGwgeyB3aWR0aDogJHdpZHRoLWxhcmdlLXdpZHRoOyB9XHJcbiAgICAudWstd2lkdGgteGxhcmdlXFxAeGwgeyB3aWR0aDogJHdpZHRoLXhsYXJnZS13aWR0aDsgfVxyXG4gICAgLnVrLXdpZHRoLXh4bGFyZ2VcXEB4bCB7IHdpZHRoOiAkd2lkdGgteHhsYXJnZS13aWR0aDsgfVxyXG5cclxuICAgIC8qIEF1dG8gKi9cclxuICAgIC51ay13aWR0aC1hdXRvXFxAeGwgeyB3aWR0aDogYXV0bzsgfVxyXG5cclxuICAgIC8qIEV4cGFuZCAqL1xyXG4gICAgLnVrLXdpZHRoLWV4cGFuZFxcQHhsIHtcclxuICAgICAgICBmbGV4OiAxO1xyXG4gICAgICAgIG1pbi13aWR0aDogMXB4O1xyXG4gICAgfVxyXG5cclxufVxyXG5cclxuXHJcbi8vIEhvb2tzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuQGlmKG1peGluLWV4aXN0cyhob29rLXdpZHRoLW1pc2MpKSB7QGluY2x1ZGUgaG9vay13aWR0aC1taXNjKCk7fVxyXG5cclxuLy8gQG1peGluIGhvb2std2lkdGgtbWlzYygpe31cclxuIiwiLy8gTmFtZTogICAgICAgICAgICBIZWlnaHRcclxuLy8gRGVzY3JpcHRpb246ICAgICBVdGlsaXRpZXMgZm9yIGhlaWdodHNcclxuLy9cclxuLy8gQ29tcG9uZW50OiAgICAgICBgdWstaGVpZ2h0LSpgXHJcbi8vXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuXHJcbi8vIFZhcmlhYmxlc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiRoZWlnaHQtc21hbGwtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNTBweCAhZGVmYXVsdDtcclxuJGhlaWdodC1tZWRpdW0taGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwMHB4ICFkZWZhdWx0O1xyXG4kaGVpZ2h0LWxhcmdlLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgNDUwcHggIWRlZmF1bHQ7XHJcblxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogSGVpZ2h0XHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuW2NsYXNzKj0ndWstaGVpZ2h0J10geyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XHJcblxyXG4vKlxyXG4gKiBPbmx5IHdvcmtzIGlmIHBhcmVudCBlbGVtZW50IGhhcyBhIGhlaWdodCBzZXRcclxuICovXHJcblxyXG4udWstaGVpZ2h0LTEtMSB7IGhlaWdodDogMTAwJTsgfVxyXG5cclxuLypcclxuICogVXNlZnVsIHRvIGNyZWF0ZSBpbWFnZSB0ZWFzZXJzXHJcbiAqL1xyXG5cclxuLnVrLWhlaWdodC12aWV3cG9ydCB7IG1pbi1oZWlnaHQ6IDEwMHZoOyB9XHJcblxyXG4vKlxyXG4gKiBQaXhlbFxyXG4gKiBVc2VmdWwgZm9yIGBvdmVyZmxvdzogYXV0b2BcclxuICovXHJcblxyXG4udWstaGVpZ2h0LXNtYWxsIHsgaGVpZ2h0OiAkaGVpZ2h0LXNtYWxsLWhlaWdodDsgfVxyXG4udWstaGVpZ2h0LW1lZGl1bSB7IGhlaWdodDogJGhlaWdodC1tZWRpdW0taGVpZ2h0OyB9XHJcbi51ay1oZWlnaHQtbGFyZ2UgeyBoZWlnaHQ6ICRoZWlnaHQtbGFyZ2UtaGVpZ2h0OyB9XHJcblxyXG4udWstaGVpZ2h0LW1heC1zbWFsbCB7IG1heC1oZWlnaHQ6ICRoZWlnaHQtc21hbGwtaGVpZ2h0OyB9XHJcbi51ay1oZWlnaHQtbWF4LW1lZGl1bSB7IG1heC1oZWlnaHQ6ICRoZWlnaHQtbWVkaXVtLWhlaWdodDsgfVxyXG4udWstaGVpZ2h0LW1heC1sYXJnZSB7IG1heC1oZWlnaHQ6ICRoZWlnaHQtbGFyZ2UtaGVpZ2h0OyB9XHJcblxyXG5cclxuLy8gSG9va3NcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5AaWYobWl4aW4tZXhpc3RzKGhvb2staGVpZ2h0LW1pc2MpKSB7QGluY2x1ZGUgaG9vay1oZWlnaHQtbWlzYygpO31cclxuXHJcbi8vIEBtaXhpbiBob29rLWhlaWdodC1taXNjKCl7fVxyXG4iLCIvLyBOYW1lOiAgICAgICAgICAgIFRleHRcclxuLy8gRGVzY3JpcHRpb246ICAgICBVdGlsaXRpZXMgZm9yIHRleHRcclxuLy9cclxuLy8gQ29tcG9uZW50OiAgICAgICBgdWstdGV4dC0qYFxyXG4vL1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcblxyXG4vLyBWYXJpYWJsZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4kdGV4dC1sZWFkLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1sYXJnZS1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiR0ZXh0LWxlYWQtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAxLjUgIWRlZmF1bHQ7XHJcbiR0ZXh0LWxlYWQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG5cclxuJHRleHQtbWV0YS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kdGV4dC1tZXRhLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgMS40ICFkZWZhdWx0O1xyXG4kdGV4dC1tZXRhLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuXHJcbiR0ZXh0LXNtYWxsLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJHRleHQtc21hbGwtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgIDEuNSAhZGVmYXVsdDtcclxuXHJcbiR0ZXh0LWxhcmdlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWxhcmdlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcclxuJHRleHQtbGFyZ2UtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgIDEuNSAhZGVmYXVsdDtcclxuXHJcbiR0ZXh0LW11dGVkLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW11dGVkLWNvbG9yICFkZWZhdWx0O1xyXG4kdGV4dC1lbXBoYXNpcy1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1lbXBoYXNpcy1jb2xvciAhZGVmYXVsdDtcclxuJHRleHQtcHJpbWFyeS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kdGV4dC1zZWNvbmRhcnktY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zZWNvbmRhcnktYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuJHRleHQtc3VjY2Vzcy1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtc3VjY2Vzcy1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kdGV4dC13YXJuaW5nLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC13YXJuaW5nLWJhY2tncm91bmQgIWRlZmF1bHQ7XHJcbiR0ZXh0LWRhbmdlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWRhbmdlci1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG5cclxuJHRleHQtYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG5cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IFRleHRcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5cclxuLyogU3R5bGUgbW9kaWZpZXJzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVrLXRleHQtbGVhZCB7XHJcbiAgICBmb250LXNpemU6ICR0ZXh0LWxlYWQtZm9udC1zaXplO1xyXG4gICAgbGluZS1oZWlnaHQ6ICR0ZXh0LWxlYWQtbGluZS1oZWlnaHQ7XHJcbiAgICBjb2xvcjogJHRleHQtbGVhZC1jb2xvcjtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay10ZXh0LWxlYWQpKSB7QGluY2x1ZGUgaG9vay10ZXh0LWxlYWQoKTt9XHJcbn1cclxuXHJcbi51ay10ZXh0LW1ldGEge1xyXG4gICAgZm9udC1zaXplOiAkdGV4dC1tZXRhLWZvbnQtc2l6ZTtcclxuICAgIGxpbmUtaGVpZ2h0OiAkdGV4dC1tZXRhLWxpbmUtaGVpZ2h0O1xyXG4gICAgY29sb3I6ICR0ZXh0LW1ldGEtY29sb3I7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stdGV4dC1tZXRhKSkge0BpbmNsdWRlIGhvb2stdGV4dC1tZXRhKCk7fVxyXG59XHJcblxyXG5cclxuLyogU2l6ZSBtb2RpZmllcnNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstdGV4dC1zbWFsbCB7XHJcbiAgICBmb250LXNpemU6ICR0ZXh0LXNtYWxsLWZvbnQtc2l6ZTtcclxuICAgIGxpbmUtaGVpZ2h0OiAkdGV4dC1zbWFsbC1saW5lLWhlaWdodDtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay10ZXh0LXNtYWxsKSkge0BpbmNsdWRlIGhvb2stdGV4dC1zbWFsbCgpO31cclxufVxyXG5cclxuLnVrLXRleHQtbGFyZ2Uge1xyXG4gICAgZm9udC1zaXplOiAkdGV4dC1sYXJnZS1mb250LXNpemU7XHJcbiAgICBsaW5lLWhlaWdodDogJHRleHQtbGFyZ2UtbGluZS1oZWlnaHQ7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stdGV4dC1sYXJnZSkpIHtAaW5jbHVkZSBob29rLXRleHQtbGFyZ2UoKTt9XHJcbn1cclxuXHJcblxyXG4vKiBXZWlnaHQgbW9kaWZpZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstdGV4dC1saWdodCB7IGZvbnQtd2VpZ2h0OiAzMDA7IH1cclxuLnVrLXRleHQtbm9ybWFsIHsgZm9udC13ZWlnaHQ6IDQwMDsgfVxyXG4udWstdGV4dC1ib2xkIHsgZm9udC13ZWlnaHQ6IDcwMDsgfVxyXG4gXHJcbi51ay10ZXh0LWxpZ2h0ZXIgeyBmb250LXdlaWdodDogbGlnaHRlcjsgfVxyXG4udWstdGV4dC1ib2xkZXIgeyBmb250LXdlaWdodDogYm9sZGVyOyB9XHJcblxyXG4gXHJcbi8qIFN0eWxlIG1vZGlmaWVyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG4gXHJcbi51ay10ZXh0LWl0YWxpYyB7IGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxyXG5cclxuXHJcbi8qIFRyYW5zZm9ybSBtb2RpZmllclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay10ZXh0LWNhcGl0YWxpemUgeyB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZSAhaW1wb3J0YW50OyB9XHJcbi51ay10ZXh0LXVwcGVyY2FzZSB7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWltcG9ydGFudDsgfVxyXG4udWstdGV4dC1sb3dlcmNhc2UgeyB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlICFpbXBvcnRhbnQ7IH1cclxuXHJcblxyXG4vKiBDb2xvciBtb2RpZmllcnNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstdGV4dC1tdXRlZCB7IGNvbG9yOiAkdGV4dC1tdXRlZC1jb2xvciAhaW1wb3J0YW50OyB9XHJcbi51ay10ZXh0LWVtcGhhc2lzIHsgY29sb3I6ICR0ZXh0LWVtcGhhc2lzLWNvbG9yICFpbXBvcnRhbnQ7IH1cclxuLnVrLXRleHQtcHJpbWFyeSB7IGNvbG9yOiAkdGV4dC1wcmltYXJ5LWNvbG9yICFpbXBvcnRhbnQ7IH1cclxuLnVrLXRleHQtc2Vjb25kYXJ5IHsgY29sb3I6ICR0ZXh0LXNlY29uZGFyeS1jb2xvciAhaW1wb3J0YW50OyB9XHJcbi51ay10ZXh0LXN1Y2Nlc3MgeyBjb2xvcjogJHRleHQtc3VjY2Vzcy1jb2xvciAhaW1wb3J0YW50OyB9XHJcbi51ay10ZXh0LXdhcm5pbmcgeyBjb2xvcjogJHRleHQtd2FybmluZy1jb2xvciAhaW1wb3J0YW50OyB9XHJcbi51ay10ZXh0LWRhbmdlciB7IGNvbG9yOiAkdGV4dC1kYW5nZXItY29sb3IgIWltcG9ydGFudDsgfVxyXG5cclxuXHJcbi8qIEJhY2tncm91bmQgbW9kaWZpZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBUaGUgYmFja2dyb3VuZCBjbGlwcyB0byB0aGUgZm9yZWdyb3VuZCB0ZXh0LiBXb3JrcyBpbiBDaHJvbWUsIEZpcmVmb3gsIFNhZmFyaSwgRWRnZSBhbmQgT3BlcmFcclxuICogICAgRGVmYXVsdCBjb2xvciBpcyBzZXQgdG8gdHJhbnNwYXJlbnRcclxuICogMi4gQ29udGFpbmVyIGZpdHMgdGhlIHRleHRcclxuICogMy4gRmFsbGJhY2sgY29sb3IgZm9yIElFMTFcclxuICovXHJcblxyXG4udWstdGV4dC1iYWNrZ3JvdW5kIHtcclxuICAgIC8qIDEgKi9cclxuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xyXG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgLyogMiAqL1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgLyogMyAqL1xyXG4gICAgY29sb3I6ICR0ZXh0LWJhY2tncm91bmQtY29sb3IgIWltcG9ydGFudDtcclxufVxyXG5cclxuQHN1cHBvcnRzICgtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dCkge1xyXG5cclxuICAgIC51ay10ZXh0LWJhY2tncm91bmQge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXh0LWJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLXRleHQtYmFja2dyb3VuZCkpIHtAaW5jbHVkZSBob29rLXRleHQtYmFja2dyb3VuZCgpO31cclxuICAgIH1cclxuXHJcbn1cclxuXHJcblxyXG4vKiBBbGlnbm1lbnQgbW9kaWZpZXJzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVrLXRleHQtbGVmdCB7IHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxyXG4udWstdGV4dC1yaWdodCB7IHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cclxuLnVrLXRleHQtY2VudGVyIHsgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH1cclxuLnVrLXRleHQtanVzdGlmeSB7IHRleHQtYWxpZ246IGp1c3RpZnkgIWltcG9ydGFudDsgfVxyXG5cclxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXNtYWxsKSB7XHJcblxyXG4gICAgLnVrLXRleHQtbGVmdFxcQHMgeyB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cclxuICAgIC51ay10ZXh0LXJpZ2h0XFxAcyB7IHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cclxuICAgIC51ay10ZXh0LWNlbnRlclxcQHMgeyB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgfVxyXG5cclxufVxyXG5cclxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXHJcbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcclxuXHJcbiAgICAudWstdGV4dC1sZWZ0XFxAbSB7IHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxyXG4gICAgLnVrLXRleHQtcmlnaHRcXEBtIHsgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxyXG4gICAgLnVrLXRleHQtY2VudGVyXFxAbSB7IHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9XHJcblxyXG59XHJcblxyXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LWxhcmdlKSB7XHJcblxyXG4gICAgLnVrLXRleHQtbGVmdFxcQGwgeyB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cclxuICAgIC51ay10ZXh0LXJpZ2h0XFxAbCB7IHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cclxuICAgIC51ay10ZXh0LWNlbnRlclxcQGwgeyB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgfVxyXG5cclxufVxyXG5cclxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXhsYXJnZSkge1xyXG5cclxuICAgIC51ay10ZXh0LWxlZnRcXEB4bCB7IHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxyXG4gICAgLnVrLXRleHQtcmlnaHRcXEB4bCB7IHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cclxuICAgIC51ay10ZXh0LWNlbnRlclxcQHhsIHsgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH1cclxuXHJcbn1cclxuXHJcbi8qXHJcbiAqIFZlcnRpY2FsXHJcbiAqL1xyXG5cclxuLnVrLXRleHQtdG9wIHsgdmVydGljYWwtYWxpZ246IHRvcCAhaW1wb3J0YW50OyB9XHJcbi51ay10ZXh0LW1pZGRsZSB7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDsgfVxyXG4udWstdGV4dC1ib3R0b20geyB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tICFpbXBvcnRhbnQ7IH1cclxuLnVrLXRleHQtYmFzZWxpbmUgeyB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmUgIWltcG9ydGFudDsgfVxyXG5cclxuXHJcbi8qIFdyYXAgbW9kaWZpZXJzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogUHJldmVudCB0ZXh0IGZyb20gd3JhcHBpbmcgb250byBtdWx0aXBsZSBsaW5lc1xyXG4gKi9cclxuXHJcbi51ay10ZXh0LW5vd3JhcCB7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cclxuXHJcbi8qXHJcbiAqIDEuIE1ha2Ugc3VyZSBhIG1heC13aWR0aCBpcyBzZXQgYWZ0ZXIgd2hpY2ggdHJ1bmNhdGlvbiBjYW4gb2NjdXJcclxuICogMi4gUHJldmVudCB0ZXh0IGZyb20gd3JhcHBpbmcgb250byBtdWx0aXBsZSBsaW5lcywgYW5kIHRydW5jYXRlIHdpdGggYW4gZWxsaXBzaXNcclxuICogMy4gRml4IGZvciB0YWJsZSBjZWxsc1xyXG4gKi9cclxuXHJcbi51ay10ZXh0LXRydW5jYXRlIHtcclxuICAgIC8qIDEgKi9cclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIC8qIDIgKi9cclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuXHJcbi8qIDIgKi9cclxudGgudWstdGV4dC10cnVuY2F0ZSxcclxudGQudWstdGV4dC10cnVuY2F0ZSB7IG1heC13aWR0aDogMDsgfVxyXG5cclxuXHJcbi8qXHJcbiAqIDEuIFdyYXAgbG9uZyB3b3JkcyBvbnRvIHRoZSBuZXh0IGxpbmUgYW5kIGJyZWFrIHRoZW0gaWYgdGhleSBhcmUgdG9vIGxvbmcgdG8gZml0XHJcbiAqIDIuIExlZ2FjeSBgd29yZC13cmFwYCBhcyBmYWxsYmFjayBmb3IgYG92ZXJmbG93LXdyYXBgXHJcbiAqIDMuIEZpeCBgb3ZlcmZsb3ctd3JhcGAgd2hpY2ggZG9lc24ndCB3b3JrIHdpdGggdGFibGUgY2VsbHMgaW4gQ2hyb21lLCBPcGVyYSwgSUUxMSBhbmQgRWRnZVxyXG4gKiAgICBNdXN0IHVzZSBgYnJlYWstYWxsYCB0byBzdXBwb3J0IElFMTEgYW5kIEVkZ2VcclxuICogTm90ZTogTm90IHVzaW5nIGBoeXBoZW5zOiBhdXRvO2AgYmVjYXVzZSBpdCBoeXBoZW5hdGVzIHRleHQgZXZlbiBpZiBub3QgbmVlZGVkXHJcbiAqL1xyXG5cclxuLnVrLXRleHQtYnJlYWsge1xyXG4gICAgLyogMSAqL1xyXG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcclxuICAgIC8qIDIgKi9cclxuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcclxufVxyXG5cclxuLyogMyAqL1xyXG50aC51ay10ZXh0LWJyZWFrLFxyXG50ZC51ay10ZXh0LWJyZWFrIHsgd29yZC1icmVhazogYnJlYWstYWxsOyB9XHJcblxyXG5cclxuXHJcbi8vIEhvb2tzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuQGlmKG1peGluLWV4aXN0cyhob29rLXRleHQtbWlzYykpIHtAaW5jbHVkZSBob29rLXRleHQtbWlzYygpO31cclxuXHJcbi8vIEBtaXhpbiBob29rLXRleHQtbGVhZCgpe31cclxuLy8gQG1peGluIGhvb2stdGV4dC1tZXRhKCl7fVxyXG4vLyBAbWl4aW4gaG9vay10ZXh0LXNtYWxsKCl7fVxyXG4vLyBAbWl4aW4gaG9vay10ZXh0LWxhcmdlKCl7fVxyXG4vLyBAbWl4aW4gaG9vay10ZXh0LWJhY2tncm91bmQoKXt9XHJcbi8vIEBtaXhpbiBob29rLXRleHQtbWlzYygpe31cclxuXHJcblxyXG4vLyBJbnZlcnNlXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuJGludmVyc2UtdGV4dC1sZWFkLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS10ZXh0LW1ldGEtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLXRleHQtbXV0ZWQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvciAhZGVmYXVsdDtcclxuJGludmVyc2UtdGV4dC1lbXBoYXNpcy1jb2xvcjogICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS10ZXh0LXByaW1hcnktY29sb3I6ICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG4kaW52ZXJzZS10ZXh0LXNlY29uZGFyeS1jb2xvcjogICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xyXG5cclxuXHJcblxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLXRleHQtbGVhZCgpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS10ZXh0LW1ldGEoKXt9XHJcbiIsIi8vIE5hbWU6ICAgICAgICAgICAgQ29sdW1uXHJcbi8vIERlc2NyaXB0aW9uOiAgICAgVXRpbGl0aWVzIGZvciB0ZXh0IGNvbHVtbnNcclxuLy9cclxuLy8gQ29tcG9uZW50OiAgICAgICBgdWstY29sdW1uLSpgXHJcbi8vXHJcbi8vIFN1Yi1vYmplY3RzOiAgICAgYHVrLWNvbHVtbi1zcGFuYFxyXG4vL1xyXG4vLyBNb2RpZmllcnM6ICAgICAgIGB1ay1jb2x1bW4tZGl2aWRlcmBcclxuLy9cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5cclxuLy8gVmFyaWFibGVzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuJGNvbHVtbi1ndXR0ZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kY29sdW1uLWd1dHRlci1sOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tZWRpdW0tZ3V0dGVyICFkZWZhdWx0O1xyXG5cclxuJGNvbHVtbi1kaXZpZGVyLXJ1bGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG4kY29sdW1uLWRpdmlkZXItcnVsZS13aWR0aDogICAgICAgICAgICAgICAgICAgICAgMXB4ICFkZWZhdWx0O1xyXG5cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IENvbHVtblxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbltjbGFzcyo9J3VrLWNvbHVtbi0nXSB7IGNvbHVtbi1nYXA6ICRjb2x1bW4tZ3V0dGVyOyB9XHJcblxyXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LWxhcmdlKSB7XHJcblxyXG4gICAgW2NsYXNzKj0ndWstY29sdW1uLSddIHsgY29sdW1uLWdhcDogJGNvbHVtbi1ndXR0ZXItbDsgfVxyXG5cclxufVxyXG5cclxuLypcclxuICogRml4IGltYWdlIDFweCBsaW5lIHdyYXBwaW5nIGludG8gdGhlIG5leHQgY29sdW1uIGluIENocm9tZVxyXG4gKi9cclxuXHJcbltjbGFzcyo9J3VrLWNvbHVtbi0nXSBpbWcgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTsgfVxyXG5cclxuXHJcbi8qIERpdmlkZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBEb3VibGUgdGhlIGNvbHVtbiBnYXBcclxuICovXHJcblxyXG4udWstY29sdW1uLWRpdmlkZXIge1xyXG4gICAgY29sdW1uLXJ1bGU6ICRjb2x1bW4tZGl2aWRlci1ydWxlLXdpZHRoIHNvbGlkICRjb2x1bW4tZGl2aWRlci1ydWxlLWNvbG9yO1xyXG4gICAgLyogMSAqL1xyXG4gICAgY29sdW1uLWdhcDogKCRjb2x1bW4tZ3V0dGVyICogMik7XHJcbn1cclxuXHJcbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UpIHtcclxuXHJcbiAgICAudWstY29sdW1uLWRpdmlkZXIge1xyXG4gICAgICAgIGNvbHVtbi1nYXA6ICgkY29sdW1uLWd1dHRlci1sICogMik7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG5cclxuLyogV2lkdGggbW9kaWZpZXJzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVrLWNvbHVtbi0xLTIgeyBjb2x1bW4tY291bnQ6IDI7fVxyXG4udWstY29sdW1uLTEtMyB7IGNvbHVtbi1jb3VudDogMzsgfVxyXG4udWstY29sdW1uLTEtNCB7IGNvbHVtbi1jb3VudDogNDsgfVxyXG4udWstY29sdW1uLTEtNSB7IGNvbHVtbi1jb3VudDogNTsgfVxyXG4udWstY29sdW1uLTEtNiB7IGNvbHVtbi1jb3VudDogNjsgfVxyXG5cclxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXNtYWxsKSB7XHJcblxyXG4gICAgLnVrLWNvbHVtbi0xLTJcXEBzIHsgY29sdW1uLWNvdW50OiAyOyB9XHJcbiAgICAudWstY29sdW1uLTEtM1xcQHMgeyBjb2x1bW4tY291bnQ6IDM7IH1cclxuICAgIC51ay1jb2x1bW4tMS00XFxAcyB7IGNvbHVtbi1jb3VudDogNDsgfVxyXG4gICAgLnVrLWNvbHVtbi0xLTVcXEBzIHsgY29sdW1uLWNvdW50OiA1OyB9XHJcbiAgICAudWstY29sdW1uLTEtNlxcQHMgeyBjb2x1bW4tY291bnQ6IDY7IH1cclxuXHJcbn1cclxuXHJcbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XHJcblxyXG4gICAgLnVrLWNvbHVtbi0xLTJcXEBtIHsgY29sdW1uLWNvdW50OiAyOyB9XHJcbiAgICAudWstY29sdW1uLTEtM1xcQG0geyBjb2x1bW4tY291bnQ6IDM7IH1cclxuICAgIC51ay1jb2x1bW4tMS00XFxAbSB7IGNvbHVtbi1jb3VudDogNDsgfVxyXG4gICAgLnVrLWNvbHVtbi0xLTVcXEBtIHsgY29sdW1uLWNvdW50OiA1OyB9XHJcbiAgICAudWstY29sdW1uLTEtNlxcQG0geyBjb2x1bW4tY291bnQ6IDY7IH1cclxuXHJcbn1cclxuXHJcbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UpIHtcclxuXHJcbiAgICAudWstY29sdW1uLTEtMlxcQGwgeyBjb2x1bW4tY291bnQ6IDI7IH1cclxuICAgIC51ay1jb2x1bW4tMS0zXFxAbCB7IGNvbHVtbi1jb3VudDogMzsgfVxyXG4gICAgLnVrLWNvbHVtbi0xLTRcXEBsIHsgY29sdW1uLWNvdW50OiA0OyB9XHJcbiAgICAudWstY29sdW1uLTEtNVxcQGwgeyBjb2x1bW4tY291bnQ6IDU7IH1cclxuICAgIC51ay1jb2x1bW4tMS02XFxAbCB7IGNvbHVtbi1jb3VudDogNjsgfVxyXG5cclxufVxyXG5cclxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXhsYXJnZSkge1xyXG5cclxuICAgIC51ay1jb2x1bW4tMS0yXFxAeGwgeyBjb2x1bW4tY291bnQ6IDI7IH1cclxuICAgIC51ay1jb2x1bW4tMS0zXFxAeGwgeyBjb2x1bW4tY291bnQ6IDM7IH1cclxuICAgIC51ay1jb2x1bW4tMS00XFxAeGwgeyBjb2x1bW4tY291bnQ6IDQ7IH1cclxuICAgIC51ay1jb2x1bW4tMS01XFxAeGwgeyBjb2x1bW4tY291bnQ6IDU7IH1cclxuICAgIC51ay1jb2x1bW4tMS02XFxAeGwgeyBjb2x1bW4tY291bnQ6IDY7IH1cclxuXHJcbn1cclxuXHJcbi8qIE1ha2UgZWxlbWVudCBzcGFuIGFjcm9zcyBhbGwgY29sdW1uc1xyXG4gKiBEb2VzIG5vdCB3b3JrIGluIEZpcmVmb3ggeWV0XHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVrLWNvbHVtbi1zcGFuIHsgY29sdW1uLXNwYW46IGFsbDsgfVxyXG5cclxuXHJcbi8vIEhvb2tzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuQGlmKG1peGluLWV4aXN0cyhob29rLWNvbHVtbi1taXNjKSkge0BpbmNsdWRlIGhvb2stY29sdW1uLW1pc2MoKTt9XHJcblxyXG4vLyBAbWl4aW4gaG9vay1jb2x1bW4tbWlzYygpe31cclxuXHJcblxyXG4vLyBJbnZlcnNlXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuJGludmVyc2UtY29sdW1uLWRpdmlkZXItcnVsZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtYm9yZGVyICFkZWZhdWx0O1xyXG5cclxuIiwiLy8gTmFtZTogICAgICAgICAgICBBbGlnblxyXG4vLyBEZXNjcmlwdGlvbjogICAgIFV0aWxpdGllcyB0byBhbGlnbiBlbWJlZGRlZCBjb250ZW50XHJcbi8vXHJcbi8vIENvbXBvbmVudDogICAgICAgYHVrLWFsaWduLWxlZnQtKmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstYWxpZ24tcmlnaHQtKmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstYWxpZ24tY2VudGVyYFxyXG4vL1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcblxyXG4vLyBWYXJpYWJsZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4kYWxpZ24tbWFyZ2luLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ndXR0ZXIgIWRlZmF1bHQ7XHJcbiRhbGlnbi1tYXJnaW4tdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcclxuXHJcbiRhbGlnbi1tYXJnaW4taG9yaXpvbnRhbC1sOiAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgIWRlZmF1bHQ7XHJcblxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogQWxpZ25cclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiBEZWZhdWx0XHJcbiAqL1xyXG5cclxuW2NsYXNzKj0ndWstYWxpZ24nXSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbi1ib3R0b206ICRhbGlnbi1tYXJnaW4tdmVydGljYWw7XHJcbn1cclxuXHJcbiogKyBbY2xhc3MqPSd1ay1hbGlnbiddIHsgbWFyZ2luLXRvcDogJGFsaWduLW1hcmdpbi12ZXJ0aWNhbDsgfVxyXG5cclxuLypcclxuICogQ2VudGVyXHJcbiAqL1xyXG5cclxuLnVrLWFsaWduLWNlbnRlciB7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxufVxyXG5cclxuLypcclxuICogTGVmdC9SaWdodFxyXG4gKi9cclxuXHJcbi51ay1hbGlnbi1sZWZ0IHtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICBtYXJnaW4tcmlnaHQ6ICRhbGlnbi1tYXJnaW4taG9yaXpvbnRhbDtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG59XHJcblxyXG4udWstYWxpZ24tcmlnaHQge1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICAgIG1hcmdpbi1sZWZ0OiAkYWxpZ24tbWFyZ2luLWhvcml6b250YWw7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbn1cclxuXHJcbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXHJcbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbCkge1xyXG5cclxuICAgIC51ay1hbGlnbi1sZWZ0XFxAcyB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRhbGlnbi1tYXJnaW4taG9yaXpvbnRhbDtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgIH1cclxuXHJcbiAgICAudWstYWxpZ24tcmlnaHRcXEBzIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkYWxpZ24tbWFyZ2luLWhvcml6b250YWw7XHJcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgfVxyXG5cclxufVxyXG5cclxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXHJcbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcclxuXHJcbiAgICAudWstYWxpZ24tbGVmdFxcQG0ge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkYWxpZ24tbWFyZ2luLWhvcml6b250YWw7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLnVrLWFsaWduLXJpZ2h0XFxAbSB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgICBtYXJnaW4tbGVmdDogJGFsaWduLW1hcmdpbi1ob3Jpem9udGFsO1xyXG4gICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UpIHtcclxuXHJcbiAgICAudWstYWxpZ24tbGVmdFxcQGwge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLnVrLWFsaWduLXJpZ2h0XFxAbCB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLnVrLWFsaWduLWxlZnQsXHJcbiAgICAudWstYWxpZ24tbGVmdFxcQHMsXHJcbiAgICAudWstYWxpZ24tbGVmdFxcQG0sXHJcbiAgICAudWstYWxpZ24tbGVmdFxcQGwgeyBtYXJnaW4tcmlnaHQ6ICRhbGlnbi1tYXJnaW4taG9yaXpvbnRhbC1sOyB9XHJcblxyXG4gICAgLnVrLWFsaWduLXJpZ2h0LFxyXG4gICAgLnVrLWFsaWduLXJpZ2h0XFxAcyxcclxuICAgIC51ay1hbGlnbi1yaWdodFxcQG0sXHJcbiAgICAudWstYWxpZ24tcmlnaHRcXEBsIHsgbWFyZ2luLWxlZnQ6ICRhbGlnbi1tYXJnaW4taG9yaXpvbnRhbC1sOyB9XHJcblxyXG59XHJcblxyXG4vKiBMYXJnZSBzY3JlZW4gYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQteGxhcmdlKSB7XHJcblxyXG4gICAgLnVrLWFsaWduLWxlZnRcXEB4bCB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRhbGlnbi1tYXJnaW4taG9yaXpvbnRhbC1sO1xyXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgfVxyXG5cclxuICAgIC51ay1hbGlnbi1yaWdodFxcQHhsIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkYWxpZ24tbWFyZ2luLWhvcml6b250YWwtbDtcclxuICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG5cclxuLy8gSG9va3NcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stYWxpZ24tbWlzYykpIHtAaW5jbHVkZSBob29rLWFsaWduLW1pc2MoKTt9XHJcblxyXG4vLyBAbWl4aW4gaG9vay1hbGlnbi1taXNjKCl7fSIsIi8vIE5hbWU6ICAgICAgICAgICAgU1ZHXHJcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIHN0eWxlIFNWR3NcclxuLy9cclxuLy8gQ29tcG9uZW50OiAgICAgICBgdWstc3ZnYFxyXG4vL1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBTVkdcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBGaWxsIGFsbCBTVkcgZWxlbWVudHMgd2l0aCB0aGUgY3VycmVudCB0ZXh0IGNvbG9yIGlmIG5vIGBmaWxsYCBhdHRyaWJ1dGUgaXMgc2V0XHJcbiAqIDIuIFNldCB0aGUgZmlsbCBhbmQgc3Ryb2tlIGNvbG9yIG9mIGFsbCBTVkcgZWxlbWVudHMgdG8gdGhlIGN1cnJlbnQgdGV4dCBjb2xvclxyXG4gKi9cclxuXHJcbi8qIDEgKi9cclxuLnVrLXN2ZyxcclxuLyogMiAqL1xyXG4udWstc3ZnOm5vdCgudWstcHJlc2VydmUpIFtmaWxsKj0nIyddOm5vdCgudWstcHJlc2VydmUpIHsgZmlsbDogY3VycmVudGNvbG9yOyB9XHJcbi51ay1zdmc6bm90KC51ay1wcmVzZXJ2ZSkgW3N0cm9rZSo9JyMnXTpub3QoLnVrLXByZXNlcnZlKSB7IHN0cm9rZTogY3VycmVudGNvbG9yOyB9XHJcblxyXG4vKlxyXG4gKiBGaXggRmlyZWZveCBibHVycnkgU1ZHIHJlbmRlcmluZzogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0NjgzNVxyXG4gKi9cclxuXHJcbi51ay1zdmcgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLDApOyB9XHJcblxyXG5cclxuLy8gSG9va3NcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stc3ZnLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1zdmctbWlzYygpO31cclxuXHJcbi8vIEBtaXhpbiBob29rLXN2Zy1taXNjKCl7fVxyXG4iLCIvLyBOYW1lOiAgICAgICAgICAgIFV0aWxpdHlcclxuLy8gRGVzY3JpcHRpb246ICAgICBVdGlsaXRpZXMgY29sbGVjdGlvblxyXG4vL1xyXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1wYW5lbC0qYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1jbGVhcmZpeGBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstZmxvYXQtKmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstb3ZlcmZsb3ctKmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstcmVzaXplLSpgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWRpc3BsYXktKmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstaW5saW5lLSpgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLXJlc3BvbnNpdmUtKmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstcHJlc2VydmUtd2lkdGhgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWJvcmRlci0qYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ib3gtc2hhZG93LSpgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWJveC1zaGFkb3ctYm90dG9tYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1kcm9wY2FwYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1sb2dvYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ibGVuZC0qYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10cmFuc2Zvcm0tKmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstdHJhbnNmb3JtLW9yaWdpbi0qYFxyXG4vL1xyXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1kaXNhYmxlZGBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstZHJhZ2BcclxuLy8gICAgICAgICAgICAgICAgICBgdWstZHJhZ292ZXJgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLXByZXNlcnZlYFxyXG4vL1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcblxyXG4vLyBWYXJpYWJsZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4kcGFuZWwtc2Nyb2xsYWJsZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgMTcwcHggIWRlZmF1bHQ7XHJcbiRwYW5lbC1zY3JvbGxhYmxlLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAgICAgICAxMHB4ICFkZWZhdWx0O1xyXG4kcGFuZWwtc2Nyb2xsYWJsZS1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAgJGdsb2JhbC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XHJcbiRwYW5lbC1zY3JvbGxhYmxlLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWJvcmRlciAhZGVmYXVsdDtcclxuXHJcbiRib3JkZXItcm91bmRlZC1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgICA1cHggIWRlZmF1bHQ7XHJcblxyXG4kYm94LXNoYWRvdy1kdXJhdGlvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4xcyAhZGVmYXVsdDtcclxuXHJcbiRib3gtc2hhZG93LWJvdHRvbS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAzMHB4ICFkZWZhdWx0O1xyXG4kYm94LXNoYWRvdy1ib3R0b20tYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgMTAwJSAhZGVmYXVsdDtcclxuJGJveC1zaGFkb3ctYm90dG9tLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICM0NDQgIWRlZmF1bHQ7XHJcbiRib3gtc2hhZG93LWJvdHRvbS1ibHVyOiAgICAgICAgICAgICAgICAgICAgICAgICAyMHB4ICFkZWZhdWx0O1xyXG5cclxuJGRyb3BjYXAtbWFyZ2luLXJpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwcHggIWRlZmF1bHQ7XHJcbiRkcm9wY2FwLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKCRnbG9iYWwtbGluZS1oZWlnaHQgKiAzKSAqIDFlbSkgIWRlZmF1bHQ7XHJcblxyXG4kbG9nby1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1sYXJnZS1mb250LXNpemUgIWRlZmF1bHQ7XHJcbiRsb2dvLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xyXG4kbG9nby1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1jb2xvciAhZGVmYXVsdDtcclxuJGxvZ28taG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4kZHJhZ292ZXItYm94LXNoYWRvdzogICAgICAgICAgICAgICAgICAgICAgICAgICAgMCAwIDIwcHggcmdiYSgxMDAsMTAwLDEwMCwwLjMpICFkZWZhdWx0O1xyXG5cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IFV0aWxpdHlcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5cclxuLyogUGFuZWxcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstcGFuZWwge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxufVxyXG5cclxuLypcclxuICogTWljcm8gY2xlYXJmaXhcclxuICovXHJcblxyXG4udWstcGFuZWw6OmJlZm9yZSxcclxuLnVrLXBhbmVsOjphZnRlciB7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgZGlzcGxheTogdGFibGU7XHJcbn1cclxuXHJcbi51ay1wYW5lbDo6YWZ0ZXIgeyBjbGVhcjogYm90aDsgfVxyXG5cclxuLypcclxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXHJcbiAqL1xyXG5cclxuLnVrLXBhbmVsID4gOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XHJcblxyXG5cclxuLypcclxuICogU2Nyb2xsYWJsZVxyXG4gKi9cclxuXHJcbi51ay1wYW5lbC1zY3JvbGxhYmxlIHtcclxuICAgIGhlaWdodDogJHBhbmVsLXNjcm9sbGFibGUtaGVpZ2h0O1xyXG4gICAgcGFkZGluZzogJHBhbmVsLXNjcm9sbGFibGUtcGFkZGluZztcclxuICAgIGJvcmRlcjogJHBhbmVsLXNjcm9sbGFibGUtYm9yZGVyLXdpZHRoIHNvbGlkICRwYW5lbC1zY3JvbGxhYmxlLWJvcmRlcjtcclxuICAgIG92ZXJmbG93OiBhdXRvO1xyXG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xyXG4gICAgcmVzaXplOiBib3RoO1xyXG4gICAgQGlmKG1peGluLWV4aXN0cyhob29rLXBhbmVsLXNjcm9sbGFibGUpKSB7QGluY2x1ZGUgaG9vay1wYW5lbC1zY3JvbGxhYmxlKCk7fVxyXG59XHJcblxyXG5cclxuLyogQ2xlYXJmaXhcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBgdGFibGUtY2VsbGAgaXMgdXNlZCB3aXRoIGA6OmJlZm9yZWAgYmVjYXVzZSBgdGFibGVgIGNyZWF0ZXMgYSAxcHggZ2FwIHdoZW4gaXQgYmVjb21lcyBhIGZsZXggaXRlbSwgb25seSBpbiBXZWJraXRcclxuICogMi4gYHRhYmxlYCBpcyB1c2VkIGFnYWluIHdpdGggYDo6YWZ0ZXJgIGJlY2F1c2UgYGNsZWFyYCBvbmx5IHdvcmtzIHdpdGggYmxvY2sgZWxlbWVudHMuXHJcbiAqIE5vdGU6IGBkaXNwbGF5OiBibG9ja2Agd2l0aCBgb3ZlcmZsb3c6IGhpZGRlbmAgaXMgY3VycmVudGx5IG5vdCB3b3JraW5nIGluIHRoZSBsYXRlc3QgU2FmYXJpXHJcbiAqL1xyXG5cclxuLyogMSAqL1xyXG4udWstY2xlYXJmaXg6OmJlZm9yZSB7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxufVxyXG5cclxuLyogMiAqL1xyXG4udWstY2xlYXJmaXg6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgIGNsZWFyOiBib3RoO1xyXG59XHJcblxyXG5cclxuLyogRmxvYXRcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBQcmV2ZW50IGNvbnRlbnQgb3ZlcmZsb3dcclxuICovXHJcblxyXG4udWstZmxvYXQtbGVmdCB7IGZsb2F0OiBsZWZ0OyB9XHJcbi51ay1mbG9hdC1yaWdodCB7IGZsb2F0OiByaWdodDsgfVxyXG5cclxuLyogMSAqL1xyXG5bY2xhc3MqPSd1ay1mbG9hdC0nXSB7IG1heC13aWR0aDogMTAwJTsgfVxyXG5cclxuXHJcbi8qIE92ZXJmb3dcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstb3ZlcmZsb3ctaGlkZGVuIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxyXG5cclxuLypcclxuICogRW5hYmxlIHNjcm9sbGJhcnMgaWYgY29udGVudCBpcyBjbGlwcGVkXHJcbiAqIE5vdGU6IEZpcmVmb3ggaWdub3JlcyBgcGFkZGluZy1ib3R0b21gIGZvciB0aGUgc2Nyb2xsYWJsZSBvdmVyZmxvdyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD03NDg1MThcclxuICovXHJcblxyXG4udWstb3ZlcmZsb3ctYXV0byB7XHJcbiAgICBvdmVyZmxvdzogYXV0bztcclxuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcclxufVxyXG5cclxuLnVrLW92ZXJmbG93LWF1dG8gPiA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cclxuXHJcblxyXG4vKiBSZXNpemVcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstcmVzaXplIHsgcmVzaXplOiBib3RoOyB9XHJcbi51ay1yZXNpemUtdmVydGljYWwgeyByZXNpemU6IHZlcnRpY2FsOyB9XHJcblxyXG5cclxuLyogRGlzcGxheVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1kaXNwbGF5LWJsb2NrIHsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxyXG4udWstZGlzcGxheS1pbmxpbmUgeyBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsgfVxyXG4udWstZGlzcGxheS1pbmxpbmUtYmxvY2sgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgfVxyXG5cclxuXHJcbi8qIElubGluZVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIDEuIENvbnRhaW5lciBmaXRzIGl0cyBjb250ZW50XHJcbiAqIDIuIENyZWF0ZSBwb3NpdGlvbiBjb250ZXh0XHJcbiAqIDMuIFByZXZlbnQgY29udGVudCBvdmVyZmxvd1xyXG4gKiA0LiBCZWhhdmUgbGlrZSBtb3N0IGlubGluZS1ibG9jayBlbGVtZW50c1xyXG4gKiA1LiBGb3JjZSBoYXJkd2FyZSBhY2NlbGVyYXRpb24gd2l0aG91dCBjcmVhdGluZyBhIG5ldyBzdGFja2luZyBjb250ZXh0XHJcbiAqICAgIHRvIGZpeCAxcHggZ2xpdGNoIHdoZW4gY29tYmluZWQgd2l0aCBvdmVybGF5cyBhbmQgdHJhbnNpdGlvbnMgaW4gV2Via2l0XHJcbiAqIDYuIENsaXAgY2hpbGQgZWxlbWVudHNcclxuICovXHJcblxyXG5bY2xhc3MqPSd1ay1pbmxpbmUnXSB7XHJcbiAgICAvKiAxICovXHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAvKiAyICovXHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAvKiAzICovXHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAvKiA0ICovXHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgLyogNSAqL1xyXG4gICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcbn1cclxuXHJcbi51ay1pbmxpbmUtY2xpcCB7XHJcbiAgICAvKiA2ICovXHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG5cclxuLyogUmVzcG9uc2l2ZSBvYmplY3RzXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogUHJlc2VydmUgb3JpZ2luYWwgZGltZW5zaW9uc1xyXG4gKiBCZWNhdXNlIGBpbWcsIGB2aWRlb2AsIGBjYW52YXNgIGFuZCAgYGF1ZGlvYCBhcmUgYWxyZWFkeSByZXNwb25zaXZlIGJ5IGRlZmF1bHQsIHNlZSBCYXNlIGNvbXBvbmVudFxyXG4gKi9cclxuXHJcbi51ay1wcmVzZXJ2ZS13aWR0aCxcclxuLnVrLXByZXNlcnZlLXdpZHRoIGNhbnZhcyxcclxuLnVrLXByZXNlcnZlLXdpZHRoIGltZyxcclxuLnVrLXByZXNlcnZlLXdpZHRoIHN2ZyxcclxuLnVrLXByZXNlcnZlLXdpZHRoIHZpZGVvIHsgbWF4LXdpZHRoOiBub25lOyB9XHJcblxyXG4vKlxyXG4gKiBSZXNwb25zaXZlbmVzc1xyXG4gKiBDb3JyZWN0cyBgbWF4LXdpZHRoYCBhbmQgYG1heC1oZWlnaHRgIGJlaGF2aW9yIGlmIHBhZGRpbmcgYW5kIGJvcmRlciBhcmUgdXNlZFxyXG4gKi9cclxuXHJcbi51ay1yZXNwb25zaXZlLXdpZHRoLFxyXG4udWstcmVzcG9uc2l2ZS1oZWlnaHQgeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XHJcblxyXG4vKlxyXG4gKiAxLiBTZXQgYSBtYXhpbXVtIHdpZHRoLiBgaW1wb3J0YW50YCBuZWVkZWQgdG8gb3ZlcnJpZGUgYHVrLXByZXNlcnZlLXdpZHRoIGltZ2BcclxuICogMi4gQXV0byBzY2FsZSB0aGUgaGVpZ2h0LiBPbmx5IG5lZWRlZCBpZiBgaGVpZ2h0YCBhdHRyaWJ1dGUgaXMgcHJlc2VudFxyXG4gKi9cclxuXHJcbi51ay1yZXNwb25zaXZlLXdpZHRoIHtcclxuICAgIC8qIDEgKi9cclxuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gICAgLyogMiAqL1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG59XHJcblxyXG4vKlxyXG4gKiAxLiBTZXQgYSBtYXhpbXVtIGhlaWdodC4gT25seSB3b3JrcyBpZiB0aGUgcGFyZW50IGVsZW1lbnQgaGFzIGEgZml4ZWQgaGVpZ2h0XHJcbiAqIDIuIEF1dG8gc2NhbGUgdGhlIHdpZHRoLiBPbmx5IG5lZWRlZCBpZiBgd2lkdGhgIGF0dHJpYnV0ZSBpcyBwcmVzZW50XHJcbiAqIDMuIFJlc2V0IG1heC13aWR0aCwgd2hpY2ggYGltZywgYHZpZGVvYCwgYGNhbnZhc2AgYW5kICBgYXVkaW9gIGFscmVhZHkgaGF2ZSBieSBkZWZhdWx0XHJcbiAqL1xyXG5cclxuLnVrLXJlc3BvbnNpdmUtaGVpZ2h0IHtcclxuICAgIC8qIDEgKi9cclxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XHJcbiAgICAvKiAyICovXHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIC8qIDMgKi9cclxuICAgIG1heC13aWR0aDogbm9uZTtcclxufVxyXG5cclxuXHJcbi8qIEJvcmRlclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1ib3JkZXItY2lyY2xlIHsgYm9yZGVyLXJhZGl1czogNTAlOyB9XHJcbi51ay1ib3JkZXItcGlsbCB7IGJvcmRlci1yYWRpdXM6IDUwMHB4OyB9XHJcbi51ay1ib3JkZXItcm91bmRlZCB7IGJvcmRlci1yYWRpdXM6ICRib3JkZXItcm91bmRlZC1ib3JkZXItcmFkaXVzOyB9XHJcblxyXG4vKlxyXG4gKiBGaXggYG92ZXJmbG93OiBoaWRkZW5gIHRvIGJlIGlnbm9yZWQgd2l0aCBib3JkZXItcmFkaXVzIGFuZCBDU1MgdHJhbnNmb3JtcyBpbiBXZWJraXRcclxuICovXHJcblxyXG4udWstaW5saW5lLWNsaXBbY2xhc3MqPSd1ay1ib3JkZXItJ10geyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsgfVxyXG5cclxuXHJcbi8qIEJveC1zaGFkb3dcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstYm94LXNoYWRvdy1zbWFsbCB7IGJveC1zaGFkb3c6ICRnbG9iYWwtc21hbGwtYm94LXNoYWRvdzsgfVxyXG4udWstYm94LXNoYWRvdy1tZWRpdW0geyBib3gtc2hhZG93OiAkZ2xvYmFsLW1lZGl1bS1ib3gtc2hhZG93OyB9XHJcbi51ay1ib3gtc2hhZG93LWxhcmdlIHsgYm94LXNoYWRvdzogJGdsb2JhbC1sYXJnZS1ib3gtc2hhZG93OyB9XHJcbi51ay1ib3gtc2hhZG93LXhsYXJnZSB7IGJveC1zaGFkb3c6ICRnbG9iYWwteGxhcmdlLWJveC1zaGFkb3c7IH1cclxuXHJcbi8qXHJcbiAqIEhvdmVyXHJcbiAqL1xyXG5cclxuW2NsYXNzKj0ndWstYm94LXNoYWRvdy1ob3ZlciddIHsgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAkYm94LXNoYWRvdy1kdXJhdGlvbiBlYXNlLWluLW91dDsgfVxyXG5cclxuLnVrLWJveC1zaGFkb3ctaG92ZXItc21hbGw6aG92ZXIgeyBib3gtc2hhZG93OiAkZ2xvYmFsLXNtYWxsLWJveC1zaGFkb3c7IH1cclxuLnVrLWJveC1zaGFkb3ctaG92ZXItbWVkaXVtOmhvdmVyIHsgYm94LXNoYWRvdzogJGdsb2JhbC1tZWRpdW0tYm94LXNoYWRvdzsgfVxyXG4udWstYm94LXNoYWRvdy1ob3Zlci1sYXJnZTpob3ZlciB7IGJveC1zaGFkb3c6ICRnbG9iYWwtbGFyZ2UtYm94LXNoYWRvdzsgfVxyXG4udWstYm94LXNoYWRvdy1ob3Zlci14bGFyZ2U6aG92ZXIgeyBib3gtc2hhZG93OiAkZ2xvYmFsLXhsYXJnZS1ib3gtc2hhZG93OyB9XHJcblxyXG5cclxuLyogQm94LXNoYWRvdyBib3R0b21cclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiAxLiBTZXQgcG9zaXRpb24uXHJcbiAqIDIuIFNldCBzdHlsZVxyXG4gKiAzLiBCbHVyIGRvZXNuJ3Qgd29yayBvbiBwc2V1ZG8gZWxlbWVudHMgd2l0aCBuZWdhdGl2ZSBgei1pbmRleGAgaW4gRWRnZS5cclxuICogICAgU29sdmVkIGJ5IHVzaW5nIGBiZWZvcmVgIGFuZCBhZGQgcG9zaXRpb24gY29udGV4dCB0byBjaGlsZCBlbGVtZW50cy5cclxuICovXHJcblxyXG5Ac3VwcG9ydHMgKGZpbHRlcjogYmx1cigwKSkge1xyXG5cclxuICAgIC51ay1ib3gtc2hhZG93LWJvdHRvbSB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIH1cclxuXHJcbiAgICAudWstYm94LXNoYWRvdy1ib3R0b206OmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgLyogMSAqL1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBib3R0b206ICgtJGJveC1zaGFkb3ctYm90dG9tLWhlaWdodCk7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgICAvKiAyICovXHJcbiAgICAgICAgaGVpZ2h0OiAkYm94LXNoYWRvdy1ib3R0b20taGVpZ2h0O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3gtc2hhZG93LWJvdHRvbS1ib3JkZXItcmFkaXVzO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRib3gtc2hhZG93LWJvdHRvbS1iYWNrZ3JvdW5kO1xyXG4gICAgICAgIGZpbHRlcjogYmx1cigkYm94LXNoYWRvdy1ib3R0b20tYmx1cik7XHJcbiAgICAgICAgQGlmKG1peGluLWV4aXN0cyhob29rLWJveC1zaGFkb3ctYm90dG9tKSkge0BpbmNsdWRlIGhvb2stYm94LXNoYWRvdy1ib3R0b20oKTt9XHJcbiAgICB9XHJcblxyXG4gICAgLyogMyAqL1xyXG4gICAgLnVrLWJveC1zaGFkb3ctYm90dG9tID4gKiB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxyXG5cclxufVxyXG5cclxuXHJcbi8qIERyb3AgY2FwXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogMS4gRmlyZWZveCBkb2Vzbid0IGFwcGx5IGA6OmZpcnN0LWxldHRlcmAgaWYgdGhlIGZpcnN0IGxldHRlciBpcyBpbnNpZGUgY2hpbGQgZWxlbWVudHNcclxuICogICAgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MDA0XHJcbiAqIDIuIEluIEZpcmVmb3gsIGEgZmxvYXRpbmcgYDo6Zmlyc3QtbGV0dGVyYCBkb2Vzbid0IGhhdmUgYSBsaW5lIGJveCBhbmQgdGhlcmUgZm9yIG5vIGBsaW5lLWhlaWdodGBcclxuICogICAgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE3OTMzXHJcbiAqIDMuIENhdXNlZCBieSAxLjogRWRnZSBjcmVhdGVzIHR3byBuZXN0ZWQgYDo6Zmlyc3QtbGV0dGVyYCBjb250YWluZXJzLCBvbmUgZm9yIGVhY2ggc2VsZWN0b3JcclxuICogICAgVGhpcyBkb3VibGVzIHRoZSBgZm9udC1zaXplYCBleHBvbmVudGlhbCB3aGVuIHVzaW5nIHRoZSBgZW1gIHVuaXQuXHJcbiAqL1xyXG5cclxuLnVrLWRyb3BjYXA6OmZpcnN0LWxldHRlcixcclxuLyogMSAqL1xyXG4udWstZHJvcGNhcCA+IHA6Zmlyc3Qtb2YtdHlwZTo6Zmlyc3QtbGV0dGVyIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAkZHJvcGNhcC1tYXJnaW4tcmlnaHQ7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIGZvbnQtc2l6ZTogJGRyb3BjYXAtZm9udC1zaXplO1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICBAaWYobWl4aW4tZXhpc3RzKGhvb2stZHJvcGNhcCkpIHtAaW5jbHVkZSBob29rLWRyb3BjYXAoKTt9XHJcbn1cclxuXHJcbi8qIDIgKi9cclxuQC1tb3otZG9jdW1lbnQgdXJsLXByZWZpeCgpIHtcclxuXHJcbiAgLnVrLWRyb3BjYXA6OmZpcnN0LWxldHRlcixcclxuICAudWstZHJvcGNhcCA+IHA6Zmlyc3Qtb2YtdHlwZTo6Zmlyc3QtbGV0dGVyIHsgbWFyZ2luLXRvcDogMS4xJTsgfVxyXG5cclxufVxyXG5cclxuLyogMyAqL1xyXG5Ac3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcclxuXHJcbiAgLnVrLWRyb3BjYXAgPiBwOmZpcnN0LW9mLXR5cGU6OmZpcnN0LWxldHRlciB7IGZvbnQtc2l6ZTogMWVtOyB9XHJcblxyXG59XHJcblxyXG5cclxuLyogTG9nb1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIDEuIFJlcXVpcmVkIGZvciBgYWBcclxuICovXHJcblxyXG4udWstbG9nbyB7XHJcbiAgICBmb250LXNpemU6ICRsb2dvLWZvbnQtc2l6ZTtcclxuICAgIGZvbnQtZmFtaWx5OiAkbG9nby1mb250LWZhbWlseTtcclxuICAgIGNvbG9yOiAkbG9nby1jb2xvcjtcclxuICAgIC8qIDEgKi9cclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1sb2dvKSkge0BpbmNsdWRlIGhvb2stbG9nbygpO31cclxufVxyXG5cclxuLyogSG92ZXIgKyBGb2N1cyAqL1xyXG4udWstbG9nbzpob3ZlcixcclxuLnVrLWxvZ286Zm9jdXMge1xyXG4gICAgY29sb3I6ICRsb2dvLWhvdmVyLWNvbG9yO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIC8qIDEgKi9cclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIEBpZihtaXhpbi1leGlzdHMoaG9vay1sb2dvLWhvdmVyKSkge0BpbmNsdWRlIGhvb2stbG9nby1ob3ZlcigpO31cclxufVxyXG5cclxuLnVrLWxvZ28taW52ZXJzZSB7IGRpc3BsYXk6IG5vbmU7IH1cclxuXHJcblxyXG4vKiBEaXNhYmxlZCBTdGF0ZVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1kaXNhYmxlZCB7IHBvaW50ZXItZXZlbnRzOiBub25lOyB9XHJcblxyXG5cclxuLyogRHJhZyBTdGF0ZVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIDEuIE5lZWRlZCBpZiBtb3Zpbmcgb3ZlciBlbGVtZW50cyB3aXRoIGhhdmUgdGhlaXIgb3duIGN1cnNvciBvbiBob3ZlciwgZS5nLiBsaW5rcyBvciBidXR0b25zXHJcbiAqIDIuIEZpeCBkcmFnZ2luZyBvdmVyIGlmcmFtZXNcclxuICovXHJcblxyXG4udWstZHJhZyxcclxuLyogMSAqL1xyXG4udWstZHJhZyAqIHsgY3Vyc29yOiBtb3ZlOyB9XHJcblxyXG4vKiAyICovXHJcbi51ay1kcmFnIGlmcmFtZSB7IHBvaW50ZXItZXZlbnRzOiBub25lOyB9XHJcblxyXG5cclxuLyogRHJhZ292ZXIgU3RhdGVcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiBDcmVhdGUgYSBib3gtc2hhZG93IHdoZW4gZHJhZ2dpbmcgYSBmaWxlIG92ZXIgdGhlIHVwbG9hZCBhcmVhXHJcbiAqL1xyXG5cclxuLnVrLWRyYWdvdmVyIHsgYm94LXNoYWRvdzogJGRyYWdvdmVyLWJveC1zaGFkb3c7IH1cclxuXHJcblxyXG4vKiBCbGVuZCBtb2Rlc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1ibGVuZC1tdWx0aXBseSB7IG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTsgfVxyXG4udWstYmxlbmQtc2NyZWVuIHsgbWl4LWJsZW5kLW1vZGU6IHNjcmVlbjsgfVxyXG4udWstYmxlbmQtb3ZlcmxheSB7IG1peC1ibGVuZC1tb2RlOiBvdmVybGF5OyB9XHJcbi51ay1ibGVuZC1kYXJrZW4geyBtaXgtYmxlbmQtbW9kZTogZGFya2VuOyB9XHJcbi51ay1ibGVuZC1saWdodGVuIHsgbWl4LWJsZW5kLW1vZGU6IGxpZ2h0ZW47IH1cclxuLnVrLWJsZW5kLWNvbG9yLWRvZGdlIHsgbWl4LWJsZW5kLW1vZGU6IGNvbG9yLWRvZGdlOyB9XHJcbi51ay1ibGVuZC1jb2xvci1idXJuIHsgbWl4LWJsZW5kLW1vZGU6IGNvbG9yLWJ1cm47IH1cclxuLnVrLWJsZW5kLWhhcmQtbGlnaHQgeyBtaXgtYmxlbmQtbW9kZTogaGFyZC1saWdodDsgfVxyXG4udWstYmxlbmQtc29mdC1saWdodCB7IG1peC1ibGVuZC1tb2RlOiBzb2Z0LWxpZ2h0OyB9XHJcbi51ay1ibGVuZC1kaWZmZXJlbmNlIHsgbWl4LWJsZW5kLW1vZGU6IGRpZmZlcmVuY2U7IH1cclxuLnVrLWJsZW5kLWV4Y2x1c2lvbiB7IG1peC1ibGVuZC1tb2RlOiBleGNsdXNpb247IH1cclxuLnVrLWJsZW5kLWh1ZSB7IG1peC1ibGVuZC1tb2RlOiBodWU7IH1cclxuLnVrLWJsZW5kLXNhdHVyYXRpb24geyBtaXgtYmxlbmQtbW9kZTogc2F0dXJhdGlvbjsgfVxyXG4udWstYmxlbmQtY29sb3IgeyBtaXgtYmxlbmQtbW9kZTogY29sb3I7IH1cclxuLnVrLWJsZW5kLWx1bWlub3NpdHkgeyBtaXgtYmxlbmQtbW9kZTogbHVtaW5vc2l0eTsgfVxyXG5cclxuXHJcbi8qIFRyYW5zZm9ybVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVrLXRyYW5zZm9ybS1jZW50ZXIgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgfVxyXG5cclxuXHJcbi8qIFRyYW5zZm9ybSBPcmlnaW5cclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay10cmFuc2Zvcm0tb3JpZ2luLXRvcC1sZWZ0IHsgdHJhbnNmb3JtLW9yaWdpbjogMCAwOyB9XHJcbi51ay10cmFuc2Zvcm0tb3JpZ2luLXRvcC1jZW50ZXIgeyB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMDsgfVxyXG4udWstdHJhbnNmb3JtLW9yaWdpbi10b3AtcmlnaHQgeyB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7IH1cclxuLnVrLXRyYW5zZm9ybS1vcmlnaW4tY2VudGVyLWxlZnQgeyB0cmFuc2Zvcm0tb3JpZ2luOiAwIDUwJTsgfVxyXG4udWstdHJhbnNmb3JtLW9yaWdpbi1jZW50ZXItcmlnaHQgeyB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDUwJTsgfVxyXG4udWstdHJhbnNmb3JtLW9yaWdpbi1ib3R0b20tbGVmdCB7IHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTsgfVxyXG4udWstdHJhbnNmb3JtLW9yaWdpbi1ib3R0b20tY2VudGVyIHsgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDEwMCU7IH1cclxuLnVrLXRyYW5zZm9ybS1vcmlnaW4tYm90dG9tLXJpZ2h0IHsgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlOyB9XHJcblxyXG5cclxuLy8gSG9va3NcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stdXRpbGl0eS1taXNjKSkge0BpbmNsdWRlIGhvb2stdXRpbGl0eS1taXNjKCk7fVxyXG5cclxuLy8gQG1peGluIGhvb2stcGFuZWwtc2Nyb2xsYWJsZSgpe31cclxuLy8gQG1peGluIGhvb2stYm94LXNoYWRvdy1ib3R0b20oKXt9XHJcbi8vIEBtaXhpbiBob29rLWRyb3BjYXAoKXt9XHJcbi8vIEBtaXhpbiBob29rLWxvZ28oKXt9XHJcbi8vIEBtaXhpbiBob29rLWxvZ28taG92ZXIoKXt9XHJcbi8vIEBtaXhpbiBob29rLXV0aWxpdHktbWlzYygpe31cclxuXHJcblxyXG4vLyBJbnZlcnNlXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuJGludmVyc2UtbG9nby1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGludmVyc2UtZ2xvYmFsLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1sb2dvLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAkaW52ZXJzZS1nbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcblxyXG5cclxuXHJcbi8vIEBtaXhpbiBob29rLWludmVyc2UtZHJvcGNhcCgpe31cclxuLy8gQG1peGluIGhvb2staW52ZXJzZS1sb2dvKCl7fVxyXG4vLyBAbWl4aW4gaG9vay1pbnZlcnNlLWxvZ28taG92ZXIoKXt9XHJcbiIsIi8vIE5hbWU6ICAgICAgICAgICAgRmxleFxyXG4vLyBEZXNjcmlwdGlvbjogICAgIFV0aWxpdGllcyBmb3IgbGF5b3V0cyBiYXNlZCBvbiBmbGV4Ym94XHJcbi8vXHJcbi8vIENvbXBvbmVudDogICAgICAgYHVrLWZsZXgtKmBcclxuLy9cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogRmxleFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1mbGV4IHsgZGlzcGxheTogZmxleDsgfVxyXG4udWstZmxleC1pbmxpbmUgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfVxyXG5cclxuLypcclxuICogUmVtb3ZlIHBzZXVkbyBlbGVtZW50cyBjcmVhdGVkIGJ5IG1pY3JvIGNsZWFyZml4IGFzIHByZWNhdXRpb25cclxuICovXHJcblxyXG4udWstZmxleDo6YmVmb3JlLFxyXG4udWstZmxleDo6YWZ0ZXIsXHJcbi51ay1mbGV4LWlubGluZTo6YmVmb3JlLFxyXG4udWstZmxleC1pbmxpbmU6OmFmdGVyIHsgZGlzcGxheTogbm9uZTsgfVxyXG5cclxuXHJcbi8qIEFsaWdubWVudFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIEFsaWduIGl0ZW1zIGFsb25nIHRoZSBtYWluIGF4aXMgb2YgdGhlIGN1cnJlbnQgbGluZSBvZiB0aGUgZmxleCBjb250YWluZXJcclxuICogUm93OiBIb3Jpem9udGFsXHJcbiAqL1xyXG5cclxuLy8gRGVmYXVsdFxyXG4udWstZmxleC1sZWZ0IHsganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XHJcbi51ay1mbGV4LWNlbnRlciB7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XHJcbi51ay1mbGV4LXJpZ2h0IHsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxyXG4udWstZmxleC1iZXR3ZWVuIHsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XHJcbi51ay1mbGV4LWFyb3VuZCB7IGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XHJcblxyXG5cclxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXNtYWxsKSB7XHJcblxyXG4gICAgLnVrLWZsZXgtbGVmdFxcQHMgeyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cclxuICAgIC51ay1mbGV4LWNlbnRlclxcQHMgeyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxyXG4gICAgLnVrLWZsZXgtcmlnaHRcXEBzIHsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxyXG4gICAgLnVrLWZsZXgtYmV0d2VlblxcQHMgeyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cclxuICAgIC51ay1mbGV4LWFyb3VuZFxcQHMgeyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxyXG5cclxufVxyXG5cclxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXHJcbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcclxuXHJcbiAgICAudWstZmxleC1sZWZ0XFxAbSB7IGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxyXG4gICAgLnVrLWZsZXgtY2VudGVyXFxAbSB7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XHJcbiAgICAudWstZmxleC1yaWdodFxcQG0geyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XHJcbiAgICAudWstZmxleC1iZXR3ZWVuXFxAbSB7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxyXG4gICAgLnVrLWZsZXgtYXJvdW5kXFxAbSB7IGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XHJcblxyXG59XHJcblxyXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LWxhcmdlKSB7XHJcblxyXG4gICAgLnVrLWZsZXgtbGVmdFxcQGwgeyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cclxuICAgIC51ay1mbGV4LWNlbnRlclxcQGwgeyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxyXG4gICAgLnVrLWZsZXgtcmlnaHRcXEBsIHsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxyXG4gICAgLnVrLWZsZXgtYmV0d2VlblxcQGwgeyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cclxuICAgIC51ay1mbGV4LWFyb3VuZFxcQGwgeyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxyXG5cclxufVxyXG5cclxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXhsYXJnZSkge1xyXG5cclxuICAgIC51ay1mbGV4LWxlZnRcXEB4bCB7IGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxyXG4gICAgLnVrLWZsZXgtY2VudGVyXFxAeGwgeyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxyXG4gICAgLnVrLWZsZXgtcmlnaHRcXEB4bCB7IGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cclxuICAgIC51ay1mbGV4LWJldHdlZW5cXEB4bCB7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxyXG4gICAgLnVrLWZsZXgtYXJvdW5kXFxAeGwgeyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxyXG5cclxufVxyXG5cclxuLypcclxuICogQWxpZ24gaXRlbXMgaW4gdGhlIGNyb3NzIGF4aXMgb2YgdGhlIGN1cnJlbnQgbGluZSBvZiB0aGUgZmxleCBjb250YWluZXJcclxuICogUm93OiBWZXJ0aWNhbFxyXG4gKi9cclxuXHJcbi8vIERlZmF1bHRcclxuLnVrLWZsZXgtc3RyZXRjaCB7IGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XHJcbi51ay1mbGV4LXRvcCB7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XHJcbi51ay1mbGV4LW1pZGRsZSB7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cclxuLnVrLWZsZXgtYm90dG9tIHsgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XHJcblxyXG5cclxuLyogRGlyZWN0aW9uXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gRGVmYXVsdFxyXG4udWstZmxleC1yb3cgeyBmbGV4LWRpcmVjdGlvbjogcm93OyB9XHJcbi51ay1mbGV4LXJvdy1yZXZlcnNlIHsgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XHJcbi51ay1mbGV4LWNvbHVtbiB7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cclxuLnVrLWZsZXgtY29sdW1uLXJldmVyc2UgeyBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH1cclxuXHJcblxyXG4vKiBXcmFwXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLy8gRGVmYXVsdFxyXG4udWstZmxleC1ub3dyYXAgeyBmbGV4LXdyYXA6IG5vd3JhcDsgfVxyXG4udWstZmxleC13cmFwIHsgZmxleC13cmFwOiB3cmFwOyB9XHJcbi51ay1mbGV4LXdyYXAtcmV2ZXJzZSB7IGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlOyB9XHJcblxyXG4vKlxyXG4gKiBBbGlnbnMgaXRlbXMgd2l0aGluIHRoZSBmbGV4IGNvbnRhaW5lciB3aGVuIHRoZXJlIGlzIGV4dHJhIHNwYWNlIGluIHRoZSBjcm9zcy1heGlzXHJcbiAqIE9ubHkgd29ya3MgaWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBsaW5lIG9mIGZsZXggaXRlbXNcclxuICovXHJcblxyXG4vLyBEZWZhdWx0XHJcbi51ay1mbGV4LXdyYXAtc3RyZXRjaCB7IGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2g7IH1cclxuLnVrLWZsZXgtd3JhcC10b3AgeyBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XHJcbi51ay1mbGV4LXdyYXAtbWlkZGxlIHsgYWxpZ24tY29udGVudDogY2VudGVyOyB9XHJcbi51ay1mbGV4LXdyYXAtYm90dG9tIHsgYWxpZ24tY29udGVudDogZmxleC1lbmQ7IH1cclxuLnVrLWZsZXgtd3JhcC1iZXR3ZWVuIHsgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxyXG4udWstZmxleC13cmFwLWFyb3VuZCB7IGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDsgfVxyXG5cclxuXHJcbi8qIEl0ZW0gb3JkZXJpbmdcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiBEZWZhdWx0IGlzIDBcclxuICovXHJcblxyXG4udWstZmxleC1maXJzdCB7IG9yZGVyOiAtMTt9XHJcbi51ay1mbGV4LWxhc3QgeyBvcmRlcjogOTk7fVxyXG5cclxuXHJcbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXHJcbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1zbWFsbCkge1xyXG5cclxuICAgIC51ay1mbGV4LWZpcnN0XFxAcyB7IG9yZGVyOiAtMTsgfVxyXG4gICAgLnVrLWZsZXgtbGFzdFxcQHMgeyBvcmRlcjogOTk7IH1cclxuXHJcbn1cclxuXHJcbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XHJcblxyXG4gICAgLnVrLWZsZXgtZmlyc3RcXEBtIHsgb3JkZXI6IC0xOyB9XHJcbiAgICAudWstZmxleC1sYXN0XFxAbSB7IG9yZGVyOiA5OTsgfVxyXG5cclxufVxyXG5cclxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXHJcbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZSkge1xyXG5cclxuICAgIC51ay1mbGV4LWZpcnN0XFxAbCB7IG9yZGVyOiAtMTsgfVxyXG4gICAgLnVrLWZsZXgtbGFzdFxcQGwgeyBvcmRlcjogOTk7IH1cclxuXHJcbn1cclxuXHJcbi8qIExhcmdlIHNjcmVlbiBhbmQgYmlnZ2VyICovXHJcbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC14bGFyZ2UpIHtcclxuXHJcbiAgICAudWstZmxleC1maXJzdFxcQHhsIHsgb3JkZXI6IC0xOyB9XHJcbiAgICAudWstZmxleC1sYXN0XFxAeGwgeyBvcmRlcjogOTk7IH1cclxuXHJcbn1cclxuXHJcblxyXG4vKiBJdGVtIGRpbWVuc2lvbnNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiBJbml0aWFsOiAwIDEgYXV0b1xyXG4gKiBDb250ZW50IGRpbWVuc2lvbnMsIGJ1dCBzaHJpbmtzXHJcbiAqL1xyXG5cclxuLypcclxuICogTm8gRmxleDogMCAwIGF1dG9cclxuICogQ29udGVudCBkaW1lbnNpb25zXHJcbiAqL1xyXG5cclxuLnVrLWZsZXgtbm9uZSB7IGZsZXg6IG5vbmU7IH1cclxuXHJcbi8qXHJcbiAqIFJlbGF0aXZlIEZsZXg6IDEgMSBhdXRvXHJcbiAqIFNwYWNlIGlzIGFsbG9jYXRlZCBjb25zaWRlcmluZyBjb250ZW50XHJcbiAqL1xyXG5cclxuLnVrLWZsZXgtYXV0byB7IGZsZXg6IGF1dG87IH1cclxuXHJcbi8qXHJcbiAqIEFic29sdXRlIEZsZXg6IDEgMSAwJVxyXG4gKiBTcGFjZSBpcyBhbGxvY2F0ZWQgc29sZWx5IGJhc2VkIG9uIGZsZXhcclxuICovXHJcblxyXG4udWstZmxleC0xIHsgZmxleDogMTsgfVxyXG5cclxuXHJcbi8vIEhvb2tzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuQGlmKG1peGluLWV4aXN0cyhob29rLWZsZXgtbWlzYykpIHtAaW5jbHVkZSBob29rLWZsZXgtbWlzYygpO31cclxuXHJcbi8vIEBtaXhpbiBob29rLWZsZXgtbWlzYygpe30iLCIvLyBOYW1lOiAgICAgICAgICAgIE1hcmdpblxyXG4vLyBEZXNjcmlwdGlvbjogICAgIFV0aWxpdGllcyBmb3IgbWFyZ2luc1xyXG4vL1xyXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1tYXJnaW4tKmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstbWFyZ2luLXNtYWxsLSpgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLW1hcmdpbi1tZWRpdW0tKmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstbWFyZ2luLWxhcmdlLSpgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLW1hcmdpbi14bGFyZ2UtKmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstbWFyZ2luLXJlbW92ZS0qYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1tYXJnaW4tYXV0by0qYFxyXG4vL1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcblxyXG4vLyBWYXJpYWJsZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4kbWFyZ2luLW1hcmdpbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xyXG5cclxuJG1hcmdpbi1zbWFsbC1tYXJnaW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLXNtYWxsLW1hcmdpbiAhZGVmYXVsdDtcclxuXHJcbiRtYXJnaW4tbWVkaXVtLW1hcmdpbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tZWRpdW0tbWFyZ2luICFkZWZhdWx0O1xyXG5cclxuJG1hcmdpbi1sYXJnZS1tYXJnaW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLW1lZGl1bS1tYXJnaW4gIWRlZmF1bHQ7XHJcbiRtYXJnaW4tbGFyZ2UtbWFyZ2luLWw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1sYXJnZS1tYXJnaW4gIWRlZmF1bHQ7XHJcblxyXG4kbWFyZ2luLXhsYXJnZS1tYXJnaW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtbGFyZ2UtbWFyZ2luICFkZWZhdWx0O1xyXG4kbWFyZ2luLXhsYXJnZS1tYXJnaW4tbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwteGxhcmdlLW1hcmdpbiAhZGVmYXVsdDtcclxuXHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBNYXJnaW5cclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKlxyXG4gKiBEZWZhdWx0XHJcbiAqL1xyXG5cclxuLnVrLW1hcmdpbiB7IG1hcmdpbi1ib3R0b206ICRtYXJnaW4tbWFyZ2luOyB9XHJcbiogKyAudWstbWFyZ2luIHsgbWFyZ2luLXRvcDogJG1hcmdpbi1tYXJnaW4gIWltcG9ydGFudDsgfVxyXG5cclxuLnVrLW1hcmdpbi10b3AgeyBtYXJnaW4tdG9wOiAkbWFyZ2luLW1hcmdpbiAhaW1wb3J0YW50OyB9XHJcbi51ay1tYXJnaW4tYm90dG9tIHsgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1tYXJnaW4gIWltcG9ydGFudDsgfVxyXG4udWstbWFyZ2luLWxlZnQgeyBtYXJnaW4tbGVmdDogJG1hcmdpbi1tYXJnaW4gIWltcG9ydGFudDsgfVxyXG4udWstbWFyZ2luLXJpZ2h0IHsgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luLW1hcmdpbiAhaW1wb3J0YW50OyB9XHJcblxyXG5cclxuLyogU21hbGxcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstbWFyZ2luLXNtYWxsIHsgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1zbWFsbC1tYXJnaW47IH1cclxuKiArIC51ay1tYXJnaW4tc21hbGwgeyBtYXJnaW4tdG9wOiAkbWFyZ2luLXNtYWxsLW1hcmdpbiAhaW1wb3J0YW50OyB9XHJcblxyXG4udWstbWFyZ2luLXNtYWxsLXRvcCB7IG1hcmdpbi10b3A6ICRtYXJnaW4tc21hbGwtbWFyZ2luICFpbXBvcnRhbnQ7IH1cclxuLnVrLW1hcmdpbi1zbWFsbC1ib3R0b20geyBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLXNtYWxsLW1hcmdpbiAhaW1wb3J0YW50OyB9XHJcbi51ay1tYXJnaW4tc21hbGwtbGVmdCB7IG1hcmdpbi1sZWZ0OiAkbWFyZ2luLXNtYWxsLW1hcmdpbiAhaW1wb3J0YW50OyB9XHJcbi51ay1tYXJnaW4tc21hbGwtcmlnaHQgeyBtYXJnaW4tcmlnaHQ6ICRtYXJnaW4tc21hbGwtbWFyZ2luICFpbXBvcnRhbnQ7IH1cclxuXHJcblxyXG4vKiBNZWRpdW1cclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstbWFyZ2luLW1lZGl1bSB7IG1hcmdpbi1ib3R0b206ICRtYXJnaW4tbWVkaXVtLW1hcmdpbjsgfVxyXG4qICsgLnVrLW1hcmdpbi1tZWRpdW0geyBtYXJnaW4tdG9wOiAkbWFyZ2luLW1lZGl1bS1tYXJnaW4gIWltcG9ydGFudDsgfVxyXG5cclxuLnVrLW1hcmdpbi1tZWRpdW0tdG9wIHsgbWFyZ2luLXRvcDogJG1hcmdpbi1tZWRpdW0tbWFyZ2luICFpbXBvcnRhbnQ7IH1cclxuLnVrLW1hcmdpbi1tZWRpdW0tYm90dG9tIHsgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1tZWRpdW0tbWFyZ2luICFpbXBvcnRhbnQ7IH1cclxuLnVrLW1hcmdpbi1tZWRpdW0tbGVmdCB7IG1hcmdpbi1sZWZ0OiAkbWFyZ2luLW1lZGl1bS1tYXJnaW4gIWltcG9ydGFudDsgfVxyXG4udWstbWFyZ2luLW1lZGl1bS1yaWdodCB7IG1hcmdpbi1yaWdodDogJG1hcmdpbi1tZWRpdW0tbWFyZ2luICFpbXBvcnRhbnQ7IH1cclxuXHJcblxyXG4vKiBMYXJnZVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1tYXJnaW4tbGFyZ2UgeyBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWxhcmdlLW1hcmdpbjsgfVxyXG4qICsgLnVrLW1hcmdpbi1sYXJnZSB7IG1hcmdpbi10b3A6ICRtYXJnaW4tbGFyZ2UtbWFyZ2luICFpbXBvcnRhbnQ7IH1cclxuXHJcbi51ay1tYXJnaW4tbGFyZ2UtdG9wIHsgbWFyZ2luLXRvcDogJG1hcmdpbi1sYXJnZS1tYXJnaW4gIWltcG9ydGFudDsgfVxyXG4udWstbWFyZ2luLWxhcmdlLWJvdHRvbSB7IG1hcmdpbi1ib3R0b206ICRtYXJnaW4tbGFyZ2UtbWFyZ2luICFpbXBvcnRhbnQ7IH1cclxuLnVrLW1hcmdpbi1sYXJnZS1sZWZ0IHsgbWFyZ2luLWxlZnQ6ICRtYXJnaW4tbGFyZ2UtbWFyZ2luICFpbXBvcnRhbnQ7IH1cclxuLnVrLW1hcmdpbi1sYXJnZS1yaWdodCB7IG1hcmdpbi1yaWdodDogJG1hcmdpbi1sYXJnZS1tYXJnaW4gIWltcG9ydGFudDsgfVxyXG5cclxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXHJcbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZSkge1xyXG5cclxuICAgIC51ay1tYXJnaW4tbGFyZ2UgeyBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWxhcmdlLW1hcmdpbi1sOyB9XHJcbiAgICAqICsgLnVrLW1hcmdpbi1sYXJnZSB7IG1hcmdpbi10b3A6ICRtYXJnaW4tbGFyZ2UtbWFyZ2luLWwgIWltcG9ydGFudDsgfVxyXG5cclxuICAgIC51ay1tYXJnaW4tbGFyZ2UtdG9wIHsgbWFyZ2luLXRvcDogJG1hcmdpbi1sYXJnZS1tYXJnaW4tbCAhaW1wb3J0YW50OyB9XHJcbiAgICAudWstbWFyZ2luLWxhcmdlLWJvdHRvbSB7IG1hcmdpbi1ib3R0b206ICRtYXJnaW4tbGFyZ2UtbWFyZ2luLWwgIWltcG9ydGFudDsgfVxyXG4gICAgLnVrLW1hcmdpbi1sYXJnZS1sZWZ0IHsgbWFyZ2luLWxlZnQ6ICRtYXJnaW4tbGFyZ2UtbWFyZ2luLWwgIWltcG9ydGFudDsgfVxyXG4gICAgLnVrLW1hcmdpbi1sYXJnZS1yaWdodCB7IG1hcmdpbi1yaWdodDogJG1hcmdpbi1sYXJnZS1tYXJnaW4tbCAhaW1wb3J0YW50OyB9XHJcblxyXG59XHJcblxyXG5cclxuLyogWExhcmdlXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVrLW1hcmdpbi14bGFyZ2UgeyBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLXhsYXJnZS1tYXJnaW47IH1cclxuKiArIC51ay1tYXJnaW4teGxhcmdlIHsgbWFyZ2luLXRvcDogJG1hcmdpbi14bGFyZ2UtbWFyZ2luICFpbXBvcnRhbnQ7IH1cclxuXHJcbi51ay1tYXJnaW4teGxhcmdlLXRvcCB7IG1hcmdpbi10b3A6ICRtYXJnaW4teGxhcmdlLW1hcmdpbiAhaW1wb3J0YW50OyB9XHJcbi51ay1tYXJnaW4teGxhcmdlLWJvdHRvbSB7IG1hcmdpbi1ib3R0b206ICRtYXJnaW4teGxhcmdlLW1hcmdpbiAhaW1wb3J0YW50OyB9XHJcbi51ay1tYXJnaW4teGxhcmdlLWxlZnQgeyBtYXJnaW4tbGVmdDogJG1hcmdpbi14bGFyZ2UtbWFyZ2luICFpbXBvcnRhbnQ7IH1cclxuLnVrLW1hcmdpbi14bGFyZ2UtcmlnaHQgeyBtYXJnaW4tcmlnaHQ6ICRtYXJnaW4teGxhcmdlLW1hcmdpbiAhaW1wb3J0YW50OyB9XHJcblxyXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LWxhcmdlKSB7XHJcblxyXG4gICAgLnVrLW1hcmdpbi14bGFyZ2UgeyBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLXhsYXJnZS1tYXJnaW4tbDsgfVxyXG4gICAgKiArIC51ay1tYXJnaW4teGxhcmdlIHsgbWFyZ2luLXRvcDogJG1hcmdpbi14bGFyZ2UtbWFyZ2luLWwgIWltcG9ydGFudDsgfVxyXG5cclxuICAgIC51ay1tYXJnaW4teGxhcmdlLXRvcCB7IG1hcmdpbi10b3A6ICRtYXJnaW4teGxhcmdlLW1hcmdpbi1sICFpbXBvcnRhbnQ7IH1cclxuICAgIC51ay1tYXJnaW4teGxhcmdlLWJvdHRvbSB7IG1hcmdpbi1ib3R0b206ICRtYXJnaW4teGxhcmdlLW1hcmdpbi1sICFpbXBvcnRhbnQ7IH1cclxuICAgIC51ay1tYXJnaW4teGxhcmdlLWxlZnQgeyBtYXJnaW4tbGVmdDogJG1hcmdpbi14bGFyZ2UtbWFyZ2luLWwgIWltcG9ydGFudDsgfVxyXG4gICAgLnVrLW1hcmdpbi14bGFyZ2UtcmlnaHQgeyBtYXJnaW4tcmlnaHQ6ICRtYXJnaW4teGxhcmdlLW1hcmdpbi1sICFpbXBvcnRhbnQ7IH1cclxuXHJcbn1cclxuXHJcblxyXG4vKiBBdXRvXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVrLW1hcmdpbi1hdXRvIHtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcclxufVxyXG5cclxuLnVrLW1hcmdpbi1hdXRvLXRvcCB7IG1hcmdpbi10b3A6IGF1dG8gIWltcG9ydGFudDsgfVxyXG4udWstbWFyZ2luLWF1dG8tYm90dG9tIHsgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50OyB9XHJcbi51ay1tYXJnaW4tYXV0by1sZWZ0IHsgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsgfVxyXG4udWstbWFyZ2luLWF1dG8tcmlnaHQgeyBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsgfVxyXG5cclxuLnVrLW1hcmdpbi1hdXRvLXZlcnRpY2FsIHtcclxuICAgIG1hcmdpbi10b3A6IGF1dG8gIWltcG9ydGFudDtcclxuICAgIG1hcmdpbi1ib3R0b206IGF1dG8gIWltcG9ydGFudDtcclxufVxyXG5cclxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXNtYWxsKSB7XHJcblxyXG4gICAgLnVrLW1hcmdpbi1hdXRvXFxAcyB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAudWstbWFyZ2luLWF1dG8tbGVmdFxcQHMgeyBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50OyB9XHJcbiAgICAudWstbWFyZ2luLWF1dG8tcmlnaHRcXEBzIHsgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cclxuXHJcbn1cclxuXHJcbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XHJcblxyXG4gICAgLnVrLW1hcmdpbi1hdXRvXFxAbSB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAudWstbWFyZ2luLWF1dG8tbGVmdFxcQG0geyBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50OyB9XHJcbiAgICAudWstbWFyZ2luLWF1dG8tcmlnaHRcXEBtIHsgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cclxuXHJcbn1cclxuXHJcbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UpIHtcclxuXHJcbiAgICAudWstbWFyZ2luLWF1dG9cXEBsIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC51ay1tYXJnaW4tYXV0by1sZWZ0XFxAbCB7IG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IH1cclxuICAgIC51ay1tYXJnaW4tYXV0by1yaWdodFxcQGwgeyBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsgfVxyXG5cclxufVxyXG5cclxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXhsYXJnZSkge1xyXG5cclxuICAgIC51ay1tYXJnaW4tYXV0b1xcQHhsIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC51ay1tYXJnaW4tYXV0by1sZWZ0XFxAeGwgeyBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50OyB9XHJcbiAgICAudWstbWFyZ2luLWF1dG8tcmlnaHRcXEB4bCB7IG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OyB9XHJcblxyXG59XHJcblxyXG5cclxuLyogUmVtb3ZlXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuIC51ay1tYXJnaW4tcmVtb3ZlIHsgbWFyZ2luOiAwICFpbXBvcnRhbnQ7IH1cclxuIC51ay1tYXJnaW4tcmVtb3ZlLXRvcCB7IG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsgfVxyXG4gLnVrLW1hcmdpbi1yZW1vdmUtYm90dG9tIHsgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XHJcbiAudWstbWFyZ2luLXJlbW92ZS1sZWZ0IHsgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxyXG4gLnVrLW1hcmdpbi1yZW1vdmUtcmlnaHQgeyBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxyXG4gXHJcbiAudWstbWFyZ2luLXJlbW92ZS12ZXJ0aWNhbCB7XHJcbiAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xyXG4gICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcclxuIH1cclxuIFxyXG4gLnVrLW1hcmdpbi1yZW1vdmUtYWRqYWNlbnQgKyAqLFxyXG4gLnVrLW1hcmdpbi1yZW1vdmUtZmlyc3QtY2hpbGQgPiA6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IH1cclxuIC51ay1tYXJnaW4tcmVtb3ZlLWxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsgfVxyXG5cclxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXNtYWxsKSB7XHJcblxyXG4gICAgLnVrLW1hcmdpbi1yZW1vdmUtbGVmdFxcQHMgeyBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OyB9XHJcbiAgICAudWstbWFyZ2luLXJlbW92ZS1yaWdodFxcQHMgeyBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxyXG5cclxufVxyXG5cclxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXHJcbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1tZWRpdW0pIHtcclxuXHJcbiAgICAudWstbWFyZ2luLXJlbW92ZS1sZWZ0XFxAbSB7IG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cclxuICAgIC51ay1tYXJnaW4tcmVtb3ZlLXJpZ2h0XFxAbSB7IG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50OyB9XHJcblxyXG59XHJcblxyXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LWxhcmdlKSB7XHJcblxyXG4gICAgLnVrLW1hcmdpbi1yZW1vdmUtbGVmdFxcQGwgeyBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OyB9XHJcbiAgICAudWstbWFyZ2luLXJlbW92ZS1yaWdodFxcQGwgeyBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxyXG5cclxufVxyXG5cclxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXhsYXJnZSkge1xyXG5cclxuICAgIC51ay1tYXJnaW4tcmVtb3ZlLWxlZnRcXEB4bCB7IG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cclxuICAgIC51ay1tYXJnaW4tcmVtb3ZlLXJpZ2h0XFxAeGwgeyBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxyXG5cclxufVxyXG5cclxuXHJcblxyXG4vLyBIb29rc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbkBpZihtaXhpbi1leGlzdHMoaG9vay1tYXJnaW4tbWlzYykpIHtAaW5jbHVkZSBob29rLW1hcmdpbi1taXNjKCk7fVxyXG5cclxuLy8gQG1peGluIGhvb2stbWFyZ2luLW1pc2MoKXt9XHJcbiIsIi8vIE5hbWU6ICAgICAgICAgICAgUGFkZGluZ1xyXG4vLyBEZXNjcmlwdGlvbjogICAgIFV0aWxpdGllcyBmb3IgcGFkZGluZ1xyXG4vL1xyXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1wYWRkaW5nYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wYWRkaW5nLWxhcmdlYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wYWRkaW5nLXJlbW92ZS0qYFxyXG4vL1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcblxyXG4vLyBWYXJpYWJsZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4kcGFkZGluZy1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcclxuJHBhZGRpbmctcGFkZGluZy1sOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1tZWRpdW0tZ3V0dGVyICFkZWZhdWx0O1xyXG5cclxuJHBhZGRpbmctc21hbGwtcGFkZGluZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1zbWFsbC1ndXR0ZXIgIWRlZmF1bHQ7XHJcblxyXG4kcGFkZGluZy1sYXJnZS1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsLWd1dHRlciAhZGVmYXVsdDtcclxuJHBhZGRpbmctbGFyZ2UtcGFkZGluZy1sOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbC1sYXJnZS1ndXR0ZXIgIWRlZmF1bHQ7XHJcblxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogUGFkZGluZ1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1wYWRkaW5nIHsgcGFkZGluZzogJHBhZGRpbmctcGFkZGluZzsgfVxyXG5cclxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXHJcbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZSkge1xyXG5cclxuICAgIC51ay1wYWRkaW5nIHsgcGFkZGluZzogJHBhZGRpbmctcGFkZGluZy1sOyB9XHJcblxyXG59XHJcblxyXG5cclxuLyogU21hbGxcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstcGFkZGluZy1zbWFsbCB7IHBhZGRpbmc6ICRwYWRkaW5nLXNtYWxsLXBhZGRpbmc7IH1cclxuXHJcblxyXG4vKiBMYXJnZVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1wYWRkaW5nLWxhcmdlIHsgcGFkZGluZzogJHBhZGRpbmctbGFyZ2UtcGFkZGluZzsgfVxyXG5cclxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXHJcbkBtZWRpYSAobWluLXdpZHRoOiAkYnJlYWtwb2ludC1sYXJnZSkge1xyXG5cclxuICAgIC51ay1wYWRkaW5nLWxhcmdlIHsgcGFkZGluZzogJHBhZGRpbmctbGFyZ2UtcGFkZGluZy1sOyB9XHJcblxyXG59XHJcblxyXG5cclxuLyogUmVtb3ZlXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVrLXBhZGRpbmctcmVtb3ZlIHsgcGFkZGluZzogMCAhaW1wb3J0YW50OyB9XHJcbi51ay1wYWRkaW5nLXJlbW92ZS10b3AgeyBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50OyB9XHJcbi51ay1wYWRkaW5nLXJlbW92ZS1ib3R0b20geyBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XHJcbi51ay1wYWRkaW5nLXJlbW92ZS1sZWZ0IHsgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cclxuLnVrLXBhZGRpbmctcmVtb3ZlLXJpZ2h0IHsgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OyB9XHJcblxyXG4udWstcGFkZGluZy1yZW1vdmUtdmVydGljYWwge1xyXG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi51ay1wYWRkaW5nLXJlbW92ZS1ob3Jpem9udGFsIHtcclxuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5cclxuLy8gSG9va3NcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stcGFkZGluZy1taXNjKSkge0BpbmNsdWRlIGhvb2stcGFkZGluZy1taXNjKCk7fVxyXG5cclxuLy8gQG1peGluIGhvb2stcGFkZGluZy1taXNjKCl7fVxyXG4iLCIvLyBOYW1lOiAgICAgICAgICAgIFBvc2l0aW9uXHJcbi8vIERlc2NyaXB0aW9uOiAgICAgVXRpbGl0aWVzIHRvIHBvc2l0aW9uIGNvbnRlbnRcclxuLy9cclxuLy8gQ29tcG9uZW50OiAgICAgICBgdWstcG9zaXRpb24tYWJzb2x1dGVgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBvc2l0aW9uLXJlbGF0aXZlYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wb3NpdGlvbi16LWluZGV4YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wb3NpdGlvbi10b3BgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBvc2l0aW9uLWJvdHRvbWBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstcG9zaXRpb24tbGVmdGBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstcG9zaXRpb24tcmlnaHRgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBvc2l0aW9uLXRvcC1sZWZ0YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wb3NpdGlvbi10b3AtY2VudGVyYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wb3NpdGlvbi10b3AtcmlnaHRgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBvc2l0aW9uLWJvdHRvbS1sZWZ0YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wb3NpdGlvbi1ib3R0b20tY2VudGVyYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wb3NpdGlvbi1ib3R0b20tcmlnaHRgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBvc2l0aW9uLWNlbnRlcmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstcG9zaXRpb24tY2VudGVyLWxlZnRgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBvc2l0aW9uLWNlbnRlci1yaWdodGBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstcG9zaXRpb24tY292ZXJgXHJcbi8vXHJcbi8vIE1vZGlmaWVyczogICAgICAgYHVrLXBvc2l0aW9uLXNtYWxsYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wb3NpdGlvbi1tZWRpdW1gXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBvc2l0aW9uLWxhcmdlYFxyXG4vL1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcblxyXG4vLyBWYXJpYWJsZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4kcG9zaXRpb24tc21hbGwtbWFyZ2luOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtc21hbGwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kcG9zaXRpb24tbWVkaXVtLW1hcmdpbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kcG9zaXRpb24tbGFyZ2UtbWFyZ2luOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWwtZ3V0dGVyICFkZWZhdWx0O1xyXG4kcG9zaXRpb24tbGFyZ2UtbWFyZ2luLWw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwcHggIWRlZmF1bHQ7XHJcblxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogUG9zaXRpb25cclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5cclxuLyogRGlyZWN0aW9uc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbltjbGFzcyo9J3VrLXBvc2l0aW9uLXRvcCddLFxyXG5bY2xhc3MqPSd1ay1wb3NpdGlvbi1ib3R0b20nXSxcclxuW2NsYXNzKj0ndWstcG9zaXRpb24tbGVmdCddLFxyXG5bY2xhc3MqPSd1ay1wb3NpdGlvbi1yaWdodCddLFxyXG5bY2xhc3MqPSd1ay1wb3NpdGlvbi1jZW50ZXInXSB7IHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OyB9XHJcblxyXG5cclxuLyogRWRnZXNcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKiBEb24ndCB1c2UgYHdpZHRoOiAxMDAlYCBiZWNhdXNlIGl0IGlzIHdyb25nIGlmIHRoZSBwYXJlbnQgaGFzIHBhZGRpbmcuICovXHJcbi51ay1wb3NpdGlvbi10b3Age1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG59XHJcblxyXG4udWstcG9zaXRpb24tYm90dG9tIHtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICByaWdodDogMDtcclxufVxyXG5cclxuLnVrLXBvc2l0aW9uLWxlZnQge1xyXG4gICAgdG9wOiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogMDtcclxufVxyXG5cclxuLnVrLXBvc2l0aW9uLXJpZ2h0IHtcclxuICAgIHRvcDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG59XHJcblxyXG5cclxuLyogQ29ybmVyc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1wb3NpdGlvbi10b3AtbGVmdCB7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG59XHJcblxyXG4udWstcG9zaXRpb24tdG9wLXJpZ2h0IHtcclxuICAgIHRvcDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG59XHJcblxyXG4udWstcG9zaXRpb24tYm90dG9tLWxlZnQge1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogMDtcclxufVxyXG5cclxuLnVrLXBvc2l0aW9uLWJvdHRvbS1yaWdodCB7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICByaWdodDogMDtcclxufVxyXG5cclxuLypcclxuICogQ2VudGVyXHJcbiAqIDEuIEZpeCB0ZXh0IHdyYXBwaW5nIGlmIGNvbnRlbnQgaXMgbGFyZ2VyIHRoYW4gNTAlIG9mIHRoZSBjb250YWluZXIuXHJcbiAqL1xyXG5cclxuLnVrLXBvc2l0aW9uLWNlbnRlciB7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsLTUwJSk7XHJcbiAgICAvKiAxICovXHJcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG59XHJcblxyXG4vKiBWZXJ0aWNhbCAqL1xyXG5bY2xhc3MqPSd1ay1wb3NpdGlvbi1jZW50ZXItbGVmdCddLFxyXG5bY2xhc3MqPSd1ay1wb3NpdGlvbi1jZW50ZXItcmlnaHQnXSB7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxufVxyXG5cclxuLnVrLXBvc2l0aW9uLWNlbnRlci1sZWZ0IHsgbGVmdDogMDsgfVxyXG4udWstcG9zaXRpb24tY2VudGVyLXJpZ2h0IHsgcmlnaHQ6IDA7IH1cclxuXHJcbi51ay1wb3NpdGlvbi1jZW50ZXItbGVmdC1vdXQge1xyXG4gICAgcmlnaHQ6IDEwMCU7XHJcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XHJcbn1cclxuXHJcbi51ay1wb3NpdGlvbi1jZW50ZXItcmlnaHQtb3V0IHtcclxuICAgIGxlZnQ6IDEwMCU7XHJcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XHJcbn1cclxuXHJcbi8qIEhvcml6b250YWwgKi9cclxuLnVrLXBvc2l0aW9uLXRvcC1jZW50ZXIsXHJcbi51ay1wb3NpdGlvbi1ib3R0b20tY2VudGVyIHtcclxuICAgIGxlZnQ6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuICAgIC8qIDEgKi9cclxuICAgIHdpZHRoOiBtYXgtY29udGVudDtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbn1cclxuXHJcbi51ay1wb3NpdGlvbi10b3AtY2VudGVyIHsgdG9wOiAwOyB9XHJcbi51ay1wb3NpdGlvbi1ib3R0b20tY2VudGVyIHsgYm90dG9tOiAwOyB9XHJcblxyXG5cclxuLyogQ292ZXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstcG9zaXRpb24tY292ZXIge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG59XHJcblxyXG5cclxuLyogVXRpbGl0eVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay1wb3NpdGlvbi1yZWxhdGl2ZSB7IHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50OyB9XHJcblxyXG4udWstcG9zaXRpb24tYWJzb2x1dGUgeyBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDsgfVxyXG5cclxuLnVrLXBvc2l0aW9uLWZpeGVkIHsgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7IH1cclxuXHJcbi51ay1wb3NpdGlvbi16LWluZGV4IHsgei1pbmRleDogMTsgfVxyXG5cclxuXHJcbi8qIE1hcmdpbiBtb2RpZmllclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIFNtYWxsXHJcbiAqL1xyXG5cclxuLnVrLXBvc2l0aW9uLXNtYWxsIHtcclxuICAgIG1heC13aWR0aDogdW5xdW90ZSgnY2FsYygxMDAlIC0gKCN7JHBvc2l0aW9uLXNtYWxsLW1hcmdpbn0gKiAyKSknKTtcclxuICAgIG1hcmdpbjogJHBvc2l0aW9uLXNtYWxsLW1hcmdpbjtcclxufVxyXG5cclxuLnVrLXBvc2l0aW9uLXNtYWxsLnVrLXBvc2l0aW9uLWNlbnRlciB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHRyYW5zbGF0ZSgtJHBvc2l0aW9uLXNtYWxsLW1hcmdpbiwgKC0kcG9zaXRpb24tc21hbGwtbWFyZ2luKSk7IH1cclxuXHJcbi51ay1wb3NpdGlvbi1zbWFsbFtjbGFzcyo9J3VrLXBvc2l0aW9uLWNlbnRlci1sZWZ0J10sXHJcbi51ay1wb3NpdGlvbi1zbWFsbFtjbGFzcyo9J3VrLXBvc2l0aW9uLWNlbnRlci1yaWdodCddIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVkoLSRwb3NpdGlvbi1zbWFsbC1tYXJnaW4pOyB9XHJcblxyXG4udWstcG9zaXRpb24tc21hbGwudWstcG9zaXRpb24tdG9wLWNlbnRlcixcclxuLnVrLXBvc2l0aW9uLXNtYWxsLnVrLXBvc2l0aW9uLWJvdHRvbS1jZW50ZXIgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWCgtJHBvc2l0aW9uLXNtYWxsLW1hcmdpbik7IH1cclxuXHJcbi8qXHJcbiAqIE1lZGl1bVxyXG4gKi9cclxuXHJcbi51ay1wb3NpdGlvbi1tZWRpdW0ge1xyXG4gICAgbWF4LXdpZHRoOiB1bnF1b3RlKCdjYWxjKDEwMCUgLSAoI3skcG9zaXRpb24tbWVkaXVtLW1hcmdpbn0gKiAyKSknKTtcclxuICAgIG1hcmdpbjogJHBvc2l0aW9uLW1lZGl1bS1tYXJnaW47XHJcbn1cclxuXHJcbi51ay1wb3NpdGlvbi1tZWRpdW0udWstcG9zaXRpb24tY2VudGVyIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgdHJhbnNsYXRlKC0kcG9zaXRpb24tbWVkaXVtLW1hcmdpbiwgKC0kcG9zaXRpb24tbWVkaXVtLW1hcmdpbikpOyB9XHJcblxyXG4udWstcG9zaXRpb24tbWVkaXVtW2NsYXNzKj0ndWstcG9zaXRpb24tY2VudGVyLWxlZnQnXSxcclxuLnVrLXBvc2l0aW9uLW1lZGl1bVtjbGFzcyo9J3VrLXBvc2l0aW9uLWNlbnRlci1yaWdodCddIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVkoLSRwb3NpdGlvbi1tZWRpdW0tbWFyZ2luKTsgfVxyXG5cclxuLnVrLXBvc2l0aW9uLW1lZGl1bS51ay1wb3NpdGlvbi10b3AtY2VudGVyLFxyXG4udWstcG9zaXRpb24tbWVkaXVtLnVrLXBvc2l0aW9uLWJvdHRvbS1jZW50ZXIgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWCgtJHBvc2l0aW9uLW1lZGl1bS1tYXJnaW4pOyB9XHJcblxyXG4vKlxyXG4gKiBMYXJnZVxyXG4gKi9cclxuXHJcbi51ay1wb3NpdGlvbi1sYXJnZSB7XHJcbiAgICBtYXgtd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSAtICgjeyRwb3NpdGlvbi1sYXJnZS1tYXJnaW59ICogMikpJyk7XHJcbiAgICBtYXJnaW46ICRwb3NpdGlvbi1sYXJnZS1tYXJnaW47XHJcbn1cclxuXHJcbi51ay1wb3NpdGlvbi1sYXJnZS51ay1wb3NpdGlvbi1jZW50ZXIgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSB0cmFuc2xhdGUoLSRwb3NpdGlvbi1sYXJnZS1tYXJnaW4sICgtJHBvc2l0aW9uLWxhcmdlLW1hcmdpbikpOyB9XHJcblxyXG4udWstcG9zaXRpb24tbGFyZ2VbY2xhc3MqPSd1ay1wb3NpdGlvbi1jZW50ZXItbGVmdCddLFxyXG4udWstcG9zaXRpb24tbGFyZ2VbY2xhc3MqPSd1ay1wb3NpdGlvbi1jZW50ZXItcmlnaHQnXSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVZKC0kcG9zaXRpb24tbGFyZ2UtbWFyZ2luKTsgfVxyXG5cclxuLnVrLXBvc2l0aW9uLWxhcmdlLnVrLXBvc2l0aW9uLXRvcC1jZW50ZXIsXHJcbi51ay1wb3NpdGlvbi1sYXJnZS51ay1wb3NpdGlvbi1ib3R0b20tY2VudGVyIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVgoLSRwb3NpdGlvbi1sYXJnZS1tYXJnaW4pOyB9XHJcblxyXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LWxhcmdlKSB7XHJcblxyXG4gICAgLnVrLXBvc2l0aW9uLWxhcmdlIHtcclxuICAgICAgICBtYXgtd2lkdGg6IHVucXVvdGUoJ2NhbGMoMTAwJSAtICgjeyRwb3NpdGlvbi1sYXJnZS1tYXJnaW4tbH0gKiAyKSknKTtcclxuICAgICAgICBtYXJnaW46ICRwb3NpdGlvbi1sYXJnZS1tYXJnaW4tbDtcclxuICAgIH1cclxuXHJcbiAgICAudWstcG9zaXRpb24tbGFyZ2UudWstcG9zaXRpb24tY2VudGVyIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgdHJhbnNsYXRlKC0kcG9zaXRpb24tbGFyZ2UtbWFyZ2luLWwsICgtJHBvc2l0aW9uLWxhcmdlLW1hcmdpbi1sKSk7IH1cclxuXHJcbiAgICAudWstcG9zaXRpb24tbGFyZ2VbY2xhc3MqPSd1ay1wb3NpdGlvbi1jZW50ZXItbGVmdCddLFxyXG4gICAgLnVrLXBvc2l0aW9uLWxhcmdlW2NsYXNzKj0ndWstcG9zaXRpb24tY2VudGVyLXJpZ2h0J10geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWSgtJHBvc2l0aW9uLWxhcmdlLW1hcmdpbi1sKTsgfVxyXG5cclxuICAgIC51ay1wb3NpdGlvbi1sYXJnZS51ay1wb3NpdGlvbi10b3AtY2VudGVyLFxyXG4gICAgLnVrLXBvc2l0aW9uLWxhcmdlLnVrLXBvc2l0aW9uLWJvdHRvbS1jZW50ZXIgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWCgtJHBvc2l0aW9uLWxhcmdlLW1hcmdpbi1sKTsgfVxyXG5cclxufVxyXG5cclxuXHJcbi8vIEhvb2tzXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuQGlmKG1peGluLWV4aXN0cyhob29rLXBvc2l0aW9uLW1pc2MpKSB7QGluY2x1ZGUgaG9vay1wb3NpdGlvbi1taXNjKCk7fVxyXG5cclxuLy8gQG1peGluIGhvb2stcG9zaXRpb24tbWlzYygpe31cclxuIiwiLy8gTmFtZTogICAgICAgICAgICBUcmFuc2l0aW9uXHJcbi8vIERlc2NyaXB0aW9uOiAgICAgVXRpbGl0aWVzIGZvciB0cmFuc2l0aW9uc1xyXG4vL1xyXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay10cmFuc2l0aW9uLSpgXHJcbi8vXHJcbi8vIE1vZGlmaWVyczogICAgICAgYHVrLXRyYW5zaXRpb24tZmFkZWBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstdHJhbnNpdGlvbi1zY2FsZS11cGBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstdHJhbnNpdGlvbi1zY2FsZS1kb3duYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10cmFuc2l0aW9uLXNsaWRlLXRvcC0qYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10cmFuc2l0aW9uLXNsaWRlLWJvdHRvbS0qYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10cmFuc2l0aW9uLXNsaWRlLWxlZnQtKmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstdHJhbnNpdGlvbi1zbGlkZS1yaWdodC0qYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10cmFuc2l0aW9uLW9wYXF1ZWBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstdHJhbnNpdGlvbi1zbG93YFxyXG4vL1xyXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay10cmFuc2l0aW9uLXRvZ2dsZWAsXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRyYW5zaXRpb24tYWN0aXZlYFxyXG4vL1xyXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1hY3RpdmVgXHJcbi8vXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuXHJcbi8vIFZhcmlhYmxlc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiR0cmFuc2l0aW9uLWR1cmF0aW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjNzICFkZWZhdWx0O1xyXG5cclxuJHRyYW5zaXRpb24tc2NhbGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMSAhZGVmYXVsdDtcclxuXHJcbiR0cmFuc2l0aW9uLXNsaWRlLXNtYWxsLXRyYW5zbGF0ZTogICAgICAgICAgICAgICAxMHB4ICFkZWZhdWx0O1xyXG4kdHJhbnNpdGlvbi1zbGlkZS1tZWRpdW0tdHJhbnNsYXRlOiAgICAgICAgICAgICAgNTBweCAhZGVmYXVsdDtcclxuXHJcbiR0cmFuc2l0aW9uLXNsb3ctZHVyYXRpb246ICAgICAgICAgICAgICAgICAgICAgICAwLjdzICFkZWZhdWx0O1xyXG5cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IFRyYW5zaXRpb25cclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5cclxuLyogVG9nZ2xlIChIb3ZlciArIEZvY3VzKVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qXHJcbiAqIDEuIFByZXZlbnQgdGFiIGhpZ2hsaWdodGluZyBvbiBpT1MuXHJcbiAqL1xyXG5cclxuLnVrLXRyYW5zaXRpb24tdG9nZ2xlIHtcclxuICAgIC8qIDEgKi9cclxuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi8qXHJcbiAqIFJlbW92ZSBvdXRsaW5lIGZvciBgdGFiaW5kZXhgXHJcbiAqL1xyXG5cclxuLnVrLXRyYW5zaXRpb24tdG9nZ2xlOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxyXG5cclxuXHJcbi8qIFRyYW5zaXRpb25zXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogVGhlIHRvZ2dsZSBpcyB0cmlnZ2VyZWQgb24gdG91Y2ggZGV2aWNlcyBieSB0d28gbWV0aG9kczpcclxuICogMS4gVXNpbmcgYDpmb2N1c2AgYW5kIHRhYmluZGV4XHJcbiAqIDIuIFVzaW5nIGA6aG92ZXJgIGFuZCBhIGB0b3VjaHN0YXJ0YCBldmVudCBsaXN0ZW5lciByZWdpc3RlcmVkIG9uIHRoZSBkb2N1bWVudFxyXG4gKiAgICAoRG9lc24ndCB3b3JrIG9uIFN1cmZhY2UgdG91Y2ggZGV2aWNlcylcclxuICpcclxuICogTm90ZTogVHJhbnNpdGlvbnMgZG9uJ3Qgd29yayB3aXRoIGB1ay1wb3N0aW9uLWNlbnRlci0qYCBjbGFzc2VzIGJlY2F1c2UgdGhleSBhbHNvIHVzZSBgdHJhbnNmb3JtYCxcclxuICogICAgICAgdGhlcmVmb3JlIGl0J3MgcmVjb21tZW5kZWQgdG8gdXNlIGFuIGV4dHJhIGBkaXZgIGZvciB0aGUgdHJhbnNpdGlvbi5cclxuICovXHJcblxyXG4udWstdHJhbnNpdGlvbi1mYWRlLFxyXG5bY2xhc3MqPSd1ay10cmFuc2l0aW9uLXNjYWxlJ10sXHJcbltjbGFzcyo9J3VrLXRyYW5zaXRpb24tc2xpZGUnXSB7XHJcbiAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbi1kdXJhdGlvbiBlYXNlLW91dDtcclxuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIHRyYW5zZm9ybSwgZmlsdGVyO1xyXG4gICAgb3BhY2l0eTogMDtcclxufVxyXG5cclxuLypcclxuICogRmFkZVxyXG4gKi9cclxuXHJcbi51ay10cmFuc2l0aW9uLXRvZ2dsZTpob3ZlciAudWstdHJhbnNpdGlvbi1mYWRlLFxyXG4udWstdHJhbnNpdGlvbi10b2dnbGU6Zm9jdXMgLnVrLXRyYW5zaXRpb24tZmFkZSxcclxuLnVrLXRyYW5zaXRpb24tYWN0aXZlLnVrLWFjdGl2ZSAudWstdHJhbnNpdGlvbi1mYWRlIHsgb3BhY2l0eTogMTsgfVxyXG5cclxuLypcclxuICogU2NhbGVcclxuICovXHJcblxyXG4udWstdHJhbnNpdGlvbi1zY2FsZS11cCB7IHRyYW5zZm9ybTogc2NhbGUoMSwxKTsgfVxyXG4udWstdHJhbnNpdGlvbi1zY2FsZS1kb3duIHsgdHJhbnNmb3JtOiBzY2FsZSgkdHJhbnNpdGlvbi1zY2FsZSwkdHJhbnNpdGlvbi1zY2FsZSk7IH1cclxuXHJcbi8qIFNob3cgKi9cclxuLnVrLXRyYW5zaXRpb24tdG9nZ2xlOmhvdmVyIC51ay10cmFuc2l0aW9uLXNjYWxlLXVwLFxyXG4udWstdHJhbnNpdGlvbi10b2dnbGU6Zm9jdXMgLnVrLXRyYW5zaXRpb24tc2NhbGUtdXAsXHJcbi51ay10cmFuc2l0aW9uLWFjdGl2ZS51ay1hY3RpdmUgLnVrLXRyYW5zaXRpb24tc2NhbGUtdXAge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoJHRyYW5zaXRpb24tc2NhbGUsJHRyYW5zaXRpb24tc2NhbGUpO1xyXG59XHJcblxyXG4udWstdHJhbnNpdGlvbi10b2dnbGU6aG92ZXIgLnVrLXRyYW5zaXRpb24tc2NhbGUtZG93bixcclxuLnVrLXRyYW5zaXRpb24tdG9nZ2xlOmZvY3VzIC51ay10cmFuc2l0aW9uLXNjYWxlLWRvd24sXHJcbi51ay10cmFuc2l0aW9uLWFjdGl2ZS51ay1hY3RpdmUgLnVrLXRyYW5zaXRpb24tc2NhbGUtZG93biB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLDEpO1xyXG59XHJcblxyXG4vKlxyXG4gKiBTbGlkZVxyXG4gKi9cclxuXHJcbi51ay10cmFuc2l0aW9uLXNsaWRlLXRvcCB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7IH1cclxuLnVrLXRyYW5zaXRpb24tc2xpZGUtYm90dG9tIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpOyB9XHJcbi51ay10cmFuc2l0aW9uLXNsaWRlLWxlZnQgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyB9XHJcbi51ay10cmFuc2l0aW9uLXNsaWRlLXJpZ2h0IHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpOyB9XHJcblxyXG4udWstdHJhbnNpdGlvbi1zbGlkZS10b3Atc21hbGwgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSR0cmFuc2l0aW9uLXNsaWRlLXNtYWxsLXRyYW5zbGF0ZSk7IH1cclxuLnVrLXRyYW5zaXRpb24tc2xpZGUtYm90dG9tLXNtYWxsIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCR0cmFuc2l0aW9uLXNsaWRlLXNtYWxsLXRyYW5zbGF0ZSk7IH1cclxuLnVrLXRyYW5zaXRpb24tc2xpZGUtbGVmdC1zbWFsbCB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJHRyYW5zaXRpb24tc2xpZGUtc21hbGwtdHJhbnNsYXRlKTsgfVxyXG4udWstdHJhbnNpdGlvbi1zbGlkZS1yaWdodC1zbWFsbCB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkdHJhbnNpdGlvbi1zbGlkZS1zbWFsbC10cmFuc2xhdGUpOyB9XHJcblxyXG4udWstdHJhbnNpdGlvbi1zbGlkZS10b3AtbWVkaXVtIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kdHJhbnNpdGlvbi1zbGlkZS1tZWRpdW0tdHJhbnNsYXRlKTsgfVxyXG4udWstdHJhbnNpdGlvbi1zbGlkZS1ib3R0b20tbWVkaXVtIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCR0cmFuc2l0aW9uLXNsaWRlLW1lZGl1bS10cmFuc2xhdGUpOyB9XHJcbi51ay10cmFuc2l0aW9uLXNsaWRlLWxlZnQtbWVkaXVtIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kdHJhbnNpdGlvbi1zbGlkZS1tZWRpdW0tdHJhbnNsYXRlKTsgfVxyXG4udWstdHJhbnNpdGlvbi1zbGlkZS1yaWdodC1tZWRpdW0geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHRyYW5zaXRpb24tc2xpZGUtbWVkaXVtLXRyYW5zbGF0ZSk7IH1cclxuXHJcbi8qIFNob3cgKi9cclxuLnVrLXRyYW5zaXRpb24tdG9nZ2xlOmhvdmVyIFtjbGFzcyo9J3VrLXRyYW5zaXRpb24tc2xpZGUnXSxcclxuLnVrLXRyYW5zaXRpb24tdG9nZ2xlOmZvY3VzIFtjbGFzcyo9J3VrLXRyYW5zaXRpb24tc2xpZGUnXSxcclxuLnVrLXRyYW5zaXRpb24tYWN0aXZlLnVrLWFjdGl2ZSBbY2xhc3MqPSd1ay10cmFuc2l0aW9uLXNsaWRlJ10ge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsMCk7XHJcbn1cclxuXHJcblxyXG4vKiBPcGFjaXR5IG1vZGlmaWVyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLnVrLXRyYW5zaXRpb24tb3BhcXVlIHsgb3BhY2l0eTogMTsgfVxyXG5cclxuXHJcbi8qIER1cmF0aW9uIG1vZGlmaWVyc1xyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi51ay10cmFuc2l0aW9uLXNsb3cgeyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkdHJhbnNpdGlvbi1zbG93LWR1cmF0aW9uOyB9XHJcblxyXG5cclxuLy8gSG9va3NcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG5AaWYobWl4aW4tZXhpc3RzKGhvb2stdHJhbnNpdGlvbi1taXNjKSkge0BpbmNsdWRlIGhvb2stdHJhbnNpdGlvbi1taXNjKCk7fVxyXG5cclxuLy8gQG1peGluIGhvb2stdHJhbnNpdGlvbi1taXNjKCl7fVxyXG4iLCIvLyBOYW1lOiAgICAgICAgICAgIFZpc2liaWxpdHlcclxuLy8gRGVzY3JpcHRpb246ICAgICBVdGlsaXRpZXMgdG8gc2hvdyBvciBoaWRlIGNvbnRlbnQgb24gYnJlYWtwb2ludHMsIGhvdmVyIG9yIHRvdWNoXHJcbi8vXHJcbi8vIENvbXBvbmVudDogICAgICAgYHVrLWhpZGRlbi0qYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay12aXNpYmxlLSpgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWludmlzaWJsZWBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstdmlzaWJsZS10b2dnbGVgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWhpZGRlbi1ob3ZlcmBcclxuLy8gICAgICAgICAgICAgICAgICBgdWstaW52aXNpYmxlLWhvdmVyYFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1oaWRkZW4tdG91Y2hgXHJcbi8vICAgICAgICAgICAgICAgICAgYHVrLWhpZGRlbi1ub3RvdWNoYFxyXG4vL1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBWaXNpYmlsaXR5XHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogSGlkZGVuXHJcbiAqIGBoaWRkZW5gIGF0dHJpYnV0ZSBhbHNvIHNldCBoZXJlIHRvIG1ha2UgaXQgc3Ryb25nZXJcclxuICovXHJcblxyXG5baGlkZGVuXSxcclxuLnVrLWhpZGRlbiB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxyXG5cclxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXNtYWxsKSB7XHJcblxyXG4gICAgLnVrLWhpZGRlblxcQHMgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cclxuXHJcbn1cclxuXHJcbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtKSB7XHJcblxyXG4gICAgLnVrLWhpZGRlblxcQG0geyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cclxuXHJcbn1cclxuXHJcbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UpIHtcclxuXHJcbiAgICAudWstaGlkZGVuXFxAbCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxyXG5cclxufVxyXG5cclxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cclxuQG1lZGlhIChtaW4td2lkdGg6ICRicmVha3BvaW50LXhsYXJnZSkge1xyXG5cclxuICAgIC51ay1oaWRkZW5cXEB4bCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxyXG5cclxufVxyXG5cclxuLypcclxuICogVmlzaWJsZVxyXG4gKi9cclxuXHJcbi8qIFBob25lIHBvcnRyYWl0IGFuZCBzbWFsbGVyICovXHJcbkBtZWRpYSAobWF4LXdpZHRoOiAkYnJlYWtwb2ludC14c21hbGwtbWF4KSB7XHJcblxyXG4gICAgLnVrLXZpc2libGVcXEBzIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XHJcblxyXG59XHJcblxyXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIHNtYWxsZXIgKi9cclxuQG1lZGlhIChtYXgtd2lkdGg6ICRicmVha3BvaW50LXNtYWxsLW1heCkge1xyXG5cclxuICAgIC51ay12aXNpYmxlXFxAbSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxyXG5cclxufVxyXG5cclxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgc21hbGxlciAqL1xyXG5AbWVkaWEgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtbWVkaXVtLW1heCkge1xyXG5cclxuICAgIC51ay12aXNpYmxlXFxAbCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxyXG5cclxufVxyXG5cclxuLyogRGVza3RvcCBhbmQgc21hbGxlciAqL1xyXG5AbWVkaWEgKG1heC13aWR0aDogJGJyZWFrcG9pbnQtbGFyZ2UtbWF4KSB7XHJcblxyXG4gICAgLnVrLXZpc2libGVcXEB4bCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxyXG5cclxufVxyXG5cclxuXHJcbi8qIFZpc2liaWxpdHlcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4udWstaW52aXNpYmxlIHsgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7IH1cclxuXHJcblxyXG4vKiBUb2dnbGUgKEhvdmVyICsgRm9jdXMpXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogSGlkZGVuXHJcbiAqIDEuIFRoZSB0b2dnbGUgaXMgdHJpZ2dlcmVkIG9uIHRvdWNoIGRldmljZXMgdXNpbmcgYDpmb2N1c2AgYW5kIHRhYmluZGV4XHJcbiAqIDIuIFRoZSB0YXJnZXQgc3RheXMgdmlzaWJsZSBpZiBhbnkgZWxlbWVudCB3aXRoaW4gcmVjZWl2ZXMgZm9jdXMgdGhyb3VnaCBrZXlib2FyZFxyXG4gKiAgICBEb2Vzbid0IHdvcmsgaW4gRWRnZSwgeWV0LlxyXG4gKiAzLiBDYW4ndCB1c2UgYGRpc3BsYXk6IG5vbmVgIG5vciBgdmlzaWJpbGl0eTogaGlkZGVuYCBiZWNhdXNlIGJvdGggYXJlIG5vdCBmb2N1c2FibGUuXHJcbiAqXHJcbiAqL1xyXG5cclxuLyogMSArIDIgKi9cclxuLnVrLXZpc2libGUtdG9nZ2xlOm5vdCg6aG92ZXIpOm5vdCg6Zm9jdXMpIC51ay1oaWRkZW4taG92ZXI6bm90KDpmb2N1cy13aXRoaW4pIHtcclxuICAgIC8qIDMgKi9cclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xyXG4gICAgd2lkdGg6IDAgIWltcG9ydGFudDtcclxuICAgIGhlaWdodDogMCAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi8qXHJcbiAqIEludmlzaWJsZVxyXG4gKi9cclxuXHJcbi8qIDEgKyAyICovXHJcbi51ay12aXNpYmxlLXRvZ2dsZTpub3QoOmhvdmVyKTpub3QoOmZvY3VzKSAudWstaW52aXNpYmxlLWhvdmVyOm5vdCg6Zm9jdXMtd2l0aGluKSB7XHJcbiAgICAvKiAzICovXHJcbiAgICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi8qXHJcbiAqIDEuIFByZXZlbnQgdGFiIGhpZ2hsaWdodGluZyBvbiBpT1MuXHJcbiAqL1xyXG5cclxuLnVrLXZpc2libGUtdG9nZ2xlIHtcclxuICAgIC8qIDEgKi9cclxuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi8qXHJcbiAqIFJlbW92ZSBvdXRsaW5lIGZvciBgdGFiaW5kZXhgXHJcbiAqL1xyXG5cclxuLnVrLXZpc2libGUtdG9nZ2xlOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxyXG5cclxuXHJcbi8qIFRvdWNoXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogSGlkZSBpZiBwcmltYXJ5IHBvaW50aW5nIGRldmljZSBoYXMgbGltaXRlZCBhY2N1cmFjeSwgZS5nLiBhIHRvdWNoIHNjcmVlbi5cclxuICogV29ya3Mgb24gbW9iaWxlIGJyb3dzZXJzOiBTYWZhcmksIENocm9tZSBhbmQgQW5kcm9pZCBicm93c2VyXHJcbiAqL1xyXG5cclxuQG1lZGlhIChwb2ludGVyOiBjb2Fyc2UpIHtcclxuICAgIC51ay1oaWRkZW4tdG91Y2ggeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cclxufVxyXG5cclxuLypcclxuICogSGlkZSBpZiBwcmltYXJ5IHBvaW50aW5nIGRldmljZSBpcyBhY2N1cmF0ZSwgZS5nLiBtb3VzZS5cclxuICogMS4gRmFsbGJhY2sgZm9yIElFMTEgYW5kIEZpcmVmb3gsIGJlY2F1c2UgYHBvaW50ZXJgIGlzIG5vdCBzdXBwb3J0ZWRcclxuICogMi4gUmVzZXQgaWYgc3VwcG9ydGVkXHJcbiAqL1xyXG5cclxuLyogMSAqL1xyXG4udWstaGlkZGVuLW5vdG91Y2ggeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cclxuXHJcbkBtZWRpYSAocG9pbnRlcjogY29hcnNlKSB7XHJcbiAgICAudWstaGlkZGVuLW5vdG91Y2ggeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XHJcbn1cclxuXHJcblxyXG4vLyBIb29rc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbkBpZihtaXhpbi1leGlzdHMoaG9vay12aXNpYmlsaXR5LW1pc2MpKSB7QGluY2x1ZGUgaG9vay12aXNpYmlsaXR5LW1pc2MoKTt9XHJcblxyXG4vLyBAbWl4aW4gaG9vay12aXNpYmlsaXR5LW1pc2MoKXt9XHJcbiIsIi8vIE5hbWU6ICAgICAgICAgICAgSW52ZXJzZVxyXG4vLyBEZXNjcmlwdGlvbjogICAgIEludmVyc2UgY29tcG9uZW50IHN0eWxlIGZvciBsaWdodCBvciBkYXJrIGJhY2tncm91bmRzXHJcbi8vXHJcbi8vIENvbXBvbmVudDogICAgICAgYHVrLWxpZ2h0YFxyXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1kYXJrYFxyXG4vL1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcblxyXG4vLyBWYXJpYWJsZXNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4kaW52ZXJzZS1nbG9iYWwtY29sb3ItbW9kZTogICAgICAgICAgICAgICAgICAgICAgbGlnaHQgIWRlZmF1bHQ7XHJcblxyXG4kaW52ZXJzZS1nbG9iYWwtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmdiYSgkZ2xvYmFsLWludmVyc2UtY29sb3IsIDAuNykgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvcjogICAgICAgICAgICAgICAgICAkZ2xvYmFsLWludmVyc2UtY29sb3IgIWRlZmF1bHQ7XHJcbiRpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICByZ2JhKCRnbG9iYWwtaW52ZXJzZS1jb2xvciwgMC41KSAhZGVmYXVsdDtcclxuJGludmVyc2UtZ2xvYmFsLWludmVyc2UtY29sb3I6ICAgICAgICAgICAgICAgICAgICRnbG9iYWwtY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4kaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgJGdsb2JhbC1pbnZlcnNlLWNvbG9yICFkZWZhdWx0O1xyXG4kaW52ZXJzZS1nbG9iYWwtbXV0ZWQtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgcmdiYSgkZ2xvYmFsLWludmVyc2UtY29sb3IsIDAuMSkgIWRlZmF1bHQ7XHJcblxyXG4kaW52ZXJzZS1nbG9iYWwtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgcmdiYSgkZ2xvYmFsLWludmVyc2UtY29sb3IsIDAuMikgIWRlZmF1bHQ7XHJcblxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogSW52ZXJzZVxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcblxyXG5cclxuLypcclxuICogSW1wbGVtZW50ZWQgY2xhc3MgZGVwZW5kcyBvbiB0aGUgZ2VuZXJhbCB0aGVtZSBjb2xvclxyXG4gKiBgdWstbGlnaHRgIGlzIGZvciBsaWdodCBjb2xvcnMgb24gZGFyayBiYWNrZ3JvdW5kc1xyXG4gKiBgdWstZGFya2AgaXMgb3IgZGFyayBjb2xvcnMgb24gbGlnaHQgYmFja2dyb3VuZHNcclxuICovXHJcblxyXG5AaWYgKCRpbnZlcnNlLWdsb2JhbC1jb2xvci1tb2RlID09IGxpZ2h0KSB7IC51ay1saWdodCB7IEBpZiAobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZSkpIHtAaW5jbHVkZSBob29rLWludmVyc2UoKTt9fX1cclxuXHJcbkBpZiAoJGludmVyc2UtZ2xvYmFsLWNvbG9yLW1vZGUgPT0gZGFyaykgeyAudWstZGFyayB7IEBpZiAobWl4aW4tZXhpc3RzKGhvb2staW52ZXJzZSkpIHtAaW5jbHVkZSBob29rLWludmVyc2UoKTt9fX1cclxuXHJcblxyXG4vLyBIb29rc1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbi8vIEBtaXhpbiBob29rLWludmVyc2UoKXt9Il19 */
