@import url(https://fonts.googleapis.com/css?family=Fira+Sans:300,400,500,600,700);
/*

Name: Tech Space
Background: White
Color: Blue
Type: Flat
Preview: https://downloads-yootheme.storage.googleapis.com/library/tech-space/styles/default.jpg

Style: white-darkblue
Name: White Darkblue
Background: White
Color: Blue
Type: Flat
Preview: https://downloads-yootheme.storage.googleapis.com/library/tech-space/styles/white-darkblue.jpg

Style: white-green
Name: White Green
Background: White
Color: Green
Type: Flat
Preview: https://downloads-yootheme.storage.googleapis.com/library/tech-space/styles/white-green.jpg

Style: white-blue
Name: White blue
Background: White
Color: Blue
Type: Flat
Preview: https://downloads-yootheme.storage.googleapis.com/library/tech-space/styles/white-blue.jpg

Style: white-pink
Name: White Pink
Background: White
Color: Pink
Type: Flat
Preview: https://downloads-yootheme.storage.googleapis.com/library/tech-space/styles/white-pink.jpg

Style: white-orange
Name: White Orange
Background: White
Color: Orange
Type: Flat
Preview: https://downloads-yootheme.storage.googleapis.com/library/tech-space/styles/white-orange.jpg

*/
/* ========================================================================
   Component: Base
 ========================================================================== */
/*
 * 1. Set `font-size` to support `rem` units
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 * 3. Style
 */
html {
  /* 1 */
  font-family: 'Fira Sans';
  font-size: 16px;
  font-weight: normal;
  line-height: 1.5;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 3 */
  background: #FFF;
  color: #2C2C2C;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
/*
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}
/* Links
 ========================================================================== */
/*
 * Style
 */
a,
.uk-link {
  color: #0E9B4A;
  text-decoration: none;
  cursor: pointer;
}
a:hover,
.uk-link:hover,
.uk-link-toggle:hover .uk-link {
  color: #10B858;
  text-decoration: none;
}
/* 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 */
  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: 15px;
  /* 3 */
  color: #FB3F3F;
  white-space: nowrap;
}
/*
 * Emphasize
 */
em {
  color: #000000;
}
/*
 * Insert
 */
ins {
  background: #ffd;
  color: #2C2C2C;
  text-decoration: none;
}
/*
 * Mark
 */
mark {
  background: #ffd;
  color: #2C2C2C;
}
/*
 * 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 the element and the bottom of its parent container.
 */
audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle;
}
/*
 * 1. Constrain the element to its parent width.
 * 2. Preserve the intrinsic aspect ratio and auto-scale the height of an image if the `height` attribute is present.
 * 3. Take border and padding into account.
 */
canvas,
img,
svg,
video {
  /* 1 */
  max-width: 100%;
  /* 2 */
  height: auto;
  /* 3 */
  box-sizing: border-box;
}
/*
 * Deprecated: only needed for `img` elements with `uk-img`
 * 1. Hide `alt` text for lazy load images.
 * 2. Fix lazy loading images if parent element is set to `display: inline` and has `overflow: hidden`.
 */
img:not([src]) {
  /* 1 */
  visibility: hidden;
  /* 2 */
  min-width: 1px;
}
/*
 * 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: inherit;
  font-weight: 500;
  color: #1C1C1C;
  text-transform: inherit;
}
/* 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: 34px;
  line-height: 1.2;
  font-weight: 500;
}
h2,
.uk-h2 {
  font-size: 27.2px;
  line-height: 1.1;
  font-weight: 500;
}
h3,
.uk-h3 {
  font-size: 28px;
  line-height: 1.2;
  font-weight: 500;
  letter-spacing: 0.1;
}
h4,
.uk-h4 {
  font-size: 21px;
  line-height: 1.4;
  font-weight: 400;
}
h5,
.uk-h5 {
  font-size: 17px;
  line-height: 1.4;
  font-weight: 400;
}
h6,
.uk-h6 {
  font-size: 15px;
  line-height: 1.4;
  font-weight: 400;
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
  h1,
  .uk-h1 {
    font-size: 40px;
  }
  h2,
  .uk-h2 {
    font-size: 32px;
  }
}
/* 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 #EDEDED;
}
/* 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: 20px;
  line-height: 1.5;
  font-style: inherit;
  color: #1C1C1C;
  font-weight: 400;
}
/* 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: 15px;
  line-height: 1.5;
  color: #2C2C2C;
  font-weight: 500;
}
blockquote footer::before {
  content: "— ";
}
/* Preformatted text
 ========================================================================== */
/*
 * 1. Contain overflow in all browsers.
 */
pre {
  font: 15px / 1.5 Consolas, monaco, monospace;
  color: #2C2C2C;
  -moz-tab-size: 4;
  tab-size: 4;
  /* 1 */
  overflow: auto;
}
pre code {
  font-family: Consolas, monaco, monospace;
}
/* Focus
 ========================================================================== */
:focus {
  outline: none;
}
:focus-visible {
  outline: 2px dotted #1C1C1C;
}
/* Selection pseudo-element
 ========================================================================== */
::selection {
  background: #EFEFEF;
  color: #000000;
  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
 */
: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,
.uk-link-toggle .uk-link-muted {
  color: #868686;
}
a.uk-link-muted:hover,
.uk-link-muted a:hover,
.uk-link-toggle:hover .uk-link-muted {
  color: #2C2C2C;
}
/* Text
 ========================================================================== */
a.uk-link-text,
.uk-link-text a,
.uk-link-toggle .uk-link-text {
  color: inherit;
}
a.uk-link-text:hover,
.uk-link-text a:hover,
.uk-link-toggle:hover .uk-link-text {
  color: #868686;
}
/* Heading
 ========================================================================== */
a.uk-link-heading,
.uk-link-heading a,
.uk-link-toggle .uk-link-heading {
  color: inherit;
}
a.uk-link-heading:hover,
.uk-link-heading a:hover,
.uk-link-toggle:hover .uk-link-heading {
  color: #434343;
  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;
}
/* ========================================================================
   Component: Heading
 ========================================================================== */
.uk-heading-small {
  font-size: 2.4rem;
  line-height: 1.2;
  color: #1C1C1C;
  font-weight: 500;
}
.uk-heading-medium {
  font-size: 3.2484375rem;
  line-height: 1.1;
  color: #042A52;
  font-weight: 500;
}
.uk-heading-large {
  font-size: 3.825rem;
  line-height: 1.1;
  color: #1C1C1C;
  font-weight: 400;
}
.uk-heading-xlarge {
  font-size: 4.5rem;
  line-height: 1;
  color: #1C1C1C;
  font-weight: 400;
}
.uk-heading-2xlarge {
  font-size: 6rem;
  line-height: 1;
  color: #1C1C1C;
  font-weight: 400;
}
/* Tablet Landscape and bigger */
@media (min-width: 960px) {
  .uk-heading-small {
    font-size: 3rem;
  }
  .uk-heading-medium {
    font-size: 3.9375rem;
  }
  .uk-heading-large {
    font-size: 4.5rem;
  }
  .uk-heading-xlarge {
    font-size: 6rem;
  }
  .uk-heading-2xlarge {
    font-size: 8rem;
  }
}
/* Laptop and bigger */
@media (min-width: 1200px) {
  .uk-heading-medium {
    font-size: 4.5rem;
  }
  .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 #EDEDED;
}
/* 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 #EDEDED;
}
/* 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 #EDEDED;
}
.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%23EDEDED%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: 2px solid #EDEDED;
  border-width: 0 0 2px 0;
}
.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: 2px solid #564AEB;
  vertical-align: top;
}
/* Vertical
 ========================================================================== */
.uk-divider-vertical {
  width: max-content;
  height: 100px;
  margin-left: auto;
  margin-right: auto;
  border-left: 2px solid #EDEDED;
}
/* ========================================================================
   Component: List
 ========================================================================== */
.uk-list,
.tm-child-list > ul {
  padding: 0;
  list-style: none;
}
/*
 * Remove margin from the last-child
 */
.uk-list > * > :last-child,
.tm-child-list > ul > * > :last-child {
  margin-bottom: 0;
}
/*
 * Style
 */
.uk-list > :nth-child(n+2),
.uk-list > * > ul,
.tm-child-list > ul > :nth-child(n+2),
.tm-child-list > ul > * > ul {
  margin-top: 10px;
}
/* Marker modifiers
 * Moving `::marker` inside `::before` to style it differently
 * To style the `::marker` is currently only supported in Firefox and Safari
 ========================================================================== */
.uk-list-disc > *,
.uk-list-circle > *,
.uk-list-square > *,
.uk-list-decimal > *,
.uk-list-hyphen > * {
  padding-left: 30px;
}
/*
 * Type modifiers
 */
.uk-list-decimal {
  counter-reset: decimal;
}
.uk-list-decimal > * {
  counter-increment: decimal;
}
.uk-list-disc > ::before,
.uk-list-circle > ::before,
.uk-list-square > ::before,
.uk-list-decimal > ::before,
.uk-list-hyphen > ::before {
  content: "";
  position: relative;
  left: -30px;
  width: 30px;
  height: 1.75em;
  margin-bottom: -1.75em;
  display: list-item;
  list-style-position: inside;
  text-align: right;
}
.uk-list-disc > ::before {
  list-style-type: disc;
}
.uk-list-circle > ::before {
  list-style-type: circle;
}
.uk-list-square > ::before {
  list-style-type: square;
}
.uk-list-decimal > ::before {
  content: counter(decimal, decimal) '\200A.\00A0';
}
.uk-list-hyphen > ::before {
  content: '–\00A0\00A0';
}
/*
 * Color modifiers
 */
.uk-list-muted > ::before {
  color: #868686 !important;
}
.uk-list-emphasis > ::before {
  color: #1C1C1C !important;
}
.uk-list-primary > ::before {
  color: #0E9B4A !important;
}
.uk-list-secondary > ::before {
  color: #111 !important;
}
/* Image bullet modifier
 ========================================================================== */
.uk-list-bullet > * {
  padding-left: 30px;
}
.uk-list-bullet > ::before {
  content: "";
  display: list-item;
  position: relative;
  left: -30px;
  width: 30px;
  height: 1.75em;
  margin-bottom: -1.75em;
  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%232C2C2C%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%;
}
/* Style modifiers
 ========================================================================== */
/*
 * Divider
 */
.uk-list-divider > :nth-child(n+2),
.tm-child-list-divider > ul > :nth-child(n+2) {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 2px solid #EDEDED;
}
/*
 * Striped
 */
.uk-list-striped > * {
  padding: 10px 10px;
}
.uk-list-striped > :nth-of-type(odd) {
  background: #F8F8F8;
}
.uk-list-striped > :nth-child(n+2) {
  margin-top: 0;
}
/* Size modifier
 ========================================================================== */
.uk-list-large > :nth-child(n+2),
.uk-list-large > * > ul {
  margin-top: 40px;
}
.uk-list-collapse > :nth-child(n+2),
.uk-list-collapse > * > ul {
  margin-top: 0;
}
/*
 * Divider
 */
.uk-list-large.uk-list-divider > :nth-child(n+2),
.uk-list-large.tm-child-list-divider > ul > :nth-child(n+2) {
  margin-top: 20px;
  padding-top: 20px;
}
.uk-list-collapse.uk-list-divider > :nth-child(n+2),
.uk-list-collapse.tm-child-list-divider > ul > :nth-child(n+2) {
  margin-top: 0;
  padding-top: 0;
}
/*
 * Striped
 */
.uk-list-large.uk-list-striped > * {
  padding: 20px 10px;
}
.uk-list-collapse.uk-list-striped > * {
  padding-top: 0;
  padding-bottom: 0;
}
.uk-list-large.uk-list-striped > :nth-child(n+2),
.uk-list-collapse.uk-list-striped > :nth-child(n+2) {
  margin-top: 0;
}
/* ========================================================================
   Component: Description list
 ========================================================================== */
/*
 * Term
 */
.uk-description-list > dt {
  color: #1C1C1C;
  font-size: 16px;
  font-weight: 400;
}
.uk-description-list > dt:nth-child(n+2) {
  margin-top: 20px;
}
/*
 * Description
 */
.uk-description-list > dd {
  font-size: 16px;
}
/* Style modifier
 ========================================================================== */
/*
 * Line
 */
.uk-description-list-divider > dt:nth-child(n+2) {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 2px solid #EDEDED;
}
/* ========================================================================
   Component: Table
 ========================================================================== */
/*
 * 1. Remove most spacing between table cells.
 * 2. Behave like a block element
 * 3. Style
 */
.uk-table {
  /* 1 */
  border-collapse: collapse;
  border-spacing: 0;
  /* 2 */
  width: 100%;
  /* 3 */
  margin-bottom: 20px;
}
/* Add margin if adjacent element */
* + .uk-table {
  margin-top: 20px;
}
/* Header cell
 ========================================================================== */
/*
 * 1. Style
 */
.uk-table th {
  padding: 16px 12px;
  text-align: left;
  vertical-align: bottom;
  /* 1 */
  font-size: 15px;
  font-weight: normal;
  color: #868686;
  text-transform: uppercase;
}
/* Cell
 ========================================================================== */
.uk-table td {
  padding: 16px 12px;
  vertical-align: top;
}
/*
 * Remove margin from the last-child
 */
.uk-table td > :last-child {
  margin-bottom: 0;
}
/* Footer
 ========================================================================== */
.uk-table tfoot {
  font-size: 15px;
}
/* Caption
 ========================================================================== */
.uk-table caption {
  font-size: 15px;
  text-align: left;
  color: #868686;
}
/* Alignment modifier
 ========================================================================== */
.uk-table-middle,
.uk-table-middle td {
  vertical-align: middle !important;
}
/* Style modifiers
 ========================================================================== */
/*
 * Divider
 */
.uk-table-divider > tr:not(:first-child),
.uk-table-divider > :not(:first-child) > tr,
.uk-table-divider > :first-child > tr:not(:first-child) {
  border-top: 2px solid #EDEDED;
}
/*
 * Striped
 */
.uk-table-striped > tr:nth-of-type(odd),
.uk-table-striped tbody tr:nth-of-type(odd) {
  background: #F8F8F8;
}
/*
 * Hover
 */
.uk-table-hover > tr:hover,
.uk-table-hover tbody tr:hover {
  background: #f0f0f0;
}
/* Active state
 ========================================================================== */
.uk-table > tr.uk-active,
.uk-table tbody tr.uk-active {
  background: #F8F8F8;
}
/* Size modifier
 ========================================================================== */
.uk-table-small th,
.uk-table-small td {
  padding: 10px 12px;
}
.uk-table-large th,
.uk-table-large td {
  padding: 22px 12px;
}
/* Justify modifier
 ========================================================================== */
.uk-table-justify th:first-child,
.uk-table-justify td:first-child {
  padding-left: 0;
}
.uk-table-justify th:last-child,
.uk-table-justify td:last-child {
  padding-right: 0;
}
/* Cell size modifier
 ========================================================================== */
.uk-table-shrink {
  width: 1px;
}
.uk-table-expand {
  min-width: 150px;
}
/* Cell link modifier
 ========================================================================== */
/*
 * Does not work with `uk-table-justify` at the moment
 */
.uk-table-link {
  padding: 0 !important;
}
.uk-table-link > a {
  display: block;
  padding: 16px 12px;
}
.uk-table-small .uk-table-link > a {
  padding: 10px 12px;
}
/* Responsive table
 ========================================================================== */
/* Phone landscape and smaller */
@media (max-width: 959px) {
  .uk-table-responsive,
  .uk-table-responsive tbody,
  .uk-table-responsive th,
  .uk-table-responsive td,
  .uk-table-responsive tr {
    display: block;
  }
  .uk-table-responsive thead {
    display: none;
  }
  .uk-table-responsive th,
  .uk-table-responsive td {
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    overflow: visible !important;
    white-space: normal !important;
  }
  .uk-table-responsive th:not(:first-child):not(.uk-table-link),
  .uk-table-responsive td:not(:first-child):not(.uk-table-link),
  .uk-table-responsive .uk-table-link:not(:first-child) > a {
    padding-top: 5px !important;
  }
  .uk-table-responsive th:not(:last-child):not(.uk-table-link),
  .uk-table-responsive td:not(:last-child):not(.uk-table-link),
  .uk-table-responsive .uk-table-link:not(:last-child) > a {
    padding-bottom: 5px !important;
  }
  .uk-table-justify.uk-table-responsive th,
  .uk-table-justify.uk-table-responsive td {
    padding-left: 0;
    padding-right: 0;
  }
}
.uk-table tbody tr {
  transition: background-color 0.1s linear;
}
/* ========================================================================
   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
 * 1. Required for `span` with background image
 * 2. Required for `image`
 */
.uk-icon-image {
  width: 20px;
  height: 20px;
  /* 1 */
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: middle;
  /* 2 */
  object-fit: scale-down;
  max-width: none;
}
/* Style modifiers
 ========================================================================== */
/*
 * Link
 * 1. Allow text within link
 */
.uk-icon-link {
  color: #111;
  /* 1 */
  text-decoration: none !important;
}
.uk-icon-link:hover {
  color: #0E9B4A;
}
/* OnClick + Active */
.uk-icon-link:active,
.uk-active > .uk-icon-link {
  color: #868686;
}
/*
 * Button
 * 1. Center icon vertically and horizontally
 */
.uk-icon-button {
  box-sizing: border-box;
  width: 36px;
  height: 36px;
  border-radius: 500px;
  background: #F8F8F8;
  color: #111;
  vertical-align: middle;
  /* 1 */
  display: inline-flex;
  justify-content: center;
  align-items: center;
  transition: 0.1s ease-in-out;
  transition-property: color, background-color, background-size, border-color, box-shadow;
}
/* Hover */
.uk-icon-button:hover {
  background-color: #0E9B4A;
  color: #FFF;
}
/* OnClick + Active */
.uk-icon-button:active,
.uk-active > .uk-icon-button {
  background-color: #111;
  color: #FFF;
}
/* ========================================================================
   Component: Form Range
 ========================================================================== */
/*
 * 1. Remove default style.
 * 2. Define consistent box sizing.
 * 3. Remove `margin` in all browsers.
 * 4. Align to the center of the line box.
 * 5. Prevent content overflow if a fixed width is used.
 * 6. Take the full width.
 * 7. Remove white background in Chrome.
 */
.uk-range {
  /* 1 */
  -webkit-appearance: none;
  /* 2 */
  box-sizing: border-box;
  /* 3 */
  margin: 0;
  /* 4 */
  vertical-align: middle;
  /* 5 */
  max-width: 100%;
  /* 6 */
  width: 100%;
  /* 7 */
  background: transparent;
}
/* Focus */
.uk-range:focus {
  outline: none;
}
.uk-range::-moz-focus-outer {
  border: none;
}
/*
 * Improves consistency of cursor style for clickable elements
 */
.uk-range:not(:disabled)::-webkit-slider-thumb {
  cursor: pointer;
}
.uk-range:not(:disabled)::-moz-range-thumb {
  cursor: pointer;
}
/*
 * Track
 * 1. Safari doesn't have a focus state. Using active instead.
 */
/* Webkit */
.uk-range::-webkit-slider-runnable-track {
  height: 2px;
  background: #ebebeb;
}
.uk-range:focus::-webkit-slider-runnable-track,
.uk-range:active::-webkit-slider-runnable-track {
  background: #1C1C1C;
}
/* Firefox */
.uk-range::-moz-range-track {
  height: 2px;
  background: #ebebeb;
}
.uk-range:focus::-moz-range-track {
  background: #1C1C1C;
}
/*
 * Thumb
 * 1. Reset
 * 2. Style
 */
/* Webkit */
.uk-range::-webkit-slider-thumb {
  /* 1 */
  -webkit-appearance: none;
  margin-top: -6px;
  /* 2 */
  height: 12px;
  width: 12px;
  border-radius: 500px;
  background: #FFF;
  border: 2px solid #1C1C1C;
}
/* Firefox */
.uk-range::-moz-range-thumb {
  /* 1 */
  border: none;
  /* 2 */
  height: 12px;
  width: 12px;
  margin-top: -6px;
  border-radius: 500px;
  background: #FFF;
  border: 2px solid #1C1C1C;
}
/* ========================================================================
   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 20px;
  background: #ffffff;
  color: #2C2C2C;
  transition: 0.2s ease-in-out;
  transition-property: color, background-color, border-color, box-shadow;
}
/*
 * 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: 45px;
  vertical-align: middle;
  /* 1 */
  display: inline-block;
  border: 1px solid #E4E4E4;
}
/* 2 */
.uk-input:not(input),
.uk-select:not(select) {
  line-height: 43px;
}
/*
 * Multi-line
 */
.uk-select[multiple],
.uk-select[size],
.uk-textarea {
  padding-top: 12px;
  padding-bottom: 12px;
  vertical-align: top;
  padding-left: 20px;
  padding-right: 20px;
  border: 1px solid #E4E4E4;
}
.uk-select[multiple],
.uk-select[size] {
  resize: vertical;
}
/* Focus */
.uk-input:focus,
.uk-select:focus,
.uk-textarea:focus {
  outline: none;
  background-color: #F5FBFE;
  color: #2C2C2C;
  border-color: #99BACA !important;
}
/* Disabled */
.uk-input:disabled,
.uk-select:disabled,
.uk-textarea:disabled {
  background-color: #F8F8F8;
  color: #868686;
  border-color: transparent !important;
}
/*
 * Placeholder
 */
.uk-input::placeholder {
  color: rgba(0, 0, 0, 0.7);
}
.uk-textarea::placeholder {
  color: rgba(0, 0, 0, 0.7);
}
/* Style modifier (`uk-input`, `uk-select` and `uk-textarea`)
 ========================================================================== */
/*
 * Small
 */
.uk-form-small {
  font-size: 15px;
}
/* Single-line */
.uk-form-small:not(textarea):not([multiple]):not([size]) {
  height: 36px;
  padding-left: 8px;
  padding-right: 8px;
}
/* Multi-line */
textarea.uk-form-small,
[multiple].uk-form-small,
[size].uk-form-small {
  padding: 5px 8px;
}
.uk-form-small:not(select):not(input):not(textarea) {
  line-height: 34px;
}
/*
 * Large
 */
.uk-form-large {
  font-size: 20px;
}
/* Single-line */
.uk-form-large:not(textarea):not([multiple]):not([size]) {
  height: 56px;
  padding-left: 12px;
  padding-right: 12px;
}
/* Multi-line */
textarea.uk-form-large,
[multiple].uk-form-large,
[size].uk-form-large {
  padding: 7px 12px;
}
.uk-form-large:not(select):not(input):not(textarea) {
  line-height: 54px;
}
/* Style modifier (`uk-input`, `uk-select` and `uk-textarea`)
 ========================================================================== */
/*
 * Error
 */
.uk-form-danger,
.uk-form-danger:focus {
  color: #FB3F3F;
  border-color: transparent !important;
}
/*
 * Success
 */
.uk-form-success,
.uk-form-success:focus {
  color: #42C65C;
  border-color: transparent !important;
}
/*
 * Blank
 */
.uk-form-blank {
  background: none;
  border-color: transparent !important;
}
.uk-form-blank:focus {
  border-color: transparent !important;
}
/* 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. 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%232C2C2C%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%232C2C2C%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]) option {
  color: #0E9B4A;
}
/*
 * 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%23868686%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23868686%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%230E9B4A%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 !important;
}
/* Radio and checkbox
 ========================================================================== */
/*
 * 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%;
  transition: 0.2s ease-in-out;
  transition-property: background-color, border-color, box-shadow;
}
.uk-radio {
  border-radius: 50%;
}
/* Focus */
.uk-radio:focus,
.uk-checkbox:focus {
  background-color: #dedede;
  outline: none;
}
/*
 * Checked
 */
.uk-radio:checked,
.uk-checkbox:checked,
.uk-checkbox:indeterminate {
  background-color: #564AEB;
}
/* Focus */
.uk-radio:checked:focus,
.uk-checkbox:checked:focus,
.uk-checkbox:indeterminate:focus {
  background-color: #2b1ce6;
}
/*
 * 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%23868686%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%23868686%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%23868686%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: 24px;
  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
 ========================================================================== */
.uk-form-label {
  font-size: 16px;
  color: #1C1C1C;
  font-weight: 500;
}
/* 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: 45px;
  /* 3 */
  display: inline-flex;
  justify-content: center;
  align-items: center;
  /* 4 */
  color: #0E9B4A;
}
/*
 * Required for `a`.
 */
.uk-form-icon:hover {
  color: #2C2C2C;
}
/*
 * 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: 45px !important;
}
/*
 * Position modifier
 */
.uk-form-icon-flip {
  right: 0;
  left: auto;
}
.uk-form-icon-flip ~ .uk-input {
  padding-right: 45px !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. Remove default style for `input type="submit"`in iOS.
 * 7. Style
 * 8. `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.
 * 9. Align text if button has a width
 * 10. Required for `a`.
 */
.uk-button {
  /* 1 */
  margin: 0;
  /* 2 */
  border: none;
  /* 3 */
  overflow: visible;
  /* 4 */
  font: inherit;
  color: inherit;
  /* 5 */
  text-transform: none;
  /* 6 */
  -webkit-appearance: none;
  border-radius: 0;
  /* 7 */
  display: inline-block;
  box-sizing: border-box;
  padding: 0 40px;
  vertical-align: middle;
  font-size: 15px;
  /* 8 */
  line-height: 44px;
  /* 9 */
  text-align: center;
  /* 10 */
  text-decoration: none;
  transition: 0.1s ease-in-out;
  transition-property: color, background-color, background-position, background-size, border-color, box-shadow;
  font-weight: 400;
  border-radius: 200px;
  background-origin: border-box;
}
.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;
}
/* OnClick + Active */
/* Style modifiers
 ========================================================================== */
/*
 * Default
 */
.uk-button-default {
  background-color: #0E9B4A;
  color: #FFFFFF;
}
/* Hover */
.uk-button-default:hover {
  background-color: #12B658;
  color: #FFF;
}
/* OnClick + Active */
.uk-button-default:active,
.uk-button-default.uk-active {
  background-color: #0E9B4A;
  color: #FFF;
}
/*
 * Primary
 */
.uk-button-primary {
  background-color: #564AEB;
  color: #FFF;
}
/* Hover */
.uk-button-primary:hover {
  background-color: transparent;
  color: #564AEB;
}
/* OnClick + Active */
.uk-button-primary:active,
.uk-button-primary.uk-active {
  background-color: #111;
  color: #FFF;
}
/*
 * Secondary
 */
.uk-button-secondary {
  background-color: #F3F5F8;
  color: #000000;
}
/* Hover */
.uk-button-secondary:hover {
  background-color: #E9EBEE;
  color: #000000;
}
/* OnClick + Active */
.uk-button-secondary:active,
.uk-button-secondary.uk-active {
  background-color: #EAECEE;
  color: #000000;
}
/*
 * Danger
 */
.uk-button-danger {
  background-color: #FB3F3F;
  color: #FFF;
}
/* Hover */
.uk-button-danger:hover {
  background-color: #fa2626;
  color: #FFF;
}
/* OnClick + Active */
.uk-button-danger:active,
.uk-button-danger.uk-active {
  background-color: #fa0d0d;
  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: #868686;
  background-image: none;
  box-shadow: none;
}
/* Size modifiers
 ========================================================================== */
.uk-button-small {
  padding: 0 18px;
  line-height: 36px;
  font-size: 15px;
}
.uk-button-large {
  padding: 0 35px;
  line-height: 56px;
  font-size: 20px;
}
/* Text modifiers
 ========================================================================== */
/*
 * Text
 * 1. Reset
 * 2. Style
 */
.uk-button-text {
  /* 1 */
  padding: 0;
  line-height: 44px;
  background: none;
  /* 2 */
  color: #1C1C1C;
  border-radius: 0;
}
/* Hover */
.uk-button-text:hover {
  color: #0A813D;
}
/* Disabled */
.uk-button-text:disabled {
  color: #868686;
}
/*
 * Link
 * 1. Reset
 * 2. Style
 */
.uk-button-link {
  /* 1 */
  padding: 0;
  line-height: 44px;
  background: none;
  /* 2 */
  color: #1C1C1C;
}
/* Hover */
.uk-button-link:hover {
  color: #564AEB;
  text-decoration: none;
}
/* Disabled */
.uk-button-link:disabled {
  color: #868686;
  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;
}
/* Group
     ========================================================================== */
/*
     * Reset border-radius
     */
.uk-button-group > .uk-button:not(:first-child):not(:last-child),
.uk-button-group > div:not(:first-child):not(:last-child) .uk-button {
  border-radius: 0;
}
.uk-button-group > .uk-button:first-child,
.uk-button-group > div:first-child .uk-button {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.uk-button-group > .uk-button:last-child,
.uk-button-group > div:last-child .uk-button {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
/* ========================================================================
   Component: Progress
 ========================================================================== */
/*
 * 1. Add the correct vertical alignment in all browsers.
 * 2. Behave like a block element.
 * 3. Remove borders in Firefox.
 * 4. Remove default style in Chrome, Safari and Edge.
 * 5. Style
 */
.uk-progress {
  /* 1 */
  vertical-align: baseline;
  /* 2 */
  display: block;
  width: 100%;
  /* 3 */
  border: 0;
  /* 4 */
  background-color: #F8F8F8;
  /* 5 */
  margin-bottom: 20px;
  height: 15px;
  border-radius: 500px;
  overflow: hidden;
}
/* Add margin if adjacent element */
* + .uk-progress {
  margin-top: 20px;
}
/*
 * Show background color set on `uk-progress` in Chrome, Safari and Edge.
 */
.uk-progress::-webkit-progress-bar {
  background-color: transparent;
}
/*
 * Progress Bar
 * 1. Transitions don't work on `::-moz-progress-bar` pseudo element in Firefox yet.
 *    https://bugzilla.mozilla.org/show_bug.cgi?id=662351
 */
.uk-progress::-webkit-progress-value {
  background-color: #564AEB;
  transition: width 0.6s ease;
}
.uk-progress::-moz-progress-bar {
  background-color: #564AEB;
  /* 1 */
  transition: width 0.6s ease;
}
/* ========================================================================
   Component: Section
 ========================================================================== */
/*
 * 1. Make it work with `100vh` and height in general
 */
.uk-section {
  display: flow-root;
  box-sizing: border-box;
  /* 1 */
  padding-top: 50px;
  padding-bottom: 50px;
}
/* Desktop and bigger */
@media (min-width: 960px) {
  .uk-section {
    padding-top: 80px;
    padding-bottom: 80px;
  }
}
/*
 * 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: #F3F5F8;
}
/*
 * Primary
 */
.uk-section-primary {
  background: #0E9B4A;
}
/*
 * Secondary
 */
.uk-section-secondary {
  background: rgba(14, 155, 74, 0.11);
}
/* 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 {
  display: flow-root;
  /* 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;
  }
}
/*
 * 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: 1400px;
}
.uk-container-xlarge {
  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% + (1400px / 2) - 40px);
  }
  .uk-container-expand-left.uk-container-xlarge,
  .uk-container-expand-right.uk-container-xlarge {
    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: Tile
 ========================================================================== */
.uk-tile {
  display: flow-root;
  position: relative;
  box-sizing: border-box;
  padding-left: 15px;
  padding-right: 15px;
  padding-top: 40px;
  padding-bottom: 40px;
}
/* Phone landscape and bigger */
@media (min-width: 640px) {
  .uk-tile {
    padding-left: 30px;
    padding-right: 30px;
  }
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-tile {
    padding-left: 40px;
    padding-right: 40px;
    padding-top: 70px;
    padding-bottom: 70px;
  }
}
/*
 * Remove margin from the last-child
 */
.uk-tile > :last-child {
  margin-bottom: 0;
}
/* Size modifiers
 ========================================================================== */
/*
 * XSmall
 */
.uk-tile-xsmall {
  padding-top: 20px;
  padding-bottom: 20px;
}
/*
 * Small
 */
.uk-tile-small {
  padding-top: 40px;
  padding-bottom: 40px;
}
/*
 * Large
 */
.uk-tile-large {
  padding-top: 70px;
  padding-bottom: 70px;
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-tile-large {
    padding-top: 140px;
    padding-bottom: 140px;
  }
}
/*
 * XLarge
 */
.uk-tile-xlarge {
  padding-top: 140px;
  padding-bottom: 140px;
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-tile-xlarge {
    padding-top: 210px;
    padding-bottom: 210px;
  }
}
/* Style modifiers
 ========================================================================== */
/*
 * Default
 */
.uk-tile-default {
  background-color: #FFF;
}
.uk-tile-default.uk-tile-hover:hover {
  background-color: #f3f3f3;
}
/*
 * Muted
 */
.uk-tile-muted {
  background-color: #F8F8F8;
}
.uk-tile-muted.uk-tile-hover:hover {
  background-color: #f3f3f3;
}
/*
 * Primary
 */
.uk-tile-primary {
  background-color: #0E9B4A;
}
.uk-tile-primary.uk-tile-hover:hover {
  background-color: #0c8841;
}
/*
 * Secondary
 */
.uk-tile-secondary {
  background-color: #111;
}
.uk-tile-secondary.uk-tile-hover:hover {
  background-color: #070707;
}
.uk-tile-hover {
  transition: 0.1s ease-in-out;
  transition-property: background-color, background-size;
}
:where(.uk-tile-primary:not(.uk-preserve-color)) > * {
  color: #ffffff;
}
:where(.uk-tile-secondary:not(.uk-preserve-color)) > * {
  color: #ffffff;
}
/* ========================================================================
   Component: Card
 ========================================================================== */
.uk-card {
  position: relative;
  box-sizing: border-box;
  transition: 0.1s ease-in-out;
  transition-property: color, background-color, background-size, border-color, box-shadow, transform, top;
}
/* Sections
 ========================================================================== */
.uk-card-body {
  display: flow-root;
  padding: 30px 30px;
}
.uk-card-header {
  display: flow-root;
  padding: 15px 30px;
}
.uk-card-footer {
  display: flow-root;
  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;
  }
}
/*
 * 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: 24px;
  line-height: 1.4;
  font-weight: 400;
}
/* Badge
 ========================================================================== */
/*
 * 1. Position
 * 2. Size
 * 3. Style
 * 4. Center child vertically
 */
.uk-card-badge {
  /* 1 */
  position: absolute;
  top: 15px;
  right: 15px;
  z-index: 1;
  /* 2 */
  height: 22px;
  padding: 0 8px;
  /* 3 */
  background: #564AEB;
  color: #FFF;
  font-size: 11px;
  /* 4 */
  display: flex;
  justify-content: center;
  align-items: center;
  line-height: 0;
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 1px;
}
/*
 * 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-color: #F8F8F8;
}
/* Style modifiers
 ========================================================================== */
/*
 * Default
 * Note: Header and Footer are only implemented for the default style
 */
.uk-card-default {
  background-color: #FFFFFF;
  color: #2C2C2C;
  box-shadow: 1px 1px 30px 0 rgba(0, 0, 0, 0.03);
}
.uk-card-default .uk-card-title {
  color: #1C1C1C;
}
.uk-card-default.uk-card-hover:hover {
  background-color: #F3F3F3;
}
.uk-card-default .uk-card-header {
  border-bottom: 2px solid #EDEDED;
}
.uk-card-default .uk-card-footer {
  border-top: 2px solid #EDEDED;
}
/*
 * Primary
 */
.uk-card-primary {
  background-color: #564AEB;
  color: #FFF;
}
.uk-card-primary .uk-card-title {
  color: #FFF;
}
.uk-card-primary.uk-card-hover:hover {
  background-color: #4133e8;
}
/*
 * Secondary
 */
.uk-card-secondary {
  background-color: #F3F5F8;
  color: #000000;
}
.uk-card-secondary .uk-card-title {
  color: #000000;
}
.uk-card-secondary.uk-card-hover:hover {
  background-color: #e3e8ef;
}
/* 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;
  }
}
/*
     * Default
     */
.uk-card-body > .uk-nav-default {
  margin-left: -30px;
  margin-right: -30px;
}
.uk-card-body > .uk-nav-default:only-child {
  margin-top: -15px;
  margin-bottom: -15px;
}
.uk-card-body .uk-nav-default > li > a,
.uk-card-body .uk-nav-default .uk-nav-header,
.uk-card-body .uk-nav-default .uk-nav-divider {
  padding-left: 30px;
  padding-right: 30px;
}
.uk-card-body .uk-nav-default .uk-nav-sub {
  padding-left: 30px;
}
/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-card-body > .uk-nav-default {
    margin-left: -40px;
    margin-right: -40px;
  }
  .uk-card-body > .uk-nav-default:only-child {
    margin-top: -25px;
    margin-bottom: -25px;
  }
  .uk-card-body .uk-nav-default > li > a,
  .uk-card-body .uk-nav-default .uk-nav-header,
  .uk-card-body .uk-nav-default .uk-nav-divider {
    padding-left: 40px;
    padding-right: 40px;
  }
  .uk-card-body .uk-nav-default .uk-nav-sub {
    padding-left: 40px;
  }
}
/*
     * Small
     */
.uk-card-small > .uk-nav-default {
  margin-left: -20px;
  margin-right: -20px;
}
.uk-card-small > .uk-nav-default:only-child {
  margin-top: -5px;
  margin-bottom: -5px;
}
.uk-card-small .uk-nav-default > li > a,
.uk-card-small .uk-nav-default .uk-nav-header,
.uk-card-small .uk-nav-default .uk-nav-divider {
  padding-left: 20px;
  padding-right: 20px;
}
.uk-card-small .uk-nav-default .uk-nav-sub {
  padding-left: 20px;
}
/*
     * Large
     */
/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-card-large > .uk-nav-default {
    margin: 0;
  }
  .uk-card-large > .uk-nav-default:only-child {
    margin: 0;
  }
  .uk-card-large .uk-nav-default > li > a,
  .uk-card-large .uk-nav-default .uk-nav-header,
  .uk-card-large .uk-nav-default .uk-nav-divider {
    padding-left: 0;
    padding-right: 0;
  }
  .uk-card-large .uk-nav-default .uk-nav-sub {
    padding-left: 0;
  }
}
/* ========================================================================
   Component: Close
 ========================================================================== */
/*
 * Adopts `uk-icon`
 */
.uk-close {
  color: #111;
  transition: 0.1s ease-in-out;
  transition-property: color, opacity;
}
/* Hover */
.uk-close:hover {
  color: #564AEB;
}
/* ========================================================================
   Component: Spinner
 ========================================================================== */
/*
 * Adopts `uk-icon`
 */
/* SVG
 ========================================================================== */
.uk-spinner > * {
  animation: uk-spinner-rotate 1.4s linear infinite;
}
@keyframes uk-spinner-rotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(270deg);
  }
}
/*
 * Circle
 */
.uk-spinner > * > * {
  stroke-dasharray: 88px;
  stroke-dashoffset: 0;
  transform-origin: center;
  animation: uk-spinner-dash 1.4s ease-in-out infinite;
  stroke-width: 1;
  stroke-linecap: round;
}
@keyframes uk-spinner-dash {
  0% {
    stroke-dashoffset: 88px;
  }
  50% {
    stroke-dashoffset: 22px;
    transform: rotate(135deg);
  }
  100% {
    stroke-dashoffset: 88px;
    transform: rotate(450deg);
  }
}
/* ========================================================================
   Component: Totop
 ========================================================================== */
/*
 * Addopts `uk-icon`
 */
.uk-totop {
  padding: 15px;
  color: #0E9B4A;
  background: transparent;
  transition: 0.1s ease-in-out;
  transition-property: color, background-color, border-color, box-shadow;
  border: 1px solid #0E9B4A;
  border-radius: 4px;
}
/* Hover */
.uk-totop:hover {
  color: #FFF;
  background-color: #0E9B4A;
  border-color: transparent;
}
/* OnClick */
.uk-totop:active {
  color: #FFF;
  background-color: #0E9B4A;
  border-color: transparent;
}
/* ========================================================================
   Component: Marker
 ========================================================================== */
/*
 * Addopts `uk-icon`
 */
.uk-marker {
  padding: 8px;
  background: #FFFFFF;
  color: #0E9B4A;
  transition: 0.1s ease-in-out;
  transition-property: color, background-color;
  border: 1px solid #C4A819;
  border-radius: 200px;
}
/* Hover */
.uk-marker:hover {
  color: #FFF;
  background: #0E9B4A;
  border-color: transparent;
}
/* ========================================================================
   Component: Alert
 ========================================================================== */
.uk-alert {
  position: relative;
  margin-bottom: 20px;
  padding: 15px 29px 15px 15px;
  background: #F8F8F8;
  color: #2C2C2C;
}
/* Add margin if adjacent element */
* + .uk-alert {
  margin-top: 20px;
}
/*
 * Remove margin from the last-child
 */
.uk-alert > :last-child {
  margin-bottom: 0;
}
/* Close
 * Adopts `uk-close`
 ========================================================================== */
.uk-alert-close {
  position: absolute;
  top: 20px;
  right: 15px;
  color: inherit;
  opacity: 0.4;
}
/*
 * Remove margin from adjacent element
 */
.uk-alert-close:first-child + * {
  margin-top: 0;
}
/*
 * Hover
 */
.uk-alert-close:hover {
  color: inherit;
  opacity: 0.8;
}
/* Style modifiers
 ========================================================================== */
/*
 * Primary
 */
.uk-alert-primary {
  background: #efeefd;
  color: #564AEB;
}
/*
 * Success
 */
.uk-alert-success {
  background: #f0faf2;
  color: #42C65C;
}
/*
 * Warning
 */
.uk-alert-warning {
  background: #fff6eb;
  color: #FFAD4F;
}
/*
 * Danger
 */
.uk-alert-danger {
  background: #fff0f0;
  color: #FB3F3F;
}
/*
     * Content
     */
.uk-alert h1,
.uk-alert h2,
.uk-alert h3,
.uk-alert h4,
.uk-alert h5,
.uk-alert h6 {
  color: inherit;
}
.uk-alert a:not([class]) {
  color: inherit;
  text-decoration: underline;
}
.uk-alert a:not([class]):hover {
  color: inherit;
  text-decoration: underline;
}
/* ========================================================================
   Component: Placeholder
 ========================================================================== */
.uk-placeholder {
  margin-bottom: 20px;
  padding: 30px 30px;
  background: transparent;
  border: 2px dashed #EDEDED;
}
/* Add margin if adjacent element */
* + .uk-placeholder {
  margin-top: 20px;
}
/*
 * Remove margin from the last-child
 */
.uk-placeholder > :last-child {
  margin-bottom: 0;
}
/* ========================================================================
   Component: Badge
 ========================================================================== */
/*
 * 1. Style
 * 2. Center child vertically and horizontally
 */
.uk-badge {
  box-sizing: border-box;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 500px;
  vertical-align: middle;
  /* 1 */
  background: #564AEB;
  color: #FFF !important;
  font-size: 12px;
  /* 2 */
  display: inline-flex;
  justify-content: center;
  align-items: center;
  font-weight: normal;
  line-height: 0;
  letter-spacing: 0;
}
/*
 * Required for `a`
 */
.uk-badge:hover {
  text-decoration: none;
}
/* ========================================================================
   Component: Label
 ========================================================================== */
.uk-label {
  display: inline-block;
  padding: 0 10px;
  background: #564AEB;
  line-height: 1.75;
  font-size: 15px;
  color: #FFF;
  vertical-align: middle;
  white-space: nowrap;
  font-weight: 500;
  border-radius: 2px;
}
/* Color modifiers
 ========================================================================== */
/*
 * Success
 */
.uk-label-success {
  background-color: #42C65C;
  color: #FFF;
}
/*
 * Warning
 */
.uk-label-warning {
  background-color: #FFAD4F;
  color: #FFF;
}
/*
 * Danger
 */
.uk-label-danger {
  background-color: #FB3F3F;
  color: #FFF;
}
/* ========================================================================
   Component: Overlay
 ========================================================================== */
.uk-overlay {
  padding: 30px 30px;
}
/*
 * Remove margin from the last-child
 */
.uk-overlay > :last-child {
  margin-bottom: 0;
}
/* Icon
 ========================================================================== */
/* Style modifiers
 ========================================================================== */
/*
 * Default
 */
.uk-overlay-default {
  background: rgba(234, 237, 241, 0.59);
}
/*
 * Primary
 */
.uk-overlay-primary {
  background: rgba(17, 17, 17, 0.8);
}
/* ========================================================================
   Component: Article
 ========================================================================== */
.uk-article {
  display: flow-root;
}
/*
 * Remove margin from the last-child
 */
.uk-article > :last-child {
  margin-bottom: 0;
}
/* Adjacent sibling
 ========================================================================== */
.uk-article + .uk-article {
  margin-top: 70px;
}
/* Title
 ========================================================================== */
.uk-article-title {
  font-size: 34px;
  line-height: 1.2;
  color: #1C1C1C;
  font-weight: 400;
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-article-title {
    font-size: 40px;
  }
}
/* Meta
 ========================================================================== */
.uk-article-meta {
  font-size: 15px;
  line-height: 1.4;
  color: #868686;
  font-weight: 500;
}
.uk-article-meta a {
  color: #868686;
}
.uk-article-meta a:hover {
  color: #564AEB;
  text-decoration: none;
}
/* ========================================================================
   Component: Comment
 ========================================================================== */
/* Sections
 ========================================================================== */
.uk-comment-body {
  display: flow-root;
  overflow-wrap: break-word;
  word-wrap: break-word;
}
.uk-comment-header {
  display: flow-root;
  margin-bottom: 20px;
}
/*
 * Remove margin from the last-child
 */
.uk-comment-body > :last-child,
.uk-comment-header > :last-child {
  margin-bottom: 0;
}
/* Title
 ========================================================================== */
.uk-comment-title {
  font-size: 17px;
  line-height: 1.4;
}
/* Meta
 ========================================================================== */
.uk-comment-meta {
  font-size: 15px;
  line-height: 1.4;
  color: #868686;
  font-weight: 500;
}
/* Avatar
 ========================================================================== */
/* List
 ========================================================================== */
.uk-comment-list {
  padding: 0;
  list-style: none;
}
/* Adjacent siblings */
.uk-comment-list > :nth-child(n+2) {
  margin-top: 70px;
}
/*
 * Sublists
 * Note: General sibling selector allows reply block between comment and sublist
 */
.uk-comment-list .uk-comment ~ ul {
  margin: 70px 0 0 0;
  padding-left: 30px;
  list-style: none;
}
/* Tablet and bigger */
@media (min-width: 960px) {
  .uk-comment-list .uk-comment ~ ul {
    padding-left: 100px;
  }
}
/* Adjacent siblings */
.uk-comment-list .uk-comment ~ ul > :nth-child(n+2) {
  margin-top: 70px;
}
/* Style modifier
 ========================================================================== */
.uk-comment-primary {
  padding: 30px;
  background-color: #F8F8F8;
}
/* ========================================================================
   Component: Search
 ========================================================================== */
/*
 * 1. Container fits its content
 * 2. Create position context
 * 3. Prevent content overflow
 * 4. Reset `form`
 */
.uk-search {
  /* 1 */
  display: inline-block;
  /* 2 */
  position: relative;
  /* 3 */
  max-width: 100%;
  /* 4 */
  margin: 0;
}
/* Input
 ========================================================================== */
/*
 * Remove the inner padding and cancel buttons in Chrome on OS X and Safari on OS X.
 */
.uk-search-input::-webkit-search-cancel-button,
.uk-search-input::-webkit-search-decoration {
  -webkit-appearance: none;
}
/*
 * Removes placeholder transparency in Firefox.
 */
.uk-search-input::-moz-placeholder {
  opacity: 1;
}
/*
 * 1. Define consistent box sizing.
 * 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
 * 5. Show the overflow in Edge.
 * 6. Remove default style in iOS.
 * 7. Vertical alignment
 * 8. Take the full container width
 * 9. Style
 */
.uk-search-input {
  /* 1 */
  box-sizing: border-box;
  /* 2 */
  margin: 0;
  /* 3 */
  border-radius: 0;
  /* 4 */
  font: inherit;
  /* 5 */
  overflow: visible;
  /* 6 */
  -webkit-appearance: none;
  /* 7 */
  vertical-align: middle;
  /* 8 */
  width: 100%;
  /* 9 */
  border: none;
  color: #2C2C2C;
  transition: 0.2s ease-in-out;
  transition-property: color, background-color, border-color, box-shadow;
}
.uk-search-input:focus {
  outline: none;
}
/* Placeholder */
.uk-search-input::placeholder {
  color: #868686;
}
/* Icon (Adopts `uk-icon`)
 ========================================================================== */
/*
 * Position above input
 * 1. Set position
 * 2. Center icon vertically and horizontally
 * 3. Style
 */
.uk-search .uk-search-icon {
  /* 1 */
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  /* 2 */
  display: inline-flex;
  justify-content: center;
  align-items: center;
  /* 3 */
  color: #868686;
}
/*
 * Required for `a`.
 */
.uk-search .uk-search-icon:hover {
  color: #868686;
}
/*
 * Make `input` element clickable through icon, e.g. if it's a `span`
 */
.uk-search .uk-search-icon:not(a):not(button):not(input) {
  pointer-events: none;
}
/*
 * Position modifier
 */
.uk-search .uk-search-icon-flip {
  right: 0;
  left: auto;
}
/* Default modifier
 ========================================================================== */
.uk-search-default {
  width: 300px;
}
/*
 * Input
 */
.uk-search-default .uk-search-input {
  height: 46px;
  padding-left: 10px;
  padding-right: 10px;
  background: #F8F8F8;
}
/* Focus */
.uk-search-default .uk-search-input:focus {
  background-color: #f0f0f0;
}
/*
 * Icon
 */
.uk-search-default .uk-search-icon {
  width: 46px;
}
.uk-search-default .uk-search-icon:not(.uk-search-icon-flip) ~ .uk-search-input {
  padding-left: 46px;
}
.uk-search-default .uk-search-icon-flip ~ .uk-search-input {
  padding-right: 46px;
}
/* Navbar modifier
 ========================================================================== */
.uk-search-navbar {
  width: 400px;
}
/*
 * Input
 */
.uk-search-navbar .uk-search-input {
  height: 40px;
  background: transparent;
  font-size: 24px;
}
/* Focus */
/*
 * Icon
 */
.uk-search-navbar .uk-search-icon {
  width: 40px;
}
.uk-search-navbar .uk-search-icon:not(.uk-search-icon-flip) ~ .uk-search-input {
  padding-left: 40px;
}
.uk-search-navbar .uk-search-icon-flip ~ .uk-search-input {
  padding-right: 40px;
}
/* Large modifier
 ========================================================================== */
.uk-search-large {
  width: 500px;
}
/*
 * Input
 */
.uk-search-large .uk-search-input {
  height: 80px;
  background: transparent;
  font-size: 40px;
}
/* Focus */
/*
 * Icon
 */
.uk-search-large .uk-search-icon {
  width: 80px;
}
.uk-search-large .uk-search-icon:not(.uk-search-icon-flip) ~ .uk-search-input {
  padding-left: 80px;
}
.uk-search-large .uk-search-icon-flip ~ .uk-search-input {
  padding-right: 80px;
}
/* Toggle
 ========================================================================== */
.uk-search-toggle {
  color: #1C1C1C;
}
/* Hover */
.uk-search-toggle:hover {
  color: #564AEB;
}
/* ========================================================================
   Component: Accordion
 ========================================================================== */
.uk-accordion {
  padding: 0;
  list-style: none;
}
/* Item
 ========================================================================== */
.uk-accordion > :nth-child(n+2) {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid #EDEDED;
}
/* Title
 ========================================================================== */
.uk-accordion-title {
  display: block;
  font-size: 20px;
  line-height: 1.4;
  color: #1C1C1C;
  padding: 0 0;
  background: transparent;
  overflow: hidden;
  font-weight: 500;
}
.uk-accordion-title::before {
  content: "";
  width: 1.4em;
  height: 1.4em;
  margin-left: 0px;
  float: right;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%230E9B4A%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%20%20%20%20%3Crect%20fill%3D%22%230E9B4A%22%20width%3D%221%22%20height%3D%2213%22%20x%3D%226%22%20y%3D%220%22%20%2F%3E%0A%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-position: 50% 50%;
}
.uk-open > .uk-accordion-title::before {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%230E9B4A%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%3C%2Fsvg%3E");
}
/* Hover */
.uk-accordion-title:hover {
  color: #2C2C2C;
  text-decoration: none;
}
/* Content
 ========================================================================== */
.uk-accordion-content {
  display: flow-root;
  margin-top: 20px;
}
/*
 * 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;
  --uk-position-offset: 20px;
  --uk-position-viewport-offset: 15px;
  /* 3 */
  box-sizing: border-box;
  width: 300px;
}
/* Show */
.uk-drop.uk-open {
  display: block;
}
/* 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;
  --uk-position-offset: 10px;
  --uk-position-viewport-offset: 15px;
  /* 3 */
  box-sizing: border-box;
  min-width: 250px;
  /* 4 */
  padding: 40px;
  background: #FFF;
  color: #1C1C1C;
  box-shadow: 2px 18px 48px rgba(0, 0, 0, 0.1);
}
/* Show */
.uk-dropdown.uk-open {
  display: block;
}
/*
 * Remove margin from the last-child
 */
.uk-dropdown > :last-child {
  margin-bottom: 0;
}
/* Size modifier
 ========================================================================== */
.uk-dropdown-large {
  padding: 40px;
}
/* Nav
 * Adopts `uk-nav`
 ========================================================================== */
.uk-dropdown-nav {
  margin-left: 0;
  margin-right: 0;
  font-size: 16px;
  font-weight: 400;
}
/*
 * Items
 */
.uk-dropdown-nav > li > a {
  color: #1C1C1C;
  padding: 5px 0;
}
/* Hover + Active */
.uk-dropdown-nav > li > a:hover,
.uk-dropdown-nav > li.uk-active > a {
  color: #564AEB;
  background-color: transparent;
}
/*
 * Subtitle
 */
.uk-dropdown-nav .uk-nav-subtitle {
  font-size: 15px;
}
/*
 * Header
 */
.uk-dropdown-nav .uk-nav-header {
  color: #1C1C1C;
  padding: 5px 0;
}
/*
 * Divider
 */
.uk-dropdown-nav .uk-nav-divider {
  border-top: 2px solid #EDEDED;
  margin-left: 0;
  margin-right: 0;
}
/*
 * Sublists
 */
.uk-dropdown-nav .uk-nav-sub a {
  color: #868686;
}
.uk-dropdown-nav .uk-nav-sub a:hover,
.uk-dropdown-nav .uk-nav-sub li.uk-active > a {
  color: #564AEB;
}
/* Grid modifiers
 ========================================================================== */
.uk-dropdown-stack .uk-dropdown-grid > * {
  width: 100% !important;
}
.uk-dropdown-nav .uk-nav-sub {
  padding-left: 30px;
}
/* ========================================================================
   Component: Dropbar
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Set position
 * 3. Style
 */
.uk-dropbar {
  --uk-position-offset: 0;
  --uk-position-shift-offset: 0;
  --uk-position-viewport-offset: 0;
  /* 1 */
  display: none;
  /* 2 */
  position: absolute;
  z-index: 1020;
  /* 3 */
  box-sizing: border-box;
  padding: 15px 15px 15px 15px;
  background: #F8F8F8;
  color: #2C2C2C;
}
/* Show */
.uk-dropbar.uk-open {
  display: block;
}
/*
 * Remove margin from the last-child
 */
.uk-dropbar > :last-child {
  margin-bottom: 0;
}
/* Phone landscape and bigger */
@media (min-width: 640px) {
  .uk-dropbar {
    padding-left: 30px;
    padding-right: 30px;
  }
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-dropbar {
    padding-left: 40px;
    padding-right: 40px;
  }
}
/* Size modifier
 ========================================================================== */
.uk-dropbar-large {
  padding-top: 40px;
  padding-bottom: 40px;
}
/* Direction modifier
 ========================================================================== */
/* ========================================================================
   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. `!important` is 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: 100% !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 {
  display: flow-root;
  padding: 20px 20px;
}
.uk-modal-header {
  display: flow-root;
  padding: 10px 20px;
  background: #FFF;
  border-bottom: 2px solid #EDEDED;
}
.uk-modal-footer {
  display: flow-root;
  padding: 10px 20px;
  background: #FFF;
  border-top: 2px solid #EDEDED;
}
/* Phone landscape and bigger */
@media (min-width: 640px) {
  .uk-modal-body {
    padding: 30px 30px;
  }
  .uk-modal-header {
    padding: 15px 30px;
  }
  .uk-modal-footer {
    padding: 15px 30px;
  }
}
/*
 * 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: 30px;
  line-height: 1.3;
  font-weight: 400;
}
/* 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: #ffffff;
}
.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
 */
.uk-modal-close-full {
  top: 0;
  right: 0;
  padding: 20px;
  background: #FFF;
}
/* ========================================================================
   Component: Slideshow
 ========================================================================== */
/*
 * 1. Prevent tab highlighting on iOS.
 */
.uk-slideshow {
  /* 1 */
  -webkit-tap-highlight-color: transparent;
}
/* Items
 ========================================================================== */
/*
 * 1. Create position and stacking context
 * 2. Reset list
 * 3. Clip child elements
 * 4. Prevent displaying the callout information on iOS.
 * 5. Disable horizontal panning gestures
 */
.uk-slideshow-items {
  /* 1 */
  position: relative;
  z-index: 0;
  /* 2 */
  margin: 0;
  padding: 0;
  list-style: none;
  /* 3 */
  overflow: hidden;
  /* 4 */
  -webkit-touch-callout: none;
  /* 5 */
  touch-action: pan-y;
}
/* Item
 ========================================================================== */
/*
 * 1. Position items above each other
 * 2. Take the full width
 * 3. Clip child elements, e.g. for `uk-cover`
 * 4. Optimize animation
 */
.uk-slideshow-items > * {
  /* 1 */
  position: absolute;
  top: 0;
  left: 0;
  /* 2 */
  right: 0;
  bottom: 0;
  /* 3 */
  overflow: hidden;
  /* 4 */
  will-change: transform, opacity;
}
/*
 * Hide not active items
 */
.uk-slideshow-items > :not(.uk-active) {
  display: none;
}
/* ========================================================================
   Component: Slider
 ========================================================================== */
/*
 * 1. Prevent tab highlighting on iOS.
 */
.uk-slider {
  /* 1 */
  -webkit-tap-highlight-color: transparent;
}
/* Container
 ========================================================================== */
/*
 * Clip child elements
 */
.uk-slider-container {
  overflow: hidden;
}
/*
 * Widen container to prevent box-shadows from clipping, `large-box-shadow`
 */
.uk-slider-container-offset {
  margin: -11px -25px -39px -25px;
  padding: 11px 25px 39px 25px;
}
/* Items
 ========================================================================== */
/*
 * 1. Optimize animation
 * 2. Create a containing block. In Safari it's neither created by `transform` nor `will-change`.
 * 3. Disable horizontal panning gestures
 */
.uk-slider-items {
  /* 1 */
  will-change: transform;
  /* 2 */
  position: relative;
  /* 3 */
  touch-action: pan-y;
}
/*
 * 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)
 *    `max-width` needed to keep image responsiveness and prevent content overflow
 * 3. Create position context
 */
.uk-slider-items > * {
  /* 1 */
  flex: none;
  max-width: 100%;
  /* 3 */
  position: relative;
}
/* ========================================================================
   Component: Sticky
 ========================================================================== */
/*
 * 1. Create position context so it's t the same like when fixed.
 * 2. More robust if padding and border are used and the sticky height is transitioned
 */
.uk-sticky {
  /* 1 */
  position: relative;
  /* 2 */
  box-sizing: border-box;
}
/*
 * 1. Force new layer to resolve frame rate issues on devices with lower frame rates
 */
.uk-sticky-fixed {
  z-index: 980;
  margin: 0 !important;
  /* 1 */
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
/*
 * Faster animations
 */
.uk-sticky[class*='uk-animation-'] {
  animation-duration: 0.2s;
}
.uk-sticky.uk-animation-reverse {
  animation-duration: 0.2s;
}
/*
 * Placeholder
 * Make content clickable for sticky cover and reveal effects
 */
.uk-sticky-placeholder {
  pointer-events: none;
}
/* ========================================================================
   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: 30px 30px;
  background: #0E9B4A;
  /* 3 */
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
/* Phone landscape and bigger */
@media (min-width: 640px) {
  .uk-offcanvas-bar {
    left: -350px;
    width: 350px;
    padding: 30px 30px;
  }
}
/* Flip modifier */
.uk-offcanvas-flip .uk-offcanvas-bar {
  left: auto;
  right: -270px;
}
/* Tablet landscape and bigger */
@media (min-width: 640px) {
  .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: 640px) {
  .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: 5px;
  right: 5px;
  padding: 5px;
}
/* Tablet landscape and bigger */
@media (min-width: 640px) {
  .uk-offcanvas-close {
    top: 10px;
    right: 10px;
  }
}
/*
 * Remove margin from adjacent element
 */
.uk-offcanvas-close:first-child + * {
  margin-top: 0;
}
/* 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: 640px) {
  :not(.uk-offcanvas-flip).uk-offcanvas-container-animation {
    left: 350px;
  }
  .uk-offcanvas-flip.uk-offcanvas-container-animation {
    left: -350px;
  }
}
/* ========================================================================
   Component: Switcher
 ========================================================================== */
/*
 * Reset list
 */
.uk-switcher {
  margin: 0;
  padding: 0;
  list-style: none;
}
/* Items
 ========================================================================== */
/*
 * Hide not active items
 */
.uk-switcher > :not(.uk-active) {
  display: none;
}
/*
 * Remove margin from the last-child
 */
.uk-switcher > * > :last-child {
  margin-bottom: 0;
}
/* ========================================================================
   Component: Leader
 ========================================================================== */
.uk-leader {
  overflow: hidden;
}
/*
 * 1. Place element in text flow
 * 2. Never break into a new line
 * 3. Get a string back with as many repeating characters to fill the container
 * 4. Prevent wrapping. Overflowing characters will be clipped by the container
 */
.uk-leader-fill::after {
  /* 1 */
  display: inline-block;
  margin-left: 10px;
  /* 2 */
  width: 0;
  /* 3 */
  content: attr(data-fill);
  /* 4 */
  white-space: nowrap;
  color: #2C2C2C;
}
/*
 * Hide if media does not match
 */
.uk-leader-fill.uk-leader-hide::after {
  display: none;
}
/*
 * Pass fill character to JS
 */
:root {
  --uk-leader-fill-content: .;
}
/* ========================================================================
   Component: Notification
 ========================================================================== */
/*
 * 1. Set position
 * 2. Dimensions
 */
.uk-notification {
  /* 1 */
  position: fixed;
  top: 15px;
  left: 15px;
  z-index: 1040;
  /* 2 */
  box-sizing: border-box;
  width: 420px;
}
/* Position modifiers
========================================================================== */
.uk-notification-top-right,
.uk-notification-bottom-right {
  left: auto;
  right: 15px;
}
.uk-notification-top-center,
.uk-notification-bottom-center {
  left: 50%;
  margin-left: -210px;
}
.uk-notification-bottom-left,
.uk-notification-bottom-right,
.uk-notification-bottom-center {
  top: auto;
  bottom: 15px;
}
/* Responsiveness
========================================================================== */
/* Phones portrait and smaller */
@media (max-width: 639px) {
  .uk-notification {
    left: 15px;
    right: 15px;
    width: auto;
    margin: 0;
  }
}
/* Message
========================================================================== */
.uk-notification-message {
  position: relative;
  padding: 30px;
  background: #F8F8F8;
  color: #2C2C2C;
  font-size: 16px;
  line-height: 1.5;
  cursor: pointer;
}
* + .uk-notification-message {
  margin-top: 10px;
}
/* Close
 * Adopts `uk-close`
 ========================================================================== */
.uk-notification-close {
  display: none;
  position: absolute;
  top: 15px;
  right: 15px;
}
.uk-notification-message:hover .uk-notification-close {
  display: block;
}
/* Style modifiers
 ========================================================================== */
/*
 * Primary
 */
.uk-notification-message-primary {
  color: #FFF;
  background-color: #564AEB;
}
/*
 * Success
 */
.uk-notification-message-success {
  color: #FFF;
  background-color: #42C65C;
}
/*
 * Warning
 */
.uk-notification-message-warning {
  color: #FFF;
  background-color: #FFAD4F;
}
/*
 * Danger
 */
.uk-notification-message-danger {
  color: #FFF;
  background-color: #FB3F3F;
}
/* ========================================================================
   Component: Tooltip
 ========================================================================== */
/*
 * 1. Hide by default
 * 2. Position
 * 3. Remove tooltip from document flow to keep the UIkit container from changing its size when injected into the document initially
 * 4. Dimensions
 * 5. Style
 */
.uk-tooltip {
  /* 1 */
  display: none;
  /* 2 */
  position: absolute;
  z-index: 1030;
  --uk-position-offset: 10px;
  --uk-position-viewport-offset: 10;
  /* 3 */
  top: 0;
  /* 4 */
  box-sizing: border-box;
  max-width: 200px;
  padding: 3px 6px;
  /* 5 */
  background: #666;
  border-radius: 2px;
  color: #FFF;
  font-size: 12px;
}
/* Show */
.uk-tooltip.uk-active {
  display: block;
}
/* ========================================================================
   Component: Sortable
 ========================================================================== */
.uk-sortable {
  position: relative;
}
/*
 * Remove margin from the last-child
 */
.uk-sortable > :last-child {
  margin-bottom: 0;
}
/* Drag
 ========================================================================== */
.uk-sortable-drag {
  position: fixed !important;
  z-index: 1050 !important;
  pointer-events: none;
}
/* Placeholder
 ========================================================================== */
.uk-sortable-placeholder {
  opacity: 0;
  pointer-events: none;
}
/* Empty modifier
 ========================================================================== */
.uk-sortable-empty {
  min-height: 50px;
}
/* Handle
 ========================================================================== */
/* Hover */
.uk-sortable-handle:hover {
  cursor: move;
}
/* ========================================================================
   Component: Countdown
 ========================================================================== */
/* Item
 ========================================================================== */
.uk-countdown-number,
.uk-countdown-separator {
  color: #1C1C1C;
  font-weight: 400;
}
/* Number
 ========================================================================== */
/*
 * 1. Make numbers all of the same size to prevent jumping. Must be supported by the font.
 * 2. Style
 */
.uk-countdown-number {
  /* 1 */
  font-variant-numeric: tabular-nums;
  /* 2 */
  font-size: 2rem;
  line-height: 0.8;
}
/* Phone landscape and bigger */
@media (min-width: 640px) {
  .uk-countdown-number {
    font-size: 4rem;
  }
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-countdown-number {
    font-size: 6rem;
  }
}
/* Separator
 ========================================================================== */
.uk-countdown-separator {
  font-size: 1rem;
  line-height: 1.6;
}
/* Phone landscape and bigger */
@media (min-width: 640px) {
  .uk-countdown-separator {
    font-size: 2rem;
  }
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-countdown-separator {
    font-size: 3rem;
  }
}
/* Label
 ========================================================================== */
.uk-countdown-label {
  color: #868686;
  font-size: 16px;
}
/* ========================================================================
   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: -10px;
}
.uk-grid-small > *,
.uk-grid-column-small > * {
  padding-left: 10px;
}
/* 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: 10px;
}
/*
 * 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: -80px;
}
.uk-grid-large > *,
.uk-grid-column-large > * {
  padding-left: 80px;
}
/* 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: 50px;
}
/* Desktop and bigger */
@media (min-width: 1200px) {
  /* Horizontal */
  .uk-grid-large,
  .uk-grid-column-large {
    margin-left: -130px;
  }
  .uk-grid-large > *,
  .uk-grid-column-large > * {
    padding-left: 130px;
  }
  /* 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: 90px;
  }
}
/*
 * 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: 2px solid #EDEDED;
}
/* Vertical */
.uk-grid-divider.uk-grid-stack > .uk-grid-margin::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  border-top: 2px solid #EDEDED;
}
/*
 * 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: -20px;
}
.uk-grid-divider.uk-grid-small > *,
.uk-grid-divider.uk-grid-column-small > * {
  padding-left: 20px;
}
.uk-grid-divider.uk-grid-small > :not(.uk-first-column)::before,
.uk-grid-divider.uk-grid-column-small > :not(.uk-first-column)::before {
  left: 10px;
}
/* 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: 20px;
}
.uk-grid-divider.uk-grid-small.uk-grid-stack > .uk-grid-margin::before {
  top: -10px;
  left: 20px;
}
.uk-grid-divider.uk-grid-row-small.uk-grid-stack > .uk-grid-margin::before {
  top: -10px;
}
.uk-grid-divider.uk-grid-column-small.uk-grid-stack > .uk-grid-margin::before {
  left: 20px;
}
/*
 * 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: -160px;
}
.uk-grid-divider.uk-grid-large > *,
.uk-grid-divider.uk-grid-column-large > * {
  padding-left: 160px;
}
.uk-grid-divider.uk-grid-large > :not(.uk-first-column)::before,
.uk-grid-divider.uk-grid-column-large > :not(.uk-first-column)::before {
  left: 80px;
}
/* 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: 100px;
}
.uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin::before {
  top: -50px;
  left: 160px;
}
.uk-grid-divider.uk-grid-row-large.uk-grid-stack > .uk-grid-margin::before {
  top: -50px;
}
.uk-grid-divider.uk-grid-column-large.uk-grid-stack > .uk-grid-margin::before {
  left: 160px;
}
/* Desktop and bigger */
@media (min-width: 1200px) {
  /* Horizontal */
  .uk-grid-divider.uk-grid-large,
  .uk-grid-divider.uk-grid-column-large {
    margin-left: -260px;
  }
  .uk-grid-divider.uk-grid-large > *,
  .uk-grid-divider.uk-grid-column-large > * {
    padding-left: 260px;
  }
  .uk-grid-divider.uk-grid-large > :not(.uk-first-column)::before,
  .uk-grid-divider.uk-grid-column-large > :not(.uk-first-column)::before {
    left: 130px;
  }
  /* 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: 180px;
  }
  .uk-grid-divider.uk-grid-large.uk-grid-stack > .uk-grid-margin::before {
    top: -90px;
    left: 260px;
  }
  .uk-grid-divider.uk-grid-row-large.uk-grid-stack > .uk-grid-margin::before {
    top: -90px;
  }
  .uk-grid-divider.uk-grid-column-large.uk-grid-stack > .uk-grid-margin::before {
    left: 260px;
  }
}
/* 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: Nav
 ========================================================================== */
/*
 * Reset
 */
.uk-nav,
.uk-nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
/*
* 1. Center content vertically, e.g. an icon
* 2. Imitate white space gap when using flexbox
* 3. Reset link
 */
.uk-nav li > a {
  /* 1 */
  display: flex;
  align-items: center;
  /* 2 */
  column-gap: 0.25em;
  /* 3*/
  text-decoration: 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 30px;
}
/*
 * Level 3 and deeper
 */
.uk-nav-sub ul {
  padding-left: 0;
}
/*
 * Items
 */
.uk-nav-sub a {
  padding: 2px 0;
}
/* Parent icon
 ========================================================================== */
.uk-nav-parent-icon {
  margin-left: auto;
}
.uk-nav > li > a[aria-expanded="true"] .uk-nav-parent-icon {
  transform: rotate(180deg);
}
/* Header
 ========================================================================== */
.uk-nav-header {
  padding: 5px 0;
  text-transform: uppercase;
  font-size: 15px;
}
.uk-nav-header:not(:first-child) {
  margin-top: 20px;
}
/* Divider
 ========================================================================== */
.uk-nav .uk-nav-divider {
  margin: 5px 0;
}
/* Default modifier
 ========================================================================== */
.uk-nav-default {
  line-height: 1.75;
  font-size: 16px;
  font-weight: 400;
}
/*
 * Items
 */
.uk-nav-default > li > a {
  color: #1C1C1C;
  transition: 0.1s ease-in-out;
  transition-property: color, background-color, border-color, box-shadow;
}
/* Hover */
.uk-nav-default > li > a:hover {
  color: #564AEB;
  background-color: transparent;
}
/* Active */
.uk-nav-default > li.uk-active > a {
  color: #564AEB;
  background-color: transparent;
}
/*
 * Subtitle
 */
.uk-nav-default .uk-nav-subtitle {
  font-size: 15px;
}
/*
 * Header
 */
.uk-nav-default .uk-nav-header {
  color: #1C1C1C;
}
/*
 * Divider
 */
.uk-nav-default .uk-nav-divider {
  border-top: 2px solid #EDEDED;
}
/*
 * Sublists
 */
.uk-nav-default .uk-nav-sub {
  font-size: 16px;
  line-height: 1.75;
}
.uk-nav-default .uk-nav-sub a {
  color: #868686;
}
.uk-nav-default .uk-nav-sub a:hover {
  color: #564AEB;
}
.uk-nav-default .uk-nav-sub li.uk-active > a {
  color: #1C1C1C;
}
/* Primary modifier
 ========================================================================== */
.uk-nav-primary {
  font-size: 24px;
  line-height: 1.75;
  font-weight: 400;
}
/*
 * Items
 */
.uk-nav-primary > li > a {
  color: #1C1C1C;
  transition: 0.1s ease-in-out;
  transition-property: color, background-color, border-color, box-shadow;
  padding: 5px 0;
}
/* Hover */
.uk-nav-primary > li > a:hover {
  color: #564AEB;
}
/* Active */
.uk-nav-primary > li.uk-active > a {
  color: #564AEB;
}
/*
 * Subtitle
 */
.uk-nav-primary .uk-nav-subtitle {
  font-size: 20px;
}
/*
 * Header
 */
.uk-nav-primary .uk-nav-header {
  color: #1C1C1C;
  padding: 5px 0;
}
/*
 * Divider
 */
.uk-nav-primary .uk-nav-divider {
  border-top: 2px solid #EDEDED;
}
/*
 * Sublists
 */
.uk-nav-primary .uk-nav-sub {
  font-size: 20px;
  line-height: 1.75;
}
.uk-nav-primary .uk-nav-sub a {
  color: #868686;
}
.uk-nav-primary .uk-nav-sub a:hover {
  color: #564AEB;
}
.uk-nav-primary .uk-nav-sub li.uk-active > a {
  color: #1C1C1C;
}
/* Secondary modifier
 ========================================================================== */
.uk-nav-secondary {
  font-size: 16px;
  line-height: 1.75;
}
/*
 * Items
 */
.uk-nav-secondary > li > a {
  color: #1C1C1C;
}
/* Hover */
.uk-nav-secondary > li > a:hover {
  color: #1C1C1C;
}
/* Active */
.uk-nav-secondary > li.uk-active > a {
  color: #1C1C1C;
}
/*
 * Subtitle
 */
.uk-nav-secondary .uk-nav-subtitle {
  font-size: 15px;
  color: #868686;
}
/* Hover */
.uk-nav-secondary > li > a:hover .uk-nav-subtitle {
  color: #2C2C2C;
}
/* Active */
.uk-nav-secondary > li.uk-active > a .uk-nav-subtitle {
  color: #1C1C1C;
}
/*
 * Header
 */
.uk-nav-secondary .uk-nav-header {
  color: #1C1C1C;
}
/*
 * Divider
 */
.uk-nav-secondary .uk-nav-divider {
  border-top: 2px solid #EDEDED;
}
/*
 * Sublists
 */
.uk-nav-secondary .uk-nav-sub {
  font-size: 15px;
  line-height: 1.75;
}
.uk-nav-secondary .uk-nav-sub a {
  color: #868686;
}
.uk-nav-secondary .uk-nav-sub a:hover {
  color: #2C2C2C;
}
.uk-nav-secondary .uk-nav-sub li.uk-active > a {
  color: #1C1C1C;
}
/* Alignment modifier
 ========================================================================== */
/*
 * 1. Center header
 * 2. Center items
 */
/* 1 */
.uk-nav-center {
  text-align: center;
}
/* 2 */
.uk-nav-center li > a {
  justify-content: center;
}
/* Sublists */
.uk-nav-center .uk-nav-sub,
.uk-nav-center .uk-nav-sub ul {
  padding-left: 0;
}
/* Parent icon  */
.uk-nav-center .uk-nav-parent-icon {
  margin-left: 4px;
}
/* Style modifier
 ========================================================================== */
/*
 * Divider
 * Naming is in plural to prevent conflicts with divider sub object.
 */
.uk-nav.uk-nav-divider > :not(.uk-nav-header, .uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider) {
  margin-top: 5px;
  padding-top: 5px;
  border-top: 2px solid #EDEDED;
}
/* ========================================================================
   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: #0E9B4A;
}
/* Groups
 ========================================================================== */
/*
 * 1. Align navs and items vertically if they have a different height
 */
.uk-navbar-left,
.uk-navbar-right,
[class*='uk-navbar-center'] {
  display: flex;
  gap: 0px;
  /* 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: 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: calc(100% + 0px);
}
.uk-navbar-center-right {
  left: calc(100% + 0px);
}
[class*='uk-navbar-center-'] {
  width: max-content;
  box-sizing: border-box;
}
/* Nav
 ========================================================================== */
/*
 * 1. Reset list
 */
.uk-navbar-nav {
  display: flex;
  gap: 0px;
  /* 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. Imitate white space gap when using flexbox
 * 3. Dimensions
 * 4. Style
 * 5. Required for `a`
 */
.uk-navbar-nav > li > a,
.uk-navbar-item,
.uk-navbar-toggle {
  /* 1 */
  display: flex;
  justify-content: center;
  align-items: center;
  /* 2 */
  column-gap: 0.25em;
  /* 3 */
  box-sizing: border-box;
  min-height: 40px;
  /* 4 */
  font-size: 16px;
  font-family: inherit;
  /* 5 */
  text-decoration: none;
}
/*
 * Nav items
 */
.uk-navbar-nav > li > a {
  padding: 0 16px;
  color: #1C1C1C;
  transition: 0.1s ease-in-out;
  transition-property: color, background-color, border-color, box-shadow;
  font-weight: 400;
}
.uk-navbar-primary .uk-navbar-nav > li > a {
  font-size: 24px;
}
.uk-navbar-primary .uk-navbar-nav > li > a {
  font-weight: 400;
}
/*
 * Hover
 * Apply hover style also if dropdown is opened
 */
.uk-navbar-nav > li:hover > a,
.uk-navbar-nav > li > a[aria-expanded="true"] {
  color: #2C2C2C;
}
/* OnClick */
.uk-navbar-nav > li > a:active {
  color: #1C1C1C;
}
/* Active */
.uk-navbar-nav > li.uk-active > a {
  color: #0E9B4A;
}
/* Parent icon modifier
 ========================================================================== */
.uk-navbar-parent-icon {
  margin-left: 4px;
}
.uk-navbar-nav > li > a[aria-expanded="true"] .uk-navbar-parent-icon {
  transform: rotate(180deg);
}
/* Item
 ========================================================================== */
.uk-navbar-item {
  padding: 0 15px;
  color: #2C2C2C;
}
/*
 * Remove margin from the last-child
 */
.uk-navbar-item > :last-child {
  margin-bottom: 0;
}
/* Toggle
 ========================================================================== */
.uk-navbar-toggle {
  padding: 0 15px;
  color: #1C1C1C;
  font-weight: 400;
}
.uk-navbar-toggle:hover,
.uk-navbar-toggle[aria-expanded="true"] {
  color: #564AEB;
  text-decoration: none;
}
/*
 * Icon
 * Adopts `uk-icon`
 */
/* Hover */
/* Subtitle
 ========================================================================== */
.uk-navbar-subtitle {
  font-size: 15px;
}
/* Justify modifier
 ========================================================================== */
.uk-navbar-justify .uk-navbar-left,
.uk-navbar-justify .uk-navbar-right,
.uk-navbar-justify .uk-navbar-nav,
.uk-navbar-justify .uk-navbar-nav > li,
.uk-navbar-justify .uk-navbar-item,
.uk-navbar-justify .uk-navbar-toggle {
  flex-grow: 1;
}
/* Style modifiers
 ========================================================================== */
.uk-navbar-sticky {
  box-shadow: 2px 4px 16px rgba(0, 0, 0, 0.06);
}
/* 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;
  --uk-position-offset: 0;
  --uk-position-shift-offset: 0;
  --uk-position-viewport-offset: 15px;
  /* 3 */
  box-sizing: border-box;
  width: 280px;
  /* 4 */
  padding: 20px;
  background: #FFF;
  color: #2C2C2C;
  box-shadow: 2px 18px 48px 0 rgba(0, 0, 0, 0.04);
}
/* Show */
.uk-navbar-dropdown.uk-open {
  display: block;
}
/*
 * Remove margin from the last-child
 */
.uk-navbar-dropdown > :last-child {
  margin-bottom: 0;
}
/*
 * Grid
 * Adopts `uk-grid`
 */
/* Gutter Horizontal */
.uk-navbar-dropdown-grid {
  margin-left: -40px;
}
.uk-navbar-dropdown-grid > * {
  padding-left: 40px;
}
/* Gutter Vertical */
.uk-navbar-dropdown-grid > .uk-grid-margin {
  margin-top: 40px;
}
/* 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: 560px;
}
.uk-navbar-dropdown-width-3:not(.uk-navbar-dropdown-stack) {
  width: 840px;
}
.uk-navbar-dropdown-width-4:not(.uk-navbar-dropdown-stack) {
  width: 1120px;
}
.uk-navbar-dropdown-width-5:not(.uk-navbar-dropdown-stack) {
  width: 1400px;
}
/*
 * Size modifier
 */
.uk-navbar-dropdown-large {
  --uk-position-shift-offset: 0;
  padding: 40px;
}
/*
 * Dropbar modifier
 * 1. Reset dropdown width to prevent to early shifting
 * 2. Reset style
 * 3. Padding
 */
.uk-navbar-dropdown-dropbar {
  /* 1 */
  width: auto;
  /* 2 */
  /* 3 */
  padding: 20px 0 20px 0;
  --uk-position-offset: 0;
  --uk-position-shift-offset: 0;
  --uk-position-viewport-offset: 15px;
  background: transparent;
  box-shadow: none;
}
/* Phone landscape and bigger */
@media (min-width: 640px) {
  .uk-navbar-dropdown-dropbar {
    --uk-position-viewport-offset: 30px;
  }
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-navbar-dropdown-dropbar {
    --uk-position-viewport-offset: 40px;
  }
}
.uk-navbar-dropdown-dropbar-large {
  --uk-position-shift-offset: 0;
  padding-top: 40px;
  padding-bottom: 40px;
}
/* Dropdown Nav
 * Adopts `uk-nav`
 ========================================================================== */
.uk-navbar-dropdown-nav {
  margin-left: 0;
  margin-right: 0;
  font-size: 16px;
  font-weight: 400;
}
/*
 * Items
 */
.uk-navbar-dropdown-nav > li > a {
  color: #868686;
  padding: 5px 0;
}
/* Hover */
.uk-navbar-dropdown-nav > li > a:hover {
  color: #2C2C2C;
}
/* Active */
.uk-navbar-dropdown-nav > li.uk-active > a {
  color: #1C1C1C;
}
/*
 * Subtitle
 */
.uk-navbar-dropdown-nav .uk-nav-subtitle {
  font-size: 15px;
}
/*
 * Header
 */
.uk-navbar-dropdown-nav .uk-nav-header {
  color: #1C1C1C;
  padding: 5px 0;
}
/*
 * Divider
 */
.uk-navbar-dropdown-nav .uk-nav-divider {
  border-top: 2px solid #EDEDED;
  margin-top: 5px;
  margin-bottom: 5px;
}
/*
 * Sublists
 */
.uk-navbar-dropdown-nav .uk-nav-sub a {
  color: #868686;
}
.uk-navbar-dropdown-nav .uk-nav-sub a:hover {
  color: #2C2C2C;
}
.uk-navbar-dropdown-nav .uk-nav-sub li.uk-active > a {
  color: #1C1C1C;
}
/* Dropbar
 ========================================================================== */
/*
 * 1. Reset dropbar
 * 2. Width
 */
.uk-navbar-dropbar {
  /* 1 */
  display: block !important;
  z-index: 980;
  padding: 0;
  /* 2 */
  left: 0;
  right: 0;
}
/*
     * Navbar
     */
.uk-navbar-container > .uk-container .uk-navbar-left {
  margin-left: -16px;
  margin-right: -16px;
}
.uk-navbar-container > .uk-container .uk-navbar-right {
  margin-right: -16px;
}
/*
     * Nav
     */
/* Dropdown nav sub */
.uk-navbar-dropdown-nav .uk-nav-sub {
  padding-left: 0;
}
/*
     * Grid Divider
     */
.uk-navbar-dropdown-grid > * {
  position: relative;
}
.uk-navbar-dropdown-grid > :not(.uk-first-column)::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 20px;
  border-left: 2px solid #EDEDED;
}
/* Vertical */
.uk-navbar-dropdown-grid.uk-grid-stack > .uk-grid-margin::before {
  content: "";
  position: absolute;
  top: -20px;
  left: 40px;
  right: 0;
  border-top: 2px solid #EDEDED;
}
.uk-navbar-container {
  padding-top: 5px;
  padding-bottom: 5px;
}
.tm-header .uk-sticky-fixed > .uk-navbar-container:not(.uk-navbar-transparent) {
  transition: 0.2s linear;
  transition-property: padding;
}
.tm-header :not(.uk-sticky-below) > .uk-navbar-container {
  padding-top: 5px;
  padding-bottom: 5px;
}
/* ========================================================================
   Component: Subnav
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Center items vertically if they have a different height
 * 3. Gutter
 * 4. Reset list
 */
.uk-subnav {
  display: flex;
  /* 1 */
  flex-wrap: wrap;
  /* 2 */
  align-items: center;
  /* 3 */
  margin-left: -20px;
  /* 4 */
  padding: 0;
  list-style: none;
}
/*
 * 1. Space is allocated solely based on content dimensions: 0 0 auto
 * 2. Gutter
 * 3. Create position context for dropdowns
 */
.uk-subnav > * {
  /* 1 */
  flex: none;
  /* 2 */
  padding-left: 20px;
  /* 3 */
  position: relative;
}
/* Items
 ========================================================================== */
/*
 * Items must target `a` elements to exclude other elements (e.g. dropdowns)
 * Using `:first-child` instead of `a` to support `span` elements for text
 * 1. Center content vertically, e.g. an icon
 * 2. Imitate white space gap when using flexbox
 * 3. Style
 */
.uk-subnav > * > :first-child {
  /* 1 */
  display: flex;
  align-items: center;
  /* 2 */
  column-gap: 0.25em;
  /* 3 */
  color: #B9B9B9;
  transition: 0.1s ease-in-out;
  transition-property: color, background-color, border-color, box-shadow;
  font-size: 16px;
  font-weight: 500;
}
/* Hover */
.uk-subnav > * > a:hover {
  color: #2C2C2C;
  text-decoration: none;
}
/* Active */
.uk-subnav > .uk-active > a {
  color: #1C1C1C;
}
/* Divider modifier
 ========================================================================== */
/*
 * Set gutter
 */
.uk-subnav-divider {
  margin-left: -42px;
}
/*
 * Align items and divider vertically
 */
.uk-subnav-divider > * {
  display: flex;
  align-items: center;
}
/*
 * Divider
 * 1. `nth-child` makes it also work without JS if it's only one row
 */
.uk-subnav-divider > ::before {
  content: "";
  height: 1.5em;
  margin-left: 0px;
  margin-right: 20px;
  border-left: 2px solid transparent;
}
/* 1 */
.uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before {
  border-left-color: #EDEDED;
}
/* Pill modifier
 ========================================================================== */
.uk-subnav-pill > * > :first-child {
  padding: 10px 20px;
  background: rgba(0, 0, 0, 0.02);
  color: #B9B9B9;
  border-radius: 100px;
}
/* Hover */
.uk-subnav-pill > * > a:hover {
  background-color: #F8F8F8;
  color: #2C2C2C;
}
/* OnClick */
.uk-subnav-pill > * > a:active {
  background-color: #F8F8F8;
  color: #2C2C2C;
}
/* Active */
.uk-subnav-pill > .uk-active > a {
  background-color: #0E9B4A;
  color: #FFF;
}
/* Disabled
 * The same for all style modifiers
 ========================================================================== */
.uk-subnav > .uk-disabled > a {
  color: #868686;
}
/* ========================================================================
   Component: Breadcrumb
 ========================================================================== */
/*
 * Reset list
 */
.uk-breadcrumb {
  padding: 0;
  list-style: none;
}
/*
 * 1. Doesn't generate any box and replaced by child boxes
 */
.uk-breadcrumb > * {
  display: contents;
}
/* Items
 ========================================================================== */
.uk-breadcrumb > * > * {
  font-size: 15px;
  color: #2C2C2C;
  font-weight: 500;
}
/* Hover */
.uk-breadcrumb > * > :hover {
  color: #564AEB;
  text-decoration: none;
}
/* Disabled */
.uk-breadcrumb > .uk-disabled > * {
  color: #2C2C2C;
}
/* Active */
.uk-breadcrumb > :last-child > span,
.uk-breadcrumb > :last-child > a:not([href]) {
  color: #868686;
}
/*
 * Divider
 * `nth-child` makes it also work without JS if it's only one row
 * 1. Remove space between inline block elements.
 * 2. Style
 */
.uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before {
  content: "/";
  display: inline-block;
  /* 1 */
  margin: 0 13px 0 calc(13px - 4px);
  /* 2 */
  font-size: 15px;
  color: #868686;
}
/* ========================================================================
   Component: Pagination
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Gutter
 * 3. Reset list
 */
.uk-pagination {
  display: flex;
  /* 1 */
  flex-wrap: wrap;
  /* 2 */
  margin-left: -10px;
  /* 3 */
  padding: 0;
  list-style: none;
}
/*
 * 1. Space is allocated solely based on content dimensions: 0 0 auto
 * 2. Gutter
 * 3. Create position context for dropdowns
 */
.uk-pagination > * {
  /* 1 */
  flex: none;
  /* 2 */
  padding-left: 10px;
  /* 3 */
  position: relative;
}
/* Items
 ========================================================================== */
/*
 * 1. Prevent gap if child element is `inline-block`, e.g. an icon
 * 2. Style
 */
.uk-pagination > * > * {
  /* 1 */
  display: block;
  /* 2 */
  padding: 13px 15px;
  color: #1C1C1C;
  box-sizing: border-box;
  min-width: 0;
  line-height: 13px;
  text-align: center;
  transition: 0.1s ease-in-out;
  transition-property: color, background-color, border-color, box-shadow;
  background-color: #F8F8F8;
  font-size: 14px;
  font-weight: 500;
  border-radius: 3px;
}
/* Hover */
.uk-pagination > * > :hover {
  color: #FFF;
  text-decoration: none;
  background-color: #0E9B4A;
}
/* Active */
.uk-pagination > .uk-active > * {
  color: #FFF;
  background-color: #0E9B4A;
}
/* Disabled */
.uk-pagination > .uk-disabled > * {
  color: #868686;
  background-color: transparent;
}
/* ========================================================================
   Component: Tab
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Gutter
 * 3. Reset list
 */
.uk-tab {
  display: flex;
  /* 1 */
  flex-wrap: wrap;
  /* 2 */
  margin-left: -25px;
  /* 3 */
  padding: 0;
  list-style: none;
  position: relative;
}
.uk-tab::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 25px;
  right: 0;
  border-bottom: 2px solid #EDEDED;
}
/*
 * 1. Space is allocated solely based on content dimensions: 0 0 auto
 * 2. Gutter
 * 3. Create position context for dropdowns
 */
.uk-tab > * {
  /* 1 */
  flex: none;
  /* 2 */
  padding-left: 25px;
  /* 3 */
  position: relative;
}
/* Items
 ========================================================================== */
/*
 * Items must target `a` elements to exclude other elements (e.g. dropdowns)
 * 1. Center content vertically, e.g. an icon
 * 2. Imitate white space gap when using flexbox
 * 3. Center content if a width is set
 * 4. Style
 */
.uk-tab > * > a {
  /* 1 */
  display: flex;
  align-items: center;
  /* 2 */
  column-gap: 0.25em;
  /* 3 */
  justify-content: center;
  /* 4 */
  padding: 5px 0px;
  color: #BDBDBD;
  transition: 0.1s ease-in-out;
  transition-property: color, background-color, border-color, box-shadow;
  font-size: 16px;
  line-height: 1.75;
  font-weight: 500;
  border-bottom: 2px solid transparent;
}
/* Hover */
.uk-tab > * > a:hover {
  color: #2C2C2C;
  text-decoration: none;
  border-color: transparent;
}
/* Active */
.uk-tab > .uk-active > a {
  color: #1C1C1C;
  border-color: #0E9B4A;
}
/* Disabled */
.uk-tab > .uk-disabled > a {
  color: #868686;
}
/* Position modifier
 ========================================================================== */
/*
 * Bottom
 */
.uk-tab-bottom::before {
  top: 0;
  bottom: auto;
}
.uk-tab-bottom > * > a {
  border-top: 2px solid transparent;
  border-bottom: 0 none;
}
/*
 * Left + Right
 * 1. Reset Gutter
 */
.uk-tab-left,
.uk-tab-right {
  flex-direction: column;
  /* 1 */
  margin-left: 0;
}
/* 1 */
.uk-tab-left > *,
.uk-tab-right > * {
  padding-left: 0;
}
.uk-tab-left::before {
  top: 0;
  bottom: 0;
  left: auto;
  right: 0;
  border-left: 2px solid #EDEDED;
  border-bottom: none;
}
.uk-tab-right::before {
  top: 0;
  bottom: 0;
  left: 0;
  right: auto;
  border-left: 2px solid #EDEDED;
  border-bottom: none;
}
.uk-tab-left > * > a {
  justify-content: left;
  padding: 5px 20px;
  border-right: 2px solid transparent;
  border-bottom: 0 none;
}
.uk-tab-right > * > a {
  justify-content: left;
  padding: 5px 20px;
  border-left: 2px solid transparent;
  border-bottom: 0 none;
}
.uk-tab .uk-dropdown {
  margin-left: 25px;
}
/* ========================================================================
   Component: Slidenav
 ========================================================================== */
/*
 * Adopts `uk-icon`
 */
.uk-slidenav {
  padding: 9px 13px;
  color: #ffffff;
  transition: 0.1s ease-in-out;
  transition-property: color, background-color, border-color, box-shadow;
  background-color: #0E9B4A;
  border-radius: 200px;
}
/* Hover */
.uk-slidenav:hover {
  color: rgba(255, 255, 255, 0.9);
  background-color: #10B255;
}
/* OnClick */
.uk-slidenav:active {
  color: #ffffff;
}
/* Icon modifier
 ========================================================================== */
/*
 * Previous
 */
/*
 * Next
 */
/* Size modifier
 ========================================================================== */
.uk-slidenav-large {
  padding: 10px 10px;
}
/* Container
 ========================================================================== */
.uk-slidenav-container {
  display: flex;
}
.uk-slidenav-container > :first-child {
  margin-right: 10px;
}
/* ========================================================================
   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: -10px;
}
/*
 * 1. Space is allocated solely based on content dimensions: 0 0 auto
 * 2. Gutter
 */
.uk-dotnav > * {
  /* 1 */
  flex: none;
  /* 2 */
  padding-left: 10px;
}
/* Items
 ========================================================================== */
/*
 * Items
 * 1. Hide text if present
 */
.uk-dotnav > * > * {
  display: block;
  box-sizing: border-box;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(194, 199, 212, 0.36);
  /* 1 */
  text-indent: 100%;
  overflow: hidden;
  white-space: nowrap;
  transition: 0.2s ease-in-out;
  transition-property: color, background-color, border-color, box-shadow;
}
/* Hover */
.uk-dotnav > * > :hover {
  background-color: #C2C7D4;
}
/* OnClick */
.uk-dotnav > * > :active {
  background-color: #B6BBC7;
}
/* Active */
.uk-dotnav > .uk-active > * {
  background-color: #0E9B4A;
}
/* Modifier: 'uk-dotnav-vertical'
 ========================================================================== */
/*
 * 1. Change direction
 * 2. Gutter
 */
.uk-dotnav-vertical {
  /* 1 */
  flex-direction: column;
  /* 2 */
  margin-left: 0;
  margin-top: -5px;
}
/* 2 */
.uk-dotnav-vertical > * {
  padding-left: 0;
  padding-top: 5px;
}
/* ========================================================================
   Component: Thumbnav
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Reset list
 * 3. Gutter
 */
.uk-thumbnav {
  display: flex;
  /* 1 */
  flex-wrap: wrap;
  /* 2 */
  margin: 0;
  padding: 0;
  list-style: none;
  /* 3 */
  margin-left: -15px;
}
/*
 * Space is allocated based on content dimensions, but shrinks: 0 1 auto
 * 1. Gutter
 */
.uk-thumbnav > * {
  /* 1 */
  padding-left: 15px;
}
/* Items
 ========================================================================== */
/*
 * Items
 */
.uk-thumbnav > * > * {
  display: inline-block;
  position: relative;
}
.uk-thumbnav > * > *::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: transparent;
  background-origin: border-box;
  transition: 0.1s ease-in-out;
  transition-property: background-color, border-color, box-shadow, opacity;
}
.uk-thumbnav > * > *::after {
  background-image: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.4));
}
/* Hover */
.uk-thumbnav > * > :hover::after {
  opacity: 0;
}
/* Active */
.uk-thumbnav > .uk-active > *::after {
  opacity: 0;
}
/* Modifier: 'uk-thumbnav-vertical'
 ========================================================================== */
/*
 * 1. Change direction
 * 2. Gutter
 */
.uk-thumbnav-vertical {
  /* 1 */
  flex-direction: column;
  /* 2 */
  margin-left: 0;
  margin-top: -15px;
}
/* 2 */
.uk-thumbnav-vertical > * {
  padding-left: 0;
  padding-top: 15px;
}
/* ========================================================================
   Component: Iconnav
 ========================================================================== */
/*
 * 1. Allow items to wrap into the next line
 * 2. Reset list
 * 3. Gutter
 */
.uk-iconnav {
  display: flex;
  /* 1 */
  flex-wrap: wrap;
  /* 2 */
  margin: 0;
  padding: 0;
  list-style: none;
  /* 3 */
  margin-left: -10px;
}
/*
 * Space is allocated based on content dimensions, but shrinks: 0 1 auto
 * 1. Gutter
 */
.uk-iconnav > * {
  /* 1 */
  padding-left: 10px;
}
/* Items
 ========================================================================== */
/*
 * Items must target `a` elements to exclude other elements (e.g. dropdowns)
 * 1. Center content vertically if there is still some text
 * 2. Imitate white space gap when using flexbox
 * 3. Force text not to affect item height
 * 4. Style
 * 5. Required for `a` if there is still some text
 */
.uk-iconnav > * > a {
  /* 1 */
  display: flex;
  align-items: center;
  /* 2 */
  column-gap: 0.25em;
  /* 3 */
  line-height: 0;
  /* 4 */
  color: #1C1C1C;
  /* 5 */
  text-decoration: none;
  transition: 0.1s ease-in-out;
  transition-property: color, background-color, border-color, box-shadow;
  font-size: 15px;
}
/* Hover */
.uk-iconnav > * > a:hover {
  color: #564AEB;
}
/* Active */
.uk-iconnav > .uk-active > a {
  color: #564AEB;
}
/* Modifier: 'uk-iconnav-vertical'
 ========================================================================== */
/*
 * 1. Change direction
 * 2. Gutter
 */
.uk-iconnav-vertical {
  /* 1 */
  flex-direction: column;
  /* 2 */
  margin-left: 0;
  margin-top: -10px;
}
/* 2 */
.uk-iconnav-vertical > * {
  padding-left: 0;
  padding-top: 10px;
}
/* ========================================================================
   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
 * 7. Prevent cancellation of pointer events while dragging
 */
.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;
  /* 7 */
  touch-action: pinch-zoom;
}
/*
 * Open
 * 1. Center child
 * 2. Fade-in
 */
.uk-lightbox.uk-open {
  display: block;
  /* 2 */
  opacity: 1;
}
/*
 * Focus
 */
.uk-lightbox :focus {
  outline-color: rgba(255, 255, 255, 0.7);
}
.uk-lightbox :focus-visible {
  outline-color: rgba(255, 255, 255, 0.7);
}
/* 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
 */
.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;
}
.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;
}
/* OnClick */
/* Caption
 ========================================================================== */
.uk-lightbox-caption:empty {
  display: none;
}
/* Iframe
 ========================================================================== */
.uk-lightbox-iframe {
  width: 80%;
  height: 80%;
}
/* ========================================================================
   Component: Animation
 ========================================================================== */
[class*='uk-animation-'] {
  animation: 0.5s ease-out both;
}
/* Animations
 ========================================================================== */
/*
 * Fade
 */
.uk-animation-fade {
  animation-name: uk-fade;
  animation-duration: 0.8s;
  animation-timing-function: linear;
}
/*
 * Scale
 */
.uk-animation-scale-up {
  animation-name: uk-fade, uk-scale-up;
}
.uk-animation-scale-down {
  animation-name: uk-fade, uk-scale-down;
}
/*
 * Slide
 */
.uk-animation-slide-top {
  animation-name: uk-fade, uk-slide-top;
}
.uk-animation-slide-bottom {
  animation-name: uk-fade, uk-slide-bottom;
}
.uk-animation-slide-left {
  animation-name: uk-fade, uk-slide-left;
}
.uk-animation-slide-right {
  animation-name: uk-fade, uk-slide-right;
}
/*
 * Slide Small
 */
.uk-animation-slide-top-small {
  animation-name: uk-fade, uk-slide-top-small;
}
.uk-animation-slide-bottom-small {
  animation-name: uk-fade, uk-slide-bottom-small;
}
.uk-animation-slide-left-small {
  animation-name: uk-fade, uk-slide-left-small;
}
.uk-animation-slide-right-small {
  animation-name: uk-fade, uk-slide-right-small;
}
/*
 * Slide Medium
 */
.uk-animation-slide-top-medium {
  animation-name: uk-fade, uk-slide-top-medium;
}
.uk-animation-slide-bottom-medium {
  animation-name: uk-fade, uk-slide-bottom-medium;
}
.uk-animation-slide-left-medium {
  animation-name: uk-fade, uk-slide-left-medium;
}
.uk-animation-slide-right-medium {
  animation-name: uk-fade, uk-slide-right-medium;
}
/*
 * Kenburns
 */
.uk-animation-kenburns {
  animation-name: uk-kenburns;
  animation-duration: 15s;
}
/*
 * Shake
 */
.uk-animation-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 {
  animation-name: uk-stroke;
  animation-duration: 2s;
  stroke-dasharray: var(--uk-animation-stroke);
}
/* Direction modifier
 ========================================================================== */
.uk-animation-reverse {
  animation-direction: reverse;
  animation-timing-function: ease-in;
}
/* Duration modifier
 ========================================================================== */
.uk-animation-fast {
  animation-duration: 0.1s;
}
/* Toggle animation based on the State of the Parent Element
 ========================================================================== */
.uk-animation-toggle:not(:hover):not(:focus) [class*='uk-animation-'] {
  animation-name: none;
}
/* Keyframes used by animation classes
 ========================================================================== */
/*
 * Fade
 */
@keyframes uk-fade {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/*
 * Scale
 */
@keyframes uk-scale-up {
  0% {
    transform: scale(0.9);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes uk-scale-down {
  0% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(1);
  }
}
/*
 * Slide
 */
@keyframes uk-slide-top {
  0% {
    transform: translateY(-100%);
  }
  100% {
    transform: translateY(0);
  }
}
@keyframes uk-slide-bottom {
  0% {
    transform: translateY(100%);
  }
  100% {
    transform: translateY(0);
  }
}
@keyframes uk-slide-left {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(0);
  }
}
@keyframes uk-slide-right {
  0% {
    transform: translateX(100%);
  }
  100% {
    transform: translateX(0);
  }
}
/*
 * Slide Small
 */
@keyframes uk-slide-top-small {
  0% {
    transform: translateY(-10px);
  }
  100% {
    transform: translateY(0);
  }
}
@keyframes uk-slide-bottom-small {
  0% {
    transform: translateY(10px);
  }
  100% {
    transform: translateY(0);
  }
}
@keyframes uk-slide-left-small {
  0% {
    transform: translateX(-10px);
  }
  100% {
    transform: translateX(0);
  }
}
@keyframes uk-slide-right-small {
  0% {
    transform: translateX(10px);
  }
  100% {
    transform: translateX(0);
  }
}
/*
 * Slide Medium
 */
@keyframes uk-slide-top-medium {
  0% {
    transform: translateY(-50px);
  }
  100% {
    transform: translateY(0);
  }
}
@keyframes uk-slide-bottom-medium {
  0% {
    transform: translateY(50px);
  }
  100% {
    transform: translateY(0);
  }
}
@keyframes uk-slide-left-medium {
  0% {
    transform: translateX(-50px);
  }
  100% {
    transform: translateX(0);
  }
}
@keyframes uk-slide-right-medium {
  0% {
    transform: translateX(50px);
  }
  100% {
    transform: translateX(0);
  }
}
/*
 * Kenburns
 */
@keyframes uk-kenburns {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.2);
  }
}
/*
 * Shake
 */
@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
 */
@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-2xlarge {
  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-2xlarge\@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-2xlarge\@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-2xlarge\@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-2xlarge\@xl {
    width: 750px;
  }
  /* Auto */
  .uk-width-auto\@xl {
    width: auto;
  }
  /* Expand */
  .uk-width-expand\@xl {
    flex: 1;
    min-width: 1px;
  }
}
/* Intrinsic Widths
 ========================================================================== */
.uk-width-max-content {
  width: max-content;
}
.uk-width-min-content {
  width: min-content;
}
/* ========================================================================
   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;
}
.uk-height-viewport-2 {
  min-height: 200vh;
}
.uk-height-viewport-3 {
  min-height: 300vh;
}
.uk-height-viewport-4 {
  min-height: 400vh;
}
/*
 * 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: 16px;
  line-height: 1.3;
  color: #1C1C1C;
  font-weight: normal;
}
.uk-text-meta {
  font-size: 14px;
  line-height: 1.4;
  color: #626262;
  font-weight: normal;
}
.uk-text-meta > a {
  color: #626262;
}
.uk-text-meta > a:hover {
  color: #2C2C2C;
  text-decoration: none;
}
/* Size modifiers
 ========================================================================== */
.uk-text-small {
  font-size: 14px;
  line-height: 1.5;
}
.uk-text-large {
  font-size: 24px;
  line-height: 1.5;
}
.uk-text-default {
  font-size: 16px;
  line-height: 1.75;
}
/* 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;
}
/* Decoration modifier
 ========================================================================== */
.uk-text-decoration-none {
  text-decoration: none !important;
}
/* Color modifiers
 ========================================================================== */
.uk-text-muted {
  color: #868686 !important;
}
.uk-text-emphasis {
  color: #1C1C1C !important;
}
.uk-text-primary {
  color: #0E9B4A !important;
}
.uk-text-secondary {
  color: #111 !important;
}
.uk-text-success {
  color: #42C65C !important;
}
.uk-text-warning {
  color: #FFAD4F !important;
}
.uk-text-danger {
  color: #FB3F3F !important;
}
/* Background modifier
 ========================================================================== */
/*
 * 1. The background clips to the foreground text. Works in all browsers.
 * 2. Default color is set to transparent.
 * 3. Container fits the text
 * 4. Style
 */
.uk-text-background {
  /* 1 */
  -webkit-background-clip: text;
  /* 2 */
  color: transparent !important;
  /* 3 */
  display: inline-block;
  /* 4 */
  background-color: #564AEB;
  background-image: linear-gradient(90deg, #564AEB 0%, #c14aeb 100%);
}
/* 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;
}
/*
 * Wrap long words onto the next line and break them if they are too long to fit.
 * 1. Make it work with table cells in all browsers.
 * Note: Not using `hyphens: auto` because it hyphenates text even if not needed.
 */
.uk-text-break {
  overflow-wrap: break-word;
}
/* 1 */
th.uk-text-break,
td.uk-text-break {
  word-break: break-word;
}
/* ========================================================================
   Component: Column
 ========================================================================== */
[class*='uk-column-'] {
  column-gap: 30px;
}
/* Desktop and bigger */
@media (min-width: 1200px) {
  [class*='uk-column-'] {
    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 {
  column-rule: 1px solid #EDEDED;
  /* 1 */
  column-gap: 60px;
}
/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-column-divider {
    column-gap: 80px;
  }
}
/* Width modifiers
 ========================================================================== */
.uk-column-1-2 {
  column-count: 2;
}
.uk-column-1-3 {
  column-count: 3;
}
.uk-column-1-4 {
  column-count: 4;
}
.uk-column-1-5 {
  column-count: 5;
}
.uk-column-1-6 {
  column-count: 6;
}
/* Phone landscape and bigger */
@media (min-width: 640px) {
  .uk-column-1-2\@s {
    column-count: 2;
  }
  .uk-column-1-3\@s {
    column-count: 3;
  }
  .uk-column-1-4\@s {
    column-count: 4;
  }
  .uk-column-1-5\@s {
    column-count: 5;
  }
  .uk-column-1-6\@s {
    column-count: 6;
  }
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-column-1-2\@m {
    column-count: 2;
  }
  .uk-column-1-3\@m {
    column-count: 3;
  }
  .uk-column-1-4\@m {
    column-count: 4;
  }
  .uk-column-1-5\@m {
    column-count: 5;
  }
  .uk-column-1-6\@m {
    column-count: 6;
  }
}
/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-column-1-2\@l {
    column-count: 2;
  }
  .uk-column-1-3\@l {
    column-count: 3;
  }
  .uk-column-1-4\@l {
    column-count: 4;
  }
  .uk-column-1-5\@l {
    column-count: 5;
  }
  .uk-column-1-6\@l {
    column-count: 6;
  }
}
/* Large screen and bigger */
@media (min-width: 1600px) {
  .uk-column-1-2\@xl {
    column-count: 2;
  }
  .uk-column-1-3\@xl {
    column-count: 3;
  }
  .uk-column-1-4\@xl {
    column-count: 4;
  }
  .uk-column-1-5\@xl {
    column-count: 5;
  }
  .uk-column-1-6\@xl {
    column-count: 6;
  }
}
/* Make element span across all columns
 * Does not work in Firefox yet
 ========================================================================== */
.uk-column-span {
  column-span: all;
}
/* ========================================================================
   Component: Cover
 ========================================================================== */
/*
 * Works with iframes and embedded content
 * 1. Use attribute to apply transform instantly. Needed if transform is transitioned.
 * 2. Reset responsiveness for embedded content
 * 3. Center object
 * Note: Percent values on the `top` property only works if this element
 *       is absolute positioned or if the container has a height
 */
/* 1 */
[uk-cover],
[data-uk-cover] {
  /* 2 */
  max-width: none;
  /* 3 */
  position: absolute;
  left: 50%;
  top: 50%;
  --uk-position-translate-x: -50%;
  --uk-position-translate-y: -50%;
  transform: translate(var(--uk-position-translate-x), var(--uk-position-translate-y));
}
iframe[uk-cover],
iframe[data-uk-cover] {
  pointer-events: none;
}
/* Container
 ========================================================================== */
/*
 * 1. Parent container which clips resized object
 * 2. Needed if the child is positioned absolute. See note above
 */
.uk-cover-container {
  /* 1 */
  overflow: hidden;
  /* 2 */
  position: relative;
}
/* ========================================================================
   Component: Background
 ========================================================================== */
/* Color
 ========================================================================== */
.uk-background-default {
  background-color: #FFF;
}
.uk-background-muted {
  background-color: #F8F8F8;
}
.uk-background-primary {
  background-color: #564AEB;
}
.uk-background-secondary {
  background-color: #111;
}
/* Size
 ========================================================================== */
.uk-background-cover,
.uk-background-contain,
.uk-background-width-1-1,
.uk-background-height-1-1 {
  background-position: 50% 50%;
  background-repeat: no-repeat;
}
.uk-background-cover {
  background-size: cover;
}
.uk-background-contain {
  background-size: contain;
}
.uk-background-width-1-1 {
  background-size: 100%;
}
.uk-background-height-1-1 {
  background-size: auto 100%;
}
/* Position
 ========================================================================== */
.uk-background-top-left {
  background-position: 0 0;
}
.uk-background-top-center {
  background-position: 50% 0;
}
.uk-background-top-right {
  background-position: 100% 0;
}
.uk-background-center-left {
  background-position: 0 50%;
}
.uk-background-center-center {
  background-position: 50% 50%;
}
.uk-background-center-right {
  background-position: 100% 50%;
}
.uk-background-bottom-left {
  background-position: 0 100%;
}
.uk-background-bottom-center {
  background-position: 50% 100%;
}
.uk-background-bottom-right {
  background-position: 100% 100%;
}
/* Repeat
 ========================================================================== */
.uk-background-norepeat {
  background-repeat: no-repeat;
}
/* Attachment
 ========================================================================== */
/*
 * 1. Fix bug introduced in Chrome 67: the background image is not visible if any element on the page uses `translate3d`
 */
.uk-background-fixed {
  background-attachment: fixed;
  /* 1 */
  backface-visibility: hidden;
}
/*
 * Exclude touch devices because `fixed` doesn't work on iOS and Android
 */
@media (pointer: coarse) {
  .uk-background-fixed {
    background-attachment: scroll;
  }
}
/* Image
 ========================================================================== */
/* Phone portrait and smaller */
@media (max-width: 639px) {
  .uk-background-image\@s {
    background-image: none !important;
  }
}
/* Phone landscape and smaller */
@media (max-width: 959px) {
  .uk-background-image\@m {
    background-image: none !important;
  }
}
/* Tablet landscape and smaller */
@media (max-width: 1199px) {
  .uk-background-image\@l {
    background-image: none !important;
  }
}
/* Desktop and smaller */
@media (max-width: 1599px) {
  .uk-background-image\@xl {
    background-image: none !important;
  }
}
/* Blend modes
 ========================================================================== */
.uk-background-blend-multiply {
  background-blend-mode: multiply;
}
.uk-background-blend-screen {
  background-blend-mode: screen;
}
.uk-background-blend-overlay {
  background-blend-mode: overlay;
}
.uk-background-blend-darken {
  background-blend-mode: darken;
}
.uk-background-blend-lighten {
  background-blend-mode: lighten;
}
.uk-background-blend-color-dodge {
  background-blend-mode: color-dodge;
}
.uk-background-blend-color-burn {
  background-blend-mode: color-burn;
}
.uk-background-blend-hard-light {
  background-blend-mode: hard-light;
}
.uk-background-blend-soft-light {
  background-blend-mode: soft-light;
}
.uk-background-blend-difference {
  background-blend-mode: difference;
}
.uk-background-blend-exclusion {
  background-blend-mode: exclusion;
}
.uk-background-blend-hue {
  background-blend-mode: hue;
}
.uk-background-blend-saturation {
  background-blend-mode: saturation;
}
.uk-background-blend-color {
  background-blend-mode: color;
}
.uk-background-blend-luminosity {
  background-blend-mode: luminosity;
}
/* ========================================================================
   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);
}
svg.uk-text-muted,
svg .uk-text-muted {
  color: #acacac !important;
}
.uk-svg-default-background {
  color: #FFF !important;
}
.uk-svg-muted-background {
  color: #f3f3f3 !important;
}
/* ========================================================================
   Component: Utility
 ========================================================================== */
/* Panel
 ========================================================================== */
.uk-panel {
  display: flow-root;
  position: relative;
  box-sizing: border-box;
}
/*
 * Remove margin from the last-child
 */
.uk-panel > :last-child {
  margin-bottom: 0;
}
/*
 * Scrollable
 */
.uk-panel-scrollable {
  height: 170px;
  padding: 10px;
  border: 2px solid #EDEDED;
  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
 */
.uk-overflow-auto {
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
.uk-overflow-auto > :last-child {
  margin-bottom: 0;
}
/* Box Sizing
 ========================================================================== */
.uk-box-sizing-content {
  box-sizing: content-box;
}
.uk-box-sizing-border {
  box-sizing: border-box;
}
/* Resize
 ========================================================================== */
.uk-resize {
  resize: both;
}
.uk-resize-horizontal {
  resize: horizontal;
}
.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 new layer 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;
}
/*
 * Fix initial iframe width. Without the viewport is expanded on iOS devices
 */
[uk-responsive],
[data-uk-responsive] {
  max-width: 100%;
}
/* Object
 ========================================================================== */
.uk-object-cover {
  object-fit: cover;
}
.uk-object-contain {
  object-fit: contain;
}
.uk-object-fill {
  object-fit: fill;
}
.uk-object-none {
  object-fit: none;
}
.uk-object-scale-down {
  object-fit: scale-down;
}
/* 
 * Position
 */
.uk-object-top-left {
  object-position: 0 0;
}
.uk-object-top-center {
  object-position: 50% 0;
}
.uk-object-top-right {
  object-position: 100% 0;
}
.uk-object-center-left {
  object-position: 0 50%;
}
.uk-object-center-center {
  object-position: 50% 50%;
}
.uk-object-center-right {
  object-position: 100% 50%;
}
.uk-object-bottom-left {
  object-position: 0 100%;
}
.uk-object-bottom-center {
  object-position: 50% 100%;
}
.uk-object-bottom-right {
  object-position: 100% 100%;
}
/* 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: 2px 4px 16px rgba(0, 0, 0, 0.06);
}
.uk-box-shadow-medium {
  box-shadow: 2px 12px 32px rgba(0, 0, 0, 0.08);
}
.uk-box-shadow-large {
  box-shadow: 2px 18px 48px rgba(0, 0, 0, 0.1);
}
.uk-box-shadow-xlarge {
  box-shadow: 2px 26px 56px rgba(0, 0, 0, 0.2);
}
/*
 * Hover
 */
[class*='uk-box-shadow-hover'] {
  transition: box-shadow 0.1s ease-in-out;
}
.uk-box-shadow-hover-small:hover {
  box-shadow: 2px 4px 16px rgba(0, 0, 0, 0.06);
}
.uk-box-shadow-hover-medium:hover {
  box-shadow: 2px 12px 32px rgba(0, 0, 0, 0.08);
}
.uk-box-shadow-hover-large:hover {
  box-shadow: 2px 18px 48px rgba(0, 0, 0, 0.1);
}
.uk-box-shadow-hover-xlarge:hover {
  box-shadow: 2px 26px 56px rgba(0, 0, 0, 0.2);
}
/* Box-shadow bottom
 ========================================================================== */
/*
 * 1. Set position.
 * 2. Set style
 * 3. Fix shadow being clipped in Safari if container is animated
 */
@supports (filter: blur(0)) {
  .uk-box-shadow-bottom {
    display: inline-block;
    position: relative;
    z-index: 0;
    max-width: 100%;
    vertical-align: middle;
  }
  .uk-box-shadow-bottom::after {
    content: "";
    /* 1 */
    position: absolute;
    bottom: -30px;
    left: 0;
    right: 0;
    z-index: -1;
    /* 2 */
    height: 30px;
    border-radius: 100%;
    background: #444;
    filter: blur(20px);
    /* 3 */
    will-change: filter;
  }
}
/* 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
 */
.uk-dropcap::first-letter,
.uk-dropcap > p:first-of-type::first-letter {
  display: block;
  margin-right: 10px;
  float: left;
  font-size: 5.25em;
  line-height: 1;
  color: inherit;
  margin-bottom: -2px;
}
/* 2 */
@-moz-document url-prefix() {
  .uk-dropcap::first-letter,
  .uk-dropcap > p:first-of-type::first-letter {
    margin-top: 1.1%;
  }
}
/* Logo
 ========================================================================== */
/*
 * 1. Style
 * 2. Required for `a`
 * 3. Behave like image but can be overridden through flex utility classes
 */
.uk-logo {
  /* 1 */
  font-size: 30px;
  font-family: 'Fira Sans';
  color: #1C1C1C;
  /* 2 */
  text-decoration: none;
  font-weight: 400;
  text-transform: uppercase;
}
/* 3 */
:where(.uk-logo) {
  display: inline-block;
  vertical-align: middle;
}
/* Hover */
.uk-logo:hover {
  color: #1C1C1C;
  /* 1 */
  text-decoration: none;
}
.uk-logo :where(img, svg, video) {
  display: block;
}
.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;
}
/* 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: 40px;
}
/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-padding {
    padding: 50px;
  }
}
/* Small
 ========================================================================== */
.uk-padding-small {
  padding: 10px;
}
/* Large
 ========================================================================== */
.uk-padding-large {
  padding: 40px;
}
/* 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
 ========================================================================== */
:root {
  --uk-position-margin-offset: 0px;
}
/* Directions
 ========================================================================== */
/*
 * 1. Prevent content overflow.
 */
[class*='uk-position-top'],
[class*='uk-position-bottom'],
[class*='uk-position-left'],
[class*='uk-position-right'],
[class*='uk-position-center'] {
  position: absolute !important;
  /* 1 */
  max-width: calc(100% - (var(--uk-position-margin-offset) * 2));
  box-sizing: border-box;
}
/*
 * Edges
 * Don't use `width: 100%` because it's 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.
 *    Using `max-content` requires `max-width` of 100% which is set generally.
 */
.uk-position-center {
  top: calc(50% - var(--uk-position-margin-offset));
  left: calc(50% - var(--uk-position-margin-offset));
  --uk-position-translate-x: -50%;
  --uk-position-translate-y: -50%;
  transform: translate(var(--uk-position-translate-x), var(--uk-position-translate-y));
  /* 1 */
  width: max-content;
}
/* Vertical */
[class*='uk-position-center-left'],
[class*='uk-position-center-right'] {
  top: calc(50% - var(--uk-position-margin-offset));
  --uk-position-translate-y: -50%;
  transform: translate(0, var(--uk-position-translate-y));
}
.uk-position-center-left {
  left: 0;
}
.uk-position-center-right {
  right: 0;
}
.uk-position-center-left-out {
  right: 100%;
  width: max-content;
}
.uk-position-center-right-out {
  left: 100%;
  width: max-content;
}
/* Horizontal */
.uk-position-top-center,
.uk-position-bottom-center {
  left: calc(50% - var(--uk-position-margin-offset));
  --uk-position-translate-x: -50%;
  transform: translate(var(--uk-position-translate-x), 0);
  /* 1 */
  width: max-content;
}
.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;
}
/* Margin
 ========================================================================== */
.uk-position-small {
  margin: 10px;
  --uk-position-margin-offset: 10px;
}
.uk-position-medium {
  margin: 30px;
  --uk-position-margin-offset: 30px;
}
.uk-position-large {
  margin: 30px;
  --uk-position-margin-offset: 30px;
}
/* Desktop and bigger */
@media (min-width: 1200px) {
  .uk-position-large {
    margin: 50px;
    --uk-position-margin-offset: 50px;
  }
}
/* Schemes
 ========================================================================== */
.uk-position-relative {
  position: relative  !important;
}
.uk-position-absolute {
  position: absolute  !important;
}
.uk-position-fixed {
  position: fixed  !important;
}
.uk-position-sticky {
  position: sticky  !important;
}
/* Layer
 ========================================================================== */
.uk-position-z-index {
  z-index: 1;
}
.uk-position-z-index-zero {
  z-index: 0;
}
.uk-position-z-index-negative {
  z-index: -1;
}
/* ========================================================================
   Component: Transition
 ========================================================================== */
/* 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)
 */
:where(.uk-transition-fade),
:where([class*='uk-transition-scale']),
:where([class*='uk-transition-slide']) {
  --uk-position-translate-x: 0;
  --uk-position-translate-y: 0;
}
.uk-transition-fade,
[class*='uk-transition-scale'],
[class*='uk-transition-slide'] {
  --uk-translate-x: 0;
  --uk-translate-y: 0;
  --uk-scale-x: 1;
  --uk-scale-y: 1;
  transform: translate(var(--uk-position-translate-x), var(--uk-position-translate-y)) translate(var(--uk-translate-x), var(--uk-translate-y)) scale(var(--uk-scale-x), var(--uk-scale-y));
  transition: 0.3s ease-out;
  transition-property: opacity, transform, filter;
  opacity: 0;
}
/*
 * Fade
 */
.uk-transition-toggle:hover .uk-transition-fade,
.uk-transition-toggle:focus .uk-transition-fade,
.uk-transition-toggle .uk-transition-fade:focus-within,
.uk-transition-active.uk-active .uk-transition-fade {
  opacity: 1;
}
/*
 * Scale
 * 1. Make image rendering the same during the transition as before and after. Prefixed because of Safari.
 */
/* 1 */
[class*='uk-transition-scale'] {
  -webkit-backface-visibility: hidden;
}
.uk-transition-scale-up {
  --uk-scale-x: 1;
  --uk-scale-y: 1;
}
.uk-transition-scale-down {
  --uk-scale-x: 1.03;
  --uk-scale-y: 1.03;
}
/* Show */
.uk-transition-toggle:hover .uk-transition-scale-up,
.uk-transition-toggle:focus .uk-transition-scale-up,
.uk-transition-toggle .uk-transition-scale-up:focus-within,
.uk-transition-active.uk-active .uk-transition-scale-up {
  --uk-scale-x: 1.03;
  --uk-scale-y: 1.03;
  opacity: 1;
}
.uk-transition-toggle:hover .uk-transition-scale-down,
.uk-transition-toggle:focus .uk-transition-scale-down,
.uk-transition-toggle .uk-transition-scale-down:focus-within,
.uk-transition-active.uk-active .uk-transition-scale-down {
  --uk-scale-x: 1;
  --uk-scale-y: 1;
  opacity: 1;
}
/*
 * Slide
 */
.uk-transition-slide-top {
  --uk-translate-y: -100%;
}
.uk-transition-slide-bottom {
  --uk-translate-y: 100%;
}
.uk-transition-slide-left {
  --uk-translate-x: -100%;
}
.uk-transition-slide-right {
  --uk-translate-x: 100%;
}
.uk-transition-slide-top-small {
  --uk-translate-y: calc(-1 * 10px);
}
.uk-transition-slide-bottom-small {
  --uk-translate-y: 10px;
}
.uk-transition-slide-left-small {
  --uk-translate-x: calc(-1 * 10px);
}
.uk-transition-slide-right-small {
  --uk-translate-x: 10px;
}
.uk-transition-slide-top-medium {
  --uk-translate-y: calc(-1 * 50px);
}
.uk-transition-slide-bottom-medium {
  --uk-translate-y: 50px;
}
.uk-transition-slide-left-medium {
  --uk-translate-x: calc(-1 * 50px);
}
.uk-transition-slide-right-medium {
  --uk-translate-x: 50px;
}
/* Show */
.uk-transition-toggle:hover [class*='uk-transition-slide'],
.uk-transition-toggle:focus [class*='uk-transition-slide'],
.uk-transition-toggle [class*='uk-transition-slide']:focus-within,
.uk-transition-active.uk-active [class*='uk-transition-slide'] {
  --uk-translate-x: 0;
  --uk-translate-y: 0;
  opacity: 1;
}
/* 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;
}
/* Based on the State of the Parent Element
 ========================================================================== */
/*
 * Can't use `display: none` nor `visibility: hidden` because both are not focusable.
 * The target stays visible if any element within receives focus through keyboard.
 */
/*
 * Discard space when hidden.
 */
.uk-visible-toggle:not(:hover):not(:focus) .uk-hidden-hover:not(:focus-within) {
  position: absolute !important;
  width: 0 !important;
  height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
}
/*
 * Keep space when hidden.
 */
.uk-visible-toggle:not(:hover):not(:focus) .uk-invisible-hover:not(:focus-within) {
  opacity: 0 !important;
}
/* Based on Hover Capability of the Pointing Device
 ========================================================================== */
/*
 * Hover
 */
/* Hide if primary pointing device doesn't support hover, e.g. touch screens. */
@media (hover: none) {
  .uk-hidden-touch {
    display: none !important;
  }
}
/* Hide if primary pointing device supports hover, e.g. mice. */
@media (hover) {
  .uk-hidden-notouch {
    display: none !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
 */
.uk-light,
.uk-section-primary:not(.uk-preserve-color),
.uk-tile-primary:not(.uk-preserve-color),
.uk-tile-secondary:not(.uk-preserve-color),
.uk-card-primary.uk-card-body,
.uk-card-primary > :not([class*='uk-card-media']),
.uk-overlay-primary,
.uk-offcanvas-bar,
.uk-navbar-container:not(.uk-navbar-transparent) {
  color: #ffffff;
}
.uk-light a,
.uk-light .uk-link,
.uk-section-primary:not(.uk-preserve-color) a,
.uk-section-primary:not(.uk-preserve-color) .uk-link,
.uk-tile-primary:not(.uk-preserve-color) a,
.uk-tile-primary:not(.uk-preserve-color) .uk-link,
.uk-tile-secondary:not(.uk-preserve-color) a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link,
.uk-card-primary.uk-card-body a,
.uk-card-primary.uk-card-body .uk-link,
.uk-card-primary > :not([class*='uk-card-media']) a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-link,
.uk-overlay-primary a,
.uk-overlay-primary .uk-link,
.uk-offcanvas-bar a,
.uk-offcanvas-bar .uk-link,
.uk-navbar-container:not(.uk-navbar-transparent) a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-link {
  color: #FFF;
}
.uk-light a:hover,
.uk-light .uk-link:hover,
.uk-light .uk-link-toggle:hover .uk-link,
.uk-section-primary:not(.uk-preserve-color) a:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-link:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link,
.uk-tile-primary:not(.uk-preserve-color) a:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-link:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link,
.uk-tile-secondary:not(.uk-preserve-color) a:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link,
.uk-card-primary.uk-card-body a:hover,
.uk-card-primary.uk-card-body .uk-link:hover,
.uk-card-primary.uk-card-body .uk-link-toggle:hover .uk-link,
.uk-card-primary > :not([class*='uk-card-media']) a:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-link:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-link-toggle:hover .uk-link,
.uk-overlay-primary a:hover,
.uk-overlay-primary .uk-link:hover,
.uk-overlay-primary .uk-link-toggle:hover .uk-link,
.uk-offcanvas-bar a:hover,
.uk-offcanvas-bar .uk-link:hover,
.uk-offcanvas-bar .uk-link-toggle:hover .uk-link,
.uk-navbar-container:not(.uk-navbar-transparent) a:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-link:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-link-toggle:hover .uk-link {
  color: #FFF;
}
.uk-light :not(pre) > code,
.uk-light :not(pre) > kbd,
.uk-light :not(pre) > samp,
.uk-section-primary:not(.uk-preserve-color) :not(pre) > code,
.uk-section-primary:not(.uk-preserve-color) :not(pre) > kbd,
.uk-section-primary:not(.uk-preserve-color) :not(pre) > samp,
.uk-tile-primary:not(.uk-preserve-color) :not(pre) > code,
.uk-tile-primary:not(.uk-preserve-color) :not(pre) > kbd,
.uk-tile-primary:not(.uk-preserve-color) :not(pre) > samp,
.uk-tile-secondary:not(.uk-preserve-color) :not(pre) > code,
.uk-tile-secondary:not(.uk-preserve-color) :not(pre) > kbd,
.uk-tile-secondary:not(.uk-preserve-color) :not(pre) > samp,
.uk-card-primary.uk-card-body :not(pre) > code,
.uk-card-primary.uk-card-body :not(pre) > kbd,
.uk-card-primary.uk-card-body :not(pre) > samp,
.uk-card-primary > :not([class*='uk-card-media']) :not(pre) > code,
.uk-card-primary > :not([class*='uk-card-media']) :not(pre) > kbd,
.uk-card-primary > :not([class*='uk-card-media']) :not(pre) > samp,
.uk-overlay-primary :not(pre) > code,
.uk-overlay-primary :not(pre) > kbd,
.uk-overlay-primary :not(pre) > samp,
.uk-offcanvas-bar :not(pre) > code,
.uk-offcanvas-bar :not(pre) > kbd,
.uk-offcanvas-bar :not(pre) > samp,
.uk-navbar-container:not(.uk-navbar-transparent) :not(pre) > code,
.uk-navbar-container:not(.uk-navbar-transparent) :not(pre) > kbd,
.uk-navbar-container:not(.uk-navbar-transparent) :not(pre) > samp {
  color: #ffffff;
}
.uk-light em,
.uk-section-primary:not(.uk-preserve-color) em,
.uk-tile-primary:not(.uk-preserve-color) em,
.uk-tile-secondary:not(.uk-preserve-color) em,
.uk-card-primary.uk-card-body em,
.uk-card-primary > :not([class*='uk-card-media']) em,
.uk-overlay-primary em,
.uk-offcanvas-bar em,
.uk-navbar-container:not(.uk-navbar-transparent) em {
  color: #FFF;
}
.uk-light h1,
.uk-light .uk-h1,
.uk-light h2,
.uk-light .uk-h2,
.uk-light h3,
.uk-light .uk-h3,
.uk-light h4,
.uk-light .uk-h4,
.uk-light h5,
.uk-light .uk-h5,
.uk-light h6,
.uk-light .uk-h6,
.uk-light .uk-heading-small,
.uk-light .uk-heading-medium,
.uk-light .uk-heading-large,
.uk-light .uk-heading-xlarge,
.uk-light .uk-heading-2xlarge,
.uk-section-primary:not(.uk-preserve-color) h1,
.uk-section-primary:not(.uk-preserve-color) .uk-h1,
.uk-section-primary:not(.uk-preserve-color) h2,
.uk-section-primary:not(.uk-preserve-color) .uk-h2,
.uk-section-primary:not(.uk-preserve-color) h3,
.uk-section-primary:not(.uk-preserve-color) .uk-h3,
.uk-section-primary:not(.uk-preserve-color) h4,
.uk-section-primary:not(.uk-preserve-color) .uk-h4,
.uk-section-primary:not(.uk-preserve-color) h5,
.uk-section-primary:not(.uk-preserve-color) .uk-h5,
.uk-section-primary:not(.uk-preserve-color) h6,
.uk-section-primary:not(.uk-preserve-color) .uk-h6,
.uk-section-primary:not(.uk-preserve-color) .uk-heading-small,
.uk-section-primary:not(.uk-preserve-color) .uk-heading-medium,
.uk-section-primary:not(.uk-preserve-color) .uk-heading-large,
.uk-section-primary:not(.uk-preserve-color) .uk-heading-xlarge,
.uk-section-primary:not(.uk-preserve-color) .uk-heading-2xlarge,
.uk-tile-primary:not(.uk-preserve-color) h1,
.uk-tile-primary:not(.uk-preserve-color) .uk-h1,
.uk-tile-primary:not(.uk-preserve-color) h2,
.uk-tile-primary:not(.uk-preserve-color) .uk-h2,
.uk-tile-primary:not(.uk-preserve-color) h3,
.uk-tile-primary:not(.uk-preserve-color) .uk-h3,
.uk-tile-primary:not(.uk-preserve-color) h4,
.uk-tile-primary:not(.uk-preserve-color) .uk-h4,
.uk-tile-primary:not(.uk-preserve-color) h5,
.uk-tile-primary:not(.uk-preserve-color) .uk-h5,
.uk-tile-primary:not(.uk-preserve-color) h6,
.uk-tile-primary:not(.uk-preserve-color) .uk-h6,
.uk-tile-primary:not(.uk-preserve-color) .uk-heading-small,
.uk-tile-primary:not(.uk-preserve-color) .uk-heading-medium,
.uk-tile-primary:not(.uk-preserve-color) .uk-heading-large,
.uk-tile-primary:not(.uk-preserve-color) .uk-heading-xlarge,
.uk-tile-primary:not(.uk-preserve-color) .uk-heading-2xlarge,
.uk-tile-secondary:not(.uk-preserve-color) h1,
.uk-tile-secondary:not(.uk-preserve-color) .uk-h1,
.uk-tile-secondary:not(.uk-preserve-color) h2,
.uk-tile-secondary:not(.uk-preserve-color) .uk-h2,
.uk-tile-secondary:not(.uk-preserve-color) h3,
.uk-tile-secondary:not(.uk-preserve-color) .uk-h3,
.uk-tile-secondary:not(.uk-preserve-color) h4,
.uk-tile-secondary:not(.uk-preserve-color) .uk-h4,
.uk-tile-secondary:not(.uk-preserve-color) h5,
.uk-tile-secondary:not(.uk-preserve-color) .uk-h5,
.uk-tile-secondary:not(.uk-preserve-color) h6,
.uk-tile-secondary:not(.uk-preserve-color) .uk-h6,
.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-small,
.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-medium,
.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-large,
.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-xlarge,
.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-2xlarge,
.uk-card-primary.uk-card-body h1,
.uk-card-primary.uk-card-body .uk-h1,
.uk-card-primary.uk-card-body h2,
.uk-card-primary.uk-card-body .uk-h2,
.uk-card-primary.uk-card-body h3,
.uk-card-primary.uk-card-body .uk-h3,
.uk-card-primary.uk-card-body h4,
.uk-card-primary.uk-card-body .uk-h4,
.uk-card-primary.uk-card-body h5,
.uk-card-primary.uk-card-body .uk-h5,
.uk-card-primary.uk-card-body h6,
.uk-card-primary.uk-card-body .uk-h6,
.uk-card-primary.uk-card-body .uk-heading-small,
.uk-card-primary.uk-card-body .uk-heading-medium,
.uk-card-primary.uk-card-body .uk-heading-large,
.uk-card-primary.uk-card-body .uk-heading-xlarge,
.uk-card-primary.uk-card-body .uk-heading-2xlarge,
.uk-card-primary > :not([class*='uk-card-media']) h1,
.uk-card-primary > :not([class*='uk-card-media']) .uk-h1,
.uk-card-primary > :not([class*='uk-card-media']) h2,
.uk-card-primary > :not([class*='uk-card-media']) .uk-h2,
.uk-card-primary > :not([class*='uk-card-media']) h3,
.uk-card-primary > :not([class*='uk-card-media']) .uk-h3,
.uk-card-primary > :not([class*='uk-card-media']) h4,
.uk-card-primary > :not([class*='uk-card-media']) .uk-h4,
.uk-card-primary > :not([class*='uk-card-media']) h5,
.uk-card-primary > :not([class*='uk-card-media']) .uk-h5,
.uk-card-primary > :not([class*='uk-card-media']) h6,
.uk-card-primary > :not([class*='uk-card-media']) .uk-h6,
.uk-card-primary > :not([class*='uk-card-media']) .uk-heading-small,
.uk-card-primary > :not([class*='uk-card-media']) .uk-heading-medium,
.uk-card-primary > :not([class*='uk-card-media']) .uk-heading-large,
.uk-card-primary > :not([class*='uk-card-media']) .uk-heading-xlarge,
.uk-card-primary > :not([class*='uk-card-media']) .uk-heading-2xlarge,
.uk-overlay-primary h1,
.uk-overlay-primary .uk-h1,
.uk-overlay-primary h2,
.uk-overlay-primary .uk-h2,
.uk-overlay-primary h3,
.uk-overlay-primary .uk-h3,
.uk-overlay-primary h4,
.uk-overlay-primary .uk-h4,
.uk-overlay-primary h5,
.uk-overlay-primary .uk-h5,
.uk-overlay-primary h6,
.uk-overlay-primary .uk-h6,
.uk-overlay-primary .uk-heading-small,
.uk-overlay-primary .uk-heading-medium,
.uk-overlay-primary .uk-heading-large,
.uk-overlay-primary .uk-heading-xlarge,
.uk-overlay-primary .uk-heading-2xlarge,
.uk-offcanvas-bar h1,
.uk-offcanvas-bar .uk-h1,
.uk-offcanvas-bar h2,
.uk-offcanvas-bar .uk-h2,
.uk-offcanvas-bar h3,
.uk-offcanvas-bar .uk-h3,
.uk-offcanvas-bar h4,
.uk-offcanvas-bar .uk-h4,
.uk-offcanvas-bar h5,
.uk-offcanvas-bar .uk-h5,
.uk-offcanvas-bar h6,
.uk-offcanvas-bar .uk-h6,
.uk-offcanvas-bar .uk-heading-small,
.uk-offcanvas-bar .uk-heading-medium,
.uk-offcanvas-bar .uk-heading-large,
.uk-offcanvas-bar .uk-heading-xlarge,
.uk-offcanvas-bar .uk-heading-2xlarge,
.uk-navbar-container:not(.uk-navbar-transparent) h1,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-h1,
.uk-navbar-container:not(.uk-navbar-transparent) h2,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-h2,
.uk-navbar-container:not(.uk-navbar-transparent) h3,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-h3,
.uk-navbar-container:not(.uk-navbar-transparent) h4,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-h4,
.uk-navbar-container:not(.uk-navbar-transparent) h5,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-h5,
.uk-navbar-container:not(.uk-navbar-transparent) h6,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-h6,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-heading-small,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-heading-medium,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-heading-large,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-heading-xlarge,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-heading-2xlarge {
  color: #FFF;
}
.uk-light blockquote,
.uk-section-primary:not(.uk-preserve-color) blockquote,
.uk-tile-primary:not(.uk-preserve-color) blockquote,
.uk-tile-secondary:not(.uk-preserve-color) blockquote,
.uk-card-primary.uk-card-body blockquote,
.uk-card-primary > :not([class*='uk-card-media']) blockquote,
.uk-overlay-primary blockquote,
.uk-offcanvas-bar blockquote,
.uk-navbar-container:not(.uk-navbar-transparent) blockquote {
  color: #FFF;
}
.uk-light blockquote footer,
.uk-section-primary:not(.uk-preserve-color) blockquote footer,
.uk-tile-primary:not(.uk-preserve-color) blockquote footer,
.uk-tile-secondary:not(.uk-preserve-color) blockquote footer,
.uk-card-primary.uk-card-body blockquote footer,
.uk-card-primary > :not([class*='uk-card-media']) blockquote footer,
.uk-overlay-primary blockquote footer,
.uk-offcanvas-bar blockquote footer,
.uk-navbar-container:not(.uk-navbar-transparent) blockquote footer {
  color: #ffffff;
}
.uk-light hr,
.uk-light .uk-hr,
.uk-section-primary:not(.uk-preserve-color) hr,
.uk-section-primary:not(.uk-preserve-color) .uk-hr,
.uk-tile-primary:not(.uk-preserve-color) hr,
.uk-tile-primary:not(.uk-preserve-color) .uk-hr,
.uk-tile-secondary:not(.uk-preserve-color) hr,
.uk-tile-secondary:not(.uk-preserve-color) .uk-hr,
.uk-card-primary.uk-card-body hr,
.uk-card-primary.uk-card-body .uk-hr,
.uk-card-primary > :not([class*='uk-card-media']) hr,
.uk-card-primary > :not([class*='uk-card-media']) .uk-hr,
.uk-overlay-primary hr,
.uk-overlay-primary .uk-hr,
.uk-offcanvas-bar hr,
.uk-offcanvas-bar .uk-hr,
.uk-navbar-container:not(.uk-navbar-transparent) hr,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-hr {
  border-top-color: rgba(255, 255, 255, 0.2);
}
.uk-light :focus,
.uk-section-primary:not(.uk-preserve-color) :focus,
.uk-tile-primary:not(.uk-preserve-color) :focus,
.uk-tile-secondary:not(.uk-preserve-color) :focus,
.uk-card-primary.uk-card-body :focus,
.uk-card-primary > :not([class*='uk-card-media']) :focus,
.uk-overlay-primary :focus,
.uk-offcanvas-bar :focus,
.uk-navbar-container:not(.uk-navbar-transparent) :focus {
  outline-color: #FFF;
}
.uk-light :focus-visible,
.uk-section-primary:not(.uk-preserve-color) :focus-visible,
.uk-tile-primary:not(.uk-preserve-color) :focus-visible,
.uk-tile-secondary:not(.uk-preserve-color) :focus-visible,
.uk-card-primary.uk-card-body :focus-visible,
.uk-card-primary > :not([class*='uk-card-media']) :focus-visible,
.uk-overlay-primary :focus-visible,
.uk-offcanvas-bar :focus-visible,
.uk-navbar-container:not(.uk-navbar-transparent) :focus-visible {
  outline-color: #FFF;
}
.uk-light a.uk-link-muted,
.uk-light .uk-link-muted a,
.uk-section-primary:not(.uk-preserve-color) a.uk-link-muted,
.uk-section-primary:not(.uk-preserve-color) .uk-link-muted a,
.uk-tile-primary:not(.uk-preserve-color) a.uk-link-muted,
.uk-tile-primary:not(.uk-preserve-color) .uk-link-muted a,
.uk-tile-secondary:not(.uk-preserve-color) a.uk-link-muted,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link-muted a,
.uk-card-primary.uk-card-body a.uk-link-muted,
.uk-card-primary.uk-card-body .uk-link-muted a,
.uk-card-primary > :not([class*='uk-card-media']) a.uk-link-muted,
.uk-card-primary > :not([class*='uk-card-media']) .uk-link-muted a,
.uk-overlay-primary a.uk-link-muted,
.uk-overlay-primary .uk-link-muted a,
.uk-offcanvas-bar a.uk-link-muted,
.uk-offcanvas-bar .uk-link-muted a,
.uk-navbar-container:not(.uk-navbar-transparent) a.uk-link-muted,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-link-muted a {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light a.uk-link-muted:hover,
.uk-light .uk-link-muted a:hover,
.uk-light .uk-link-toggle:hover .uk-link-muted,
.uk-section-primary:not(.uk-preserve-color) a.uk-link-muted:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-link-muted a:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link-muted,
.uk-tile-primary:not(.uk-preserve-color) a.uk-link-muted:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-link-muted a:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link-muted,
.uk-tile-secondary:not(.uk-preserve-color) a.uk-link-muted:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link-muted a:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link-muted,
.uk-card-primary.uk-card-body a.uk-link-muted:hover,
.uk-card-primary.uk-card-body .uk-link-muted a:hover,
.uk-card-primary.uk-card-body .uk-link-toggle:hover .uk-link-muted,
.uk-card-primary > :not([class*='uk-card-media']) a.uk-link-muted:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-link-muted a:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-link-toggle:hover .uk-link-muted,
.uk-overlay-primary a.uk-link-muted:hover,
.uk-overlay-primary .uk-link-muted a:hover,
.uk-overlay-primary .uk-link-toggle:hover .uk-link-muted,
.uk-offcanvas-bar a.uk-link-muted:hover,
.uk-offcanvas-bar .uk-link-muted a:hover,
.uk-offcanvas-bar .uk-link-toggle:hover .uk-link-muted,
.uk-navbar-container:not(.uk-navbar-transparent) a.uk-link-muted:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-link-muted a:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-link-toggle:hover .uk-link-muted {
  color: #ffffff;
}
.uk-light a.uk-link-text:hover,
.uk-light .uk-link-text a:hover,
.uk-light .uk-link-toggle:hover .uk-link-text,
.uk-section-primary:not(.uk-preserve-color) a.uk-link-text:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-link-text a:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link-text,
.uk-tile-primary:not(.uk-preserve-color) a.uk-link-text:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-link-text a:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link-text,
.uk-tile-secondary:not(.uk-preserve-color) a.uk-link-text:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link-text a:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link-text,
.uk-card-primary.uk-card-body a.uk-link-text:hover,
.uk-card-primary.uk-card-body .uk-link-text a:hover,
.uk-card-primary.uk-card-body .uk-link-toggle:hover .uk-link-text,
.uk-card-primary > :not([class*='uk-card-media']) a.uk-link-text:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-link-text a:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-link-toggle:hover .uk-link-text,
.uk-overlay-primary a.uk-link-text:hover,
.uk-overlay-primary .uk-link-text a:hover,
.uk-overlay-primary .uk-link-toggle:hover .uk-link-text,
.uk-offcanvas-bar a.uk-link-text:hover,
.uk-offcanvas-bar .uk-link-text a:hover,
.uk-offcanvas-bar .uk-link-toggle:hover .uk-link-text,
.uk-navbar-container:not(.uk-navbar-transparent) a.uk-link-text:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-link-text a:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-link-toggle:hover .uk-link-text {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light a.uk-link-heading:hover,
.uk-light .uk-link-heading a:hover,
.uk-light .uk-link-toggle:hover .uk-link-heading,
.uk-section-primary:not(.uk-preserve-color) a.uk-link-heading:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-link-heading a:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link-heading,
.uk-tile-primary:not(.uk-preserve-color) a.uk-link-heading:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-link-heading a:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link-heading,
.uk-tile-secondary:not(.uk-preserve-color) a.uk-link-heading:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link-heading a:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-link-toggle:hover .uk-link-heading,
.uk-card-primary.uk-card-body a.uk-link-heading:hover,
.uk-card-primary.uk-card-body .uk-link-heading a:hover,
.uk-card-primary.uk-card-body .uk-link-toggle:hover .uk-link-heading,
.uk-card-primary > :not([class*='uk-card-media']) a.uk-link-heading:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-link-heading a:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-link-toggle:hover .uk-link-heading,
.uk-overlay-primary a.uk-link-heading:hover,
.uk-overlay-primary .uk-link-heading a:hover,
.uk-overlay-primary .uk-link-toggle:hover .uk-link-heading,
.uk-offcanvas-bar a.uk-link-heading:hover,
.uk-offcanvas-bar .uk-link-heading a:hover,
.uk-offcanvas-bar .uk-link-toggle:hover .uk-link-heading,
.uk-navbar-container:not(.uk-navbar-transparent) a.uk-link-heading:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-link-heading a:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-link-toggle:hover .uk-link-heading {
  color: #FFF;
}
.uk-light .uk-heading-small,
.uk-section-primary:not(.uk-preserve-color) .uk-heading-small,
.uk-tile-primary:not(.uk-preserve-color) .uk-heading-small,
.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-small,
.uk-card-primary.uk-card-body .uk-heading-small,
.uk-card-primary > :not([class*='uk-card-media']) .uk-heading-small,
.uk-overlay-primary .uk-heading-small,
.uk-offcanvas-bar .uk-heading-small,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-heading-small {
  color: #FFF;
}
.uk-light .uk-heading-medium,
.uk-section-primary:not(.uk-preserve-color) .uk-heading-medium,
.uk-tile-primary:not(.uk-preserve-color) .uk-heading-medium,
.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-medium,
.uk-card-primary.uk-card-body .uk-heading-medium,
.uk-card-primary > :not([class*='uk-card-media']) .uk-heading-medium,
.uk-overlay-primary .uk-heading-medium,
.uk-offcanvas-bar .uk-heading-medium,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-heading-medium {
  color: #FFF;
}
.uk-light .uk-heading-large,
.uk-section-primary:not(.uk-preserve-color) .uk-heading-large,
.uk-tile-primary:not(.uk-preserve-color) .uk-heading-large,
.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-large,
.uk-card-primary.uk-card-body .uk-heading-large,
.uk-card-primary > :not([class*='uk-card-media']) .uk-heading-large,
.uk-overlay-primary .uk-heading-large,
.uk-offcanvas-bar .uk-heading-large,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-heading-large {
  color: #FFF;
}
.uk-light .uk-heading-xlarge,
.uk-section-primary:not(.uk-preserve-color) .uk-heading-xlarge,
.uk-tile-primary:not(.uk-preserve-color) .uk-heading-xlarge,
.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-xlarge,
.uk-card-primary.uk-card-body .uk-heading-xlarge,
.uk-card-primary > :not([class*='uk-card-media']) .uk-heading-xlarge,
.uk-overlay-primary .uk-heading-xlarge,
.uk-offcanvas-bar .uk-heading-xlarge,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-heading-xlarge {
  color: #FFF;
}
.uk-light .uk-heading-2xlarge,
.uk-section-primary:not(.uk-preserve-color) .uk-heading-2xlarge,
.uk-tile-primary:not(.uk-preserve-color) .uk-heading-2xlarge,
.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-2xlarge,
.uk-card-primary.uk-card-body .uk-heading-2xlarge,
.uk-card-primary > :not([class*='uk-card-media']) .uk-heading-2xlarge,
.uk-overlay-primary .uk-heading-2xlarge,
.uk-offcanvas-bar .uk-heading-2xlarge,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-heading-2xlarge {
  color: #FFF;
}
.uk-light .uk-heading-divider,
.uk-section-primary:not(.uk-preserve-color) .uk-heading-divider,
.uk-tile-primary:not(.uk-preserve-color) .uk-heading-divider,
.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-divider,
.uk-card-primary.uk-card-body .uk-heading-divider,
.uk-card-primary > :not([class*='uk-card-media']) .uk-heading-divider,
.uk-overlay-primary .uk-heading-divider,
.uk-offcanvas-bar .uk-heading-divider,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-heading-divider {
  border-bottom-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-heading-bullet::before,
.uk-section-primary:not(.uk-preserve-color) .uk-heading-bullet::before,
.uk-tile-primary:not(.uk-preserve-color) .uk-heading-bullet::before,
.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-bullet::before,
.uk-card-primary.uk-card-body .uk-heading-bullet::before,
.uk-card-primary > :not([class*='uk-card-media']) .uk-heading-bullet::before,
.uk-overlay-primary .uk-heading-bullet::before,
.uk-offcanvas-bar .uk-heading-bullet::before,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-heading-bullet::before {
  border-left-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-heading-line > ::before,
.uk-light .uk-heading-line > ::after,
.uk-section-primary:not(.uk-preserve-color) .uk-heading-line > ::before,
.uk-section-primary:not(.uk-preserve-color) .uk-heading-line > ::after,
.uk-tile-primary:not(.uk-preserve-color) .uk-heading-line > ::before,
.uk-tile-primary:not(.uk-preserve-color) .uk-heading-line > ::after,
.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-line > ::before,
.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-line > ::after,
.uk-card-primary.uk-card-body .uk-heading-line > ::before,
.uk-card-primary.uk-card-body .uk-heading-line > ::after,
.uk-card-primary > :not([class*='uk-card-media']) .uk-heading-line > ::before,
.uk-card-primary > :not([class*='uk-card-media']) .uk-heading-line > ::after,
.uk-overlay-primary .uk-heading-line > ::before,
.uk-overlay-primary .uk-heading-line > ::after,
.uk-offcanvas-bar .uk-heading-line > ::before,
.uk-offcanvas-bar .uk-heading-line > ::after,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-heading-line > ::before,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-heading-line > ::after {
  border-bottom-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-divider-icon,
.uk-section-primary:not(.uk-preserve-color) .uk-divider-icon,
.uk-tile-primary:not(.uk-preserve-color) .uk-divider-icon,
.uk-tile-secondary:not(.uk-preserve-color) .uk-divider-icon,
.uk-card-primary.uk-card-body .uk-divider-icon,
.uk-card-primary > :not([class*='uk-card-media']) .uk-divider-icon,
.uk-overlay-primary .uk-divider-icon,
.uk-offcanvas-bar .uk-divider-icon,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-divider-icon {
  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%22rgba%28255,%20255,%20255,%200.2%29%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");
}
.uk-light .uk-divider-icon::before,
.uk-light .uk-divider-icon::after,
.uk-section-primary:not(.uk-preserve-color) .uk-divider-icon::before,
.uk-section-primary:not(.uk-preserve-color) .uk-divider-icon::after,
.uk-tile-primary:not(.uk-preserve-color) .uk-divider-icon::before,
.uk-tile-primary:not(.uk-preserve-color) .uk-divider-icon::after,
.uk-tile-secondary:not(.uk-preserve-color) .uk-divider-icon::before,
.uk-tile-secondary:not(.uk-preserve-color) .uk-divider-icon::after,
.uk-card-primary.uk-card-body .uk-divider-icon::before,
.uk-card-primary.uk-card-body .uk-divider-icon::after,
.uk-card-primary > :not([class*='uk-card-media']) .uk-divider-icon::before,
.uk-card-primary > :not([class*='uk-card-media']) .uk-divider-icon::after,
.uk-overlay-primary .uk-divider-icon::before,
.uk-overlay-primary .uk-divider-icon::after,
.uk-offcanvas-bar .uk-divider-icon::before,
.uk-offcanvas-bar .uk-divider-icon::after,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-divider-icon::before,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-divider-icon::after {
  border-bottom-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-divider-small::after,
.uk-section-primary:not(.uk-preserve-color) .uk-divider-small::after,
.uk-tile-primary:not(.uk-preserve-color) .uk-divider-small::after,
.uk-tile-secondary:not(.uk-preserve-color) .uk-divider-small::after,
.uk-card-primary.uk-card-body .uk-divider-small::after,
.uk-card-primary > :not([class*='uk-card-media']) .uk-divider-small::after,
.uk-overlay-primary .uk-divider-small::after,
.uk-offcanvas-bar .uk-divider-small::after,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-divider-small::after {
  border-top-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-divider-vertical,
.uk-section-primary:not(.uk-preserve-color) .uk-divider-vertical,
.uk-tile-primary:not(.uk-preserve-color) .uk-divider-vertical,
.uk-tile-secondary:not(.uk-preserve-color) .uk-divider-vertical,
.uk-card-primary.uk-card-body .uk-divider-vertical,
.uk-card-primary > :not([class*='uk-card-media']) .uk-divider-vertical,
.uk-overlay-primary .uk-divider-vertical,
.uk-offcanvas-bar .uk-divider-vertical,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-divider-vertical {
  border-left-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-list-muted > ::before,
.uk-section-primary:not(.uk-preserve-color) .uk-list-muted > ::before,
.uk-tile-primary:not(.uk-preserve-color) .uk-list-muted > ::before,
.uk-tile-secondary:not(.uk-preserve-color) .uk-list-muted > ::before,
.uk-card-primary.uk-card-body .uk-list-muted > ::before,
.uk-card-primary > :not([class*='uk-card-media']) .uk-list-muted > ::before,
.uk-overlay-primary .uk-list-muted > ::before,
.uk-offcanvas-bar .uk-list-muted > ::before,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-list-muted > ::before {
  color: rgba(255, 255, 255, 0.5) !important;
}
.uk-light .uk-list-emphasis > ::before,
.uk-section-primary:not(.uk-preserve-color) .uk-list-emphasis > ::before,
.uk-tile-primary:not(.uk-preserve-color) .uk-list-emphasis > ::before,
.uk-tile-secondary:not(.uk-preserve-color) .uk-list-emphasis > ::before,
.uk-card-primary.uk-card-body .uk-list-emphasis > ::before,
.uk-card-primary > :not([class*='uk-card-media']) .uk-list-emphasis > ::before,
.uk-overlay-primary .uk-list-emphasis > ::before,
.uk-offcanvas-bar .uk-list-emphasis > ::before,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-list-emphasis > ::before {
  color: #FFF !important;
}
.uk-light .uk-list-primary > ::before,
.uk-section-primary:not(.uk-preserve-color) .uk-list-primary > ::before,
.uk-tile-primary:not(.uk-preserve-color) .uk-list-primary > ::before,
.uk-tile-secondary:not(.uk-preserve-color) .uk-list-primary > ::before,
.uk-card-primary.uk-card-body .uk-list-primary > ::before,
.uk-card-primary > :not([class*='uk-card-media']) .uk-list-primary > ::before,
.uk-overlay-primary .uk-list-primary > ::before,
.uk-offcanvas-bar .uk-list-primary > ::before,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-list-primary > ::before {
  color: #FFF !important;
}
.uk-light .uk-list-secondary > ::before,
.uk-section-primary:not(.uk-preserve-color) .uk-list-secondary > ::before,
.uk-tile-primary:not(.uk-preserve-color) .uk-list-secondary > ::before,
.uk-tile-secondary:not(.uk-preserve-color) .uk-list-secondary > ::before,
.uk-card-primary.uk-card-body .uk-list-secondary > ::before,
.uk-card-primary > :not([class*='uk-card-media']) .uk-list-secondary > ::before,
.uk-overlay-primary .uk-list-secondary > ::before,
.uk-offcanvas-bar .uk-list-secondary > ::before,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-list-secondary > ::before {
  color: #FFF !important;
}
.uk-light .uk-list-bullet > ::before,
.uk-section-primary:not(.uk-preserve-color) .uk-list-bullet > ::before,
.uk-tile-primary:not(.uk-preserve-color) .uk-list-bullet > ::before,
.uk-tile-secondary:not(.uk-preserve-color) .uk-list-bullet > ::before,
.uk-card-primary.uk-card-body .uk-list-bullet > ::before,
.uk-card-primary > :not([class*='uk-card-media']) .uk-list-bullet > ::before,
.uk-overlay-primary .uk-list-bullet > ::before,
.uk-offcanvas-bar .uk-list-bullet > ::before,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-list-bullet > ::before {
  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%23ffffff%22%20cx%3D%223%22%20cy%3D%223%22%20r%3D%223%22%20%2F%3E%0A%3C%2Fsvg%3E");
}
.uk-light .uk-list-divider > :nth-child(n+2),
.uk-section-primary:not(.uk-preserve-color) .uk-list-divider > :nth-child(n+2),
.uk-tile-primary:not(.uk-preserve-color) .uk-list-divider > :nth-child(n+2),
.uk-tile-secondary:not(.uk-preserve-color) .uk-list-divider > :nth-child(n+2),
.uk-card-primary.uk-card-body .uk-list-divider > :nth-child(n+2),
.uk-card-primary > :not([class*='uk-card-media']) .uk-list-divider > :nth-child(n+2),
.uk-overlay-primary .uk-list-divider > :nth-child(n+2),
.uk-offcanvas-bar .uk-list-divider > :nth-child(n+2),
.uk-navbar-container:not(.uk-navbar-transparent) .uk-list-divider > :nth-child(n+2),
.uk-light .tm-child-list-divider > ul > :nth-child(n+2) {
  border-top-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-list-striped > :nth-of-type(odd),
.uk-section-primary:not(.uk-preserve-color) .uk-list-striped > :nth-of-type(odd),
.uk-tile-primary:not(.uk-preserve-color) .uk-list-striped > :nth-of-type(odd),
.uk-tile-secondary:not(.uk-preserve-color) .uk-list-striped > :nth-of-type(odd),
.uk-card-primary.uk-card-body .uk-list-striped > :nth-of-type(odd),
.uk-card-primary > :not([class*='uk-card-media']) .uk-list-striped > :nth-of-type(odd),
.uk-overlay-primary .uk-list-striped > :nth-of-type(odd),
.uk-offcanvas-bar .uk-list-striped > :nth-of-type(odd),
.uk-navbar-container:not(.uk-navbar-transparent) .uk-list-striped > :nth-of-type(odd) {
  background-color: rgba(255, 255, 255, 0.1);
}
.uk-light .uk-table th,
.uk-section-primary:not(.uk-preserve-color) .uk-table th,
.uk-tile-primary:not(.uk-preserve-color) .uk-table th,
.uk-tile-secondary:not(.uk-preserve-color) .uk-table th,
.uk-card-primary.uk-card-body .uk-table th,
.uk-card-primary > :not([class*='uk-card-media']) .uk-table th,
.uk-overlay-primary .uk-table th,
.uk-offcanvas-bar .uk-table th,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-table th {
  color: #ffffff;
}
.uk-light .uk-table caption,
.uk-section-primary:not(.uk-preserve-color) .uk-table caption,
.uk-tile-primary:not(.uk-preserve-color) .uk-table caption,
.uk-tile-secondary:not(.uk-preserve-color) .uk-table caption,
.uk-card-primary.uk-card-body .uk-table caption,
.uk-card-primary > :not([class*='uk-card-media']) .uk-table caption,
.uk-overlay-primary .uk-table caption,
.uk-offcanvas-bar .uk-table caption,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-table caption {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-table > tr.uk-active,
.uk-light .uk-table tbody tr.uk-active,
.uk-section-primary:not(.uk-preserve-color) .uk-table > tr.uk-active,
.uk-section-primary:not(.uk-preserve-color) .uk-table tbody tr.uk-active,
.uk-tile-primary:not(.uk-preserve-color) .uk-table > tr.uk-active,
.uk-tile-primary:not(.uk-preserve-color) .uk-table tbody tr.uk-active,
.uk-tile-secondary:not(.uk-preserve-color) .uk-table > tr.uk-active,
.uk-tile-secondary:not(.uk-preserve-color) .uk-table tbody tr.uk-active,
.uk-card-primary.uk-card-body .uk-table > tr.uk-active,
.uk-card-primary.uk-card-body .uk-table tbody tr.uk-active,
.uk-card-primary > :not([class*='uk-card-media']) .uk-table > tr.uk-active,
.uk-card-primary > :not([class*='uk-card-media']) .uk-table tbody tr.uk-active,
.uk-overlay-primary .uk-table > tr.uk-active,
.uk-overlay-primary .uk-table tbody tr.uk-active,
.uk-offcanvas-bar .uk-table > tr.uk-active,
.uk-offcanvas-bar .uk-table tbody tr.uk-active,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-table > tr.uk-active,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-table tbody tr.uk-active {
  background: rgba(255, 255, 255, 0.08);
}
.uk-light .uk-table-divider > tr:not(:first-child),
.uk-light .uk-table-divider > :not(:first-child) > tr,
.uk-light .uk-table-divider > :first-child > tr:not(:first-child),
.uk-section-primary:not(.uk-preserve-color) .uk-table-divider > tr:not(:first-child),
.uk-section-primary:not(.uk-preserve-color) .uk-table-divider > :not(:first-child) > tr,
.uk-section-primary:not(.uk-preserve-color) .uk-table-divider > :first-child > tr:not(:first-child),
.uk-tile-primary:not(.uk-preserve-color) .uk-table-divider > tr:not(:first-child),
.uk-tile-primary:not(.uk-preserve-color) .uk-table-divider > :not(:first-child) > tr,
.uk-tile-primary:not(.uk-preserve-color) .uk-table-divider > :first-child > tr:not(:first-child),
.uk-tile-secondary:not(.uk-preserve-color) .uk-table-divider > tr:not(:first-child),
.uk-tile-secondary:not(.uk-preserve-color) .uk-table-divider > :not(:first-child) > tr,
.uk-tile-secondary:not(.uk-preserve-color) .uk-table-divider > :first-child > tr:not(:first-child),
.uk-card-primary.uk-card-body .uk-table-divider > tr:not(:first-child),
.uk-card-primary.uk-card-body .uk-table-divider > :not(:first-child) > tr,
.uk-card-primary.uk-card-body .uk-table-divider > :first-child > tr:not(:first-child),
.uk-card-primary > :not([class*='uk-card-media']) .uk-table-divider > tr:not(:first-child),
.uk-card-primary > :not([class*='uk-card-media']) .uk-table-divider > :not(:first-child) > tr,
.uk-card-primary > :not([class*='uk-card-media']) .uk-table-divider > :first-child > tr:not(:first-child),
.uk-overlay-primary .uk-table-divider > tr:not(:first-child),
.uk-overlay-primary .uk-table-divider > :not(:first-child) > tr,
.uk-overlay-primary .uk-table-divider > :first-child > tr:not(:first-child),
.uk-offcanvas-bar .uk-table-divider > tr:not(:first-child),
.uk-offcanvas-bar .uk-table-divider > :not(:first-child) > tr,
.uk-offcanvas-bar .uk-table-divider > :first-child > tr:not(:first-child),
.uk-navbar-container:not(.uk-navbar-transparent) .uk-table-divider > tr:not(:first-child),
.uk-navbar-container:not(.uk-navbar-transparent) .uk-table-divider > :not(:first-child) > tr,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-table-divider > :first-child > tr:not(:first-child) {
  border-top-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-table-striped > tr:nth-of-type(odd),
.uk-light .uk-table-striped tbody tr:nth-of-type(odd),
.uk-section-primary:not(.uk-preserve-color) .uk-table-striped > tr:nth-of-type(odd),
.uk-section-primary:not(.uk-preserve-color) .uk-table-striped tbody tr:nth-of-type(odd),
.uk-tile-primary:not(.uk-preserve-color) .uk-table-striped > tr:nth-of-type(odd),
.uk-tile-primary:not(.uk-preserve-color) .uk-table-striped tbody tr:nth-of-type(odd),
.uk-tile-secondary:not(.uk-preserve-color) .uk-table-striped > tr:nth-of-type(odd),
.uk-tile-secondary:not(.uk-preserve-color) .uk-table-striped tbody tr:nth-of-type(odd),
.uk-card-primary.uk-card-body .uk-table-striped > tr:nth-of-type(odd),
.uk-card-primary.uk-card-body .uk-table-striped tbody tr:nth-of-type(odd),
.uk-card-primary > :not([class*='uk-card-media']) .uk-table-striped > tr:nth-of-type(odd),
.uk-card-primary > :not([class*='uk-card-media']) .uk-table-striped tbody tr:nth-of-type(odd),
.uk-overlay-primary .uk-table-striped > tr:nth-of-type(odd),
.uk-overlay-primary .uk-table-striped tbody tr:nth-of-type(odd),
.uk-offcanvas-bar .uk-table-striped > tr:nth-of-type(odd),
.uk-offcanvas-bar .uk-table-striped tbody tr:nth-of-type(odd),
.uk-navbar-container:not(.uk-navbar-transparent) .uk-table-striped > tr:nth-of-type(odd),
.uk-navbar-container:not(.uk-navbar-transparent) .uk-table-striped tbody tr:nth-of-type(odd) {
  background: rgba(255, 255, 255, 0.1);
}
.uk-light .uk-table-hover > tr:hover,
.uk-light .uk-table-hover tbody tr:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-table-hover > tr:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-table-hover tbody tr:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-table-hover > tr:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-table-hover tbody tr:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-table-hover > tr:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-table-hover tbody tr:hover,
.uk-card-primary.uk-card-body .uk-table-hover > tr:hover,
.uk-card-primary.uk-card-body .uk-table-hover tbody tr:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-table-hover > tr:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-table-hover tbody tr:hover,
.uk-overlay-primary .uk-table-hover > tr:hover,
.uk-overlay-primary .uk-table-hover tbody tr:hover,
.uk-offcanvas-bar .uk-table-hover > tr:hover,
.uk-offcanvas-bar .uk-table-hover tbody tr:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-table-hover > tr:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-table-hover tbody tr:hover {
  background: rgba(255, 255, 255, 0.08);
}
.uk-light .uk-icon-link,
.uk-section-primary:not(.uk-preserve-color) .uk-icon-link,
.uk-tile-primary:not(.uk-preserve-color) .uk-icon-link,
.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-link,
.uk-card-primary.uk-card-body .uk-icon-link,
.uk-card-primary > :not([class*='uk-card-media']) .uk-icon-link,
.uk-overlay-primary .uk-icon-link,
.uk-offcanvas-bar .uk-icon-link,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-icon-link {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-icon-link:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-icon-link:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-icon-link:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-link:hover,
.uk-card-primary.uk-card-body .uk-icon-link:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-icon-link:hover,
.uk-overlay-primary .uk-icon-link:hover,
.uk-offcanvas-bar .uk-icon-link:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-icon-link:hover {
  color: #ffffff;
}
.uk-light .uk-icon-link:active,
.uk-light .uk-active > .uk-icon-link,
.uk-section-primary:not(.uk-preserve-color) .uk-icon-link:active,
.uk-section-primary:not(.uk-preserve-color) .uk-active > .uk-icon-link,
.uk-tile-primary:not(.uk-preserve-color) .uk-icon-link:active,
.uk-tile-primary:not(.uk-preserve-color) .uk-active > .uk-icon-link,
.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-link:active,
.uk-tile-secondary:not(.uk-preserve-color) .uk-active > .uk-icon-link,
.uk-card-primary.uk-card-body .uk-icon-link:active,
.uk-card-primary.uk-card-body .uk-active > .uk-icon-link,
.uk-card-primary > :not([class*='uk-card-media']) .uk-icon-link:active,
.uk-card-primary > :not([class*='uk-card-media']) .uk-active > .uk-icon-link,
.uk-overlay-primary .uk-icon-link:active,
.uk-overlay-primary .uk-active > .uk-icon-link,
.uk-offcanvas-bar .uk-icon-link:active,
.uk-offcanvas-bar .uk-active > .uk-icon-link,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-icon-link:active,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-active > .uk-icon-link {
  color: #ffffff;
}
.uk-light .uk-icon-button,
.uk-section-primary:not(.uk-preserve-color) .uk-icon-button,
.uk-tile-primary:not(.uk-preserve-color) .uk-icon-button,
.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-button,
.uk-card-primary.uk-card-body .uk-icon-button,
.uk-card-primary > :not([class*='uk-card-media']) .uk-icon-button,
.uk-overlay-primary .uk-icon-button,
.uk-offcanvas-bar .uk-icon-button,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-icon-button {
  background-color: rgba(255, 255, 255, 0.1);
  color: #FFF;
}
.uk-light .uk-icon-button:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-icon-button:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-icon-button:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-button:hover,
.uk-card-primary.uk-card-body .uk-icon-button:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-icon-button:hover,
.uk-overlay-primary .uk-icon-button:hover,
.uk-offcanvas-bar .uk-icon-button:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-icon-button:hover {
  background-color: #FFF;
  color: #2C2C2C;
}
.uk-light .uk-icon-button:active,
.uk-section-primary:not(.uk-preserve-color) .uk-icon-button:active,
.uk-tile-primary:not(.uk-preserve-color) .uk-icon-button:active,
.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-button:active,
.uk-card-primary.uk-card-body .uk-icon-button:active,
.uk-card-primary > :not([class*='uk-card-media']) .uk-icon-button:active,
.uk-overlay-primary .uk-icon-button:active,
.uk-offcanvas-bar .uk-icon-button:active,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-icon-button:active {
  background-color: rgba(255, 255, 255, 0.8);
  color: #2C2C2C;
}
.uk-light .uk-input,
.uk-light .uk-select,
.uk-light .uk-textarea,
.uk-section-primary:not(.uk-preserve-color) .uk-input,
.uk-section-primary:not(.uk-preserve-color) .uk-select,
.uk-section-primary:not(.uk-preserve-color) .uk-textarea,
.uk-tile-primary:not(.uk-preserve-color) .uk-input,
.uk-tile-primary:not(.uk-preserve-color) .uk-select,
.uk-tile-primary:not(.uk-preserve-color) .uk-textarea,
.uk-tile-secondary:not(.uk-preserve-color) .uk-input,
.uk-tile-secondary:not(.uk-preserve-color) .uk-select,
.uk-tile-secondary:not(.uk-preserve-color) .uk-textarea,
.uk-card-primary.uk-card-body .uk-input,
.uk-card-primary.uk-card-body .uk-select,
.uk-card-primary.uk-card-body .uk-textarea,
.uk-card-primary > :not([class*='uk-card-media']) .uk-input,
.uk-card-primary > :not([class*='uk-card-media']) .uk-select,
.uk-card-primary > :not([class*='uk-card-media']) .uk-textarea,
.uk-overlay-primary .uk-input,
.uk-overlay-primary .uk-select,
.uk-overlay-primary .uk-textarea,
.uk-offcanvas-bar .uk-input,
.uk-offcanvas-bar .uk-select,
.uk-offcanvas-bar .uk-textarea,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-input,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-select,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-textarea {
  background-color: rgba(255, 255, 255, 0.1);
  color: #ffffff;
  background-clip: padding-box;
  border-color: transparent !important;
}
.uk-light .uk-input:focus,
.uk-light .uk-select:focus,
.uk-light .uk-textarea:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-input:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-select:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-textarea:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-input:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-select:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-textarea:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-input:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-select:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-textarea:focus,
.uk-card-primary.uk-card-body .uk-input:focus,
.uk-card-primary.uk-card-body .uk-select:focus,
.uk-card-primary.uk-card-body .uk-textarea:focus,
.uk-card-primary > :not([class*='uk-card-media']) .uk-input:focus,
.uk-card-primary > :not([class*='uk-card-media']) .uk-select:focus,
.uk-card-primary > :not([class*='uk-card-media']) .uk-textarea:focus,
.uk-overlay-primary .uk-input:focus,
.uk-overlay-primary .uk-select:focus,
.uk-overlay-primary .uk-textarea:focus,
.uk-offcanvas-bar .uk-input:focus,
.uk-offcanvas-bar .uk-select:focus,
.uk-offcanvas-bar .uk-textarea:focus,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-input:focus,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-select:focus,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-textarea:focus {
  background-color: rgba(255, 255, 255, 0.15);
  color: #ffffff;
  border-color: transparent !important;
}
.uk-light .uk-input::placeholder,
.uk-section-primary:not(.uk-preserve-color) .uk-input::placeholder,
.uk-tile-primary:not(.uk-preserve-color) .uk-input::placeholder,
.uk-tile-secondary:not(.uk-preserve-color) .uk-input::placeholder,
.uk-card-primary.uk-card-body .uk-input::placeholder,
.uk-card-primary > :not([class*='uk-card-media']) .uk-input::placeholder,
.uk-overlay-primary .uk-input::placeholder,
.uk-offcanvas-bar .uk-input::placeholder,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-input::placeholder {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-textarea::placeholder,
.uk-section-primary:not(.uk-preserve-color) .uk-textarea::placeholder,
.uk-tile-primary:not(.uk-preserve-color) .uk-textarea::placeholder,
.uk-tile-secondary:not(.uk-preserve-color) .uk-textarea::placeholder,
.uk-card-primary.uk-card-body .uk-textarea::placeholder,
.uk-card-primary > :not([class*='uk-card-media']) .uk-textarea::placeholder,
.uk-overlay-primary .uk-textarea::placeholder,
.uk-offcanvas-bar .uk-textarea::placeholder,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-textarea::placeholder {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-select:not([multiple]):not([size]),
.uk-section-primary:not(.uk-preserve-color) .uk-select:not([multiple]):not([size]),
.uk-tile-primary:not(.uk-preserve-color) .uk-select:not([multiple]):not([size]),
.uk-tile-secondary:not(.uk-preserve-color) .uk-select:not([multiple]):not([size]),
.uk-card-primary.uk-card-body .uk-select:not([multiple]):not([size]),
.uk-card-primary > :not([class*='uk-card-media']) .uk-select:not([multiple]):not([size]),
.uk-overlay-primary .uk-select:not([multiple]):not([size]),
.uk-offcanvas-bar .uk-select:not([multiple]):not([size]),
.uk-navbar-container:not(.uk-navbar-transparent) .uk-select:not([multiple]):not([size]) {
  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%23ffffff%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23ffffff%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
}
.uk-light .uk-input[list]:hover,
.uk-light .uk-input[list]:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-input[list]:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-input[list]:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-input[list]:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-input[list]:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-input[list]:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-input[list]:focus,
.uk-card-primary.uk-card-body .uk-input[list]:hover,
.uk-card-primary.uk-card-body .uk-input[list]:focus,
.uk-card-primary > :not([class*='uk-card-media']) .uk-input[list]:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-input[list]:focus,
.uk-overlay-primary .uk-input[list]:hover,
.uk-overlay-primary .uk-input[list]:focus,
.uk-offcanvas-bar .uk-input[list]:hover,
.uk-offcanvas-bar .uk-input[list]:focus,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-input[list]:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .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%23ffffff%22%20points%3D%2212%2012%208%206%2016%206%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
}
.uk-light .uk-radio,
.uk-light .uk-checkbox,
.uk-section-primary:not(.uk-preserve-color) .uk-radio,
.uk-section-primary:not(.uk-preserve-color) .uk-checkbox,
.uk-tile-primary:not(.uk-preserve-color) .uk-radio,
.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox,
.uk-tile-secondary:not(.uk-preserve-color) .uk-radio,
.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox,
.uk-card-primary.uk-card-body .uk-radio,
.uk-card-primary.uk-card-body .uk-checkbox,
.uk-card-primary > :not([class*='uk-card-media']) .uk-radio,
.uk-card-primary > :not([class*='uk-card-media']) .uk-checkbox,
.uk-overlay-primary .uk-radio,
.uk-overlay-primary .uk-checkbox,
.uk-offcanvas-bar .uk-radio,
.uk-offcanvas-bar .uk-checkbox,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-radio,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-checkbox {
  background-color: rgba(255, 255, 255, 0.1);
  border-color: transparent;
}
.uk-light .uk-radio:focus,
.uk-light .uk-checkbox:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-radio:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-radio:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-radio:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:focus,
.uk-card-primary.uk-card-body .uk-radio:focus,
.uk-card-primary.uk-card-body .uk-checkbox:focus,
.uk-card-primary > :not([class*='uk-card-media']) .uk-radio:focus,
.uk-card-primary > :not([class*='uk-card-media']) .uk-checkbox:focus,
.uk-overlay-primary .uk-radio:focus,
.uk-overlay-primary .uk-checkbox:focus,
.uk-offcanvas-bar .uk-radio:focus,
.uk-offcanvas-bar .uk-checkbox:focus,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-radio:focus,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-checkbox:focus {
  background-color: rgba(255, 255, 255, 0.15);
  border-color: transparent;
}
.uk-light .uk-radio:checked,
.uk-light .uk-checkbox:checked,
.uk-light .uk-checkbox:indeterminate,
.uk-section-primary:not(.uk-preserve-color) .uk-radio:checked,
.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:checked,
.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate,
.uk-tile-primary:not(.uk-preserve-color) .uk-radio:checked,
.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:checked,
.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate,
.uk-tile-secondary:not(.uk-preserve-color) .uk-radio:checked,
.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:checked,
.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:indeterminate,
.uk-card-primary.uk-card-body .uk-radio:checked,
.uk-card-primary.uk-card-body .uk-checkbox:checked,
.uk-card-primary.uk-card-body .uk-checkbox:indeterminate,
.uk-card-primary > :not([class*='uk-card-media']) .uk-radio:checked,
.uk-card-primary > :not([class*='uk-card-media']) .uk-checkbox:checked,
.uk-card-primary > :not([class*='uk-card-media']) .uk-checkbox:indeterminate,
.uk-overlay-primary .uk-radio:checked,
.uk-overlay-primary .uk-checkbox:checked,
.uk-overlay-primary .uk-checkbox:indeterminate,
.uk-offcanvas-bar .uk-radio:checked,
.uk-offcanvas-bar .uk-checkbox:checked,
.uk-offcanvas-bar .uk-checkbox:indeterminate,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-radio:checked,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-checkbox:checked,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-checkbox:indeterminate {
  background-color: #FFF;
  border-color: transparent;
}
.uk-light .uk-radio:checked:focus,
.uk-light .uk-checkbox:checked:focus,
.uk-light .uk-checkbox:indeterminate:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-radio:checked:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:checked:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-radio:checked:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:checked:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-radio:checked:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:checked:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:indeterminate:focus,
.uk-card-primary.uk-card-body .uk-radio:checked:focus,
.uk-card-primary.uk-card-body .uk-checkbox:checked:focus,
.uk-card-primary.uk-card-body .uk-checkbox:indeterminate:focus,
.uk-card-primary > :not([class*='uk-card-media']) .uk-radio:checked:focus,
.uk-card-primary > :not([class*='uk-card-media']) .uk-checkbox:checked:focus,
.uk-card-primary > :not([class*='uk-card-media']) .uk-checkbox:indeterminate:focus,
.uk-overlay-primary .uk-radio:checked:focus,
.uk-overlay-primary .uk-checkbox:checked:focus,
.uk-overlay-primary .uk-checkbox:indeterminate:focus,
.uk-offcanvas-bar .uk-radio:checked:focus,
.uk-offcanvas-bar .uk-checkbox:checked:focus,
.uk-offcanvas-bar .uk-checkbox:indeterminate:focus,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-radio:checked:focus,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-checkbox:checked:focus,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-checkbox:indeterminate:focus {
  background-color: #ffffff;
}
.uk-light .uk-radio:checked,
.uk-section-primary:not(.uk-preserve-color) .uk-radio:checked,
.uk-tile-primary:not(.uk-preserve-color) .uk-radio:checked,
.uk-tile-secondary:not(.uk-preserve-color) .uk-radio:checked,
.uk-card-primary.uk-card-body .uk-radio:checked,
.uk-card-primary > :not([class*='uk-card-media']) .uk-radio:checked,
.uk-overlay-primary .uk-radio:checked,
.uk-offcanvas-bar .uk-radio:checked,
.uk-navbar-container:not(.uk-navbar-transparent) .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%232C2C2C%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E");
}
.uk-light .uk-checkbox:checked,
.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:checked,
.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:checked,
.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:checked,
.uk-card-primary.uk-card-body .uk-checkbox:checked,
.uk-card-primary > :not([class*='uk-card-media']) .uk-checkbox:checked,
.uk-overlay-primary .uk-checkbox:checked,
.uk-offcanvas-bar .uk-checkbox:checked,
.uk-navbar-container:not(.uk-navbar-transparent) .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%232C2C2C%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-light .uk-checkbox:indeterminate,
.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate,
.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate,
.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:indeterminate,
.uk-card-primary.uk-card-body .uk-checkbox:indeterminate,
.uk-card-primary > :not([class*='uk-card-media']) .uk-checkbox:indeterminate,
.uk-overlay-primary .uk-checkbox:indeterminate,
.uk-offcanvas-bar .uk-checkbox:indeterminate,
.uk-navbar-container:not(.uk-navbar-transparent) .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%232C2C2C%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E");
}
.uk-light .uk-form-label,
.uk-section-primary:not(.uk-preserve-color) .uk-form-label,
.uk-tile-primary:not(.uk-preserve-color) .uk-form-label,
.uk-tile-secondary:not(.uk-preserve-color) .uk-form-label,
.uk-card-primary.uk-card-body .uk-form-label,
.uk-card-primary > :not([class*='uk-card-media']) .uk-form-label,
.uk-overlay-primary .uk-form-label,
.uk-offcanvas-bar .uk-form-label,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-form-label {
  color: #FFF;
}
.uk-light .uk-form-icon,
.uk-section-primary:not(.uk-preserve-color) .uk-form-icon,
.uk-tile-primary:not(.uk-preserve-color) .uk-form-icon,
.uk-tile-secondary:not(.uk-preserve-color) .uk-form-icon,
.uk-card-primary.uk-card-body .uk-form-icon,
.uk-card-primary > :not([class*='uk-card-media']) .uk-form-icon,
.uk-overlay-primary .uk-form-icon,
.uk-offcanvas-bar .uk-form-icon,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-form-icon {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-form-icon:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-form-icon:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-form-icon:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-form-icon:hover,
.uk-card-primary.uk-card-body .uk-form-icon:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-form-icon:hover,
.uk-overlay-primary .uk-form-icon:hover,
.uk-offcanvas-bar .uk-form-icon:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-form-icon:hover {
  color: #ffffff;
}
.uk-light .uk-button-default,
.uk-section-primary:not(.uk-preserve-color) .uk-button-default,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-default,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-default,
.uk-card-primary.uk-card-body .uk-button-default,
.uk-card-primary > :not([class*='uk-card-media']) .uk-button-default,
.uk-overlay-primary .uk-button-default,
.uk-offcanvas-bar .uk-button-default,
.uk-notification-message-primary .uk-button-default,
.uk-notification-message-success .uk-button-default,
.uk-notification-message-warning .uk-button-default,
.uk-notification-message-danger .uk-button-default,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-button-default {
  background-color: #0E9B4A;
  color: #FFF;
}
.uk-light .uk-button-default:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-button-default:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-default:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-default:hover,
.uk-card-primary.uk-card-body .uk-button-default:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-button-default:hover,
.uk-overlay-primary .uk-button-default:hover,
.uk-offcanvas-bar .uk-button-default:hover,
.uk-notification-message-primary .uk-button-default:hover,
.uk-notification-message-success .uk-button-default:hover,
.uk-notification-message-warning .uk-button-default:hover,
.uk-notification-message-danger .uk-button-default:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-button-default:hover {
  background-color: #12B658;
  color: #FFFFFF;
}
.uk-light .uk-button-default:active,
.uk-light .uk-button-default.uk-active,
.uk-section-primary:not(.uk-preserve-color) .uk-button-default:active,
.uk-section-primary:not(.uk-preserve-color) .uk-button-default.uk-active,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-default:active,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-default.uk-active,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-default:active,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-default.uk-active,
.uk-card-primary.uk-card-body .uk-button-default:active,
.uk-card-primary.uk-card-body .uk-button-default.uk-active,
.uk-card-primary > :not([class*='uk-card-media']) .uk-button-default:active,
.uk-card-primary > :not([class*='uk-card-media']) .uk-button-default.uk-active,
.uk-overlay-primary .uk-button-default:active,
.uk-overlay-primary .uk-button-default.uk-active,
.uk-offcanvas-bar .uk-button-default:active,
.uk-offcanvas-bar .uk-button-default.uk-active,
.uk-notification-message-primary .uk-button-default:active,
.uk-notification-message-primary .uk-button-default.uk-active,
.uk-notification-message-success .uk-button-default:active,
.uk-notification-message-success .uk-button-default.uk-active,
.uk-notification-message-warning .uk-button-default:active,
.uk-notification-message-warning .uk-button-default.uk-active,
.uk-notification-message-danger .uk-button-default:active,
.uk-notification-message-danger .uk-button-default.uk-active,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-button-default:active,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-button-default.uk-active {
  background-color: #FFF;
  color: #0E9B4A;
}
.uk-light .uk-button-primary,
.uk-section-primary:not(.uk-preserve-color) .uk-button-primary,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-primary,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-primary,
.uk-card-primary.uk-card-body .uk-button-primary,
.uk-card-primary > :not([class*='uk-card-media']) .uk-button-primary,
.uk-overlay-primary .uk-button-primary,
.uk-offcanvas-bar .uk-button-primary,
.uk-notification-message-primary .uk-button-primary,
.uk-notification-message-success .uk-button-primary,
.uk-notification-message-warning .uk-button-primary,
.uk-notification-message-danger .uk-button-primary,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-button-primary {
  background-color: #0E9B4A;
  color: #FFF;
}
.uk-light .uk-button-primary:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-button-primary:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-primary:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-primary:hover,
.uk-card-primary.uk-card-body .uk-button-primary:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-button-primary:hover,
.uk-overlay-primary .uk-button-primary:hover,
.uk-offcanvas-bar .uk-button-primary:hover,
.uk-notification-message-primary .uk-button-primary:hover,
.uk-notification-message-success .uk-button-primary:hover,
.uk-notification-message-warning .uk-button-primary:hover,
.uk-notification-message-danger .uk-button-primary:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-button-primary:hover {
  background-color: #0c843f;
  color: #FFF;
}
.uk-light .uk-button-primary:active,
.uk-light .uk-button-primary.uk-active,
.uk-section-primary:not(.uk-preserve-color) .uk-button-primary:active,
.uk-section-primary:not(.uk-preserve-color) .uk-button-primary.uk-active,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-primary:active,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-primary.uk-active,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-primary:active,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-primary.uk-active,
.uk-card-primary.uk-card-body .uk-button-primary:active,
.uk-card-primary.uk-card-body .uk-button-primary.uk-active,
.uk-card-primary > :not([class*='uk-card-media']) .uk-button-primary:active,
.uk-card-primary > :not([class*='uk-card-media']) .uk-button-primary.uk-active,
.uk-overlay-primary .uk-button-primary:active,
.uk-overlay-primary .uk-button-primary.uk-active,
.uk-offcanvas-bar .uk-button-primary:active,
.uk-offcanvas-bar .uk-button-primary.uk-active,
.uk-notification-message-primary .uk-button-primary:active,
.uk-notification-message-primary .uk-button-primary.uk-active,
.uk-notification-message-success .uk-button-primary:active,
.uk-notification-message-success .uk-button-primary.uk-active,
.uk-notification-message-warning .uk-button-primary:active,
.uk-notification-message-warning .uk-button-primary.uk-active,
.uk-notification-message-danger .uk-button-primary:active,
.uk-notification-message-danger .uk-button-primary.uk-active,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-button-primary:active,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-button-primary.uk-active {
  background-color: #0a6c34;
  color: #FFF;
}
.uk-light .uk-button-secondary,
.uk-section-primary:not(.uk-preserve-color) .uk-button-secondary,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-secondary,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-secondary,
.uk-card-primary.uk-card-body .uk-button-secondary,
.uk-card-primary > :not([class*='uk-card-media']) .uk-button-secondary,
.uk-overlay-primary .uk-button-secondary,
.uk-offcanvas-bar .uk-button-secondary,
.uk-notification-message-primary .uk-button-secondary,
.uk-notification-message-success .uk-button-secondary,
.uk-notification-message-warning .uk-button-secondary,
.uk-notification-message-danger .uk-button-secondary,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-button-secondary {
  background-color: #FFF;
  color: #2C2C2C;
}
.uk-light .uk-button-secondary:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-button-secondary:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-secondary:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-secondary:hover,
.uk-card-primary.uk-card-body .uk-button-secondary:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-button-secondary:hover,
.uk-overlay-primary .uk-button-secondary:hover,
.uk-offcanvas-bar .uk-button-secondary:hover,
.uk-notification-message-primary .uk-button-secondary:hover,
.uk-notification-message-success .uk-button-secondary:hover,
.uk-notification-message-warning .uk-button-secondary:hover,
.uk-notification-message-danger .uk-button-secondary:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-button-secondary:hover {
  background-color: #f2f2f2;
  color: #2C2C2C;
}
.uk-light .uk-button-secondary:active,
.uk-light .uk-button-secondary.uk-active,
.uk-section-primary:not(.uk-preserve-color) .uk-button-secondary:active,
.uk-section-primary:not(.uk-preserve-color) .uk-button-secondary.uk-active,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-secondary:active,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-secondary.uk-active,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-secondary:active,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-secondary.uk-active,
.uk-card-primary.uk-card-body .uk-button-secondary:active,
.uk-card-primary.uk-card-body .uk-button-secondary.uk-active,
.uk-card-primary > :not([class*='uk-card-media']) .uk-button-secondary:active,
.uk-card-primary > :not([class*='uk-card-media']) .uk-button-secondary.uk-active,
.uk-overlay-primary .uk-button-secondary:active,
.uk-overlay-primary .uk-button-secondary.uk-active,
.uk-offcanvas-bar .uk-button-secondary:active,
.uk-offcanvas-bar .uk-button-secondary.uk-active,
.uk-notification-message-primary .uk-button-secondary:active,
.uk-notification-message-primary .uk-button-secondary.uk-active,
.uk-notification-message-success .uk-button-secondary:active,
.uk-notification-message-success .uk-button-secondary.uk-active,
.uk-notification-message-warning .uk-button-secondary:active,
.uk-notification-message-warning .uk-button-secondary.uk-active,
.uk-notification-message-danger .uk-button-secondary:active,
.uk-notification-message-danger .uk-button-secondary.uk-active,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-button-secondary:active,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-button-secondary.uk-active {
  background-color: #e6e6e6;
  color: #2C2C2C;
}
.uk-light .uk-button-text,
.uk-section-primary:not(.uk-preserve-color) .uk-button-text,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-text,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-text,
.uk-card-primary.uk-card-body .uk-button-text,
.uk-card-primary > :not([class*='uk-card-media']) .uk-button-text,
.uk-overlay-primary .uk-button-text,
.uk-offcanvas-bar .uk-button-text,
.uk-notification-message-primary .uk-button-text,
.uk-notification-message-success .uk-button-text,
.uk-notification-message-warning .uk-button-text,
.uk-notification-message-danger .uk-button-text,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-button-text {
  color: #FFF;
}
.uk-light .uk-button-text:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-button-text:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-text:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-text:hover,
.uk-card-primary.uk-card-body .uk-button-text:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-button-text:hover,
.uk-overlay-primary .uk-button-text:hover,
.uk-offcanvas-bar .uk-button-text:hover,
.uk-notification-message-primary .uk-button-text:hover,
.uk-notification-message-success .uk-button-text:hover,
.uk-notification-message-warning .uk-button-text:hover,
.uk-notification-message-danger .uk-button-text:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-button-text:hover {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-button-text:disabled,
.uk-section-primary:not(.uk-preserve-color) .uk-button-text:disabled,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-text:disabled,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-text:disabled,
.uk-card-primary.uk-card-body .uk-button-text:disabled,
.uk-card-primary > :not([class*='uk-card-media']) .uk-button-text:disabled,
.uk-overlay-primary .uk-button-text:disabled,
.uk-offcanvas-bar .uk-button-text:disabled,
.uk-notification-message-primary .uk-button-text:disabled,
.uk-notification-message-success .uk-button-text:disabled,
.uk-notification-message-warning .uk-button-text:disabled,
.uk-notification-message-danger .uk-button-text:disabled,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-button-text:disabled {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-button-link,
.uk-section-primary:not(.uk-preserve-color) .uk-button-link,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-link,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-link,
.uk-card-primary.uk-card-body .uk-button-link,
.uk-card-primary > :not([class*='uk-card-media']) .uk-button-link,
.uk-overlay-primary .uk-button-link,
.uk-offcanvas-bar .uk-button-link,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-button-link {
  color: #FFF;
}
.uk-light .uk-button-link:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-button-link:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-button-link:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-button-link:hover,
.uk-card-primary.uk-card-body .uk-button-link:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-button-link:hover,
.uk-overlay-primary .uk-button-link:hover,
.uk-offcanvas-bar .uk-button-link:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-button-link:hover {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light.uk-card-badge,
.uk-section-primary:not(.uk-preserve-color).uk-card-badge,
.uk-tile-primary:not(.uk-preserve-color).uk-card-badge,
.uk-tile-secondary:not(.uk-preserve-color).uk-card-badge,
.uk-card-primary.uk-card-body.uk-card-badge,
.uk-card-primary > :not([class*='uk-card-media']).uk-card-badge,
.uk-overlay-primary.uk-card-badge,
.uk-offcanvas-bar.uk-card-badge,
.uk-navbar-container:not(.uk-navbar-transparent).uk-card-badge {
  background-color: #FFF;
  color: #2C2C2C;
}
.uk-light .uk-close,
.uk-section-primary:not(.uk-preserve-color) .uk-close,
.uk-tile-primary:not(.uk-preserve-color) .uk-close,
.uk-tile-secondary:not(.uk-preserve-color) .uk-close,
.uk-card-primary.uk-card-body .uk-close,
.uk-card-primary > :not([class*='uk-card-media']) .uk-close,
.uk-overlay-primary .uk-close,
.uk-offcanvas-bar .uk-close,
.uk-notification-message-primary .uk-close,
.uk-notification-message-success .uk-close,
.uk-notification-message-warning .uk-close,
.uk-notification-message-danger .uk-close,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-close {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-close:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-close:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-close:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-close:hover,
.uk-card-primary.uk-card-body .uk-close:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-close:hover,
.uk-overlay-primary .uk-close:hover,
.uk-offcanvas-bar .uk-close:hover,
.uk-notification-message-primary .uk-close:hover,
.uk-notification-message-success .uk-close:hover,
.uk-notification-message-warning .uk-close:hover,
.uk-notification-message-danger .uk-close:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-close:hover {
  color: #ffffff;
}
.uk-light .uk-totop,
.uk-section-primary:not(.uk-preserve-color) .uk-totop,
.uk-tile-primary:not(.uk-preserve-color) .uk-totop,
.uk-tile-secondary:not(.uk-preserve-color) .uk-totop,
.uk-card-primary.uk-card-body .uk-totop,
.uk-card-primary > :not([class*='uk-card-media']) .uk-totop,
.uk-overlay-primary .uk-totop,
.uk-offcanvas-bar .uk-totop,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-totop {
  color: rgba(255, 255, 255, 0.5);
  background-color: transparent;
  border-color: transparent;
}
.uk-light .uk-totop:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-totop:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-totop:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-totop:hover,
.uk-card-primary.uk-card-body .uk-totop:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-totop:hover,
.uk-overlay-primary .uk-totop:hover,
.uk-offcanvas-bar .uk-totop:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-totop:hover {
  color: #ffffff;
  background-color: transparent;
  border-color: transparent;
}
.uk-light .uk-totop:active,
.uk-section-primary:not(.uk-preserve-color) .uk-totop:active,
.uk-tile-primary:not(.uk-preserve-color) .uk-totop:active,
.uk-tile-secondary:not(.uk-preserve-color) .uk-totop:active,
.uk-card-primary.uk-card-body .uk-totop:active,
.uk-card-primary > :not([class*='uk-card-media']) .uk-totop:active,
.uk-overlay-primary .uk-totop:active,
.uk-offcanvas-bar .uk-totop:active,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-totop:active {
  color: #FFF;
  background-color: transparent;
  border-color: transparent;
}
.uk-light .uk-marker,
.uk-section-primary:not(.uk-preserve-color) .uk-marker,
.uk-tile-primary:not(.uk-preserve-color) .uk-marker,
.uk-tile-secondary:not(.uk-preserve-color) .uk-marker,
.uk-card-primary.uk-card-body .uk-marker,
.uk-card-primary > :not([class*='uk-card-media']) .uk-marker,
.uk-overlay-primary .uk-marker,
.uk-offcanvas-bar .uk-marker,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-marker {
  background: #F8F8F8;
  color: #2C2C2C;
  border-color: transparent;
}
.uk-light .uk-marker:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-marker:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-marker:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-marker:hover,
.uk-card-primary.uk-card-body .uk-marker:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-marker:hover,
.uk-overlay-primary .uk-marker:hover,
.uk-offcanvas-bar .uk-marker:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-marker:hover {
  color: #2C2C2C;
  border-color: transparent;
}
.uk-light .uk-badge,
.uk-section-primary:not(.uk-preserve-color) .uk-badge,
.uk-tile-primary:not(.uk-preserve-color) .uk-badge,
.uk-tile-secondary:not(.uk-preserve-color) .uk-badge,
.uk-card-primary.uk-card-body .uk-badge,
.uk-card-primary > :not([class*='uk-card-media']) .uk-badge,
.uk-overlay-primary .uk-badge,
.uk-offcanvas-bar .uk-badge,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-badge {
  background-color: #FFF;
  color: #2C2C2C !important;
}
.uk-light .uk-label,
.uk-section-primary:not(.uk-preserve-color) .uk-label,
.uk-tile-primary:not(.uk-preserve-color) .uk-label,
.uk-tile-secondary:not(.uk-preserve-color) .uk-label,
.uk-card-primary.uk-card-body .uk-label,
.uk-card-primary > :not([class*='uk-card-media']) .uk-label,
.uk-overlay-primary .uk-label,
.uk-offcanvas-bar .uk-label,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-label {
  background-color: #FFF;
  color: #2C2C2C;
}
.uk-light .uk-article-title,
.uk-section-primary:not(.uk-preserve-color) .uk-article-title,
.uk-tile-primary:not(.uk-preserve-color) .uk-article-title,
.uk-tile-secondary:not(.uk-preserve-color) .uk-article-title,
.uk-card-primary.uk-card-body .uk-article-title,
.uk-card-primary > :not([class*='uk-card-media']) .uk-article-title,
.uk-overlay-primary .uk-article-title,
.uk-offcanvas-bar .uk-article-title,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-article-title {
  color: #FFF;
}
.uk-light .uk-article-meta,
.uk-section-primary:not(.uk-preserve-color) .uk-article-meta,
.uk-tile-primary:not(.uk-preserve-color) .uk-article-meta,
.uk-tile-secondary:not(.uk-preserve-color) .uk-article-meta,
.uk-card-primary.uk-card-body .uk-article-meta,
.uk-card-primary > :not([class*='uk-card-media']) .uk-article-meta,
.uk-overlay-primary .uk-article-meta,
.uk-offcanvas-bar .uk-article-meta,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-article-meta {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-search-input,
.uk-section-primary:not(.uk-preserve-color) .uk-search-input,
.uk-tile-primary:not(.uk-preserve-color) .uk-search-input,
.uk-tile-secondary:not(.uk-preserve-color) .uk-search-input,
.uk-card-primary.uk-card-body .uk-search-input,
.uk-card-primary > :not([class*='uk-card-media']) .uk-search-input,
.uk-overlay-primary .uk-search-input,
.uk-offcanvas-bar .uk-search-input,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-search-input {
  color: #ffffff;
}
.uk-light .uk-search-input::placeholder,
.uk-section-primary:not(.uk-preserve-color) .uk-search-input::placeholder,
.uk-tile-primary:not(.uk-preserve-color) .uk-search-input::placeholder,
.uk-tile-secondary:not(.uk-preserve-color) .uk-search-input::placeholder,
.uk-card-primary.uk-card-body .uk-search-input::placeholder,
.uk-card-primary > :not([class*='uk-card-media']) .uk-search-input::placeholder,
.uk-overlay-primary .uk-search-input::placeholder,
.uk-offcanvas-bar .uk-search-input::placeholder,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-search-input::placeholder {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-search .uk-search-icon,
.uk-section-primary:not(.uk-preserve-color) .uk-search .uk-search-icon,
.uk-tile-primary:not(.uk-preserve-color) .uk-search .uk-search-icon,
.uk-tile-secondary:not(.uk-preserve-color) .uk-search .uk-search-icon,
.uk-card-primary.uk-card-body .uk-search .uk-search-icon,
.uk-card-primary > :not([class*='uk-card-media']) .uk-search .uk-search-icon,
.uk-overlay-primary .uk-search .uk-search-icon,
.uk-offcanvas-bar .uk-search .uk-search-icon,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-search .uk-search-icon {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-search .uk-search-icon:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-search .uk-search-icon:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-search .uk-search-icon:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-search .uk-search-icon:hover,
.uk-card-primary.uk-card-body .uk-search .uk-search-icon:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-search .uk-search-icon:hover,
.uk-overlay-primary .uk-search .uk-search-icon:hover,
.uk-offcanvas-bar .uk-search .uk-search-icon:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-search .uk-search-icon:hover {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-search-default .uk-search-input,
.uk-section-primary:not(.uk-preserve-color) .uk-search-default .uk-search-input,
.uk-tile-primary:not(.uk-preserve-color) .uk-search-default .uk-search-input,
.uk-tile-secondary:not(.uk-preserve-color) .uk-search-default .uk-search-input,
.uk-card-primary.uk-card-body .uk-search-default .uk-search-input,
.uk-card-primary > :not([class*='uk-card-media']) .uk-search-default .uk-search-input,
.uk-overlay-primary .uk-search-default .uk-search-input,
.uk-offcanvas-bar .uk-search-default .uk-search-input,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-search-default .uk-search-input {
  background-color: rgba(255, 255, 255, 0.1);
}
.uk-light .uk-search-default .uk-search-input:focus,
.uk-section-primary:not(.uk-preserve-color) .uk-search-default .uk-search-input:focus,
.uk-tile-primary:not(.uk-preserve-color) .uk-search-default .uk-search-input:focus,
.uk-tile-secondary:not(.uk-preserve-color) .uk-search-default .uk-search-input:focus,
.uk-card-primary.uk-card-body .uk-search-default .uk-search-input:focus,
.uk-card-primary > :not([class*='uk-card-media']) .uk-search-default .uk-search-input:focus,
.uk-overlay-primary .uk-search-default .uk-search-input:focus,
.uk-offcanvas-bar .uk-search-default .uk-search-input:focus,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-search-default .uk-search-input:focus {
  background-color: rgba(255, 255, 255, 0.15);
}
.uk-light .uk-search-navbar .uk-search-input,
.uk-section-primary:not(.uk-preserve-color) .uk-search-navbar .uk-search-input,
.uk-tile-primary:not(.uk-preserve-color) .uk-search-navbar .uk-search-input,
.uk-tile-secondary:not(.uk-preserve-color) .uk-search-navbar .uk-search-input,
.uk-card-primary.uk-card-body .uk-search-navbar .uk-search-input,
.uk-card-primary > :not([class*='uk-card-media']) .uk-search-navbar .uk-search-input,
.uk-overlay-primary .uk-search-navbar .uk-search-input,
.uk-offcanvas-bar .uk-search-navbar .uk-search-input,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-search-navbar .uk-search-input {
  background-color: transparent;
}
.uk-light .uk-search-large .uk-search-input,
.uk-section-primary:not(.uk-preserve-color) .uk-search-large .uk-search-input,
.uk-tile-primary:not(.uk-preserve-color) .uk-search-large .uk-search-input,
.uk-tile-secondary:not(.uk-preserve-color) .uk-search-large .uk-search-input,
.uk-card-primary.uk-card-body .uk-search-large .uk-search-input,
.uk-card-primary > :not([class*='uk-card-media']) .uk-search-large .uk-search-input,
.uk-overlay-primary .uk-search-large .uk-search-input,
.uk-offcanvas-bar .uk-search-large .uk-search-input,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-search-large .uk-search-input {
  background-color: transparent;
}
.uk-light .uk-search-toggle,
.uk-section-primary:not(.uk-preserve-color) .uk-search-toggle,
.uk-tile-primary:not(.uk-preserve-color) .uk-search-toggle,
.uk-tile-secondary:not(.uk-preserve-color) .uk-search-toggle,
.uk-card-primary.uk-card-body .uk-search-toggle,
.uk-card-primary > :not([class*='uk-card-media']) .uk-search-toggle,
.uk-overlay-primary .uk-search-toggle,
.uk-offcanvas-bar .uk-search-toggle,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-search-toggle {
  color: #FFF;
}
.uk-light .uk-search-toggle:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-search-toggle:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-search-toggle:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-search-toggle:hover,
.uk-card-primary.uk-card-body .uk-search-toggle:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-search-toggle:hover,
.uk-overlay-primary .uk-search-toggle:hover,
.uk-offcanvas-bar .uk-search-toggle:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-search-toggle:hover {
  color: #ffffff;
}
.uk-light .uk-accordion > :nth-child(n+2),
.uk-section-primary:not(.uk-preserve-color) .uk-accordion > :nth-child(n+2),
.uk-tile-primary:not(.uk-preserve-color) .uk-accordion > :nth-child(n+2),
.uk-tile-secondary:not(.uk-preserve-color) .uk-accordion > :nth-child(n+2),
.uk-card-primary.uk-card-body .uk-accordion > :nth-child(n+2),
.uk-card-primary > :not([class*='uk-card-media']) .uk-accordion > :nth-child(n+2),
.uk-overlay-primary .uk-accordion > :nth-child(n+2),
.uk-offcanvas-bar .uk-accordion > :nth-child(n+2),
.uk-navbar-container:not(.uk-navbar-transparent) .uk-accordion > :nth-child(n+2) {
  border-top-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-accordion-title,
.uk-section-primary:not(.uk-preserve-color) .uk-accordion-title,
.uk-tile-primary:not(.uk-preserve-color) .uk-accordion-title,
.uk-tile-secondary:not(.uk-preserve-color) .uk-accordion-title,
.uk-card-primary.uk-card-body .uk-accordion-title,
.uk-card-primary > :not([class*='uk-card-media']) .uk-accordion-title,
.uk-overlay-primary .uk-accordion-title,
.uk-offcanvas-bar .uk-accordion-title,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-accordion-title {
  color: #FFF;
  background-color: transparent;
}
.uk-light .uk-accordion-title:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-accordion-title:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-accordion-title:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-accordion-title:hover,
.uk-card-primary.uk-card-body .uk-accordion-title:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-accordion-title:hover,
.uk-overlay-primary .uk-accordion-title:hover,
.uk-offcanvas-bar .uk-accordion-title:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-accordion-title:hover {
  color: #ffffff;
}
.uk-light .uk-leader-fill::after,
.uk-section-primary:not(.uk-preserve-color) .uk-leader-fill::after,
.uk-tile-primary:not(.uk-preserve-color) .uk-leader-fill::after,
.uk-tile-secondary:not(.uk-preserve-color) .uk-leader-fill::after,
.uk-card-primary.uk-card-body .uk-leader-fill::after,
.uk-card-primary > :not([class*='uk-card-media']) .uk-leader-fill::after,
.uk-overlay-primary .uk-leader-fill::after,
.uk-offcanvas-bar .uk-leader-fill::after,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-leader-fill::after {
  color: #ffffff;
}
.uk-light .uk-countdown-number,
.uk-light .uk-countdown-separator,
.uk-section-primary:not(.uk-preserve-color) .uk-countdown-number,
.uk-section-primary:not(.uk-preserve-color) .uk-countdown-separator,
.uk-tile-primary:not(.uk-preserve-color) .uk-countdown-number,
.uk-tile-primary:not(.uk-preserve-color) .uk-countdown-separator,
.uk-tile-secondary:not(.uk-preserve-color) .uk-countdown-number,
.uk-tile-secondary:not(.uk-preserve-color) .uk-countdown-separator,
.uk-card-primary.uk-card-body .uk-countdown-number,
.uk-card-primary.uk-card-body .uk-countdown-separator,
.uk-card-primary > :not([class*='uk-card-media']) .uk-countdown-number,
.uk-card-primary > :not([class*='uk-card-media']) .uk-countdown-separator,
.uk-overlay-primary .uk-countdown-number,
.uk-overlay-primary .uk-countdown-separator,
.uk-offcanvas-bar .uk-countdown-number,
.uk-offcanvas-bar .uk-countdown-separator,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-countdown-number,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-countdown-separator {
  color: #FFF;
}
.uk-light .uk-countdown-label,
.uk-section-primary:not(.uk-preserve-color) .uk-countdown-label,
.uk-tile-primary:not(.uk-preserve-color) .uk-countdown-label,
.uk-tile-secondary:not(.uk-preserve-color) .uk-countdown-label,
.uk-card-primary.uk-card-body .uk-countdown-label,
.uk-card-primary > :not([class*='uk-card-media']) .uk-countdown-label,
.uk-overlay-primary .uk-countdown-label,
.uk-offcanvas-bar .uk-countdown-label,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-countdown-label {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-grid-divider > :not(.uk-first-column)::before,
.uk-section-primary:not(.uk-preserve-color) .uk-grid-divider > :not(.uk-first-column)::before,
.uk-tile-primary:not(.uk-preserve-color) .uk-grid-divider > :not(.uk-first-column)::before,
.uk-tile-secondary:not(.uk-preserve-color) .uk-grid-divider > :not(.uk-first-column)::before,
.uk-card-primary.uk-card-body .uk-grid-divider > :not(.uk-first-column)::before,
.uk-card-primary > :not([class*='uk-card-media']) .uk-grid-divider > :not(.uk-first-column)::before,
.uk-overlay-primary .uk-grid-divider > :not(.uk-first-column)::before,
.uk-offcanvas-bar .uk-grid-divider > :not(.uk-first-column)::before,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-grid-divider > :not(.uk-first-column)::before {
  border-left-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before,
.uk-section-primary:not(.uk-preserve-color) .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before,
.uk-tile-primary:not(.uk-preserve-color) .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before,
.uk-tile-secondary:not(.uk-preserve-color) .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before,
.uk-card-primary.uk-card-body .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before,
.uk-card-primary > :not([class*='uk-card-media']) .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before,
.uk-overlay-primary .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before,
.uk-offcanvas-bar .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-grid-divider.uk-grid-stack > .uk-grid-margin::before {
  border-top-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-nav-default > li > a,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-default > li > a,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default > li > a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default > li > a,
.uk-card-primary.uk-card-body .uk-nav-default > li > a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-default > li > a,
.uk-overlay-primary .uk-nav-default > li > a,
.uk-offcanvas-bar .uk-nav-default > li > a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-default > li > a {
  color: rgba(255, 255, 255, 0.8);
}
.uk-light .uk-nav-default > li > a:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-default > li > a:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default > li > a:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default > li > a:hover,
.uk-card-primary.uk-card-body .uk-nav-default > li > a:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-default > li > a:hover,
.uk-overlay-primary .uk-nav-default > li > a:hover,
.uk-offcanvas-bar .uk-nav-default > li > a:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-default > li > a:hover {
  color: #FFF;
  background-color: transparent;
}
.uk-light .uk-nav-default > li.uk-active > a,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-default > li.uk-active > a,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default > li.uk-active > a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default > li.uk-active > a,
.uk-card-primary.uk-card-body .uk-nav-default > li.uk-active > a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-default > li.uk-active > a,
.uk-overlay-primary .uk-nav-default > li.uk-active > a,
.uk-offcanvas-bar .uk-nav-default > li.uk-active > a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-default > li.uk-active > a {
  color: #FFF;
  background-color: transparent;
}
.uk-light .uk-nav-default .uk-nav-header,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-header,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-header,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-header,
.uk-card-primary.uk-card-body .uk-nav-default .uk-nav-header,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-default .uk-nav-header,
.uk-overlay-primary .uk-nav-default .uk-nav-header,
.uk-offcanvas-bar .uk-nav-default .uk-nav-header,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-default .uk-nav-header {
  color: #FFF;
}
.uk-light .uk-nav-default .uk-nav-divider,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-divider,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-divider,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-divider,
.uk-card-primary.uk-card-body .uk-nav-default .uk-nav-divider,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-default .uk-nav-divider,
.uk-overlay-primary .uk-nav-default .uk-nav-divider,
.uk-offcanvas-bar .uk-nav-default .uk-nav-divider,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-default .uk-nav-divider {
  border-top-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-nav-default .uk-nav-sub a,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a,
.uk-card-primary.uk-card-body .uk-nav-default .uk-nav-sub a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-default .uk-nav-sub a,
.uk-overlay-primary .uk-nav-default .uk-nav-sub a,
.uk-offcanvas-bar .uk-nav-default .uk-nav-sub a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-default .uk-nav-sub a {
  color: rgba(255, 255, 255, 0.77);
}
.uk-light .uk-nav-default .uk-nav-sub a:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:hover,
.uk-card-primary.uk-card-body .uk-nav-default .uk-nav-sub a:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-default .uk-nav-sub a:hover,
.uk-overlay-primary .uk-nav-default .uk-nav-sub a:hover,
.uk-offcanvas-bar .uk-nav-default .uk-nav-sub a:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-default .uk-nav-sub a:hover {
  color: #FFF;
}
.uk-light .uk-nav-default .uk-nav-sub li.uk-active > a,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub li.uk-active > a,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub li.uk-active > a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub li.uk-active > a,
.uk-card-primary.uk-card-body .uk-nav-default .uk-nav-sub li.uk-active > a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-default .uk-nav-sub li.uk-active > a,
.uk-overlay-primary .uk-nav-default .uk-nav-sub li.uk-active > a,
.uk-offcanvas-bar .uk-nav-default .uk-nav-sub li.uk-active > a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-default .uk-nav-sub li.uk-active > a {
  color: #FFF;
}
.uk-light .uk-nav-primary > li > a,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary > li > a,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary > li > a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary > li > a,
.uk-card-primary.uk-card-body .uk-nav-primary > li > a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-primary > li > a,
.uk-overlay-primary .uk-nav-primary > li > a,
.uk-offcanvas-bar .uk-nav-primary > li > a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-primary > li > a {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-nav-primary > li > a:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary > li > a:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary > li > a:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary > li > a:hover,
.uk-card-primary.uk-card-body .uk-nav-primary > li > a:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-primary > li > a:hover,
.uk-overlay-primary .uk-nav-primary > li > a:hover,
.uk-offcanvas-bar .uk-nav-primary > li > a:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-primary > li > a:hover {
  color: #FFF;
}
.uk-light .uk-nav-primary > li.uk-active > a,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary > li.uk-active > a,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary > li.uk-active > a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary > li.uk-active > a,
.uk-card-primary.uk-card-body .uk-nav-primary > li.uk-active > a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-primary > li.uk-active > a,
.uk-overlay-primary .uk-nav-primary > li.uk-active > a,
.uk-offcanvas-bar .uk-nav-primary > li.uk-active > a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-primary > li.uk-active > a {
  color: #FFF;
}
.uk-light .uk-nav-primary .uk-nav-header,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-header,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-header,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-header,
.uk-card-primary.uk-card-body .uk-nav-primary .uk-nav-header,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-primary .uk-nav-header,
.uk-overlay-primary .uk-nav-primary .uk-nav-header,
.uk-offcanvas-bar .uk-nav-primary .uk-nav-header,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-primary .uk-nav-header {
  color: #FFF;
}
.uk-light .uk-nav-primary .uk-nav-divider,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-divider,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-divider,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-divider,
.uk-card-primary.uk-card-body .uk-nav-primary .uk-nav-divider,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-primary .uk-nav-divider,
.uk-overlay-primary .uk-nav-primary .uk-nav-divider,
.uk-offcanvas-bar .uk-nav-primary .uk-nav-divider,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-primary .uk-nav-divider {
  border-top-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-nav-primary .uk-nav-sub a,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a,
.uk-card-primary.uk-card-body .uk-nav-primary .uk-nav-sub a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-primary .uk-nav-sub a,
.uk-overlay-primary .uk-nav-primary .uk-nav-sub a,
.uk-offcanvas-bar .uk-nav-primary .uk-nav-sub a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-primary .uk-nav-sub a {
  color: rgba(255, 255, 255, 0.3);
}
.uk-light .uk-nav-primary .uk-nav-sub a:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:hover,
.uk-card-primary.uk-card-body .uk-nav-primary .uk-nav-sub a:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-primary .uk-nav-sub a:hover,
.uk-overlay-primary .uk-nav-primary .uk-nav-sub a:hover,
.uk-offcanvas-bar .uk-nav-primary .uk-nav-sub a:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-primary .uk-nav-sub a:hover {
  color: #FFF;
}
.uk-light .uk-nav-primary .uk-nav-sub li.uk-active > a,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub li.uk-active > a,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub li.uk-active > a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub li.uk-active > a,
.uk-card-primary.uk-card-body .uk-nav-primary .uk-nav-sub li.uk-active > a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-primary .uk-nav-sub li.uk-active > a,
.uk-overlay-primary .uk-nav-primary .uk-nav-sub li.uk-active > a,
.uk-offcanvas-bar .uk-nav-primary .uk-nav-sub li.uk-active > a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-primary .uk-nav-sub li.uk-active > a {
  color: #FFF;
}
.uk-light .uk-nav-secondary > li > a,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-secondary > li > a,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-secondary > li > a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-secondary > li > a,
.uk-card-primary.uk-card-body .uk-nav-secondary > li > a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-secondary > li > a,
.uk-overlay-primary .uk-nav-secondary > li > a,
.uk-offcanvas-bar .uk-nav-secondary > li > a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-secondary > li > a {
  color: #FFF;
}
.uk-light .uk-nav-secondary > li > a:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-secondary > li > a:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-secondary > li > a:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-secondary > li > a:hover,
.uk-card-primary.uk-card-body .uk-nav-secondary > li > a:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-secondary > li > a:hover,
.uk-overlay-primary .uk-nav-secondary > li > a:hover,
.uk-offcanvas-bar .uk-nav-secondary > li > a:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-secondary > li > a:hover {
  color: #FFF;
}
.uk-light .uk-nav-secondary > li.uk-active > a,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-secondary > li.uk-active > a,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-secondary > li.uk-active > a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-secondary > li.uk-active > a,
.uk-card-primary.uk-card-body .uk-nav-secondary > li.uk-active > a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-secondary > li.uk-active > a,
.uk-overlay-primary .uk-nav-secondary > li.uk-active > a,
.uk-offcanvas-bar .uk-nav-secondary > li.uk-active > a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-secondary > li.uk-active > a {
  color: #FFF;
}
.uk-light .uk-nav-secondary .uk-nav-subtitle,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-secondary .uk-nav-subtitle,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-secondary .uk-nav-subtitle,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-secondary .uk-nav-subtitle,
.uk-card-primary.uk-card-body .uk-nav-secondary .uk-nav-subtitle,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-secondary .uk-nav-subtitle,
.uk-overlay-primary .uk-nav-secondary .uk-nav-subtitle,
.uk-offcanvas-bar .uk-nav-secondary .uk-nav-subtitle,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-secondary .uk-nav-subtitle {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-nav-secondary > li > a:hover .uk-nav-subtitle,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-secondary > li > a:hover .uk-nav-subtitle,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-secondary > li > a:hover .uk-nav-subtitle,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-secondary > li > a:hover .uk-nav-subtitle,
.uk-card-primary.uk-card-body .uk-nav-secondary > li > a:hover .uk-nav-subtitle,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-secondary > li > a:hover .uk-nav-subtitle,
.uk-overlay-primary .uk-nav-secondary > li > a:hover .uk-nav-subtitle,
.uk-offcanvas-bar .uk-nav-secondary > li > a:hover .uk-nav-subtitle,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-secondary > li > a:hover .uk-nav-subtitle {
  color: #ffffff;
}
.uk-light .uk-nav-secondary > li.uk-active > a .uk-nav-subtitle,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-secondary > li.uk-active > a .uk-nav-subtitle,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-secondary > li.uk-active > a .uk-nav-subtitle,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-secondary > li.uk-active > a .uk-nav-subtitle,
.uk-card-primary.uk-card-body .uk-nav-secondary > li.uk-active > a .uk-nav-subtitle,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-secondary > li.uk-active > a .uk-nav-subtitle,
.uk-overlay-primary .uk-nav-secondary > li.uk-active > a .uk-nav-subtitle,
.uk-offcanvas-bar .uk-nav-secondary > li.uk-active > a .uk-nav-subtitle,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-secondary > li.uk-active > a .uk-nav-subtitle {
  color: #FFF;
}
.uk-light .uk-nav-secondary .uk-nav-header,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-secondary .uk-nav-header,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-secondary .uk-nav-header,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-secondary .uk-nav-header,
.uk-card-primary.uk-card-body .uk-nav-secondary .uk-nav-header,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-secondary .uk-nav-header,
.uk-overlay-primary .uk-nav-secondary .uk-nav-header,
.uk-offcanvas-bar .uk-nav-secondary .uk-nav-header,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-secondary .uk-nav-header {
  color: #FFF;
}
.uk-light .uk-nav-secondary .uk-nav-divider,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-secondary .uk-nav-divider,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-secondary .uk-nav-divider,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-secondary .uk-nav-divider,
.uk-card-primary.uk-card-body .uk-nav-secondary .uk-nav-divider,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-secondary .uk-nav-divider,
.uk-overlay-primary .uk-nav-secondary .uk-nav-divider,
.uk-offcanvas-bar .uk-nav-secondary .uk-nav-divider,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-secondary .uk-nav-divider {
  border-top-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-nav-secondary .uk-nav-sub a,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-secondary .uk-nav-sub a,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-secondary .uk-nav-sub a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-secondary .uk-nav-sub a,
.uk-card-primary.uk-card-body .uk-nav-secondary .uk-nav-sub a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-secondary .uk-nav-sub a,
.uk-overlay-primary .uk-nav-secondary .uk-nav-sub a,
.uk-offcanvas-bar .uk-nav-secondary .uk-nav-sub a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-secondary .uk-nav-sub a {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-nav-secondary .uk-nav-sub a:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-secondary .uk-nav-sub a:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-secondary .uk-nav-sub a:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-secondary .uk-nav-sub a:hover,
.uk-card-primary.uk-card-body .uk-nav-secondary .uk-nav-sub a:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-secondary .uk-nav-sub a:hover,
.uk-overlay-primary .uk-nav-secondary .uk-nav-sub a:hover,
.uk-offcanvas-bar .uk-nav-secondary .uk-nav-sub a:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-secondary .uk-nav-sub a:hover {
  color: #ffffff;
}
.uk-light .uk-nav-secondary .uk-nav-sub li.uk-active > a,
.uk-section-primary:not(.uk-preserve-color) .uk-nav-secondary .uk-nav-sub li.uk-active > a,
.uk-tile-primary:not(.uk-preserve-color) .uk-nav-secondary .uk-nav-sub li.uk-active > a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-secondary .uk-nav-sub li.uk-active > a,
.uk-card-primary.uk-card-body .uk-nav-secondary .uk-nav-sub li.uk-active > a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav-secondary .uk-nav-sub li.uk-active > a,
.uk-overlay-primary .uk-nav-secondary .uk-nav-sub li.uk-active > a,
.uk-offcanvas-bar .uk-nav-secondary .uk-nav-sub li.uk-active > a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav-secondary .uk-nav-sub li.uk-active > a {
  color: #FFF;
}
.uk-light .uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider),
.uk-section-primary:not(.uk-preserve-color) .uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider),
.uk-tile-primary:not(.uk-preserve-color) .uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider),
.uk-tile-secondary:not(.uk-preserve-color) .uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider),
.uk-card-primary.uk-card-body .uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider),
.uk-card-primary > :not([class*='uk-card-media']) .uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider),
.uk-overlay-primary .uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider),
.uk-offcanvas-bar .uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider),
.uk-navbar-container:not(.uk-navbar-transparent) .uk-nav.uk-nav-divider > :not(.uk-nav-divider) + :not(.uk-nav-header, .uk-nav-divider) {
  border-top-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-navbar-nav > li > a,
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav > li > a,
.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-nav > li > a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-nav > li > a,
.uk-card-primary.uk-card-body .uk-navbar-nav > li > a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-navbar-nav > li > a,
.uk-overlay-primary .uk-navbar-nav > li > a,
.uk-offcanvas-bar .uk-navbar-nav > li > a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-nav > li > a {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-navbar-nav > li:hover > a,
.uk-light .uk-navbar-nav > li > a[aria-expanded="true"],
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav > li:hover > a,
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav > li > a[aria-expanded="true"],
.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-nav > li:hover > a,
.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-nav > li > a[aria-expanded="true"],
.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-nav > li:hover > a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-nav > li > a[aria-expanded="true"],
.uk-card-primary.uk-card-body .uk-navbar-nav > li:hover > a,
.uk-card-primary.uk-card-body .uk-navbar-nav > li > a[aria-expanded="true"],
.uk-card-primary > :not([class*='uk-card-media']) .uk-navbar-nav > li:hover > a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-navbar-nav > li > a[aria-expanded="true"],
.uk-overlay-primary .uk-navbar-nav > li:hover > a,
.uk-overlay-primary .uk-navbar-nav > li > a[aria-expanded="true"],
.uk-offcanvas-bar .uk-navbar-nav > li:hover > a,
.uk-offcanvas-bar .uk-navbar-nav > li > a[aria-expanded="true"],
.uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-nav > li:hover > a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-nav > li > a[aria-expanded="true"] {
  color: #FFF;
}
.uk-light .uk-navbar-nav > li > a:active,
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav > li > a:active,
.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-nav > li > a:active,
.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-nav > li > a:active,
.uk-card-primary.uk-card-body .uk-navbar-nav > li > a:active,
.uk-card-primary > :not([class*='uk-card-media']) .uk-navbar-nav > li > a:active,
.uk-overlay-primary .uk-navbar-nav > li > a:active,
.uk-offcanvas-bar .uk-navbar-nav > li > a:active,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-nav > li > a:active {
  color: #FFF;
}
.uk-light .uk-navbar-nav > li.uk-active > a,
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav > li.uk-active > a,
.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-nav > li.uk-active > a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-nav > li.uk-active > a,
.uk-card-primary.uk-card-body .uk-navbar-nav > li.uk-active > a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-navbar-nav > li.uk-active > a,
.uk-overlay-primary .uk-navbar-nav > li.uk-active > a,
.uk-offcanvas-bar .uk-navbar-nav > li.uk-active > a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-nav > li.uk-active > a {
  color: #FFF;
}
.uk-light .uk-navbar-item,
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-item,
.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-item,
.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-item,
.uk-card-primary.uk-card-body .uk-navbar-item,
.uk-card-primary > :not([class*='uk-card-media']) .uk-navbar-item,
.uk-overlay-primary .uk-navbar-item,
.uk-offcanvas-bar .uk-navbar-item,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-item {
  color: #ffffff;
}
.uk-light .uk-navbar-toggle,
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-toggle,
.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-toggle,
.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-toggle,
.uk-card-primary.uk-card-body .uk-navbar-toggle,
.uk-card-primary > :not([class*='uk-card-media']) .uk-navbar-toggle,
.uk-overlay-primary .uk-navbar-toggle,
.uk-offcanvas-bar .uk-navbar-toggle,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-toggle {
  color: #FFF;
}
.uk-light .uk-navbar-toggle:hover,
.uk-light .uk-navbar-toggle[aria-expanded="true"],
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-toggle:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-toggle[aria-expanded="true"],
.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-toggle:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-toggle[aria-expanded="true"],
.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-toggle:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-toggle[aria-expanded="true"],
.uk-card-primary.uk-card-body .uk-navbar-toggle:hover,
.uk-card-primary.uk-card-body .uk-navbar-toggle[aria-expanded="true"],
.uk-card-primary > :not([class*='uk-card-media']) .uk-navbar-toggle:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-navbar-toggle[aria-expanded="true"],
.uk-overlay-primary .uk-navbar-toggle:hover,
.uk-overlay-primary .uk-navbar-toggle[aria-expanded="true"],
.uk-offcanvas-bar .uk-navbar-toggle:hover,
.uk-offcanvas-bar .uk-navbar-toggle[aria-expanded="true"],
.uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-toggle:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-toggle[aria-expanded="true"] {
  color: #ffffff;
}
.uk-light .uk-subnav > * > :first-child,
.uk-section-primary:not(.uk-preserve-color) .uk-subnav > * > :first-child,
.uk-tile-primary:not(.uk-preserve-color) .uk-subnav > * > :first-child,
.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav > * > :first-child,
.uk-card-primary.uk-card-body .uk-subnav > * > :first-child,
.uk-card-primary > :not([class*='uk-card-media']) .uk-subnav > * > :first-child,
.uk-overlay-primary .uk-subnav > * > :first-child,
.uk-offcanvas-bar .uk-subnav > * > :first-child,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-subnav > * > :first-child {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-subnav > * > a:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-subnav > * > a:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-subnav > * > a:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav > * > a:hover,
.uk-card-primary.uk-card-body .uk-subnav > * > a:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-subnav > * > a:hover,
.uk-overlay-primary .uk-subnav > * > a:hover,
.uk-offcanvas-bar .uk-subnav > * > a:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-subnav > * > a:hover {
  color: #ffffff;
}
.uk-light .uk-subnav > .uk-active > a,
.uk-section-primary:not(.uk-preserve-color) .uk-subnav > .uk-active > a,
.uk-tile-primary:not(.uk-preserve-color) .uk-subnav > .uk-active > a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav > .uk-active > a,
.uk-card-primary.uk-card-body .uk-subnav > .uk-active > a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-subnav > .uk-active > a,
.uk-overlay-primary .uk-subnav > .uk-active > a,
.uk-offcanvas-bar .uk-subnav > .uk-active > a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-subnav > .uk-active > a {
  color: #FFF;
}
.uk-light .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before,
.uk-section-primary:not(.uk-preserve-color) .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before,
.uk-tile-primary:not(.uk-preserve-color) .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before,
.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before,
.uk-card-primary.uk-card-body .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before,
.uk-card-primary > :not([class*='uk-card-media']) .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before,
.uk-overlay-primary .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before,
.uk-offcanvas-bar .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-subnav-divider > :nth-child(n+2):not(.uk-first-column)::before {
  border-left-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-subnav-pill > * > :first-child,
.uk-section-primary:not(.uk-preserve-color) .uk-subnav-pill > * > :first-child,
.uk-tile-primary:not(.uk-preserve-color) .uk-subnav-pill > * > :first-child,
.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav-pill > * > :first-child,
.uk-card-primary.uk-card-body .uk-subnav-pill > * > :first-child,
.uk-card-primary > :not([class*='uk-card-media']) .uk-subnav-pill > * > :first-child,
.uk-overlay-primary .uk-subnav-pill > * > :first-child,
.uk-offcanvas-bar .uk-subnav-pill > * > :first-child,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-subnav-pill > * > :first-child {
  background-color: transparent;
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-subnav-pill > * > a:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-subnav-pill > * > a:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-subnav-pill > * > a:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav-pill > * > a:hover,
.uk-card-primary.uk-card-body .uk-subnav-pill > * > a:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-subnav-pill > * > a:hover,
.uk-overlay-primary .uk-subnav-pill > * > a:hover,
.uk-offcanvas-bar .uk-subnav-pill > * > a:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-subnav-pill > * > a:hover {
  background-color: rgba(255, 255, 255, 0.1);
  color: #ffffff;
}
.uk-light .uk-subnav-pill > * > a:active,
.uk-section-primary:not(.uk-preserve-color) .uk-subnav-pill > * > a:active,
.uk-tile-primary:not(.uk-preserve-color) .uk-subnav-pill > * > a:active,
.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav-pill > * > a:active,
.uk-card-primary.uk-card-body .uk-subnav-pill > * > a:active,
.uk-card-primary > :not([class*='uk-card-media']) .uk-subnav-pill > * > a:active,
.uk-overlay-primary .uk-subnav-pill > * > a:active,
.uk-offcanvas-bar .uk-subnav-pill > * > a:active,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-subnav-pill > * > a:active {
  background-color: rgba(255, 255, 255, 0.1);
  color: #ffffff;
}
.uk-light .uk-subnav-pill > .uk-active > a,
.uk-section-primary:not(.uk-preserve-color) .uk-subnav-pill > .uk-active > a,
.uk-tile-primary:not(.uk-preserve-color) .uk-subnav-pill > .uk-active > a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav-pill > .uk-active > a,
.uk-card-primary.uk-card-body .uk-subnav-pill > .uk-active > a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-subnav-pill > .uk-active > a,
.uk-overlay-primary .uk-subnav-pill > .uk-active > a,
.uk-offcanvas-bar .uk-subnav-pill > .uk-active > a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-subnav-pill > .uk-active > a {
  background-color: #FFF;
  color: #2C2C2C;
}
.uk-light .uk-subnav > .uk-disabled > a,
.uk-section-primary:not(.uk-preserve-color) .uk-subnav > .uk-disabled > a,
.uk-tile-primary:not(.uk-preserve-color) .uk-subnav > .uk-disabled > a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav > .uk-disabled > a,
.uk-card-primary.uk-card-body .uk-subnav > .uk-disabled > a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-subnav > .uk-disabled > a,
.uk-overlay-primary .uk-subnav > .uk-disabled > a,
.uk-offcanvas-bar .uk-subnav > .uk-disabled > a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-subnav > .uk-disabled > a {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-breadcrumb > * > *,
.uk-section-primary:not(.uk-preserve-color) .uk-breadcrumb > * > *,
.uk-tile-primary:not(.uk-preserve-color) .uk-breadcrumb > * > *,
.uk-tile-secondary:not(.uk-preserve-color) .uk-breadcrumb > * > *,
.uk-card-primary.uk-card-body .uk-breadcrumb > * > *,
.uk-card-primary > :not([class*='uk-card-media']) .uk-breadcrumb > * > *,
.uk-overlay-primary .uk-breadcrumb > * > *,
.uk-offcanvas-bar .uk-breadcrumb > * > *,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-breadcrumb > * > * {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-breadcrumb > * > :hover,
.uk-section-primary:not(.uk-preserve-color) .uk-breadcrumb > * > :hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-breadcrumb > * > :hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-breadcrumb > * > :hover,
.uk-card-primary.uk-card-body .uk-breadcrumb > * > :hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-breadcrumb > * > :hover,
.uk-overlay-primary .uk-breadcrumb > * > :hover,
.uk-offcanvas-bar .uk-breadcrumb > * > :hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-breadcrumb > * > :hover {
  color: #ffffff;
}
.uk-light .uk-breadcrumb > .uk-disabled > *,
.uk-section-primary:not(.uk-preserve-color) .uk-breadcrumb > .uk-disabled > *,
.uk-tile-primary:not(.uk-preserve-color) .uk-breadcrumb > .uk-disabled > *,
.uk-tile-secondary:not(.uk-preserve-color) .uk-breadcrumb > .uk-disabled > *,
.uk-card-primary.uk-card-body .uk-breadcrumb > .uk-disabled > *,
.uk-card-primary > :not([class*='uk-card-media']) .uk-breadcrumb > .uk-disabled > *,
.uk-overlay-primary .uk-breadcrumb > .uk-disabled > *,
.uk-offcanvas-bar .uk-breadcrumb > .uk-disabled > *,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-breadcrumb > .uk-disabled > * {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-breadcrumb > :last-child > *,
.uk-section-primary:not(.uk-preserve-color) .uk-breadcrumb > :last-child > *,
.uk-tile-primary:not(.uk-preserve-color) .uk-breadcrumb > :last-child > *,
.uk-tile-secondary:not(.uk-preserve-color) .uk-breadcrumb > :last-child > *,
.uk-card-primary.uk-card-body .uk-breadcrumb > :last-child > *,
.uk-card-primary > :not([class*='uk-card-media']) .uk-breadcrumb > :last-child > *,
.uk-overlay-primary .uk-breadcrumb > :last-child > *,
.uk-offcanvas-bar .uk-breadcrumb > :last-child > *,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-breadcrumb > :last-child > * {
  color: #ffffff;
}
.uk-light .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before,
.uk-section-primary:not(.uk-preserve-color) .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before,
.uk-tile-primary:not(.uk-preserve-color) .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before,
.uk-tile-secondary:not(.uk-preserve-color) .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before,
.uk-card-primary.uk-card-body .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before,
.uk-card-primary > :not([class*='uk-card-media']) .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before,
.uk-overlay-primary .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before,
.uk-offcanvas-bar .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-pagination > * > *,
.uk-section-primary:not(.uk-preserve-color) .uk-pagination > * > *,
.uk-tile-primary:not(.uk-preserve-color) .uk-pagination > * > *,
.uk-tile-secondary:not(.uk-preserve-color) .uk-pagination > * > *,
.uk-card-primary.uk-card-body .uk-pagination > * > *,
.uk-card-primary > :not([class*='uk-card-media']) .uk-pagination > * > *,
.uk-overlay-primary .uk-pagination > * > *,
.uk-offcanvas-bar .uk-pagination > * > *,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-pagination > * > * {
  color: rgba(255, 255, 255, 0.5);
  background-color: rgba(255, 255, 255, 0.1);
}
.uk-light .uk-pagination > * > :hover,
.uk-section-primary:not(.uk-preserve-color) .uk-pagination > * > :hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-pagination > * > :hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-pagination > * > :hover,
.uk-card-primary.uk-card-body .uk-pagination > * > :hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-pagination > * > :hover,
.uk-overlay-primary .uk-pagination > * > :hover,
.uk-offcanvas-bar .uk-pagination > * > :hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-pagination > * > :hover {
  color: #ffffff;
  background-color: #564AEB;
}
.uk-light .uk-pagination > .uk-active > *,
.uk-section-primary:not(.uk-preserve-color) .uk-pagination > .uk-active > *,
.uk-tile-primary:not(.uk-preserve-color) .uk-pagination > .uk-active > *,
.uk-tile-secondary:not(.uk-preserve-color) .uk-pagination > .uk-active > *,
.uk-card-primary.uk-card-body .uk-pagination > .uk-active > *,
.uk-card-primary > :not([class*='uk-card-media']) .uk-pagination > .uk-active > *,
.uk-overlay-primary .uk-pagination > .uk-active > *,
.uk-offcanvas-bar .uk-pagination > .uk-active > *,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-pagination > .uk-active > * {
  color: #ffffff;
  background-color: #564AEB;
}
.uk-light .uk-pagination > .uk-disabled > *,
.uk-section-primary:not(.uk-preserve-color) .uk-pagination > .uk-disabled > *,
.uk-tile-primary:not(.uk-preserve-color) .uk-pagination > .uk-disabled > *,
.uk-tile-secondary:not(.uk-preserve-color) .uk-pagination > .uk-disabled > *,
.uk-card-primary.uk-card-body .uk-pagination > .uk-disabled > *,
.uk-card-primary > :not([class*='uk-card-media']) .uk-pagination > .uk-disabled > *,
.uk-overlay-primary .uk-pagination > .uk-disabled > *,
.uk-offcanvas-bar .uk-pagination > .uk-disabled > *,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-pagination > .uk-disabled > * {
  color: rgba(255, 255, 255, 0.5);
  background-color: transparent;
}
.uk-light .uk-tab::before,
.uk-section-primary:not(.uk-preserve-color) .uk-tab::before,
.uk-tile-primary:not(.uk-preserve-color) .uk-tab::before,
.uk-tile-secondary:not(.uk-preserve-color) .uk-tab::before,
.uk-card-primary.uk-card-body .uk-tab::before,
.uk-card-primary > :not([class*='uk-card-media']) .uk-tab::before,
.uk-overlay-primary .uk-tab::before,
.uk-offcanvas-bar .uk-tab::before,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-tab::before {
  border-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-tab > * > a,
.uk-section-primary:not(.uk-preserve-color) .uk-tab > * > a,
.uk-tile-primary:not(.uk-preserve-color) .uk-tab > * > a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-tab > * > a,
.uk-card-primary.uk-card-body .uk-tab > * > a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-tab > * > a,
.uk-overlay-primary .uk-tab > * > a,
.uk-offcanvas-bar .uk-tab > * > a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-tab > * > a {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-tab > * > a:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-tab > * > a:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-tab > * > a:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-tab > * > a:hover,
.uk-card-primary.uk-card-body .uk-tab > * > a:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-tab > * > a:hover,
.uk-overlay-primary .uk-tab > * > a:hover,
.uk-offcanvas-bar .uk-tab > * > a:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-tab > * > a:hover {
  color: #ffffff;
  border-color: transparent;
}
.uk-light .uk-tab > .uk-active > a,
.uk-section-primary:not(.uk-preserve-color) .uk-tab > .uk-active > a,
.uk-tile-primary:not(.uk-preserve-color) .uk-tab > .uk-active > a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-tab > .uk-active > a,
.uk-card-primary.uk-card-body .uk-tab > .uk-active > a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-tab > .uk-active > a,
.uk-overlay-primary .uk-tab > .uk-active > a,
.uk-offcanvas-bar .uk-tab > .uk-active > a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-tab > .uk-active > a {
  color: #FFF;
  border-color: #FFF;
}
.uk-light .uk-tab > .uk-disabled > a,
.uk-section-primary:not(.uk-preserve-color) .uk-tab > .uk-disabled > a,
.uk-tile-primary:not(.uk-preserve-color) .uk-tab > .uk-disabled > a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-tab > .uk-disabled > a,
.uk-card-primary.uk-card-body .uk-tab > .uk-disabled > a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-tab > .uk-disabled > a,
.uk-overlay-primary .uk-tab > .uk-disabled > a,
.uk-offcanvas-bar .uk-tab > .uk-disabled > a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-tab > .uk-disabled > a {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-slidenav,
.uk-section-primary:not(.uk-preserve-color) .uk-slidenav,
.uk-tile-primary:not(.uk-preserve-color) .uk-slidenav,
.uk-tile-secondary:not(.uk-preserve-color) .uk-slidenav,
.uk-card-primary.uk-card-body .uk-slidenav,
.uk-card-primary > :not([class*='uk-card-media']) .uk-slidenav,
.uk-overlay-primary .uk-slidenav,
.uk-offcanvas-bar .uk-slidenav,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-slidenav {
  color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-slidenav:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-slidenav:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-slidenav:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-slidenav:hover,
.uk-card-primary.uk-card-body .uk-slidenav:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-slidenav:hover,
.uk-overlay-primary .uk-slidenav:hover,
.uk-offcanvas-bar .uk-slidenav:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-slidenav:hover {
  color: rgba(255, 255, 255, 0.95);
}
.uk-light .uk-slidenav:active,
.uk-section-primary:not(.uk-preserve-color) .uk-slidenav:active,
.uk-tile-primary:not(.uk-preserve-color) .uk-slidenav:active,
.uk-tile-secondary:not(.uk-preserve-color) .uk-slidenav:active,
.uk-card-primary.uk-card-body .uk-slidenav:active,
.uk-card-primary > :not([class*='uk-card-media']) .uk-slidenav:active,
.uk-overlay-primary .uk-slidenav:active,
.uk-offcanvas-bar .uk-slidenav:active,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-slidenav:active {
  color: rgba(255, 255, 255, 0.7);
}
.uk-light .uk-dotnav > * > *,
.uk-section-primary:not(.uk-preserve-color) .uk-dotnav > * > *,
.uk-tile-primary:not(.uk-preserve-color) .uk-dotnav > * > *,
.uk-tile-secondary:not(.uk-preserve-color) .uk-dotnav > * > *,
.uk-card-primary.uk-card-body .uk-dotnav > * > *,
.uk-card-primary > :not([class*='uk-card-media']) .uk-dotnav > * > *,
.uk-overlay-primary .uk-dotnav > * > *,
.uk-offcanvas-bar .uk-dotnav > * > *,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-dotnav > * > * {
  background-color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-dotnav > * > :hover,
.uk-section-primary:not(.uk-preserve-color) .uk-dotnav > * > :hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-dotnav > * > :hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-dotnav > * > :hover,
.uk-card-primary.uk-card-body .uk-dotnav > * > :hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-dotnav > * > :hover,
.uk-overlay-primary .uk-dotnav > * > :hover,
.uk-offcanvas-bar .uk-dotnav > * > :hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-dotnav > * > :hover {
  background-color: rgba(255, 255, 255, 0.9);
}
.uk-light .uk-dotnav > * > :active,
.uk-section-primary:not(.uk-preserve-color) .uk-dotnav > * > :active,
.uk-tile-primary:not(.uk-preserve-color) .uk-dotnav > * > :active,
.uk-tile-secondary:not(.uk-preserve-color) .uk-dotnav > * > :active,
.uk-card-primary.uk-card-body .uk-dotnav > * > :active,
.uk-card-primary > :not([class*='uk-card-media']) .uk-dotnav > * > :active,
.uk-overlay-primary .uk-dotnav > * > :active,
.uk-offcanvas-bar .uk-dotnav > * > :active,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-dotnav > * > :active {
  background-color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-dotnav > .uk-active > *,
.uk-section-primary:not(.uk-preserve-color) .uk-dotnav > .uk-active > *,
.uk-tile-primary:not(.uk-preserve-color) .uk-dotnav > .uk-active > *,
.uk-tile-secondary:not(.uk-preserve-color) .uk-dotnav > .uk-active > *,
.uk-card-primary.uk-card-body .uk-dotnav > .uk-active > *,
.uk-card-primary > :not([class*='uk-card-media']) .uk-dotnav > .uk-active > *,
.uk-overlay-primary .uk-dotnav > .uk-active > *,
.uk-offcanvas-bar .uk-dotnav > .uk-active > *,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-dotnav > .uk-active > * {
  background-color: rgba(255, 255, 255, 0.9);
}
.uk-light .uk-thumbnav > * > *::after,
.uk-section-primary:not(.uk-preserve-color) .uk-thumbnav > * > *::after,
.uk-tile-primary:not(.uk-preserve-color) .uk-thumbnav > * > *::after,
.uk-tile-secondary:not(.uk-preserve-color) .uk-thumbnav > * > *::after,
.uk-card-primary.uk-card-body .uk-thumbnav > * > *::after,
.uk-card-primary > :not([class*='uk-card-media']) .uk-thumbnav > * > *::after,
.uk-overlay-primary .uk-thumbnav > * > *::after,
.uk-offcanvas-bar .uk-thumbnav > * > *::after,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-thumbnav > * > *::after {
  background-color: transparent;
}
.uk-light .uk-thumbnav > * > *::after,
.uk-section-primary:not(.uk-preserve-color) .uk-thumbnav > * > *::after,
.uk-tile-primary:not(.uk-preserve-color) .uk-thumbnav > * > *::after,
.uk-tile-secondary:not(.uk-preserve-color) .uk-thumbnav > * > *::after,
.uk-card-primary.uk-card-body .uk-thumbnav > * > *::after,
.uk-card-primary > :not([class*='uk-card-media']) .uk-thumbnav > * > *::after,
.uk-overlay-primary .uk-thumbnav > * > *::after,
.uk-offcanvas-bar .uk-thumbnav > * > *::after,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-thumbnav > * > *::after {
  background-image: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.4));
}
.uk-light .uk-iconnav > * > a,
.uk-section-primary:not(.uk-preserve-color) .uk-iconnav > * > a,
.uk-tile-primary:not(.uk-preserve-color) .uk-iconnav > * > a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-iconnav > * > a,
.uk-card-primary.uk-card-body .uk-iconnav > * > a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-iconnav > * > a,
.uk-overlay-primary .uk-iconnav > * > a,
.uk-offcanvas-bar .uk-iconnav > * > a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-iconnav > * > a {
  color: rgba(255, 255, 255, 0.5);
}
.uk-light .uk-iconnav > * > a:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-iconnav > * > a:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-iconnav > * > a:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-iconnav > * > a:hover,
.uk-card-primary.uk-card-body .uk-iconnav > * > a:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-iconnav > * > a:hover,
.uk-overlay-primary .uk-iconnav > * > a:hover,
.uk-offcanvas-bar .uk-iconnav > * > a:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-iconnav > * > a:hover {
  color: #ffffff;
}
.uk-light .uk-iconnav > .uk-active > a,
.uk-section-primary:not(.uk-preserve-color) .uk-iconnav > .uk-active > a,
.uk-tile-primary:not(.uk-preserve-color) .uk-iconnav > .uk-active > a,
.uk-tile-secondary:not(.uk-preserve-color) .uk-iconnav > .uk-active > a,
.uk-card-primary.uk-card-body .uk-iconnav > .uk-active > a,
.uk-card-primary > :not([class*='uk-card-media']) .uk-iconnav > .uk-active > a,
.uk-overlay-primary .uk-iconnav > .uk-active > a,
.uk-offcanvas-bar .uk-iconnav > .uk-active > a,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-iconnav > .uk-active > a {
  color: #ffffff;
}
.uk-light .uk-text-lead,
.uk-section-primary:not(.uk-preserve-color) .uk-text-lead,
.uk-tile-primary:not(.uk-preserve-color) .uk-text-lead,
.uk-tile-secondary:not(.uk-preserve-color) .uk-text-lead,
.uk-card-primary.uk-card-body .uk-text-lead,
.uk-card-primary > :not([class*='uk-card-media']) .uk-text-lead,
.uk-overlay-primary .uk-text-lead,
.uk-offcanvas-bar .uk-text-lead,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-text-lead {
  color: #ffffff;
}
.uk-light .uk-text-meta,
.uk-section-primary:not(.uk-preserve-color) .uk-text-meta,
.uk-tile-primary:not(.uk-preserve-color) .uk-text-meta,
.uk-tile-secondary:not(.uk-preserve-color) .uk-text-meta,
.uk-card-primary.uk-card-body .uk-text-meta,
.uk-card-primary > :not([class*='uk-card-media']) .uk-text-meta,
.uk-overlay-primary .uk-text-meta,
.uk-offcanvas-bar .uk-text-meta,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-text-meta {
  color: #FFF;
}
.uk-light .uk-text-muted,
.uk-section-primary:not(.uk-preserve-color) .uk-text-muted,
.uk-tile-primary:not(.uk-preserve-color) .uk-text-muted,
.uk-tile-secondary:not(.uk-preserve-color) .uk-text-muted,
.uk-card-primary.uk-card-body .uk-text-muted,
.uk-card-primary > :not([class*='uk-card-media']) .uk-text-muted,
.uk-overlay-primary .uk-text-muted,
.uk-offcanvas-bar .uk-text-muted,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-text-muted {
  color: #ffffff !important;
}
.uk-light .uk-text-emphasis,
.uk-section-primary:not(.uk-preserve-color) .uk-text-emphasis,
.uk-tile-primary:not(.uk-preserve-color) .uk-text-emphasis,
.uk-tile-secondary:not(.uk-preserve-color) .uk-text-emphasis,
.uk-card-primary.uk-card-body .uk-text-emphasis,
.uk-card-primary > :not([class*='uk-card-media']) .uk-text-emphasis,
.uk-overlay-primary .uk-text-emphasis,
.uk-offcanvas-bar .uk-text-emphasis,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-text-emphasis {
  color: #FFF !important;
}
.uk-light .uk-text-primary,
.uk-section-primary:not(.uk-preserve-color) .uk-text-primary,
.uk-tile-primary:not(.uk-preserve-color) .uk-text-primary,
.uk-tile-secondary:not(.uk-preserve-color) .uk-text-primary,
.uk-card-primary.uk-card-body .uk-text-primary,
.uk-card-primary > :not([class*='uk-card-media']) .uk-text-primary,
.uk-overlay-primary .uk-text-primary,
.uk-offcanvas-bar .uk-text-primary,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-text-primary {
  color: #FFF !important;
}
.uk-light .uk-text-secondary,
.uk-section-primary:not(.uk-preserve-color) .uk-text-secondary,
.uk-tile-primary:not(.uk-preserve-color) .uk-text-secondary,
.uk-tile-secondary:not(.uk-preserve-color) .uk-text-secondary,
.uk-card-primary.uk-card-body .uk-text-secondary,
.uk-card-primary > :not([class*='uk-card-media']) .uk-text-secondary,
.uk-overlay-primary .uk-text-secondary,
.uk-offcanvas-bar .uk-text-secondary,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-text-secondary {
  color: #FFF !important;
}
.uk-light .uk-column-divider,
.uk-section-primary:not(.uk-preserve-color) .uk-column-divider,
.uk-tile-primary:not(.uk-preserve-color) .uk-column-divider,
.uk-tile-secondary:not(.uk-preserve-color) .uk-column-divider,
.uk-card-primary.uk-card-body .uk-column-divider,
.uk-card-primary > :not([class*='uk-card-media']) .uk-column-divider,
.uk-overlay-primary .uk-column-divider,
.uk-offcanvas-bar .uk-column-divider,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-column-divider {
  column-rule-color: rgba(255, 255, 255, 0.2);
}
.uk-light .uk-dropcap::first-letter,
.uk-light .uk-dropcap p:first-of-type::first-letter,
.uk-section-primary:not(.uk-preserve-color) .uk-dropcap::first-letter,
.uk-section-primary:not(.uk-preserve-color) .uk-dropcap p:first-of-type::first-letter,
.uk-tile-primary:not(.uk-preserve-color) .uk-dropcap::first-letter,
.uk-tile-primary:not(.uk-preserve-color) .uk-dropcap p:first-of-type::first-letter,
.uk-tile-secondary:not(.uk-preserve-color) .uk-dropcap::first-letter,
.uk-tile-secondary:not(.uk-preserve-color) .uk-dropcap p:first-of-type::first-letter,
.uk-card-primary.uk-card-body .uk-dropcap::first-letter,
.uk-card-primary.uk-card-body .uk-dropcap p:first-of-type::first-letter,
.uk-card-primary > :not([class*='uk-card-media']) .uk-dropcap::first-letter,
.uk-card-primary > :not([class*='uk-card-media']) .uk-dropcap p:first-of-type::first-letter,
.uk-overlay-primary .uk-dropcap::first-letter,
.uk-overlay-primary .uk-dropcap p:first-of-type::first-letter,
.uk-offcanvas-bar .uk-dropcap::first-letter,
.uk-offcanvas-bar .uk-dropcap p:first-of-type::first-letter,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-dropcap::first-letter,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-dropcap p:first-of-type::first-letter {
  color: #ffffff;
}
.uk-light .uk-logo,
.uk-section-primary:not(.uk-preserve-color) .uk-logo,
.uk-tile-primary:not(.uk-preserve-color) .uk-logo,
.uk-tile-secondary:not(.uk-preserve-color) .uk-logo,
.uk-card-primary.uk-card-body .uk-logo,
.uk-card-primary > :not([class*='uk-card-media']) .uk-logo,
.uk-overlay-primary .uk-logo,
.uk-offcanvas-bar .uk-logo,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-logo {
  color: #FFF;
}
.uk-light .uk-logo:hover,
.uk-section-primary:not(.uk-preserve-color) .uk-logo:hover,
.uk-tile-primary:not(.uk-preserve-color) .uk-logo:hover,
.uk-tile-secondary:not(.uk-preserve-color) .uk-logo:hover,
.uk-card-primary.uk-card-body .uk-logo:hover,
.uk-card-primary > :not([class*='uk-card-media']) .uk-logo:hover,
.uk-overlay-primary .uk-logo:hover,
.uk-offcanvas-bar .uk-logo:hover,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-logo:hover {
  color: #FFF;
}
.uk-light .uk-logo > picture:not(:only-of-type) > :not(.uk-logo-inverse),
.uk-light .uk-logo > :not(picture):not(.uk-logo-inverse):not(:only-of-type),
.uk-section-primary:not(.uk-preserve-color) .uk-logo > picture:not(:only-of-type) > :not(.uk-logo-inverse),
.uk-section-primary:not(.uk-preserve-color) .uk-logo > :not(picture):not(.uk-logo-inverse):not(:only-of-type),
.uk-tile-primary:not(.uk-preserve-color) .uk-logo > picture:not(:only-of-type) > :not(.uk-logo-inverse),
.uk-tile-primary:not(.uk-preserve-color) .uk-logo > :not(picture):not(.uk-logo-inverse):not(:only-of-type),
.uk-tile-secondary:not(.uk-preserve-color) .uk-logo > picture:not(:only-of-type) > :not(.uk-logo-inverse),
.uk-tile-secondary:not(.uk-preserve-color) .uk-logo > :not(picture):not(.uk-logo-inverse):not(:only-of-type),
.uk-card-primary.uk-card-body .uk-logo > picture:not(:only-of-type) > :not(.uk-logo-inverse),
.uk-card-primary.uk-card-body .uk-logo > :not(picture):not(.uk-logo-inverse):not(:only-of-type),
.uk-card-primary > :not([class*='uk-card-media']) .uk-logo > picture:not(:only-of-type) > :not(.uk-logo-inverse),
.uk-card-primary > :not([class*='uk-card-media']) .uk-logo > :not(picture):not(.uk-logo-inverse):not(:only-of-type),
.uk-overlay-primary .uk-logo > picture:not(:only-of-type) > :not(.uk-logo-inverse),
.uk-overlay-primary .uk-logo > :not(picture):not(.uk-logo-inverse):not(:only-of-type),
.uk-offcanvas-bar .uk-logo > picture:not(:only-of-type) > :not(.uk-logo-inverse),
.uk-offcanvas-bar .uk-logo > :not(picture):not(.uk-logo-inverse):not(:only-of-type),
.uk-navbar-container:not(.uk-navbar-transparent) .uk-logo > picture:not(:only-of-type) > :not(.uk-logo-inverse),
.uk-navbar-container:not(.uk-navbar-transparent) .uk-logo > :not(picture):not(.uk-logo-inverse):not(:only-of-type) {
  display: none;
}
.uk-light .uk-logo-inverse,
.uk-section-primary:not(.uk-preserve-color) .uk-logo-inverse,
.uk-tile-primary:not(.uk-preserve-color) .uk-logo-inverse,
.uk-tile-secondary:not(.uk-preserve-color) .uk-logo-inverse,
.uk-card-primary.uk-card-body .uk-logo-inverse,
.uk-card-primary > :not([class*='uk-card-media']) .uk-logo-inverse,
.uk-overlay-primary .uk-logo-inverse,
.uk-offcanvas-bar .uk-logo-inverse,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-logo-inverse {
  display: block;
}
.uk-light .uk-accordion-title::before,
.uk-section-primary:not(.uk-preserve-color) .uk-accordion-title::before,
.uk-tile-primary:not(.uk-preserve-color) .uk-accordion-title::before,
.uk-tile-secondary:not(.uk-preserve-color) .uk-accordion-title::before,
.uk-card-primary.uk-card-body .uk-accordion-title::before,
.uk-card-primary > :not([class*='uk-card-media']) .uk-accordion-title::before,
.uk-overlay-primary .uk-accordion-title::before,
.uk-offcanvas-bar .uk-accordion-title::before,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-accordion-title::before {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23ffffff%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23ffffff%22%20width%3D%221%22%20height%3D%2213%22%20x%3D%226%22%20y%3D%220%22%20%2F%3E%0A%3C%2Fsvg%3E");
}
.uk-light .uk-open > .uk-accordion-title::before,
.uk-section-primary:not(.uk-preserve-color) .uk-open > .uk-accordion-title::before,
.uk-tile-primary:not(.uk-preserve-color) .uk-open > .uk-accordion-title::before,
.uk-tile-secondary:not(.uk-preserve-color) .uk-open > .uk-accordion-title::before,
.uk-card-primary.uk-card-body .uk-open > .uk-accordion-title::before,
.uk-card-primary > :not([class*='uk-card-media']) .uk-open > .uk-accordion-title::before,
.uk-overlay-primary .uk-open > .uk-accordion-title::before,
.uk-offcanvas-bar .uk-open > .uk-accordion-title::before,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-open > .uk-accordion-title::before {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23ffffff%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%3C%2Fsvg%3E");
}
.uk-light svg.uk-text-muted,
.uk-light svg .uk-text-muted,
.uk-section-primary:not(.uk-preserve-color) svg.uk-text-muted,
.uk-section-primary:not(.uk-preserve-color) svg .uk-text-muted,
.uk-tile-primary:not(.uk-preserve-color) svg.uk-text-muted,
.uk-tile-primary:not(.uk-preserve-color) svg .uk-text-muted,
.uk-tile-secondary:not(.uk-preserve-color) svg.uk-text-muted,
.uk-tile-secondary:not(.uk-preserve-color) svg .uk-text-muted,
.uk-card-primary.uk-card-body svg.uk-text-muted,
.uk-card-primary.uk-card-body svg .uk-text-muted,
.uk-card-primary > :not([class*='uk-card-media']) svg.uk-text-muted,
.uk-card-primary > :not([class*='uk-card-media']) svg .uk-text-muted,
.uk-overlay-primary svg.uk-text-muted,
.uk-overlay-primary svg .uk-text-muted,
.uk-offcanvas-bar svg.uk-text-muted,
.uk-offcanvas-bar svg .uk-text-muted,
.uk-navbar-container:not(.uk-navbar-transparent) svg.uk-text-muted,
.uk-navbar-container:not(.uk-navbar-transparent) svg .uk-text-muted {
  color: rgba(255, 255, 255, 0.5) !important;
}
.uk-light .uk-svg-default-background,
.uk-section-primary:not(.uk-preserve-color) .uk-svg-default-background,
.uk-tile-primary:not(.uk-preserve-color) .uk-svg-default-background,
.uk-tile-secondary:not(.uk-preserve-color) .uk-svg-default-background,
.uk-card-primary.uk-card-body .uk-svg-default-background,
.uk-card-primary > :not([class*='uk-card-media']) .uk-svg-default-background,
.uk-overlay-primary .uk-svg-default-background,
.uk-offcanvas-bar .uk-svg-default-background,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-svg-default-background {
  color: transparent !important;
}
.uk-light .uk-svg-muted-background,
.uk-section-primary:not(.uk-preserve-color) .uk-svg-muted-background,
.uk-tile-primary:not(.uk-preserve-color) .uk-svg-muted-background,
.uk-tile-secondary:not(.uk-preserve-color) .uk-svg-muted-background,
.uk-card-primary.uk-card-body .uk-svg-muted-background,
.uk-card-primary > :not([class*='uk-card-media']) .uk-svg-muted-background,
.uk-overlay-primary .uk-svg-muted-background,
.uk-offcanvas-bar .uk-svg-muted-background,
.uk-navbar-container:not(.uk-navbar-transparent) .uk-svg-muted-background {
  color: rgba(255, 255, 255, 0.1) !important;
}
.uk-light .tm-section-title,
.uk-section-primary:not(.uk-preserve-color) .tm-section-title,
.uk-tile-primary:not(.uk-preserve-color) .tm-section-title,
.uk-tile-secondary:not(.uk-preserve-color) .tm-section-title,
.uk-card-primary.uk-card-body .tm-section-title,
.uk-card-primary > :not([class*='uk-card-media']) .tm-section-title,
.uk-overlay-primary .tm-section-title,
.uk-offcanvas-bar .tm-section-title,
.uk-navbar-container:not(.uk-navbar-transparent) .tm-section-title {
  color: #ffffff;
}
/* ========================================================================
   Component: Print
 ========================================================================== */
@media print {
  *,
  *::before,
  *::after {
    background: transparent !important;
    color: black !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  @page {
    margin: 0.5cm;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
}
/* ========================================================================
   Theme
 ========================================================================== */
/* HTML
 ========================================================================== */
/*
 * Force vertical scrollbar
 * 1. `overflow-x` has to be on the `body` element for Safari to prevent horizontal scrolling on touch
      This causes a random bug showing a vertical scrollbar in combination with some fonts like `Poppins`
      This is why `overflow-y` must also be set to `hidden`
 */
html {
  overflow-y: scroll;
}
/* 1 */
body {
  overflow: hidden;
}
/* Page
 ========================================================================== */
/*
 * Page
 * Position context needed for `tm-header-overlay`.
 */
.tm-page {
  position: relative;
}
/*
 * Border
 * 1. Need to remove default `border-width` of 4px if `border-image` is used in Safari and Edge
 *    Only needed if border mode is not full, e.g. `left`
 * 2. Important: Grandient won't work if the border-color is `transparent` in Safari
 */
/* Tablet landscape and bigger */
@media (min-width: 960px) {
  /* 1 */
  /* 2 */
  .tm-page {
    border-top: 6px solid #B8AD2E;
  }
}
/* Desktop and bigger */
@media (min-width: 1200px) {
  .tm-page {
    border-top-width: 6px;
  }
}
/*
 * Page Container
 */
@media (min-width: 1500px) {
  .tm-page-container {
    background-color: #f0f0f0;
  }
  .tm-page-container .tm-page {
    max-width: 1500px;
    background: #FFF;
  }
  .tm-page-width {
    max-width: 1500px;
  }
  .tm-page-margin-top {
    margin-top: 70px;
  }
  .tm-page-margin-bottom {
    margin-bottom: 70px;
  }
}
/* Cookie Banner
 ========================================================================== */
/*
 * Let cookie notification appear above any page content.
 */
.tm-cookie-banner {
  z-index: 1040;
}
/* Toolbar
 ========================================================================== */
.tm-toolbar {
  padding-top: 10px;
  padding-bottom: 10px;
  font-size: 15px;
  position: relative;
}
.tm-toolbar .uk-subnav > * > :first-child {
  font-size: 15px;
}
.tm-toolbar-default {
  background: #F8F8F8;
}
/* Header
 ========================================================================== */
/*
 * Header
 */
.tm-header,
.tm-header-mobile {
  position: relative;
}
/*
 * Headerbars
 */
.tm-headerbar-top {
  padding-top: 20px;
  padding-bottom: 20px;
}
.tm-headerbar-bottom {
  padding-top: 20px;
  padding-bottom: 20px;
}
.tm-headerbar-stacked {
  margin-top: 20px;
}
.tm-headerbar-top.tm-headerbar-default {
  background: #0E9B4A;
}
.tm-headerbar-bottom.tm-headerbar-default {
  background: #0E9B4A;
}
/*
 * Overlay + Transparent Header
 * 1. Position above following section
 * 2. Create stacking context because following section might create one
 * 3. Take the full width. Doesn't use width because `html` element may have a `border` or `padding`
 */
.tm-header-overlay {
  /* 1 */
  position: absolute;
  /* 2 */
  z-index: 980;
  /* 3 */
  left: 0;
  right: 0;
}
/*
 * Header Mobile
 */
.tm-header-mobile-slide {
  z-index: 1020;
}
/*
 * Subnav in Navbar
 */
.uk-navbar-item .uk-subnav > * > :first-child {
  font-size: 16px;
}
/* Sidebar
 ========================================================================== */
/* Phone landscape and bigger */
@media (min-width: 640px) {
  .tm-sidebar {
    min-width: 200px;
  }
}
/* Dropdown stack
 ========================================================================== */
/*
 * Reset width if column width is set
 */
.uk-dropdown-navbar.uk-dropdown-stack {
  min-width: 0 !important;
  max-width: none !important;
}
/* Error
 ========================================================================== */
.tm-error-icon {
  font-size: 250px;
}
.tm-error-headline {
  font-size: 100px;
}
/* Offline
 ========================================================================== */
.tm-offline {
  width: 300px;
}
/* Child Utilities
 ========================================================================== */
/*
 * Manually repeat list divider selector because
 * `:extend` won't extend a selector which is created by another `:extend`
 * Guards are only allowed on single selectors
 */
.uk-card-primary.uk-card-body .uk-list-divider > li:nth-child(n+2),
.uk-card-primary.uk-card-body .tm-child-list-divider > ul > li:nth-child(n+2) {
  border-top-color: rgba(255, 255, 255, 0.2);
}
.uk-card-primary .uk-card-body .uk-list-divider > li:nth-child(n+2),
.uk-card-primary .uk-card-body .tm-child-list-divider > ul > li:nth-child(n+2) {
  border-top-color: rgba(255, 255, 255, 0.2);
}
.uk-section-primary:not(.uk-preserve-color) .uk-list-divider > li:nth-child(n+2),
.uk-section-primary:not(.uk-preserve-color) .tm-child-list-divider > ul > li:nth-child(n+2) {
  border-top-color: rgba(255, 255, 255, 0.2);
}
/* Syntax Highlighter
 ========================================================================== */
/*
 * Reset highlight.js
 */
.hljs {
  padding: 0;
  background: transparent;
  overflow: visible;
}
/* Section
 ========================================================================== */
.tm-section-title {
  color: #1C1C1C;
  font-size: 15px;
  line-height: 1.75;
  -webkit-writing-mode: vertical-lr;
  writing-mode: vertical-lr;
  font-weight: 500;
}
.tm-section-title > ::before {
  content: "";
  position: absolute;
  top: -30px;
  left: calc(50% - (2px / 2));
  height: 15px;
  width: 2px;
}
.tm-section-title > ::before {
  background-color: currentColor;
}
.tm-section-title > * {
  -ms-writing-mode: tb-lr;
  display: inline-block;
}
@supports (-ms-ime-align: auto) {
  .tm-section-title {
    writing-mode: inherit;
  }
  .tm-section-title > * {
    writing-mode: vertical-lr;
  }
}
/*
 * Dash
 */
/* Utility
 ========================================================================== */
.tm-rotate-180 {
  -webkit-transform: rotate(180deg);
  transform: rotate(180deg);
}
/*
 * Collapsing Grid
 */
.tm-grid-expand > * {
  flex-grow: 1;
}
/* Fix expand */
.tm-grid-expand > .uk-width-expand {
  flex-grow: 999;
}
/* Phone landscape and bigger */
@media (min-width: 640px) {
  .tm-grid-expand > .uk-width-expand\@s {
    flex-grow: 999;
  }
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .tm-grid-expand > .uk-width-expand\@m {
    flex-grow: 999;
  }
}
/* Desktop and bigger */
@media (min-width: 1200px) {
  .tm-grid-expand > .uk-width-expand\@l {
    flex-grow: 999;
  }
}
/* Large screen and bigger */
@media (min-width: 1600px) {
  .tm-grid-expand > .uk-width-expand\@xl {
    flex-grow: 999;
  }
}
/* Mask
 ========================================================================== */
.tm-mask-default {
  -webkit-mask-image: url(/build/images/mask-default-image.70564216.svg);
  mask-image: url(/build/images/mask-default-image.70564216.svg);
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}
/* Box Decoration
 ========================================================================== */
.tm-box-decoration-default,
.tm-box-decoration-primary,
.tm-box-decoration-secondary {
  position: relative;
  z-index: 0;
}
.tm-box-decoration-default::before,
.tm-box-decoration-primary::before,
.tm-box-decoration-secondary::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: -1;
  pointer-events: none;
}
.tm-box-decoration-default::before {
  transform: translate(-20px, 20px);
  background-color: #f0f0f0;
}
.tm-box-decoration-primary::before {
  transform: translate(20px, 20px);
  background-color: #564AEB;
}
.tm-box-decoration-secondary::before {
  transform: translate(20px, -20px);
  background-color: #111;
}
.tm-box-decoration-inverse.tm-box-decoration-default::before {
  background-color: rgba(255, 255, 255, 0.1);
}
.tm-box-decoration-inverse.tm-box-decoration-primary::before {
  background-color: #FFF;
}
.tm-box-decoration-inverse.tm-box-decoration-secondary::before {
  background-color: #FFF;
}
/* Font Family
 ========================================================================== */
.uk-font-default {
  font-family: 'Fira Sans';
  font-weight: normal;
}
.uk-font-primary {
  font-family: inherit;
  font-weight: 400;
}
.uk-font-secondary {
  font-family: inherit;
  font-weight: 500;
}
.uk-font-tertiary {
  font-family: inherit;
  font-weight: inherit;
}
/* Position
 ========================================================================== */
.tm-position-z-index-high {
  z-index: 990;
}
/* Fix Drop Cap with Page Break (+ platform.less)
 ========================================================================== */
/* Reset */
.tm-page-break::first-letter {
  display: inline !important;
  margin: 0 !important;
  float: none !important;
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  color: inherit !important;
}
.tm-page {
  border-top: 6px solid #b8ad2e;
}
.uk-width-1-20 {
  width: 5%;
}
.uk-width-1-10 {
  width: 10%;
}
.uk-width-2-10 {
  width: 20%;
}
.uk-width-3-10 {
  width: 30%;
}
.uk-width-4-10 {
  width: 40%;
}
/* Tablet landscape and bigger */
@media (min-width: 960px) {
  .uk-width-1-20\@m {
    width: 5%;
  }
  .uk-width-1-10\@m {
    width: 10%;
  }
  .uk-width-2-10\@m {
    width: 20%;
  }
  .uk-width-3-10\@m {
    width: 30%;
  }
  .uk-width-4-10\@m {
    width: 40%;
  }
  .uk-width-5-10\@m {
    width: 50%;
  }
  .uk-width-6-10\@m {
    width: 60%;
  }
  .uk-width-7-10\@m {
    width: 70%;
  }
  .uk-width-8-10\@m {
    width: 80%;
  }
  .uk-width-9-10\@m {
    width: 90%;
  }
  /* Thirds */
  .uk-width-1-3\@m {
    max-width: calc(100% * 1 / 3.001);
  }
}
#footer\#0-0-0-0 {
  border-color: #b99500;
  border-width: 8px;
}
.price .old {
  text-decoration: line-through;
  color: #b8ad2e;
}
.price .new {
  color: #bf0000;
}
.uk-input:-webkit-autofill,
.uk-textarea:-webkit-autofill,
.uk-select:-webkit-autofill,
.uk-input:-webkit-autofill:hover,
.uk-textarea:-webkit-autofill:hover,
.uk-select:-webkit-autofill:hover,
.uk-input:-webkit-autofill:focus,
.uk-textarea:-webkit-autofill:focus,
.uk-select:-webkit-autofill:focus {
  font-family: 'Fira Sans' !important;
  font-size: 16px !important;
  font-weight: normal !important;
}
.tm-header .uk-navbar-container {
  line-height: 46px;
}
.uk-button.btn-image-select-modal {
  background-color: #fff;
  border: 1px solid #ccc;
  color: #333 !important;
  text-transform: none;
  font-size: 13px;
  text-align: left;
  border-radius: 0;
}
.modal-image-select .uk-modal-dialog {
  padding: 50px 70px;
}
#shop-mini-cart .cart-mini h3 {
  color: #000;
}
#shop-mini-cart .cart-mini .img > a {
  color: #fff;
}
#shop-mini-cart .cart-mini .img > a .uk-badge {
  position: relative;
  left: -10px;
  top: -5px;
  background: #fff;
  color: #0E9B4A !important;
}
#shop-mini-cart .cart-mini .uk-dropdown {
  min-width: 400px;
  font-size: 12px;
  line-height: 14px;
  padding: 15px;
}
#shop-mini-cart .cart-mini .uk-dropdown .quantity,
#shop-mini-cart .cart-mini .uk-dropdown .price {
  white-space: nowrap;
}
#shop-mini-cart .cart-mini .uk-dropdown .price {
  color: #b8ad2e;
}
#shop-mini-cart .cart-mini .uk-dropdown table {
  width: 100%;
}
#shop-mini-cart .cart-mini .uk-dropdown td {
  padding-bottom: 10px;
  vertical-align: middle;
}
#shop-mini-cart .cart-mini .uk-dropdown .total td {
  padding-top: 5px;
  border-top: 1px solid #0e9b4a;
}
#shop-mini-cart .cart-mini .uk-dropdown .total .price {
  color: #0e9b4a;
}
#shop-mini-cart .cart-mini .uk-dropdown .quantity div {
  background-clip: padding-box;
  background-color: white;
  border: 1px solid #e4e4e4;
  border-radius: 0px;
  box-sizing: border-box;
  height: 24px;
  line-height: 20px;
  margin-right: 5px;
  text-align: center;
  width: 30px;
  font-weight: normal;
  color: #0e9b4a;
}
/*
.page-home {
    .cart-mini {
        .img {
            &> a {
                color: #000;
                .uk-badge {
                    background: #0E9B4A;
                    color: #fff !important;
                }
            }
        }
    }
    
}
*/
.uk-navbar-transparent .uk-navbar-nav > li > a {
  color: #000;
}
.uk-navbar-transparent .uk-navbar-nav > li > a:hover {
  color: #0E9B4A;
}
.page-home .tm-header {
  background: #F3F5F8;
}
.cart {
  margin-top: 60px;
}
.cart .cart-grid {
  font-size: 16px;
}
.cart .cart-grid > * {
  padding-bottom: 18px;
  padding-top: 7px;
}
@media (min-width: 960px) {
  .cart .cart-grid > * {
    border-bottom: 1px solid #dcdcdc;
  }
}
.cart .cart-grid .row-last {
  border-bottom: 1px solid #dcdcdc;
}
.cart input {
  width: 71px;
  height: 35px;
  line-height: 17px;
  background-color: white;
  border: 1px solid #e4e4e4;
  margin-right: 20px;
  text-align: center;
  color: #0e9b4a;
  font-size: 14px;
  font-weight: 400;
}
.cart .total,
.cart .total-price {
  border-bottom: 4px solid #0e9b4a;
  height: 80px !important;
  font-weight: bold;
}
.cart .total > div > div {
  text-align: left;
  width: 100%;
}
.cart .namecategory {
  margin-bottom: 0;
}
.cart .name {
  color: #0e9b4a;
  font-size: 14px;
  font-weight: 700;
  text-align: left;
}
.cart .category {
  color: #333;
  font-size: 14px;
  font-weight: 300;
  text-transform: uppercase;
}
.cart .price {
  width: 100%;
  color: #b8ad2e;
  font-size: 14px;
  font-weight: 700;
}
.cart .texture {
  color: #333;
  font-size: 14px;
  font-weight: 400;
}
@media (min-width: 960px) {
  .cart {
    text-align: left;
  }
  .cart .price {
    text-align: right;
  }
}
.cart .edit,
.cart .remove {
  color: #ccc;
}
.cart .edit:hover,
.cart .remove:hover {
  color: #e6e6e6;
}
.cart .quantity {
  color: #333;
  font-size: 14px;
  font-weight: 400;
  text-transform: uppercase;
}
.cart .quantity .uk-form-controls {
  display: inline-block;
}
.cart .buttons {
  margin-top: 60px;
  width: 520px;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}
.cart .buttons .uk-button {
  width: 250px;
}
.cart .buttons .uk-button.continue {
  margin-right: 20px;
}
.cart .buttons .uk-button.continue .ventry-icon-cart {
  color: #e1d332;
}
.cart .buttons .uk-button.back-link {
  margin-top: 17px;
}
.cart .continue {
  color: #0E9B4A;
}
.cart .promotion-code {
  text-align: center;
  margin-top: 70px;
}
.cart .promotion-code label {
  display: inline-block;
  height: 36px;
  line-height: 36px;
  font-size: 14px;
  font-weight: bold;
  color: #888a88;
  margin-right: 10px;
}
.cart .promotion-code input {
  height: 36px;
  border: 1px solid #878987;
  border-radius: 3px 0 0 3px;
  background-color: #fff;
  margin-right: 0px;
  font-size: inherit;
  font-size: 14px;
  color: #888a88;
  width: 210px;
  text-align: center;
}
.cart .promotion-code .uk-button {
  height: 36px;
  width: 100px;
  line-height: 36px;
  border: 0px solid #878987;
  border-radius: 0 3px 3px 0;
  box-shadow: none;
  font-size: 14px;
}
.cart .total,
.cart .total .price {
  color: #093;
  font-size: 14px;
  font-weight: 700;
}
.cart #cart-notenough {
  text-align: center;
  color: red;
}
.cart-element-quantity {
  text-align: right;
}
.checkout-bar.uk-breadcrumb {
  line-height: 48px;
}
.checkout-bar.uk-breadcrumb > :nth-child(n+2):not(.uk-first-column)::before {
  content: '>';
}
.checkout-bar.uk-breadcrumb > * > span {
  color: #868686;
}
.checkout-bar.uk-breadcrumb > .uk-active > span {
  color: #2C2C2C;
}
.checkout-bar.uk-grid {
  line-height: 30px;
}
.checkout-bar.uk-grid > * {
  border: 0;
}
.checkout-bar.uk-grid .number {
  display: inline-block;
  background: #DCDCDC;
  width: 30px;
  height: 30px;
  line-height: 30px;
  text-align: center;
  border-radius: 50%;
  color: #fff;
  margin-right: 15px;
}
.checkout-bar.uk-grid .uk-active .number {
  background: #0E9B4A;
}
.checkout-right table {
  border-spacing: 0px;
}
.checkout-right table tbody td {
  padding-bottom: 40px;
}
.checkout-right td {
  padding-left: 10px;
  padding-right: 10px;
}
.checkout-right .total td {
  padding-top: 40px;
  border-top: 1px solid #dcdcdc;
}
.checkout-right .total .price {
  color: #0E9B4A;
}
.confirm-addresses h4 {
  color: #0f9b4a;
  font-weight: bolder;
  font-size: 16px;
  margin-top: 20px;
}
#modal-agree .uk-totop {
  display: none !important;
}
#modal-agree #refunds .uk-container .tm-grid-expand:not(:first-child) {
  display: none;
}
#modal-verify-result .uk-modal-dialog {
  padding: 20px;
  text-align: center;
  width: 300px;
}
#modal-verify-result .uk-modal-dialog .l {
  width: 30px;
}
#modal-verify-result .uk-modal-dialog #verify-result {
  line-height: 34px;
}
#modal-verify-result .uk-modal-dialog #verify-result h1 {
  font-size: 16px;
  line-height: 18px;
  margin-bottom: 20px;
  margin-top: 20px;
}
#modal-verify-result .uk-modal-dialog #verify-result p {
  line-height: 16px;
  font-size: 14px;
  margin-top: 0;
  margin-bottom: 0;
}
#modal-verify-result .uk-modal-dialog #verify-result p + p {
  margin-top: 5px;
}
#modal-verify-result .uk-modal-dialog #verify-result .uk-icon {
  font-size: 30px;
  vertical-align: middle;
}
/*
.uk-width-2-12,
.uk-width-small-2-12,
.uk-width-large-2-12 {
  width: 100% / 12 * 2;
}
.uk-width-1-12,
.uk-width-small-1-12,
.uk-width-large-1-12 {
  width: 100% / 12;
}
*/

.ventry-reviews[data-v-4ef29a54] {
  /*
  @media (min-width: 960px) {
    .uk-form-horizontal .uk-form-label {
      line-height: 42px;
      margin-top: 0;
    }
  }
  margin-top: 80px;
  .uk-h2,
  b {
    font-weight: 400;
  }
  .uk-tab {
    & > li {
      & > a {
        border: 1px solid #ebebeb;
        color: #000000 !important;
        font-size: 14px;
        font-weight: 300;
        line-height: 27px;
        margin-left: 0;
      }

      &:hover,
      &.uk-active {
        & > a {
          background-color: #ebebeb;
        }
      }
    }
  }

  .error {
    color: #bd0000;
    font-size: 14px;
    font-weight: 300;
    line-height: 18px;
  }

  .load-more {
    border: 1px solid #ebebeb;
    background-color: #ffffff;
    color: #000000 !important;
    font-size: 14px;
    font-weight: 300;
    margin-top: 75px;
    width: 100%;
    &:hover {
      background-color: #ebebeb;
    }
  }

  .uk-icon-check-circle {
    font-size: 52px;
    color: #009832;
  }

  .uk-padding-large {
    padding: 40px;
  }
  */
}
.contact-form[data-v-7ee7ee16] {
  /*
  @media (min-width: 960px) {
    .uk-form-horizontal .uk-form-label {
      line-height: 42px;
      margin-top: 0;
    }
  }
  margin-top: 80px;
  .uk-h2,
  b {
    font-weight: 400;
  }
  .uk-tab {
    & > li {
      & > a {
        border: 1px solid #ebebeb;
        color: #000000 !important;
        font-size: 14px;
        font-weight: 300;
        line-height: 27px;
        margin-left: 0;
      }

      &:hover,
      &.uk-active {
        & > a {
          background-color: #ebebeb;
        }
      }
    }
  }

  .error {
    color: #bd0000;
    font-size: 14px;
    font-weight: 300;
    line-height: 18px;
  }

  .load-more {
    border: 1px solid #ebebeb;
    background-color: #ffffff;
    color: #000000 !important;
    font-size: 14px;
    font-weight: 300;
    margin-top: 75px;
    width: 100%;
    &:hover {
      background-color: #ebebeb;
    }
  }

  .uk-icon-check-circle {
    font-size: 52px;
    color: #009832;
  }

  .uk-padding-large {
    padding: 40px;
  }
  */
}
.contact-form textarea[data-v-7ee7ee16] {
  min-height: 150px;
  resize: vertical;
}
.contact-form .uk-input[data-v-7ee7ee16] {
  padding: 8px 10px;
  line-height: 16px;
  height: auto;
  font-size: 13px;
  background: rgba(10, 115, 59, 0.3);
  border-radius: 3px;
}
.contact-form .uk-icon-button[data-v-7ee7ee16] {
  border: 0;
  padding: 15px;
  width: 60px;
  height: 54px;
  border-radius: 50%;
  text-align: center;
  background: rgb(76, 207, 94);
  cursor: pointer;
}
.contact-form .uk-icon-button svg[data-v-7ee7ee16] {
  margin-left: auto;
  margin-right: auto;
}
.contact-form .uk-icon-button[data-v-7ee7ee16]:hover {
  background: rgb(45, 126, 56);
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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O0VBRUU7QW9CenNDRjtFWjFhSTtBUnNuREo7QUFDQTs2RUFDNkU7QUFDN0U7O0VBRUU7QW9CdnNDRDtFQUNHO0VBQ0E7RUFDQTtBcEJ5c0NKO0FvQnRzQ0E7O0VaMWJJO0FSb29ESjtBQUNBLE1BQU07QW9CdnNDTjtFQUFxRDtBcEIwc0NyRDtBQUNBOzZFQUM2RTtBQUM3RTs7Ozs7OztFQU9FO0FvQnJzQ0Y7O0VwQndzQ0UsTUFBTTtFb0Jyc0NKO0VBQ0E7RUFDQTtFcEJ1c0NGLE1BQU07RW9CcnNDSjtFcEJ1c0NGLE1BQU07RW9CcnNDSjtFQUNBO0VwQnVzQ0YsTUFBTTtFb0Jyc0NKO0VBQ0E7RXBCdXNDRixNQUFNO0VvQnJzQ0o7RXBCdXNDRixNQUFNO0VvQnJzQ0o7RUFDQTtFQ2piQTtFQUNBO0FyQnluREo7QW9CcnNDQTtFQUFZO0FwQndzQ1o7QUFDQSxVQUFVO0FvQnRzQ1Y7O0VBRUk7RUFDQTtBcEJ3c0NKO0FBQ0E7O0VBRUU7QW9CbnNDRjs7O0VBR0k7QXBCcXNDSjtBQUNBLFVBQVU7QW9CanNDVjs7O0VBR0k7QXBCbXNDSjtBQUNBOztFQUVFO0FvQjlyQ0Y7RVpwZ0JJO0FScXNESjtBb0Joc0NBO0VacmdCSTtBUndzREo7QW9CbHNDQTtFWnRnQkk7QVIyc0RKO0FBQ0E7O0VBRUU7QW9CbHNDRjs7RUFFSTtBcEJvc0NKO0FvQmhzQ0E7RVpsaEJJO0FScXRESjtBb0Jsc0NBO0VabmhCSTtBUnd0REo7QW9CcHNDQTtFWnBoQkk7QVIydERKO0FBQ0E7NkVBQzZFO0FBQzdFOzs7Ozs7RUFNRTtBb0Jsc0NGO0VwQm9zQ0UsTUFBTTtFb0Jsc0NKO0VwQm9zQ0YsTUFBTTtFb0Jsc0NKO0VwQm9zQ0YsTUFBTTtFb0Jsc0NKO0VwQm9zQ0YsTUFBTTtFb0Jsc0NKO0VBQ0E7QXBCb3NDSjtBQUNBOzZFQUM2RTtBQUM3RTs7Ozs7RUFLRTtBb0I3ckNGO0VwQityQ0UsTUFBTTtFb0I3ckNKO0VwQityQ0YsTUFBTTtFb0I3ckNKO0VwQityQ0YsTUFBTTtFb0I3ckNKO0VwQityQ0YsTUFBTTtFb0I3ckNKO0Fw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O0VBQ0E7QS9GeWdKSjtBQUNBLHVCQUF1QjtBK0Z0Z0p2QjtFL0Z3Z0pFLGVBQWU7RStGcmdKYjtJQUFtQjtFL0Z3Z0pyQjtFK0Z2Z0pFO0lBQXVCO0UvRjBnSnpCO0UrRnhnSkU7SUFBb0Q7RS9GMmdKdEQ7RUFDQSxhQUFhO0UrRnpnSlg7SUFBbUQ7RS9GNGdKckQ7RStGMWdKRTtJQUNJO0lBQ0E7RS9GNGdKTjtBQUNGO0FBQ0E7O0VBRUU7QUFDRixlQUFlO0ErRnZnSmY7O0VBQ3dDO0EvRjBnSnhDO0ErRnpnSkE7O0VBQzRDO0EvRjRnSjVDO0ErRjFnSkE7O0VBQ3lFO0EvRjZnSnpFO0FBQ0EsYUFBYTtBK0YzZ0piOztFQUNxRTtBL0Y4Z0pyRTtBK0Y1Z0pBO0VBQ0k7RUFDQTtBL0Y4Z0pKO0ErRjNnSkE7RUFBNkU7QS9GOGdKN0U7QStGN2dKQTtFQUFnRjtBL0ZnaEpoRjtBQUNBOztFQUVFO0FBQ0YsZUFBZTtBK0Y3Z0pmOztFQUN5QztBL0ZnaEp6QztBK0YvZ0pBOztFQUM2QztBL0ZraEo3QztBK0ZoaEpBOztFQUMwRTtBL0ZtaEoxRTtBQUNBLGFBQWE7QStGamhKYjs7RUFDc0U7QS9Gb2hKdEU7QStGbGhKQTtFQUNJO0VBQ0E7QS9Gb2hKSjtBK0ZqaEpBO0VBQThFO0EvRm9oSjlFO0ErRm5oSkE7RUFBaUY7QS9Gc2hKakY7QUFDQTs7RUFFRTtBQUNGLGVBQWU7QStGbmhKZjs7RUFDd0M7QS9Gc2hKeEM7QStGcmhKQTs7RUFDNEM7QS9Gd2hKNUM7QStGdGhKQTs7RUFDeUU7QS9GeWhKekU7QUFDQSxhQUFhO0ErRnZoSmI7O0VBQ3FFO0EvRjBoSnJFO0ErRnhoSkE7RUFDSTtFQUNBO0EvRjBoSko7QStGdmhKQTtFQUE2RTtBL0YwaEo3RTtBK0Z6aEpBO0VBQWdGO0EvRjRoSmhGO0FBQ0EsdUJBQXVCO0ErRjFoSnZCO0UvRjRoSkUsZUFBZTtFK0Z6aEpiOztJQUN3QztFL0Y0aEoxQztFK0YzaEpFOztJQUM0QztFL0Y4aEo5QztFK0Y1aEpFOztJQUN5RTtFL0YraEozRTtFQUNBLGFBQWE7RStGN2hK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VDtBQUNGO0FBQ0E7O0VBRUU7QWlJLzRNRjtFQUNJO0lBQUs7RWpJazVNUDtFaUlqNU1FO0lBQU87RWpJbzVNVDtBQUNGO0FpSWw1TUE7RUFDSTtJQUFLO0VqSXE1TVA7RWlJcDVNRTtJQUFPO0VqSXU1TVQ7QUFDRjtBQUNBOztFQUVFO0FpSXA1TUY7RUFDSTtJQUFLO0VqSXU1TVA7RWlJdDVNRTtJQUFPO0VqSXk1TVQ7QUFDRjtBaUl2NU1BO0VBQ0k7SUFBSztFakkwNU1QO0VpSXo1TUU7SUFBTztFakk0NU1UO0FBQ0Y7QWlJMTVNQTtFQUNJO0lBQUs7RWpJNjVNUDtFaUk1NU1FO0lBQU87RWpJKzVNVDtBQUNGO0FpSTc1TUE7RUFDSTtJQUFLO0VqSWc2TVA7RWlJLzVNRTtJQUFPO0VqSWs2TVQ7QUFDRjtBQUNBOztFQUVFO0FpSS81TUY7RUFDSTtJQUFLO0VqSWs2TVA7RWlJajZNRTtJQUFPO0VqSW82TVQ7QUFDRjtBaUlsNk1BO0VBQ0k7SUFBSztFaklxNk1QO0VpSXA2TUU7SUFBTztFakl1Nk1UO0FBQ0Y7QWlJcjZNQTtFQUNJO0lBQUs7RWpJdzZNUDtFaUl2Nk1FO0lBQU87RWpJMDZNVDtBQUNGO0FpSXg2TUE7RUFDSTtJQUFLO0VqSTI2TVA7RWlJMTZNRTtJQUFPO0VqSTY2TVQ7QUFDRjtBQUNBOztFQUVFO0FpSTE2TUY7RUFDSTtJQUFLO0VqSTY2TVA7RWlJNTZNRTtJQUFPO0VqSSs2TVQ7QUFDRjtBaUk3Nk1BO0VBQ0k7SUFBSztFaklnN01QO0VpSS82TUU7SUFBTztFaklrN01UO0FBQ0Y7QWlJaDdNQTtFQUNJO0lBQUs7RWpJbTdNUDtFaUlsN01FO0lBQU87RWpJcTdNVDtBQUNGO0FpSW43TUE7RUFDSTtJQUFLO0VqSXM3TVA7RWlJcjdNRTtJQUFPO0VqSXc3TVQ7QUFDRjtBQUNBOztFQUVFO0FpSXI3TUY7RUFDSTtJQUFLO0VqSXc3TVA7RWlJdjdNRTtJQUFPO0VqSTA3TVQ7QUFDRjtBQUNBOztFQUVFO0FpSXY3TUY7RUFDSTs7SUFBVztFakkyN01iO0VpSTE3TUU7SUFBTTtFakk2N01SO0VpSTU3TUU7SUFBTTtFakkrN01SO0VpSTk3TUU7SUFBTTtFaklpOE1SO0VpSWg4TUU7SUFBTTtFakltOE1SO0VpSWw4TUU7SUFBTTtFaklxOE1SO0VpSXA4TUU7SUFBTTtFakl1OE1SO0VpSXQ4TUU7SUFBTTtFakl5OE1SO0VpSXg4TUU7SUFBTTtFakkyOE1SO0VpSTE4TUU7SUFBTTtFakk2OE1SO0FBQ0Y7QUFDQTs7RUFFRTtBaUkxOE1EO0VBQ0c7SUFBSztFakk2OE1QO0VpSTU4TUU7SUFBTztFakkrOE1UO0FBQ0Y7QUFDQTs7NkVBRTZFO0FBQzdFOzZFQUM2RTtBa0kzc043RTtFQUNJO0VBQ0E7QWxJNnNOSjtBa0kxc05BO0VBQTBCO0FsSTZzTjFCO0FrSTVzTkE7RUFBMEI7QWxJK3NOMUI7QWtJOXNOQTtFQUEwQjtBbElpdE4xQjtBa0lodE5BO0VBQTBCO0FsSW10TjFCO0FrSWx0TkE7RUFBMEI7QWxJcXROMUI7QWtJbnROQTtFQUEyQjtBbElzdE4zQjtBQUNBOzs7OztFQUtFO0FrSW50TkY7RUFDSTtFbElxdE5GLE1BQU07RWtJbnROSjtBbElxdE5KO0FBQ0EsK0JBQStCO0FrSWx0Ti9CO0VBRUk7SUFBNkI7RWxJb3ROL0I7RWtJbnRORTtJQUE2QjtFbElzdE4vQjtFa0lydE5FO0lBQTZCO0VsSXd0Ti9CO0VrSXZ0TkU7SUFBNkI7RWxJMHROL0I7RWtJenRORTtJQUE2QjtFbEk0dE4vQjtFa0kzdE5FO0lBQTZCO0VsSTh0Ti9CO0VrSTV0TkU7SUFBOEI7RWxJK3ROaEM7RWtJOXRORTtJQUNJO0lBQ0E7RWxJZ3VOTjtBQUNGO0FBQ0EsZ0NBQWdDO0FrSTV0TmhDO0VBRUk7SUFBNkI7RWxJOHROL0I7RWtJN3RORTtJQUE2QjtFbElndU4vQjtFa0kvdE5FO0lBQTZCO0VsSWt1Ti9CO0VrSWp1TkU7SUFBNkI7RWxJb3VOL0I7RWtJbnVORTtJQUE2QjtFbElzdU4vQjtFa0lydU5FO0lBQTZCO0VsSXd1Ti9CO0VrSXR1TkU7SUFBOEI7RWxJeXVOaEM7RWtJeHVORTtJQUNJO0lBQ0E7RWxJMHVOTjtBQUNGO0FBQ0EsdUJBQXVCO0FrSXR1TnZCO0VBRUk7SUFBNkI7RWxJd3VOL0I7RWtJdnVORTtJQUE2QjtFbEkwdU4vQjtFa0l6dU5FO0lBQTZCO0VsSTR1Ti9CO0VrSTN1TkU7SUFBNkI7RWxJOHVOL0I7RWtJN3VORTtJQUE2QjtFbElndk4vQjtFa0kvdU5FO0lBQTZCO0VsSWt2Ti9CO0VrSWh2TkU7SUFBOEI7RWxJbXZOaEM7RWtJbHZORTtJQUNJO0lBQ0E7RWxJb3ZOTjtBQUNGO0FBQ0EsNEJBQTRCO0FrSWh2TjVCO0VBRUk7SUFBOEI7RWxJa3ZOaEM7RWtJanZORTtJQUE4QjtFbElvdk5oQztFa0ludk5FO0lBQThCO0VsSXN2TmhDO0VrSXJ2TkU7SUFBOEI7RWxJd3ZOaEM7RWtJdnZORTtJQUE4QjtFbEkwdk5oQztFa0l6dk5FO0lBQThCO0VsSTR2TmhDO0VrSTF2TkU7SUFBK0I7RWxJNnZOakM7RWtJNXZORTtJQUNJO0lBQ0E7RWxJOHZOTjtBQUNGO0FBQ0E7NkVBQzZFO0FBQzdFOztFQUVFO0FrSXZ2TkY7RUFDSTtFQUNBO0VsSXl2TkYsTUFBTTtFa0l2dk5KO0FsSXl2Tko7QUFDQSxXQUFXO0FrSXR2Tlg7RUFBZ0I7QWxJeXZOaEI7QUFDQSxXQUFXO0FrSXZ2Tlg7RUFBZ0I7QWxJMHZOaEI7QWtJenZOQTtFQUFnQjtBbEk0dk5oQjtBQUNBLGFBQWE7QWtJMXZOYjtFQUFnQjtBbEk2dk5oQjtBa0k1dk5BO0VBQWdCO0FsSSt2TmhCO0FBQ0EsV0FBVztBa0k3dk5YO0VBQWdCO0FsSWd3TmhCO0FrSS92TkE7RUFBZ0I7QWxJa3dOaEI7QWtJandOQTtFQUFnQjtBbElvd05oQjtBa0lud05BO0VBQWdCO0FsSXN3TmhCO0FBQ0EsV0FBVztBa0lwd05YO0VBQWdCO0FsSXV3TmhCO0FrSXR3TkE7RUFBZ0I7QWxJeXdOaEI7QUFDQSxVQUFVO0FrSXZ3TlY7RUFBa0I7QWxJMHdObEI7QWtJendOQTtFQUFtQjtBbEk0d05uQjtBa0kzd05BO0VBQWtCO0FsSTh3TmxCO0FrSTd3TkE7RUFBbUI7QWxJZ3hObkI7QWtJL3dOQTtFQUFvQjtBbElreE5wQjtBQUNBLFNBQVM7QWtJL3dOVDtFQUFpQjtBbElreE5qQjtBQUNBLFdBQVc7QWtJaHhOWDtFQUNJO0VBQ0E7QWxJa3hOSjtBQUNBLCtCQUErQjtBa0kvd04vQjtFbElpeE5FLFVBQVU7RWtJOXdOUjtJQUFtQjtFbElpeE5yQjtFQUNBLFdBQVc7RWtJL3dOVDtJQUFtQjtFbElreE5yQjtFQUNBLFdBQVc7RWtJaHhOVDtJQUFtQjtFbElteE5yQjtFa0lseE5FO0lBQW1CO0VsSXF4TnJCO0VBQ0EsYUFBYTtFa0lueE5YO0lBQW1CO0VsSXN4TnJCO0VrSXJ4TkU7SUFBbUI7RWxJd3hOckI7RUFDQSxXQUFXO0VrSXR4TlQ7SUFBbUI7RWxJeXhOckI7RWtJeHhORTtJQUFtQjtFbEkyeE5yQjtFa0kxeE5FO0lBQW1CO0VsSTZ4TnJCO0VrSTV4TkU7SUFBbUI7RWxJK3hOckI7RUFDQSxXQUFXO0VrSTd4TlQ7SUFBbUI7RWxJZ3lOckI7RWtJL3hORTtJQUFtQjtFbElreU5yQjtFQUNBLFVBQVU7RWtJaHlOUjtJQUFxQjtFbElteU52QjtFa0lseU5FO0lBQXNCO0VsSXF5TnhCO0VrSXB5TkU7SUFBcUI7RWxJdXlOdkI7RWtJdHlORTtJQUFzQjtFbEl5eU54QjtFa0l4eU5FO0lBQXVCO0VsSTJ5TnpCO0VBQ0EsU0FBUztFa0l4eU5QO0lBQW9CO0VsSTJ5TnRCO0VBQ0EsV0FBVztFa0l6eU5UO0lBQ0k7SUFDQTtFbEkyeU5OO0FBQ0Y7QUFDQSxnQ0FBZ0M7QWtJdnlOaEM7RWxJeXlORSxVQUFVO0VrSXR5TlI7SUFBbUI7RWxJeXlOckI7RUFDQSxXQUFXO0VrSXZ5TlQ7SUFBbUI7RWxJMHlOckI7RUFDQSxXQUFXO0VrSXh5TlQ7SUFBbUI7RWxJMnlOckI7RWtJMXlORTtJQUFtQjtFbEk2eU5yQjtFQUNBLGFBQWE7RWtJM3lOWDtJQUFtQjtFbEk4eU5yQjtFa0k3eU5FO0lBQW1CO0VsSWd6TnJCO0VBQ0EsV0FBVztFa0k5eU5UO0lBQW1CO0VsSWl6TnJCO0VrSWh6TkU7SUFBbUI7RWxJbXpOckI7RWtJbHpORTtJQUFtQjtFbElxek5yQjtFa0lwek5FO0lBQW1CO0VsSXV6TnJCO0VBQ0EsV0FBVztFa0lyek5UO0lBQW1CO0VsSXd6TnJCO0VrSXZ6TkU7SUFBbUI7RWxJMHpOckI7RUFDQSxVQUFVO0VrSXh6TlI7SUFBcUI7RWxJMnpOdkI7RWtJMXpORTtJQUFzQjtFbEk2ek54QjtFa0k1ek5FO0lBQXFCO0VsSSt6TnZCO0VrSTl6TkU7SUFBc0I7RWxJaTBOeEI7RWtJaDBORTtJQUF1QjtFbEltME56QjtFQUNBLFNBQVM7RWtJaDBOUDtJQUFvQjtFbEltME50QjtFQUNBLFdBQVc7RWtJajBOVDtJQUNJO0lBQ0E7RWxJbTBOTjtBQUNGO0FBQ0EsdUJBQXVCO0FrSS96TnZCO0VsSWkwTkUsVUFBVTtFa0k5ek5SO0lBQW1CO0VsSWkwTnJCO0VBQ0EsV0FBVztFa0kvek5UO0lBQW1CO0VsSWswTnJCO0VBQ0EsV0FBVztFa0loME5UO0lBQW1CO0VsSW0wTnJCO0VrSWwwTkU7SUFBbUI7RWxJcTBOckI7RUFDQSxhQUFhO0VrSW4wTlg7SUFBbUI7RWxJczBOckI7RWtJcjBORTtJQUFtQjtFbEl3ME5yQjtFQUNBLFdBQVc7RWtJdDBOVDtJQUFtQjtFbEl5ME5yQjtFa0l4ME5FO0lBQW1CO0VsSTIwTnJCO0VrSTEwTkU7SUFBbUI7RWxJNjBOckI7RWtJNTBORTtJQUFtQjtFbEkrME5yQjtFQUNBLFdBQVc7RWtJNzBOVDtJQUFtQjtFbElnMU5yQjtFa0kvME5FO0lBQW1CO0VsSWsxTnJCO0VBQ0EsVUFBVTtFa0loMU5SO0lBQXFCO0VsSW0xTnZCO0VrSWwxTkU7SUFBc0I7RWxJcTFOeEI7RWtJcDFORTtJQUFxQjtFbEl1MU52QjtFa0l0MU5FO0lBQXNCO0VsSXkxTnhCO0VrSXgxTkU7SUFBdUI7RWxJMjFOekI7RUFDQSxTQUFTO0VrSXgxTlA7SUFBb0I7RWxJMjFOdEI7RUFDQSxXQUFXO0VrSXoxTlQ7SUFDSTtJQUNBO0VsSTIxTk47QUFDRjtBQUNBLDRCQUE0QjtBa0l2MU41QjtFbEl5MU5FLFVBQVU7RWtJdDFOUjtJQUFvQjtFbEl5MU50QjtFQUNBLFdBQVc7RWtJdjFOVDtJQUFvQjtFbEkwMU50QjtFQUNBLFdBQVc7RWtJeDFOVDtJQUFvQjtFbEkyMU50QjtFa0kxMU5FO0lBQW9CO0VsSTYxTnRCO0VBQ0EsYUFBYTtFa0kzMU5YO0lBQW9CO0VsSTgxTnRCO0VrSTcxTkU7SUFBb0I7RWxJZzJOdEI7RUFDQSxXQUFXO0VrSTkxTlQ7SUFBb0I7RWxJaTJOdEI7RWtJaDJORTtJQUFvQjtFbEltMk50QjtFa0lsMk5FO0lBQW9CO0VsSXEyTnRCO0VrSXAyTkU7SUFBb0I7RWxJdTJOdEI7RUFDQSxXQUFXO0VrSXIyTlQ7SUFBb0I7RWxJdzJOdEI7RWtJdjJORTtJQUFvQjtFbEkwMk50QjtFQUNBLFVBQVU7RWtJeDJOUjtJQUFzQjtFbEkyMk54QjtFa0kxMk5FO0lBQXVCO0VsSTYyTnpCO0VrSTUyTkU7SUFBc0I7RWxJKzJOeEI7RWtJOTJORTtJQUF1QjtFbElpM056QjtFa0loM05FO0lBQXdCO0VsSW0zTjFCO0VBQ0EsU0FBUztFa0loM05QO0lBQXFCO0VsSW0zTnZCO0VBQ0EsV0FBVztFa0lqM05UO0lBQ0k7SUFDQTtFbEltM05OO0FBQ0Y7QUFDQTs2RUFDNkU7QWtJOTJON0U7RUFBd0I7QWxJaTNOeEI7QWtJLzJOQTtFQUF3QjtBbElrM054QjtBQUNBOzs2RUFFNkU7QW1JaHRPN0U7RUFBdUI7QW5JbXRPdkI7QUFDQTs7RUFFRTtBbUlodE9GO0VBQWlCO0FuSW10T2pCO0FBQ0E7O0VBRUU7QW1JaHRPRjtFQUFzQjtBbkltdE90QjtBbUlsdE9BO0VBQXdCO0FuSXF0T3hCO0FtSXB0T0E7RUFBd0I7QW5JdXRPeEI7QW1JdHRPQTtFQUF3QjtBbkl5dE94QjtBQUNBOzs7RUFHRTtBbUl0dE9GO0VBQW1CO0FuSXl0T25CO0FtSXh0T0E7RUFBb0I7QW5JMnRPcEI7QW1JMXRPQTtFQUFtQjtBbkk2dE9uQjtBbUkzdE9BO0VBQXVCO0FuSTh0T3ZCO0FtSTd0T0E7RUFBd0I7QW5JZ3VPeEI7QW1JL3RPQTtFQUF1QjtBbklrdU92QjtBQUNBOzs2RUFFNkU7QUFDN0U7NkVBQzZFO0FvSTN1TzdFO0VBQ0k7RUFDQTtFQUNBO0VDUEE7QXJJcXZPSjtBb0kxdU9BO0VBQ0k7RUFDQTtFQUNBO0VDWUE7QXJJaXVPSjtBb0lodk9BO0VFNUJTO0F0SSt3T1Q7QW9JbnZPQTtFRXpCUTtFQUNBO0F0SSt3T1I7QUFDQTs2RUFDNkU7QW9JOXVPN0U7RUFDSTtFQUNBO0FwSWd2T0o7QW9JNXVPQTtFQUNJO0VBQ0E7QXBJOHVPSjtBb0kxdU9BO0VBQ0k7RUFDQTtBcEk0dU9KO0FBQ0E7NkVBQzZFO0FvSXZ1TzdFO0VBQWlCO0FwSTB1T2pCO0FvSXp1T0E7RUFBa0I7QXBJNHVPbEI7QW9JM3VPQTtFQUFnQjtBcEk4dU9oQjtBb0k1dU9BO0VBQW1CO0FwSSt1T25CO0FvSTl1T0E7RUFBa0I7QXBJaXZPbEI7QUFDQTs2RUFDNkU7QW9JN3VPN0U7RUFBa0I7QXBJZ3ZPbEI7QUFDQTs2RUFDNkU7QW9JNXVPN0U7RUFBc0I7QXBJK3VPdEI7QW9JOXVPQTtFQUFxQjtBcElpdk9yQjtBb0lodk9BO0VBQXFCO0FwSW12T3JCO0FBQ0E7NkVBQzZFO0FvSS91TzdFO0VBQTJCO0FwSWt2TzNCO0FBQ0E7NkVBQzZFO0FvSTl1TzdFO0VBQWlCO0FwSWl2T2pCO0FvSWh2T0E7RUFBb0I7QXBJbXZPcEI7QW9JbHZPQTtFQUFtQjtBcElxdk9uQjtBb0lwdk9BO0VBQXFCO0FwSXV2T3JCO0FvSXR2T0E7RUFBbUI7QXBJeXZPbkI7QW9JeHZPQTtFQUFtQjtBcEkydk9uQjtBb0kxdk9BO0VBQWtCO0FwSTZ2T2xCO0FBQ0E7NkVBQzZFO0FBQzdFOzs7OztFQUtFO0FvSXh2T0Y7RXBJMHZPRSxNQUFNO0VvSXh2T0o7RXBJMHZPRixNQUFNO0VvSXh2T0o7RXBJMHZPRixNQUFNO0VvSXh2T0o7RXBJMHZPRixNQUFNO0VvSXh2T0o7RUd6R0E7QXZJbzJPSjtBQUNBOzZFQUM2RTtBb0lydk83RTtFQUFnQjtBcEl3dk9oQjtBb0l2dk9BO0VBQWlCO0FwSTB2T2pCO0Fv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QTtFQUEyQjtBOUlzNFAzQjtBQUNBOzZFQUM2RTtBQUM3RTs7Ozs7Ozs7RUFRRTtBOElqNFBGO0U5SW00UEUsTUFBTTtFOElqNFBKO0U5SW00UEYsTUFBTTtFOElqNFBKO0U5SW00UEYsTUFBTTtFOElqNFBKO0U5SW00UEYsTUFBTTtFOElqNFBKO0U5SW00UEYsTUFBTTtFOElqNFBKO0E5SW00UEo7QThJaDRQQTtFOUlrNFBFLE1BQU07RThJaDRQSjtBOUlrNFBKO0FBQ0E7NkVBQzZFO0FBQzdFOzs7RUFHRTtBOEk1M1BGOzs7OztFQUkyQjtBOUkrM1AzQjtBQUNBOzs7RUFHRTtBOEk1M1BGOztFQUN3QjtBOUkrM1B4QjtBQUNBOzs7RUFHRTtBOEk1M1BGO0U5STgzUEUsTUFBTTtFOEk1M1BKO0U5STgzUEYsTUFBTTtFOEk1M1BKO0E5STgzUEo7QUFDQTs7OztFQUlFO0E4STEzUEY7RTlJNDNQRSxNQUFNO0U4STEzUEo7RTlJNDNQRixNQUFNO0U4STEzUEo7RTlJNDNQRixNQUFNO0U4STEzUEo7QTlJNDNQSjtBQUNBOztFQUVFO0E4SXgzUEY7O0VBQ3VCO0E5STIzUHZCO0FBQ0E7NkVBQzZFO0E4SXYzUDdFO0VBQW1CO0E5STAzUG5CO0E4SXozUEE7RUFBcUI7QTlJNDNQckI7QThJMzNQQTtFQUFrQjtBOUk4M1BsQjtBOEk3M1BBO0VBQWtCO0E5SWc0UGxCO0E4SS8zUEE7RUFBd0I7QTlJazRQeEI7QUFDQTs7RUFFRTtBOEkvM1BGO0VBQXNCO0E5SWs0UHRCO0E4SWo0UEE7RUFBd0I7QTlJbzRQeEI7QThJbjRQQTtFQUF1QjtBOUlzNFB2QjtBOElyNFBBO0VBQXlCO0E5SXc0UHpCO0E4SXY0UEE7RUFBMkI7QTlJMDRQM0I7QThJejRQQTtFQUEwQjtBOUk0NFAxQjtBOEkzNFBBO0VBQXlCO0E5STg0UHpCO0E4STc0UEE7RUFBMkI7QTlJZzVQM0I7QThJLzRQQTtFQUEwQjtBOUlrNVAxQjtBQUNBOzZFQUM2RTtBOEk5NFA3RTtFQUFvQjtBOUlpNVBwQjtBOEloNVBBO0VBQWtCO0E5SW01UGxCO0E4SWw1UEE7RUFBcUI7QTlJcTVQckI7QUFDQTs7RUFFRTtBOElsNVBGO0VBQXVDO0E5SXE1UHZDO0FBQ0E7NkVBQzZFO0E4SWo1UDdFO0VBQXVCO0E5SW81UHZCO0E4SW41UEE7RUFBd0I7QTlJczVQeEI7QThJcjVQQTtFQUF1QjtBOUl3NVB2QjtBOEl2NVBBO0VBQXdCO0E5STA1UHhCO0FBQ0E7O0VBRUU7QThJdjVQRjtFQUFpQztBOUkwNVBqQztBOEl4NVBBO0VBQW1DO0E5STI1UG5DO0E4STE1UEE7RUFBb0M7QTlJNjVQcEM7QThJNTVQQTtFQUFtQztBOUkrNVBuQztBOEk5NVBBO0VBQW9DO0E5SWk2UHBDO0FBQ0E7NkVBQzZFO0FBQzdFOzs7O0VBSUU7QThJNTVQRjtFQUVJO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFOUk2NVBOO0U4STE1UEU7SUFDSTtJOUk0NVBKLE1BQU07SThJMTVQRjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0k5STQ1UEosTUFBTTtJOEkxNVBGO0lBQ0E7SUFDQTtJQUNBO0k5STQ1UEosTUFBTTtJOEkxNVBGO0U5STQ1UE47QUFDRjtBQUNBOzZFQUM2RTtBQUM3RTs7Ozs7RUFLRTtBOElwNVBGOztFQUdJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUN4VkE7RUFFQTtBL0k2dVFKO0FBQ0EsTUFBTTtBOEluNVBOO0VBRUU7O0lBQzhDO0U5SXE1UDlDO0FBQ0Y7QUFDQTs2RUFDNkU7QUFDN0U7Ozs7RUFJRTtBOEkvNFBGO0U5SWk1UEUsTUFBTTtFOEkvNFBKO0VBQ0E7RUFDQTtFOUlpNVBGLE1BQU07RThJLzRQSjtFRTVXQTtFQUlBO0FoSjJ2UUo7QUFDQSxNQUFNO0E4SS80UE47RUFDSTtFQUNBO0E5SWk1UEo7QUFDQSxVQUFVO0E4STk0UFY7RUFDSTtFOUlnNVBGLE1BQU07RThJOTRQSjtBOUlnNVBKO0E4STU0UEE7RUFBbUM7QTlJKzRQbkM7QThJNzRQQTtFQUFtQjtBOUlnNVBuQjtBQUNBOzZFQUM2RTtBOEk1NFA3RTtFQUFlO0E5SSs0UGY7QUFDQTs2RUFDNkU7QUFDN0U7OztFQUdFO0E4STE0UEY7O0VBRWE7QTlJNDRQYjtBQUNBLE1BQU07QThJMTRQTjtFQUFrQjtBOUk2NFBsQjtBQUNBOzZFQUM2RTtBQUM3RTs7RUFFRTtBOEl4NFBGO0VBQWU7QTlJMjRQZjtBQUNBOzZFQUM2RTtBOEl2NFA3RTtFQUFxQjtBOUkwNFByQjtBOEl6NFBBO0VBQW1CO0E5STQ0UG5CO0E4STM0UEE7RUFBb0I7QTlJODRQcEI7QThJNzRQQTtFQUFtQjtBOUlnNVBuQjtBOEkvNFBBO0VBQW9CO0E5SWs1UHBCO0E4SWo1UEE7RUFBd0I7QTlJbzVQeEI7QThJbjVQQTtFQUF1QjtBOUlzNVB2QjtBOElyNVBBO0VBQXVCO0E5SXc1UHZCO0E4SXY1UEE7RUFBdUI7QTlJMDVQdkI7QThJejVQQTtFQUF1QjtBOUk0NVB2QjtBOEkzNVBBO0VBQXNCO0E5STg1UHRCO0E4STc1UEE7RUFBZ0I7QTlJZzZQaEI7QThJLzVQQTtFQUF1QjtBOUlrNlB2QjtBOElqNlBBO0VBQWtCO0E5SW82UGxCO0E4SW42UEE7RUFBdUI7QTlJczZQdkI7QUFDQTs0RUFDNEU7QThJbDZQNUU7RUFBdUI7QTlJcTZQdkI7QUFDQTs0RUFDNEU7QThJajZQNUU7RUFBZ0M7QTlJbzZQaEM7QThJbjZQQTtFQUFrQztBOUlzNlBsQztBOElyNlBBO0VBQWlDO0E5SXc2UGpDO0E4SXY2UEE7RUFBbUM7QTlJMDZQbkM7QThJejZQQTtFQUFvQztBOUk0NlBwQztBOEkzNlBBO0VBQW1DO0E5STg2UG5DO0E4STc2UEE7RUFBcUM7QTlJZzdQckM7QThJLzZQQTtFQUFvQztBOUlrN1BwQztBQUNBOzs2RUFFNkU7QWlKeDVRN0U7RUFBVztBakoyNVFYO0FpSjE1UUE7RUFBa0I7QWpKNjVRbEI7QUFDQTs2RUFDNkU7QUFDN0U7OztFQUdFO0FpSnY1UUY7RUFBZ0I7QWpKMDVRaEI7QWlKejVRQTtFQUFrQjtBako0NVFsQjtBaUozNVFBO0VBQWlCO0FqSjg1UWpCO0FpSjc1UUE7RUFBbUI7QWpKZzZRbkI7QWlKLzVRQTtFQUFrQjtBakprNlFsQjtBQUNBLCtCQUErQjtBaUovNVEvQjtFQUVJO0lBQW1CO0VqSmk2UXJCO0VpSmg2UUU7SUFBcUI7RWpKbTZRdkI7RWlKbDZRRTtJQUFvQjtFakpxNlF0QjtFaUpwNlFFO0lBQXNCO0VqSnU2UXhCO0VpSnQ2UUU7SUFBcUI7RWpKeTZRdkI7QUFDRjtBQUNBLGdDQUFnQztBaUp0NlFoQztFQUVJO0lBQW1CO0VqSnc2UXJCO0VpSnY2UUU7SUFBcUI7RWpKMDZRdkI7RWlKejZRRTtJQUFvQjtFako0NlF0QjtFaUozNlFFO0lBQXNCO0VqSjg2UXhCO0VpSjc2UUU7SUFBcUI7RWpKZzdRdkI7QUFDRjtBQUNBLHVCQUF1QjtBaUo3NlF2QjtFQUVJO0lBQW1CO0VqSis2UXJCO0VpSjk2UUU7SUFBcUI7RWpKaTdRdkI7RWlKaDdRRTtJQUFvQjtFakptN1F0QjtFaUpsN1FFO0lBQXNCO0VqSnE3UXhCO0VpSnA3UUU7SUFBcUI7RWpKdTdRdkI7QUFDRjtBQUNBLDRCQUE0QjtBaUpwN1E1QjtFQUVJO0lBQW9CO0VqSnM3UXRCO0VpSnI3UUU7SUFBc0I7RWpKdzdReEI7RWlKdjdRRTtJQUFxQjtFakowN1F2QjtFaUp6N1FFO0lBQXVCO0VqSjQ3UXpCO0VpSjM3UUU7SUFBc0I7RWpKODdReEI7QUFDRjtBQUNBOzs7RUFHRTtBaUp6N1FGO0VBQW1CO0FqSjQ3UW5CO0FpSjM3UUE7RUFBZTtBako4N1FmO0FpSjc3UUE7RUFBa0I7QWpKZzhRbEI7QWlKLzdRQTtFQUFrQjtBakprOFFsQjtBQUNBOzZFQUM2RTtBaUo3N1E3RTtFQUFlO0FqSmc4UWY7QWlKLzdRQTtFQUF1QjtBakprOFF2QjtBaUpqOFFBO0VBQWtCO0FqSm84UWxCO0FpSm44UUE7RUFBMEI7QWpKczhRMUI7QUFDQTs2RUFDNkU7QWlKajhRN0U7RUFBa0I7QWpKbzhRbEI7QWlKbjhRQTtFQUFnQjtBakpzOFFoQjtBaUpyOFFBO0VBQXdCO0FqSnc4UXhCO0FBQ0E7OztFQUdFO0FpSnA4UUY7RUFBd0I7QWpKdThReEI7QWlKdDhRQTtFQUFvQjtBakp5OFFwQjtBaUp4OFFBO0VBQXVCO0FqSjI4UXZCO0FpSjE4UUE7RUFBdUI7QWpKNjhRdkI7QWlKNThRQTtFQUF3QjtBakorOFF4QjtBaUo5OFFBO0VBQXVCO0FqSmk5UXZCO0FBQ0E7NkVBQzZFO0FBQzdFOztFQUVFO0FpSjU4UUY7RUFBaUI7QWpKKzhRakI7QWlKOThRQTtFQUFnQjtBakppOVFoQjtBQUNBLCtCQUErQjtBaUo5OFEvQjtFQUVJO0lBQW9CO0VqSmc5UXRCO0VpSi84UUU7SUFBbUI7RWpKazlRckI7QUFDRjtBQUNBLGdDQUFnQztBaUovOFFoQztFQUVJO0lBQW9CO0VqSmk5UXRCO0VpSmg5UUU7SUFBbUI7RWpKbTlRckI7QUFDRjtBQUNBLHVCQUF1QjtBaUpoOVF2QjtFQUVJO0lBQW9CO0VqSms5UXRCO0VpSmo5UUU7SUFBbUI7RWpKbzlRckI7QUFDRjtBQUNBLDRCQUE0QjtBaUpqOVE1QjtFQUVJO0lBQXFCO0VqSm05UXZCO0VpSmw5UUU7SUFBb0I7RWpKcTlRdEI7QUFDRjtBQUNBOzZFQUM2RTtBQUM3RTs7O0VBR0U7QUFDRjs7O0VBR0U7QWlKOThRRjtFQUFnQjtBakppOVFoQjtBQUNBOzs7RUFHRTtBaUo5OFFGO0VBQWdCO0FqSmk5UWhCO0FBQ0E7OztFQUdFO0FpSjk4UUY7RUFBYTtBakppOVFiO0FBQ0E7OzZFQUU2RTtBQUM3RTs7RUFFRTtBa0poblJGO0VBQWE7QWxKbW5SYjtBa0psblJBO0VBQWlCO0FsSnFuUmpCO0FrSm5uUkE7RUFBaUI7QWxKc25SakI7QWtKcm5SQTtFQUFvQjtBbEp3blJwQjtBa0p2blJBO0VBQWtCO0FsSjBuUmxCO0FrSnpuUkE7RUFBbUI7QWxKNG5SbkI7QUFDQTs2RUFDNkU7QWtKeG5SN0U7RUFBbUI7QWxKMm5SbkI7QWtKMW5SQTtFQUF1QjtBbEo2blJ2QjtBa0ozblJBO0VBQXVCO0FsSjhuUnZCO0FrSjduUkE7RUFBMEI7QWxKZ29SMUI7QWtKL25SQTtFQUF3QjtBbEprb1J4QjtBa0pqb1JBO0VBQXlCO0FsSm9vUnpCO0FBQ0E7NkVBQzZFO0FrSmhvUjdFO0VBQW9CO0FsSm1vUnBCO0FrSmxvUkE7RUFBd0I7QWxKcW9SeEI7QWtKbm9SQTtFQUF3QjtBbEpzb1J4QjtBa0pyb1JBO0VBQTJCO0FsSndvUjNCO0FrSnZvUkE7RUFBeUI7QWxKMG9SekI7QWtKem9SQTtFQUEwQjtBbEo0b1IxQjtBQUNBOzZFQUM2RTtBa0p4b1I3RTtFQUFtQjtBbEoyb1JuQjtBa0oxb1JBO0VBQXVCO0FsSjZvUnZCO0FrSjNvUkE7RUFBdUI7QWxKOG9SdkI7QWtKN29SQTtFQUEwQjtBbEpncFIxQjtBa0ovb1JBO0VBQXdCO0FsSmtwUnhCO0FrSmpwUkE7RUFBeUI7QWxKb3BSekI7QUFDQSx1QkFBdUI7QWtKbHBSdkI7RUFFSTtJQUFtQjtFbEpvcFJyQjtFa0pucFJFO0lBQXVCO0VsSnNwUnpCO0VrSnBwUkU7SUFBdUI7RWxKdXBSekI7RWtKdHBSRTtJQUEwQjtFbEp5cFI1QjtFa0p4cFJFO0lBQXdCO0VsSjJwUjFCO0VrSjFwUkU7SUFBeUI7RWxKNnBSM0I7QUFDRjtBQUNBOzZFQUM2RTtBa0p4cFI3RTtFQUFvQjtBbEoycFJwQjtBa0oxcFJBO0VBQXdCO0FsSjZwUnhCO0FrSjNwUkE7RUFBd0I7QWxKOHBSeEI7QWtKN3BSQTtFQUEyQjtBbEpncVIzQjtBa0ovcFJBO0VBQXlCO0FsSmtxUnpCO0FrSmpxUkE7RUFBMEI7QWxKb3FSMUI7QUFDQSx1QkFBdUI7QWtKbHFSdkI7RUFFSTtJQUFvQjtFbEpvcVJ0QjtFa0pucVJFO0lBQXdCO0VsSnNxUjFCO0VrSnBxUkU7SUFBd0I7RWxKdXFSMUI7RWtKdHFSRTtJQUEyQjtFbEp5cVI3QjtFa0p4cVJFO0lBQXlCO0VsSjJxUjNCO0VrSjFxUkU7SUFBMEI7RWxKNnFSNUI7QUFDRjtBQUNBOzZFQUM2RTtBa0p4cVI3RTtFQUNJO0VBQ0E7QWxKMHFSSjtBa0p2cVJBO0VBQXNCO0FsSjBxUnRCO0FrSnpxUkE7RUFBeUI7QWxKNHFSekI7QWtKM3FSQTtFQUF1QjtBbEo4cVJ2QjtBa0o3cVJBO0VBQXdCO0FsSmdyUnhCO0FrSjlxUkE7RUFDSTtFQUNBO0FsSmdyUko7QUFD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RjtFQUFvRjtBdEordVNwRjtBQUNBOzZFQUM2RTtBQUM3RTs7RUFFRTtBQUNGLCtFQUErRTtBc0oxdVMvRTtFQUNJO0lBQW1CO0V0SjZ1U3JCO0FBQ0Y7QUFDQSwrREFBK0Q7QXNKM3VTL0Q7RUFDSTtJQUFxQjtFdEo4dVN2QjtBQUNGO0FBQ0E7OzZFQUU2RTtBQUM3RTs7OztFQUlFO0F1SjUxU0Y7Ozs7Ozs7OztFdEptakJJO0FEb3pSSjtBdUp2MlNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7RXRKOGpCUTtBRDZ6UlI7QXVKMzNTQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0V0SnFrQlE7QURtMVJSO0F1Sng1U0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFdEpnbEJRO0FEcTJSUjtBdUpyN1NBOzs7Ozs7Ozs7RXRKd2xCUztBRHcyUlQ7QXVKaDhTQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0V0SnltQlE7QURrL1JSO0F1SjNsVEE7Ozs7Ozs7OztFcEo4Vkk7QUh3d1NKO0F1SnRtVEE7Ozs7Ozs7OztFcEppV0k7QUhneFNKO0F1SmpuVEE7Ozs7Ozs7Ozs7Ozs7Ozs7OztFdEpzcEJRO0FEKytSUjtBdUpyb1RBOzs7Ozs7Ozs7RXRKOHBCYTtBRGsvUmI7QXVKaHBUQTs7Ozs7Ozs7O0V0SitwQnFCO0FENC9SckI7QXVKM3BUQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VuSnFHUTtBSjBrVFI7QXVKL3FUQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VuSjRHUTtBSmdtVFI7QXVKNXNUQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VuSm1IUTtBSnNuVFI7QXVKenVUQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VuSjBIUTtBSjRvVFI7QXVKdHdUQTs7Ozs7Ozs7O0VqSm9OZ0M7QU42alRoQztBdUpqeFRBOzs7Ozs7Ozs7RWpKc05pQztBTnNrVGpDO0F1SjV4VEE7Ozs7Ozs7OztFakp3TmdDO0FOK2tUaEM7QXVKdnlUQTs7Ozs7Ozs7O0VqSjBOaUM7QU53bFRqQztBdUpselRBOzs7Ozs7Ozs7RWpKNE5rQztBTmltVGxDO0F1Sjd6VEE7Ozs7Ozs7OztFbEpxU1E7QUxtaVRSO0F1SngwVEE7Ozs7Ozs7OztFbEowU1E7QUx5aVRSO0F1Sm4xVEE7Ozs7Ozs7Ozs7Ozs7Ozs7OztFbEpnVFE7QUx1alRSO0F1SnYyVEE7Ozs7Ozs7OztFL0lqQkk7QVJtNFRKO0F1SmwzVEE7Ozs7Ozs7Ozs7Ozs7Ozs7OztFaEp5SFE7QVA2d1RSO0F1SnQ0VEE7Ozs7Ozs7OztFaEo4SFE7QVBteFRSO0F1Smo1VEE7Ozs7Ozs7OztFaEptSVE7QVB5eFRSO0F1SjU1VEE7Ozs7Ozs7OztFN0kyTWdDO0FWNHRUaEM7QXVKdjZUQTs7Ozs7Ozs7O0U3STRNbUM7QVZzdVRuQztBdUpsN1RBOzs7Ozs7Ozs7RTdJNk1rQztBVmd2VGxDO0F1Sjc3VEE7Ozs7Ozs7OztFN0k4TW9DO0FWMHZUcEM7QXVKeDhUQTs7Ozs7Ozs7O0UvSWpCSTtBUm8rVEo7QXVKbjlUQTs7Ozs7Ozs7OztFN0lxTlE7QVYwd1RSO0F1Si85VEE7Ozs7Ozs7OztFN0k2TjJDO0FWNndUM0M7QXVKMStUQTs7Ozs7Ozs7O0UxSW1SUTtBYmt1VFI7QXVKci9UQTs7Ozs7Ozs7O0UxSXdSUTtBYnd1VFI7QXVKaGdVQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0UxSThSUTtBYnN2VFI7QXVKcGhVQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0UxSXFTUTtBYjR3VFI7QXVKampVQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0UxSTJTUTtBYjB4VFI7QXVKcmtVQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0UxSWlUUTtBYnd5VFI7QXVKemxVQTs7Ozs7Ozs7O0V2STZMUTtBaEJ1NlRSO0F1SnBtVUE7Ozs7Ozs7OztFdklrTVE7QWhCNjZUUjtBdUovbVVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7RXZJd01RO0FoQjI3VFI7QXVKbm9VQTs7Ozs7Ozs7O0V2SWlOUTtFQUNBO0FoQjY3VFI7QXVKL29VQTs7Ozs7Ozs7O0V2SXVOUTtFQUNBO0FoQm04VFI7QXVKM3BVQTs7Ozs7Ozs7O0V2STZOUTtFQUNBO0FoQnk4VFI7QXVKdnFVQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VuSTZ2QlE7RUFDQTtFQUNBO0VFN29CSjtBdEJxbFVKO0FvQnI4U1E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUNJO0VBQ0E7RUUvb0JSO0F0QmluVUo7QXVKdHVVQTs7Ozs7Ozs7O0VuSTZ3QjZCO0FwQm8rUzdCO0F1Smp2VUE7Ozs7Ozs7OztFbkkrd0JnQztBcEI2K1NoQztBdUo1dlVBOzs7Ozs7Ozs7RS9JakJJO0FSd3hVSjtBdUp2d1VBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7RS9JakJJO0FSNHlVSjtBdUozeFVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7RW5Jb3lCUTtFRTNxQko7QXRCdXJVSjtBdUpoelVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7RW5JMnlCUTtFRS9xQko7QXRCeXNVSjtBdUpyMFVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RW5JbXpCUTtFRW5yQko7QXRCbXVVSjtBdUpuMlVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RW5JMnpCUTtBcEJxa1RSO0F1Smg0VUE7Ozs7Ozs7OztFL0lqQkk7QVI0NVVKO0F1SjM0VUE7Ozs7Ozs7OztFL0lqQkk7QVJ1NlVKO0F1SnQ1VUE7Ozs7Ozs7OztFL0lqQkk7QVJrN1VKO0F1Smo2VUE7Ozs7Ozs7OztFaElzRjZCO0F2QnMxVTdCO0F1SjU2VUE7Ozs7Ozs7OztFbkkwMEJvQjtBcEI2bVRwQjtBdUp2N1VBOzs7Ozs7Ozs7RW5JMjBCMEI7QXBCdW5UMUI7QXVKbDhVQTs7Ozs7Ozs7Ozs7OztFL0g0WVE7RUFDQTtBeEJxa1VSO0F1Smw5VUE7Ozs7Ozs7Ozs7Ozs7RS9Ia1pRO0VBQ0E7QXhCK2tVUjtBdUpsK1VBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFL0h5WlE7RUFDQTtBeEJxbVVSO0F1Si8vVUE7Ozs7Ozs7Ozs7Ozs7RS9IbWFRO0VBQ0E7QXhCMm1VUjtBdUovZ1ZBOzs7Ozs7Ozs7Ozs7O0UvSHlhUTtFQUNBO0F4QnFuVVI7QXVKL2hWQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RS9IZ2JRO0VBQ0E7QXhCMm9VUjtBdUo1alZBOzs7Ozs7Ozs7Ozs7O0UvSDBiUTtFQUNBO0F4QmlwVVI7QXVKNWtWQTs7Ozs7Ozs7Ozs7OztFL0hnY1E7RUFDQTtBeEIycFVSO0F1SjVsVkE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0UvSHVjUTtFQUNBO0F4QmlyVVI7QXVKem5WQTs7Ozs7Ozs7Ozs7OztFL0hpZFE7QXhCdXJVUjtBdUp4b1ZBOzs7Ozs7Ozs7Ozs7O0UvSHNkUTtBeEJpc1VSO0F1SnZwVkE7Ozs7Ozs7Ozs7Ozs7RS9IMmRRO0F4QjJzVVI7QXVKdHFWQTs7Ozs7Ozs7O0UvSG9lUTtBeEI2c1VSO0F1SmpyVkE7Ozs7Ozs7OztFL0h3ZTRCO0F4Qm90VTVCO0FvQ2gyVUk7Ozs7Ozs7OztFQUNJO0VBQ0E7QXBDMDJVUjtBdUp4c1ZBOzs7Ozs7Ozs7Ozs7O0UvR21CUTtBeENvc1ZSO0F1SnZ0VkE7Ozs7Ozs7Ozs7Ozs7RS9Hd0JRO0F4QzhzVlI7QXVKdHVWQTs7Ozs7Ozs7O0U1R2dDUTtFQ1RnQjtFQ1JwQjtBN0NvdVZKO0F1Sm52VkE7Ozs7Ozs7OztFNUdxQ1E7RUNic0I7RUNOMUI7QTdDOHVWSjtBdUpod1ZBOzs7Ozs7Ozs7RTVHMENRO0VDakJ1QjtFQ0ozQjtBN0N3dlZKO0F1Sjd3VkE7Ozs7Ozs7OztFeEd5QlE7RUFDQTtFRWpCSjtBakRpeFZKO0F1SjF4VkE7Ozs7Ozs7OztFeEcrQlE7RUVuQko7QWpEMHhWSjtBdUp0eVZBOzs7Ozs7Ozs7RWhHMENRO0VBQ0E7QXZEdXdWUjtBdUpselZBOzs7Ozs7Ozs7RTlGbUVRO0VBQ0E7QXpEMHZWUjtBdUo5elZBOzs7Ozs7Ozs7RXpGbUVnQztBOURzd1ZoQztBdUp6MFZBOzs7Ozs7Ozs7RTFGbUVRO0E3RGl4VlI7QXVKcDFWQTs7Ozs7Ozs7O0VwRjRTdUI7QW5FbWpWdkI7QXVKLzFWQTs7Ozs7Ozs7O0VwRjhTb0M7QW5FNGpWcEM7QXVKMTJWQTs7Ozs7Ozs7O0VwRm9UaUM7QW5FaWtWakM7QXVKcjNWQTs7Ozs7Ozs7O0VwRnFUdUM7QW5FMmtWdkM7QXVKaDRWQTs7Ozs7Ozs7O0VwRjRUUTtBbkUra1ZSO0F1SjM0VkE7Ozs7Ozs7OztFcEZpVVE7QW5FcWxWUjtBdUp0NVZBOzs7Ozs7Ozs7RXBGc1VRO0FuRTJsVlI7QXVKajZWQTs7Ozs7Ozs7O0VwRitVUTtBbkU2bFZSO0F1SjU2VkE7Ozs7Ozs7OztFcEY0VlE7QW5FMmxWUjtBdUp2N1ZBOzs7Ozs7Ozs7RXBGaVdRO0FuRWltVlI7QXVKbDhWQTs7Ozs7Ozs7O0VqRndCSTtBdEVxN1ZKO0F1Sjc4VkE7Ozs7Ozs7OztFbEZ3RVE7RUVyQjBCO0F2RXM2VmxDO0F1Sno5VkE7Ozs7Ozs7OztFbEY2RVE7QXJFdTVWUjtBdUpwK1ZBOzs7Ozs7Ozs7RS9ERnlCO0F4RmkvVnpCO0F1Si8rVkE7Ozs7Ozs7Ozs7Ozs7Ozs7OztFekQyRWlDO0E5Rnc3VmpDO0F1Sm5nV0E7Ozs7Ozs7OztFekQ4RWtDO0E5Rmc4VmxDO0F1SjlnV0E7Ozs7Ozs7OztFeERtWFE7QS9Gc3FWUjtBdUp6aFdBOzs7Ozs7Ozs7RXhEd1hRO0EvRjRxVlI7QXVKcGlXQTs7Ozs7Ozs7O0V2RDBmUTtBaEdxalZSO0F1Si9pV0E7Ozs7Ozs7OztFdkQrZlE7RUVyYmlDO0FsR2kvVnpDO0F1SjNqV0E7Ozs7Ozs7OztFdkRvZ0JRO0VFemJrQztBbEc0L1YxQztBdUp2a1dBOzs7Ozs7Ozs7RXZEeWdCUTtBaEd5a1ZSO0F1SmxsV0E7Ozs7Ozs7OztFdkQ4Z0JRO0FoRytrVlI7QXVKN2xXQTs7Ozs7Ozs7O0V2RGtoQm9DO0FoR3NsVnBDO0F1SnhtV0E7Ozs7Ozs7OztFdkRvaEIwQztBaEcrbFYxQztBdUpubldBOzs7Ozs7Ozs7RXZEc2hCbUQ7QWhHd21WbkQ7QXVKOW5XQTs7Ozs7Ozs7O0V2RDZoQlE7QWhHNG1WUjtBdUp6b1dBOzs7Ozs7Ozs7RXZEa2lCUTtBaEdrblZSO0F1SnBwV0E7Ozs7Ozs7OztFdkR1aUJRO0FoR3duVlI7QXVKL3BXQTs7Ozs7Ozs7O0V2RDRpQlE7QWhHOG5WUjtBdUoxcVdBOzs7Ozs7Ozs7RXZEaWpCUTtBaEdvb1ZSO0F1SnJyV0E7Ozs7Ozs7OztFdkRxakJvQztBaEcyb1ZwQztBdUpoc1dBOzs7Ozs7Ozs7RXZEdWpCMEM7QWhHb3BWMUM7QXVKM3NXQTs7Ozs7Ozs7O0V2RHlqQm1EO0FoRzZwVm5EO0F1SnR0V0E7Ozs7Ozs7OztFdkRna0JRO0FoR2lxVlI7QXVKanVXQTs7Ozs7Ozs7O0V2RHFrQlE7QWhHdXFWUjtBdUo1dVdBOzs7Ozs7Ozs7RXZEMGtCUTtBaEc2cVZSO0F1SnZ2V0E7Ozs7Ozs7OztFdkQra0JRO0FoR21yVlI7QXVKbHdXQTs7Ozs7Ozs7O0V2RG9sQlE7QWhHeXJWUjtBdUo3d1dBOzs7Ozs7Ozs7RXZEeWxCUTtBaEcrclZSO0F1Snh4V0E7Ozs7Ozs7OztFdkQ4bEJRO0FoR3FzVlI7QXVKbnlXQTs7Ozs7Ozs7O0V2RG1tQlE7QWhHMnNWUjtBdUo5eVdBOzs7Ozs7Ozs7RXZEdW1Cc0M7QWhHa3RWdEM7QXVKenpXQTs7Ozs7Ozs7O0V2RHltQjRDO0FoRzJ0VjVDO0F1SnAwV0E7Ozs7Ozs7OztFdkQybUJxRDtBaEdvdVZyRDtBdUovMFdBOzs7Ozs7Ozs7RXZEa25CUTtBaEd3dVZSO0F1SjExV0E7Ozs7Ozs7OztFcERzbEJRO0FuRyt3VlI7QXVKcjJXQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VwRDRsQlE7QW5HNnhWUjtBdUp6M1dBOzs7Ozs7Ozs7RXBEaW1CUTtBbkdteVZSO0F1SnA0V0E7Ozs7Ozs7OztFcERzbUJRO0FuR3l5VlI7QXVKLzRXQTs7Ozs7Ozs7O0VwRCttQlE7QW5HMnlWUjtBdUoxNVdBOzs7Ozs7Ozs7RXBEd25CUTtBbkc2eVZSO0F1SnI2V0E7Ozs7Ozs7Ozs7Ozs7Ozs7OztFcEQ4bkJRO0FuRzJ6VlI7QXVKejdXQTs7Ozs7Ozs7O0VoRDJNUTtBdkd5dldSO0F1SnA4V0E7Ozs7Ozs7OztFaERnTlE7QXZHK3ZXUjtBdUovOFdBOzs7Ozs7Ozs7RWhEcU5RO0F2R3F3V1I7QXVKMTlXQTs7Ozs7Ozs7O0VoRDhOUTtBdkd1d1dSO0F1SnIrV0E7Ozs7Ozs7OztFaER1T1E7RUFDQTtBdkd5d1dSO0F1SmovV0E7Ozs7Ozs7OztFaEQ2T1E7RUFDQTtBdkcrd1dSO0F1SjcvV0E7Ozs7Ozs7OztFaERtUFE7RUFDQTtBdkdxeFdSO0F1SnpnWEE7Ozs7Ozs7OztFaER5UFE7RUFDQTtBdkcyeFdSO0F1SnJoWEE7Ozs7Ozs7OztFaERtUVE7QXZHNnhXUjtBdUpoaVhBOzs7Ozs7Ozs7RTVDbUZRO0EzR3c5V1I7QXVKM2lYQTs7Ozs7Ozs7O0U1Q3dGUTtBM0c4OVdSO0F1SnRqWEE7Ozs7Ozs7OztFM0N3QzJDO0E1R3loWDNDO0F1SmprWEE7Ozs7Ozs7OztFNUNrR1E7QTNHMCtXUjtBdUo1a1hBOzs7Ozs7Ozs7RTVDMkdRO0EzRzQrV1I7QXVKdmxYQTs7Ozs7Ozs7O0UxQzRGUTtFQ3NFSjtBOUdpOFdKO0F1Sm5tWEE7Ozs7Ozs7OztFMUNpR1E7RUNvRUo7QTlHMDhXSjtBdUovbVhBOzs7Ozs7Ozs7RTFDc0dRO0VDa0VKO0E5R205V0o7QXVKM25YQTs7Ozs7Ozs7O0UxQzJHUTtFQ2dFSjtBOUc0OVdKO0FrSHovV0k7Ozs7Ozs7OztFQUFZO0FsSG9nWGhCO0F1SmxwWEE7Ozs7Ozs7OztFdENpS1E7QWpINC9XUjtBdUo3cFhBOzs7Ozs7Ozs7RXRDc0tRO0VDZEo7QWxIaWhYSjtBdUp6cVhBOzs7Ozs7Ozs7RXRDMktRO0VDaEJKO0FsSDBoWEo7QXVKcnJYQTs7Ozs7Ozs7O0V0Q2dMUTtBakhnaFhSO0F1SmhzWEE7Ozs7Ozs7OztFbENtRlE7QXJId25YUjtBdUozc1hBOzs7Ozs7Ozs7RWxDd0ZRO0FySDhuWFI7QXVKdHRYQTs7Ozs7Ozs7O0VsQzZGUTtBckhvb1hSO0F1Smp1WEE7Ozs7Ozs7OztFL0JxSFE7QXhIdW5YUjtBdUo1dVhBOzs7Ozs7Ozs7RS9CMEhRO0F4SDZuWFI7QXVKdnZYQTs7Ozs7Ozs7O0UvQitIUTtBeEhtb1hSO0F1Smx3WEE7Ozs7Ozs7OztFL0JvSVE7QXhIeW9YUjtBMkhudVhJOzs7Ozs7Ozs7RUFBVztBM0g4dVhmO0E0SC93WEk7Ozs7Ozs7OztFQUFXO0E1SDB4WGY7QXVKbnlYQTs7Ozs7Ozs7O0UxQjZHUTtBN0hpc1hSO0F1Sjl5WEE7Ozs7Ozs7OztFMUJrSFE7QTdIdXNYUjtBdUp6elhBOzs7Ozs7Ozs7RTFCdUhRO0E3SDZzWFI7QXVKcDBYQTs7Ozs7Ozs7O0VuQndPUTtBcEl1bVhSO0F1Si8wWEE7Ozs7Ozs7OztFbkI2T1E7QXBJNm1YUjtBdUoxMVhBOzs7Ozs7Ozs7RW5CaVBxQjtBcElvblhyQjtBdUpyMlhBOzs7Ozs7Ozs7RW5Ca1B3QjtBcEk4blh4QjtBdUpoM1hBOzs7Ozs7Ozs7RW5CbVB1QjtBcEl3b1h2QjtBdUozM1hBOzs7Ozs7Ozs7RW5Cb1B5QjtBcElrcFh6QjtBdUp0NFhBOzs7Ozs7Ozs7RWZ5R3lCO0F4SXd5WHpCO0F1Smo1WEE7Ozs7Ozs7Ozs7Ozs7Ozs7OztFUnNCMEI7QS9JKzRYMUI7QXVKcjZYQTs7Ozs7Ozs7O0VUMGVRO0E5SXM4V1I7QXVKaDdYQTs7Ozs7Ozs7O0VUK2VRO0E5STQ4V1I7QXVKMzdYQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VUb2Z3RTtBOUkyOVd4RTtBdUovOFhBOzs7Ozs7Ozs7RVRxZnVCO0E5SXErV3ZCO0F1SjE5WEE7Ozs7Ozs7OztFL0lqQkk7QVJzL1hKO0F1SnIrWEE7Ozs7Ozs7OztFL0lqQkk7QVJpZ1lKO0F1SmgvWEE7Ozs7Ozs7Ozs7Ozs7Ozs7OztFVlV5QjtBN0kwL1h6QjtBdUpwZ1lBOzs7Ozs7Ozs7RVZZaUM7QTdJbWdZakM7QXVKL2dZQTs7Ozs7Ozs7O0VWYStCO0E3STZnWS9CO0F1SjFoWUE7Ozs7Ozs7OztFQzJhd0I7QXhKMG5YeEI7QUFDQTs7NkVBRTZFO0F5SjdqWTdFO0VBRUk7OztJQUdJO0lBQ0E7SUFDQTtJQUNBO0V6SjhqWU47RXlKM2pZRTs7SUFDWTtFeko4allkO0V5SjVqWUU7O0lBRUk7SUFDQTtFeko4allOO0V5SjNq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QUdRO0FBaTZZUjtBQXA2WUE7RUFPZ0I7QUFnNlloQjtBQXY2WUE7RUFhUTtFQUNBO0FBNjVZUjtBQTM2WUE7RUFtQlk7RUFDQTtBQTI1WVo7QUEvNllBO0VBdUJZO0FBMjVZWjtBQXQ1WUE7RUFFUTtFQUNBO0VBQ0E7RUFDQTtBQXU1WVI7QUFuNVlBO0VBRVE7QUFvNVlSO0FBdDVZQTtFQU9nQjtBQWs1WWhCO0FBNTRZQTtFQUNJO0VBQ0E7RUFDQTtBQTg0WUo7QUFqNVlBO0VBTVE7QUE4NFlSO0FBcDVZQTtFQVVRO0FBNjRZUjtBQXY1WUE7RUFxQlE7RUFDQTtFQUNBO0VBQ0E7QUFxNFlSO0FBNzVZQTtFQTRCUTtFQUNBO0VBQ0E7RUFDQTtBQW80WVI7QUFuNllBO0VBa0NRO0FBbzRZUjtBQXQ2WUE7RUFzQ1E7RUFDQTtBQW00WVI7QUFDQTs7Ozs7Ozs7Ozs7Q0FXQzs7QTBKcjVaRDtFQUNFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FBQTtBQTRERixDO0FDN0RBO0VBK0JFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FBQTtBQThCRjtBQTVERTtFQUNFO0VBQ0E7QUE4REo7QUE1REU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE4REo7QUE1REU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0FBNkRKO0FBNURJO0VBQ0U7RUFDQTtBQThETjtBQTVESTtFQUNFO0FBOEROLEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL2FwcC5sZXNzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvbGVzcy9jb21wb25lbnRzL2Jhc2UubGVzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Vpa2l0LXRoZW1lcy9tYXN0ZXIvYmFzZS9iYXNlLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL3R5cG8vYmFzZS5sZXNzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvbGVzcy9jb21wb25lbnRzL2xpbmsubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy9oZWFkaW5nLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL3R5cG8vaGVhZGluZy5sZXNzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvbGVzcy9jb21wb25lbnRzL2RpdmlkZXIubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy9taXhpbi5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci9ib3JkZXIvZGl2aWRlci5sZXNzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvbGVzcy9jb21wb25lbnRzL2xpc3QubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy9kZXNjcmlwdGlvbi1saXN0Lmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL3R5cG8vZGVzY3JpcHRpb24tbGlzdC5sZXNzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvbGVzcy9jb21wb25lbnRzL3RhYmxlLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL3R5cG8vdGFibGUubGVzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Vpa2l0LXRoZW1lcy9tYXN0ZXIvYmFzZS90YWJsZS5sZXNzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvbGVzcy9jb21wb25lbnRzL2ljb24ubGVzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Vpa2l0LXRoZW1lcy9tYXN0ZXIvYmFzZS9pY29uLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvZm9ybS1yYW5nZS5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci9ib3JkZXIvZm9ybS1yYW5nZS5sZXNzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvbGVzcy9jb21wb25lbnRzL2Zvcm0ubGVzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Vpa2l0LXRoZW1lcy9tYXN0ZXIvYmFzZS9mb3JtLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL2JvcmRlci9mb3JtLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL3R5cG8vZm9ybS5sZXNzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvbGVzcy9jb21wb25lbnRzL2J1dHRvbi5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci9iYXNlL2J1dHRvbi5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci90eXBvL2J1dHRvbi5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci9ib3JkZXItcmFkaXVzL2J1dHRvbi5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci9iYWNrZ3JvdW5kLWltYWdlL2J1dHRvbi5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci9ib3gtc2hhZG93L2J1dHRvbi5sZXNzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvbGVzcy9jb21wb25lbnRzL3Byb2dyZXNzLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL2JvcmRlci1yYWRpdXMvcHJvZ3Jlc3MubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy9zZWN0aW9uLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvY29udGFpbmVyLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvdGlsZS5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci9iYXNlL3RpbGUubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy9jYXJkLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL2Jhc2UvY2FyZC5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci90eXBvL2NhcmQubGVzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Vpa2l0LXRoZW1lcy9tYXN0ZXIvYm94LXNoYWRvdy9jYXJkLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvY2xvc2UubGVzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Vpa2l0LXRoZW1lcy9tYXN0ZXIvYmFzZS9jbG9zZS5sZXNzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvbGVzcy9jb21wb25lbnRzL3NwaW5uZXIubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy90b3RvcC5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci9iYXNlL3RvdG9wLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL2JvcmRlci90b3RvcC5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci9ib3JkZXItcmFkaXVzL3RvdG9wLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvbWFya2VyLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL2Jhc2UvbWFya2VyLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL2JvcmRlci9tYXJrZXIubGVzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Vpa2l0LXRoZW1lcy9tYXN0ZXIvYm9yZGVyLXJhZGl1cy9tYXJrZXIubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy9hbGVydC5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci9iYXNlL2FsZXJ0Lmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvcGxhY2Vob2xkZXIubGVzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Vpa2l0LXRoZW1lcy9tYXN0ZXIvYmFzZS9wbGFjZWhvbGRlci5sZXNzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvbGVzcy9jb21wb25lbnRzL2JhZGdlLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL2Jhc2UvYmFkZ2UubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy9sYWJlbC5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci90eXBvL2xhYmVsLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL2JvcmRlci1yYWRpdXMvbGFiZWwubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy9vdmVybGF5Lmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvYXJ0aWNsZS5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci90eXBvL2FydGljbGUubGVzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Vpa2l0LXRoZW1lcy9tYXN0ZXIvYmFzZS9hcnRpY2xlLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvY29tbWVudC5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci90eXBvL2NvbW1lbnQubGVzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Vpa2l0LXRoZW1lcy9tYXN0ZXIvYmFzZS9jb21tZW50Lmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvc2VhcmNoLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL2Jhc2Uvc2VhcmNoLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvYWNjb3JkaW9uLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL2JvcmRlci9hY2NvcmRpb24ubGVzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Vpa2l0LXRoZW1lcy9tYXN0ZXIvYmFzZS9hY2NvcmRpb24ubGVzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Vpa2l0LXRoZW1lcy9tYXN0ZXIvdHlwby9hY2NvcmRpb24ubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy9kcm9wLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvZHJvcGRvd24ubGVzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Vpa2l0LXRoZW1lcy9tYXN0ZXIvYm94LXNoYWRvdy9kcm9wZG93bi5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci9iYXNlL2Ryb3Bkb3duLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL3R5cG8vZHJvcGRvd24ubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy9kcm9wYmFyLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvbW9kYWwubGVzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Vpa2l0LXRoZW1lcy9tYXN0ZXIvYmFzZS9tb2RhbC5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci90eXBvL21vZGFsLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvc2xpZGVzaG93Lmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvc2xpZGVyLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvc3RpY2t5Lmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvb2ZmY2FudmFzLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvc3dpdGNoZXIubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy9sZWFkZXIubGVzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Vpa2l0LXRoZW1lcy9tYXN0ZXIvYmFzZS9sZWFkZXIubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy9ub3RpZmljYXRpb24ubGVzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Vpa2l0LXRoZW1lcy9tYXN0ZXIvYmFzZS9ub3RpZmljYXRpb24ubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy90b29sdGlwLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvc29ydGFibGUubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy9jb3VudGRvd24ubGVzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Vpa2l0LXRoZW1lcy9tYXN0ZXIvdHlwby9jb3VudGRvd24ubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy9ncmlkLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvbmF2Lmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL3R5cG8vbmF2Lmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL2Jhc2UvbmF2Lmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvbmF2YmFyLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL2Jhc2UvbmF2YmFyLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL3R5cG8vbmF2YmFyLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL2JveC1zaGFkb3cvbmF2YmFyLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvc3VibmF2Lmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL2Jhc2Uvc3VibmF2Lmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL3R5cG8vc3VibmF2Lmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL2JvcmRlci1yYWRpdXMvc3VibmF2Lmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvYnJlYWRjcnVtYi5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci90eXBvL2JyZWFkY3J1bWIubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy9wYWdpbmF0aW9uLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL2Jhc2UvcGFnaW5hdGlvbi5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci90eXBvL3BhZ2luYXRpb24ubGVzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Vpa2l0LXRoZW1lcy9tYXN0ZXIvYm9yZGVyLXJhZGl1cy9wYWdpbmF0aW9uLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvdGFiLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL2JvcmRlci90YWIubGVzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Vpa2l0LXRoZW1lcy9tYXN0ZXIvYmFzZS90YWIubGVzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Vpa2l0LXRoZW1lcy9tYXN0ZXIvdHlwby90YWIubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy9zbGlkZW5hdi5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci9iYXNlL3NsaWRlbmF2Lmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL2JvcmRlci1yYWRpdXMvc2xpZGVuYXYubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy9kb3RuYXYubGVzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Vpa2l0LXRoZW1lcy9tYXN0ZXIvYmFzZS9kb3RuYXYubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy90aHVtYm5hdi5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci9iYXNlL3RodW1ibmF2Lmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL2JhY2tncm91bmQtaW1hZ2UvdGh1bWJuYXYubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy9pY29ubmF2Lmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL2Jhc2UvaWNvbm5hdi5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci90eXBvL2ljb25uYXYubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy9saWdodGJveC5sZXNzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvbGVzcy9jb21wb25lbnRzL2FuaW1hdGlvbi5sZXNzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvbGVzcy9jb21wb25lbnRzL3dpZHRoLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvaGVpZ2h0Lmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvdGV4dC5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci90eXBvL3RleHQubGVzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Vpa2l0LXRoZW1lcy9tYXN0ZXIvYmFzZS90ZXh0Lmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL2JhY2tncm91bmQtaW1hZ2UvdGV4dC5sZXNzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvbGVzcy9jb21wb25lbnRzL2NvbHVtbi5sZXNzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvbGVzcy9jb21wb25lbnRzL2NvdmVyLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvYmFja2dyb3VuZC5sZXNzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvbGVzcy9jb21wb25lbnRzL2FsaWduLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvc3ZnLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3N0eWxlcy91aWtpdC10aGVtZXMvbWFzdGVyL2Jhc2Uvc3ZnLmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvdXRpbGl0eS5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdWlraXQtdGhlbWVzL21hc3Rlci9iYXNlL3V0aWxpdHkubGVzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL3Vpa2l0LXRoZW1lcy9tYXN0ZXIvdHlwby91dGlsaXR5Lmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvZmxleC5sZXNzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvbGVzcy9jb21wb25lbnRzL21hcmdpbi5sZXNzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvbGVzcy9jb21wb25lbnRzL3BhZGRpbmcubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy9wb3NpdGlvbi5sZXNzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy91aWtpdC9zcmMvbGVzcy9jb21wb25lbnRzL3RyYW5zaXRpb24ubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy92aXNpYmlsaXR5Lmxlc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Vpa2l0L3NyYy9sZXNzL2NvbXBvbmVudHMvaW52ZXJzZS5sZXNzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvdGhlbWUubGVzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdWlraXQvc3JjL2xlc3MvY29tcG9uZW50cy9wcmludC5sZXNzIiwid2VicGFjazovLy8uL1ZlbnRyeVJldmlld3MudnVlIiwid2VicGFjazovLy8uL0NvbnRhY3QudnVlIl0sInNvdXJjZXNDb250ZW50IjpbIlxuQGltcG9ydCBcInRoZW1lLnRlY2gtc3BhY2UubGVzc1wiO1xuXG5AaW1wb3J0IFwic3R5bGUubGVzc1wiO1xuXG5cbi50bS1wYWdlIHtcbiAgICBib3JkZXItdG9wOiA2cHggc29saWQgI2I4YWQyZTtcbn1cblxuLnVrLXdpZHRoLTEtMjAge1xuICB3aWR0aDogNSU7XG59XG4udWstd2lkdGgtMS0xMCB7XG4gICAgd2lkdGg6IDEwJTtcbn1cbi51ay13aWR0aC0yLTEwIHtcbiAgICB3aWR0aDogMjAlO1xufVxuLnVrLXdpZHRoLTMtMTAge1xuICAgIHdpZHRoOiAzMCU7XG59XG4udWstd2lkdGgtNC0xMCB7XG4gICAgd2lkdGg6IDQwJTtcbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbWVkaXVtKSB7XG4gICAgLnVrLXdpZHRoLTEtMjBcXEBtIHtcbiAgICAgICAgd2lkdGg6IDUlO1xuICAgIH1cbiAgICAudWstd2lkdGgtMS0xMFxcQG0ge1xuICAgICAgICB3aWR0aDogMTAlO1xuICAgIH1cbiAgICAudWstd2lkdGgtMi0xMFxcQG0ge1xuICAgICAgICB3aWR0aDogMjAlO1xuICAgIH1cbiAgICAudWstd2lkdGgtMy0xMFxcQG0ge1xuICAgICAgICB3aWR0aDogMzAlO1xuICAgIH1cbiAgICAudWstd2lkdGgtNC0xMFxcQG0ge1xuICAgICAgICB3aWR0aDogNDAlO1xuICAgIH1cbiAgICAudWstd2lkdGgtNS0xMFxcQG0ge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgIH1cbiAgICAudWstd2lkdGgtNi0xMFxcQG0ge1xuICAgICAgICB3aWR0aDogNjAlO1xuICAgIH1cbiAgICAudWstd2lkdGgtNy0xMFxcQG0ge1xuICAgICAgICB3aWR0aDogNzAlO1xuICAgIH1cbiAgICAudWstd2lkdGgtOC0xMFxcQG0ge1xuICAgICAgICB3aWR0aDogODAlO1xuICAgIH1cbiAgICAudWstd2lkdGgtOS0xMFxcQG0ge1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgIH1cblxuICAgIC8qIFRoaXJkcyAqL1xuICAgIC51ay13aWR0aC0xLTNcXEBtIHsgbWF4LXdpZHRoOiB+J2NhbGMoMTAwJSAqIDEgLyAzLjAwMSknOyB9XG59XG5cbiNmb290ZXJcXCMwLTAtMC0wIHsgYm9yZGVyLWNvbG9yOiAjYjk5NTAwOyBib3JkZXItd2lkdGg6IDhweDsgfSBcblxuLnByaWNlIHtcbiAgICAub2xkIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgIGNvbG9yOiAjYjhhZDJlO1xuICAgIH1cblxuICAgIC5uZXcge1xuICAgICAgICBjb2xvcjogI2JmMDAwMDtcbiAgICB9XG59XG5cbi51ay1pbnB1dCxcbi51ay10ZXh0YXJlYSxcbi51ay1zZWxlY3Qge1xuICAgICY6LXdlYmtpdC1hdXRvZmlsbCxcbiAgICAmOi13ZWJraXQtYXV0b2ZpbGw6aG92ZXIsIFxuICAgICY6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBAYmFzZS1ib2R5LWZvbnQtZmFtaWx5ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogQGJhc2UtYm9keS1mb250LXNpemUgIWltcG9ydGFudDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IEBiYXNlLWJvZHktZm9udC13ZWlnaHQgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi50bS1oZWFkZXIge1xuICAgIC51ay1uYXZiYXItY29udGFpbmVyIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDQ2cHg7XG4gICAgfVxufVxuXG4udWstYnV0dG9uLmJ0bi1pbWFnZS1zZWxlY3QtbW9kYWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICBjb2xvcjogIzMzMyFpbXBvcnRhbnQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLm1vZGFsLWltYWdlLXNlbGVjdCAudWstbW9kYWwtZGlhbG9nIHtcbiAgICBwYWRkaW5nOiA1MHB4IDcwcHg7XG59XG5cbiNzaG9wLW1pbmktY2FydCAuY2FydC1taW5pIHtcbiAgICBoMyB7XG4gICAgICAgIGNvbG9yOiAjMDAwO1xuICAgIH1cbiAgICAuaW1nIHtcbiAgICAgICAgJj4gYSB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIC51ay1iYWRnZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IC0xMHB4O1xuICAgICAgICAgICAgICAgIHRvcDogLTVweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjMEU5QjRBICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnVrLWRyb3Bkb3duIHtcbiAgICAgICAgbWluLXdpZHRoOiA0MDBweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICAgICAgcGFkZGluZzogMTVweDtcblxuICAgICAgICAucXVhbnRpdHksXG4gICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG4gICAgXG4gICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICBjb2xvcjogI2I4YWQyZTtcbiAgICAgICAgfSBcbiAgICAgICAgXG4gICAgICAgIHRhYmxlIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC50b3RhbCB7XG4gICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDVweDtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzBlOWI0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICMwZTliNGE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucXVhbnRpdHkgZGl2IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNGU0ZTQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGNvbG9yOiAjMGU5YjRhO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKlxuLnBhZ2UtaG9tZSB7XG4gICAgLmNhcnQtbWluaSB7XG4gICAgICAgIC5pbWcge1xuICAgICAgICAgICAgJj4gYSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgICAgICAgICAgLnVrLWJhZGdlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzBFOUI0QTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG59XG4qL1xuXG5cbi51ay1uYXZiYXItdHJhbnNwYXJlbnQge1xuICAgIC51ay1uYXZiYXItbmF2ID4gbGkgPiBhIHtcbiAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICMwRTlCNEE7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wYWdlLWhvbWUge1xuICAgIC50bS1oZWFkZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBAc2VjdGlvbi1tdXRlZC1iYWNrZ3JvdW5kO1xuICAgIH1cbn1cblxuLnVrLWNvbnRhaW5lci1leHBhbmQtcmlnaHQge1xuICAgIC8vIHBhZGRpbmctcmlnaHQ6IDA7XG59XG5cbi5jYXJ0IHtcbiAgICBtYXJnaW4tdG9wOiA2MHB4O1xuICAgIC5jYXJ0LWdyaWQge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICY+ICoge1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbWVkaXVtKSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDIyMCwgMjIwLCAyMjApO1xuICAgICAgICB9XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxOHB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogN3B4O1xuICAgICAgICB9XG4gICAgICAgIC5yb3ctbGFzdCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2IoMjIwLCAyMjAsIDIyMCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaW5wdXQge1xuICAgICAgICB3aWR0aDogNzFweDtcbiAgICAgICAgaGVpZ2h0OiAzNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTdweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNGU0ZTQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIGNvbG9yOiAjMGU5YjRhO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG5cbiAgICB9XG5cblxuXG4gICAgLnRvdGFsLCAudG90YWwtcHJpY2Uge1xuICAgICAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgIzBlOWI0YTtcbiAgICAgICAgaGVpZ2h0OiA4MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cbiAgICAudG90YWwgPiBkaXYgPiBkaXYge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAubmFtZWNhdGVnb3J5IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gICAgLm5hbWUge1xuICAgICAgICBjb2xvcjogIzBlOWI0YTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgICAuY2F0ZWdvcnkge1xuICAgICAgICBjb2xvcjogIzMzMztcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIC5wcmljZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBjb2xvcjogI2I4YWQyZTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgIH1cblxuICAgIC50ZXh0dXJlIHtcbiAgICAgICAgY29sb3I6ICMzMzM7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbWVkaXVtKSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIC5wcmljZSB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAuZWRpdCxcbiAgICAucmVtb3ZlIHtcbiAgICAgICAgY29sb3I6ICNjY2M7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogbGlnaHRlbigjY2NjLCAxMCUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnF1YW50aXR5IHtcbiAgICAgICAgY29sb3I6ICMzMzM7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgICAudWstZm9ybS1jb250cm9scyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cblxuXG4gICAgLmJ1dHRvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiA2MHB4O1xuICAgICAgICB3aWR0aDogNTIwcHg7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgLnVrLWJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAyNTBweDtcbiAgICAgICAgJi5jb250aW51ZSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAudmVudHJ5LWljb24tY2FydCB7XG4gICAgICAgICAgICBjb2xvcjogI2UxZDMzMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuYmFjay1saW5rIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDE3cHg7XG4gICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jb250aW51ZSB7XG4gICAgICAgIGNvbG9yOiAjMEU5QjRBO1xuICAgIH1cblxuICAgIC5wcm9tb3Rpb24tY29kZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLXRvcDogNzBweDtcblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMzZweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgY29sb3I6ICM4ODhhODg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjODc4OTg3OyAvLyBzdHJva2VcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4IDAgMCAzcHg7IC8vIGJvcmRlciByYWRpdXNcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgLy8gbGF5ZXIgZmlsbCBjb250ZW50ICsgY29sb3Igb3ZlcmxheVxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDBweDtcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGNvbG9yOiAjODg4YTg4O1xuICAgICAgICB3aWR0aDogMjEwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC51ay1idXR0b24ge1xuICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gICAgICAgIGJvcmRlcjogMHB4IHNvbGlkICM4Nzg5ODc7IC8vIHN0cm9rZVxuICAgICAgICBib3JkZXItcmFkaXVzOiAwIDNweCAzcHggMDsgLy8gYm9yZGVyIHJhZGl1c1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC50b3RhbCwgLnRvdGFsIC5wcmljZSB7XG4gICAgICAgIGNvbG9yOiAjMDkzO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgfVxuXG4gICAgI2NhcnQtbm90ZW5vdWdoIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogcmVkO1xuICAgIH1cblxuXG5cbn1cbiAgXG5cbi5jYXJ0LWVsZW1lbnQtcXVhbnRpdHkge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4uY2hlY2tvdXQtYmFyLnVrLWJyZWFkY3J1bWIge1xuICAgIGxpbmUtaGVpZ2h0OiA0OHB4O1xuICAgID4gOm50aC1jaGlsZChuKzIpOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJz4nO1xuICAgIH1cbiAgICA+ICogPiBzcGFuIHtcbiAgICAgICAgY29sb3I6ICM4Njg2ODY7XG4gICAgfVxuICAgID4gLnVrLWFjdGl2ZSA+IHNwYW4ge1xuICAgICAgICBjb2xvcjogIzJDMkMyQztcbiAgICB9XG59XG5cbi5jaGVja291dC1iYXIudWstZ3JpZCB7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgPiAqIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgICAubnVtYmVyIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjRENEQ0RDO1xuICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gICAgfVxuICAgIC51ay1hY3RpdmUgLm51bWJlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMwRTlCNEE7XG4gICAgfVxufVxuXG5cbi5jaGVja291dC1yaWdodCB7XG4gICAgLy8gYmFja2dyb3VuZDogI2ZmZjtcbiAgICB0YWJsZSB7XG4gICAgICAgIGJvcmRlci1zcGFjaW5nOiAwcHg7XG4gICAgICAgIHRib2R5IHtcbiAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAvLyBwYWRkaW5nLXRvcDogMjBweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRkIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgIH1cblxuICAgIC50b3RhbCB7XG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA0MHB4O1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgICAgIH1cbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMEU5QjRBO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY29uZmlybS1hZGRyZXNzZXMge1xuICAgIGg0IHtcbiAgICAgICAgY29sb3I6ICMwZjliNGE7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICB9XG59XG5cbiNtb2RhbC1hZ3JlZSB7XG4gICAgLnVrLXRvdG9wIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAjcmVmdW5kcyB7XG4gICAgICAgIC51ay1jb250YWluZXIge1xuICAgICAgICAgICAgLnRtLWdyaWQtZXhwYW5kOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4jbW9kYWwtdmVyaWZ5LXJlc3VsdCAudWstbW9kYWwtZGlhbG9nIHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMzAwcHg7XG5cbiAgICAubCB7XG4gICAgICAgIHdpZHRoOiAzMHB4O1xuICAgIH1cblxuICAgICN2ZXJpZnktcmVzdWx0IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDM0cHhcbiAgICB9XG5cbiAgICAjdmVyaWZ5LXJlc3VsdC5vayB7XG4gICAgICAgIC8vIGNvbG9yOiAjMDkzXG4gICAgfVxuXG4gICAgI3ZlcmlmeS1yZXN1bHQuZXJyb3IgLnVrLWljb24ge1xuICAgIH1cblxuICAgICN2ZXJpZnktcmVzdWx0IGgxIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICB9XG5cbiAgICAjdmVyaWZ5LXJlc3VsdCBwIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gICAgI3ZlcmlmeS1yZXN1bHQgcCArIHAge1xuICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgfVxuXG4gICAgI3ZlcmlmeS1yZXN1bHQgLnVrLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGVcbiAgICB9XG59XG5cbi8qXG4udWstd2lkdGgtMi0xMixcbi51ay13aWR0aC1zbWFsbC0yLTEyLFxuLnVrLXdpZHRoLWxhcmdlLTItMTIge1xuICB3aWR0aDogMTAwJSAvIDEyICogMjtcbn1cbi51ay13aWR0aC0xLTEyLFxuLnVrLXdpZHRoLXNtYWxsLTEtMTIsXG4udWstd2lkdGgtbGFyZ2UtMS0xMiB7XG4gIHdpZHRoOiAxMDAlIC8gMTI7XG59XG4qL1xuIiwiLy8gTmFtZTogICAgICAgICAgICBCYXNlXG4vLyBEZXNjcmlwdGlvbjogICAgIERlZmF1bHQgdmFsdWVzIGZvciBIVE1MIGVsZW1lbnRzXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstbGlua2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLWgxYCwgYHVrLWgyYCwgYHVrLWgzYCwgYHVrLWg0YCwgYHVrLWg1YCwgYHVrLWg2YFxuLy8gICAgICAgICAgICAgICAgICBgdWstaHJgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGJhc2UtYm9keS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1iYWNrZ3JvdW5kO1xuQGJhc2UtYm9keS1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1mb250LWZhbWlseTtcbkBiYXNlLWJvZHktZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbDtcbkBiYXNlLWJvZHktZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZm9udC1zaXplO1xuQGJhc2UtYm9keS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1saW5lLWhlaWdodDtcbkBiYXNlLWJvZHktY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtY29sb3I7XG5cbkBiYXNlLWxpbmstY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbGluay1jb2xvcjtcbkBiYXNlLWxpbmstdGV4dC1kZWNvcmF0aW9uOiAgICAgICAgICAgICAgICAgICAgIG5vbmU7XG5AYmFzZS1saW5rLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWxpbmstaG92ZXItY29sb3I7XG5AYmFzZS1saW5rLWhvdmVyLXRleHQtZGVjb3JhdGlvbjogICAgICAgICAgICAgICB1bmRlcmxpbmU7XG5cbkBiYXNlLXN0cm9uZy1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgICAgIGJvbGRlcjtcbkBiYXNlLWNvZGUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc21hbGwtZm9udC1zaXplO1xuQGJhc2UtY29kZS1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAgICAgQ29uc29sYXMsIG1vbmFjbywgbW9ub3NwYWNlO1xuQGJhc2UtY29kZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZDtcbkBiYXNlLWVtLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZGFuZ2VyLWJhY2tncm91bmQ7XG5AYmFzZS1pbnMtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAjZmZkO1xuQGJhc2UtaW5zLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1jb2xvcjtcbkBiYXNlLW1hcmstYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICNmZmQ7XG5AYmFzZS1tYXJrLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWNvbG9yO1xuQGJhc2UtcXVvdGUtZm9udC1zdHlsZTogICAgICAgICAgICAgICAgICAgICAgICAgaXRhbGljO1xuQGJhc2Utc21hbGwtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgODAlO1xuXG5AYmFzZS1tYXJnaW4tdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW1hcmdpbjtcblxuQGJhc2UtaGVhZGluZy1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1mb250LWZhbWlseTtcbkBiYXNlLWhlYWRpbmctZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbDtcbkBiYXNlLWhlYWRpbmctY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AYmFzZS1oZWFkaW5nLXRleHQtdHJhbnNmb3JtOiAgICAgICAgICAgICAgICAgICBub25lO1xuQGJhc2UtaGVhZGluZy1tYXJnaW4tdG9wOiAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tZWRpdW0tbWFyZ2luO1xuQGJhc2UtaDEtZm9udC1zaXplLW06ICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC0yeGxhcmdlLWZvbnQtc2l6ZTtcbkBiYXNlLWgxLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBiYXNlLWgxLWZvbnQtc2l6ZS1tICogMC44NTtcbkBiYXNlLWgxLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMjtcbkBiYXNlLWgyLWZvbnQtc2l6ZS1tOiAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwteGxhcmdlLWZvbnQtc2l6ZTtcbkBiYXNlLWgyLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBiYXNlLWgyLWZvbnQtc2l6ZS1tICogMC44NTtcbkBiYXNlLWgyLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMztcbkBiYXNlLWgzLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbGFyZ2UtZm9udC1zaXplO1xuQGJhc2UtaDMtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgMS40O1xuQGJhc2UtaDQtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tZWRpdW0tZm9udC1zaXplO1xuQGJhc2UtaDQtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgMS40O1xuQGJhc2UtaDUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1mb250LXNpemU7XG5AYmFzZS1oNS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAxLjQ7XG5AYmFzZS1oNi1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZTtcbkBiYXNlLWg2LWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuNDtcblxuQGJhc2UtbGlzdC1wYWRkaW5nLWxlZnQ6ICAgICAgICAgICAgICAgICAgICAgICAgMzBweDtcblxuQGJhc2UtaHItbWFyZ2luLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tYXJnaW47XG5AYmFzZS1oci1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWJvcmRlci13aWR0aDtcbkBiYXNlLWhyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtYm9yZGVyO1xuXG5AYmFzZS1ibG9ja3F1b3RlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW1lZGl1bS1mb250LXNpemU7XG5AYmFzZS1ibG9ja3F1b3RlLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAxLjU7XG5AYmFzZS1ibG9ja3F1b3RlLWZvbnQtc3R5bGU6ICAgICAgICAgICAgICAgICAgICBpdGFsaWM7XG5AYmFzZS1ibG9ja3F1b3RlLW1hcmdpbi12ZXJ0aWNhbDogICAgICAgICAgICAgICBAZ2xvYmFsLW1hcmdpbjtcbkBiYXNlLWJsb2NrcXVvdGUtZm9vdGVyLW1hcmdpbi10b3A6ICAgICAgICAgICAgIEBnbG9iYWwtc21hbGwtbWFyZ2luO1xuQGJhc2UtYmxvY2txdW90ZS1mb290ZXItZm9udC1zaXplOiAgICAgICAgICAgICAgQGdsb2JhbC1zbWFsbC1mb250LXNpemU7XG5AYmFzZS1ibG9ja3F1b3RlLWZvb3Rlci1saW5lLWhlaWdodDogICAgICAgICAgICAxLjU7XG5cbkBiYXNlLXByZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc21hbGwtZm9udC1zaXplO1xuQGJhc2UtcHJlLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgMS41O1xuQGJhc2UtcHJlLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgICAgICAgQGJhc2UtY29kZS1mb250LWZhbWlseTtcbkBiYXNlLXByZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtY29sb3I7XG5cbkBiYXNlLWZvY3VzLW91dGxpbmUtd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgIDJweDtcbkBiYXNlLWZvY3VzLW91dGxpbmUtc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgIGRvdHRlZDtcbkBiYXNlLWZvY3VzLW91dGxpbmU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AYmFzZS1mb2N1cy1vdXRsaW5lLW9mZnNldDogICAgICAgICAgICAgICAgICAgICAxcHg7XG5cbkBiYXNlLXNlbGVjdGlvbi1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICMzOWY7XG5AYmFzZS1zZWxlY3Rpb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWludmVyc2UtY29sb3I7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEJhc2VcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gU2V0IGBmb250LXNpemVgIHRvIHN1cHBvcnQgYHJlbWAgdW5pdHNcbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuICogMy4gU3R5bGVcbiAqL1xuXG5odG1sIHtcbiAgICAvKiAxICovXG4gICAgZm9udC1mYW1pbHk6IEBiYXNlLWJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC1zaXplOiBAYmFzZS1ib2R5LWZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogQGJhc2UtYm9keS1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogQGJhc2UtYm9keS1saW5lLWhlaWdodDtcbiAgICAvKiAyICovXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAgIC8qIDMgKi9cbiAgICBiYWNrZ3JvdW5kOiBAYmFzZS1ib2R5LWJhY2tncm91bmQ7XG4gICAgY29sb3I6IEBiYXNlLWJvZHktY29sb3I7XG4gICAgLmhvb2stYmFzZS1ib2R5KCk7XG59XG5cbi8qXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYm9keSB7IG1hcmdpbjogMDsgfVxuXG5cbi8qIExpbmtzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFN0eWxlXG4gKi9cblxuYSxcbi51ay1saW5rIHtcbiAgICBjb2xvcjogQGJhc2UtbGluay1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IEBiYXNlLWxpbmstdGV4dC1kZWNvcmF0aW9uO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAuaG9vay1iYXNlLWxpbmsoKTtcbn1cblxuYTpob3Zlcixcbi51ay1saW5rOmhvdmVyLFxuLnVrLWxpbmstdG9nZ2xlOmhvdmVyIC51ay1saW5rIHtcbiAgICBjb2xvcjogQGJhc2UtbGluay1ob3Zlci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IEBiYXNlLWxpbmstaG92ZXItdGV4dC1kZWNvcmF0aW9uO1xuICAgIC5ob29rLWJhc2UtbGluay1ob3ZlcigpO1xufVxuXG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gRWRnZS5cbiAqIDIuIFRoZSBzaG9ydGhhbmQgZGVjbGFyYXRpb24gYHVuZGVybGluZSBkb3R0ZWRgIGlzIG5vdCBzdXBwb3J0ZWQgaW4gU2FmYXJpLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgICAvKiAxICovXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAgIC8qIDIgKi9cbiAgICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1zdHlsZTogZG90dGVkO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHsgZm9udC13ZWlnaHQ6IEBiYXNlLXN0cm9uZy1mb250LXdlaWdodDsgfVxuXG4vKlxuICogMS4gQ29uc29sYXMgaGFzIGEgYmV0dGVyIGJhc2VsaW5lIGluIHJ1bm5pbmcgdGV4dCBjb21wYXJlZCB0byBgQ291cmllcmBcbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqIDMuIFN0eWxlXG4gKi9cblxuOm5vdChwcmUpID4gY29kZSxcbjpub3QocHJlKSA+IGtiZCxcbjpub3QocHJlKSA+IHNhbXAge1xuICAgIC8qIDEgKi9cbiAgICBmb250LWZhbWlseTogQGJhc2UtY29kZS1mb250LWZhbWlseTtcbiAgICAvKiAyICovXG4gICAgZm9udC1zaXplOiBAYmFzZS1jb2RlLWZvbnQtc2l6ZTtcbiAgICAvKiAzICovXG4gICAgY29sb3I6IEBiYXNlLWNvZGUtY29sb3I7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAuaG9vay1iYXNlLWNvZGUoKTtcbn1cblxuLypcbiAqIEVtcGhhc2l6ZVxuICovXG5cbmVtIHsgY29sb3I6IEBiYXNlLWVtLWNvbG9yOyB9XG5cbi8qXG4gKiBJbnNlcnRcbiAqL1xuXG5pbnMge1xuICAgIGJhY2tncm91bmQ6IEBiYXNlLWlucy1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiBAYmFzZS1pbnMtY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4vKlxuICogTWFya1xuICovXG5cbm1hcmsge1xuICAgIGJhY2tncm91bmQ6IEBiYXNlLW1hcmstYmFja2dyb3VuZDtcbiAgICBjb2xvcjogQGJhc2UtbWFyay1jb2xvcjtcbn1cblxuLypcbiAqIFF1b3RlXG4gKi9cblxucSB7IGZvbnQtc3R5bGU6IEBiYXNlLXF1b3RlLWZvbnQtc3R5bGU7IH1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHsgZm9udC1zaXplOiBAYmFzZS1zbWFsbC1mb250LXNpemU7IH1cblxuLypcbiAqIFByZXZlbnRzIGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgICBmb250LXNpemU6IDc1JTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAgeyB0b3A6IC0wLjVlbTsgfVxuc3ViIHsgYm90dG9tOiAtMC4yNWVtOyB9XG5cblxuLyogRW1iZWRkZWQgY29udGVudFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBSZW1vdmUgdGhlIGdhcCBiZXR3ZWVuIHRoZSBlbGVtZW50IGFuZCB0aGUgYm90dG9tIG9mIGl0cyBwYXJlbnQgY29udGFpbmVyLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxuaWZyYW1lLFxuaW1nLFxuc3ZnLFxudmlkZW8geyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi8qXG4gKiAxLiBDb25zdHJhaW4gdGhlIGVsZW1lbnQgdG8gaXRzIHBhcmVudCB3aWR0aC5cbiAqIDIuIFByZXNlcnZlIHRoZSBpbnRyaW5zaWMgYXNwZWN0IHJhdGlvIGFuZCBhdXRvLXNjYWxlIHRoZSBoZWlnaHQgb2YgYW4gaW1hZ2UgaWYgdGhlIGBoZWlnaHRgIGF0dHJpYnV0ZSBpcyBwcmVzZW50LlxuICogMy4gVGFrZSBib3JkZXIgYW5kIHBhZGRpbmcgaW50byBhY2NvdW50LlxuICovXG5cbmNhbnZhcyxcbmltZyxcbnN2ZyxcbnZpZGVvIHtcbiAgICAvKiAxICovXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIC8qIDIgKi9cbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLyogMyAqL1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi8qXG4gKiBEZXByZWNhdGVkOiBvbmx5IG5lZWRlZCBmb3IgYGltZ2AgZWxlbWVudHMgd2l0aCBgdWstaW1nYFxuICogMS4gSGlkZSBgYWx0YCB0ZXh0IGZvciBsYXp5IGxvYWQgaW1hZ2VzLlxuICogMi4gRml4IGxhenkgbG9hZGluZyBpbWFnZXMgaWYgcGFyZW50IGVsZW1lbnQgaXMgc2V0IHRvIGBkaXNwbGF5OiBpbmxpbmVgIGFuZCBoYXMgYG92ZXJmbG93OiBoaWRkZW5gLlxuICovXG5cbmltZzpub3QoW3NyY10pIHtcbiAgICAvKiAxICovXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC8qIDIgKi9cbiAgICBtaW4td2lkdGg6IDFweDtcbn1cblxuLypcbiAqIElmcmFtZVxuICogUmVtb3ZlIGJvcmRlciBpbiBhbGwgYnJvd3NlcnNcbiAqL1xuXG5pZnJhbWUgeyBib3JkZXI6IDA7IH1cblxuXG4vKiBCbG9jayBlbGVtZW50c1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBNYXJnaW5zXG4gKi9cblxucCxcbnVsLFxub2wsXG5kbCxcbnByZSxcbmFkZHJlc3MsXG5maWVsZHNldCxcbmZpZ3VyZSB7IG1hcmdpbjogMCAwIEBiYXNlLW1hcmdpbi12ZXJ0aWNhbCAwOyB9XG5cbi8qIEFkZCBtYXJnaW4gaWYgYWRqYWNlbnQgZWxlbWVudCAqL1xuKiArIHAsXG4qICsgdWwsXG4qICsgb2wsXG4qICsgZGwsXG4qICsgcHJlLFxuKiArIGFkZHJlc3MsXG4qICsgZmllbGRzZXQsXG4qICsgZmlndXJlIHsgbWFyZ2luLXRvcDogQGJhc2UtbWFyZ2luLXZlcnRpY2FsOyB9XG5cblxuLyogSGVhZGluZ3NcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5oMSwgLnVrLWgxLFxuaDIsIC51ay1oMixcbmgzLCAudWstaDMsXG5oNCwgLnVrLWg0LFxuaDUsIC51ay1oNSxcbmg2LCAudWstaDYsXG4udWstaGVhZGluZy1zbWFsbCxcbi51ay1oZWFkaW5nLW1lZGl1bSxcbi51ay1oZWFkaW5nLWxhcmdlLFxuLnVrLWhlYWRpbmcteGxhcmdlLFxuLnVrLWhlYWRpbmctMnhsYXJnZSB7XG4gICAgbWFyZ2luOiAwIDAgQGJhc2UtbWFyZ2luLXZlcnRpY2FsIDA7XG4gICAgZm9udC1mYW1pbHk6IEBiYXNlLWhlYWRpbmctZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6IEBiYXNlLWhlYWRpbmctZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6IEBiYXNlLWhlYWRpbmctY29sb3I7XG4gICAgdGV4dC10cmFuc2Zvcm06IEBiYXNlLWhlYWRpbmctdGV4dC10cmFuc2Zvcm07XG4gICAgLmhvb2stYmFzZS1oZWFkaW5nKCk7XG59XG5cbi8qIEFkZCBtYXJnaW4gaWYgYWRqYWNlbnQgZWxlbWVudCAqL1xuKiArIGgxLCAqICsgLnVrLWgxLFxuKiArIGgyLCAqICsgLnVrLWgyLFxuKiArIGgzLCAqICsgLnVrLWgzLFxuKiArIGg0LCAqICsgLnVrLWg0LFxuKiArIGg1LCAqICsgLnVrLWg1LFxuKiArIGg2LCAqICsgLnVrLWg2LFxuKiArIC51ay1oZWFkaW5nLXNtYWxsLFxuKiArIC51ay1oZWFkaW5nLW1lZGl1bSxcbiogKyAudWstaGVhZGluZy1sYXJnZSxcbiogKyAudWstaGVhZGluZy14bGFyZ2UsXG4qICsgLnVrLWhlYWRpbmctMnhsYXJnZSB7IG1hcmdpbi10b3A6IEBiYXNlLWhlYWRpbmctbWFyZ2luLXRvcDsgfVxuXG4vKlxuICogU2l6ZXNcbiAqL1xuXG5oMSwgLnVrLWgxIHtcbiAgICBmb250LXNpemU6IEBiYXNlLWgxLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogQGJhc2UtaDEtbGluZS1oZWlnaHQ7XG4gICAgLmhvb2stYmFzZS1oMSgpO1xufVxuXG5oMiwgLnVrLWgyIHtcbiAgICBmb250LXNpemU6IEBiYXNlLWgyLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogQGJhc2UtaDItbGluZS1oZWlnaHQ7XG4gICAgLmhvb2stYmFzZS1oMigpO1xufVxuXG5oMywgLnVrLWgzIHtcbiAgICBmb250LXNpemU6IEBiYXNlLWgzLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogQGJhc2UtaDMtbGluZS1oZWlnaHQ7XG4gICAgLmhvb2stYmFzZS1oMygpO1xufVxuXG5oNCwgLnVrLWg0IHtcbiAgICBmb250LXNpemU6IEBiYXNlLWg0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogQGJhc2UtaDQtbGluZS1oZWlnaHQ7XG4gICAgLmhvb2stYmFzZS1oNCgpO1xufVxuXG5oNSwgLnVrLWg1IHtcbiAgICBmb250LXNpemU6IEBiYXNlLWg1LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogQGJhc2UtaDUtbGluZS1oZWlnaHQ7XG4gICAgLmhvb2stYmFzZS1oNSgpO1xufVxuXG5oNiwgLnVrLWg2IHtcbiAgICBmb250LXNpemU6IEBiYXNlLWg2LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogQGJhc2UtaDYtbGluZS1oZWlnaHQ7XG4gICAgLmhvb2stYmFzZS1oNigpO1xufVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1tZWRpdW0pIHtcblxuICAgIGgxLCAudWstaDEgeyBmb250LXNpemU6IEBiYXNlLWgxLWZvbnQtc2l6ZS1tOyB9XG4gICAgaDIsIC51ay1oMiB7IGZvbnQtc2l6ZTogQGJhc2UtaDItZm9udC1zaXplLW07IH1cblxufVxuXG5cbi8qIExpc3RzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxudWwsXG5vbCB7IHBhZGRpbmctbGVmdDogQGJhc2UtbGlzdC1wYWRkaW5nLWxlZnQ7IH1cblxuLypcbiAqIFJlc2V0IG1hcmdpbiBmb3IgbmVzdGVkIGxpc3RzXG4gKi9cblxudWwgPiBsaSA+IHVsLFxudWwgPiBsaSA+IG9sLFxub2wgPiBsaSA+IG9sLFxub2wgPiBsaSA+IHVsIHsgbWFyZ2luOiAwOyB9XG5cblxuLyogRGVzY3JpcHRpb24gbGlzdHNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5kdCB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5kZCB7IG1hcmdpbi1sZWZ0OiAwOyB9XG5cblxuLyogSG9yaXpvbnRhbCBydWxlc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBDaHJvbWUsIEVkZ2UgYW5kIElFLlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQtYWxpZ24gaW4gRWRnZSBhbmQgSUUuXG4gKiAzLiBTdHlsZVxuICovXG5cbmhyLCAudWstaHIge1xuICAgIC8qIDEgKi9cbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAvKiAyICovXG4gICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICAvKiAzICovXG4gICAgbWFyZ2luOiAwIDAgQGJhc2UtaHItbWFyZ2luLXZlcnRpY2FsIDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci10b3A6IEBiYXNlLWhyLWJvcmRlci13aWR0aCBzb2xpZCBAYmFzZS1oci1ib3JkZXI7XG4gICAgLmhvb2stYmFzZS1ocigpO1xufVxuXG4vKiBBZGQgbWFyZ2luIGlmIGFkamFjZW50IGVsZW1lbnQgKi9cbiogKyBocixcbiogKyAudWstaHIgeyBtYXJnaW4tdG9wOiBAYmFzZS1oci1tYXJnaW4tdmVydGljYWwgfVxuXG5cbi8qIEFkZHJlc3NcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5hZGRyZXNzIHsgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cblxuLyogQmxvY2txdW90ZXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5ibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDAgMCBAYmFzZS1ibG9ja3F1b3RlLW1hcmdpbi12ZXJ0aWNhbCAwO1xuICAgIGZvbnQtc2l6ZTogQGJhc2UtYmxvY2txdW90ZS1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IEBiYXNlLWJsb2NrcXVvdGUtbGluZS1oZWlnaHQ7XG4gICAgZm9udC1zdHlsZTogQGJhc2UtYmxvY2txdW90ZS1mb250LXN0eWxlO1xuICAgIC5ob29rLWJhc2UtYmxvY2txdW90ZSgpO1xufVxuXG4vKiBBZGQgbWFyZ2luIGlmIGFkamFjZW50IGVsZW1lbnQgKi9cbiogKyBibG9ja3F1b3RlIHsgbWFyZ2luLXRvcDogQGJhc2UtYmxvY2txdW90ZS1tYXJnaW4tdmVydGljYWw7IH1cblxuLypcbiAqIENvbnRlbnRcbiAqL1xuXG5ibG9ja3F1b3RlIHA6bGFzdC1vZi10eXBlIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5ibG9ja3F1b3RlIGZvb3RlciB7XG4gICAgbWFyZ2luLXRvcDogIEBiYXNlLWJsb2NrcXVvdGUtZm9vdGVyLW1hcmdpbi10b3A7XG4gICAgZm9udC1zaXplOiBAYmFzZS1ibG9ja3F1b3RlLWZvb3Rlci1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IEBiYXNlLWJsb2NrcXVvdGUtZm9vdGVyLWxpbmUtaGVpZ2h0O1xuICAgIC5ob29rLWJhc2UtYmxvY2txdW90ZS1mb290ZXIoKTtcbn1cblxuXG4vKiBQcmVmb3JtYXR0ZWQgdGV4dFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICAgIGZvbnQ6IEBiYXNlLXByZS1mb250LXNpemUgZShcIi9cIikgQGJhc2UtcHJlLWxpbmUtaGVpZ2h0IEBiYXNlLXByZS1mb250LWZhbWlseTtcbiAgICBjb2xvcjogQGJhc2UtcHJlLWNvbG9yO1xuICAgIC1tb3otdGFiLXNpemU6IDQ7XG4gICAgdGFiLXNpemU6IDQ7XG4gICAgLyogMSAqL1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIC5ob29rLWJhc2UtcHJlKCk7XG59XG5cbnByZSBjb2RlIHsgZm9udC1mYW1pbHk6IEBiYXNlLXByZS1mb250LWZhbWlseTsgfVxuXG5cbi8qIEZvY3VzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxuXG46Zm9jdXMtdmlzaWJsZSB7IG91dGxpbmU6IEBiYXNlLWZvY3VzLW91dGxpbmUtd2lkdGggQGJhc2UtZm9jdXMtb3V0bGluZS1zdHlsZSBAYmFzZS1mb2N1cy1vdXRsaW5lOyB9XG5cblxuLyogU2VsZWN0aW9uIHBzZXVkby1lbGVtZW50XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuOjpzZWxlY3Rpb24ge1xuICAgIGJhY2tncm91bmQ6IEBiYXNlLXNlbGVjdGlvbi1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiBAYmFzZS1zZWxlY3Rpb24tY29sb3I7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG5cblxuLyogSFRNTDUgZWxlbWVudHNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG5cbmRldGFpbHMsIC8qIDEgKi9cbm1haW4geyAvKiAyICovXG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7IGRpc3BsYXk6IGxpc3QtaXRlbTsgfVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cblxudGVtcGxhdGUgeyBkaXNwbGF5OiBub25lOyB9XG5cblxuLyogUGFzcyBtZWRpYSBicmVha3BvaW50cyB0byBKU1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBCcmVha3BvaW50c1xuICovXG5cbjpyb290IHtcbiAgICAtLXVrLWJyZWFrcG9pbnQtczogQGJyZWFrcG9pbnQtc21hbGw7XG4gICAgLS11ay1icmVha3BvaW50LW06IEBicmVha3BvaW50LW1lZGl1bTtcbiAgICAtLXVrLWJyZWFrcG9pbnQtbDogQGJyZWFrcG9pbnQtbGFyZ2U7XG4gICAgLS11ay1icmVha3BvaW50LXhsOiBAYnJlYWtwb2ludC14bGFyZ2U7XG59XG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYmFzZS1taXNjKCk7XG5cbi5ob29rLWJhc2UtYm9keSgpIHt9XG4uaG9vay1iYXNlLWxpbmsoKSB7fVxuLmhvb2stYmFzZS1saW5rLWhvdmVyKCkge31cbi5ob29rLWJhc2UtY29kZSgpIHt9XG4uaG9vay1iYXNlLWhlYWRpbmcoKSB7fVxuLmhvb2stYmFzZS1oMSgpIHt9XG4uaG9vay1iYXNlLWgyKCkge31cbi5ob29rLWJhc2UtaDMoKSB7fVxuLmhvb2stYmFzZS1oNCgpIHt9XG4uaG9vay1iYXNlLWg1KCkge31cbi5ob29rLWJhc2UtaDYoKSB7fVxuLmhvb2stYmFzZS1ocigpIHt9XG4uaG9vay1iYXNlLWJsb2NrcXVvdGUoKSB7fVxuLmhvb2stYmFzZS1ibG9ja3F1b3RlLWZvb3RlcigpIHt9XG4uaG9vay1iYXNlLXByZSgpIHt9XG4uaG9vay1iYXNlLW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW52ZXJzZS1iYXNlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1jb2xvcjtcbkBpbnZlcnNlLWJhc2UtbGluay1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQGludmVyc2UtYmFzZS1saW5rLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AaW52ZXJzZS1iYXNlLWNvZGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1jb2xvcjtcbkBpbnZlcnNlLWJhc2UtZW0tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQGludmVyc2UtYmFzZS1oZWFkaW5nLWNvbG9yOiAgICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AaW52ZXJzZS1iYXNlLWhyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1ib3JkZXI7XG5AaW52ZXJzZS1iYXNlLWZvY3VzLW91dGxpbmU6ICAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcblxuLmhvb2staW52ZXJzZSgpIHtcblxuICAgIGNvbG9yOiBAaW52ZXJzZS1iYXNlLWNvbG9yO1xuXG4gICAgLy8gQmFzZVxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gICAgLy9cbiAgICAvLyBMaW5rXG4gICAgLy9cblxuICAgIGEsXG4gICAgLnVrLWxpbmsgIHtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLWJhc2UtbGluay1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1iYXNlLWxpbmsoKTtcbiAgICB9XG5cbiAgICBhOmhvdmVyLFxuICAgIC51ay1saW5rOmhvdmVyLFxuICAgIC51ay1saW5rLXRvZ2dsZTpob3ZlciAudWstbGluayB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1iYXNlLWxpbmstaG92ZXItY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtYmFzZS1saW5rLWhvdmVyKCk7XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBDb2RlXG4gICAgLy9cblxuICAgIDpub3QocHJlKSA+IGNvZGUsXG4gICAgOm5vdChwcmUpID4ga2JkLFxuICAgIDpub3QocHJlKSA+IHNhbXAge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtYmFzZS1jb2RlLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLWJhc2UtY29kZSgpO1xuICAgIH1cblxuICAgIC8vXG4gICAgLy8gRW1waGFzaXplXG4gICAgLy9cblxuICAgIGVtIHsgY29sb3I6IEBpbnZlcnNlLWJhc2UtZW0tY29sb3I7IH1cblxuICAgIC8vXG4gICAgLy8gSGVhZGluZ3NcbiAgICAvL1xuXG4gICAgaDEsIC51ay1oMSxcbiAgICBoMiwgLnVrLWgyLFxuICAgIGgzLCAudWstaDMsXG4gICAgaDQsIC51ay1oNCxcbiAgICBoNSwgLnVrLWg1LFxuICAgIGg2LCAudWstaDYsXG4gICAgLnVrLWhlYWRpbmctc21hbGwsXG4gICAgLnVrLWhlYWRpbmctbWVkaXVtLFxuICAgIC51ay1oZWFkaW5nLWxhcmdlLFxuICAgIC51ay1oZWFkaW5nLXhsYXJnZSxcbiAgICAudWstaGVhZGluZy0yeGxhcmdlIHtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLWJhc2UtaGVhZGluZy1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1iYXNlLWhlYWRpbmcoKTtcbiAgICB9XG5cbiAgICBoMSwgLnVrLWgxIHtcbiAgICAgICAgLmhvb2staW52ZXJzZS1iYXNlLWgxKCk7XG4gICAgfVxuXG4gICAgaDIsIC51ay1oMiB7XG4gICAgICAgIC5ob29rLWludmVyc2UtYmFzZS1oMigpO1xuICAgIH1cblxuICAgIGgzLCAudWstaDMge1xuICAgICAgICAuaG9vay1pbnZlcnNlLWJhc2UtaDMoKTtcbiAgICB9XG5cbiAgICBoNCwgLnVrLWg0IHtcbiAgICAgICAgLmhvb2staW52ZXJzZS1iYXNlLWg0KCk7XG4gICAgfVxuXG4gICAgaDUsIC51ay1oNSB7XG4gICAgICAgIC5ob29rLWludmVyc2UtYmFzZS1oNSgpO1xuICAgIH1cblxuICAgIGg2LCAudWstaDYge1xuICAgICAgICAuaG9vay1pbnZlcnNlLWJhc2UtaDYoKTtcbiAgICB9XG5cbiAgICAvL1xuICAgIC8vIEJsb2NrcXVvdGVzXG4gICAgLy9cblxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgICAuaG9vay1pbnZlcnNlLWJhc2UtYmxvY2txdW90ZSgpO1xuICAgIH1cblxuICAgIGJsb2NrcXVvdGUgZm9vdGVyIHtcbiAgICAgICAgLmhvb2staW52ZXJzZS1iYXNlLWJsb2NrcXVvdGUtZm9vdGVyKCk7XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBIb3Jpem9udGFsIHJ1bGVzXG4gICAgLy9cblxuICAgIGhyLCAudWstaHIge1xuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiBAaW52ZXJzZS1iYXNlLWhyLWJvcmRlcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1iYXNlLWhyKCk7XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBGb2N1c1xuICAgIC8vXG5cbiAgICA6Zm9jdXMgeyBvdXRsaW5lLWNvbG9yOiBAaW52ZXJzZS1iYXNlLWZvY3VzLW91dGxpbmU7IH1cbiAgICA6Zm9jdXMtdmlzaWJsZSB7IG91dGxpbmUtY29sb3I6IEBpbnZlcnNlLWJhc2UtZm9jdXMtb3V0bGluZTsgfVxuXG59XG5cbi5ob29rLWludmVyc2UtYmFzZS1saW5rKCkge31cbi5ob29rLWludmVyc2UtYmFzZS1saW5rLWhvdmVyKCkge31cbi5ob29rLWludmVyc2UtYmFzZS1jb2RlKCkge31cbi5ob29rLWludmVyc2UtYmFzZS1oZWFkaW5nKCkge31cbi5ob29rLWludmVyc2UtYmFzZS1oMSgpIHt9XG4uaG9vay1pbnZlcnNlLWJhc2UtaDIoKSB7fVxuLmhvb2staW52ZXJzZS1iYXNlLWgzKCkge31cbi5ob29rLWludmVyc2UtYmFzZS1oNCgpIHt9XG4uaG9vay1pbnZlcnNlLWJhc2UtaDUoKSB7fVxuLmhvb2staW52ZXJzZS1iYXNlLWg2KCkge31cbi5ob29rLWludmVyc2UtYmFzZS1ibG9ja3F1b3RlKCkge31cbi5ob29rLWludmVyc2UtYmFzZS1ibG9ja3F1b3RlLWZvb3RlcigpIHt9XG4uaG9vay1pbnZlcnNlLWJhc2UtaHIoKSB7fVxuIiwiLy9cbi8vIENvbXBvbmVudDogQmFzZVxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBpbnRlcm5hbC1iYXNlLWJvZHktbW9kZTogICAgICAgICAgICAgICAgICAgICAgIG5vbmU7IC8vIG5vbmUsIG92ZXJsYXlcbkBpbnRlcm5hbC1iYXNlLWJvZHktb3ZlcmxheS16LWluZGV4OiAgICAgICAgICAgIEBnbG9iYWwtei1pbmRleCArIDEwMDtcbkBpbnRlcm5hbC1iYXNlLWJvZHktb3ZlcmxheS1pbWFnZTogICAgICAgICAgICAgIH4nJztcbkBpbnRlcm5hbC1iYXNlLWJvZHktb3ZlcmxheS1vcGFjaXR5OiAgICAgICAgICAgIDAuMTtcblxuQGJhc2UtY29kZS1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgMDtcbkBiYXNlLWNvZGUtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgIDA7XG5AYmFzZS1jb2RlLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcblxuQGJhc2UtYmxvY2txdW90ZS1wYWRkaW5nLWxlZnQ6ICAgICAgICAgICAgICAgICAgMDtcbkBiYXNlLWJsb2NrcXVvdGUtcGFkZGluZy1yaWdodDogICAgICAgICAgICAgICAgIDA7XG5AYmFzZS1ibG9ja3F1b3RlLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAwO1xuQGJhc2UtYmxvY2txdW90ZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5cbkBiYXNlLXByZS1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDA7XG5AYmFzZS1wcmUtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcblxuQGJhc2UtYmxvY2txdW90ZS1mb290ZXItZW0tZGFzaDogICAgICAgICAgICAgICAgdHJ1ZTtcblxuXG4vLyBCb2R5XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYmFzZS1ib2R5KCkge1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbn1cblxuXG4uaG9vay1iYXNlLWJvZHkoKSB3aGVuIChAaW50ZXJuYWwtYmFzZS1ib2R5LW1vZGUgPSBvdmVybGF5KSB7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiBAaW50ZXJuYWwtYmFzZS1ib2R5LW92ZXJsYXktei1pbmRleDtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiQHtpbnRlcm5hbC1iYXNlLWJvZHktb3ZlcmxheS1pbWFnZX1cIik7XG4gICAgICAgIG9wYWNpdHk6IEBpbnRlcm5hbC1iYXNlLWJvZHktb3ZlcmxheS1vcGFjaXR5O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbn1cblxuXG4vLyBMaW5rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWJhc2UtbGluaygpIHt9XG5cbi5ob29rLWJhc2UtbGluay1ob3ZlcigpIHt9XG5cblxuLy8gVGV4dC1sZXZlbCBzZW1hbnRpY3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1iYXNlLWNvZGUoKSB3aGVuIG5vdCAoQGJhc2UtY29kZS1wYWRkaW5nLXZlcnRpY2FsID0gMCksIG5vdCAoQGJhc2UtY29kZS1wYWRkaW5nLWhvcml6b250YWwgPSAwKSB7XG4gICAgcGFkZGluZzogQGJhc2UtY29kZS1wYWRkaW5nLXZlcnRpY2FsIEBiYXNlLWNvZGUtcGFkZGluZy1ob3Jpem9udGFsO1xufVxuXG4uaG9vay1iYXNlLWNvZGUoKSB3aGVuIG5vdCAoQGJhc2UtY29kZS1iYWNrZ3JvdW5kID0gdHJhbnNwYXJlbnQpIHtcbiAgICBiYWNrZ3JvdW5kOiBAYmFzZS1jb2RlLWJhY2tncm91bmQ7XG59XG5cblxuLy8gSGVhZGluZ3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1iYXNlLWhlYWRpbmcoKSB7fVxuXG4uaG9vay1iYXNlLWgxKCkge31cblxuLmhvb2stYmFzZS1oMigpIHt9XG5cbi5ob29rLWJhc2UtaDMoKSB7fVxuXG4uaG9vay1iYXNlLWg0KCkge31cblxuLmhvb2stYmFzZS1oNSgpIHt9XG5cbi5ob29rLWJhc2UtaDYoKSB7fVxuXG5cbi8vIEhvcml6b250YWwgcnVsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1iYXNlLWhyKCkge31cblxuXG4vLyBCbG9ja3F1b3Rlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWJhc2UtYmxvY2txdW90ZSgpIHdoZW4gbm90IChAYmFzZS1ibG9ja3F1b3RlLXBhZGRpbmctdmVydGljYWwgPSAwKSwgbm90IChAYmFzZS1ibG9ja3F1b3RlLXBhZGRpbmctbGVmdCA9IDApLCBub3QgKEBiYXNlLWJsb2NrcXVvdGUtcGFkZGluZy1yaWdodCA9IDApIHtcbiAgICBwYWRkaW5nOiBAYmFzZS1ibG9ja3F1b3RlLXBhZGRpbmctdmVydGljYWwgQGJhc2UtYmxvY2txdW90ZS1wYWRkaW5nLXJpZ2h0IEBiYXNlLWJsb2NrcXVvdGUtcGFkZGluZy12ZXJ0aWNhbCBAYmFzZS1ibG9ja3F1b3RlLXBhZGRpbmctbGVmdDtcbn1cblxuLmhvb2stYmFzZS1ibG9ja3F1b3RlKCkgd2hlbiBub3QgKEBiYXNlLWJsb2NrcXVvdGUtYmFja2dyb3VuZCA9IHRyYW5zcGFyZW50KSB7XG4gICAgYmFja2dyb3VuZDogQGJhc2UtYmxvY2txdW90ZS1iYWNrZ3JvdW5kO1xufVxuXG4uaG9vay1iYXNlLWJsb2NrcXVvdGUtZm9vdGVyKCkgd2hlbiAoQGJhc2UtYmxvY2txdW90ZS1mb290ZXItZW0tZGFzaCA9IHRydWUpIHtcblxuICAgICY6OmJlZm9yZSB7IGNvbnRlbnQ6IFwi4oCUIFwiOyB9XG5cbn1cblxuXG4vLyBQcmVmb3JtYXR0ZWQgdGV4dFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWJhc2UtcHJlKCkgd2hlbiBub3QgKEBiYXNlLXByZS1wYWRkaW5nID0gMCkge1xuICAgIHBhZGRpbmc6IEBiYXNlLXByZS1wYWRkaW5nO1xufVxuXG4uaG9vay1iYXNlLXByZSgpIHdoZW4gbm90IChAYmFzZS1wcmUtYmFja2dyb3VuZCA9IHRyYW5zcGFyZW50KSB7XG4gICAgYmFja2dyb3VuZDogQGJhc2UtcHJlLWJhY2tncm91bmQ7XG59XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWJhc2UtbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbnZlcnNlLWJhc2UtY29kZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5AaW52ZXJzZS1iYXNlLWJsb2NrcXVvdGUtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuXG4uaG9vay1pbnZlcnNlLWJhc2UtbGluaygpIHt9XG4uaG9vay1pbnZlcnNlLWJhc2UtbGluay1ob3ZlcigpIHt9XG5cbi5ob29rLWludmVyc2UtYmFzZS1jb2RlKCkgd2hlbiBub3QgKChAYmFzZS1jb2RlLWJhY2tncm91bmQgPSB0cmFuc3BhcmVudCkgYW5kIChAaW52ZXJzZS1iYXNlLWNvZGUtYmFja2dyb3VuZCA9IHRyYW5zcGFyZW50KSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLWJhc2UtY29kZS1iYWNrZ3JvdW5kO1xufVxuXG4uaG9vay1pbnZlcnNlLWJhc2UtaGVhZGluZygpIHt9XG5cbi5ob29rLWludmVyc2UtYmFzZS1oMSgpIHt9XG4uaG9vay1pbnZlcnNlLWJhc2UtaDIoKSB7fVxuLmhvb2staW52ZXJzZS1iYXNlLWgzKCkge31cbi5ob29rLWludmVyc2UtYmFzZS1oNCgpIHt9XG4uaG9vay1pbnZlcnNlLWJhc2UtaDUoKSB7fVxuLmhvb2staW52ZXJzZS1iYXNlLWg2KCkge31cblxuLmhvb2staW52ZXJzZS1iYXNlLWJsb2NrcXVvdGUoKSB3aGVuIG5vdCAoKEBiYXNlLWJsb2NrcXVvdGUtYmFja2dyb3VuZCA9IHRyYW5zcGFyZW50KSBhbmQgKEBpbnZlcnNlLWJhc2UtYmxvY2txdW90ZS1iYWNrZ3JvdW5kID0gdHJhbnNwYXJlbnQpKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtYmFzZS1ibG9ja3F1b3RlLWJhY2tncm91bmQ7XG59XG4uaG9vay1pbnZlcnNlLWJhc2UtYmxvY2txdW90ZS1mb290ZXIoKSB7fVxuXG4uaG9vay1pbnZlcnNlLWJhc2UtaHIoKSB7fVxuIiwiLy9cbi8vIENvbXBvbmVudDogQmFzZVxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBiYXNlLWhlYWRpbmctZm9udC1mYW1pbHk6ICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtcHJpbWFyeS1mb250LWZhbWlseTtcbkBiYXNlLWhlYWRpbmctZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtcHJpbWFyeS1mb250LXdlaWdodDtcbkBiYXNlLWhlYWRpbmctdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtcHJpbWFyeS10ZXh0LXRyYW5zZm9ybTtcblxuLy9cbi8vIE5ld1xuLy9cblxuQGJhc2UtaGVhZGluZy1sZXR0ZXItc3BhY2luZzogICAgICAgICAgICAgICAgICAgQGdsb2JhbC1wcmltYXJ5LWxldHRlci1zcGFjaW5nO1xuQGJhc2UtaGVhZGluZy1mb250LXN0eWxlOiAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1wcmltYXJ5LWZvbnQtc3R5bGU7XG5cbkBiYXNlLWgxLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBiYXNlLWhlYWRpbmctY29sb3I7XG5AYmFzZS1oMS1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAgICAgICBAYmFzZS1oZWFkaW5nLWZvbnQtZmFtaWx5O1xuQGJhc2UtaDEtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQGJhc2UtaGVhZGluZy1mb250LXdlaWdodDtcbkBiYXNlLWgxLXRleHQtdHJhbnNmb3JtOiAgICAgICAgICAgICAgICAgICAgICAgIEBiYXNlLWhlYWRpbmctdGV4dC10cmFuc2Zvcm07XG5AYmFzZS1oMS1sZXR0ZXItc3BhY2luZzogICAgICAgICAgICAgICAgICAgICAgICBAYmFzZS1oZWFkaW5nLWxldHRlci1zcGFjaW5nO1xuQGJhc2UtaDEtZm9udC1zdHlsZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgQGJhc2UtaGVhZGluZy1mb250LXN0eWxlO1xuXG5AYmFzZS1oMi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAYmFzZS1oZWFkaW5nLWNvbG9yO1xuQGJhc2UtaDItZm9udC1mYW1pbHk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQGJhc2UtaGVhZGluZy1mb250LWZhbWlseTtcbkBiYXNlLWgyLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgIEBiYXNlLWhlYWRpbmctZm9udC13ZWlnaHQ7XG5AYmFzZS1oMi10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgICAgICAgICAgICAgICBAYmFzZS1oZWFkaW5nLXRleHQtdHJhbnNmb3JtO1xuQGJhc2UtaDItbGV0dGVyLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgQGJhc2UtaGVhZGluZy1sZXR0ZXItc3BhY2luZztcbkBiYXNlLWgyLWZvbnQtc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBiYXNlLWhlYWRpbmctZm9udC1zdHlsZTtcblxuQGJhc2UtaDMtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGJhc2UtaGVhZGluZy1jb2xvcjtcbkBiYXNlLWgzLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgICAgICAgIEBiYXNlLWhlYWRpbmctZm9udC1mYW1pbHk7XG5AYmFzZS1oMy1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICBAYmFzZS1oZWFkaW5nLWZvbnQtd2VpZ2h0O1xuQGJhc2UtaDMtdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgICAgICAgICAgICAgQGJhc2UtaGVhZGluZy10ZXh0LXRyYW5zZm9ybTtcbkBiYXNlLWgzLWxldHRlci1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgICAgIEBiYXNlLWhlYWRpbmctbGV0dGVyLXNwYWNpbmc7XG5AYmFzZS1oMy1mb250LXN0eWxlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAYmFzZS1oZWFkaW5nLWZvbnQtc3R5bGU7XG5cbkBiYXNlLWg0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBiYXNlLWhlYWRpbmctY29sb3I7XG5AYmFzZS1oNC1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1mb250LWZhbWlseTtcbkBiYXNlLWg0LWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0O1xuQGJhc2UtaDQtdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktdGV4dC10cmFuc2Zvcm07XG5AYmFzZS1oNC1sZXR0ZXItc3BhY2luZzogICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1sZXR0ZXItc3BhY2luZztcbkBiYXNlLWg0LWZvbnQtc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtc3R5bGU7XG5cbkBiYXNlLWg1LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBiYXNlLWhlYWRpbmctY29sb3I7XG5AYmFzZS1oNS1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1mb250LWZhbWlseTtcbkBiYXNlLWg1LWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0O1xuQGJhc2UtaDUtdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktdGV4dC10cmFuc2Zvcm07XG5AYmFzZS1oNS1sZXR0ZXItc3BhY2luZzogICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1sZXR0ZXItc3BhY2luZztcbkBiYXNlLWg1LWZvbnQtc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtc3R5bGU7XG5cbkBiYXNlLWg2LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBiYXNlLWhlYWRpbmctY29sb3I7XG5AYmFzZS1oNi1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1mb250LWZhbWlseTtcbkBiYXNlLWg2LWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0O1xuQGJhc2UtaDYtdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktdGV4dC10cmFuc2Zvcm07XG5AYmFzZS1oNi1sZXR0ZXItc3BhY2luZzogICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1sZXR0ZXItc3BhY2luZztcbkBiYXNlLWg2LWZvbnQtc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtc3R5bGU7XG5cbkBiYXNlLWJsb2NrcXVvdGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AYmFzZS1ibG9ja3F1b3RlLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktZm9udC1mYW1pbHk7XG5AYmFzZS1ibG9ja3F1b3RlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktZm9udC13ZWlnaHQ7XG5AYmFzZS1ibG9ja3F1b3RlLXRleHQtdHJhbnNmb3JtOiAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktdGV4dC10cmFuc2Zvcm07XG5AYmFzZS1ibG9ja3F1b3RlLWxldHRlci1zcGFjaW5nOiAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktbGV0dGVyLXNwYWNpbmc7XG5cbkBiYXNlLWJsb2NrcXVvdGUtZm9vdGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgIEBnbG9iYWwtY29sb3I7XG5AYmFzZS1ibG9ja3F1b3RlLWZvb3Rlci1mb250LWZhbWlseTogICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1mb250LWZhbWlseTtcbkBiYXNlLWJsb2NrcXVvdGUtZm9vdGVyLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0O1xuQGJhc2UtYmxvY2txdW90ZS1mb290ZXItdGV4dC10cmFuc2Zvcm06ICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktdGV4dC10cmFuc2Zvcm07XG5AYmFzZS1ibG9ja3F1b3RlLWZvb3Rlci1sZXR0ZXItc3BhY2luZzogICAgICAgICBpbmhlcml0O1xuQGJhc2UtYmxvY2txdW90ZS1mb290ZXItZm9udC1zdHlsZTogICAgICAgICAgICAgaW5oZXJpdDtcblxuXG4vLyBCb2R5XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYmFzZS1ib2R5KCkge31cblxuXG4vLyBMaW5rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWJhc2UtbGluaygpIHt9XG5cbi5ob29rLWJhc2UtbGluay1ob3ZlcigpIHt9XG5cblxuLy8gVGV4dC1sZXZlbCBzZW1hbnRpY3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1iYXNlLWNvZGUoKSB7fVxuXG5cbi8vIEhlYWRpbmdzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYmFzZS1oZWFkaW5nKCkgd2hlbiBub3QgKEBiYXNlLWhlYWRpbmctbGV0dGVyLXNwYWNpbmcgPSBpbmhlcml0KSB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IEBiYXNlLWhlYWRpbmctbGV0dGVyLXNwYWNpbmc7XG59XG5cbi5ob29rLWJhc2UtaGVhZGluZygpIHdoZW4gbm90IChAYmFzZS1oZWFkaW5nLWZvbnQtc3R5bGUgPSBpbmhlcml0KSB7XG4gICAgZm9udC1zdHlsZTogQGJhc2UtaGVhZGluZy1mb250LXN0eWxlO1xufVxuXG4vL1xuLy8gSDFcbi8vXG5cbi5ob29rLWJhc2UtaDEoKSB3aGVuIG5vdCAoQGJhc2UtaDEtY29sb3IgPSBAYmFzZS1oZWFkaW5nLWNvbG9yKSB7XG4gICAgY29sb3I6IEBiYXNlLWgxLWNvbG9yO1xufVxuXG4uaG9vay1iYXNlLWgxKCkgd2hlbiBub3QgKEBiYXNlLWgxLWZvbnQtZmFtaWx5ID0gaW5oZXJpdCkge1xuICAgIGZvbnQtZmFtaWx5OiBAYmFzZS1oMS1mb250LWZhbWlseTtcbn1cblxuLmhvb2stYmFzZS1oMSgpIHdoZW4gbm90IChAYmFzZS1oMS1mb250LXdlaWdodCA9IGluaGVyaXQpIHtcbiAgICBmb250LXdlaWdodDogQGJhc2UtaDEtZm9udC13ZWlnaHQ7XG59XG5cbi5ob29rLWJhc2UtaDEoKSB3aGVuIG5vdCAoQGJhc2UtaDEtdGV4dC10cmFuc2Zvcm0gPSBpbmhlcml0KSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IEBiYXNlLWgxLXRleHQtdHJhbnNmb3JtO1xufVxuXG4uaG9vay1iYXNlLWgxKCkgd2hlbiBub3QgKEBiYXNlLWgxLWxldHRlci1zcGFjaW5nID0gQGJhc2UtaGVhZGluZy1sZXR0ZXItc3BhY2luZykge1xuICAgIGxldHRlci1zcGFjaW5nOiBAYmFzZS1oMS1sZXR0ZXItc3BhY2luZztcbn1cblxuLmhvb2stYmFzZS1oMSgpIHdoZW4gbm90IChAYmFzZS1oMS1mb250LXN0eWxlID0gQGJhc2UtaGVhZGluZy1mb250LXN0eWxlKSB7XG4gICAgZm9udC1zdHlsZTogQGJhc2UtaDEtZm9udC1zdHlsZTtcbn1cblxuLy9cbi8vIEgyXG4vL1xuXG4uaG9vay1iYXNlLWgyKCkgd2hlbiBub3QgKEBiYXNlLWgyLWNvbG9yID0gQGJhc2UtaGVhZGluZy1jb2xvcikge1xuICAgIGNvbG9yOiBAYmFzZS1oMi1jb2xvcjtcbn1cblxuLmhvb2stYmFzZS1oMigpIHdoZW4gbm90IChAYmFzZS1oMi1mb250LWZhbWlseSA9IGluaGVyaXQpIHtcbiAgICBmb250LWZhbWlseTogQGJhc2UtaDItZm9udC1mYW1pbHk7XG59XG5cbi5ob29rLWJhc2UtaDIoKSB3aGVuIG5vdCAoQGJhc2UtaDItZm9udC13ZWlnaHQgPSBpbmhlcml0KSB7XG4gICAgZm9udC13ZWlnaHQ6IEBiYXNlLWgyLWZvbnQtd2VpZ2h0O1xufVxuXG4uaG9vay1iYXNlLWgyKCkgd2hlbiBub3QgKEBiYXNlLWgyLXRleHQtdHJhbnNmb3JtID0gaW5oZXJpdCkge1xuICAgIHRleHQtdHJhbnNmb3JtOiBAYmFzZS1oMi10ZXh0LXRyYW5zZm9ybTtcbn1cblxuLmhvb2stYmFzZS1oMigpIHdoZW4gbm90IChAYmFzZS1oMi1sZXR0ZXItc3BhY2luZyA9IEBiYXNlLWhlYWRpbmctbGV0dGVyLXNwYWNpbmcpIHtcbiAgICBsZXR0ZXItc3BhY2luZzogQGJhc2UtaDItbGV0dGVyLXNwYWNpbmc7XG59XG5cbi5ob29rLWJhc2UtaDIoKSB3aGVuIG5vdCAoQGJhc2UtaDItZm9udC1zdHlsZSA9IEBiYXNlLWhlYWRpbmctZm9udC1zdHlsZSkge1xuICAgIGZvbnQtc3R5bGU6IEBiYXNlLWgyLWZvbnQtc3R5bGU7XG59XG5cbi8vXG4vLyBIM1xuLy9cblxuLmhvb2stYmFzZS1oMygpIHdoZW4gbm90IChAYmFzZS1oMy1jb2xvciA9IEBiYXNlLWhlYWRpbmctY29sb3IpIHtcbiAgICBjb2xvcjogQGJhc2UtaDMtY29sb3I7XG59XG5cbi5ob29rLWJhc2UtaDMoKSB3aGVuIG5vdCAoQGJhc2UtaDMtZm9udC1mYW1pbHkgPSBpbmhlcml0KSB7XG4gICAgZm9udC1mYW1pbHk6IEBiYXNlLWgzLWZvbnQtZmFtaWx5O1xufVxuXG4uaG9vay1iYXNlLWgzKCkgd2hlbiBub3QgKEBiYXNlLWgzLWZvbnQtd2VpZ2h0ID0gaW5oZXJpdCkge1xuICAgIGZvbnQtd2VpZ2h0OiBAYmFzZS1oMy1mb250LXdlaWdodDtcbn1cblxuLmhvb2stYmFzZS1oMygpIHdoZW4gbm90IChAYmFzZS1oMy10ZXh0LXRyYW5zZm9ybSA9IGluaGVyaXQpIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogQGJhc2UtaDMtdGV4dC10cmFuc2Zvcm07XG59XG5cbi5ob29rLWJhc2UtaDMoKSB3aGVuIG5vdCAoQGJhc2UtaDMtbGV0dGVyLXNwYWNpbmcgPSBAYmFzZS1oZWFkaW5nLWxldHRlci1zcGFjaW5nKSB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IEBiYXNlLWgzLWxldHRlci1zcGFjaW5nO1xufVxuXG4uaG9vay1iYXNlLWgzKCkgd2hlbiBub3QgKEBiYXNlLWgzLWZvbnQtc3R5bGUgPSBAYmFzZS1oZWFkaW5nLWZvbnQtc3R5bGUpIHtcbiAgICBmb250LXN0eWxlOiBAYmFzZS1oMy1mb250LXN0eWxlO1xufVxuXG4vL1xuLy8gSDRcbi8vXG5cbi5ob29rLWJhc2UtaDQoKSB3aGVuIG5vdCAoQGJhc2UtaDQtY29sb3IgPSBAYmFzZS1oZWFkaW5nLWNvbG9yKSB7XG4gICAgY29sb3I6IEBiYXNlLWg0LWNvbG9yO1xufVxuXG4uaG9vay1iYXNlLWg0KCkgd2hlbiBub3QgKEBiYXNlLWg0LWZvbnQtZmFtaWx5ID0gaW5oZXJpdCkge1xuICAgIGZvbnQtZmFtaWx5OiBAYmFzZS1oNC1mb250LWZhbWlseTtcbn1cblxuLmhvb2stYmFzZS1oNCgpIHdoZW4gbm90IChAYmFzZS1oNC1mb250LXdlaWdodCA9IGluaGVyaXQpIHtcbiAgICBmb250LXdlaWdodDogQGJhc2UtaDQtZm9udC13ZWlnaHQ7XG59XG5cbi5ob29rLWJhc2UtaDQoKSB3aGVuIG5vdCAoQGJhc2UtaDQtdGV4dC10cmFuc2Zvcm0gPSBpbmhlcml0KSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IEBiYXNlLWg0LXRleHQtdHJhbnNmb3JtO1xufVxuXG4uaG9vay1iYXNlLWg0KCkgd2hlbiBub3QgKEBiYXNlLWg0LWxldHRlci1zcGFjaW5nID0gQGJhc2UtaGVhZGluZy1sZXR0ZXItc3BhY2luZykge1xuICAgIGxldHRlci1zcGFjaW5nOiBAYmFzZS1oNC1sZXR0ZXItc3BhY2luZztcbn1cblxuLmhvb2stYmFzZS1oNCgpIHdoZW4gbm90IChAYmFzZS1oNC1mb250LXN0eWxlID0gQGJhc2UtaGVhZGluZy1mb250LXN0eWxlKSB7XG4gICAgZm9udC1zdHlsZTogQGJhc2UtaDQtZm9udC1zdHlsZTtcbn1cblxuLy9cbi8vIEg1XG4vL1xuXG4uaG9vay1iYXNlLWg1KCkgd2hlbiBub3QgKEBiYXNlLWg1LWNvbG9yID0gQGJhc2UtaGVhZGluZy1jb2xvcikge1xuICAgIGNvbG9yOiBAYmFzZS1oNS1jb2xvcjtcbn1cblxuLmhvb2stYmFzZS1oNSgpIHdoZW4gbm90IChAYmFzZS1oNS1mb250LWZhbWlseSA9IGluaGVyaXQpIHtcbiAgICBmb250LWZhbWlseTogQGJhc2UtaDUtZm9udC1mYW1pbHk7XG59XG5cbi5ob29rLWJhc2UtaDUoKSB3aGVuIG5vdCAoQGJhc2UtaDUtZm9udC13ZWlnaHQgPSBpbmhlcml0KSB7XG4gICAgZm9udC13ZWlnaHQ6IEBiYXNlLWg1LWZvbnQtd2VpZ2h0O1xufVxuXG4uaG9vay1iYXNlLWg1KCkgd2hlbiBub3QgKEBiYXNlLWg1LXRleHQtdHJhbnNmb3JtID0gaW5oZXJpdCkge1xuICAgIHRleHQtdHJhbnNmb3JtOiBAYmFzZS1oNS10ZXh0LXRyYW5zZm9ybTtcbn1cblxuLmhvb2stYmFzZS1oNSgpIHdoZW4gbm90IChAYmFzZS1oNS1sZXR0ZXItc3BhY2luZyA9IEBiYXNlLWhlYWRpbmctbGV0dGVyLXNwYWNpbmcpIHtcbiAgICBsZXR0ZXItc3BhY2luZzogQGJhc2UtaDUtbGV0dGVyLXNwYWNpbmc7XG59XG5cbi5ob29rLWJhc2UtaDUoKSB3aGVuIG5vdCAoQGJhc2UtaDUtZm9udC1zdHlsZSA9IEBiYXNlLWhlYWRpbmctZm9udC1zdHlsZSkge1xuICAgIGZvbnQtc3R5bGU6IEBiYXNlLWg1LWZvbnQtc3R5bGU7XG59XG5cbi8vXG4vLyBINlxuLy9cblxuLmhvb2stYmFzZS1oNigpIHdoZW4gbm90IChAYmFzZS1oNi1jb2xvciA9IEBiYXNlLWhlYWRpbmctY29sb3IpIHtcbiAgICBjb2xvcjogQGJhc2UtaDYtY29sb3I7XG59XG5cbi5ob29rLWJhc2UtaDYoKSB3aGVuIG5vdCAoQGJhc2UtaDYtZm9udC1mYW1pbHkgPSBpbmhlcml0KSB7XG4gICAgZm9udC1mYW1pbHk6IEBiYXNlLWg2LWZvbnQtZmFtaWx5O1xufVxuXG4uaG9vay1iYXNlLWg2KCkgd2hlbiBub3QgKEBiYXNlLWg2LWZvbnQtd2VpZ2h0ID0gaW5oZXJpdCkge1xuICAgIGZvbnQtd2VpZ2h0OiBAYmFzZS1oNi1mb250LXdlaWdodDtcbn1cblxuLmhvb2stYmFzZS1oNigpIHdoZW4gbm90IChAYmFzZS1oNi10ZXh0LXRyYW5zZm9ybSA9IGluaGVyaXQpIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogQGJhc2UtaDYtdGV4dC10cmFuc2Zvcm07XG59XG5cbi5ob29rLWJhc2UtaDYoKSB3aGVuIG5vdCAoQGJhc2UtaDYtbGV0dGVyLXNwYWNpbmcgPSBAYmFzZS1oZWFkaW5nLWxldHRlci1zcGFjaW5nKSB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IEBiYXNlLWg2LWxldHRlci1zcGFjaW5nO1xufVxuXG4uaG9vay1iYXNlLWg2KCkgd2hlbiBub3QgKEBiYXNlLWg2LWZvbnQtc3R5bGUgPSBAYmFzZS1oZWFkaW5nLWZvbnQtc3R5bGUpIHtcbiAgICBmb250LXN0eWxlOiBAYmFzZS1oNi1mb250LXN0eWxlO1xufVxuXG5cbi8vIEhvcml6b250YWwgcnVsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1iYXNlLWhyKCkge31cblxuXG4vLyBCbG9ja3F1b3Rlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWJhc2UtYmxvY2txdW90ZSgpIHdoZW4gbm90IChAYmFzZS1ibG9ja3F1b3RlLWNvbG9yID0gQGdsb2JhbC1jb2xvcikge1xuICAgIGNvbG9yOiBAYmFzZS1ibG9ja3F1b3RlLWNvbG9yO1xufVxuXG4uaG9vay1iYXNlLWJsb2NrcXVvdGUoKSB3aGVuIG5vdCAoQGJhc2UtYmxvY2txdW90ZS1mb250LWZhbWlseSA9IGluaGVyaXQpIHtcbiAgICBmb250LWZhbWlseTogQGJhc2UtYmxvY2txdW90ZS1mb250LWZhbWlseTtcbn1cblxuLmhvb2stYmFzZS1ibG9ja3F1b3RlKCkgd2hlbiBub3QgKEBiYXNlLWJsb2NrcXVvdGUtZm9udC13ZWlnaHQgPSBpbmhlcml0KSB7XG4gICAgZm9udC13ZWlnaHQ6IEBiYXNlLWJsb2NrcXVvdGUtZm9udC13ZWlnaHQ7XG59XG5cbi5ob29rLWJhc2UtYmxvY2txdW90ZSgpIHdoZW4gbm90IChAYmFzZS1ibG9ja3F1b3RlLXRleHQtdHJhbnNmb3JtID0gaW5oZXJpdCkge1xuICAgIHRleHQtdHJhbnNmb3JtOiBAYmFzZS1ibG9ja3F1b3RlLXRleHQtdHJhbnNmb3JtO1xufVxuXG4uaG9vay1iYXNlLWJsb2NrcXVvdGUoKSB3aGVuIG5vdCAoQGJhc2UtYmxvY2txdW90ZS1sZXR0ZXItc3BhY2luZyA9IGluaGVyaXQpIHtcbiAgICBsZXR0ZXItc3BhY2luZzogQGJhc2UtYmxvY2txdW90ZS1sZXR0ZXItc3BhY2luZztcbn1cblxuLy9cbi8vIEJsb2NrcXVvdGUgZm9vdGVyXG4vL1xuXG4uaG9vay1iYXNlLWJsb2NrcXVvdGUtZm9vdGVyKCkgd2hlbiBub3QgKEBiYXNlLWJsb2NrcXVvdGUtZm9vdGVyLWNvbG9yID0gQGJhc2UtYmxvY2txdW90ZS1jb2xvcikgYW5kIG5vdCAoQGJhc2UtYmxvY2txdW90ZS1jb2xvciA9IEBnbG9iYWwtY29sb3IpIHtcbiAgICBjb2xvcjogQGJhc2UtYmxvY2txdW90ZS1mb290ZXItY29sb3I7XG59XG5cbi5ob29rLWJhc2UtYmxvY2txdW90ZS1mb290ZXIoKSB3aGVuIG5vdCAoQGJhc2UtYmxvY2txdW90ZS1mb290ZXItZm9udC1mYW1pbHkgPSBpbmhlcml0KSB7XG4gICAgZm9udC1mYW1pbHk6IEBiYXNlLWJsb2NrcXVvdGUtZm9vdGVyLWZvbnQtZmFtaWx5O1xufVxuXG4uaG9vay1iYXNlLWJsb2NrcXVvdGUtZm9vdGVyKCkgd2hlbiBub3QgKEBiYXNlLWJsb2NrcXVvdGUtZm9vdGVyLWZvbnQtd2VpZ2h0ID0gaW5oZXJpdCkge1xuICAgIGZvbnQtd2VpZ2h0OiBAYmFzZS1ibG9ja3F1b3RlLWZvb3Rlci1mb250LXdlaWdodDtcbn1cblxuLmhvb2stYmFzZS1ibG9ja3F1b3RlLWZvb3RlcigpIHdoZW4gbm90IChAYmFzZS1ibG9ja3F1b3RlLWZvb3Rlci10ZXh0LXRyYW5zZm9ybSA9IGluaGVyaXQpIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogQGJhc2UtYmxvY2txdW90ZS1mb290ZXItdGV4dC10cmFuc2Zvcm07XG59XG5cbi5ob29rLWJhc2UtYmxvY2txdW90ZS1mb290ZXIoKSB3aGVuIG5vdCAoQGJhc2UtYmxvY2txdW90ZS1mb290ZXItbGV0dGVyLXNwYWNpbmcgPSBpbmhlcml0KSB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IEBiYXNlLWJsb2NrcXVvdGUtZm9vdGVyLWxldHRlci1zcGFjaW5nO1xufVxuXG4uaG9vay1iYXNlLWJsb2NrcXVvdGUtZm9vdGVyKCkgd2hlbiBub3QgKEBiYXNlLWJsb2NrcXVvdGUtZm9vdGVyLWZvbnQtc3R5bGUgPSBpbmhlcml0KSB7XG4gICAgZm9udC1zdHlsZTogQGJhc2UtYmxvY2txdW90ZS1mb290ZXItZm9udC1zdHlsZTtcbn1cblxuXG4vLyBQcmVmb3JtYXR0ZWQgdGV4dFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWJhc2UtcHJlKCkge31cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYmFzZS1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGludmVyc2UtYmFzZS1oMS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AaW52ZXJzZS1iYXNlLWgyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcbkBpbnZlcnNlLWJhc2UtaDMtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQGludmVyc2UtYmFzZS1oNC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AaW52ZXJzZS1iYXNlLWg1LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcbkBpbnZlcnNlLWJhc2UtaDYtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQGludmVyc2UtYmFzZS1ibG9ja3F1b3RlLWNvbG9yOiAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AaW52ZXJzZS1iYXNlLWJsb2NrcXVvdGUtZm9vdGVyLWNvbG9yOiAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1jb2xvcjtcblxuLmhvb2staW52ZXJzZS1iYXNlLWxpbmsoKSB7fVxuLmhvb2staW52ZXJzZS1iYXNlLWxpbmstaG92ZXIoKSB7fVxuXG4uaG9vay1pbnZlcnNlLWJhc2UtY29kZSgpIHt9XG5cbi5ob29rLWludmVyc2UtYmFzZS1oZWFkaW5nKCkge31cblxuLmhvb2staW52ZXJzZS1iYXNlLWgxKCkgd2hlbiBub3QgKEBpbnZlcnNlLWJhc2UtaDEtY29sb3IgPSBAaW52ZXJzZS1iYXNlLWhlYWRpbmctY29sb3IpIHtcbiAgICBjb2xvcjogQGludmVyc2UtYmFzZS1oMS1jb2xvcjtcbn1cbi5ob29rLWludmVyc2UtYmFzZS1oMigpIHdoZW4gbm90IChAaW52ZXJzZS1iYXNlLWgyLWNvbG9yID0gQGludmVyc2UtYmFzZS1oZWFkaW5nLWNvbG9yKSB7XG4gICAgY29sb3I6IEBpbnZlcnNlLWJhc2UtaDItY29sb3I7XG59XG4uaG9vay1pbnZlcnNlLWJhc2UtaDMoKSB3aGVuIG5vdCAoQGludmVyc2UtYmFzZS1oMy1jb2xvciA9IEBpbnZlcnNlLWJhc2UtaGVhZGluZy1jb2xvcikge1xuICAgIGNvbG9yOiBAaW52ZXJzZS1iYXNlLWgzLWNvbG9yO1xufVxuLmhvb2staW52ZXJzZS1iYXNlLWg0KCkgd2hlbiBub3QgKEBpbnZlcnNlLWJhc2UtaDQtY29sb3IgPSBAaW52ZXJzZS1iYXNlLWhlYWRpbmctY29sb3IpIHtcbiAgICBjb2xvcjogQGludmVyc2UtYmFzZS1oNC1jb2xvcjtcbn1cbi5ob29rLWludmVyc2UtYmFzZS1oNSgpIHdoZW4gbm90IChAaW52ZXJzZS1iYXNlLWg1LWNvbG9yID0gQGludmVyc2UtYmFzZS1oZWFkaW5nLWNvbG9yKSB7XG4gICAgY29sb3I6IEBpbnZlcnNlLWJhc2UtaDUtY29sb3I7XG59XG4uaG9vay1pbnZlcnNlLWJhc2UtaDYoKSB3aGVuIG5vdCAoQGludmVyc2UtYmFzZS1oNi1jb2xvciA9IEBpbnZlcnNlLWJhc2UtaGVhZGluZy1jb2xvcikge1xuICAgIGNvbG9yOiBAaW52ZXJzZS1iYXNlLWg2LWNvbG9yO1xufVxuXG4uaG9vay1pbnZlcnNlLWJhc2UtYmxvY2txdW90ZSgpIHdoZW4gbm90IChAYmFzZS1ibG9ja3F1b3RlLWNvbG9yID0gQGdsb2JhbC1jb2xvcikge1xuICAgIGNvbG9yOiBAaW52ZXJzZS1iYXNlLWJsb2NrcXVvdGUtY29sb3I7XG59XG4uaG9vay1pbnZlcnNlLWJhc2UtYmxvY2txdW90ZS1mb290ZXIoKSB3aGVuIG5vdCAoQGJhc2UtYmxvY2txdW90ZS1mb290ZXItY29sb3IgPSBAYmFzZS1ibG9ja3F1b3RlLWNvbG9yKSBhbmQgbm90IChAYmFzZS1ibG9ja3F1b3RlLWNvbG9yID0gQGdsb2JhbC1jb2xvcikge1xuICAgIGNvbG9yOiBAaW52ZXJzZS1iYXNlLWJsb2NrcXVvdGUtZm9vdGVyLWNvbG9yO1xufVxuXG4uaG9vay1pbnZlcnNlLWJhc2UtaHIoKSB7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBMaW5rXG4vLyBEZXNjcmlwdGlvbjogICAgIFN0eWxlcyBmb3IgbGlua3Ncbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1saW5rLW11dGVkYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbGluay10ZXh0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstbGluay1oZWFkaW5nYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbGluay1yZXNldGBcbi8vXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay1saW5rLXRvZ2dsZWBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AbGluay1tdXRlZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWNvbG9yO1xuQGxpbmstbXV0ZWQtaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1jb2xvcjtcblxuQGxpbmstdGV4dC1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tdXRlZC1jb2xvcjtcblxuQGxpbmstaGVhZGluZy1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQ7XG5AbGluay1oZWFkaW5nLWhvdmVyLXRleHQtZGVjb3JhdGlvbjogICAgICAgICAgICBub25lO1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBMaW5rXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuXG4vKiBNdXRlZFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbmEudWstbGluay1tdXRlZCxcbi51ay1saW5rLW11dGVkIGEsXG4udWstbGluay10b2dnbGUgLnVrLWxpbmstbXV0ZWQge1xuICAgIGNvbG9yOiBAbGluay1tdXRlZC1jb2xvcjtcbiAgICAuaG9vay1saW5rLW11dGVkKCk7XG59XG5cbmEudWstbGluay1tdXRlZDpob3Zlcixcbi51ay1saW5rLW11dGVkIGE6aG92ZXIsXG4udWstbGluay10b2dnbGU6aG92ZXIgLnVrLWxpbmstbXV0ZWQge1xuICAgIGNvbG9yOiBAbGluay1tdXRlZC1ob3Zlci1jb2xvcjtcbiAgICAuaG9vay1saW5rLW11dGVkLWhvdmVyKCk7XG59XG5cblxuLyogVGV4dFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbmEudWstbGluay10ZXh0LFxuLnVrLWxpbmstdGV4dCBhLFxuLnVrLWxpbmstdG9nZ2xlIC51ay1saW5rLXRleHQge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIC5ob29rLWxpbmstdGV4dCgpO1xufVxuXG5hLnVrLWxpbmstdGV4dDpob3Zlcixcbi51ay1saW5rLXRleHQgYTpob3Zlcixcbi51ay1saW5rLXRvZ2dsZTpob3ZlciAudWstbGluay10ZXh0IHtcbiAgICBjb2xvcjogQGxpbmstdGV4dC1ob3Zlci1jb2xvcjtcbiAgICAuaG9vay1saW5rLXRleHQtaG92ZXIoKTtcbn1cblxuXG4vKiBIZWFkaW5nXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuYS51ay1saW5rLWhlYWRpbmcsXG4udWstbGluay1oZWFkaW5nIGEsXG4udWstbGluay10b2dnbGUgLnVrLWxpbmstaGVhZGluZyB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgLmhvb2stbGluay1oZWFkaW5nKCk7XG59XG5cbmEudWstbGluay1oZWFkaW5nOmhvdmVyLFxuLnVrLWxpbmstaGVhZGluZyBhOmhvdmVyLFxuLnVrLWxpbmstdG9nZ2xlOmhvdmVyIC51ay1saW5rLWhlYWRpbmcge1xuICAgIGNvbG9yOiBAbGluay1oZWFkaW5nLWhvdmVyLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogQGxpbmstaGVhZGluZy1ob3Zlci10ZXh0LWRlY29yYXRpb247XG4gICAgLmhvb2stbGluay1oZWFkaW5nLWhvdmVyKCk7XG59XG5cblxuLyogUmVzZXRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogYCFpbXBvcnRhbnRgIG5lZWRlZCB0byBvdmVycmlkZSBpbnZlcnNlIGNvbXBvbmVudFxuICovXG5cbmEudWstbGluay1yZXNldCxcbi51ay1saW5rLXJlc2V0IGEge1xuICAgIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLmhvb2stbGluay1yZXNldCgpO1xufVxuXG5cbi8qIFRvZ2dsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1saW5rLXRvZ2dsZSB7XG4gICAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWxpbmstbWlzYygpO1xuXG4uaG9vay1saW5rLW11dGVkKCkge31cbi5ob29rLWxpbmstbXV0ZWQtaG92ZXIoKSB7fVxuLmhvb2stbGluay10ZXh0KCkge31cbi5ob29rLWxpbmstdGV4dC1ob3ZlcigpIHt9XG4uaG9vay1saW5rLWhlYWRpbmcoKSB7fVxuLmhvb2stbGluay1oZWFkaW5nLWhvdmVyKCkge31cbi5ob29rLWxpbmstcmVzZXQoKSB7fVxuLmhvb2stbGluay1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGludmVyc2UtbGluay1tdXRlZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3I7XG5AaW52ZXJzZS1saW5rLW11dGVkLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1jb2xvcjtcbkBpbnZlcnNlLWxpbmstdGV4dC1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yO1xuQGludmVyc2UtbGluay1oZWFkaW5nLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kO1xuXG4uaG9vay1pbnZlcnNlKCkge1xuXG4gICAgYS51ay1saW5rLW11dGVkLFxuICAgIC51ay1saW5rLW11dGVkIGEge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtbGluay1tdXRlZC1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1saW5rLW11dGVkKCk7XG4gICAgfVxuXG4gICAgYS51ay1saW5rLW11dGVkOmhvdmVyLFxuICAgIC51ay1saW5rLW11dGVkIGE6aG92ZXIsXG4gICAgLnVrLWxpbmstdG9nZ2xlOmhvdmVyIC51ay1saW5rLW11dGVkICB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1saW5rLW11dGVkLWhvdmVyLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLWxpbmstbXV0ZWQtaG92ZXIoKTtcbiAgICB9XG5cbiAgICBhLnVrLWxpbmstdGV4dDpob3ZlcixcbiAgICAudWstbGluay10ZXh0IGE6aG92ZXIsXG4gICAgLnVrLWxpbmstdG9nZ2xlOmhvdmVyIC51ay1saW5rLXRleHQge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtbGluay10ZXh0LWhvdmVyLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLWxpbmstdGV4dC1ob3ZlcigpO1xuICAgIH1cblxuICAgIGEudWstbGluay1oZWFkaW5nOmhvdmVyLFxuICAgIC51ay1saW5rLWhlYWRpbmcgYTpob3ZlcixcbiAgICAudWstbGluay10b2dnbGU6aG92ZXIgLnVrLWxpbmstaGVhZGluZyB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1saW5rLWhlYWRpbmctaG92ZXItY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtbGluay1oZWFkaW5nLWhvdmVyKCk7XG4gICAgfVxuXG59XG5cbi5ob29rLWludmVyc2UtbGluay1tdXRlZCgpIHt9XG4uaG9vay1pbnZlcnNlLWxpbmstbXV0ZWQtaG92ZXIoKSB7fVxuLmhvb2staW52ZXJzZS1saW5rLXRleHQtaG92ZXIoKSB7fVxuLmhvb2staW52ZXJzZS1saW5rLWhlYWRpbmctaG92ZXIoKSB7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBIZWFkaW5nXG4vLyBEZXNjcmlwdGlvbjogICAgIFN0eWxlcyBmb3IgaGVhZGluZ3Ncbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1oZWFkaW5nLXByaW1hcnlgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1oZWFkaW5nLWhlcm9gXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1oZWFkaW5nLWRpdmlkZXJgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1oZWFkaW5nLWJ1bGxldGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWhlYWRpbmctbGluZWBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaGVhZGluZy1zbWFsbC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICBAaGVhZGluZy1zbWFsbC1mb250LXNpemUtbSAqIDAuODsgICAgICAvLyAzOHB4IDAuNzNcbkBoZWFkaW5nLW1lZGl1bS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgIEBoZWFkaW5nLW1lZGl1bS1mb250LXNpemUtbSAqIDAuODI1OyAgICAgLy8gNDBweCAwLjcxNFxuQGhlYWRpbmctbGFyZ2UtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgQGhlYWRpbmctbGFyZ2UtZm9udC1zaXplLW0gKiAwLjg1OyAgICAgIC8vIDUwcHggMC43OFxuQGhlYWRpbmcteGxhcmdlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgQGhlYWRpbmctbGFyZ2UtZm9udC1zaXplLW07ICAgICAgICAgICAgIC8vIDRyZW0gLyA2NHB4XG5AaGVhZGluZy0yeGxhcmdlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICBAaGVhZGluZy14bGFyZ2UtZm9udC1zaXplLW07ICAgICAgICAgICAgLy8gNnJlbSAvIDk2cHhcblxuQGhlYWRpbmctc21hbGwtZm9udC1zaXplLW06ICAgICAgICAgICAgICAgICAgICAgQGhlYWRpbmctbWVkaXVtLWZvbnQtc2l6ZS1sICogMC44MTI1OyAgIC8vIDMuMjVyZW0gLyA1MnB4XG5AaGVhZGluZy1tZWRpdW0tZm9udC1zaXplLW06ICAgICAgICAgICAgICAgICAgICBAaGVhZGluZy1tZWRpdW0tZm9udC1zaXplLWwgKiAwLjg3NTsgICAgLy8gMy41cmVtIC8gNTZweFxuQGhlYWRpbmctbGFyZ2UtZm9udC1zaXplLW06ICAgICAgICAgICAgICAgICAgICAgQGhlYWRpbmctbWVkaXVtLWZvbnQtc2l6ZS1sOyAgICAgICAgICAgIC8vIDRyZW0gLyA2NHB4XG5AaGVhZGluZy14bGFyZ2UtZm9udC1zaXplLW06ICAgICAgICAgICAgICAgICAgICBAaGVhZGluZy1sYXJnZS1mb250LXNpemUtbDsgICAgICAgICAgICAgLy8gNnJlbSAvIDk2cHhcbkBoZWFkaW5nLTJ4bGFyZ2UtZm9udC1zaXplLW06ICAgICAgICAgICAgICAgICAgIEBoZWFkaW5nLXhsYXJnZS1mb250LXNpemUtbDsgICAgICAgICAgICAvLyA4cmVtIC8gMTI4cHhcblxuQGhlYWRpbmctbWVkaXVtLWZvbnQtc2l6ZS1sOiAgICAgICAgICAgICAgICAgICAgNHJlbTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDY0cHhcbkBoZWFkaW5nLWxhcmdlLWZvbnQtc2l6ZS1sOiAgICAgICAgICAgICAgICAgICAgIDZyZW07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA5NnB4XG5AaGVhZGluZy14bGFyZ2UtZm9udC1zaXplLWw6ICAgICAgICAgICAgICAgICAgICA4cmVtOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMTI4cHhcbkBoZWFkaW5nLTJ4bGFyZ2UtZm9udC1zaXplLWw6ICAgICAgICAgICAgICAgICAgIDExcmVtOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAxNzZweFxuXG5AaGVhZGluZy1zbWFsbC1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAxLjI7XG5AaGVhZGluZy1tZWRpdW0tbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAxLjE7XG5AaGVhZGluZy1sYXJnZS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAxLjE7XG5AaGVhZGluZy14bGFyZ2UtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAxO1xuQGhlYWRpbmctMnhsYXJnZS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgMTtcblxuQGhlYWRpbmctZGl2aWRlci1wYWRkaW5nLWJvdHRvbTogICAgICAgICAgICAgICAgfidjYWxjKDVweCArIDAuMWVtKSc7XG5AaGVhZGluZy1kaXZpZGVyLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICB+J2NhbGMoMC4ycHggKyAwLjA1ZW0pJztcbkBoZWFkaW5nLWRpdmlkZXItYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtYm9yZGVyO1xuXG5AaGVhZGluZy1idWxsZXQtdG9wOiAgICAgICAgICAgICAgICAgICAgICAgICAgICB+J2NhbGMoLTAuMSAqIDFlbSknO1xuQGhlYWRpbmctYnVsbGV0LWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgfidjYWxjKDRweCArIDAuN2VtKSc7XG5AaGVhZGluZy1idWxsZXQtbWFyZ2luLXJpZ2h0OiAgICAgICAgICAgICAgICAgICB+J2NhbGMoNXB4ICsgMC4yZW0pJztcbkBoZWFkaW5nLWJ1bGxldC1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAgIH4nY2FsYyg1cHggKyAwLjFlbSknO1xuQGhlYWRpbmctYnVsbGV0LWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1ib3JkZXI7XG5cbkBoZWFkaW5nLWxpbmUtdG9wOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwJTtcbkBoZWFkaW5nLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgIEBoZWFkaW5nLWxpbmUtYm9yZGVyLXdpZHRoO1xuQGhlYWRpbmctbGluZS13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAwMHB4O1xuQGhlYWRpbmctbGluZS1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgfidjYWxjKDAuMnB4ICsgMC4wNWVtKSc7XG5AaGVhZGluZy1saW5lLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWJvcmRlcjtcbkBoZWFkaW5nLWxpbmUtbWFyZ2luLWhvcml6b250YWw6ICAgICAgICAgICAgICAgIH4nY2FsYyg1cHggKyAwLjNlbSknO1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBIZWFkaW5nXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWhlYWRpbmctc21hbGwge1xuICAgIGZvbnQtc2l6ZTogQGhlYWRpbmctc21hbGwtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBAaGVhZGluZy1zbWFsbC1saW5lLWhlaWdodDtcbiAgICAuaG9vay1oZWFkaW5nLXNtYWxsKCk7XG59XG5cbi51ay1oZWFkaW5nLW1lZGl1bSB7XG4gICAgZm9udC1zaXplOiBAaGVhZGluZy1tZWRpdW0tZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBAaGVhZGluZy1tZWRpdW0tbGluZS1oZWlnaHQ7XG4gICAgLmhvb2staGVhZGluZy1tZWRpdW0oKTtcbn1cblxuLnVrLWhlYWRpbmctbGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogQGhlYWRpbmctbGFyZ2UtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBAaGVhZGluZy1sYXJnZS1saW5lLWhlaWdodDtcbiAgICAuaG9vay1oZWFkaW5nLWxhcmdlKCk7XG59XG5cbi51ay1oZWFkaW5nLXhsYXJnZSB7XG4gICAgZm9udC1zaXplOiBAaGVhZGluZy14bGFyZ2UtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBAaGVhZGluZy14bGFyZ2UtbGluZS1oZWlnaHQ7XG4gICAgLmhvb2staGVhZGluZy14bGFyZ2UoKTtcbn1cblxuLnVrLWhlYWRpbmctMnhsYXJnZSB7XG4gICAgZm9udC1zaXplOiBAaGVhZGluZy0yeGxhcmdlLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogQGhlYWRpbmctMnhsYXJnZS1saW5lLWhlaWdodDtcbiAgICAuaG9vay1oZWFkaW5nLTJ4bGFyZ2UoKTtcbn1cblxuLyogVGFibGV0IExhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAudWstaGVhZGluZy1zbWFsbCB7IGZvbnQtc2l6ZTogQGhlYWRpbmctc21hbGwtZm9udC1zaXplLW07IH1cbiAgICAudWstaGVhZGluZy1tZWRpdW0geyBmb250LXNpemU6IEBoZWFkaW5nLW1lZGl1bS1mb250LXNpemUtbTsgfVxuICAgIC51ay1oZWFkaW5nLWxhcmdlIHsgZm9udC1zaXplOiBAaGVhZGluZy1sYXJnZS1mb250LXNpemUtbTsgfVxuICAgIC51ay1oZWFkaW5nLXhsYXJnZSB7IGZvbnQtc2l6ZTogQGhlYWRpbmcteGxhcmdlLWZvbnQtc2l6ZS1tOyB9XG4gICAgLnVrLWhlYWRpbmctMnhsYXJnZSB7IGZvbnQtc2l6ZTogQGhlYWRpbmctMnhsYXJnZS1mb250LXNpemUtbTsgfVxuXG59XG5cbi8qIExhcHRvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbGFyZ2UpIHtcblxuICAgIC51ay1oZWFkaW5nLW1lZGl1bSB7IGZvbnQtc2l6ZTogQGhlYWRpbmctbWVkaXVtLWZvbnQtc2l6ZS1sOyB9XG4gICAgLnVrLWhlYWRpbmctbGFyZ2UgeyBmb250LXNpemU6IEBoZWFkaW5nLWxhcmdlLWZvbnQtc2l6ZS1sOyB9XG4gICAgLnVrLWhlYWRpbmcteGxhcmdlIHsgZm9udC1zaXplOiBAaGVhZGluZy14bGFyZ2UtZm9udC1zaXplLWw7IH1cbiAgICAudWstaGVhZGluZy0yeGxhcmdlIHsgZm9udC1zaXplOiBAaGVhZGluZy0yeGxhcmdlLWZvbnQtc2l6ZS1sOyB9XG5cbn1cblxuXG4vKiBQcmltYXJ5XG4gICBEZXByZWNhdGVkOiBVc2UgYHVrLWhlYWRpbmctbWVkaXVtYCBpbnN0ZWFkXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQGhlYWRpbmctcHJpbWFyeS1mb250LXNpemUtbDogICAgICAgICAgICAgICAgICAgMy43NXJlbTsgIC8vIDYwcHhcbkBoZWFkaW5nLXByaW1hcnktbGluZS1oZWlnaHQtbDogICAgICAgICAgICAgICAgIDEuMTtcblxuQGhlYWRpbmctcHJpbWFyeS1mb250LXNpemUtbTogICAgICAgICAgICAgICAgICAgQGhlYWRpbmctcHJpbWFyeS1mb250LXNpemUtbCAqIDAuOTsgLy8gNTRweFxuXG5AaGVhZGluZy1wcmltYXJ5LWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICBAaGVhZGluZy1wcmltYXJ5LWZvbnQtc2l6ZS1sICogMC44OyAvLyA0OHB4XG5AaGVhZGluZy1wcmltYXJ5LWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAxLjI7XG5cbi51ay1oZWFkaW5nLXByaW1hcnkgd2hlbiAoQGRlcHJlY2F0ZWQgPSB0cnVlKSB7XG4gICAgZm9udC1zaXplOiBAaGVhZGluZy1wcmltYXJ5LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogQGhlYWRpbmctcHJpbWFyeS1saW5lLWhlaWdodDtcbiAgICAuaG9vay1oZWFkaW5nLXByaW1hcnkoKTtcbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAudWstaGVhZGluZy1wcmltYXJ5IHdoZW4gKEBkZXByZWNhdGVkID0gdHJ1ZSkgeyBmb250LXNpemU6IEBoZWFkaW5nLXByaW1hcnktZm9udC1zaXplLW07IH1cblxufVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1sYXJnZSkge1xuXG4gICAgLnVrLWhlYWRpbmctcHJpbWFyeSB3aGVuIChAZGVwcmVjYXRlZCA9IHRydWUpIHtcbiAgICAgICAgZm9udC1zaXplOiBAaGVhZGluZy1wcmltYXJ5LWZvbnQtc2l6ZS1sO1xuICAgICAgICBsaW5lLWhlaWdodDogQGhlYWRpbmctcHJpbWFyeS1saW5lLWhlaWdodC1sO1xuICAgIH1cblxufVxuXG5cbi8qIEhlcm9cbiAgIERlcHJlY2F0ZWQ6IFVzZSBgdWstaGVhZGluZy14bGFyZ2VgIGluc3RlYWRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AaGVhZGluZy1oZXJvLWZvbnQtc2l6ZS1sOiAgICAgICAgICAgICAgICAgICAgICA4cmVtOyAvLyAxMjhweFxuQGhlYWRpbmctaGVyby1saW5lLWhlaWdodC1sOiAgICAgICAgICAgICAgICAgICAgMTtcblxuQGhlYWRpbmctaGVyby1mb250LXNpemUtbTogICAgICAgICAgICAgICAgICAgICAgQGhlYWRpbmctaGVyby1mb250LXNpemUtbCAqIDAuNzU7IC8vIDk2cHhcbkBoZWFkaW5nLWhlcm8tbGluZS1oZWlnaHQtbTogICAgICAgICAgICAgICAgICAgIDE7XG5cbkBoZWFkaW5nLWhlcm8tZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgIEBoZWFkaW5nLWhlcm8tZm9udC1zaXplLWwgKiAwLjU7IC8vIDY0cHhcbkBoZWFkaW5nLWhlcm8tbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgIDEuMTtcblxuLnVrLWhlYWRpbmctaGVybyB3aGVuIChAZGVwcmVjYXRlZCA9IHRydWUpIHtcbiAgICBmb250LXNpemU6IEBoZWFkaW5nLWhlcm8tZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBAaGVhZGluZy1oZXJvLWxpbmUtaGVpZ2h0O1xuICAgIC5ob29rLWhlYWRpbmctaGVybygpO1xufVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1tZWRpdW0pIHtcblxuICAgIC51ay1oZWFkaW5nLWhlcm8gd2hlbiAoQGRlcHJlY2F0ZWQgPSB0cnVlKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogQGhlYWRpbmctaGVyby1mb250LXNpemUtbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IEBoZWFkaW5nLWhlcm8tbGluZS1oZWlnaHQtbTtcbiAgICB9XG5cbn1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbGFyZ2UpIHtcblxuICAgIC51ay1oZWFkaW5nLWhlcm8gd2hlbiAoQGRlcHJlY2F0ZWQgPSB0cnVlKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogQGhlYWRpbmctaGVyby1mb250LXNpemUtbDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IEBoZWFkaW5nLWhlcm8tbGluZS1oZWlnaHQtbDtcbiAgICB9XG5cbn1cblxuXG4vKiBEaXZpZGVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWhlYWRpbmctZGl2aWRlciB7XG4gICAgcGFkZGluZy1ib3R0b206IEBoZWFkaW5nLWRpdmlkZXItcGFkZGluZy1ib3R0b207XG4gICAgYm9yZGVyLWJvdHRvbTogQGhlYWRpbmctZGl2aWRlci1ib3JkZXItd2lkdGggc29saWQgQGhlYWRpbmctZGl2aWRlci1ib3JkZXI7XG4gICAgLmhvb2staGVhZGluZy1kaXZpZGVyKCk7XG59XG5cblxuLyogQnVsbGV0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWhlYWRpbmctYnVsbGV0IHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi8qXG4gKiAxLiBVc2luZyBgaW5saW5lLWJsb2NrYCB0byBtYWtlIGl0IHdvcmsgd2l0aCB0ZXh0IGFsaWdubWVudFxuICogMi4gQ2VudGVyIHZlcnRpY2FsbHlcbiAqIDMuIFN0eWxlXG4gKi9cblxuLnVrLWhlYWRpbmctYnVsbGV0OjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgLyogMSAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAvKiAyICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogQGhlYWRpbmctYnVsbGV0LXRvcDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIC8qIDMgKi9cbiAgICBoZWlnaHQ6IEBoZWFkaW5nLWJ1bGxldC1oZWlnaHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBAaGVhZGluZy1idWxsZXQtbWFyZ2luLXJpZ2h0O1xuICAgIGJvcmRlci1sZWZ0OiBAaGVhZGluZy1idWxsZXQtYm9yZGVyLXdpZHRoIHNvbGlkIEBoZWFkaW5nLWJ1bGxldC1ib3JkZXI7XG4gICAgLmhvb2staGVhZGluZy1idWxsZXQoKTtcbn1cblxuXG4vKiBMaW5lXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIENsaXAgdGhlIGNoaWxkIGVsZW1lbnRcbiAqL1xuXG4udWstaGVhZGluZy1saW5lIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKlxuICogRXh0cmEgbWFya3VwIGlzIG5lZWRlZCB0byBtYWtlIGl0IHdvcmsgd2l0aCB0ZXh0IGFsaWduXG4gKi9cblxuLnVrLWhlYWRpbmctbGluZSA+ICoge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8qXG4gKiAxLiBDZW50ZXIgdmVydGljYWxseVxuICogMi4gTWFrZSB0aGUgZWxlbWVudCBhcyBsYXJnZSBhcyBwb3NzaWJsZS4gSXQncyBjbGlwcGVkIGJ5IHRoZSBjb250YWluZXIuXG4gKiAzLiBTdHlsZVxuICovXG5cbi51ay1oZWFkaW5nLWxpbmUgPiA6OmJlZm9yZSxcbi51ay1oZWFkaW5nLWxpbmUgPiA6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIC8qIDEgKi9cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiB+J2NhbGMoQHtoZWFkaW5nLWxpbmUtdG9wfSAtIChAe2hlYWRpbmctbGluZS1oZWlnaHR9IC8gMikpJztcbiAgICAvKiAyICovXG4gICAgd2lkdGg6IEBoZWFkaW5nLWxpbmUtd2lkdGg7XG4gICAgLyogMyAqL1xuICAgIGJvcmRlci1ib3R0b206IEBoZWFkaW5nLWxpbmUtYm9yZGVyLXdpZHRoIHNvbGlkIEBoZWFkaW5nLWxpbmUtYm9yZGVyO1xuICAgIC5ob29rLWhlYWRpbmctbGluZSgpO1xufVxuXG4udWstaGVhZGluZy1saW5lID4gOjpiZWZvcmUge1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogQGhlYWRpbmctbGluZS1tYXJnaW4taG9yaXpvbnRhbDtcbn1cbi51ay1oZWFkaW5nLWxpbmUgPiA6OmFmdGVyIHtcbiAgICBsZWZ0OiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiBAaGVhZGluZy1saW5lLW1hcmdpbi1ob3Jpem9udGFsO1xufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2staGVhZGluZy1taXNjKCk7XG5cbi5ob29rLWhlYWRpbmctc21hbGwoKSB7fVxuLmhvb2staGVhZGluZy1tZWRpdW0oKSB7fVxuLmhvb2staGVhZGluZy1sYXJnZSgpIHt9XG4uaG9vay1oZWFkaW5nLXhsYXJnZSgpIHt9XG4uaG9vay1oZWFkaW5nLTJ4bGFyZ2UoKSB7fVxuLmhvb2staGVhZGluZy1wcmltYXJ5KCkge31cbi5ob29rLWhlYWRpbmctaGVybygpIHt9XG4uaG9vay1oZWFkaW5nLWRpdmlkZXIoKSB7fVxuLmhvb2staGVhZGluZy1idWxsZXQoKSB7fVxuLmhvb2staGVhZGluZy1saW5lKCkge31cbi5ob29rLWhlYWRpbmctbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbnZlcnNlLWhlYWRpbmctZGl2aWRlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWJvcmRlcjtcbkBpbnZlcnNlLWhlYWRpbmctYnVsbGV0LWJvcmRlcjogICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWJvcmRlcjtcbkBpbnZlcnNlLWhlYWRpbmctbGluZS1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWJvcmRlcjtcblxuLmhvb2staW52ZXJzZSgpIHtcblxuICAgIC51ay1oZWFkaW5nLXNtYWxsIHtcbiAgICAgICAgLmhvb2staW52ZXJzZS1oZWFkaW5nLXNtYWxsKCk7XG4gICAgfVxuXG4gICAgLnVrLWhlYWRpbmctbWVkaXVtIHtcbiAgICAgICAgLmhvb2staW52ZXJzZS1oZWFkaW5nLW1lZGl1bSgpO1xuICAgIH1cblxuICAgIC51ay1oZWFkaW5nLWxhcmdlIHtcbiAgICAgICAgLmhvb2staW52ZXJzZS1oZWFkaW5nLWxhcmdlKCk7XG4gICAgfVxuXG4gICAgLnVrLWhlYWRpbmcteGxhcmdlIHtcbiAgICAgICAgLmhvb2staW52ZXJzZS1oZWFkaW5nLXhsYXJnZSgpO1xuICAgIH1cblxuICAgIC51ay1oZWFkaW5nLTJ4bGFyZ2Uge1xuICAgICAgICAuaG9vay1pbnZlcnNlLWhlYWRpbmctMnhsYXJnZSgpO1xuICAgIH1cblxuICAgIC51ay1oZWFkaW5nLXByaW1hcnkgd2hlbiAoQGRlcHJlY2F0ZWQgPSB0cnVlKSB7XG4gICAgICAgIC5ob29rLWludmVyc2UtaGVhZGluZy1wcmltYXJ5KCk7XG4gICAgfVxuXG4gICAgLnVrLWhlYWRpbmctaGVybyB3aGVuIChAZGVwcmVjYXRlZCA9IHRydWUpIHtcbiAgICAgICAgLmhvb2staW52ZXJzZS1oZWFkaW5nLWhlcm8oKTtcbiAgICB9XG5cbiAgICAudWstaGVhZGluZy1kaXZpZGVyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQGludmVyc2UtaGVhZGluZy1kaXZpZGVyLWJvcmRlcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1oZWFkaW5nLWRpdmlkZXIoKTtcbiAgICB9XG5cbiAgICAudWstaGVhZGluZy1idWxsZXQ6OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBAaW52ZXJzZS1oZWFkaW5nLWJ1bGxldC1ib3JkZXI7XG4gICAgICAgIC5ob29rLWludmVyc2UtaGVhZGluZy1idWxsZXQoKTtcbiAgICB9XG5cbiAgICAudWstaGVhZGluZy1saW5lID4gOjpiZWZvcmUsXG4gICAgLnVrLWhlYWRpbmctbGluZSA+IDo6YWZ0ZXIge1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAaW52ZXJzZS1oZWFkaW5nLWxpbmUtYm9yZGVyO1xuICAgICAgICAuaG9vay1pbnZlcnNlLWhlYWRpbmctbGluZSgpO1xuICAgIH1cblxufVxuXG4uaG9vay1pbnZlcnNlLWhlYWRpbmctc21hbGwoKSB7fVxuLmhvb2staW52ZXJzZS1oZWFkaW5nLW1lZGl1bSgpIHt9XG4uaG9vay1pbnZlcnNlLWhlYWRpbmctbGFyZ2UoKSB7fVxuLmhvb2staW52ZXJzZS1oZWFkaW5nLXhsYXJnZSgpIHt9XG4uaG9vay1pbnZlcnNlLWhlYWRpbmctMnhsYXJnZSgpIHt9XG4uaG9vay1pbnZlcnNlLWhlYWRpbmctcHJpbWFyeSgpIHt9XG4uaG9vay1pbnZlcnNlLWhlYWRpbmctaGVybygpIHt9XG4uaG9vay1pbnZlcnNlLWhlYWRpbmctZGl2aWRlcigpIHt9XG4uaG9vay1pbnZlcnNlLWhlYWRpbmctYnVsbGV0KCkge31cbi5ob29rLWludmVyc2UtaGVhZGluZy1saW5lKCkge31cbiIsIi8vXG4vLyBDb21wb25lbnQ6IEhlYWRpbmdcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gTmV3XG4vL1xuXG5AaGVhZGluZy1zbWFsbC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AaGVhZGluZy1zbWFsbC1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtcHJpbWFyeS1mb250LWZhbWlseTtcbkBoZWFkaW5nLXNtYWxsLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1wcmltYXJ5LWZvbnQtd2VpZ2h0O1xuQGhlYWRpbmctc21hbGwtdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktdGV4dC10cmFuc2Zvcm07XG5AaGVhZGluZy1zbWFsbC1sZXR0ZXItc3BhY2luZzogICAgICAgICAgICAgICAgIEBnbG9iYWwtcHJpbWFyeS1sZXR0ZXItc3BhY2luZztcbkBoZWFkaW5nLXNtYWxsLWZvbnQtc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1wcmltYXJ5LWZvbnQtc3R5bGU7XG5cbkBoZWFkaW5nLXNtYWxsLXRleHQtc2hhZG93OiAgICAgICAgICAgICAgICAgICAgbm9uZTtcblxuQGhlYWRpbmctbWVkaXVtLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQGhlYWRpbmctbWVkaXVtLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktZm9udC1mYW1pbHk7XG5AaGVhZGluZy1tZWRpdW0tZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtcHJpbWFyeS1mb250LXdlaWdodDtcbkBoZWFkaW5nLW1lZGl1bS10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgICAgICAgQGdsb2JhbC1wcmltYXJ5LXRleHQtdHJhbnNmb3JtO1xuQGhlYWRpbmctbWVkaXVtLWxldHRlci1zcGFjaW5nOiAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktbGV0dGVyLXNwYWNpbmc7XG5AaGVhZGluZy1tZWRpdW0tZm9udC1zdHlsZTogICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtcHJpbWFyeS1mb250LXN0eWxlO1xuXG5AaGVhZGluZy1tZWRpdW0tdGV4dC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgIG5vbmU7XG5cbkBoZWFkaW5nLWxhcmdlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcbkBoZWFkaW5nLWxhcmdlLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1wcmltYXJ5LWZvbnQtZmFtaWx5O1xuQGhlYWRpbmctbGFyZ2UtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktZm9udC13ZWlnaHQ7XG5AaGVhZGluZy1sYXJnZS10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgICAgICAgIEBnbG9iYWwtcHJpbWFyeS10ZXh0LXRyYW5zZm9ybTtcbkBoZWFkaW5nLWxhcmdlLWxldHRlci1zcGFjaW5nOiAgICAgICAgICAgICAgICAgQGdsb2JhbC1wcmltYXJ5LWxldHRlci1zcGFjaW5nO1xuQGhlYWRpbmctbGFyZ2UtZm9udC1zdHlsZTogICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktZm9udC1zdHlsZTtcblxuQGhlYWRpbmctbGFyZ2UtdGV4dC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICBub25lO1xuXG5AaGVhZGluZy14bGFyZ2UtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AaGVhZGluZy14bGFyZ2UtZm9udC1mYW1pbHk6ICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtcHJpbWFyeS1mb250LWZhbWlseTtcbkBoZWFkaW5nLXhsYXJnZS1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgQGdsb2JhbC1wcmltYXJ5LWZvbnQtd2VpZ2h0O1xuQGhlYWRpbmcteGxhcmdlLXRleHQtdHJhbnNmb3JtOiAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktdGV4dC10cmFuc2Zvcm07XG5AaGVhZGluZy14bGFyZ2UtbGV0dGVyLXNwYWNpbmc6ICAgICAgICAgICAgICAgIEBnbG9iYWwtcHJpbWFyeS1sZXR0ZXItc3BhY2luZztcbkBoZWFkaW5nLXhsYXJnZS1mb250LXN0eWxlOiAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1wcmltYXJ5LWZvbnQtc3R5bGU7XG5cbkBoZWFkaW5nLXhsYXJnZS10ZXh0LXNoYWRvdzogICAgICAgICAgICAgICAgICAgbm9uZTtcblxuQGhlYWRpbmctMnhsYXJnZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQGhlYWRpbmctMnhsYXJnZS1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktZm9udC1mYW1pbHk7XG5AaGVhZGluZy0yeGxhcmdlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgIEBnbG9iYWwtcHJpbWFyeS1mb250LXdlaWdodDtcbkBoZWFkaW5nLTJ4bGFyZ2UtdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgICAgQGdsb2JhbC1wcmltYXJ5LXRleHQtdHJhbnNmb3JtO1xuQGhlYWRpbmctMnhsYXJnZS1sZXR0ZXItc3BhY2luZzogICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktbGV0dGVyLXNwYWNpbmc7XG5AaGVhZGluZy0yeGxhcmdlLWZvbnQtc3R5bGU6ICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtcHJpbWFyeS1mb250LXN0eWxlO1xuXG5AaGVhZGluZy0yeGxhcmdlLXRleHQtc2hhZG93OiAgICAgICAgICAgICAgICAgIG5vbmU7XG5cblxuLy8gQ29tcG9uZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIFNtYWxsXG4vL1xuXG4uaG9vay1oZWFkaW5nLXNtYWxsKCkgeyBjb2xvcjogQGhlYWRpbmctc21hbGwtY29sb3I7IH1cblxuLmhvb2staGVhZGluZy1zbWFsbCgpIHdoZW4gbm90IChAaGVhZGluZy1zbWFsbC1mb250LWZhbWlseSA9IGluaGVyaXQpIHtcbiAgICBmb250LWZhbWlseTogQGhlYWRpbmctc21hbGwtZm9udC1mYW1pbHk7XG59XG5cbi5ob29rLWhlYWRpbmctc21hbGwoKSB3aGVuIG5vdCAoQGhlYWRpbmctc21hbGwtZm9udC13ZWlnaHQgPSBpbmhlcml0KSB7XG4gICAgZm9udC13ZWlnaHQ6IEBoZWFkaW5nLXNtYWxsLWZvbnQtd2VpZ2h0O1xufVxuXG4uaG9vay1oZWFkaW5nLXNtYWxsKCkgd2hlbiBub3QgKEBoZWFkaW5nLXNtYWxsLXRleHQtdHJhbnNmb3JtID0gaW5oZXJpdCkge1xuICAgIHRleHQtdHJhbnNmb3JtOiBAaGVhZGluZy1zbWFsbC10ZXh0LXRyYW5zZm9ybTtcbn1cblxuLmhvb2staGVhZGluZy1zbWFsbCgpIHdoZW4gbm90IChAaGVhZGluZy1zbWFsbC1sZXR0ZXItc3BhY2luZyA9IGluaGVyaXQpIHtcbiAgICBsZXR0ZXItc3BhY2luZzogQGhlYWRpbmctc21hbGwtbGV0dGVyLXNwYWNpbmc7XG59XG5cbi5ob29rLWhlYWRpbmctc21hbGwoKSB3aGVuIG5vdCAoQGhlYWRpbmctc21hbGwtZm9udC1zdHlsZSA9IGluaGVyaXQpIHtcbiAgICBmb250LXN0eWxlOiBAaGVhZGluZy1zbWFsbC1mb250LXN0eWxlO1xufVxuXG4uaG9vay1oZWFkaW5nLXNtYWxsKCkgd2hlbiBub3QgKEBoZWFkaW5nLXNtYWxsLXRleHQtc2hhZG93ID0gbm9uZSkge1xuICAgIHRleHQtc2hhZG93OiBAaGVhZGluZy1zbWFsbC10ZXh0LXNoYWRvdztcbn1cblxuLy9cbi8vIE1lZGl1bVxuLy9cblxuLmhvb2staGVhZGluZy1tZWRpdW0oKSB7IGNvbG9yOiBAaGVhZGluZy1tZWRpdW0tY29sb3I7IH1cblxuLmhvb2staGVhZGluZy1tZWRpdW0oKSB3aGVuIG5vdCAoQGhlYWRpbmctbWVkaXVtLWZvbnQtZmFtaWx5ID0gaW5oZXJpdCkge1xuICAgIGZvbnQtZmFtaWx5OiBAaGVhZGluZy1tZWRpdW0tZm9udC1mYW1pbHk7XG59XG5cbi5ob29rLWhlYWRpbmctbWVkaXVtKCkgd2hlbiBub3QgKEBoZWFkaW5nLW1lZGl1bS1mb250LXdlaWdodCA9IGluaGVyaXQpIHtcbiAgICBmb250LXdlaWdodDogQGhlYWRpbmctbWVkaXVtLWZvbnQtd2VpZ2h0O1xufVxuXG4uaG9vay1oZWFkaW5nLW1lZGl1bSgpIHdoZW4gbm90IChAaGVhZGluZy1tZWRpdW0tdGV4dC10cmFuc2Zvcm0gPSBpbmhlcml0KSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IEBoZWFkaW5nLW1lZGl1bS10ZXh0LXRyYW5zZm9ybTtcbn1cblxuLmhvb2staGVhZGluZy1tZWRpdW0oKSB3aGVuIG5vdCAoQGhlYWRpbmctbWVkaXVtLWxldHRlci1zcGFjaW5nID0gaW5oZXJpdCkge1xuICAgIGxldHRlci1zcGFjaW5nOiBAaGVhZGluZy1tZWRpdW0tbGV0dGVyLXNwYWNpbmc7XG59XG5cbi5ob29rLWhlYWRpbmctbWVkaXVtKCkgd2hlbiBub3QgKEBoZWFkaW5nLW1lZGl1bS1mb250LXN0eWxlID0gaW5oZXJpdCkge1xuICAgIGZvbnQtc3R5bGU6IEBoZWFkaW5nLW1lZGl1bS1mb250LXN0eWxlO1xufVxuXG4uaG9vay1oZWFkaW5nLW1lZGl1bSgpIHdoZW4gbm90IChAaGVhZGluZy1tZWRpdW0tdGV4dC1zaGFkb3cgPSBub25lKSB7XG4gICAgdGV4dC1zaGFkb3c6IEBoZWFkaW5nLW1lZGl1bS10ZXh0LXNoYWRvdztcbn1cblxuLy9cbi8vIExhcmdlXG4vL1xuXG4uaG9vay1oZWFkaW5nLWxhcmdlKCkgeyBjb2xvcjogQGhlYWRpbmctbGFyZ2UtY29sb3I7IH1cblxuLmhvb2staGVhZGluZy1sYXJnZSgpIHdoZW4gbm90IChAaGVhZGluZy1sYXJnZS1mb250LWZhbWlseSA9IGluaGVyaXQpIHtcbiAgICBmb250LWZhbWlseTogQGhlYWRpbmctbGFyZ2UtZm9udC1mYW1pbHk7XG59XG5cbi5ob29rLWhlYWRpbmctbGFyZ2UoKSB3aGVuIG5vdCAoQGhlYWRpbmctbGFyZ2UtZm9udC13ZWlnaHQgPSBpbmhlcml0KSB7XG4gICAgZm9udC13ZWlnaHQ6IEBoZWFkaW5nLWxhcmdlLWZvbnQtd2VpZ2h0O1xufVxuXG4uaG9vay1oZWFkaW5nLWxhcmdlKCkgd2hlbiBub3QgKEBoZWFkaW5nLWxhcmdlLXRleHQtdHJhbnNmb3JtID0gaW5oZXJpdCkge1xuICAgIHRleHQtdHJhbnNmb3JtOiBAaGVhZGluZy1sYXJnZS10ZXh0LXRyYW5zZm9ybTtcbn1cblxuLmhvb2staGVhZGluZy1sYXJnZSgpIHdoZW4gbm90IChAaGVhZGluZy1sYXJnZS1sZXR0ZXItc3BhY2luZyA9IGluaGVyaXQpIHtcbiAgICBsZXR0ZXItc3BhY2luZzogQGhlYWRpbmctbGFyZ2UtbGV0dGVyLXNwYWNpbmc7XG59XG5cbi5ob29rLWhlYWRpbmctbGFyZ2UoKSB3aGVuIG5vdCAoQGhlYWRpbmctbGFyZ2UtZm9udC1zdHlsZSA9IGluaGVyaXQpIHtcbiAgICBmb250LXN0eWxlOiBAaGVhZGluZy1sYXJnZS1mb250LXN0eWxlO1xufVxuXG4uaG9vay1oZWFkaW5nLWxhcmdlKCkgd2hlbiBub3QgKEBoZWFkaW5nLWxhcmdlLXRleHQtc2hhZG93ID0gbm9uZSkge1xuICAgIHRleHQtc2hhZG93OiBAaGVhZGluZy1sYXJnZS10ZXh0LXNoYWRvdztcbn1cblxuLy9cbi8vIFhMYXJnZVxuLy9cblxuLmhvb2staGVhZGluZy14bGFyZ2UoKSB7IGNvbG9yOiBAaGVhZGluZy14bGFyZ2UtY29sb3I7IH1cblxuLmhvb2staGVhZGluZy14bGFyZ2UoKSB3aGVuIG5vdCAoQGhlYWRpbmcteGxhcmdlLWZvbnQtZmFtaWx5ID0gaW5oZXJpdCkge1xuICAgIGZvbnQtZmFtaWx5OiBAaGVhZGluZy14bGFyZ2UtZm9udC1mYW1pbHk7XG59XG5cbi5ob29rLWhlYWRpbmcteGxhcmdlKCkgd2hlbiBub3QgKEBoZWFkaW5nLXhsYXJnZS1mb250LXdlaWdodCA9IGluaGVyaXQpIHtcbiAgICBmb250LXdlaWdodDogQGhlYWRpbmcteGxhcmdlLWZvbnQtd2VpZ2h0O1xufVxuXG4uaG9vay1oZWFkaW5nLXhsYXJnZSgpIHdoZW4gbm90IChAaGVhZGluZy14bGFyZ2UtdGV4dC10cmFuc2Zvcm0gPSBpbmhlcml0KSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IEBoZWFkaW5nLXhsYXJnZS10ZXh0LXRyYW5zZm9ybTtcbn1cblxuLmhvb2staGVhZGluZy14bGFyZ2UoKSB3aGVuIG5vdCAoQGhlYWRpbmcteGxhcmdlLWxldHRlci1zcGFjaW5nID0gaW5oZXJpdCkge1xuICAgIGxldHRlci1zcGFjaW5nOiBAaGVhZGluZy14bGFyZ2UtbGV0dGVyLXNwYWNpbmc7XG59XG5cbi5ob29rLWhlYWRpbmcteGxhcmdlKCkgd2hlbiBub3QgKEBoZWFkaW5nLXhsYXJnZS1mb250LXN0eWxlID0gaW5oZXJpdCkge1xuICAgIGZvbnQtc3R5bGU6IEBoZWFkaW5nLXhsYXJnZS1mb250LXN0eWxlO1xufVxuXG4uaG9vay1oZWFkaW5nLXhsYXJnZSgpIHdoZW4gbm90IChAaGVhZGluZy14bGFyZ2UtdGV4dC1zaGFkb3cgPSBub25lKSB7XG4gICAgdGV4dC1zaGFkb3c6IEBoZWFkaW5nLXhsYXJnZS10ZXh0LXNoYWRvdztcbn1cblxuLy9cbi8vIDJYTGFyZ2Vcbi8vXG5cbi5ob29rLWhlYWRpbmctMnhsYXJnZSgpIHsgY29sb3I6IEBoZWFkaW5nLTJ4bGFyZ2UtY29sb3I7IH1cblxuLmhvb2staGVhZGluZy0yeGxhcmdlKCkgd2hlbiBub3QgKEBoZWFkaW5nLTJ4bGFyZ2UtZm9udC1mYW1pbHkgPSBpbmhlcml0KSB7XG4gICAgZm9udC1mYW1pbHk6IEBoZWFkaW5nLTJ4bGFyZ2UtZm9udC1mYW1pbHk7XG59XG5cbi5ob29rLWhlYWRpbmctMnhsYXJnZSgpIHdoZW4gbm90IChAaGVhZGluZy0yeGxhcmdlLWZvbnQtd2VpZ2h0ID0gaW5oZXJpdCkge1xuICAgIGZvbnQtd2VpZ2h0OiBAaGVhZGluZy0yeGxhcmdlLWZvbnQtd2VpZ2h0O1xufVxuXG4uaG9vay1oZWFkaW5nLTJ4bGFyZ2UoKSB3aGVuIG5vdCAoQGhlYWRpbmctMnhsYXJnZS10ZXh0LXRyYW5zZm9ybSA9IGluaGVyaXQpIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogQGhlYWRpbmctMnhsYXJnZS10ZXh0LXRyYW5zZm9ybTtcbn1cblxuLmhvb2staGVhZGluZy0yeGxhcmdlKCkgd2hlbiBub3QgKEBoZWFkaW5nLTJ4bGFyZ2UtbGV0dGVyLXNwYWNpbmcgPSBpbmhlcml0KSB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IEBoZWFkaW5nLTJ4bGFyZ2UtbGV0dGVyLXNwYWNpbmc7XG59XG5cbi5ob29rLWhlYWRpbmctMnhsYXJnZSgpIHdoZW4gbm90IChAaGVhZGluZy0yeGxhcmdlLWZvbnQtc3R5bGUgPSBpbmhlcml0KSB7XG4gICAgZm9udC1zdHlsZTogQGhlYWRpbmctMnhsYXJnZS1mb250LXN0eWxlO1xufVxuXG4uaG9vay1oZWFkaW5nLTJ4bGFyZ2UoKSB3aGVuIG5vdCAoQGhlYWRpbmctMnhsYXJnZS10ZXh0LXNoYWRvdyA9IG5vbmUpIHtcbiAgICB0ZXh0LXNoYWRvdzogQGhlYWRpbmctMnhsYXJnZS10ZXh0LXNoYWRvdztcbn1cblxuXG4vLyBEaXZpZGVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2staGVhZGluZy1kaXZpZGVyKCkge31cblxuXG4vLyBCdWxsZXRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1oZWFkaW5nLWJ1bGxldCgpIHt9XG5cblxuLy8gTGluZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWhlYWRpbmctbGluZSgpIHt9XG5cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2staGVhZGluZy1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGludmVyc2UtaGVhZGluZy1zbWFsbC1jb2xvcjogICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AaW52ZXJzZS1oZWFkaW5nLW1lZGl1bS1jb2xvcjogICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcbkBpbnZlcnNlLWhlYWRpbmctbGFyZ2UtY29sb3I6ICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQGludmVyc2UtaGVhZGluZy14bGFyZ2UtY29sb3I6ICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AaW52ZXJzZS1oZWFkaW5nLTJ4bGFyZ2UtY29sb3I6ICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcblxuLmhvb2staW52ZXJzZS1oZWFkaW5nLXNtYWxsKCkgeyBjb2xvcjogQGludmVyc2UtaGVhZGluZy1zbWFsbC1jb2xvcjsgfVxuXG4uaG9vay1pbnZlcnNlLWhlYWRpbmctbWVkaXVtKCkgeyBjb2xvcjogQGludmVyc2UtaGVhZGluZy1tZWRpdW0tY29sb3I7IH1cblxuLmhvb2staW52ZXJzZS1oZWFkaW5nLWxhcmdlKCkgeyBjb2xvcjogQGludmVyc2UtaGVhZGluZy1sYXJnZS1jb2xvcjsgfVxuXG4uaG9vay1pbnZlcnNlLWhlYWRpbmcteGxhcmdlKCkgeyBjb2xvcjogQGludmVyc2UtaGVhZGluZy14bGFyZ2UtY29sb3I7IH1cblxuLmhvb2staW52ZXJzZS1oZWFkaW5nLTJ4bGFyZ2UoKSB7IGNvbG9yOiBAaW52ZXJzZS1oZWFkaW5nLTJ4bGFyZ2UtY29sb3I7IH1cblxuLmhvb2staW52ZXJzZS1oZWFkaW5nLWRpdmlkZXIoKSB7fVxuXG4uaG9vay1pbnZlcnNlLWhlYWRpbmctYnVsbGV0KCkge31cblxuLmhvb2staW52ZXJzZS1oZWFkaW5nLWxpbmUoKSB7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBEaXZpZGVyXG4vLyBEZXNjcmlwdGlvbjogICAgIFN0eWxlcyBmb3IgZGl2aWRlcnNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1kaXZpZGVyLWljb25gXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1kaXZpZGVyLXNtYWxsYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZGl2aWRlci12ZXJ0aWNhbGBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AZGl2aWRlci1tYXJnaW4tdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW1hcmdpbjtcblxuQGRpdmlkZXItaWNvbi13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgNTBweDtcbkBkaXZpZGVyLWljb24taGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwcHg7XG5AZGl2aWRlci1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWJvcmRlcjtcbkBkaXZpZGVyLWljb24tbGluZS10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgIDUwJTtcbkBkaXZpZGVyLWljb24tbGluZS13aWR0aDogICAgICAgICAgICAgICAgICAgICAgIDEwMCU7XG5AZGl2aWRlci1pY29uLWxpbmUtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICBAZ2xvYmFsLWJvcmRlci13aWR0aDtcbkBkaXZpZGVyLWljb24tbGluZS1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtYm9yZGVyO1xuXG5AaW50ZXJuYWwtZGl2aWRlci1pY29uLWltYWdlOiAgICAgICAgICAgICAgICAgICBcIi4uLy4uL2ltYWdlcy9iYWNrZ3JvdW5kcy9kaXZpZGVyLWljb24uc3ZnXCI7XG5cbkBkaXZpZGVyLXNtYWxsLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMHB4O1xuQGRpdmlkZXItc21hbGwtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1ib3JkZXItd2lkdGg7XG5AZGl2aWRlci1zbWFsbC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWJvcmRlcjtcblxuQGRpdmlkZXItdmVydGljYWwtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgMTAwcHg7XG5AZGl2aWRlci12ZXJ0aWNhbC1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICBAZ2xvYmFsLWJvcmRlci13aWR0aDtcbkBkaXZpZGVyLXZlcnRpY2FsLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtYm9yZGVyO1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBEaXZpZGVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFJlc2V0IGRlZmF1bHQgYGhyYFxuICogMi4gU2V0IG1hcmdpbiBpZiBhIGBkaXZgIGlzIHVzZWQgZm9yIHNlbWFudGljYWwgcmVhc29uXG4gKi9cblxuW2NsYXNzKj0ndWstZGl2aWRlciddIHtcbiAgICAvKiAxICovXG4gICAgYm9yZGVyOiBub25lO1xuICAgIC8qIDIgKi9cbiAgICBtYXJnaW4tYm90dG9tOiBAZGl2aWRlci1tYXJnaW4tdmVydGljYWw7XG59XG5cbi8qIEFkZCBtYXJnaW4gaWYgYWRqYWNlbnQgZWxlbWVudCAqL1xuKiArIFtjbGFzcyo9J3VrLWRpdmlkZXInXSB7IG1hcmdpbi10b3A6IEBkaXZpZGVyLW1hcmdpbi12ZXJ0aWNhbDsgfVxuXG5cbi8qIEljb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstZGl2aWRlci1pY29uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiBAZGl2aWRlci1pY29uLWhlaWdodDtcbiAgICAuc3ZnLWZpbGwoQGludGVybmFsLWRpdmlkZXItaWNvbi1pbWFnZSwgXCIjMDAwXCIsIEBkaXZpZGVyLWljb24tY29sb3IpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICAuaG9vay1kaXZpZGVyLWljb24oKTtcbn1cblxuLnVrLWRpdmlkZXItaWNvbjo6YmVmb3JlLFxuLnVrLWRpdmlkZXItaWNvbjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogQGRpdmlkZXItaWNvbi1saW5lLXRvcDtcbiAgICBtYXgtd2lkdGg6IH4nY2FsYyg1MCUgLSAoQHtkaXZpZGVyLWljb24td2lkdGh9IC8gMikpJztcbiAgICBib3JkZXItYm90dG9tOiBAZGl2aWRlci1pY29uLWxpbmUtYm9yZGVyLXdpZHRoIHNvbGlkIEBkaXZpZGVyLWljb24tbGluZS1ib3JkZXI7XG4gICAgLmhvb2stZGl2aWRlci1pY29uLWxpbmUoKTtcbn1cblxuLnVrLWRpdmlkZXItaWNvbjo6YmVmb3JlIHtcbiAgICByaWdodDogfidjYWxjKDUwJSArIChAe2RpdmlkZXItaWNvbi13aWR0aH0gLyAyKSknO1xuICAgIHdpZHRoOiBAZGl2aWRlci1pY29uLWxpbmUtd2lkdGg7XG4gICAgLmhvb2stZGl2aWRlci1pY29uLWxpbmUtbGVmdCgpO1xufVxuXG4udWstZGl2aWRlci1pY29uOjphZnRlciB7XG4gICAgbGVmdDogfidjYWxjKDUwJSArIChAe2RpdmlkZXItaWNvbi13aWR0aH0gLyAyKSknO1xuICAgIHdpZHRoOiBAZGl2aWRlci1pY29uLWxpbmUtd2lkdGg7XG4gICAgLmhvb2stZGl2aWRlci1pY29uLWxpbmUtcmlnaHQoKTtcbn1cblxuXG4vKiBTbWFsbFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBGaXggaGVpZ2h0IGJlY2F1c2Ugb2YgYGlubGluZS1ibG9ja2BcbiAqIDIuIFVzaW5nIDo6YWZ0ZXIgYW5kIGlubGluZS1ibG9jayB0byBtYWtlIGB0ZXh0LWFsaWduYCB3b3JrXG4gKi9cblxuLyogMSAqL1xuLnVrLWRpdmlkZXItc21hbGwgeyBsaW5lLWhlaWdodDogMDsgfVxuXG4vKiAyICovXG4udWstZGl2aWRlci1zbWFsbDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBAZGl2aWRlci1zbWFsbC13aWR0aDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXRvcDogQGRpdmlkZXItc21hbGwtYm9yZGVyLXdpZHRoIHNvbGlkIEBkaXZpZGVyLXNtYWxsLWJvcmRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIC5ob29rLWRpdmlkZXItc21hbGwoKTtcbn1cblxuXG4vKiBWZXJ0aWNhbFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgaGVpZ2h0OiBAZGl2aWRlci12ZXJ0aWNhbC1oZWlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIGJvcmRlci1sZWZ0OiBAZGl2aWRlci12ZXJ0aWNhbC1ib3JkZXItd2lkdGggc29saWQgQGRpdmlkZXItdmVydGljYWwtYm9yZGVyO1xuICAgIC5ob29rLWRpdmlkZXItdmVydGljYWwoKTtcbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWRpdmlkZXItbWlzYygpO1xuXG4uaG9vay1kaXZpZGVyLWljb24oKSB7fVxuLmhvb2stZGl2aWRlci1pY29uLWxpbmUoKSB7fVxuLmhvb2stZGl2aWRlci1pY29uLWxpbmUtbGVmdCgpIHt9XG4uaG9vay1kaXZpZGVyLWljb24tbGluZS1yaWdodCgpIHt9XG4uaG9vay1kaXZpZGVyLXNtYWxsKCkge31cbi5ob29rLWRpdmlkZXItdmVydGljYWwoKSB7fVxuLmhvb2stZGl2aWRlci1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGludmVyc2UtZGl2aWRlci1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtYm9yZGVyO1xuQGludmVyc2UtZGl2aWRlci1pY29uLWxpbmUtYm9yZGVyOiAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtYm9yZGVyO1xuQGludmVyc2UtZGl2aWRlci1zbWFsbC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtYm9yZGVyO1xuQGludmVyc2UtZGl2aWRlci12ZXJ0aWNhbC1ib3JkZXI6ICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtYm9yZGVyO1xuXG4uaG9vay1pbnZlcnNlKCkge1xuXG4gICAgLnVrLWRpdmlkZXItaWNvbiB7XG4gICAgICAgIC5zdmctZmlsbChAaW50ZXJuYWwtZGl2aWRlci1pY29uLWltYWdlLCBcIiMwMDBcIiwgQGludmVyc2UtZGl2aWRlci1pY29uLWNvbG9yKTtcbiAgICAgICAgLmhvb2staW52ZXJzZS1kaXZpZGVyLWljb24oKTtcbiAgICB9XG5cbiAgICAudWstZGl2aWRlci1pY29uOjpiZWZvcmUsXG4gICAgLnVrLWRpdmlkZXItaWNvbjo6YWZ0ZXIge1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAaW52ZXJzZS1kaXZpZGVyLWljb24tbGluZS1ib3JkZXI7XG4gICAgICAgIC5ob29rLWludmVyc2UtZGl2aWRlci1pY29uLWxpbmUoKTtcbiAgICB9XG5cbiAgICAudWstZGl2aWRlci1zbWFsbDo6YWZ0ZXIge1xuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiBAaW52ZXJzZS1kaXZpZGVyLXNtYWxsLWJvcmRlcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1kaXZpZGVyLXNtYWxsKCk7XG4gICAgfVxuXG4gICAgLnVrLWRpdmlkZXItdmVydGljYWwge1xuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogQGludmVyc2UtZGl2aWRlci12ZXJ0aWNhbC1ib3JkZXI7XG4gICAgICAgIC5ob29rLWludmVyc2UtZGl2aWRlci12ZXJ0aWNhbCgpO1xuICAgIH1cblxufVxuXG4uaG9vay1pbnZlcnNlLWRpdmlkZXItaWNvbigpIHt9XG4uaG9vay1pbnZlcnNlLWRpdmlkZXItaWNvbi1saW5lKCkge31cbi5ob29rLWludmVyc2UtZGl2aWRlci1zbWFsbCgpIHt9XG4uaG9vay1pbnZlcnNlLWRpdmlkZXItdmVydGljYWwoKSB7fVxuIiwiLy9cbi8vIENvbXBvbmVudDogICAgICAgTWl4aW5cbi8vIERlc2NyaXB0aW9uOiAgICAgRGVmaW5lcyBtaXhpbnMgd2hpY2ggYXJlIHVzZWQgYWNyb3NzIGFsbCBjb21wb25lbnRzXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gU1ZHXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnN2Zy1maWxsKEBzcmMsIEBjb2xvci1kZWZhdWx0LCBAY29sb3ItbmV3LCBAcHJvcGVydHk6IGJhY2tncm91bmQtaW1hZ2UpIHtcblxuICAgIEBlc2NhcGUtY29sb3ItZGVmYXVsdDogZXNjYXBlKEBjb2xvci1kZWZhdWx0KTtcbiAgICBAZXNjYXBlLWNvbG9yLW5ldzogZXNjYXBlKFwiQHtjb2xvci1uZXd9XCIpO1xuXG4gICAgQGRhdGEtdXJpOiBkYXRhLXVyaSgnaW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04JywgXCJAe3NyY31cIik7XG4gICAgQHJlcGxhY2Utc3JjOiByZXBsYWNlKFwiQHtkYXRhLXVyaX1cIiwgXCJAe2VzY2FwZS1jb2xvci1kZWZhdWx0fVwiLCBcIkB7ZXNjYXBlLWNvbG9yLW5ld31cIiwgXCJnXCIpO1xuXG4gICAgQHtwcm9wZXJ0eX06IGUoQHJlcGxhY2Utc3JjKTtcbn1cbiIsIi8vXG4vLyBDb21wb25lbnQ6IERpdmlkZXJcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gTmV3XG4vL1xuXG5AaW50ZXJuYWwtZGl2aWRlci1pY29uLWxpbmUtbGVmdC1ib3JkZXItZ3JhZGllbnQ6ICAgficnO1xuXG5AaW50ZXJuYWwtZGl2aWRlci1pY29uLWxpbmUtcmlnaHQtYm9yZGVyLWdyYWRpZW50OiAgficnO1xuXG5AaW50ZXJuYWwtZGl2aWRlci1zbWFsbC1ib3JkZXItZ3JhZGllbnQ6ICAgICAgICAgICAgficnO1xuQGludGVybmFsLWRpdmlkZXItc21hbGwtaW1hZ2U6ICAgICAgICAgICAgICAgICAgICAgIH4nJztcblxuQGludGVybmFsLWRpdmlkZXItdmVydGljYWwtYm9yZGVyLWdyYWRpZW50OiAgICAgICAgIH4nJztcblxuXG4vLyBJY29uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stZGl2aWRlci1pY29uKCkge31cblxuLmhvb2stZGl2aWRlci1pY29uLWxpbmUoKSB7XG4gICAgLy8gRml4IFNhZmFyaSBzZXR0aW5nIDNweCBgYm9yZGVyLXdpZHRoYCBpZiBgYm9yZGVyLWltYWdlYCBpcyB1c2VkLlxuICAgIGJvcmRlci13aWR0aDogMCAwIEBkaXZpZGVyLWljb24tbGluZS1ib3JkZXItd2lkdGggMDtcbn1cblxuLmhvb2stZGl2aWRlci1pY29uLWxpbmUtbGVmdCgpIHdoZW4gbm90IChAaW50ZXJuYWwtZGl2aWRlci1pY29uLWxpbmUtbGVmdC1ib3JkZXItZ3JhZGllbnQgPSB+JycpIHtcbiAgICBib3JkZXItaW1hZ2U6IEBpbnRlcm5hbC1kaXZpZGVyLWljb24tbGluZS1sZWZ0LWJvcmRlci1ncmFkaWVudDtcbiAgICBib3JkZXItaW1hZ2Utc2xpY2U6IDE7XG59XG5cbi5ob29rLWRpdmlkZXItaWNvbi1saW5lLXJpZ2h0KCkgd2hlbiBub3QgKEBpbnRlcm5hbC1kaXZpZGVyLWljb24tbGluZS1yaWdodC1ib3JkZXItZ3JhZGllbnQgPSB+JycpIHtcbiAgICBib3JkZXItaW1hZ2U6IEBpbnRlcm5hbC1kaXZpZGVyLWljb24tbGluZS1yaWdodC1ib3JkZXItZ3JhZGllbnQ7XG4gICAgYm9yZGVyLWltYWdlLXNsaWNlOiAxO1xufVxuXG5cbi8vIFNtYWxsXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stZGl2aWRlci1zbWFsbCgpIHt9XG5cbi5ob29rLWRpdmlkZXItc21hbGwoKSB3aGVuIG5vdCAoQGludGVybmFsLWRpdmlkZXItc21hbGwtYm9yZGVyLWdyYWRpZW50ID0gficnKSBhbmQgKEBpbnRlcm5hbC1kaXZpZGVyLXNtYWxsLWltYWdlID0gficnKSB7XG4gICAgYm9yZGVyLWltYWdlOiBAaW50ZXJuYWwtZGl2aWRlci1zbWFsbC1ib3JkZXItZ3JhZGllbnQ7XG4gICAgYm9yZGVyLWltYWdlLXNsaWNlOiAxO1xuICAgIC8vIEZpeCBTYWZhcmkgc2V0dGluZyAzcHggYGJvcmRlci13aWR0aGAgaWYgYGJvcmRlci1pbWFnZWAgaXMgdXNlZC5cbiAgICBib3JkZXItd2lkdGg6IEBkaXZpZGVyLXNtYWxsLWJvcmRlci13aWR0aCAwIDAgMDtcbn1cblxuLmhvb2stZGl2aWRlci1zbWFsbCgpIHdoZW4gbm90IChAaW50ZXJuYWwtZGl2aWRlci1zbWFsbC1pbWFnZSA9IH4nJykgYW5kIChAaW50ZXJuYWwtZGl2aWRlci1zbWFsbC1ib3JkZXItZ3JhZGllbnQgPSB+JycpIHtcbiAgICAuc3ZnLWZpbGwoQGludGVybmFsLWRpdmlkZXItc21hbGwtaW1hZ2UsIFwiIzAwMFwiLCBAZGl2aWRlci1zbWFsbC1ib3JkZXIpO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cblxuLy8gVmVydGljYWxcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1kaXZpZGVyLXZlcnRpY2FsKCkgd2hlbiBub3QgKEBpbnRlcm5hbC1kaXZpZGVyLXZlcnRpY2FsLWJvcmRlci1ncmFkaWVudCA9IH4nJykge1xuICAgIGJvcmRlci1pbWFnZTogQGludGVybmFsLWRpdmlkZXItdmVydGljYWwtYm9yZGVyLWdyYWRpZW50O1xuICAgIGJvcmRlci1pbWFnZS1zbGljZTogMTtcbiAgICAvLyBGaXggU2FmYXJpIHNldHRpbmcgM3B4IGBib3JkZXItd2lkdGhgIGlmIGBib3JkZXItaW1hZ2VgIGlzIHVzZWQuXG4gICAgYm9yZGVyLXdpZHRoOiAwIDAgMCBAZGl2aWRlci12ZXJ0aWNhbC1ib3JkZXItd2lkdGg7XG59XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWRpdmlkZXItbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWludmVyc2UtZGl2aWRlci1pY29uKCkge31cbi5ob29rLWludmVyc2UtZGl2aWRlci1pY29uLWxpbmUoKSB3aGVuIG5vdCAoQGludGVybmFsLWRpdmlkZXItaWNvbi1saW5lLWxlZnQtYm9yZGVyLWdyYWRpZW50ID0gficnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdCAoQGludGVybmFsLWRpdmlkZXItaWNvbi1saW5lLXJpZ2h0LWJvcmRlci1ncmFkaWVudCA9IH4nJykge1xuICAgIGJvcmRlci1pbWFnZTogbm9uZTtcbn1cblxuLmhvb2staW52ZXJzZS1kaXZpZGVyLXNtYWxsKCkgd2hlbiBub3QgKEBpbnRlcm5hbC1kaXZpZGVyLXNtYWxsLWJvcmRlci1ncmFkaWVudCA9IH4nJykgYW5kIChAaW50ZXJuYWwtZGl2aWRlci1zbWFsbC1pbWFnZSA9IH4nJykge1xuICAgIGJvcmRlci1pbWFnZTogbm9uZTtcbn1cblxuLmhvb2staW52ZXJzZS1kaXZpZGVyLXNtYWxsKCkgd2hlbiBub3QgKEBpbnRlcm5hbC1kaXZpZGVyLXNtYWxsLWltYWdlID0gficnKSBhbmQgKEBpbnRlcm5hbC1kaXZpZGVyLXNtYWxsLWJvcmRlci1ncmFkaWVudCA9IH4nJykge1xuICAgIC5zdmctZmlsbChAaW50ZXJuYWwtZGl2aWRlci1zbWFsbC1pbWFnZSwgXCIjMDAwXCIsIEBpbnZlcnNlLWRpdmlkZXItc21hbGwtYm9yZGVyKTtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uaG9vay1pbnZlcnNlLWRpdmlkZXItdmVydGljYWwoKSB3aGVuIG5vdCAoQGludGVybmFsLWRpdmlkZXItdmVydGljYWwtYm9yZGVyLWdyYWRpZW50ID0gficnKSB7XG4gICAgYm9yZGVyLWltYWdlOiBub25lO1xufVxuIiwiLy8gTmFtZTogICAgICAgICAgICBMaXN0XG4vLyBEZXNjcmlwdGlvbjogICAgIFN0eWxlcyBmb3IgbGlzdHNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1saXN0YFxuLy9cbi8vIE1vZGlmaWVyczogICAgICAgYHVrLWxpc3QtZGlzY2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLWxpc3QtY2lyY2xlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbGlzdC1zcXVhcmVgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1saXN0LWRlY2ltYWxgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1saXN0LWh5cGhlbmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWxpc3QtbXV0ZWRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1saXN0LWVtcGhhc2lzYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbGlzdC1wcmltYXJ5YFxuLy8gICAgICAgICAgICAgICAgICBgdWstbGlzdC1zZWNvbmRhcnlgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1saXN0LWJ1bGxldGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWxpc3QtZGl2aWRlcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWxpc3Qtc3RyaXBlZGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWxpc3QtbGFyZ2VgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1saXN0LWNvbGxhcHNlYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBsaXN0LW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc21hbGwtbWFyZ2luO1xuXG5AbGlzdC1wYWRkaW5nLWxlZnQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMHB4O1xuXG5AbGlzdC1tYXJrZXItaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQGdsb2JhbC1saW5lLWhlaWdodCAqIDFlbSk7XG5cbkBsaXN0LW11dGVkLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtY29sb3I7XG5AbGlzdC1lbXBoYXNpcy1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQGxpc3QtcHJpbWFyeS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQ7XG5AbGlzdC1zZWNvbmRhcnktY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1iYWNrZ3JvdW5kO1xuXG5AbGlzdC1idWxsZXQtaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWNvbG9yO1xuXG5AbGlzdC1kaXZpZGVyLW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNtYWxsLW1hcmdpbjtcbkBsaXN0LWRpdmlkZXItYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtYm9yZGVyLXdpZHRoO1xuQGxpc3QtZGl2aWRlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1ib3JkZXI7XG5cbkBsaXN0LXN0cmlwZWQtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgIEBnbG9iYWwtc21hbGwtbWFyZ2luO1xuQGxpc3Qtc3RyaXBlZC1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgQGdsb2JhbC1zbWFsbC1tYXJnaW47XG5AbGlzdC1zdHJpcGVkLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWJhY2tncm91bmQ7XG5cbkBsaXN0LWxhcmdlLW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbWFyZ2luO1xuQGxpc3QtbGFyZ2UtZGl2aWRlci1tYXJnaW4tdG9wOiAgICAgICAgICAgICAgICAgQGdsb2JhbC1tYXJnaW47XG5AbGlzdC1sYXJnZS1zdHJpcGVkLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICBAZ2xvYmFsLW1hcmdpbjtcbkBsaXN0LWxhcmdlLXN0cmlwZWQtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgIEBnbG9iYWwtc21hbGwtbWFyZ2luO1xuXG5AaW50ZXJuYWwtbGlzdC1idWxsZXQtaW1hZ2U6ICAgICAgICAgICAgICAgICAgICBcIi4uLy4uL2ltYWdlcy9iYWNrZ3JvdW5kcy9saXN0LWJ1bGxldC5zdmdcIjtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogTGlzdFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1saXN0IHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcbiAqL1xuXG4udWstbGlzdCA+ICogPiA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cblxuLypcbiAqIFN0eWxlXG4gKi9cblxuLnVrLWxpc3QgPiA6bnRoLWNoaWxkKG4rMiksXG4udWstbGlzdCA+ICogPiB1bCB7IG1hcmdpbi10b3A6IEBsaXN0LW1hcmdpbi10b3A7IH1cblxuXG4vKiBNYXJrZXIgbW9kaWZpZXJzXG4gKiBNb3ZpbmcgYDo6bWFya2VyYCBpbnNpZGUgYDo6YmVmb3JlYCB0byBzdHlsZSBpdCBkaWZmZXJlbnRseVxuICogVG8gc3R5bGUgdGhlIGA6Om1hcmtlcmAgaXMgY3VycmVudGx5IG9ubHkgc3VwcG9ydGVkIGluIEZpcmVmb3ggYW5kIFNhZmFyaVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1saXN0LWRpc2MgPiAqLFxuLnVrLWxpc3QtY2lyY2xlID4gKixcbi51ay1saXN0LXNxdWFyZSA+ICosXG4udWstbGlzdC1kZWNpbWFsID4gKixcbi51ay1saXN0LWh5cGhlbiA+ICogeyBwYWRkaW5nLWxlZnQ6IEBsaXN0LXBhZGRpbmctbGVmdDsgfVxuXG4vKlxuICogVHlwZSBtb2RpZmllcnNcbiAqL1xuXG4udWstbGlzdC1kZWNpbWFsIHsgY291bnRlci1yZXNldDogZGVjaW1hbDsgfVxuLnVrLWxpc3QtZGVjaW1hbCA+ICogeyBjb3VudGVyLWluY3JlbWVudDogZGVjaW1hbDsgfVxuXG4udWstbGlzdC1kaXNjID4gOjpiZWZvcmUsXG4udWstbGlzdC1jaXJjbGUgPiA6OmJlZm9yZSxcbi51ay1saXN0LXNxdWFyZSA+IDo6YmVmb3JlLFxuLnVrLWxpc3QtZGVjaW1hbCA+IDo6YmVmb3JlLFxuLnVrLWxpc3QtaHlwaGVuID4gOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IC1AbGlzdC1wYWRkaW5nLWxlZnQ7XG4gICAgd2lkdGg6IEBsaXN0LXBhZGRpbmctbGVmdDtcbiAgICBoZWlnaHQ6IEBsaXN0LW1hcmtlci1oZWlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogLUBsaXN0LW1hcmtlci1oZWlnaHQ7XG4gICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLnVrLWxpc3QtZGlzYyA+IDo6YmVmb3JlIHsgbGlzdC1zdHlsZS10eXBlOiBkaXNjOyB9XG4udWstbGlzdC1jaXJjbGUgPiA6OmJlZm9yZSB7IGxpc3Qtc3R5bGUtdHlwZTogY2lyY2xlOyB9XG4udWstbGlzdC1zcXVhcmUgPiA6OmJlZm9yZSB7IGxpc3Qtc3R5bGUtdHlwZTogc3F1YXJlOyB9XG4udWstbGlzdC1kZWNpbWFsID4gOjpiZWZvcmUgeyBjb250ZW50OiBjb3VudGVyKGRlY2ltYWwsIGRlY2ltYWwpICdcXDIwMEEuXFwwMEEwJzsgfVxuLnVrLWxpc3QtaHlwaGVuID4gOjpiZWZvcmUgeyBjb250ZW50OiAn4oCTXFwwMEEwXFwwMEEwJzsgfVxuXG4vKlxuICogQ29sb3IgbW9kaWZpZXJzXG4gKi9cblxuLnVrLWxpc3QtbXV0ZWQgPiA6OmJlZm9yZSB7IGNvbG9yOiBAbGlzdC1tdXRlZC1jb2xvciAhaW1wb3J0YW50OyB9XG4udWstbGlzdC1lbXBoYXNpcyA+IDo6YmVmb3JlIHsgY29sb3I6IEBsaXN0LWVtcGhhc2lzLWNvbG9yICFpbXBvcnRhbnQ7IH1cbi51ay1saXN0LXByaW1hcnkgPiA6OmJlZm9yZSB7IGNvbG9yOiBAbGlzdC1wcmltYXJ5LWNvbG9yICFpbXBvcnRhbnQ7IH1cbi51ay1saXN0LXNlY29uZGFyeSA+IDo6YmVmb3JlIHsgY29sb3I6IEBsaXN0LXNlY29uZGFyeS1jb2xvciAhaW1wb3J0YW50OyB9XG5cblxuLyogSW1hZ2UgYnVsbGV0IG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWxpc3QtYnVsbGV0ID4gKiB7IHBhZGRpbmctbGVmdDogQGxpc3QtcGFkZGluZy1sZWZ0OyB9XG5cbi51ay1saXN0LWJ1bGxldCA+IDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLUBsaXN0LXBhZGRpbmctbGVmdDtcbiAgICB3aWR0aDogQGxpc3QtcGFkZGluZy1sZWZ0O1xuICAgIGhlaWdodDogQGxpc3QtbWFya2VyLWhlaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAtQGxpc3QtbWFya2VyLWhlaWdodDtcbiAgICAuc3ZnLWZpbGwoQGludGVybmFsLWxpc3QtYnVsbGV0LWltYWdlLCBcIiMwMDBcIiwgQGxpc3QtYnVsbGV0LWljb24tY29sb3IpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbn1cblxuXG4vKiBTdHlsZSBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogRGl2aWRlclxuICovXG5cbi51ay1saXN0LWRpdmlkZXIgPiA6bnRoLWNoaWxkKG4rMikge1xuICAgIG1hcmdpbi10b3A6IEBsaXN0LWRpdmlkZXItbWFyZ2luLXRvcDtcbiAgICBwYWRkaW5nLXRvcDogQGxpc3QtZGl2aWRlci1tYXJnaW4tdG9wO1xuICAgIGJvcmRlci10b3A6IEBsaXN0LWRpdmlkZXItYm9yZGVyLXdpZHRoIHNvbGlkIEBsaXN0LWRpdmlkZXItYm9yZGVyO1xuICAgIC5ob29rLWxpc3QtZGl2aWRlcigpO1xufVxuXG4vKlxuICogU3RyaXBlZFxuICovXG5cbi51ay1saXN0LXN0cmlwZWQgPiAqIHtcbiAgICBwYWRkaW5nOiBAbGlzdC1zdHJpcGVkLXBhZGRpbmctdmVydGljYWwgQGxpc3Qtc3RyaXBlZC1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgLmhvb2stbGlzdC1zdHJpcGVkKCk7XG59XG5cbi51ay1saXN0LXN0cmlwZWQgPiA6bnRoLW9mLXR5cGUob2RkKSB7IGJhY2tncm91bmQ6IEBsaXN0LXN0cmlwZWQtYmFja2dyb3VuZDsgfVxuXG4udWstbGlzdC1zdHJpcGVkID4gOm50aC1jaGlsZChuKzIpIHsgbWFyZ2luLXRvcDogMDsgfVxuXG5cbi8qIFNpemUgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbGlzdC1sYXJnZSA+IDpudGgtY2hpbGQobisyKSxcbi51ay1saXN0LWxhcmdlID4gKiA+IHVsIHsgbWFyZ2luLXRvcDogQGxpc3QtbGFyZ2UtbWFyZ2luLXRvcDsgfVxuXG4udWstbGlzdC1jb2xsYXBzZSA+IDpudGgtY2hpbGQobisyKSxcbi51ay1saXN0LWNvbGxhcHNlID4gKiA+IHVsIHsgbWFyZ2luLXRvcDogMDsgfVxuXG4vKlxuICogRGl2aWRlclxuICovXG5cbi51ay1saXN0LWxhcmdlLnVrLWxpc3QtZGl2aWRlciA+IDpudGgtY2hpbGQobisyKSB7XG4gICAgbWFyZ2luLXRvcDogQGxpc3QtbGFyZ2UtZGl2aWRlci1tYXJnaW4tdG9wO1xuICAgIHBhZGRpbmctdG9wOiBAbGlzdC1sYXJnZS1kaXZpZGVyLW1hcmdpbi10b3A7XG59XG5cbi51ay1saXN0LWNvbGxhcHNlLnVrLWxpc3QtZGl2aWRlciA+IDpudGgtY2hpbGQobisyKSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbn1cblxuLypcbiAqIFN0cmlwZWRcbiAqL1xuXG4udWstbGlzdC1sYXJnZS51ay1saXN0LXN0cmlwZWQgPiAqIHsgcGFkZGluZzogQGxpc3QtbGFyZ2Utc3RyaXBlZC1wYWRkaW5nLXZlcnRpY2FsIEBsaXN0LWxhcmdlLXN0cmlwZWQtcGFkZGluZy1ob3Jpem9udGFsOyB9XG5cbi51ay1saXN0LWNvbGxhcHNlLnVrLWxpc3Qtc3RyaXBlZCA+ICoge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4udWstbGlzdC1sYXJnZS51ay1saXN0LXN0cmlwZWQgPiA6bnRoLWNoaWxkKG4rMiksXG4udWstbGlzdC1jb2xsYXBzZS51ay1saXN0LXN0cmlwZWQgPiA6bnRoLWNoaWxkKG4rMikgeyBtYXJnaW4tdG9wOiAwOyB9XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1saXN0LW1pc2MoKTtcblxuLmhvb2stbGlzdC1kaXZpZGVyKCkge31cbi5ob29rLWxpc3Qtc3RyaXBlZCgpIHt9XG4uaG9vay1saXN0LW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW52ZXJzZS1saXN0LW11dGVkLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvcjtcbkBpbnZlcnNlLWxpc3QtZW1waGFzaXMtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQGludmVyc2UtbGlzdC1wcmltYXJ5LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kO1xuQGludmVyc2UtbGlzdC1zZWNvbmRhcnktY29sb3I6ICAgICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kO1xuXG5AaW52ZXJzZS1saXN0LWRpdmlkZXItYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1ib3JkZXI7XG5AaW52ZXJzZS1saXN0LXN0cmlwZWQtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kO1xuXG5AaW52ZXJzZS1saXN0LWJ1bGxldC1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1jb2xvcjtcblxuLmhvb2staW52ZXJzZSgpIHtcblxuICAgIC51ay1saXN0LW11dGVkID4gOjpiZWZvcmUgeyBjb2xvcjogQGludmVyc2UtbGlzdC1tdXRlZC1jb2xvciAhaW1wb3J0YW50OyB9XG4gICAgLnVrLWxpc3QtZW1waGFzaXMgPiA6OmJlZm9yZSB7IGNvbG9yOiBAaW52ZXJzZS1saXN0LWVtcGhhc2lzLWNvbG9yICFpbXBvcnRhbnQ7IH1cbiAgICAudWstbGlzdC1wcmltYXJ5ID4gOjpiZWZvcmUgeyBjb2xvcjogQGludmVyc2UtbGlzdC1wcmltYXJ5LWNvbG9yICFpbXBvcnRhbnQ7IH1cbiAgICAudWstbGlzdC1zZWNvbmRhcnkgPiA6OmJlZm9yZSB7IGNvbG9yOiBAaW52ZXJzZS1saXN0LXNlY29uZGFyeS1jb2xvciAhaW1wb3J0YW50OyB9XG5cbiAgICAudWstbGlzdC1idWxsZXQgPiA6OmJlZm9yZSB7XG4gICAgICAgIC5zdmctZmlsbChAaW50ZXJuYWwtbGlzdC1idWxsZXQtaW1hZ2UsIFwiIzAwMFwiLCBAaW52ZXJzZS1saXN0LWJ1bGxldC1pY29uLWNvbG9yKTtcbiAgICB9XG5cbiAgICAudWstbGlzdC1kaXZpZGVyID4gOm50aC1jaGlsZChuKzIpIHtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogQGludmVyc2UtbGlzdC1kaXZpZGVyLWJvcmRlcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1saXN0LWRpdmlkZXIoKTtcbiAgICB9XG5cbiAgICAudWstbGlzdC1zdHJpcGVkID4gKiB7XG4gICAgICAgIC5ob29rLWludmVyc2UtbGlzdC1zdHJpcGVkKCk7XG4gICAgfVxuXG4gICAgLnVrLWxpc3Qtc3RyaXBlZCA+IDpudGgtb2YtdHlwZShvZGQpIHsgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtbGlzdC1zdHJpcGVkLWJhY2tncm91bmQ7IH1cblxufVxuXG4uaG9vay1pbnZlcnNlLWxpc3QtZGl2aWRlcigpIHt9XG4uaG9vay1pbnZlcnNlLWxpc3Qtc3RyaXBlZCgpIHt9XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIERlc2NyaXB0aW9uIGxpc3Rcbi8vIERlc2NyaXB0aW9uOiAgICAgU3R5bGVzIGZvciBkZXNjcmlwdGlvbiBsaXN0c1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWRlc2NyaXB0aW9uLWxpc3RgXG4vL1xuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstZGVzY3JpcHRpb24tbGlzdC1kaXZpZGVyYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBkZXNjcmlwdGlvbi1saXN0LXRlcm0tY29sb3I6ICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AZGVzY3JpcHRpb24tbGlzdC10ZXJtLW1hcmdpbi10b3A6ICAgICAgICAgICAgICBAZ2xvYmFsLW1hcmdpbjtcblxuQGRlc2NyaXB0aW9uLWxpc3QtZGl2aWRlci10ZXJtLW1hcmdpbi10b3A6ICAgICAgQGdsb2JhbC1tYXJnaW47XG5AZGVzY3JpcHRpb24tbGlzdC1kaXZpZGVyLXRlcm0tYm9yZGVyLXdpZHRoOiAgICBAZ2xvYmFsLWJvcmRlci13aWR0aDtcbkBkZXNjcmlwdGlvbi1saXN0LWRpdmlkZXItdGVybS1ib3JkZXI6ICAgICAgICAgIEBnbG9iYWwtYm9yZGVyO1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBEZXNjcmlwdGlvbiBsaXN0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFRlcm1cbiAqL1xuXG4udWstZGVzY3JpcHRpb24tbGlzdCA+IGR0IHtcbiAgICBjb2xvcjogQGRlc2NyaXB0aW9uLWxpc3QtdGVybS1jb2xvcjtcbiAgICAuaG9vay1kZXNjcmlwdGlvbi1saXN0LXRlcm0oKTtcbn1cblxuLnVrLWRlc2NyaXB0aW9uLWxpc3QgPiBkdDpudGgtY2hpbGQobisyKSB7XG4gICAgbWFyZ2luLXRvcDogQGRlc2NyaXB0aW9uLWxpc3QtdGVybS1tYXJnaW4tdG9wO1xufVxuXG4vKlxuICogRGVzY3JpcHRpb25cbiAqL1xuXG4udWstZGVzY3JpcHRpb24tbGlzdCA+IGRkIHtcbiAgICAuaG9vay1kZXNjcmlwdGlvbi1saXN0LWRlc2NyaXB0aW9uKCk7XG59XG5cblxuLyogU3R5bGUgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogTGluZVxuICovXG5cbi51ay1kZXNjcmlwdGlvbi1saXN0LWRpdmlkZXIgPiBkdDpudGgtY2hpbGQobisyKSB7XG4gICAgbWFyZ2luLXRvcDogQGRlc2NyaXB0aW9uLWxpc3QtZGl2aWRlci10ZXJtLW1hcmdpbi10b3A7XG4gICAgcGFkZGluZy10b3A6IEBkZXNjcmlwdGlvbi1saXN0LWRpdmlkZXItdGVybS1tYXJnaW4tdG9wO1xuICAgIGJvcmRlci10b3A6IEBkZXNjcmlwdGlvbi1saXN0LWRpdmlkZXItdGVybS1ib3JkZXItd2lkdGggc29saWQgQGRlc2NyaXB0aW9uLWxpc3QtZGl2aWRlci10ZXJtLWJvcmRlcjtcbiAgICAuaG9vay1kZXNjcmlwdGlvbi1saXN0LWRpdmlkZXItdGVybSgpO1xufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stZGVzY3JpcHRpb24tbGlzdC1taXNjKCk7XG5cbi5ob29rLWRlc2NyaXB0aW9uLWxpc3QtdGVybSgpIHt9XG4uaG9vay1kZXNjcmlwdGlvbi1saXN0LWRlc2NyaXB0aW9uKCkge31cbi5ob29rLWRlc2NyaXB0aW9uLWxpc3QtZGl2aWRlci10ZXJtKCkge31cbi5ob29rLWRlc2NyaXB0aW9uLWxpc3QtbWlzYygpIHt9XG4iLCIvL1xuLy8gQ29tcG9uZW50OiBEZXNjcmlwdGlvbiBsaXN0XG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIE5ld1xuLy9cblxuQGRlc2NyaXB0aW9uLWxpc3QtdGVybS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZm9udC1zaXplO1xuQGRlc2NyaXB0aW9uLWxpc3QtdGVybS1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtZmFtaWx5O1xuQGRlc2NyaXB0aW9uLWxpc3QtdGVybS1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0O1xuQGRlc2NyaXB0aW9uLWxpc3QtdGVybS10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LXRleHQtdHJhbnNmb3JtO1xuQGRlc2NyaXB0aW9uLWxpc3QtdGVybS1sZXR0ZXItc3BhY2luZzogICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWxldHRlci1zcGFjaW5nO1xuQGRlc2NyaXB0aW9uLWxpc3QtdGVybS1mb250LXN0eWxlOiAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtc3R5bGU7XG5cbkBkZXNjcmlwdGlvbi1saXN0LWRlc2NyaXB0aW9uLWZvbnQtc2l6ZTogICAgICAgICAgICAgICBAZ2xvYmFsLWZvbnQtc2l6ZTtcbkBkZXNjcmlwdGlvbi1saXN0LWRlc2NyaXB0aW9uLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICBpbmhlcml0O1xuQGRlc2NyaXB0aW9uLWxpc3QtZGVzY3JpcHRpb24tZm9udC13ZWlnaHQ6ICAgICAgICAgICAgIGluaGVyaXQ7XG5AZGVzY3JpcHRpb24tbGlzdC1kZXNjcmlwdGlvbi10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgaW5oZXJpdDtcbkBkZXNjcmlwdGlvbi1saXN0LWRlc2NyaXB0aW9uLWxldHRlci1zcGFjaW5nOiAgICAgICAgICBpbmhlcml0O1xuQGRlc2NyaXB0aW9uLWxpc3QtZGVzY3JpcHRpb24tZm9udC1zdHlsZTogICAgICAgICAgICAgIGluaGVyaXQ7XG5cblxuLy8gQ29tcG9uZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIFRlcm1cbi8vXG5cbi5ob29rLWRlc2NyaXB0aW9uLWxpc3QtdGVybSgpIHsgZm9udC1zaXplOiBAZGVzY3JpcHRpb24tbGlzdC10ZXJtLWZvbnQtc2l6ZTsgfVxuXG4uaG9vay1kZXNjcmlwdGlvbi1saXN0LXRlcm0oKSB3aGVuIG5vdCAoQGRlc2NyaXB0aW9uLWxpc3QtdGVybS1mb250LWZhbWlseSA9IGluaGVyaXQpIHtcbiAgICBmb250LWZhbWlseTogQGRlc2NyaXB0aW9uLWxpc3QtdGVybS1mb250LWZhbWlseTtcbn1cblxuLmhvb2stZGVzY3JpcHRpb24tbGlzdC10ZXJtKCkgd2hlbiBub3QgKEBkZXNjcmlwdGlvbi1saXN0LXRlcm0tZm9udC13ZWlnaHQgPSBpbmhlcml0KSB7XG4gICAgZm9udC13ZWlnaHQ6IEBkZXNjcmlwdGlvbi1saXN0LXRlcm0tZm9udC13ZWlnaHQ7XG59XG5cbi5ob29rLWRlc2NyaXB0aW9uLWxpc3QtdGVybSgpIHdoZW4gbm90IChAZGVzY3JpcHRpb24tbGlzdC10ZXJtLXRleHQtdHJhbnNmb3JtID0gaW5oZXJpdCkge1xuICAgIHRleHQtdHJhbnNmb3JtOiBAZGVzY3JpcHRpb24tbGlzdC10ZXJtLXRleHQtdHJhbnNmb3JtO1xufVxuXG4uaG9vay1kZXNjcmlwdGlvbi1saXN0LXRlcm0oKSB3aGVuIG5vdCAoQGRlc2NyaXB0aW9uLWxpc3QtdGVybS1sZXR0ZXItc3BhY2luZyA9IGluaGVyaXQpIHtcbiAgICBsZXR0ZXItc3BhY2luZzogQGRlc2NyaXB0aW9uLWxpc3QtdGVybS1sZXR0ZXItc3BhY2luZztcbn1cblxuLmhvb2stZGVzY3JpcHRpb24tbGlzdC10ZXJtKCkgd2hlbiBub3QgKEBkZXNjcmlwdGlvbi1saXN0LXRlcm0tZm9udC1zdHlsZSA9IGluaGVyaXQpIHtcbiAgICBmb250LXN0eWxlOiBAZGVzY3JpcHRpb24tbGlzdC10ZXJtLWZvbnQtc3R5bGU7XG59XG5cbi8vXG4vLyBEZXNjcmlwdGlvblxuLy9cblxuLmhvb2stZGVzY3JpcHRpb24tbGlzdC1kZXNjcmlwdGlvbigpIHsgZm9udC1zaXplOiBAZGVzY3JpcHRpb24tbGlzdC1kZXNjcmlwdGlvbi1mb250LXNpemU7IH1cblxuLmhvb2stZGVzY3JpcHRpb24tbGlzdC1kZXNjcmlwdGlvbigpIHdoZW4gbm90IChAZGVzY3JpcHRpb24tbGlzdC1kZXNjcmlwdGlvbi1mb250LWZhbWlseSA9IGluaGVyaXQpIHtcbiAgICBmb250LWZhbWlseTogQGRlc2NyaXB0aW9uLWxpc3QtZGVzY3JpcHRpb24tZm9udC1mYW1pbHk7XG59XG5cbi5ob29rLWRlc2NyaXB0aW9uLWxpc3QtZGVzY3JpcHRpb24oKSB3aGVuIG5vdCAoQGRlc2NyaXB0aW9uLWxpc3QtZGVzY3JpcHRpb24tZm9udC13ZWlnaHQgPSBpbmhlcml0KSB7XG4gICAgZm9udC13ZWlnaHQ6IEBkZXNjcmlwdGlvbi1saXN0LWRlc2NyaXB0aW9uLWZvbnQtd2VpZ2h0O1xufVxuXG4uaG9vay1kZXNjcmlwdGlvbi1saXN0LWRlc2NyaXB0aW9uKCkgd2hlbiBub3QgKEBkZXNjcmlwdGlvbi1saXN0LWRlc2NyaXB0aW9uLXRleHQtdHJhbnNmb3JtID0gaW5oZXJpdCkge1xuICAgIHRleHQtdHJhbnNmb3JtOiBAZGVzY3JpcHRpb24tbGlzdC1kZXNjcmlwdGlvbi10ZXh0LXRyYW5zZm9ybTtcbn1cblxuLmhvb2stZGVzY3JpcHRpb24tbGlzdC1kZXNjcmlwdGlvbigpIHdoZW4gbm90IChAZGVzY3JpcHRpb24tbGlzdC1kZXNjcmlwdGlvbi1sZXR0ZXItc3BhY2luZyA9IGluaGVyaXQpIHtcbiAgICBsZXR0ZXItc3BhY2luZzogQGRlc2NyaXB0aW9uLWxpc3QtZGVzY3JpcHRpb24tbGV0dGVyLXNwYWNpbmc7XG59XG5cbi5ob29rLWRlc2NyaXB0aW9uLWxpc3QtZGVzY3JpcHRpb24oKSB3aGVuIG5vdCAoQGRlc2NyaXB0aW9uLWxpc3QtZGVzY3JpcHRpb24tZm9udC1zdHlsZSA9IGluaGVyaXQpIHtcbiAgICBmb250LXN0eWxlOiBAZGVzY3JpcHRpb24tbGlzdC1kZXNjcmlwdGlvbi1mb250LXN0eWxlO1xufVxuXG5cbi8vIFN0eWxlIG1vZGlmaWVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stZGVzY3JpcHRpb24tbGlzdC1kaXZpZGVyLXRlcm0oKSB7fVxuXG5cbi8vIE1pc2NlbGxhbmVvdXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1kZXNjcmlwdGlvbi1saXN0LW1pc2MoKSB7fSIsIi8vIE5hbWU6ICAgICAgICAgICAgVGFibGVcbi8vIERlc2NyaXB0aW9uOiAgICAgU3R5bGVzIGZvciB0YWJsZXNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay10YWJsZWBcbi8vXG4vLyBNb2RpZmllcnM6ICAgICAgIGB1ay10YWJsZS1taWRkbGVgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10YWJsZS1kaXZpZGVyYFxuLy8gICAgICAgICAgICAgICAgICBgdWstdGFibGUtc3RyaXBlZGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRhYmxlLWhvdmVyYFxuLy8gICAgICAgICAgICAgICAgICBgdWstdGFibGUtc21hbGxgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10YWJsZS1qdXN0aWZ5YFxuLy8gICAgICAgICAgICAgICAgICBgdWstdGFibGUtc2hyaW5rYFxuLy8gICAgICAgICAgICAgICAgICBgdWstdGFibGUtZXhwYW5kYFxuLy8gICAgICAgICAgICAgICAgICBgdWstdGFibGUtbGlua2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRhYmxlLXJlc3BvbnNpdmVgXG4vL1xuLy8gU3RhdGVzOiAgICAgICAgICBgdWstYWN0aXZlYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkB0YWJsZS1tYXJnaW4tdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbWFyZ2luO1xuXG5AdGFibGUtY2VsbC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAxNnB4O1xuQHRhYmxlLWNlbGwtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgMTJweDtcblxuQHRhYmxlLWhlYWRlci1jZWxsLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgQGdsb2JhbC1mb250LXNpemU7XG5AdGFibGUtaGVhZGVyLWNlbGwtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICBib2xkO1xuQHRhYmxlLWhlYWRlci1jZWxsLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1jb2xvcjtcblxuQHRhYmxlLWZvb3Rlci1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zbWFsbC1mb250LXNpemU7XG5cbkB0YWJsZS1jYXB0aW9uLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc21hbGwtZm9udC1zaXplO1xuQHRhYmxlLWNhcHRpb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tdXRlZC1jb2xvcjtcblxuQHRhYmxlLXJvdy1hY3RpdmUtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgI2ZmZDtcblxuQHRhYmxlLWRpdmlkZXItYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1ib3JkZXItd2lkdGg7XG5AdGFibGUtZGl2aWRlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWJvcmRlcjtcblxuQHRhYmxlLXN0cmlwZWQtcm93LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kO1xuXG5AdGFibGUtaG92ZXItcm93LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICBAdGFibGUtcm93LWFjdGl2ZS1iYWNrZ3JvdW5kO1xuXG5AdGFibGUtc21hbGwtY2VsbC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAxMHB4O1xuQHRhYmxlLXNtYWxsLWNlbGwtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgMTJweDtcblxuQHRhYmxlLWxhcmdlLWNlbGwtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgMjJweDtcbkB0YWJsZS1sYXJnZS1jZWxsLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgIDEycHg7XG5cbkB0YWJsZS1leHBhbmQtbWluLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgIDE1MHB4O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBUYWJsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKiAyLiBCZWhhdmUgbGlrZSBhIGJsb2NrIGVsZW1lbnRcbiAqIDMuIFN0eWxlXG4gKi9cblxuLnVrLXRhYmxlIHtcbiAgICAvKiAxICovXG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgICAvKiAyICovXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLyogMyAqL1xuICAgIG1hcmdpbi1ib3R0b206IEB0YWJsZS1tYXJnaW4tdmVydGljYWw7XG4gICAgLmhvb2stdGFibGUoKTtcbn1cblxuLyogQWRkIG1hcmdpbiBpZiBhZGphY2VudCBlbGVtZW50ICovXG4qICsgLnVrLXRhYmxlIHsgbWFyZ2luLXRvcDogQHRhYmxlLW1hcmdpbi12ZXJ0aWNhbDsgfVxuXG5cbi8qIEhlYWRlciBjZWxsXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFN0eWxlXG4gKi9cblxuLnVrLXRhYmxlIHRoIHtcbiAgICBwYWRkaW5nOiBAdGFibGUtY2VsbC1wYWRkaW5nLXZlcnRpY2FsIEB0YWJsZS1jZWxsLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgLyogMSAqL1xuICAgIGZvbnQtc2l6ZTogQHRhYmxlLWhlYWRlci1jZWxsLWZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogQHRhYmxlLWhlYWRlci1jZWxsLWZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiBAdGFibGUtaGVhZGVyLWNlbGwtY29sb3I7XG4gICAgLmhvb2stdGFibGUtaGVhZGVyLWNlbGwoKTtcbn1cblxuXG4vKiBDZWxsXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXRhYmxlIHRkIHtcbiAgICBwYWRkaW5nOiBAdGFibGUtY2VsbC1wYWRkaW5nLXZlcnRpY2FsIEB0YWJsZS1jZWxsLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIC5ob29rLXRhYmxlLWNlbGwoKTtcbn1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG5cbi51ay10YWJsZSB0ZCA+IDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5cbi8qIEZvb3RlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay10YWJsZSB0Zm9vdCB7XG4gICAgZm9udC1zaXplOiBAdGFibGUtZm9vdGVyLWZvbnQtc2l6ZTtcbiAgICAuaG9vay10YWJsZS1mb290ZXIoKTtcbn1cblxuXG4vKiBDYXB0aW9uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXRhYmxlIGNhcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogQHRhYmxlLWNhcHRpb24tZm9udC1zaXplO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY29sb3I6IEB0YWJsZS1jYXB0aW9uLWNvbG9yO1xuICAgIC5ob29rLXRhYmxlLWNhcHRpb24oKTtcbn1cblxuXG4vKiBBbGlnbm1lbnQgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstdGFibGUtbWlkZGxlLFxuLnVrLXRhYmxlLW1pZGRsZSB0ZCB7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDsgfVxuXG5cbi8qIFN0eWxlIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBEaXZpZGVyXG4gKi9cblxuLnVrLXRhYmxlLWRpdmlkZXIgPiB0cjpub3QoOmZpcnN0LWNoaWxkKSxcbi51ay10YWJsZS1kaXZpZGVyID4gOm5vdCg6Zmlyc3QtY2hpbGQpID4gdHIsXG4udWstdGFibGUtZGl2aWRlciA+IDpmaXJzdC1jaGlsZCA+IHRyOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBib3JkZXItdG9wOiBAdGFibGUtZGl2aWRlci1ib3JkZXItd2lkdGggc29saWQgQHRhYmxlLWRpdmlkZXItYm9yZGVyO1xuICAgIC5ob29rLXRhYmxlLWRpdmlkZXIoKTtcbn1cblxuLypcbiAqIFN0cmlwZWRcbiAqL1xuXG4udWstdGFibGUtc3RyaXBlZCA+IHRyOm50aC1vZi10eXBlKG9kZCksXG4udWstdGFibGUtc3RyaXBlZCB0Ym9keSB0cjpudGgtb2YtdHlwZShvZGQpIHtcbiAgICBiYWNrZ3JvdW5kOiBAdGFibGUtc3RyaXBlZC1yb3ctYmFja2dyb3VuZDtcbiAgICAuaG9vay10YWJsZS1zdHJpcGVkKCk7XG59XG5cbi8qXG4gKiBIb3ZlclxuICovXG5cbi51ay10YWJsZS1ob3ZlciA+IHRyOmhvdmVyLFxuLnVrLXRhYmxlLWhvdmVyIHRib2R5IHRyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBAdGFibGUtaG92ZXItcm93LWJhY2tncm91bmQ7XG4gICAgLmhvb2stdGFibGUtaG92ZXIoKTtcbn1cblxuXG4vKiBBY3RpdmUgc3RhdGVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstdGFibGUgPiB0ci51ay1hY3RpdmUsXG4udWstdGFibGUgdGJvZHkgdHIudWstYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiBAdGFibGUtcm93LWFjdGl2ZS1iYWNrZ3JvdW5kO1xuICAgIC5ob29rLXRhYmxlLXJvdy1hY3RpdmUoKTtcbn1cblxuLyogU2l6ZSBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay10YWJsZS1zbWFsbCB0aCxcbi51ay10YWJsZS1zbWFsbCB0ZCB7XG4gICAgcGFkZGluZzogQHRhYmxlLXNtYWxsLWNlbGwtcGFkZGluZy12ZXJ0aWNhbCBAdGFibGUtc21hbGwtY2VsbC1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgLmhvb2stdGFibGUtc21hbGwoKTtcbn1cblxuLnVrLXRhYmxlLWxhcmdlIHRoLFxuLnVrLXRhYmxlLWxhcmdlIHRkIHtcbiAgICBwYWRkaW5nOiBAdGFibGUtbGFyZ2UtY2VsbC1wYWRkaW5nLXZlcnRpY2FsIEB0YWJsZS1sYXJnZS1jZWxsLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICAuaG9vay10YWJsZS1sYXJnZSgpO1xufVxuXG5cbi8qIEp1c3RpZnkgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstdGFibGUtanVzdGlmeSB0aDpmaXJzdC1jaGlsZCxcbi51ay10YWJsZS1qdXN0aWZ5IHRkOmZpcnN0LWNoaWxkIHsgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi51ay10YWJsZS1qdXN0aWZ5IHRoOmxhc3QtY2hpbGQsXG4udWstdGFibGUtanVzdGlmeSB0ZDpsYXN0LWNoaWxkIHsgcGFkZGluZy1yaWdodDogMDsgfVxuXG5cbi8qIENlbGwgc2l6ZSBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay10YWJsZS1zaHJpbmsgeyB3aWR0aDogMXB4OyB9XG4udWstdGFibGUtZXhwYW5kIHsgbWluLXdpZHRoOiBAdGFibGUtZXhwYW5kLW1pbi13aWR0aDsgfVxuXG5cbi8qIENlbGwgbGluayBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBEb2VzIG5vdCB3b3JrIHdpdGggYHVrLXRhYmxlLWp1c3RpZnlgIGF0IHRoZSBtb21lbnRcbiAqL1xuXG4udWstdGFibGUtbGluayB7IHBhZGRpbmc6IDAgIWltcG9ydGFudDsgfVxuXG4udWstdGFibGUtbGluayA+IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IEB0YWJsZS1jZWxsLXBhZGRpbmctdmVydGljYWwgQHRhYmxlLWNlbGwtcGFkZGluZy1ob3Jpem9udGFsO1xufVxuXG4udWstdGFibGUtc21hbGwgLnVrLXRhYmxlLWxpbmsgPiBhIHsgcGFkZGluZzogQHRhYmxlLXNtYWxsLWNlbGwtcGFkZGluZy12ZXJ0aWNhbCBAdGFibGUtc21hbGwtY2VsbC1wYWRkaW5nLWhvcml6b250YWw7IH1cblxuXG4vKiBSZXNwb25zaXZlIHRhYmxlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIHNtYWxsZXIgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiBAYnJlYWtwb2ludC1zbWFsbC1tYXgpIHtcblxuICAgIC51ay10YWJsZS1yZXNwb25zaXZlLFxuICAgIC51ay10YWJsZS1yZXNwb25zaXZlIHRib2R5LFxuICAgIC51ay10YWJsZS1yZXNwb25zaXZlIHRoLFxuICAgIC51ay10YWJsZS1yZXNwb25zaXZlIHRkLFxuICAgIC51ay10YWJsZS1yZXNwb25zaXZlIHRyIHsgZGlzcGxheTogYmxvY2s7IH1cblxuICAgIC51ay10YWJsZS1yZXNwb25zaXZlIHRoZWFkIHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgLnVrLXRhYmxlLXJlc3BvbnNpdmUgdGgsXG4gICAgLnVrLXRhYmxlLXJlc3BvbnNpdmUgdGQge1xuICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAudWstdGFibGUtcmVzcG9uc2l2ZSB0aDpub3QoOmZpcnN0LWNoaWxkKTpub3QoLnVrLXRhYmxlLWxpbmspLFxuICAgIC51ay10YWJsZS1yZXNwb25zaXZlIHRkOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCgudWstdGFibGUtbGluayksXG4gICAgLnVrLXRhYmxlLXJlc3BvbnNpdmUgLnVrLXRhYmxlLWxpbms6bm90KDpmaXJzdC1jaGlsZCkgPiBhIHsgcGFkZGluZy10b3A6IHJvdW5kKChAdGFibGUtY2VsbC1wYWRkaW5nLXZlcnRpY2FsIC8gMykpICFpbXBvcnRhbnQ7IH1cblxuICAgIC51ay10YWJsZS1yZXNwb25zaXZlIHRoOm5vdCg6bGFzdC1jaGlsZCk6bm90KC51ay10YWJsZS1saW5rKSxcbiAgICAudWstdGFibGUtcmVzcG9uc2l2ZSB0ZDpub3QoOmxhc3QtY2hpbGQpOm5vdCgudWstdGFibGUtbGluayksXG4gICAgLnVrLXRhYmxlLXJlc3BvbnNpdmUgLnVrLXRhYmxlLWxpbms6bm90KDpsYXN0LWNoaWxkKSA+IGEgeyBwYWRkaW5nLWJvdHRvbTogcm91bmQoKEB0YWJsZS1jZWxsLXBhZGRpbmctdmVydGljYWwgLyAzKSkgIWltcG9ydGFudDsgfVxuXG4gICAgLnVrLXRhYmxlLWp1c3RpZnkudWstdGFibGUtcmVzcG9uc2l2ZSB0aCxcbiAgICAudWstdGFibGUtanVzdGlmeS51ay10YWJsZS1yZXNwb25zaXZlIHRkIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cblxufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stdGFibGUtbWlzYygpO1xuXG4uaG9vay10YWJsZSgpIHt9XG4uaG9vay10YWJsZS1oZWFkZXItY2VsbCgpIHt9XG4uaG9vay10YWJsZS1jZWxsKCkge31cbi5ob29rLXRhYmxlLWZvb3RlcigpIHt9XG4uaG9vay10YWJsZS1jYXB0aW9uKCkge31cbi5ob29rLXRhYmxlLXJvdy1hY3RpdmUoKSB7fVxuLmhvb2stdGFibGUtZGl2aWRlcigpIHt9XG4uaG9vay10YWJsZS1zdHJpcGVkKCkge31cbi5ob29rLXRhYmxlLWhvdmVyKCkge31cbi5ob29rLXRhYmxlLXNtYWxsKCkge31cbi5ob29rLXRhYmxlLWxhcmdlKCkge31cbi5ob29rLXRhYmxlLW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW52ZXJzZS10YWJsZS1oZWFkZXItY2VsbC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1jb2xvcjtcbkBpbnZlcnNlLXRhYmxlLWNhcHRpb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yO1xuQGludmVyc2UtdGFibGUtcm93LWFjdGl2ZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICBmYWRlb3V0KEBpbnZlcnNlLWdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kLCAyJSk7XG5AaW52ZXJzZS10YWJsZS1kaXZpZGVyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1ib3JkZXI7XG5AaW52ZXJzZS10YWJsZS1zdHJpcGVkLXJvdy1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kO1xuQGludmVyc2UtdGFibGUtaG92ZXItcm93LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICBAaW52ZXJzZS10YWJsZS1yb3ctYWN0aXZlLWJhY2tncm91bmQ7XG5cbi5ob29rLWludmVyc2UoKSB7XG5cbiAgICAudWstdGFibGUgdGgge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtdGFibGUtaGVhZGVyLWNlbGwtY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtdGFibGUtaGVhZGVyLWNlbGwoKTtcbiAgICB9XG5cbiAgICAudWstdGFibGUgY2FwdGlvbiB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS10YWJsZS1jYXB0aW9uLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLXRhYmxlLWNhcHRpb24oKTtcbiAgICB9XG5cbiAgICAudWstdGFibGUgPiB0ci51ay1hY3RpdmUsXG4gICAgLnVrLXRhYmxlIHRib2R5IHRyLnVrLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IEBpbnZlcnNlLXRhYmxlLXJvdy1hY3RpdmUtYmFja2dyb3VuZDtcbiAgICAgICAgLmhvb2staW52ZXJzZS10YWJsZS1yb3ctYWN0aXZlKCk7XG4gICAgfVxuXG4gICAgLnVrLXRhYmxlLWRpdmlkZXIgPiB0cjpub3QoOmZpcnN0LWNoaWxkKSxcbiAgICAudWstdGFibGUtZGl2aWRlciA+IDpub3QoOmZpcnN0LWNoaWxkKSA+IHRyLFxuICAgIC51ay10YWJsZS1kaXZpZGVyID4gOmZpcnN0LWNoaWxkID4gdHI6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiBAaW52ZXJzZS10YWJsZS1kaXZpZGVyLWJvcmRlcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS10YWJsZS1kaXZpZGVyKCk7XG4gICAgfVxuXG4gICAgLnVrLXRhYmxlLXN0cmlwZWQgPiB0cjpudGgtb2YtdHlwZShvZGQpLFxuICAgIC51ay10YWJsZS1zdHJpcGVkIHRib2R5IHRyOm50aC1vZi10eXBlKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiBAaW52ZXJzZS10YWJsZS1zdHJpcGVkLXJvdy1iYWNrZ3JvdW5kO1xuICAgICAgICAuaG9vay1pbnZlcnNlLXRhYmxlLXN0cmlwZWQoKTtcbiAgICB9XG5cbiAgICAudWstdGFibGUtaG92ZXIgPiB0cjpob3ZlcixcbiAgICAudWstdGFibGUtaG92ZXIgdGJvZHkgdHI6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBAaW52ZXJzZS10YWJsZS1ob3Zlci1yb3ctYmFja2dyb3VuZDtcbiAgICAgICAgLmhvb2staW52ZXJzZS10YWJsZS1ob3ZlcigpO1xuICAgIH1cblxufVxuXG4uaG9vay1pbnZlcnNlLXRhYmxlLWhlYWRlci1jZWxsKCkge31cbi5ob29rLWludmVyc2UtdGFibGUtY2FwdGlvbigpIHt9XG4uaG9vay1pbnZlcnNlLXRhYmxlLXJvdy1hY3RpdmUoKSB7fVxuLmhvb2staW52ZXJzZS10YWJsZS1kaXZpZGVyKCkge31cbi5ob29rLWludmVyc2UtdGFibGUtc3RyaXBlZCgpIHt9XG4uaG9vay1pbnZlcnNlLXRhYmxlLWhvdmVyKCkge31cbiIsIi8vXG4vLyBDb21wb25lbnQ6IFRhYmxlXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIE5ld1xuLy9cblxuQHRhYmxlLWhlYWRlci1jZWxsLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgICAgICBpbmhlcml0O1xuQHRhYmxlLWhlYWRlci1jZWxsLXRleHQtdHJhbnNmb3JtOiAgICAgICAgICAgICAgICAgICAgICB1cHBlcmNhc2U7XG5AdGFibGUtaGVhZGVyLWNlbGwtbGV0dGVyLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgICAgIGluaGVyaXQ7XG5AdGFibGUtaGVhZGVyLWNlbGwtZm9udC1zdHlsZTogICAgICAgICAgICAgICAgICAgICAgICAgIGluaGVyaXQ7XG5cblxuLy8gQ29tcG9uZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stdGFibGUtaGVhZGVyLWNlbGwoKSB3aGVuIG5vdCAoQHRhYmxlLWhlYWRlci1jZWxsLWZvbnQtZmFtaWx5ID0gaW5oZXJpdCkge1xuICAgIGZvbnQtZmFtaWx5OiBAdGFibGUtaGVhZGVyLWNlbGwtZm9udC1mYW1pbHk7XG59XG5cbi5ob29rLXRhYmxlLWhlYWRlci1jZWxsKCkgd2hlbiBub3QgKEB0YWJsZS1oZWFkZXItY2VsbC10ZXh0LXRyYW5zZm9ybSA9IGluaGVyaXQpIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogQHRhYmxlLWhlYWRlci1jZWxsLXRleHQtdHJhbnNmb3JtO1xufVxuXG4uaG9vay10YWJsZS1oZWFkZXItY2VsbCgpIHdoZW4gbm90IChAdGFibGUtaGVhZGVyLWNlbGwtbGV0dGVyLXNwYWNpbmcgPSBpbmhlcml0KSB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IEB0YWJsZS1oZWFkZXItY2VsbC1sZXR0ZXItc3BhY2luZztcbn1cblxuLmhvb2stdGFibGUtaGVhZGVyLWNlbGwoKSB3aGVuIG5vdCAoQHRhYmxlLWhlYWRlci1jZWxsLWZvbnQtc3R5bGUgPSBpbmhlcml0KSB7XG4gICAgZm9udC1zdHlsZTogQHRhYmxlLWhlYWRlci1jZWxsLWZvbnQtc3R5bGU7XG59XG5cbi5ob29rLXRhYmxlLWNlbGwoKSB7fVxuXG4uaG9vay10YWJsZS1mb290ZXIoKSB7fVxuXG4uaG9vay10YWJsZS1jYXB0aW9uKCkge31cblxuLmhvb2stdGFibGUtcm93LWFjdGl2ZSgpIHt9XG5cblxuLy8gU3R5bGUgbW9kaWZpZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stdGFibGUtZGl2aWRlcigpIHt9XG5cbi5ob29rLXRhYmxlLXN0cmlwZWQoKSB7fVxuXG4uaG9vay10YWJsZS1ob3ZlcigpIHt9XG5cblxuLy8gU2l6ZSBtb2RpZmllclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXRhYmxlLXNtYWxsKCkge31cblxuLmhvb2stdGFibGUtbGFyZ2UoKSB7fVxuXG5cbi8vIE1pc2NlbGxhbmVvdXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay10YWJsZS1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2staW52ZXJzZS10YWJsZS1oZWFkZXItY2VsbCgpIHt9XG4uaG9vay1pbnZlcnNlLXRhYmxlLWNhcHRpb24oKSB7fVxuLmhvb2staW52ZXJzZS10YWJsZS1yb3ctYWN0aXZlKCkge31cbi5ob29rLWludmVyc2UtdGFibGUtZGl2aWRlcigpIHt9XG4uaG9vay1pbnZlcnNlLXRhYmxlLXN0cmlwZWQoKSB7fVxuLmhvb2staW52ZXJzZS10YWJsZS1ob3ZlcigpIHt9IiwiLy9cbi8vIENvbXBvbmVudDogVGFibGVcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AdGFibGUtaGVhZGVyLWNlbGwtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZTtcbkB0YWJsZS1oZWFkZXItY2VsbC1mb250LXdlaWdodDogICAgICAgICAgICAgICAgIG5vcm1hbDtcbkB0YWJsZS1oZWFkZXItY2VsbC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtY29sb3I7XG5cblxuLy8gQ29tcG9uZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stdGFibGUtaGVhZGVyLWNlbGwoKSB7fVxuXG4uaG9vay10YWJsZS1jZWxsKCkge31cblxuLmhvb2stdGFibGUtZm9vdGVyKCkge31cblxuLmhvb2stdGFibGUtY2FwdGlvbigpIHt9XG5cbi5ob29rLXRhYmxlLXJvdy1hY3RpdmUoKSB7fVxuXG5cbi8vIFN0eWxlIG1vZGlmaWVyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXRhYmxlLWRpdmlkZXIoKSB7fVxuXG4uaG9vay10YWJsZS1zdHJpcGVkKCkge31cblxuLmhvb2stdGFibGUtaG92ZXIoKSB7fVxuXG5cbi8vIFNpemUgbW9kaWZpZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay10YWJsZS1zbWFsbCgpIHt9XG5cbi5ob29rLXRhYmxlLWxhcmdlKCkge31cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stdGFibGUtbWlzYygpIHtcblxuICAgIC51ay10YWJsZSB0Ym9keSB0ciB7IHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xcyBsaW5lYXI7IH1cblxufVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1pbnZlcnNlLXRhYmxlLWhlYWRlci1jZWxsKCkge31cbi5ob29rLWludmVyc2UtdGFibGUtY2FwdGlvbigpIHt9XG4uaG9vay1pbnZlcnNlLXRhYmxlLXJvdy1hY3RpdmUoKSB7fVxuLmhvb2staW52ZXJzZS10YWJsZS1kaXZpZGVyKCkge31cbi5ob29rLWludmVyc2UtdGFibGUtc3RyaXBlZCgpIHt9XG4uaG9vay1pbnZlcnNlLXRhYmxlLWhvdmVyKCkge30iLCIvLyBOYW1lOiAgICAgICAgICAgIEljb25cbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBpY29uc1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWljb25gXG4vL1xuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstaWNvbi1pbWFnZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWljb24tbGlua2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLWljb24tYnV0dG9uYFxuLy9cbi8vIFN0YXRlczogICAgICAgICAgYHVrLXByZXNlcnZlYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpY29uLWltYWdlLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwcHg7XG5cbkBpY29uLWxpbmstY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtY29sb3I7XG5AaWNvbi1saW5rLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWNvbG9yO1xuQGljb24tbGluay1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgZGFya2VuKEBnbG9iYWwtY29sb3IsIDUlKTtcblxuQGljb24tYnV0dG9uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzZweDtcbkBpY29uLWJ1dHRvbi1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgICAgIDUwMHB4O1xuQGljb24tYnV0dG9uLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kO1xuQGljb24tYnV0dG9uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tdXRlZC1jb2xvcjtcblxuQGljb24tYnV0dG9uLWhvdmVyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgZGFya2VuKEBpY29uLWJ1dHRvbi1iYWNrZ3JvdW5kLCA1JSk7XG5AaWNvbi1idXR0b24taG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWNvbG9yO1xuXG5AaWNvbi1idXR0b24tYWN0aXZlLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICBkYXJrZW4oQGljb24tYnV0dG9uLWJhY2tncm91bmQsIDEwJSk7XG5AaWNvbi1idXR0b24tYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWNvbG9yO1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBJY29uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIE5vdGU6IDEuIC0gNy4gaXMgcmVxdWlyZWQgZm9yIGBidXR0b25gIGVsZW1lbnRzLiBOZWVkZWQgZm9yIENsb3NlIGFuZCBGb3JtIEljb24gY29tcG9uZW50LlxuICogMS4gUmVtb3ZlIG1hcmdpbnMgaW4gQ2hyb21lLCBTYWZhcmkgYW5kIE9wZXJhLlxuICogMi4gUmVtb3ZlIGJvcmRlcnMgZm9yIGBidXR0b25gLlxuICogMy4gUmVtb3ZlIGJvcmRlci1yYWRpdXMgaW4gQ2hyb21lLlxuICogNC4gQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRS5cbiAqIDUuIENvcnJlY3QgYGZvbnRgIHByb3BlcnRpZXMgYW5kIGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBmb3IgYGJ1dHRvbmAuXG4gKiA2LiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDcuIFJlbW92ZSBkZWZhdWx0IGBidXR0b25gIHBhZGRpbmcgYW5kIGJhY2tncm91bmQgY29sb3JcbiAqIDguIFN0eWxlXG4gKiA5LiBGaWxsIGFsbCBTVkcgZWxlbWVudHMgd2l0aCB0aGUgY3VycmVudCB0ZXh0IGNvbG9yIGlmIG5vIGBmaWxsYCBhdHRyaWJ1dGUgaXMgc2V0XG4gKiAxMC4gTGV0IHRoZSBjb250YWluZXIgZml0IHRoZSBoZWlnaHQgb2YgdGhlIGljb25cbiAqL1xuXG4udWstaWNvbiB7XG4gICAgLyogMSAqL1xuICAgIG1hcmdpbjogMDtcbiAgICAvKiAyICovXG4gICAgYm9yZGVyOiBub25lO1xuICAgIC8qIDMgKi9cbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIC8qIDQgKi9cbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAvKiA1ICovXG4gICAgZm9udDogaW5oZXJpdDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAvKiA2ICovXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgLyogNy4gKi9cbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIC8qIDggKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgLyogOSAqL1xuICAgIGZpbGw6IGN1cnJlbnRjb2xvcjtcbiAgICAvKiAxMCAqL1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG4vKiBSZXF1aXJlZCBmb3IgYGJ1dHRvbmAuICovXG5idXR0b24udWstaWNvbjpub3QoOmRpc2FibGVkKSB7IGN1cnNvcjogcG9pbnRlcjsgfVxuXG4vKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG4udWstaWNvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi8qXG4gKiBTZXQgdGhlIGZpbGwgYW5kIHN0cm9rZSBjb2xvciBvZiBhbGwgU1ZHIGVsZW1lbnRzIHRvIHRoZSBjdXJyZW50IHRleHQgY29sb3JcbiAqL1xuXG4udWstaWNvbjpub3QoLnVrLXByZXNlcnZlKSBbZmlsbCo9JyMnXTpub3QoLnVrLXByZXNlcnZlKSB7IGZpbGw6IGN1cnJlbnRjb2xvcjsgfVxuLnVrLWljb246bm90KC51ay1wcmVzZXJ2ZSkgW3N0cm9rZSo9JyMnXTpub3QoLnVrLXByZXNlcnZlKSB7IHN0cm9rZTogY3VycmVudGNvbG9yOyB9XG5cbi8qXG4gKiBGaXggRmlyZWZveCBibHVycnkgU1ZHIHJlbmRlcmluZzogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0NjgzNVxuICovXG5cbi51ay1pY29uID4gKiB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsMCk7IH1cblxuXG4vKiBJbWFnZSBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBEaXNwbGF5IGltYWdlcyBpbiBpY29uIGRpbWVuc2lvbnNcbiAqIDEuIFJlcXVpcmVkIGZvciBgc3BhbmAgd2l0aCBiYWNrZ3JvdW5kIGltYWdlXG4gKiAyLiBSZXF1aXJlZCBmb3IgYGltYWdlYFxuICovXG5cbi51ay1pY29uLWltYWdlIHtcbiAgICB3aWR0aDogQGljb24taW1hZ2Utc2l6ZTtcbiAgICBoZWlnaHQ6IEBpY29uLWltYWdlLXNpemU7XG4gICAgLyogMSAqL1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAvKiAyICovXG4gICAgb2JqZWN0LWZpdDogc2NhbGUtZG93bjtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG59XG5cblxuLyogU3R5bGUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIExpbmtcbiAqIDEuIEFsbG93IHRleHQgd2l0aGluIGxpbmtcbiAqL1xuXG4udWstaWNvbi1saW5rIHtcbiAgICBjb2xvcjogQGljb24tbGluay1jb2xvcjtcbiAgICAvKiAxICovXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLmhvb2staWNvbi1saW5rKCk7XG59XG5cbi51ay1pY29uLWxpbms6aG92ZXIge1xuICAgIGNvbG9yOiBAaWNvbi1saW5rLWhvdmVyLWNvbG9yO1xuICAgIC5ob29rLWljb24tbGluay1ob3ZlcigpO1xufVxuXG4vKiBPbkNsaWNrICsgQWN0aXZlICovXG4udWstaWNvbi1saW5rOmFjdGl2ZSxcbi51ay1hY3RpdmUgPiAudWstaWNvbi1saW5rIHtcbiAgICBjb2xvcjogQGljb24tbGluay1hY3RpdmUtY29sb3I7XG4gICAgLmhvb2staWNvbi1saW5rLWFjdGl2ZSgpO1xufVxuXG4vKlxuICogQnV0dG9uXG4gKiAxLiBDZW50ZXIgaWNvbiB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHlcbiAqL1xuXG4udWstaWNvbi1idXR0b24ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IEBpY29uLWJ1dHRvbi1zaXplO1xuICAgIGhlaWdodDogQGljb24tYnV0dG9uLXNpemU7XG4gICAgYm9yZGVyLXJhZGl1czogQGljb24tYnV0dG9uLWJvcmRlci1yYWRpdXM7XG4gICAgYmFja2dyb3VuZDogQGljb24tYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgY29sb3I6IEBpY29uLWJ1dHRvbi1jb2xvcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIC8qIDEgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIC5ob29rLWljb24tYnV0dG9uKCk7XG59XG5cbi8qIEhvdmVyICovXG4udWstaWNvbi1idXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpY29uLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiBAaWNvbi1idXR0b24taG92ZXItY29sb3I7XG4gICAgLmhvb2staWNvbi1idXR0b24taG92ZXIoKTtcbn1cblxuLyogT25DbGljayArIEFjdGl2ZSAqL1xuLnVrLWljb24tYnV0dG9uOmFjdGl2ZSxcbi51ay1hY3RpdmUgPiAudWstaWNvbi1idXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpY29uLWJ1dHRvbi1hY3RpdmUtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogQGljb24tYnV0dG9uLWFjdGl2ZS1jb2xvcjtcbiAgICAuaG9vay1pY29uLWJ1dHRvbi1hY3RpdmUoKTtcbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWljb24tbWlzYygpO1xuXG4uaG9vay1pY29uLWxpbmsoKSB7fVxuLmhvb2staWNvbi1saW5rLWhvdmVyKCkge31cbi5ob29rLWljb24tbGluay1hY3RpdmUoKSB7fVxuLmhvb2staWNvbi1idXR0b24oKSB7fVxuLmhvb2staWNvbi1idXR0b24taG92ZXIoKSB7fVxuLmhvb2staWNvbi1idXR0b24tYWN0aXZlKCkge31cbi5ob29rLWljb24tbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbnZlcnNlLWljb24tbGluay1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yO1xuQGludmVyc2UtaWNvbi1saW5rLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtY29sb3I7XG5AaW52ZXJzZS1pY29uLWxpbmstYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1jb2xvcjtcbkBpbnZlcnNlLWljb24tYnV0dG9uLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLW11dGVkLWJhY2tncm91bmQ7XG5AaW52ZXJzZS1pY29uLWJ1dHRvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvcjtcbkBpbnZlcnNlLWljb24tYnV0dG9uLWhvdmVyLWJhY2tncm91bmQ6ICAgICAgICAgZmFkZWluKEBpbnZlcnNlLWljb24tYnV0dG9uLWJhY2tncm91bmQsIDUlKTtcbkBpbnZlcnNlLWljb24tYnV0dG9uLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWNvbG9yO1xuQGludmVyc2UtaWNvbi1idXR0b24tYWN0aXZlLWJhY2tncm91bmQ6ICAgICAgICBmYWRlaW4oQGludmVyc2UtaWNvbi1idXR0b24tYmFja2dyb3VuZCwgMTAlKTtcbkBpbnZlcnNlLWljb24tYnV0dG9uLWFjdGl2ZS1jb2xvcjogICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWNvbG9yO1xuXG4uaG9vay1pbnZlcnNlKCkge1xuXG4gICAgLy9cbiAgICAvLyBMaW5rXG4gICAgLy9cblxuICAgIC51ay1pY29uLWxpbmsge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtaWNvbi1saW5rLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLWljb24tbGluaygpO1xuICAgIH1cblxuICAgIC51ay1pY29uLWxpbms6aG92ZXIge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtaWNvbi1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLWljb24tbGluay1ob3ZlcigpO1xuICAgIH1cblxuICAgIC51ay1pY29uLWxpbms6YWN0aXZlLFxuICAgIC51ay1hY3RpdmUgPiAudWstaWNvbi1saW5rIHtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLWljb24tbGluay1hY3RpdmUtY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtaWNvbi1saW5rLWFjdGl2ZSgpO1xuICAgIH1cblxuICAgIC8vXG4gICAgLy8gQnV0dG9uXG4gICAgLy9cblxuICAgIC51ay1pY29uLWJ1dHRvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLWljb24tYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1pY29uLWJ1dHRvbi1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1pY29uLWJ1dHRvbigpO1xuICAgIH1cblxuICAgIC51ay1pY29uLWJ1dHRvbjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLWljb24tYnV0dG9uLWhvdmVyLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1pY29uLWJ1dHRvbi1ob3Zlci1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1pY29uLWJ1dHRvbi1ob3ZlcigpO1xuICAgIH1cblxuICAgIC51ay1pY29uLWJ1dHRvbjphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1pY29uLWJ1dHRvbi1hY3RpdmUtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLWljb24tYnV0dG9uLWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1pY29uLWJ1dHRvbi1hY3RpdmUoKTtcbiAgICB9XG5cbn1cblxuLmhvb2staW52ZXJzZS1pY29uLWxpbmsoKSB7fVxuLmhvb2staW52ZXJzZS1pY29uLWxpbmstaG92ZXIoKSB7fVxuLmhvb2staW52ZXJzZS1pY29uLWxpbmstYWN0aXZlKCkge31cbi5ob29rLWludmVyc2UtaWNvbi1idXR0b24oKSB7fVxuLmhvb2staW52ZXJzZS1pY29uLWJ1dHRvbi1ob3ZlcigpIHt9XG4uaG9vay1pbnZlcnNlLWljb24tYnV0dG9uLWFjdGl2ZSgpIHt9XG4iLCIvL1xuLy8gQ29tcG9uZW50OiBJY29uXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGljb24tYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb246ICAgICAgICAgICAgICAwLjFzO1xuXG5AaW50ZXJuYWwtaWNvbi1idXR0b24tbW9kZTogICAgICAgICAgICAgICAgICAgIH4nJzsgLy8gcmlwcGxlXG5cbkBpbnRlcm5hbC1pY29uLWJ1dHRvbi1tb2RlOiAgICAgICAgICAgICAgICAgICAgficnOyAvLyBnbG93XG5AaW50ZXJuYWwtaWNvbi1idXR0b24tZ2xvdy1ncmFkaWVudDogICAgICAgICAgIH4nJztcbkBpbnRlcm5hbC1pY29uLWJ1dHRvbi1nbG93LWZpbHRlcjogICAgICAgICAgICAgficnO1xuQGludGVybmFsLWljb24tYnV0dG9uLWhvdmVyLWdsb3ctZmlsdGVyOiAgICAgICB+Jyc7XG5cblxuLy8gU3R5bGUgbW9kaWZpZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIExpbmtcbi8vXG5cbi5ob29rLWljb24tbGluaygpIHt9XG5cbi5ob29rLWljb24tbGluay1ob3ZlcigpIHt9XG5cbi5ob29rLWljb24tbGluay1hY3RpdmUoKSB7fVxuXG4vL1xuLy8gQnV0dG9uXG4vL1xuXG4uaG9vay1pY29uLWJ1dHRvbigpIHtcbiAgICB0cmFuc2l0aW9uOiBAaWNvbi1idXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbiBlYXNlLWluLW91dDtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBjb2xvciwgYmFja2dyb3VuZC1jb2xvciwgYmFja2dyb3VuZC1zaXplLCBib3JkZXItY29sb3IsIGJveC1zaGFkb3c7XG59XG5cbi5ob29rLWljb24tYnV0dG9uLWhvdmVyKCkge31cblxuLmhvb2staWNvbi1idXR0b24tYWN0aXZlKCkge31cblxuLy9cbi8vIFJpcHBsZVxuLy8gRml4IHJlbmRlcmluZyBidWcgaW4gU2FmYXJpIGJ5IGZhZGluZyB0aGUgb3JpZ2luYWwgY29sb3IgdG8gdHJhbnNwYXJlbnQgaW5zdGVhZCBvZiBgdHJhbnNwYXJlbnRgIHdoaWNoIGlzIGByZ2JhKDAsMCwwLDApYFxuLy9cblxuLmhvb2staWNvbi1idXR0b24oKSB3aGVuIChAaW50ZXJuYWwtaWNvbi1idXR0b24tbW9kZSA9IHJpcHBsZSkge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSAxMDAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMCAwO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGZhcnRoZXN0LXNpZGUgYXQgNTAlIDEwMCUsIEBpY29uLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kIH4nY2FsYygxMDAlIC0gMXB4KScsIGZhZGUoQGljb24tYnV0dG9uLWhvdmVyLWJhY2tncm91bmQsIDAlKSAxMDAlKTtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjE2NSwuODUsLjQ1LDEpO1xufVxuXG4uaG9vay1pY29uLWJ1dHRvbi1ob3ZlcigpIHdoZW4gKEBpbnRlcm5hbC1pY29uLWJ1dHRvbi1tb2RlID0gcmlwcGxlKSB7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxNTAlIDE1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGljb24tYnV0dG9uLWJhY2tncm91bmQ7XG59XG5cbi5ob29rLWljb24tYnV0dG9uLWFjdGl2ZSgpIHdoZW4gKEBpbnRlcm5hbC1pY29uLWJ1dHRvbi1tb2RlID0gcmlwcGxlKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwcztcbn1cblxuLy9cbi8vIEdsb3dcbi8vXG5cbi5ob29rLWljb24tYnV0dG9uKCkgd2hlbiAoQGludGVybmFsLWljb24tYnV0dG9uLW1vZGUgPSBnbG93KSB7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgLy8gRml4IFNhZmFyaSBmbGlja2VyaW5nXG4gICAgICAgIHdpbGwtY2hhbmdlOiBmaWx0ZXI7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogQGludGVybmFsLWljb24tYnV0dG9uLWdsb3ctZ3JhZGllbnQ7XG4gICAgICAgIGZpbHRlcjogQGludGVybmFsLWljb24tYnV0dG9uLWdsb3ctZmlsdGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBmaWx0ZXIgQGljb24tYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24gZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG59XG5cbi5ob29rLWljb24tYnV0dG9uKCkgd2hlbiAoQGludGVybmFsLWljb24tYnV0dG9uLW1vZGUgPSBnbG93KSBhbmQgbm90IChAaWNvbi1idXR0b24tYm9yZGVyLXJhZGl1cyA9IDApIHtcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7IGJvcmRlci1yYWRpdXM6IEBpY29uLWJ1dHRvbi1ib3JkZXItcmFkaXVzOyB9XG5cbn1cblxuLmhvb2staWNvbi1idXR0b24taG92ZXIoKSB3aGVuIChAaW50ZXJuYWwtaWNvbi1idXR0b24tbW9kZSA9IGdsb3cpIGFuZCBub3QgKEBpbnRlcm5hbC1pY29uLWJ1dHRvbi1ob3Zlci1nbG93LWZpbHRlciA9IH4nJykge1xuXG4gICAgJjo6YmVmb3JlIHsgZmlsdGVyOiBAaW50ZXJuYWwtaWNvbi1idXR0b24taG92ZXItZ2xvdy1maWx0ZXI7IH1cblxufVxuXG4uaG9vay1idXR0b24tbWlzYygpIHdoZW4gKEBpbnRlcm5hbC1pY29uLWJ1dHRvbi1tb2RlID0gZ2xvdykge1xuXG4gICAgLnVrLWljb24tYnV0dG9uOm5vdCgudWstaGFjaykge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbn1cblxuLnVrLWljb24tYnV0dG9uOjphZnRlcjpleHRlbmQoLnVrLWljb24tYnV0dG9uKSB3aGVuIChAaW50ZXJuYWwtaWNvbi1idXR0b24tbW9kZSA9IGdsb3cpIHt9XG4udWstaWNvbi1idXR0b246aG92ZXI6OmFmdGVyOmV4dGVuZCgudWstaWNvbi1idXR0b246aG92ZXIpIHdoZW4gKEBpbnRlcm5hbC1pY29uLWJ1dHRvbi1tb2RlID0gZ2xvdykge31cbi51ay1pY29uLWJ1dHRvbjphY3RpdmU6OmFmdGVyOmV4dGVuZCgudWstaWNvbi1idXR0b246YWN0aXZlKSB3aGVuIChAaW50ZXJuYWwtaWNvbi1idXR0b24tbW9kZSA9IGdsb3cpIHt9XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWljb24tbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbnRlcm5hbC1pbnZlcnNlLWljb24tYnV0dG9uLWdsb3ctZ3JhZGllbnQ6ICAgICAgICAgICAgficnO1xuXG4uaG9vay1pbnZlcnNlLWljb24tbGluaygpIHt9XG4uaG9vay1pbnZlcnNlLWljb24tbGluay1ob3ZlcigpIHt9XG4uaG9vay1pbnZlcnNlLWljb24tbGluay1hY3RpdmUoKSB7fVxuXG4uaG9vay1pbnZlcnNlLWljb24tYnV0dG9uKCkgd2hlbiAoQGludGVybmFsLWljb24tYnV0dG9uLW1vZGUgPSByaXBwbGUyKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGZhcnRoZXN0LXNpZGUgYXQgNTAlIDEwMCUsIEBpbnZlcnNlLWljb24tYnV0dG9uLWhvdmVyLWJhY2tncm91bmQgfidjYWxjKDEwMCUgLSAxcHgpJywgZmFkZShAaW52ZXJzZS1pY29uLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kLCAwJSkgMTAwJSk7XG59XG4uaG9vay1pbnZlcnNlLWljb24tYnV0dG9uLWhvdmVyKCkgd2hlbiAoQGludGVybmFsLWljb24tYnV0dG9uLW1vZGUgPSByaXBwbGUpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1pY29uLWJ1dHRvbi1iYWNrZ3JvdW5kO1xufVxuLmhvb2staW52ZXJzZS1pY29uLWJ1dHRvbi1hY3RpdmUoKSB3aGVuIChAaW50ZXJuYWwtaWNvbi1idXR0b24tbW9kZSA9IHJpcHBsZSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG5cbi5ob29rLWludmVyc2UoKSB3aGVuIChAaW50ZXJuYWwtaWNvbi1idXR0b24tbW9kZSA9IGdsb3cpIGFuZCBub3QgKEBpbnRlcm5hbC1pbnZlcnNlLWljb24tYnV0dG9uLWdsb3ctZ3JhZGllbnQgPSB+JycpIHtcblxuICAgIC51ay1pY29uLWJ1dHRvbjo6YmVmb3JlIHsgYmFja2dyb3VuZC1pbWFnZTogQGludGVybmFsLWludmVyc2UtaWNvbi1idXR0b24tZ2xvdy1ncmFkaWVudDsgfVxuXG59XG4uaG9vay1pbnZlcnNlKCkgd2hlbiAoQGludGVybmFsLWljb24tYnV0dG9uLW1vZGUgPSBnbG93KSB7XG5cbiAgICAudWstaWNvbi1idXR0b246OmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtaWNvbi1idXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgLmhvb2staW52ZXJzZS1pY29uLWJ1dHRvbigpO1xuICAgIH1cblxuICAgIC51ay1pY29uLWJ1dHRvbjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1pY29uLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogQGludmVyc2UtaWNvbi1idXR0b24taG92ZXItY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtaWNvbi1idXR0b24taG92ZXIoKTtcbiAgICB9XG5cbiAgICAudWstaWNvbi1idXR0b246YWN0aXZlOjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLWljb24tYnV0dG9uLWFjdGl2ZS1iYWNrZ3JvdW5kO1xuICAgICAgICAuaG9vay1pbnZlcnNlLWljb24tYnV0dG9uLWFjdGl2ZSgpO1xuICAgIH1cblxufSIsIi8vIE5hbWU6ICAgICAgICAgICAgRm9ybSBSYW5nZVxuLy8gRGVzY3JpcHRpb246ICAgICBTdHlsZXMgZm9yIHRoZSByYW5nZSBpbnB1dCB0eXBlXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstcmFuZ2VgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGZvcm0tcmFuZ2UtdHJhY2staGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgM3B4O1xuQGZvcm0tcmFuZ2UtdHJhY2stYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgZGFya2VuKEBnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCwgNSUpO1xuQGZvcm0tcmFuZ2UtdHJhY2stZm9jdXMtYmFja2dyb3VuZDogICAgICAgICAgICAgZGFya2VuKEBmb3JtLXJhbmdlLXRyYWNrLWJhY2tncm91bmQsIDUlKTtcblxuQGZvcm0tcmFuZ2UtdGh1bWItaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgMTVweDtcbkBmb3JtLXJhbmdlLXRodW1iLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3JtLXJhbmdlLXRodW1iLWhlaWdodDtcbkBmb3JtLXJhbmdlLXRodW1iLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgIDUwMHB4O1xuQGZvcm0tcmFuZ2UtdGh1bWItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgQGdsb2JhbC1jb2xvcjtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogRm9ybSBSYW5nZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBSZW1vdmUgZGVmYXVsdCBzdHlsZS5cbiAqIDIuIERlZmluZSBjb25zaXN0ZW50IGJveCBzaXppbmcuXG4gKiAzLiBSZW1vdmUgYG1hcmdpbmAgaW4gYWxsIGJyb3dzZXJzLlxuICogNC4gQWxpZ24gdG8gdGhlIGNlbnRlciBvZiB0aGUgbGluZSBib3guXG4gKiA1LiBQcmV2ZW50IGNvbnRlbnQgb3ZlcmZsb3cgaWYgYSBmaXhlZCB3aWR0aCBpcyB1c2VkLlxuICogNi4gVGFrZSB0aGUgZnVsbCB3aWR0aC5cbiAqIDcuIFJlbW92ZSB3aGl0ZSBiYWNrZ3JvdW5kIGluIENocm9tZS5cbiAqL1xuXG4udWstcmFuZ2Uge1xuICAgIC8qIDEgKi9cbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLyogMiAqL1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLyogMyAqL1xuICAgIG1hcmdpbjogMDtcbiAgICAvKiA0ICovXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAvKiA1ICovXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIC8qIDYgKi9cbiAgICB3aWR0aDogMTAwJTtcbiAgICAvKiA3ICovXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgLmhvb2stZm9ybS1yYW5nZSgpO1xufVxuXG4vKiBGb2N1cyAqL1xuLnVrLXJhbmdlOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxuLnVrLXJhbmdlOjotbW96LWZvY3VzLW91dGVyIHsgYm9yZGVyOiBub25lOyB9XG5cbi8qXG4gKiBJbXByb3ZlcyBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgZm9yIGNsaWNrYWJsZSBlbGVtZW50c1xuICovXG5cbi51ay1yYW5nZTpub3QoOmRpc2FibGVkKTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgeyBjdXJzb3I6IHBvaW50ZXI7IH1cbi51ay1yYW5nZTpub3QoOmRpc2FibGVkKTo6LW1vei1yYW5nZS10aHVtYiB7IGN1cnNvcjogcG9pbnRlcjsgfVxuXG5cbi8qXG4gKiBUcmFja1xuICogMS4gU2FmYXJpIGRvZXNuJ3QgaGF2ZSBhIGZvY3VzIHN0YXRlLiBVc2luZyBhY3RpdmUgaW5zdGVhZC5cbiAqL1xuXG4vKiBXZWJraXQgKi9cbi51ay1yYW5nZTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICAgIGhlaWdodDogQGZvcm0tcmFuZ2UtdHJhY2staGVpZ2h0O1xuICAgIGJhY2tncm91bmQ6IEBmb3JtLXJhbmdlLXRyYWNrLWJhY2tncm91bmQ7XG4gICAgLmhvb2stZm9ybS1yYW5nZS10cmFjaygpO1xufVxuXG4udWstcmFuZ2U6Zm9jdXM6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrLFxuLyogMSAqL1xuLnVrLXJhbmdlOmFjdGl2ZTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICAgIGJhY2tncm91bmQ6IEBmb3JtLXJhbmdlLXRyYWNrLWZvY3VzLWJhY2tncm91bmQ7XG4gICAgLmhvb2stZm9ybS1yYW5nZS10cmFjay1mb2N1cygpO1xufVxuXG4vKiBGaXJlZm94ICovXG4udWstcmFuZ2U6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICAgIGhlaWdodDogQGZvcm0tcmFuZ2UtdHJhY2staGVpZ2h0O1xuICAgIGJhY2tncm91bmQ6IEBmb3JtLXJhbmdlLXRyYWNrLWJhY2tncm91bmQ7XG4gICAgLmhvb2stZm9ybS1yYW5nZS10cmFjaygpO1xufVxuXG4udWstcmFuZ2U6Zm9jdXM6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICAgIGJhY2tncm91bmQ6IEBmb3JtLXJhbmdlLXRyYWNrLWZvY3VzLWJhY2tncm91bmQ7XG4gICAgLmhvb2stZm9ybS1yYW5nZS10cmFjay1mb2N1cygpO1xufVxuXG4vKlxuICogVGh1bWJcbiAqIDEuIFJlc2V0XG4gKiAyLiBTdHlsZVxuICovXG5cbi8qIFdlYmtpdCAqL1xuLnVrLXJhbmdlOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgLyogMSAqL1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBtYXJnaW4tdG9wOiAoZmxvb3IoKEBmb3JtLXJhbmdlLXRodW1iLWhlaWdodCAvIDIpKSAqIC0xKTtcbiAgICAvKiAyICovXG4gICAgaGVpZ2h0OiBAZm9ybS1yYW5nZS10aHVtYi1oZWlnaHQ7XG4gICAgd2lkdGg6IEBmb3JtLXJhbmdlLXRodW1iLXdpZHRoO1xuICAgIGJvcmRlci1yYWRpdXM6IEBmb3JtLXJhbmdlLXRodW1iLWJvcmRlci1yYWRpdXM7XG4gICAgYmFja2dyb3VuZDogQGZvcm0tcmFuZ2UtdGh1bWItYmFja2dyb3VuZDtcbiAgICAuaG9vay1mb3JtLXJhbmdlLXRodW1iKCk7XG59XG5cbi8qIEZpcmVmb3ggKi9cbi51ay1yYW5nZTo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgLyogMSAqL1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICAvKiAyICovXG4gICAgaGVpZ2h0OiBAZm9ybS1yYW5nZS10aHVtYi1oZWlnaHQ7XG4gICAgd2lkdGg6IEBmb3JtLXJhbmdlLXRodW1iLXdpZHRoO1xuICAgIG1hcmdpbi10b3A6IChmbG9vcigoQGZvcm0tcmFuZ2UtdGh1bWItaGVpZ2h0IC8gMikpICogLTEpO1xuICAgIGJvcmRlci1yYWRpdXM6IEBmb3JtLXJhbmdlLXRodW1iLWJvcmRlci1yYWRpdXM7XG4gICAgYmFja2dyb3VuZDogQGZvcm0tcmFuZ2UtdGh1bWItYmFja2dyb3VuZDtcbiAgICAuaG9vay1mb3JtLXJhbmdlLXRodW1iKCk7XG59XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1mb3JtLXJhbmdlLW1pc2MoKTtcblxuLmhvb2stZm9ybS1yYW5nZSgpIHt9XG4uaG9vay1mb3JtLXJhbmdlLXRyYWNrKCkge31cbi5ob29rLWZvcm0tcmFuZ2UtdHJhY2stZm9jdXMoKSB7fVxuLmhvb2stZm9ybS1yYW5nZS10aHVtYigpIHt9XG4uaG9vay1mb3JtLXJhbmdlLW1pc2MoKSB7fVxuIiwiLy9cbi8vIENvbXBvbmVudDogRm9ybSBSYW5nZVxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBmb3JtLXJhbmdlLXRodW1iLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgIDA7XG5AZm9ybS1yYW5nZS10aHVtYi1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcblxuXG4vLyBDb21wb25lbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1mb3JtLXJhbmdlKCkge31cblxuXG4vLyBUaHVtYlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWZvcm0tcmFuZ2UtdGh1bWIoKSB3aGVuIG5vdCAoQGZvcm0tcmFuZ2UtdGh1bWItYm9yZGVyLXdpZHRoID0gMCkge1xuICAgIGJvcmRlcjogQGZvcm0tcmFuZ2UtdGh1bWItYm9yZGVyLXdpZHRoIHNvbGlkIEBmb3JtLXJhbmdlLXRodW1iLWJvcmRlcjtcbn1cblxuXG4vLyBUcmFja1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWZvcm0tcmFuZ2UtdHJhY2soKSB7fVxuXG4uaG9vay1mb3JtLXJhbmdlLXRyYWNrLWZvY3VzKCkge31cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stZm9ybS1yYW5nZS1taXNjKCkge30iLCIvLyBOYW1lOiAgICAgICAgICAgIEZvcm1cbi8vIERlc2NyaXB0aW9uOiAgICAgU3R5bGVzIGZvciBmb3Jtc1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWZvcm0tKmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWlucHV0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstc2VsZWN0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstdGV4dGFyZWFgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1yYWRpb2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLWNoZWNrYm94YFxuLy8gICAgICAgICAgICAgICAgICBgdWstbGVnZW5kYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZmllbGRzZXRgXG4vL1xuLy8gU3ViLW9iamVjdHM6ICAgICBgdWstZm9ybS1jdXN0b21gXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1mb3JtLXN0YWNrZWRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1mb3JtLWhvcml6b250YWxgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1mb3JtLWxhYmVsYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZm9ybS1jb250cm9sc2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLWZvcm0taWNvbmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWZvcm0taWNvbi1mbGlwYFxuLy9cbi8vIE1vZGlmaWVyczogICAgICAgYHVrLWZvcm0tc21hbGxgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1mb3JtLWxhcmdlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZm9ybS1kYW5nZXJgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1mb3JtLXN1Y2Nlc3NgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1mb3JtLWJsYW5rYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZm9ybS13aWR0aC14c21hbGxgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1mb3JtLXdpZHRoLXNtYWxsYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZm9ybS13aWR0aC1tZWRpdW1gXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1mb3JtLXdpZHRoLWxhcmdlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZm9ybS1jb250cm9scy10ZXh0YFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBmb3JtLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtY29udHJvbC1oZWlnaHQ7XG5AZm9ybS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9ybS1oZWlnaHQ7XG5AZm9ybS1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgICAgICAxMHB4O1xuQGZvcm0tcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgICAgcm91bmQoQGZvcm0tcGFkZGluZy1ob3Jpem9udGFsICogMC42KTtcblxuQGZvcm0tYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kO1xuQGZvcm0tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1jb2xvcjtcblxuQGZvcm0tZm9jdXMtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgZGFya2VuKEBmb3JtLWJhY2tncm91bmQsIDUlKTtcbkBmb3JtLWZvY3VzLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtY29sb3I7XG5cbkBmb3JtLWRpc2FibGVkLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZDtcbkBmb3JtLWRpc2FibGVkLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtY29sb3I7XG5cbkBmb3JtLXBsYWNlaG9sZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtY29sb3I7XG5cbkBmb3JtLXNtYWxsLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtY29udHJvbC1zbWFsbC1oZWlnaHQ7XG5AZm9ybS1zbWFsbC1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICA4cHg7XG5AZm9ybS1zbWFsbC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICByb3VuZChAZm9ybS1zbWFsbC1wYWRkaW5nLWhvcml6b250YWwgKiAwLjYpO1xuQGZvcm0tc21hbGwtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgQGZvcm0tc21hbGwtaGVpZ2h0O1xuQGZvcm0tc21hbGwtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zbWFsbC1mb250LXNpemU7XG5cbkBmb3JtLWxhcmdlLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtY29udHJvbC1sYXJnZS1oZWlnaHQ7XG5AZm9ybS1sYXJnZS1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAxMnB4O1xuQGZvcm0tbGFyZ2UtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgcm91bmQoQGZvcm0tbGFyZ2UtcGFkZGluZy1ob3Jpem9udGFsICogMC42KTtcbkBmb3JtLWxhcmdlLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3JtLWxhcmdlLWhlaWdodDtcbkBmb3JtLWxhcmdlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbWVkaXVtLWZvbnQtc2l6ZTtcblxuQGZvcm0tZGFuZ2VyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZDtcbkBmb3JtLXN1Y2Nlc3MtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc3VjY2Vzcy1iYWNrZ3JvdW5kO1xuXG5AZm9ybS13aWR0aC14c21hbGw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1MHB4O1xuQGZvcm0td2lkdGgtc21hbGw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMwcHg7XG5AZm9ybS13aWR0aC1tZWRpdW06ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMDBweDtcbkBmb3JtLXdpZHRoLWxhcmdlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwMHB4O1xuXG5AZm9ybS1zZWxlY3QtcGFkZGluZy1yaWdodDogICAgICAgICAgICAgICAgICAgICAyMHB4O1xuQGZvcm0tc2VsZWN0LWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1jb2xvcjtcbkBmb3JtLXNlbGVjdC1vcHRpb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtY29sb3I7XG5AZm9ybS1zZWxlY3QtZGlzYWJsZWQtaWNvbi1jb2xvcjogICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWNvbG9yO1xuXG5AZm9ybS1kYXRhbGlzdC1wYWRkaW5nLXJpZ2h0OiAgICAgICAgICAgICAgICAgICAyMHB4O1xuQGZvcm0tZGF0YWxpc3QtaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1jb2xvcjtcblxuQGZvcm0tcmFkaW8tc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTZweDtcbkBmb3JtLXJhZGlvLW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgIC00cHg7XG5AZm9ybS1yYWRpby1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICBkYXJrZW4oQGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kLCA1JSk7XG5cbkBmb3JtLXJhZGlvLWZvY3VzLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgIGRhcmtlbihAZm9ybS1yYWRpby1iYWNrZ3JvdW5kLCA1JSk7XG5cbkBmb3JtLXJhZGlvLWNoZWNrZWQtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgIEBnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kO1xuQGZvcm0tcmFkaW8tY2hlY2tlZC1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgQGdsb2JhbC1pbnZlcnNlLWNvbG9yO1xuXG5AZm9ybS1yYWRpby1jaGVja2VkLWZvY3VzLWJhY2tncm91bmQ6ICAgICAgICAgICBkYXJrZW4oQGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQsIDEwJSk7XG5cbkBmb3JtLXJhZGlvLWRpc2FibGVkLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZDtcbkBmb3JtLXJhZGlvLWRpc2FibGVkLWljb24tY29sb3I6ICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtY29sb3I7XG5cbkBmb3JtLWxlZ2VuZC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbGFyZ2UtZm9udC1zaXplO1xuQGZvcm0tbGVnZW5kLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgMS40O1xuXG5AZm9ybS1zdGFja2VkLW1hcmdpbi1ib3R0b206ICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNtYWxsLW1hcmdpbjtcblxuQGZvcm0taG9yaXpvbnRhbC1sYWJlbC13aWR0aDogICAgICAgICAgICAgICAgICAgMjAwcHg7XG5AZm9ybS1ob3Jpem9udGFsLWxhYmVsLW1hcmdpbi10b3A6ICAgICAgICAgICAgICA3cHg7XG5AZm9ybS1ob3Jpem9udGFsLWNvbnRyb2xzLW1hcmdpbi1sZWZ0OiAgICAgICAgICAyMTVweDtcbkBmb3JtLWhvcml6b250YWwtY29udHJvbHMtdGV4dC1wYWRkaW5nLXRvcDogICAgIDdweDtcblxuQGZvcm0taWNvbi13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvcm0taGVpZ2h0O1xuQGZvcm0taWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tdXRlZC1jb2xvcjtcbkBmb3JtLWljb24taG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtY29sb3I7XG5cbkBpbnRlcm5hbC1mb3JtLXNlbGVjdC1pbWFnZTogICAgICAgICAgICAgICAgICAgICBcIi4uLy4uL2ltYWdlcy9iYWNrZ3JvdW5kcy9mb3JtLXNlbGVjdC5zdmdcIjtcbkBpbnRlcm5hbC1mb3JtLWRhdGFsaXN0LWltYWdlOiAgICAgICAgICAgICAgICAgICBcIi4uLy4uL2ltYWdlcy9iYWNrZ3JvdW5kcy9mb3JtLWRhdGFsaXN0LnN2Z1wiO1xuQGludGVybmFsLWZvcm0tcmFkaW8taW1hZ2U6ICAgICAgICAgICAgICAgICAgICAgIFwiLi4vLi4vaW1hZ2VzL2JhY2tncm91bmRzL2Zvcm0tcmFkaW8uc3ZnXCI7XG5AaW50ZXJuYWwtZm9ybS1jaGVja2JveC1pbWFnZTogICAgICAgICAgICAgICAgICAgXCIuLi8uLi9pbWFnZXMvYmFja2dyb3VuZHMvZm9ybS1jaGVja2JveC5zdmdcIjtcbkBpbnRlcm5hbC1mb3JtLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtaW1hZ2U6ICAgICBcIi4uLy4uL2ltYWdlcy9iYWNrZ3JvdW5kcy9mb3JtLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUuc3ZnXCI7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEZvcm1cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gRGVmaW5lIGNvbnNpc3RlbnQgYm94IHNpemluZy5cbiAqICAgIERlZmF1bHQgaXMgYGNvbnRlbnQtYm94YCB3aXRoIGZvbGxvd2luZyBleGNlcHRpb25zIHNldCB0byBgYm9yZGVyLWJveGBcbiAqICAgIGBzZWxlY3RgLCBgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdYCBhbmQgYGlucHV0W3R5cGU9XCJyYWRpb1wiXWBcbiAqICAgIGBpbnB1dFt0eXBlPVwic2VhcmNoXCJdYCBpbiBDaHJvbWUsIFNhZmFyaSBhbmQgT3BlcmFcbiAqICAgIGBpbnB1dFt0eXBlPVwiY29sb3JcIl1gIGluIEZpcmVmb3hcbiAqIDIuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveC9JRSBhbmQgQ2hyb21lL1NhZmFyaS9PcGVyYS5cbiAqIDMuIFJlbW92ZSBgYm9yZGVyLXJhZGl1c2AgaW4gaU9TLlxuICogNC4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbi51ay1pbnB1dCxcbi51ay1zZWxlY3QsXG4udWstdGV4dGFyZWEsXG4udWstcmFkaW8sXG4udWstY2hlY2tib3gge1xuICAgIC8qIDEgKi9cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC8qIDIgKi9cbiAgICBtYXJnaW46IDA7XG4gICAgLyogMyAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgLyogNCAqL1xuICAgIGZvbnQ6IGluaGVyaXQ7XG59XG5cbi8qXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5cbi51ay1pbnB1dCB7IG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuLnVrLXNlbGVjdCB7IHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi8qXG4gKiAxLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBhbGwgYnJvd3NlcnNcbiAqIDIuIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgYW5kIHVzZSBgYm9sZGAgaW5zdGVhZC5cbiAqIE5PVEU6IEJvdGggZGVjbGFyYXRpb25zIGRvbid0IHdvcmsgaW4gQ2hyb21lLCBTYWZhcmkgYW5kIE9wZXJhLlxuICovXG5cbi51ay1zZWxlY3Qgb3B0Z3JvdXAge1xuICAgIC8qIDEgKi9cbiAgICBmb250OiBpbmhlcml0O1xuICAgIC8qIDIgKi9cbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLypcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG5cbi51ay10ZXh0YXJlYSB7IG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgYW5kIGNhbmNlbCBidXR0b25zIGluIENocm9tZSBvbiBPUyBYIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xuXG4udWstaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbi51ay1pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHsgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cblxuLypcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG4udWstaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbi51ay1pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHsgaGVpZ2h0OiBhdXRvOyB9XG5cbi8qXG4gKiBSZW1vdmVzIHBsYWNlaG9sZGVyIHRyYW5zcGFyZW5jeSBpbiBGaXJlZm94LlxuICovXG5cbi51ay1pbnB1dDo6LW1vei1wbGFjZWhvbGRlcixcbi51ay10ZXh0YXJlYTo6LW1vei1wbGFjZWhvbGRlciB7IG9wYWNpdHk6IDE7IH1cblxuLypcbiAqIEltcHJvdmVzIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBmb3IgY2xpY2thYmxlIGVsZW1lbnRzXG4gKi9cblxuLnVrLXJhZGlvOm5vdCg6ZGlzYWJsZWQpLFxuLnVrLWNoZWNrYm94Om5vdCg6ZGlzYWJsZWQpIHsgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi8qXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuLnVrLWZpZWxkc2V0IHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cblxuLyogSW5wdXQsIHNlbGVjdCBhbmQgdGV4dGFyZWFcbiAqIEFsbG93ZWQ6IGB0ZXh0YCwgYHBhc3N3b3JkYCwgYGRhdGV0aW1lYCwgYGRhdGV0aW1lLWxvY2FsYCwgYGRhdGVgLCAgYG1vbnRoYCxcbiAgICAgICAgICAgIGB0aW1lYCwgYHdlZWtgLCBgbnVtYmVyYCwgYGVtYWlsYCwgYHVybGAsIGBzZWFyY2hgLCBgdGVsYCwgYGNvbG9yYFxuICogRGlzYWxsb3dlZDogYHJhbmdlYCwgYHJhZGlvYCwgYGNoZWNrYm94YCwgYGZpbGVgLCBgc3VibWl0YCwgYHJlc2V0YCBhbmQgYGltYWdlYFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBSZW1vdmUgZGVmYXVsdCBzdHlsZSBpbiBpT1MuXG4gKi9cblxuLnVrLWlucHV0LFxuLnVrLXRleHRhcmVhIHsgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qXG4gKiAxLiBQcmV2ZW50IGNvbnRlbnQgb3ZlcmZsb3cgaWYgYSBmaXhlZCB3aWR0aCBpcyB1c2VkXG4gKiAyLiBUYWtlIHRoZSBmdWxsIHdpZHRoXG4gKiAzLiBSZXNldCBkZWZhdWx0XG4gKiA0LiBTdHlsZVxuICovXG5cbi51ay1pbnB1dCxcbi51ay1zZWxlY3QsXG4udWstdGV4dGFyZWEge1xuICAgIC8qIDEgKi9cbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgLyogMiAqL1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC8qIDMgKi9cbiAgICBib3JkZXI6IDAgbm9uZTtcbiAgICAvKiA0ICovXG4gICAgcGFkZGluZzogMCBAZm9ybS1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgYmFja2dyb3VuZDogQGZvcm0tYmFja2dyb3VuZDtcbiAgICBjb2xvcjogQGZvcm0tY29sb3I7XG4gICAgLmhvb2stZm9ybSgpO1xufVxuXG4vKlxuICogU2luZ2xlLWxpbmVcbiAqIDEuIEFsbG93IGFueSBlbGVtZW50IHRvIGxvb2sgbGlrZSBhbiBgaW5wdXRgIG9yIGBzZWxlY3RgIGVsZW1lbnRcbiAqIDIuIE1ha2Ugc3VyZSBsaW5lLWhlaWdodCBpcyBub3QgbGFyZ2VyIHRoYW4gaGVpZ2h0XG4gKiAgICBBbHNvIG5lZWRlZCB0byBjZW50ZXIgdGhlIHRleHQgdmVydGljYWxseVxuICovXG5cbi51ay1pbnB1dCxcbi51ay1zZWxlY3Q6bm90KFttdWx0aXBsZV0pOm5vdChbc2l6ZV0pIHtcbiAgICBoZWlnaHQ6IEBmb3JtLWhlaWdodDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIC8qIDEgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgLmhvb2stZm9ybS1zaW5nbGUtbGluZSgpO1xufVxuXG4vKiAyICovXG4udWstaW5wdXQ6bm90KGlucHV0KSxcbi51ay1zZWxlY3Q6bm90KHNlbGVjdCkgeyBsaW5lLWhlaWdodDogQGZvcm0tbGluZS1oZWlnaHQ7IH1cblxuLypcbiAqIE11bHRpLWxpbmVcbiAqL1xuXG4udWstc2VsZWN0W211bHRpcGxlXSxcbi51ay1zZWxlY3Rbc2l6ZV0sXG4udWstdGV4dGFyZWEge1xuICAgIHBhZGRpbmctdG9wOiBAZm9ybS1wYWRkaW5nLXZlcnRpY2FsO1xuICAgIHBhZGRpbmctYm90dG9tOiBAZm9ybS1wYWRkaW5nLXZlcnRpY2FsO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgLmhvb2stZm9ybS1tdWx0aS1saW5lKCk7XG59XG5cbi51ay1zZWxlY3RbbXVsdGlwbGVdLFxuLnVrLXNlbGVjdFtzaXplXSB7IHJlc2l6ZTogdmVydGljYWw7IH1cblxuLyogRm9jdXMgKi9cbi51ay1pbnB1dDpmb2N1cyxcbi51ay1zZWxlY3Q6Zm9jdXMsXG4udWstdGV4dGFyZWE6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGZvcm0tZm9jdXMtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogQGZvcm0tZm9jdXMtY29sb3I7XG4gICAgLmhvb2stZm9ybS1mb2N1cygpO1xufVxuXG4vKiBEaXNhYmxlZCAqL1xuLnVrLWlucHV0OmRpc2FibGVkLFxuLnVrLXNlbGVjdDpkaXNhYmxlZCxcbi51ay10ZXh0YXJlYTpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGZvcm0tZGlzYWJsZWQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogQGZvcm0tZGlzYWJsZWQtY29sb3I7XG4gICAgLmhvb2stZm9ybS1kaXNhYmxlZCgpO1xufVxuXG4vKlxuICogUGxhY2Vob2xkZXJcbiAqL1xuXG4udWstaW5wdXQ6OnBsYWNlaG9sZGVyIHsgY29sb3I6IEBmb3JtLXBsYWNlaG9sZGVyLWNvbG9yOyB9XG5cbi51ay10ZXh0YXJlYTo6cGxhY2Vob2xkZXIgeyBjb2xvcjogQGZvcm0tcGxhY2Vob2xkZXItY29sb3I7IH1cblxuXG4vKiBTdHlsZSBtb2RpZmllciAoYHVrLWlucHV0YCwgYHVrLXNlbGVjdGAgYW5kIGB1ay10ZXh0YXJlYWApXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFNtYWxsXG4gKi9cblxuLnVrLWZvcm0tc21hbGwgeyBmb250LXNpemU6IEBmb3JtLXNtYWxsLWZvbnQtc2l6ZTsgfVxuXG4vKiBTaW5nbGUtbGluZSAqL1xuLnVrLWZvcm0tc21hbGw6bm90KHRleHRhcmVhKTpub3QoW211bHRpcGxlXSk6bm90KFtzaXplXSkge1xuICAgIGhlaWdodDogQGZvcm0tc21hbGwtaGVpZ2h0O1xuICAgIHBhZGRpbmctbGVmdDogQGZvcm0tc21hbGwtcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIHBhZGRpbmctcmlnaHQ6IEBmb3JtLXNtYWxsLXBhZGRpbmctaG9yaXpvbnRhbDtcbn1cblxuLyogTXVsdGktbGluZSAqL1xudGV4dGFyZWEudWstZm9ybS1zbWFsbCxcblttdWx0aXBsZV0udWstZm9ybS1zbWFsbCxcbltzaXplXS51ay1mb3JtLXNtYWxsIHsgcGFkZGluZzogQGZvcm0tc21hbGwtcGFkZGluZy12ZXJ0aWNhbCBAZm9ybS1zbWFsbC1wYWRkaW5nLWhvcml6b250YWw7IH1cblxuLnVrLWZvcm0tc21hbGw6bm90KHNlbGVjdCk6bm90KGlucHV0KTpub3QodGV4dGFyZWEpIHsgbGluZS1oZWlnaHQ6IEBmb3JtLXNtYWxsLWxpbmUtaGVpZ2h0OyB9XG5cbi8qXG4gKiBMYXJnZVxuICovXG5cbi51ay1mb3JtLWxhcmdlIHsgZm9udC1zaXplOiBAZm9ybS1sYXJnZS1mb250LXNpemU7IH1cblxuLyogU2luZ2xlLWxpbmUgKi9cbi51ay1mb3JtLWxhcmdlOm5vdCh0ZXh0YXJlYSk6bm90KFttdWx0aXBsZV0pOm5vdChbc2l6ZV0pIHtcbiAgICBoZWlnaHQ6IEBmb3JtLWxhcmdlLWhlaWdodDtcbiAgICBwYWRkaW5nLWxlZnQ6IEBmb3JtLWxhcmdlLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBwYWRkaW5nLXJpZ2h0OiBAZm9ybS1sYXJnZS1wYWRkaW5nLWhvcml6b250YWw7XG59XG5cbi8qIE11bHRpLWxpbmUgKi9cbnRleHRhcmVhLnVrLWZvcm0tbGFyZ2UsXG5bbXVsdGlwbGVdLnVrLWZvcm0tbGFyZ2UsXG5bc2l6ZV0udWstZm9ybS1sYXJnZSB7IHBhZGRpbmc6IEBmb3JtLWxhcmdlLXBhZGRpbmctdmVydGljYWwgQGZvcm0tbGFyZ2UtcGFkZGluZy1ob3Jpem9udGFsOyB9XG5cbi51ay1mb3JtLWxhcmdlOm5vdChzZWxlY3QpOm5vdChpbnB1dCk6bm90KHRleHRhcmVhKSB7IGxpbmUtaGVpZ2h0OiBAZm9ybS1sYXJnZS1saW5lLWhlaWdodDsgfVxuXG5cbi8qIFN0eWxlIG1vZGlmaWVyIChgdWstaW5wdXRgLCBgdWstc2VsZWN0YCBhbmQgYHVrLXRleHRhcmVhYClcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogRXJyb3JcbiAqL1xuXG4udWstZm9ybS1kYW5nZXIsXG4udWstZm9ybS1kYW5nZXI6Zm9jdXMge1xuICAgIGNvbG9yOiBAZm9ybS1kYW5nZXItY29sb3I7XG4gICAgLmhvb2stZm9ybS1kYW5nZXIoKTtcbn1cblxuLypcbiAqIFN1Y2Nlc3NcbiAqL1xuXG4udWstZm9ybS1zdWNjZXNzLFxuLnVrLWZvcm0tc3VjY2Vzczpmb2N1cyAge1xuICAgIGNvbG9yOiBAZm9ybS1zdWNjZXNzLWNvbG9yO1xuICAgIC5ob29rLWZvcm0tc3VjY2VzcygpO1xufVxuXG4vKlxuICogQmxhbmtcbiAqL1xuXG4udWstZm9ybS1ibGFuayB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAuaG9vay1mb3JtLWJsYW5rKCk7XG59XG5cbi51ay1mb3JtLWJsYW5rOmZvY3VzIHtcbiAgICAuaG9vay1mb3JtLWJsYW5rLWZvY3VzKCk7XG59XG5cblxuLyogV2lkdGggbW9kaWZpZXJzIChgdWstaW5wdXRgLCBgdWstc2VsZWN0YCBhbmQgYHVrLXRleHRhcmVhYClcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogRml4ZWQgd2lkdGhzXG4gKiBEaWZmZXJlbnQgd2lkdGhzIGZvciBtaW5pIHNpemVkIGBpbnB1dGAgYW5kIGBzZWxlY3RgIGVsZW1lbnRzXG4gKi9cblxuaW5wdXQudWstZm9ybS13aWR0aC14c21hbGwgeyB3aWR0aDogQGZvcm0td2lkdGgteHNtYWxsOyB9XG5cbnNlbGVjdC51ay1mb3JtLXdpZHRoLXhzbWFsbCB7IHdpZHRoOiAoQGZvcm0td2lkdGgteHNtYWxsICsgMjVweCk7IH1cblxuLnVrLWZvcm0td2lkdGgtc21hbGwgeyB3aWR0aDogQGZvcm0td2lkdGgtc21hbGw7IH1cblxuLnVrLWZvcm0td2lkdGgtbWVkaXVtIHsgd2lkdGg6IEBmb3JtLXdpZHRoLW1lZGl1bTsgfVxuXG4udWstZm9ybS13aWR0aC1sYXJnZSB7IHdpZHRoOiBAZm9ybS13aWR0aC1sYXJnZTsgfVxuXG5cbi8qIFNlbGVjdFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBSZW1vdmUgZGVmYXVsdCBzdHlsZS4gQWxzbyB3b3JrcyBpbiBGaXJlZm94XG4gKiAyLiBTdHlsZVxuICogMy4gU2V0IGBjb2xvcmAgZm9yIG9wdGlvbnMgaW4gdGhlIHNlbGVjdCBkcm9wZG93biwgYmVjYXVzZSB0aGUgaW5oZXJpdGVkIGBjb2xvcmAgbWlnaHQgYmUgdG9vIGxpZ2h0LlxuICovXG5cbi51ay1zZWxlY3Q6bm90KFttdWx0aXBsZV0pOm5vdChbc2l6ZV0pIHtcbiAgICAvKiAxICovXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAvKiAyICovXG4gICAgcGFkZGluZy1yaWdodDogQGZvcm0tc2VsZWN0LXBhZGRpbmctcmlnaHQ7XG4gICAgLnN2Zy1maWxsKEBpbnRlcm5hbC1mb3JtLXNlbGVjdC1pbWFnZSwgXCIjMDAwXCIsIEBmb3JtLXNlbGVjdC1pY29uLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlO1xufVxuXG4vKiAzICovXG4udWstc2VsZWN0Om5vdChbbXVsdGlwbGVdKTpub3QoW3NpemVdKSBvcHRpb24geyBjb2xvcjogQGZvcm0tc2VsZWN0LW9wdGlvbi1jb2xvcjsgfVxuXG4vKlxuICogRGlzYWJsZWRcbiAqL1xuXG4udWstc2VsZWN0Om5vdChbbXVsdGlwbGVdKTpub3QoW3NpemVdKTpkaXNhYmxlZCB7IC5zdmctZmlsbChAaW50ZXJuYWwtZm9ybS1zZWxlY3QtaW1hZ2UsIFwiIzAwMFwiLCBAZm9ybS1zZWxlY3QtZGlzYWJsZWQtaWNvbi1jb2xvcik7IH1cblxuXG4vKiBEYXRhbGlzdFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBSZW1vdmUgZGVmYXVsdCBzdHlsZSBpbiBDaHJvbWVcbiAqL1xuXG4gLnVrLWlucHV0W2xpc3RdIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiBAZm9ybS1kYXRhbGlzdC1wYWRkaW5nLXJpZ2h0O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA1MCU7XG59XG5cbi51ay1pbnB1dFtsaXN0XTpob3Zlcixcbi51ay1pbnB1dFtsaXN0XTpmb2N1cyB7IC5zdmctZmlsbChAaW50ZXJuYWwtZm9ybS1kYXRhbGlzdC1pbWFnZSwgXCIjMDAwXCIsIEBmb3JtLWRhdGFsaXN0LWljb24tY29sb3IpOyB9XG5cbi8qIDEgKi9cbi51ay1pbnB1dFtsaXN0XTo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cblxuLyogUmFkaW8gYW5kIGNoZWNrYm94XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFN0eWxlXG4gKiAyLiBNYWtlIGJveCBtb3JlIHJvYnVzdCBzbyBpdCBjbGlwcyB0aGUgY2hpbGQgZWxlbWVudFxuICogMy4gVmVydGljYWwgYWxpZ25tZW50XG4gKiA0LiBSZW1vdmUgZGVmYXVsdCBzdHlsZVxuICogNS4gRml4IGJsYWNrIGJhY2tncm91bmQgb24gaU9TXG4gKiA2LiBDZW50ZXIgaWNvbnNcbiAqL1xuXG4udWstcmFkaW8sXG4udWstY2hlY2tib3gge1xuICAgIC8qIDEgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiBAZm9ybS1yYWRpby1zaXplO1xuICAgIHdpZHRoOiBAZm9ybS1yYWRpby1zaXplO1xuICAgIC8qIDIgKi9cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC8qIDMgKi9cbiAgICBtYXJnaW4tdG9wOiBAZm9ybS1yYWRpby1tYXJnaW4tdG9wO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgLyogNCAqL1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLyogNSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBmb3JtLXJhZGlvLWJhY2tncm91bmQ7XG4gICAgLyogNiAqL1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICAuaG9vay1mb3JtLXJhZGlvKCk7XG59XG5cbi51ay1yYWRpbyB7IGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuXG4vKiBGb2N1cyAqL1xuLnVrLXJhZGlvOmZvY3VzLFxuLnVrLWNoZWNrYm94OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAZm9ybS1yYWRpby1mb2N1cy1iYWNrZ3JvdW5kO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgLmhvb2stZm9ybS1yYWRpby1mb2N1cygpO1xufVxuXG4vKlxuICogQ2hlY2tlZFxuICovXG5cbi51ay1yYWRpbzpjaGVja2VkLFxuLnVrLWNoZWNrYm94OmNoZWNrZWQsXG4udWstY2hlY2tib3g6aW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGZvcm0tcmFkaW8tY2hlY2tlZC1iYWNrZ3JvdW5kO1xuICAgIC5ob29rLWZvcm0tcmFkaW8tY2hlY2tlZCgpO1xufVxuXG4vKiBGb2N1cyAqL1xuLnVrLXJhZGlvOmNoZWNrZWQ6Zm9jdXMsXG4udWstY2hlY2tib3g6Y2hlY2tlZDpmb2N1cyxcbi51ay1jaGVja2JveDppbmRldGVybWluYXRlOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAZm9ybS1yYWRpby1jaGVja2VkLWZvY3VzLWJhY2tncm91bmQ7XG4gICAgLmhvb2stZm9ybS1yYWRpby1jaGVja2VkLWZvY3VzKCk7XG59XG5cbi8qXG4gKiBJY29uc1xuICovXG5cbi51ay1yYWRpbzpjaGVja2VkIHsgLnN2Zy1maWxsKEBpbnRlcm5hbC1mb3JtLXJhZGlvLWltYWdlLCBcIiMwMDBcIiwgQGZvcm0tcmFkaW8tY2hlY2tlZC1pY29uLWNvbG9yKTsgfVxuLnVrLWNoZWNrYm94OmNoZWNrZWQgeyAuc3ZnLWZpbGwoQGludGVybmFsLWZvcm0tY2hlY2tib3gtaW1hZ2UsIFwiIzAwMFwiLCBAZm9ybS1yYWRpby1jaGVja2VkLWljb24tY29sb3IpOyB9XG4udWstY2hlY2tib3g6aW5kZXRlcm1pbmF0ZSB7IC5zdmctZmlsbChAaW50ZXJuYWwtZm9ybS1jaGVja2JveC1pbmRldGVybWluYXRlLWltYWdlLCBcIiMwMDBcIiwgQGZvcm0tcmFkaW8tY2hlY2tlZC1pY29uLWNvbG9yKTsgfVxuXG4vKlxuICogRGlzYWJsZWRcbiAqL1xuXG4udWstcmFkaW86ZGlzYWJsZWQsXG4udWstY2hlY2tib3g6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBmb3JtLXJhZGlvLWRpc2FibGVkLWJhY2tncm91bmQ7XG4gICAgLmhvb2stZm9ybS1yYWRpby1kaXNhYmxlZCgpO1xufVxuXG4udWstcmFkaW86ZGlzYWJsZWQ6Y2hlY2tlZCB7IC5zdmctZmlsbChAaW50ZXJuYWwtZm9ybS1yYWRpby1pbWFnZSwgXCIjMDAwXCIsIEBmb3JtLXJhZGlvLWRpc2FibGVkLWljb24tY29sb3IpOyB9XG4udWstY2hlY2tib3g6ZGlzYWJsZWQ6Y2hlY2tlZCB7IC5zdmctZmlsbChAaW50ZXJuYWwtZm9ybS1jaGVja2JveC1pbWFnZSwgXCIjMDAwXCIsIEBmb3JtLXJhZGlvLWRpc2FibGVkLWljb24tY29sb3IpOyB9XG4udWstY2hlY2tib3g6ZGlzYWJsZWQ6aW5kZXRlcm1pbmF0ZSB7IC5zdmctZmlsbChAaW50ZXJuYWwtZm9ybS1jaGVja2JveC1pbmRldGVybWluYXRlLWltYWdlLCBcIiMwMDBcIiwgQGZvcm0tcmFkaW8tZGlzYWJsZWQtaWNvbi1jb2xvcik7IH1cblxuXG4vKiBMZWdlbmRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogTGVnZW5kXG4gKiAxLiBCZWhhdmUgbGlrZSBibG9jayBlbGVtZW50XG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKiA0LiBTdHlsZVxuICovXG5cbi51ay1sZWdlbmQge1xuICAgIC8qIDEgKi9cbiAgICB3aWR0aDogMTAwJTtcbiAgICAvKiAyICovXG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgLyogMyAqL1xuICAgIHBhZGRpbmc6IDA7XG4gICAgLyogNCAqL1xuICAgIGZvbnQtc2l6ZTogQGZvcm0tbGVnZW5kLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogQGZvcm0tbGVnZW5kLWxpbmUtaGVpZ2h0O1xuICAgIC5ob29rLWZvcm0tbGVnZW5kKCk7XG59XG5cblxuLyogQ3VzdG9tIGNvbnRyb2xzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIENvbnRhaW5lciBmaXRzIGl0cyBjb250ZW50XG4gKiAyLiBDcmVhdGUgcG9zaXRpb24gY29udGV4dFxuICogMy4gUHJldmVudCBjb250ZW50IG92ZXJmbG93XG4gKiA0LiBCZWhhdmUgbGlrZSBtb3N0IGlubGluZS1ibG9jayBlbGVtZW50c1xuICovXG5cbi51ay1mb3JtLWN1c3RvbSB7XG4gICAgLyogMSAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAvKiAyICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC8qIDMgKi9cbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgLyogNCAqL1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qXG4gKiAxLiBQb3NpdGlvbiBhbmQgcmVzaXplIHRoZSBmb3JtIGNvbnRyb2wgdG8gYWx3YXlzIGNvdmVyIGl0cyBjb250YWluZXJcbiAqIDIuIFJlcXVpcmVkIGZvciBGaXJlZm94IGZvciBwb3NpdGlvbmluZyB0byB0aGUgbGVmdFxuICogMy4gUmVxdWlyZWQgZm9yIFdlYmtpdCB0byBtYWtlIGBoZWlnaHRgIHdvcmtcbiAqIDQuIEhpZGUgY29udHJvbGUgYW5kIHNob3cgY3Vyc29yXG4gKiA1LiBOZWVkZWQgZm9yIHRoZSBjdXJzb3JcbiAqIDYuIENsaXAgaGVpZ2h0IGNhdXNlZCBieSA1LiBOZWVkZWQgZm9yIFdlYmtpdCBvbmx5XG4gKi9cblxuLnVrLWZvcm0tY3VzdG9tIHNlbGVjdCxcbi51ay1mb3JtLWN1c3RvbSBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gICAgLyogMSAqL1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgei1pbmRleDogMTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgLyogMiAqL1xuICAgIGxlZnQ6IDA7XG4gICAgLyogMyAqL1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAvKiA0ICovXG4gICAgb3BhY2l0eTogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi51ay1mb3JtLWN1c3RvbSBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gICAgLyogNSAqL1xuICAgIGZvbnQtc2l6ZTogNTAwcHg7XG4gICAgLyogNiAqL1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cblxuLyogTGFiZWxcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstZm9ybS1sYWJlbCB7XG4gICAgLmhvb2stZm9ybS1sYWJlbCgpO1xufVxuXG5cbi8qIExheW91dFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBTdGFja2VkXG4gKi9cblxuLnVrLWZvcm0tc3RhY2tlZCAudWstZm9ybS1sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogQGZvcm0tc3RhY2tlZC1tYXJnaW4tYm90dG9tO1xuICAgIC5ob29rLWZvcm0tc3RhY2tlZC1sYWJlbCgpO1xufVxuXG4vKlxuICogSG9yaXpvbnRhbFxuICovXG5cbi8qIFRhYmxldCBwb3J0cmFpdCBhbmQgc21hbGxlciAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IEBicmVha3BvaW50LXNtYWxsLW1heCkge1xuXG4gICAgLyogQmVoYXZlIGxpa2UgYHVrLWZvcm0tc3RhY2tlZGAgKi9cbiAgICAudWstZm9ybS1ob3Jpem9udGFsIC51ay1mb3JtLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IEBmb3JtLXN0YWNrZWQtbWFyZ2luLWJvdHRvbTtcbiAgICAgICAgLmhvb2stZm9ybS1zdGFja2VkLWxhYmVsKCk7XG4gICAgfVxuXG59XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LW1lZGl1bSkge1xuXG4gICAgLnVrLWZvcm0taG9yaXpvbnRhbCAudWstZm9ybS1sYWJlbCB7XG4gICAgICAgIHdpZHRoOiBAZm9ybS1ob3Jpem9udGFsLWxhYmVsLXdpZHRoO1xuICAgICAgICBtYXJnaW4tdG9wOiBAZm9ybS1ob3Jpem9udGFsLWxhYmVsLW1hcmdpbi10b3A7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAuaG9vay1mb3JtLWhvcml6b250YWwtbGFiZWwoKTtcbiAgICB9XG5cbiAgICAudWstZm9ybS1ob3Jpem9udGFsIC51ay1mb3JtLWNvbnRyb2xzIHsgbWFyZ2luLWxlZnQ6IEBmb3JtLWhvcml6b250YWwtY29udHJvbHMtbWFyZ2luLWxlZnQ7IH1cblxuICAgIC8qIEJldHRlciB2ZXJ0aWNhbCBhbGlnbm1lbnQgaWYgY29udHJvbHMgYXJlIGNoZWNrYm94ZXMgYW5kIHJhZGlvIGJ1dHRvbnMgd2l0aCB0ZXh0ICovXG4gICAgLnVrLWZvcm0taG9yaXpvbnRhbCAudWstZm9ybS1jb250cm9scy10ZXh0IHsgcGFkZGluZy10b3A6IEBmb3JtLWhvcml6b250YWwtY29udHJvbHMtdGV4dC1wYWRkaW5nLXRvcDsgfVxuXG59XG5cblxuLyogSWNvbnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gU2V0IHBvc2l0aW9uXG4gKiAyLiBTZXQgd2lkdGhcbiAqIDMuIENlbnRlciBpY29uIHZlcnRpY2FsbHkgYW5kIGhvcml6b250YWxseVxuICogNC4gU3R5bGVcbiAqL1xuXG4udWstZm9ybS1pY29uIHtcbiAgICAvKiAxICovXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICAvKiAyICovXG4gICAgd2lkdGg6IEBmb3JtLWljb24td2lkdGg7XG4gICAgLyogMyAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgLyogNCAqL1xuICAgIGNvbG9yOiBAZm9ybS1pY29uLWNvbG9yO1xufVxuXG4vKlxuICogUmVxdWlyZWQgZm9yIGBhYC5cbiAqL1xuXG4udWstZm9ybS1pY29uOmhvdmVyIHsgY29sb3I6IEBmb3JtLWljb24taG92ZXItY29sb3I7IH1cblxuLypcbiAqIE1ha2UgYGlucHV0YCBlbGVtZW50IGNsaWNrYWJsZSB0aHJvdWdoIGljb24sIGUuZy4gaWYgaXQncyBhIGBzcGFuYFxuICovXG5cbi51ay1mb3JtLWljb246bm90KGEpOm5vdChidXR0b24pOm5vdChpbnB1dCkgeyBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4vKlxuICogSW5wdXQgcGFkZGluZ1xuICovXG5cbi51ay1mb3JtLWljb246bm90KC51ay1mb3JtLWljb24tZmxpcCkgfiAudWstaW5wdXQgeyBwYWRkaW5nLWxlZnQ6IEBmb3JtLWljb24td2lkdGggIWltcG9ydGFudDsgfVxuXG4vKlxuICogUG9zaXRpb24gbW9kaWZpZXJcbiAqL1xuXG4udWstZm9ybS1pY29uLWZsaXAge1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87XG59XG5cbi51ay1mb3JtLWljb24tZmxpcCB+IC51ay1pbnB1dCB7IHBhZGRpbmctcmlnaHQ6IEBmb3JtLWljb24td2lkdGggIWltcG9ydGFudDsgfVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stZm9ybS1taXNjKCk7XG5cbi5ob29rLWZvcm0oKSB7fVxuLmhvb2stZm9ybS1zaW5nbGUtbGluZSgpIHt9XG4uaG9vay1mb3JtLW11bHRpLWxpbmUoKSB7fVxuLmhvb2stZm9ybS1mb2N1cygpIHt9XG4uaG9vay1mb3JtLWRpc2FibGVkKCkge31cbi5ob29rLWZvcm0tZGFuZ2VyKCkge31cbi5ob29rLWZvcm0tc3VjY2VzcygpIHt9XG4uaG9vay1mb3JtLWJsYW5rKCkge31cbi5ob29rLWZvcm0tYmxhbmstZm9jdXMoKSB7fVxuLmhvb2stZm9ybS1yYWRpbygpIHt9XG4uaG9vay1mb3JtLXJhZGlvLWZvY3VzKCkge31cbi5ob29rLWZvcm0tcmFkaW8tY2hlY2tlZCgpIHt9XG4uaG9vay1mb3JtLXJhZGlvLWNoZWNrZWQtZm9jdXMoKSB7fVxuLmhvb2stZm9ybS1yYWRpby1kaXNhYmxlZCgpIHt9XG4uaG9vay1mb3JtLWxlZ2VuZCgpIHt9XG4uaG9vay1mb3JtLWxhYmVsKCkge31cbi5ob29rLWZvcm0tc3RhY2tlZC1sYWJlbCgpIHt9XG4uaG9vay1mb3JtLWhvcml6b250YWwtbGFiZWwoKSB7fVxuLmhvb2stZm9ybS1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGludmVyc2UtZm9ybS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtbXV0ZWQtYmFja2dyb3VuZDtcbkBpbnZlcnNlLWZvcm0tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWNvbG9yO1xuQGludmVyc2UtZm9ybS1mb2N1cy1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICBmYWRlaW4oQGludmVyc2UtZm9ybS1iYWNrZ3JvdW5kLCA1JSk7XG5AaW52ZXJzZS1mb3JtLWZvY3VzLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1jb2xvcjtcbkBpbnZlcnNlLWZvcm0tcGxhY2Vob2xkZXItY29sb3I6ICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yO1xuXG5AaW52ZXJzZS1mb3JtLXNlbGVjdC1pY29uLWNvbG9yOiAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1jb2xvcjtcblxuQGludmVyc2UtZm9ybS1kYXRhbGlzdC1pY29uLWNvbG9yOiAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtY29sb3I7XG5cbkBpbnZlcnNlLWZvcm0tcmFkaW8tYmFja2dyb3VuZDogICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLW11dGVkLWJhY2tncm91bmQ7XG5cbkBpbnZlcnNlLWZvcm0tcmFkaW8tZm9jdXMtYmFja2dyb3VuZDogICAgICAgICAgZmFkZWluKEBpbnZlcnNlLWZvcm0tcmFkaW8tYmFja2dyb3VuZCwgNSUpO1xuXG5AaW52ZXJzZS1mb3JtLXJhZGlvLWNoZWNrZWQtYmFja2dyb3VuZDogICAgICAgIEBpbnZlcnNlLWdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQ7XG5AaW52ZXJzZS1mb3JtLXJhZGlvLWNoZWNrZWQtaWNvbi1jb2xvcjogICAgICAgIEBpbnZlcnNlLWdsb2JhbC1pbnZlcnNlLWNvbG9yO1xuXG5AaW52ZXJzZS1mb3JtLXJhZGlvLWNoZWNrZWQtZm9jdXMtYmFja2dyb3VuZDogIGZhZGVpbihAaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kLCAxMCUpO1xuXG5AaW52ZXJzZS1mb3JtLWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvcjtcbkBpbnZlcnNlLWZvcm0taWNvbi1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWNvbG9yO1xuXG4uaG9vay1pbnZlcnNlKCkge1xuXG4gICAgLnVrLWlucHV0LFxuICAgIC51ay1zZWxlY3QsXG4gICAgLnVrLXRleHRhcmVhIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtZm9ybS1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogQGludmVyc2UtZm9ybS1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICAgICAgLmhvb2staW52ZXJzZS1mb3JtKCk7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1mb3JtLWZvY3VzLWJhY2tncm91bmQ7XG4gICAgICAgICAgICBjb2xvcjogQGludmVyc2UtZm9ybS1mb2N1cy1jb2xvcjtcbiAgICAgICAgICAgIC5ob29rLWludmVyc2UtZm9ybS1mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBQbGFjZWhvbGRlclxuICAgIC8vXG5cbiAgICAudWstaW5wdXQ6OnBsYWNlaG9sZGVyIHsgY29sb3I6IEBpbnZlcnNlLWZvcm0tcGxhY2Vob2xkZXItY29sb3I7IH1cblxuICAgIC51ay10ZXh0YXJlYTo6cGxhY2Vob2xkZXIgeyBjb2xvcjogQGludmVyc2UtZm9ybS1wbGFjZWhvbGRlci1jb2xvcjsgfVxuXG4gICAgLy9cbiAgICAvLyBTZWxlY3RcbiAgICAvL1xuXG4gICAgLnVrLXNlbGVjdDpub3QoW211bHRpcGxlXSk6bm90KFtzaXplXSkgeyAuc3ZnLWZpbGwoQGludGVybmFsLWZvcm0tc2VsZWN0LWltYWdlLCBcIiMwMDBcIiwgQGludmVyc2UtZm9ybS1zZWxlY3QtaWNvbi1jb2xvcik7IH1cblxuICAgIC8vXG4gICAgLy8gRGF0YWxpc3RcbiAgICAvL1xuXG4gICAgLnVrLWlucHV0W2xpc3RdOmhvdmVyLFxuICAgIC51ay1pbnB1dFtsaXN0XTpmb2N1cyB7IC5zdmctZmlsbChAaW50ZXJuYWwtZm9ybS1kYXRhbGlzdC1pbWFnZSwgXCIjMDAwXCIsIEBpbnZlcnNlLWZvcm0tZGF0YWxpc3QtaWNvbi1jb2xvcik7IH1cblxuICAgIC8vXG4gICAgLy8gUmFkaW8gYW5kIGNoZWNrYm94XG4gICAgLy9cblxuICAgIC51ay1yYWRpbyxcbiAgICAudWstY2hlY2tib3gge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1mb3JtLXJhZGlvLWJhY2tncm91bmQ7XG4gICAgICAgIC5ob29rLWludmVyc2UtZm9ybS1yYWRpbygpO1xuICAgIH1cblxuICAgIC8vIEZvY3VzXG4gICAgLnVrLXJhZGlvOmZvY3VzLFxuICAgIC51ay1jaGVja2JveDpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLWZvcm0tcmFkaW8tZm9jdXMtYmFja2dyb3VuZDtcbiAgICAgICAgLmhvb2staW52ZXJzZS1mb3JtLXJhZGlvLWZvY3VzKCk7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2tlZFxuICAgIC51ay1yYWRpbzpjaGVja2VkLFxuICAgIC51ay1jaGVja2JveDpjaGVja2VkLFxuICAgIC51ay1jaGVja2JveDppbmRldGVybWluYXRlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtZm9ybS1yYWRpby1jaGVja2VkLWJhY2tncm91bmQ7XG4gICAgICAgIC5ob29rLWludmVyc2UtZm9ybS1yYWRpby1jaGVja2VkKCk7XG4gICAgfVxuXG4gICAgLy8gRm9jdXNcbiAgICAudWstcmFkaW86Y2hlY2tlZDpmb2N1cyxcbiAgICAudWstY2hlY2tib3g6Y2hlY2tlZDpmb2N1cyxcbiAgICAudWstY2hlY2tib3g6aW5kZXRlcm1pbmF0ZTpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLWZvcm0tcmFkaW8tY2hlY2tlZC1mb2N1cy1iYWNrZ3JvdW5kO1xuICAgICAgICAuaG9vay1pbnZlcnNlLWZvcm0tcmFkaW8tY2hlY2tlZC1mb2N1cygpO1xuICAgIH1cblxuICAgIC8vIEljb25cbiAgICAudWstcmFkaW86Y2hlY2tlZCB7IC5zdmctZmlsbChAaW50ZXJuYWwtZm9ybS1yYWRpby1pbWFnZSwgXCIjMDAwXCIsIEBpbnZlcnNlLWZvcm0tcmFkaW8tY2hlY2tlZC1pY29uLWNvbG9yKTsgfVxuICAgIC51ay1jaGVja2JveDpjaGVja2VkIHsgLnN2Zy1maWxsKEBpbnRlcm5hbC1mb3JtLWNoZWNrYm94LWltYWdlLCBcIiMwMDBcIiwgQGludmVyc2UtZm9ybS1yYWRpby1jaGVja2VkLWljb24tY29sb3IpOyB9XG4gICAgLnVrLWNoZWNrYm94OmluZGV0ZXJtaW5hdGUgeyAuc3ZnLWZpbGwoQGludGVybmFsLWZvcm0tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1pbWFnZSwgXCIjMDAwXCIsIEBpbnZlcnNlLWZvcm0tcmFkaW8tY2hlY2tlZC1pY29uLWNvbG9yKTsgfVxuXG4gICAgLy8gTGFiZWxcbiAgICAudWstZm9ybS1sYWJlbCB7XG4gICAgICAgIC5ob29rLWludmVyc2UtZm9ybS1sYWJlbCgpO1xuICAgIH1cblxuICAgIC8vIEljb25cbiAgICAudWstZm9ybS1pY29uIHsgY29sb3I6IEBpbnZlcnNlLWZvcm0taWNvbi1jb2xvcjsgfVxuICAgIC51ay1mb3JtLWljb246aG92ZXIgeyBjb2xvcjogQGludmVyc2UtZm9ybS1pY29uLWhvdmVyLWNvbG9yOyB9XG5cbn1cblxuLmhvb2staW52ZXJzZS1mb3JtKCkge31cbi5ob29rLWludmVyc2UtZm9ybS1mb2N1cygpIHt9XG4uaG9vay1pbnZlcnNlLWZvcm0tcmFkaW8oKSB7fVxuLmhvb2staW52ZXJzZS1mb3JtLXJhZGlvLWZvY3VzKCkge31cbi5ob29rLWludmVyc2UtZm9ybS1yYWRpby1jaGVja2VkKCkge31cbi5ob29rLWludmVyc2UtZm9ybS1yYWRpby1jaGVja2VkLWZvY3VzKCkge31cbi5ob29rLWludmVyc2UtZm9ybS1sYWJlbCgpIHt9XG4iLCIvL1xuLy8gQ29tcG9uZW50OiBGb3JtXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIE5ld1xuLy9cblxuQGZvcm0tYmFja2Ryb3AtZmlsdGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgficnO1xuXG5AZm9ybS1tdWx0aS1saW5lLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICBAZm9ybS1wYWRkaW5nLWhvcml6b250YWw7XG5cbkBmb3JtLWRhbmdlci1mb2N1cy1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgIGluaGVyaXQ7XG5AZm9ybS1zdWNjZXNzLWZvY3VzLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICBpbmhlcml0O1xuXG5AZm9ybS1sYWJlbC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWZvbnQtc2l6ZTtcblxuXG4vLyBDb21wb25lbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1mb3JtKCkge1xuICAgIHRyYW5zaXRpb246IDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgYm94LXNoYWRvdztcbn1cblxuLmhvb2stZm9ybSgpIHdoZW4gbm90IChAZm9ybS1iYWNrZHJvcC1maWx0ZXIgPSB+JycpIHtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IEBmb3JtLWJhY2tkcm9wLWZpbHRlcjtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogQGZvcm0tYmFja2Ryb3AtZmlsdGVyO1xufVxuXG4uaG9vay1mb3JtLXNpbmdsZS1saW5lKCkge31cblxuLmhvb2stZm9ybS1tdWx0aS1saW5lKCkge1xuICAgIHBhZGRpbmctbGVmdDogQGZvcm0tbXVsdGktbGluZS1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgcGFkZGluZy1yaWdodDogQGZvcm0tbXVsdGktbGluZS1wYWRkaW5nLWhvcml6b250YWw7XG59XG5cbi5ob29rLWZvcm0tZm9jdXMoKSB7fVxuXG4uaG9vay1mb3JtLWRpc2FibGVkKCkge31cblxuXG4vLyBTdHlsZSBtb2RpZmllcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1mb3JtLWRhbmdlcigpIHt9XG5cbi5ob29rLWZvcm0tc3VjY2VzcygpIHt9XG5cbi5ob29rLWZvcm0tYmxhbmsoKSB7fVxuXG4uaG9vay1mb3JtLWJsYW5rLWZvY3VzKCkge31cblxuXG4vLyBSYWRpbyBhbmQgY2hlY2tib3hcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1mb3JtLXJhZGlvKCkge1xuICAgIHRyYW5zaXRpb246IDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgYm9yZGVyLWNvbG9yLCBib3gtc2hhZG93O1xufVxuXG4uaG9vay1mb3JtLXJhZGlvLWZvY3VzKCkge31cblxuLmhvb2stZm9ybS1yYWRpby1jaGVja2VkKCkge31cblxuLmhvb2stZm9ybS1yYWRpby1jaGVja2VkLWZvY3VzKCkge31cblxuLmhvb2stZm9ybS1yYWRpby1kaXNhYmxlZCgpIHt9XG5cblxuLy8gTGVnZW5kXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stZm9ybS1sZWdlbmQoKSB7fVxuXG5cbi8vIExhYmVsXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stZm9ybS1sYWJlbCgpIHsgZm9udC1zaXplOiBAZm9ybS1sYWJlbC1mb250LXNpemU7IH1cblxuXG4vLyBMYXlvdXRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1mb3JtLXN0YWNrZWQtbGFiZWwoKSB7fVxuXG4uaG9vay1mb3JtLWhvcml6b250YWwtbGFiZWwoKSB7fVxuXG5cbi8vIE1pc2NlbGxhbmVvdXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBUcmFuc3BhcmVudCBgYmFja2dyb3VuZC1jb2xvcmAgZG9lc24ndCB3b3JrIGluIElFMTEgYW5kIEVkZ2UgYW5kIHRoZSBiYWNrZ3JvdW5kIHdpbGwgYXBwZWFyIHdoaXRlLlxuLy8gVGhpcyBpcyB3aHkgdGhlIHRleHQgY29sb3IgaXMgc2V0IHRvIGJsYWNrLlxuLmhvb2stZm9ybS1taXNjKCkgd2hlbiAoQGZvcm0tYmFja2dyb3VuZCA9IHRyYW5zcGFyZW50KSxcbiAgICAgICAgICAgICAgICAgICAgICAgKEBmb3JtLWJhY2tncm91bmQgPSByZ2JhKDAsIDAsIDAsIDApKSB7XG4gICAgLy8gSUUxMCtcbiAgICBAbWVkaWEgYWxsIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAgICAgICAudWstc2VsZWN0Om5vdChbbXVsdGlwbGVdKTpub3QoW3NpemVdKSBvcHRpb24geyBjb2xvcjogIzQ0NDsgfVxuICAgIH1cblxuICAgIC8vIEVkZ2VcbiAgICBAc3VwcG9ydHMgKC1tcy1hY2NlbGVyYXRvcjp0cnVlKSB7XG4gICAgICAgIC51ay1zZWxlY3Q6bm90KFttdWx0aXBsZV0pOm5vdChbc2l6ZV0pIG9wdGlvbiB7IGNvbG9yOiAjNDQ0OyB9XG4gICAgfVxuXG59XG5cbi5ob29rLWZvcm0tbWlzYygpIHdoZW4gbm90IChAZm9ybS1kYW5nZXItZm9jdXMtYmFja2dyb3VuZCA9IGluaGVyaXQpIHtcblxuICAgIC51ay1mb3JtLWRhbmdlcjpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6IEBmb3JtLWRhbmdlci1mb2N1cy1iYWNrZ3JvdW5kOyB9XG5cbn1cblxuLmhvb2stZm9ybS1taXNjKCkgd2hlbiBub3QgKEBmb3JtLXN1Y2Nlc3MtZm9jdXMtYmFja2dyb3VuZCA9IGluaGVyaXQpIHtcblxuICAgIC51ay1mb3JtLXN1Y2Nlc3M6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAZm9ybS1zdWNjZXNzLWZvY3VzLWJhY2tncm91bmQ7IH1cblxufVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1pbnZlcnNlLWZvcm0oKSB7fVxuLmhvb2staW52ZXJzZS1mb3JtLWZvY3VzKCkge31cblxuLmhvb2staW52ZXJzZS1mb3JtLXJhZGlvKCkge31cbi5ob29rLWludmVyc2UtZm9ybS1yYWRpby1mb2N1cygpIHt9XG5cbi5ob29rLWludmVyc2UtZm9ybS1yYWRpby1jaGVja2VkKCkge31cbi5ob29rLWludmVyc2UtZm9ybS1yYWRpby1jaGVja2VkLWZvY3VzKCkge31cblxuLmhvb2staW52ZXJzZS1mb3JtLWxhYmVsKCkge31cbiIsIi8vXG4vLyBDb21wb25lbnQ6IEZvcm1cbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AZm9ybS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9ybS1oZWlnaHQgLSAoQGZvcm0tYm9yZGVyLXdpZHRoICogMik7XG5AZm9ybS1zbWFsbC1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICBAZm9ybS1zbWFsbC1oZWlnaHQgLSAoQGZvcm0tYm9yZGVyLXdpZHRoICogMik7XG5AZm9ybS1sYXJnZS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICBAZm9ybS1sYXJnZS1oZWlnaHQgLSAoQGZvcm0tYm9yZGVyLXdpZHRoICogMik7XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBmb3JtLWJvcmRlci1tb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH4nJztcblxuQGZvcm0tYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMDtcbkBmb3JtLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuXG5AZm9ybS1mb2N1cy1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcblxuQGZvcm0tZGlzYWJsZWQtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5cbkBmb3JtLWRhbmdlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuQGZvcm0tc3VjY2Vzcy1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5cbkBmb3JtLWJsYW5rLWZvY3VzLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuQGZvcm0tYmxhbmstZm9jdXMtYm9yZGVyLXN0eWxlOiAgICAgICAgICAgICAgICAgc29saWQ7XG5cbkBmb3JtLXJhZGlvLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAgICAgIDA7XG5AZm9ybS1yYWRpby1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcblxuQGZvcm0tcmFkaW8tZm9jdXMtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5cbkBmb3JtLXJhZGlvLWNoZWNrZWQtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuXG5AZm9ybS1yYWRpby1kaXNhYmxlZC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcblxuXG4vLyBDb21wb25lbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1mb3JtKCkge31cblxuLmhvb2stZm9ybS1zaW5nbGUtbGluZSgpIHdoZW4gbm90IChAZm9ybS1ib3JkZXItd2lkdGggPSAwKSB7XG4gICAgYm9yZGVyQHtmb3JtLWJvcmRlci1tb2RlfTogQGZvcm0tYm9yZGVyLXdpZHRoIHNvbGlkIEBmb3JtLWJvcmRlcjtcbn1cblxuLmhvb2stZm9ybS1tdWx0aS1saW5lKCkgd2hlbiBub3QgKEBmb3JtLWJvcmRlci13aWR0aCA9IDApIHtcbiAgICBib3JkZXI6IEBmb3JtLWJvcmRlci13aWR0aCBzb2xpZCBAZm9ybS1ib3JkZXI7XG59XG5cbi8vIGAhaW1wb3J0YW50YCBuZWVkZWQgdG8gb3ZlcnJpZGUgc2luZ2xlIGxpbmUgc2VsZWN0b3IgZm9yIGB1ay1zZWxlY3RgXG5cbi5ob29rLWZvcm0tZm9jdXMoKSB3aGVuIG5vdCAoQGZvcm0tYm9yZGVyLXdpZHRoID0gMCkge1xuICAgIGJvcmRlci1jb2xvcjogQGZvcm0tZm9jdXMtYm9yZGVyICFpbXBvcnRhbnQ7XG59XG5cbi5ob29rLWZvcm0tZGlzYWJsZWQoKSB3aGVuIG5vdCAoQGZvcm0tYm9yZGVyLXdpZHRoID0gMCkge1xuICAgIGJvcmRlci1jb2xvcjogQGZvcm0tZGlzYWJsZWQtYm9yZGVyICFpbXBvcnRhbnQ7XG59XG5cblxuLy8gU3R5bGUgbW9kaWZpZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stZm9ybS1kYW5nZXIoKSB3aGVuIG5vdCAoQGZvcm0tYm9yZGVyLXdpZHRoID0gMCkge1xuICAgIGJvcmRlci1jb2xvcjogQGZvcm0tZGFuZ2VyLWJvcmRlciAhaW1wb3J0YW50O1xufVxuXG4uaG9vay1mb3JtLXN1Y2Nlc3MoKSB3aGVuIG5vdCAoQGZvcm0tYm9yZGVyLXdpZHRoID0gMCkge1xuICAgIGJvcmRlci1jb2xvcjogQGZvcm0tc3VjY2Vzcy1ib3JkZXIgIWltcG9ydGFudDtcbn1cblxuLmhvb2stZm9ybS1ibGFuaygpIHdoZW4gbm90IChAZm9ybS1ib3JkZXItd2lkdGggPSAwKSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4uaG9vay1mb3JtLWJsYW5rLWZvY3VzKCkgd2hlbiBub3QgKEBmb3JtLWJvcmRlci13aWR0aCA9IDApIHtcbiAgICBib3JkZXItY29sb3I6IEBmb3JtLWJsYW5rLWZvY3VzLWJvcmRlciAhaW1wb3J0YW50O1xufVxuXG4uaG9vay1mb3JtLWJsYW5rLWZvY3VzKCkgd2hlbiBub3QgKEBmb3JtLWJsYW5rLWZvY3VzLWJvcmRlci1zdHlsZSA9IHNvbGlkKSB7XG4gICAgYm9yZGVyLXN0eWxlOiBAZm9ybS1ibGFuay1mb2N1cy1ib3JkZXItc3R5bGU7XG59XG5cblxuLy8gUmFkaW8gYW5kIGNoZWNrYm94XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stZm9ybS1yYWRpbygpIHdoZW4gbm90IChAZm9ybS1yYWRpby1ib3JkZXItd2lkdGggPSAwKSB7XG4gICAgYm9yZGVyOiBAZm9ybS1yYWRpby1ib3JkZXItd2lkdGggc29saWQgQGZvcm0tcmFkaW8tYm9yZGVyO1xuXG59XG5cbi5ob29rLWZvcm0tcmFkaW8tZm9jdXMoKSB3aGVuIG5vdCAoQGZvcm0tcmFkaW8tYm9yZGVyLXdpZHRoID0gMCkge1xuICAgIGJvcmRlci1jb2xvcjogQGZvcm0tcmFkaW8tZm9jdXMtYm9yZGVyO1xufVxuXG4uaG9vay1mb3JtLXJhZGlvLWNoZWNrZWQoKSB3aGVuIG5vdCAoQGZvcm0tcmFkaW8tYm9yZGVyLXdpZHRoID0gMCkge1xuICAgIGJvcmRlci1jb2xvcjogQGZvcm0tcmFkaW8tY2hlY2tlZC1ib3JkZXI7XG59XG5cbi5ob29rLWZvcm0tcmFkaW8tY2hlY2tlZC1mb2N1cygpIHt9XG5cbi5ob29rLWZvcm0tcmFkaW8tZGlzYWJsZWQoKSB3aGVuIG5vdCAoQGZvcm0tcmFkaW8tYm9yZGVyLXdpZHRoID0gMCkge1xuICAgIGJvcmRlci1jb2xvcjogQGZvcm0tcmFkaW8tZGlzYWJsZWQtYm9yZGVyO1xufVxuXG5cbi8vIExlZ2VuZFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWZvcm0tbGVnZW5kKCkge31cblxuXG4vLyBMYWJlbFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWZvcm0tbGFiZWwoKSB7fVxuXG5cbi8vIExheW91dFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWZvcm0tc3RhY2tlZC1sYWJlbCgpIHt9XG5cbi5ob29rLWZvcm0taG9yaXpvbnRhbC1sYWJlbCgpIHt9XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWZvcm0tbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbnZlcnNlLWZvcm0tYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5AaW52ZXJzZS1mb3JtLWZvY3VzLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuQGludmVyc2UtZm9ybS1yYWRpby1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcbkBpbnZlcnNlLWZvcm0tcmFkaW8tZm9jdXMtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5AaW52ZXJzZS1mb3JtLXJhZGlvLWNoZWNrZWQtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuXG4uaG9vay1pbnZlcnNlLWZvcm0oKSB3aGVuIG5vdCAoQGZvcm0tYm9yZGVyLXdpZHRoID0gMCkge1xuICAgIGJvcmRlci1jb2xvcjogQGludmVyc2UtZm9ybS1ib3JkZXIgIWltcG9ydGFudDtcbn1cbi5ob29rLWludmVyc2UtZm9ybS1mb2N1cygpIHdoZW4gbm90IChAZm9ybS1ib3JkZXItd2lkdGggPSAwKSB7XG4gICAgYm9yZGVyLWNvbG9yOiBAaW52ZXJzZS1mb3JtLWZvY3VzLWJvcmRlciAhaW1wb3J0YW50O1xufVxuXG4uaG9vay1pbnZlcnNlLWZvcm0tcmFkaW8oKSB3aGVuIG5vdCAoQGZvcm0tYm9yZGVyLXdpZHRoID0gMCkge1xuICAgIGJvcmRlci1jb2xvcjogQGludmVyc2UtZm9ybS1yYWRpby1ib3JkZXI7XG59XG4uaG9vay1pbnZlcnNlLWZvcm0tcmFkaW8tZm9jdXMoKSB3aGVuIG5vdCAoQGZvcm0tYm9yZGVyLXdpZHRoID0gMCkge1xuICAgIGJvcmRlci1jb2xvcjogQGludmVyc2UtZm9ybS1yYWRpby1mb2N1cy1ib3JkZXI7XG59XG5cbi5ob29rLWludmVyc2UtZm9ybS1yYWRpby1jaGVja2VkKCkgd2hlbiBub3QgKEBmb3JtLWJvcmRlci13aWR0aCA9IDApIHtcbiAgICBib3JkZXItY29sb3I6IEBpbnZlcnNlLWZvcm0tcmFkaW8tY2hlY2tlZC1ib3JkZXI7XG59XG4uaG9vay1pbnZlcnNlLWZvcm0tcmFkaW8tY2hlY2tlZC1mb2N1cygpIHt9XG5cbi5ob29rLWludmVyc2UtZm9ybS1sYWJlbCgpIHt9XG4iLCIvL1xuLy8gQ29tcG9uZW50OiBGb3JtXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIE5ld1xuLy9cblxuQGZvcm0tbGFiZWwtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcbkBmb3JtLWxhYmVsLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtZmFtaWx5O1xuQGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktZm9udC13ZWlnaHQ7XG5AZm9ybS1sYWJlbC10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS10ZXh0LXRyYW5zZm9ybTtcbkBmb3JtLWxhYmVsLWxldHRlci1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWxldHRlci1zcGFjaW5nO1xuQGZvcm0tbGFiZWwtZm9udC1zdHlsZTogICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktZm9udC1zdHlsZTtcblxuXG4vLyBDb21wb25lbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1mb3JtKCkge31cblxuLmhvb2stZm9ybS1zaW5nbGUtbGluZSgpIHt9XG5cbi5ob29rLWZvcm0tbXVsdGktbGluZSgpIHt9XG5cbi5ob29rLWZvcm0tZm9jdXMoKSB7fVxuXG4uaG9vay1mb3JtLWRpc2FibGVkKCkge31cblxuXG4vLyBTdHlsZSBtb2RpZmllcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1mb3JtLWRhbmdlcigpIHt9XG5cbi5ob29rLWZvcm0tc3VjY2VzcygpIHt9XG5cbi5ob29rLWZvcm0tYmxhbmsoKSB7fVxuXG4uaG9vay1mb3JtLWJsYW5rLWZvY3VzKCkge31cblxuXG4vLyBSYWRpbyBhbmQgY2hlY2tib3hcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1mb3JtLXJhZGlvKCkge31cblxuLmhvb2stZm9ybS1yYWRpby1mb2N1cygpIHt9XG5cbi5ob29rLWZvcm0tcmFkaW8tY2hlY2tlZCgpIHt9XG5cbi5ob29rLWZvcm0tcmFkaW8tY2hlY2tlZC1mb2N1cygpIHt9XG5cbi5ob29rLWZvcm0tcmFkaW8tZGlzYWJsZWQoKSB7fVxuXG5cbi8vIExlZ2VuZFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWZvcm0tbGVnZW5kKCkge31cblxuXG4vLyBMYWJlbFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWZvcm0tbGFiZWwoKSB7IGNvbG9yOiBAZm9ybS1sYWJlbC1jb2xvcjsgfVxuXG4uaG9vay1mb3JtLWxhYmVsKCkgd2hlbiBub3QgKEBmb3JtLWxhYmVsLWZvbnQtZmFtaWx5ID0gaW5oZXJpdCkge1xuICAgIGZvbnQtZmFtaWx5OiBAZm9ybS1sYWJlbC1mb250LWZhbWlseTtcbn1cblxuLmhvb2stZm9ybS1sYWJlbCgpIHdoZW4gbm90IChAZm9ybS1sYWJlbC1mb250LXdlaWdodCA9IGluaGVyaXQpIHtcbiAgICBmb250LXdlaWdodDogQGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ7XG59XG5cbi5ob29rLWZvcm0tbGFiZWwoKSB3aGVuIG5vdCAoQGZvcm0tbGFiZWwtdGV4dC10cmFuc2Zvcm0gPSBpbmhlcml0KSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IEBmb3JtLWxhYmVsLXRleHQtdHJhbnNmb3JtO1xufVxuXG4uaG9vay1mb3JtLWxhYmVsKCkgd2hlbiBub3QgKEBmb3JtLWxhYmVsLWxldHRlci1zcGFjaW5nID0gaW5oZXJpdCkge1xuICAgIGxldHRlci1zcGFjaW5nOiBAZm9ybS1sYWJlbC1sZXR0ZXItc3BhY2luZztcbn1cblxuLmhvb2stZm9ybS1sYWJlbCgpIHdoZW4gbm90IChAZm9ybS1sYWJlbC1mb250LXN0eWxlID0gaW5oZXJpdCkge1xuICAgIGZvbnQtc3R5bGU6IEBmb3JtLWxhYmVsLWZvbnQtc3R5bGU7XG59XG5cblxuLy8gTGF5b3V0XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stZm9ybS1zdGFja2VkLWxhYmVsKCkge31cblxuLmhvb2stZm9ybS1ob3Jpem9udGFsLWxhYmVsKCkge31cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stZm9ybS1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGludmVyc2UtZm9ybS1sYWJlbC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuXG4uaG9vay1pbnZlcnNlLWZvcm0oKSB7fVxuLmhvb2staW52ZXJzZS1mb3JtLWZvY3VzKCkge31cblxuLmhvb2staW52ZXJzZS1mb3JtLXJhZGlvKCkge31cbi5ob29rLWludmVyc2UtZm9ybS1yYWRpby1mb2N1cygpIHt9XG5cbi5ob29rLWludmVyc2UtZm9ybS1yYWRpby1jaGVja2VkKCkge31cbi5ob29rLWludmVyc2UtZm9ybS1yYWRpby1jaGVja2VkLWZvY3VzKCkge31cblxuLmhvb2staW52ZXJzZS1mb3JtLWxhYmVsKCkgeyBjb2xvcjogQGludmVyc2UtZm9ybS1sYWJlbC1jb2xvcjsgfVxuIiwiLy8gTmFtZTogICAgICAgICAgICBCdXR0b25cbi8vIERlc2NyaXB0aW9uOiAgICAgU3R5bGVzIGZvciBidXR0b25zXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstYnV0dG9uYFxuLy9cbi8vIFN1Yi1vYmplY3RzOiAgICAgYHVrLWJ1dHRvbi1ncm91cGBcbi8vXG4vLyBNb2RpZmllcnM6ICAgICAgIGB1ay1idXR0b24tZGVmYXVsdGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWJ1dHRvbi1wcmltYXJ5YFxuLy8gICAgICAgICAgICAgICAgICBgdWstYnV0dG9uLXNlY29uZGFyeWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWJ1dHRvbi1kYW5nZXJgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1idXR0b24tdGV4dGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWJ1dHRvbi1saW5rYFxuLy8gICAgICAgICAgICAgICAgICBgdWstYnV0dG9uLXNtYWxsYFxuLy8gICAgICAgICAgICAgICAgICBgdWstYnV0dG9uLWxhcmdlYFxuLy9cbi8vIFN0YXRlczogICAgICAgICAgYHVrLWFjdGl2ZWBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AYnV0dG9uLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWNvbnRyb2wtaGVpZ2h0O1xuQGJ1dHRvbi1zbWFsbC1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1jb250cm9sLXNtYWxsLWhlaWdodDtcbkBidXR0b24tbGFyZ2UtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtY29udHJvbC1sYXJnZS1oZWlnaHQ7XG5cbkBidXR0b24tZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZm9udC1zaXplO1xuQGJ1dHRvbi1zbWFsbC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zbWFsbC1mb250LXNpemU7XG5AYnV0dG9uLWxhcmdlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW1lZGl1bS1mb250LXNpemU7XG5cbkBidXR0b24tcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZ3V0dGVyO1xuQGJ1dHRvbi1zbWFsbC1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgQGdsb2JhbC1zbWFsbC1ndXR0ZXI7XG5AYnV0dG9uLWxhcmdlLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICBAZ2xvYmFsLW1lZGl1bS1ndXR0ZXI7XG5cbkBidXR0b24tZGVmYXVsdC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZDtcbkBidXR0b24tZGVmYXVsdC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AYnV0dG9uLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZDogICAgICAgICAgICAgICBkYXJrZW4oQGJ1dHRvbi1kZWZhdWx0LWJhY2tncm91bmQsIDUlKTtcbkBidXR0b24tZGVmYXVsdC1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AYnV0dG9uLWRlZmF1bHQtYWN0aXZlLWJhY2tncm91bmQ6ICAgICAgICAgICAgICBkYXJrZW4oQGJ1dHRvbi1kZWZhdWx0LWJhY2tncm91bmQsIDEwJSk7XG5AYnV0dG9uLWRlZmF1bHQtYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuXG5AYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZDtcbkBidXR0b24tcHJpbWFyeS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtaW52ZXJzZS1jb2xvcjtcbkBidXR0b24tcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgIGRhcmtlbihAYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZCwgNSUpO1xuQGJ1dHRvbi1wcmltYXJ5LWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1pbnZlcnNlLWNvbG9yO1xuQGJ1dHRvbi1wcmltYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgZGFya2VuKEBidXR0b24tcHJpbWFyeS1iYWNrZ3JvdW5kLCAxMCUpO1xuQGJ1dHRvbi1wcmltYXJ5LWFjdGl2ZS1jb2xvcjogICAgICAgICAgICAgICAgICAgQGdsb2JhbC1pbnZlcnNlLWNvbG9yO1xuXG5AYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1iYWNrZ3JvdW5kO1xuQGJ1dHRvbi1zZWNvbmRhcnktY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1pbnZlcnNlLWNvbG9yO1xuQGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZDogICAgICAgICAgICAgZGFya2VuKEBidXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQsIDUlKTtcbkBidXR0b24tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgIEBnbG9iYWwtaW52ZXJzZS1jb2xvcjtcbkBidXR0b24tc2Vjb25kYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgIGRhcmtlbihAYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kLCAxMCUpO1xuQGJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAgQGdsb2JhbC1pbnZlcnNlLWNvbG9yO1xuXG5AYnV0dG9uLWRhbmdlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWRhbmdlci1iYWNrZ3JvdW5kO1xuQGJ1dHRvbi1kYW5nZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1pbnZlcnNlLWNvbG9yO1xuQGJ1dHRvbi1kYW5nZXItaG92ZXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgZGFya2VuKEBidXR0b24tZGFuZ2VyLWJhY2tncm91bmQsIDUlKTtcbkBidXR0b24tZGFuZ2VyLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtaW52ZXJzZS1jb2xvcjtcbkBidXR0b24tZGFuZ2VyLWFjdGl2ZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgIGRhcmtlbihAYnV0dG9uLWRhbmdlci1iYWNrZ3JvdW5kLCAxMCUpO1xuQGJ1dHRvbi1kYW5nZXItYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1pbnZlcnNlLWNvbG9yO1xuXG5AYnV0dG9uLWRpc2FibGVkLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWJhY2tncm91bmQ7XG5AYnV0dG9uLWRpc2FibGVkLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWNvbG9yO1xuXG5AYnV0dG9uLXRleHQtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWxpbmUtaGVpZ2h0O1xuQGJ1dHRvbi10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcbkBidXR0b24tdGV4dC1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtY29sb3I7XG5AYnV0dG9uLXRleHQtZGlzYWJsZWQtY29sb3I6ICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWNvbG9yO1xuXG5AYnV0dG9uLWxpbmstbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWxpbmUtaGVpZ2h0O1xuQGJ1dHRvbi1saW5rLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcbkBidXR0b24tbGluay1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtY29sb3I7XG5AYnV0dG9uLWxpbmstaG92ZXItdGV4dC1kZWNvcmF0aW9uOiAgICAgICAgICAgICBub25lO1xuQGJ1dHRvbi1saW5rLWRpc2FibGVkLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tdXRlZC1jb2xvcjtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogQnV0dG9uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFJlbW92ZSBtYXJnaW5zIGluIENocm9tZSwgU2FmYXJpIGFuZCBPcGVyYS5cbiAqIDIuIFJlbW92ZSBib3JkZXJzIGZvciBgYnV0dG9uYC5cbiAqIDMuIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUuXG4gKiA0LiBDb3JyZWN0IGBmb250YCBwcm9wZXJ0aWVzIGFuZCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgZm9yIGBidXR0b25gLlxuICogNS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiA2LiBSZW1vdmUgZGVmYXVsdCBzdHlsZSBmb3IgYGlucHV0IHR5cGU9XCJzdWJtaXRcImBpbiBpT1MuXG4gKiA3LiBTdHlsZVxuICogOC4gYGxpbmUtaGVpZ2h0YCBpcyB1c2VkIHRvIGNyZWF0ZSBhIGhlaWdodCBiZWNhdXNlIGl0IGFsc28gY2VudGVycyB0aGUgdGV4dCB2ZXJ0aWNhbGx5IGZvciBgYWAgZWxlbWVudHMuXG4gKiAgICBCZXR0ZXIgd291bGQgYmUgdG8gdXNlIGhlaWdodCBhbmQgZmxleGJveCB0byBjZW50ZXIgdGhlIHRleHQgdmVydGljYWxseSBidXQgZmxleGJveCBkb2Vzbid0IHdvcmsgaW4gRmlyZWZveCBvbiBgYnV0dG9uYCBlbGVtZW50cy5cbiAqIDkuIEFsaWduIHRleHQgaWYgYnV0dG9uIGhhcyBhIHdpZHRoXG4gKiAxMC4gUmVxdWlyZWQgZm9yIGBhYC5cbiAqL1xuXG4udWstYnV0dG9uIHtcbiAgICAvKiAxICovXG4gICAgbWFyZ2luOiAwO1xuICAgIC8qIDIgKi9cbiAgICBib3JkZXI6IG5vbmU7XG4gICAgLyogMyAqL1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIC8qIDQgKi9cbiAgICBmb250OiBpbmhlcml0O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIC8qIDUgKi9cbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAvKiA2ICovXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgLyogNyAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IDAgQGJ1dHRvbi1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXNpemU6IEBidXR0b24tZm9udC1zaXplO1xuICAgIC8qIDggKi9cbiAgICBsaW5lLWhlaWdodDogQGJ1dHRvbi1saW5lLWhlaWdodDtcbiAgICAvKiA5ICovXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC8qIDEwICovXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIC5ob29rLWJ1dHRvbigpO1xufVxuXG4udWstYnV0dG9uOm5vdCg6ZGlzYWJsZWQpIHsgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi8qXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbi51ay1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4vKiBIb3ZlciAqL1xuLnVrLWJ1dHRvbjpob3ZlciB7XG4gICAgLyogOSAqL1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAuaG9vay1idXR0b24taG92ZXIoKTtcbn1cblxuLyogT25DbGljayArIEFjdGl2ZSAqL1xuLnVrLWJ1dHRvbjphY3RpdmUsXG4udWstYnV0dG9uLnVrLWFjdGl2ZSB7XG4gICAgLmhvb2stYnV0dG9uLWFjdGl2ZSgpO1xufVxuXG5cbi8qIFN0eWxlIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBEZWZhdWx0XG4gKi9cblxuLnVrLWJ1dHRvbi1kZWZhdWx0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYnV0dG9uLWRlZmF1bHQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogQGJ1dHRvbi1kZWZhdWx0LWNvbG9yO1xuICAgIC5ob29rLWJ1dHRvbi1kZWZhdWx0KCk7XG59XG5cbi8qIEhvdmVyICovXG4udWstYnV0dG9uLWRlZmF1bHQ6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBidXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiBAYnV0dG9uLWRlZmF1bHQtaG92ZXItY29sb3I7XG4gICAgLmhvb2stYnV0dG9uLWRlZmF1bHQtaG92ZXIoKTtcbn1cblxuLyogT25DbGljayArIEFjdGl2ZSAqL1xuLnVrLWJ1dHRvbi1kZWZhdWx0OmFjdGl2ZSxcbi51ay1idXR0b24tZGVmYXVsdC51ay1hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBidXR0b24tZGVmYXVsdC1hY3RpdmUtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogQGJ1dHRvbi1kZWZhdWx0LWFjdGl2ZS1jb2xvcjtcbiAgICAuaG9vay1idXR0b24tZGVmYXVsdC1hY3RpdmUoKTtcbn1cblxuLypcbiAqIFByaW1hcnlcbiAqL1xuXG4udWstYnV0dG9uLXByaW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBidXR0b24tcHJpbWFyeS1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiBAYnV0dG9uLXByaW1hcnktY29sb3I7XG4gICAgLmhvb2stYnV0dG9uLXByaW1hcnkoKTtcbn1cblxuLyogSG92ZXIgKi9cbi51ay1idXR0b24tcHJpbWFyeTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGJ1dHRvbi1wcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4gICAgY29sb3I6IEBidXR0b24tcHJpbWFyeS1ob3Zlci1jb2xvcjtcbiAgICAuaG9vay1idXR0b24tcHJpbWFyeS1ob3ZlcigpO1xufVxuXG4vKiBPbkNsaWNrICsgQWN0aXZlICovXG4udWstYnV0dG9uLXByaW1hcnk6YWN0aXZlLFxuLnVrLWJ1dHRvbi1wcmltYXJ5LnVrLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGJ1dHRvbi1wcmltYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiBAYnV0dG9uLXByaW1hcnktYWN0aXZlLWNvbG9yO1xuICAgIC5ob29rLWJ1dHRvbi1wcmltYXJ5LWFjdGl2ZSgpO1xufVxuXG4vKlxuICogU2Vjb25kYXJ5XG4gKi9cblxuLnVrLWJ1dHRvbi1zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBidXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQ7XG4gICAgY29sb3I6IEBidXR0b24tc2Vjb25kYXJ5LWNvbG9yO1xuICAgIC5ob29rLWJ1dHRvbi1zZWNvbmRhcnkoKTtcbn1cblxuLyogSG92ZXIgKi9cbi51ay1idXR0b24tc2Vjb25kYXJ5OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiBAYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1jb2xvcjtcbiAgICAuaG9vay1idXR0b24tc2Vjb25kYXJ5LWhvdmVyKCk7XG59XG5cbi8qIE9uQ2xpY2sgKyBBY3RpdmUgKi9cbi51ay1idXR0b24tc2Vjb25kYXJ5OmFjdGl2ZSxcbi51ay1idXR0b24tc2Vjb25kYXJ5LnVrLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6IEBidXR0b24tc2Vjb25kYXJ5LWFjdGl2ZS1jb2xvcjtcbiAgICAuaG9vay1idXR0b24tc2Vjb25kYXJ5LWFjdGl2ZSgpO1xufVxuXG4vKlxuICogRGFuZ2VyXG4gKi9cblxuLnVrLWJ1dHRvbi1kYW5nZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBidXR0b24tZGFuZ2VyLWJhY2tncm91bmQ7XG4gICAgY29sb3I6IEBidXR0b24tZGFuZ2VyLWNvbG9yO1xuICAgIC5ob29rLWJ1dHRvbi1kYW5nZXIoKTtcbn1cblxuLyogSG92ZXIgKi9cbi51ay1idXR0b24tZGFuZ2VyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYnV0dG9uLWRhbmdlci1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiBAYnV0dG9uLWRhbmdlci1ob3Zlci1jb2xvcjtcbiAgICAuaG9vay1idXR0b24tZGFuZ2VyLWhvdmVyKCk7XG59XG5cbi8qIE9uQ2xpY2sgKyBBY3RpdmUgKi9cbi51ay1idXR0b24tZGFuZ2VyOmFjdGl2ZSxcbi51ay1idXR0b24tZGFuZ2VyLnVrLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGJ1dHRvbi1kYW5nZXItYWN0aXZlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6IEBidXR0b24tZGFuZ2VyLWFjdGl2ZS1jb2xvcjtcbiAgICAuaG9vay1idXR0b24tZGFuZ2VyLWFjdGl2ZSgpO1xufVxuXG4vKlxuICogRGlzYWJsZWRcbiAqIFRoZSBzYW1lIGZvciBhbGwgc3R5bGUgbW9kaWZpZXJzXG4gKi9cblxuLnVrLWJ1dHRvbi1kZWZhdWx0OmRpc2FibGVkLFxuLnVrLWJ1dHRvbi1wcmltYXJ5OmRpc2FibGVkLFxuLnVrLWJ1dHRvbi1zZWNvbmRhcnk6ZGlzYWJsZWQsXG4udWstYnV0dG9uLWRhbmdlcjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGJ1dHRvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiBAYnV0dG9uLWRpc2FibGVkLWNvbG9yO1xuICAgIC5ob29rLWJ1dHRvbi1kaXNhYmxlZCgpO1xufVxuXG5cbi8qIFNpemUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWJ1dHRvbi1zbWFsbCB7XG4gICAgcGFkZGluZzogMCBAYnV0dG9uLXNtYWxsLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBsaW5lLWhlaWdodDogQGJ1dHRvbi1zbWFsbC1saW5lLWhlaWdodDtcbiAgICBmb250LXNpemU6IEBidXR0b24tc21hbGwtZm9udC1zaXplO1xuICAgIC5ob29rLWJ1dHRvbi1zbWFsbCgpO1xufVxuXG4udWstYnV0dG9uLWxhcmdlIHtcbiAgICBwYWRkaW5nOiAwIEBidXR0b24tbGFyZ2UtcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIGxpbmUtaGVpZ2h0OiBAYnV0dG9uLWxhcmdlLWxpbmUtaGVpZ2h0O1xuICAgIGZvbnQtc2l6ZTogQGJ1dHRvbi1sYXJnZS1mb250LXNpemU7XG4gICAgLmhvb2stYnV0dG9uLWxhcmdlKCk7XG59XG5cblxuLyogVGV4dCBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogVGV4dFxuICogMS4gUmVzZXRcbiAqIDIuIFN0eWxlXG4gKi9cblxuLnVrLWJ1dHRvbi10ZXh0IHtcbiAgICAvKiAxICovXG4gICAgcGFkZGluZzogMDtcbiAgICBsaW5lLWhlaWdodDogQGJ1dHRvbi10ZXh0LWxpbmUtaGVpZ2h0O1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgLyogMiAqL1xuICAgIGNvbG9yOiBAYnV0dG9uLXRleHQtY29sb3I7XG4gICAgLmhvb2stYnV0dG9uLXRleHQoKTtcbn1cblxuLyogSG92ZXIgKi9cbi51ay1idXR0b24tdGV4dDpob3ZlciB7XG4gICAgY29sb3I6IEBidXR0b24tdGV4dC1ob3Zlci1jb2xvcjtcbiAgICAuaG9vay1idXR0b24tdGV4dC1ob3ZlcigpO1xufVxuXG4vKiBEaXNhYmxlZCAqL1xuLnVrLWJ1dHRvbi10ZXh0OmRpc2FibGVkIHtcbiAgICBjb2xvcjogQGJ1dHRvbi10ZXh0LWRpc2FibGVkLWNvbG9yO1xuICAgIC5ob29rLWJ1dHRvbi10ZXh0LWRpc2FibGVkKCk7XG59XG5cbi8qXG4gKiBMaW5rXG4gKiAxLiBSZXNldFxuICogMi4gU3R5bGVcbiAqL1xuXG4udWstYnV0dG9uLWxpbmsge1xuICAgIC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiBAYnV0dG9uLWxpbmstbGluZS1oZWlnaHQ7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAvKiAyICovXG4gICAgY29sb3I6IEBidXR0b24tbGluay1jb2xvcjtcbiAgICAuaG9vay1idXR0b24tbGluaygpO1xufVxuXG4vKiBIb3ZlciAqL1xuLnVrLWJ1dHRvbi1saW5rOmhvdmVyIHtcbiAgICBjb2xvcjogQGJ1dHRvbi1saW5rLWhvdmVyLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogQGJ1dHRvbi1saW5rLWhvdmVyLXRleHQtZGVjb3JhdGlvbjtcbn1cblxuLyogRGlzYWJsZWQgKi9cbi51ay1idXR0b24tbGluazpkaXNhYmxlZCB7XG4gICAgY29sb3I6IEBidXR0b24tbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cblxuLyogR3JvdXBcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gVXNpbmcgYGZsZXhgIGluc3RlYWQgb2YgYGlubGluZS1ibG9ja2AgdG8gcHJldmVudCB3aGl0ZXNwYWNlIGJldHdlZW50IGNoaWxkIGVsZW1lbnRzXG4gKiAyLiBCZWhhdmUgbGlrZSBidXR0b25cbiAqIDMuIENyZWF0ZSBwb3NpdGlvbiBjb250ZXh0XG4gKi9cblxuLnVrLWJ1dHRvbi1ncm91cCB7XG4gICAgLyogMSAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIC8qIDIgKi9cbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIC8qIDMgKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1idXR0b24tbWlzYygpO1xuXG4uaG9vay1idXR0b24oKSB7fVxuLmhvb2stYnV0dG9uLWhvdmVyKCkge31cbi5ob29rLWJ1dHRvbi1hY3RpdmUoKSB7fVxuLmhvb2stYnV0dG9uLWRlZmF1bHQoKSB7fVxuLmhvb2stYnV0dG9uLWRlZmF1bHQtaG92ZXIoKSB7fVxuLmhvb2stYnV0dG9uLWRlZmF1bHQtYWN0aXZlKCkge31cbi5ob29rLWJ1dHRvbi1wcmltYXJ5KCkge31cbi5ob29rLWJ1dHRvbi1wcmltYXJ5LWhvdmVyKCkge31cbi5ob29rLWJ1dHRvbi1wcmltYXJ5LWFjdGl2ZSgpIHt9XG4uaG9vay1idXR0b24tc2Vjb25kYXJ5KCkge31cbi5ob29rLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXIoKSB7fVxuLmhvb2stYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUoKSB7fVxuLmhvb2stYnV0dG9uLWRhbmdlcigpIHt9XG4uaG9vay1idXR0b24tZGFuZ2VyLWhvdmVyKCkge31cbi5ob29rLWJ1dHRvbi1kYW5nZXItYWN0aXZlKCkge31cbi5ob29rLWJ1dHRvbi1kaXNhYmxlZCgpIHt9XG4uaG9vay1idXR0b24tc21hbGwoKSB7fVxuLmhvb2stYnV0dG9uLWxhcmdlKCkge31cbi5ob29rLWJ1dHRvbi10ZXh0KCkge31cbi5ob29rLWJ1dHRvbi10ZXh0LWhvdmVyKCkge31cbi5ob29rLWJ1dHRvbi10ZXh0LWRpc2FibGVkKCkge31cbi5ob29rLWJ1dHRvbi1saW5rKCkge31cbi5ob29rLWJ1dHRvbi1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGludmVyc2UtYnV0dG9uLWRlZmF1bHQtYmFja2dyb3VuZDogICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kO1xuQGludmVyc2UtYnV0dG9uLWRlZmF1bHQtY29sb3I6ICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtaW52ZXJzZS1jb2xvcjtcbkBpbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQ6ICAgICAgZGFya2VuKEBpbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWJhY2tncm91bmQsIDUlKTtcbkBpbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWNvbG9yOiAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWludmVyc2UtY29sb3I7XG5AaW52ZXJzZS1idXR0b24tZGVmYXVsdC1hY3RpdmUtYmFja2dyb3VuZDogICAgIGRhcmtlbihAaW52ZXJzZS1idXR0b24tZGVmYXVsdC1iYWNrZ3JvdW5kLCAxMCUpO1xuQGludmVyc2UtYnV0dG9uLWRlZmF1bHQtYWN0aXZlLWNvbG9yOiAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtaW52ZXJzZS1jb2xvcjtcbkBpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQ6ICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZDtcbkBpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWNvbG9yOiAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWludmVyc2UtY29sb3I7XG5AaW52ZXJzZS1idXR0b24tcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgIGRhcmtlbihAaW52ZXJzZS1idXR0b24tcHJpbWFyeS1iYWNrZ3JvdW5kLCA1JSk7XG5AaW52ZXJzZS1idXR0b24tcHJpbWFyeS1ob3Zlci1jb2xvcjogICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1pbnZlcnNlLWNvbG9yO1xuQGludmVyc2UtYnV0dG9uLXByaW1hcnktYWN0aXZlLWJhY2tncm91bmQ6ICAgICBkYXJrZW4oQGludmVyc2UtYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZCwgMTAlKTtcbkBpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWFjdGl2ZS1jb2xvcjogICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWludmVyc2UtY29sb3I7XG5AaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQ6ICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQ7XG5AaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWNvbG9yOiAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1pbnZlcnNlLWNvbG9yO1xuQGludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kOiAgICBkYXJrZW4oQGludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kLCA1JSk7XG5AaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yOiAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1pbnZlcnNlLWNvbG9yO1xuQGludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZDogICBkYXJrZW4oQGludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kLCAxMCUpO1xuQGludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtY29sb3I6ICAgICAgICBAaW52ZXJzZS1nbG9iYWwtaW52ZXJzZS1jb2xvcjtcbkBpbnZlcnNlLWJ1dHRvbi10ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQGludmVyc2UtYnV0dG9uLXRleHQtaG92ZXItY29sb3I6ICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3I7XG5AaW52ZXJzZS1idXR0b24tdGV4dC1kaXNhYmxlZC1jb2xvcjogICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvcjtcbkBpbnZlcnNlLWJ1dHRvbi1saW5rLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQGludmVyc2UtYnV0dG9uLWxpbmstaG92ZXItY29sb3I6ICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3I7XG5cbi5ob29rLWludmVyc2UoKSB7XG5cbiAgICAvL1xuICAgIC8vIERlZmF1bHRcbiAgICAvL1xuXG4gICAgLnVrLWJ1dHRvbi1kZWZhdWx0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtYnV0dG9uLWRlZmF1bHQtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLWJ1dHRvbi1kZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgLnVrLWJ1dHRvbi1kZWZhdWx0OmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtYnV0dG9uLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWhvdmVyKCk7XG4gICAgfVxuXG4gICAgLnVrLWJ1dHRvbi1kZWZhdWx0OmFjdGl2ZSxcbiAgICAudWstYnV0dG9uLWRlZmF1bHQudWstYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtYnV0dG9uLWRlZmF1bHQtYWN0aXZlLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1idXR0b24tZGVmYXVsdC1hY3RpdmUtY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtYnV0dG9uLWRlZmF1bHQtYWN0aXZlKCk7XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBQcmltYXJ5XG4gICAgLy9cblxuICAgIC51ay1idXR0b24tcHJpbWFyeSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1idXR0b24tcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1idXR0b24tcHJpbWFyeSgpO1xuICAgIH1cblxuICAgIC51ay1idXR0b24tcHJpbWFyeTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1idXR0b24tcHJpbWFyeS1ob3Zlci1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1idXR0b24tcHJpbWFyeS1ob3ZlcigpO1xuICAgIH1cblxuICAgIC51ay1idXR0b24tcHJpbWFyeTphY3RpdmUsXG4gICAgLnVrLWJ1dHRvbi1wcmltYXJ5LnVrLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWFjdGl2ZS1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogQGludmVyc2UtYnV0dG9uLXByaW1hcnktYWN0aXZlLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWFjdGl2ZSgpO1xuICAgIH1cblxuICAgIC8vXG4gICAgLy8gU2Vjb25kYXJ5XG4gICAgLy9cblxuICAgIC51ay1idXR0b24tc2Vjb25kYXJ5IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogQGludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5KCk7XG4gICAgfVxuXG4gICAgLnVrLWJ1dHRvbi1zZWNvbmRhcnk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXIoKTtcbiAgICB9XG5cbiAgICAudWstYnV0dG9uLXNlY29uZGFyeTphY3RpdmUsXG4gICAgLnVrLWJ1dHRvbi1zZWNvbmRhcnkudWstYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlKCk7XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBUZXh0XG4gICAgLy9cblxuICAgIC51ay1idXR0b24tdGV4dCB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1idXR0b24tdGV4dC1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1idXR0b24tdGV4dCgpO1xuICAgIH1cblxuICAgIC51ay1idXR0b24tdGV4dDpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1idXR0b24tdGV4dC1ob3Zlci1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1idXR0b24tdGV4dC1ob3ZlcigpO1xuICAgIH1cblxuICAgIC51ay1idXR0b24tdGV4dDpkaXNhYmxlZCB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1idXR0b24tdGV4dC1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1idXR0b24tdGV4dC1kaXNhYmxlZCgpO1xuICAgIH1cblxuICAgIC8vXG4gICAgLy8gTGlua1xuICAgIC8vXG5cbiAgICAudWstYnV0dG9uLWxpbmsge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtYnV0dG9uLWxpbmstY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtYnV0dG9uLWxpbmsoKTtcbiAgICB9XG5cbiAgICAudWstYnV0dG9uLWxpbms6aG92ZXIgeyBjb2xvcjogQGludmVyc2UtYnV0dG9uLWxpbmstaG92ZXItY29sb3I7IH1cblxufVxuXG4uaG9vay1pbnZlcnNlLWJ1dHRvbi1kZWZhdWx0KCkge31cbi5ob29rLWludmVyc2UtYnV0dG9uLWRlZmF1bHQtaG92ZXIoKSB7fVxuLmhvb2staW52ZXJzZS1idXR0b24tZGVmYXVsdC1hY3RpdmUoKSB7fVxuLmhvb2staW52ZXJzZS1idXR0b24tcHJpbWFyeSgpIHt9XG4uaG9vay1pbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWhvdmVyKCkge31cbi5ob29rLWludmVyc2UtYnV0dG9uLXByaW1hcnktYWN0aXZlKCkge31cbi5ob29rLWludmVyc2UtYnV0dG9uLXNlY29uZGFyeSgpIHt9XG4uaG9vay1pbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXIoKSB7fVxuLmhvb2staW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWFjdGl2ZSgpIHt9XG4uaG9vay1pbnZlcnNlLWJ1dHRvbi10ZXh0KCkge31cbi5ob29rLWludmVyc2UtYnV0dG9uLXRleHQtaG92ZXIoKSB7fVxuLmhvb2staW52ZXJzZS1idXR0b24tdGV4dC1kaXNhYmxlZCgpIHt9XG4uaG9vay1pbnZlcnNlLWJ1dHRvbi1saW5rKCkge31cbiIsIi8vXG4vLyBDb21wb25lbnQ6IEJ1dHRvblxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBidXR0b24tdGV4dC1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZW1waGFzaXMtY29sb3I7XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBidXR0b24tdHJhbnNpdGlvbi1kdXJhdGlvbjogICAgICAgICAgICAgICAgICAgIDAuMXM7XG5cbkBpbnRlcm5hbC1idXR0b24tbW9kZTogICAgICAgICAgICAgICAgICAgICAgICAgIH4nJzsgLy8gc3RyaWtldGhyb3VnaCwgcmlwcGxlXG5cbkBidXR0b24tdGV4dC1tb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmU7IC8vIG5vbmUsIGxpbmUsIGFycm93LCBlbS1kYXNoLCBib3JkZXItYm90dG9tXG5AYnV0dG9uLXRleHQtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWJvcmRlci13aWR0aDtcbkBidXR0b24tdGV4dC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDb2xvcjtcbkBidXR0b24tdGV4dC1ob3Zlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDb2xvcjtcblxuQGludGVybmFsLWJ1dHRvbi10ZXh0LWxpbmUtYm90dG9tOiAgICAgICAgICAgICAgMDtcblxuQGludGVybmFsLWJ1dHRvbi10ZXh0LWFycm93LWltYWdlOiAgICAgICAgICAgICAgIFwiLi4vLi4vLi4vLi4vdWlraXQtdGhlbWVzL21hc3Rlci9pbWFnZXMvYnV0dG9uLXRleHQtYXJyb3cuc3ZnXCI7XG5AaW50ZXJuYWwtYnV0dG9uLXRleHQtYXJyb3ctcGFkZGluZzogICAgICAgICAgICA1cHg7XG5AaW50ZXJuYWwtYnV0dG9uLXRleHQtYXJyb3ctd2lkdGg6ICAgICAgICAgICAgICAyMnB4O1xuQGludGVybmFsLWJ1dHRvbi10ZXh0LWFycm93LXdpZHRoLWFuaW1hdGlvbjogICAgNXB4O1xuQGludGVybmFsLWJ1dHRvbi10ZXh0LWFycm93LWNvbG9yOiAgICAgICAgICAgICAgQGJ1dHRvbi10ZXh0LWNvbG9yO1xuQGludGVybmFsLWJ1dHRvbi10ZXh0LWFycm93LWhvdmVyLWNvbG9yOiAgICAgICAgQGJ1dHRvbi10ZXh0LWhvdmVyLWNvbG9yO1xuXG5AaW50ZXJuYWwtYnV0dG9uLXRleHQtZW0tZGFzaC1wYWRkaW5nOiAgICAgICAgICA4cHg7XG5AaW50ZXJuYWwtYnV0dG9uLXRleHQtZW0tZGFzaC1zaXplOiAgICAgICAgICAgICAyMHB4O1xuXG5AaW50ZXJuYWwtYnV0dG9uLWRlZmF1bHQtbW9kZTogICAgICAgICAgICAgICAgICB+Jyc7IC8vIGdsb3dcbkBpbnRlcm5hbC1idXR0b24tZGVmYXVsdC1nbG93LWdyYWRpZW50OiAgICAgICAgIH4nJztcbkBpbnRlcm5hbC1idXR0b24tZGVmYXVsdC1nbG93LWZpbHRlcjogICAgICAgICAgIH4nJztcbkBpbnRlcm5hbC1idXR0b24tZGVmYXVsdC1ob3Zlci1nbG93LWZpbHRlcjogICAgIH4nJztcblxuQGludGVybmFsLWJ1dHRvbi1wcmltYXJ5LW1vZGU6ICAgICAgICAgICAgICAgICAgficnOyAvLyBnbG93XG5AaW50ZXJuYWwtYnV0dG9uLXByaW1hcnktZ2xvdy1ncmFkaWVudDogICAgICAgICB+Jyc7XG5AaW50ZXJuYWwtYnV0dG9uLXByaW1hcnktZ2xvdy1maWx0ZXI6ICAgICAgICAgICB+Jyc7XG5AaW50ZXJuYWwtYnV0dG9uLXByaW1hcnktaG92ZXItZ2xvdy1maWx0ZXI6ICAgICB+Jyc7XG5cbkBpbnRlcm5hbC1idXR0b24tc2Vjb25kYXJ5LW1vZGU6ICAgICAgICAgICAgICAgIH4nJzsgLy8gZ2xvd1xuQGludGVybmFsLWJ1dHRvbi1zZWNvbmRhcnktZ2xvdy1ncmFkaWVudDogICAgICAgficnO1xuQGludGVybmFsLWJ1dHRvbi1zZWNvbmRhcnktZ2xvdy1maWx0ZXI6ICAgICAgICAgficnO1xuQGludGVybmFsLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXItZ2xvdy1maWx0ZXI6ICAgficnO1xuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWJ1dHRvbigpIHtcbiAgICB0cmFuc2l0aW9uOiBAYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24gZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJhY2tncm91bmQtcG9zaXRpb24sIGJhY2tncm91bmQtc2l6ZSwgYm9yZGVyLWNvbG9yLCBib3gtc2hhZG93O1xufVxuXG4uaG9vay1idXR0b24taG92ZXIoKSB7fVxuLmhvb2stYnV0dG9uLWFjdGl2ZSgpIHt9XG5cbi8vXG4vLyBTdHJpa2V0aHJvdWdoXG4vL1xuXG4uaG9vay1idXR0b24oKSB3aGVuIChAaW50ZXJuYWwtYnV0dG9uLW1vZGUgPSBzdHJpa2V0aHJvdWdoKSB7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOm5vdCgudWstYnV0dG9uLXRleHQpOm5vdCgudWstYnV0dG9uLWxpbmspOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogfidjYWxjKDUwJSAtIDFweCknO1xuICAgICAgICBsZWZ0OiB+J2NhbGMoQHtidXR0b24tcGFkZGluZy1ob3Jpem9udGFsfSAtIDVweCknO1xuICAgICAgICByaWdodDogfidjYWxjKDEwMCUgKyAzcHggLSAoQHtidXR0b24tcGFkZGluZy1ob3Jpem9udGFsfSAtIDVweCkpJztcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgdHJhbnNpdGlvbjogcmlnaHQgMC4ycyBlYXNlO1xuICAgIH1cblxufVxuXG4uaG9vay1idXR0b24taG92ZXIoKSB3aGVuIChAaW50ZXJuYWwtYnV0dG9uLW1vZGUgPSBzdHJpa2V0aHJvdWdoKSB7XG5cbiAgICAmOm5vdCgudWstYnV0dG9uLXRleHQpOm5vdCgudWstYnV0dG9uLWxpbmspOjpiZWZvcmUgeyByaWdodDogfidjYWxjKEB7YnV0dG9uLXBhZGRpbmctaG9yaXpvbnRhbH0gLSA1cHgpJzsgfVxuXG59XG5cbi8vXG4vLyBSaXBwbGVcbi8vXG5cbi5ob29rLWJ1dHRvbigpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tbW9kZSA9IHJpcHBsZSkge1xuXG4gICAgJjpub3QoLnVrLWJ1dHRvbi10ZXh0KTpub3QoLnVrLWJ1dHRvbi1saW5rKSB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDA7XG4gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNXM7XG4gICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjE2NSwuODUsLjQ1LDEpO1xuICAgIH1cblxufVxuXG4uaG9vay1idXR0b24taG92ZXIoKSB3aGVuIChAaW50ZXJuYWwtYnV0dG9uLW1vZGUgPSByaXBwbGUpIHtcblxuICAgICY6bm90KC51ay1idXR0b24tdGV4dCk6bm90KC51ay1idXR0b24tbGluaykgeyBiYWNrZ3JvdW5kLXNpemU6IDE1MDAwJTsgfVxuXG59XG5cbi5ob29rLWJ1dHRvbi1hY3RpdmUoKSB3aGVuIChAaW50ZXJuYWwtYnV0dG9uLW1vZGUgPSByaXBwbGUpIHtcblxuICAgICY6bm90KC51ay1idXR0b24tdGV4dCk6bm90KC51ay1idXR0b24tbGluaykge1xuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwcztcbiAgICB9XG5cbn1cblxuLy9cbi8vIEdsb3dcbi8vXG5cbi5ob29rLWJ1dHRvbigpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tZGVmYXVsdC1tb2RlID0gZ2xvdykgYW5kIG5vdCAoQGJ1dHRvbi1ib3JkZXItcmFkaXVzID0gMCksXG4gICAgICAgICAgICAgICAgICAgIChAaW50ZXJuYWwtYnV0dG9uLXByaW1hcnktbW9kZSA9IGdsb3cpIGFuZCBub3QgKEBidXR0b24tYm9yZGVyLXJhZGl1cyA9IDApLFxuICAgICAgICAgICAgICAgICAgICAoQGludGVybmFsLWJ1dHRvbi1zZWNvbmRhcnktbW9kZSA9IGdsb3cpIGFuZCBub3QgKEBidXR0b24tYm9yZGVyLXJhZGl1cyA9IDApIHtcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7IGJvcmRlci1yYWRpdXM6IEBidXR0b24tYm9yZGVyLXJhZGl1czsgfVxuXG59XG5cblxuLy8gU3R5bGUgbW9kaWZpZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gUmlwcGxlXG4uaG9vay1idXR0b24tZGVmYXVsdCgpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tbW9kZSA9IHJpcHBsZSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDEwMCUsIEBidXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kIDElLCB0cmFuc3BhcmVudCAxJSk7XG59XG5cbi5ob29rLWJ1dHRvbi1kZWZhdWx0LWhvdmVyKCkgd2hlbiAoQGludGVybmFsLWJ1dHRvbi1tb2RlID0gcmlwcGxlKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGJ1dHRvbi1kZWZhdWx0LWJhY2tncm91bmQ7XG59XG5cbi5ob29rLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZSgpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tbW9kZSA9IHJpcHBsZSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG5cbi8vIEdsb3dcbi5ob29rLWJ1dHRvbi1kZWZhdWx0KCkgd2hlbiAoQGludGVybmFsLWJ1dHRvbi1kZWZhdWx0LW1vZGUgPSBnbG93KSB7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgLy8gRml4IFNhZmFyaSBmbGlja2VyaW5nXG4gICAgICAgIHdpbGwtY2hhbmdlOiBmaWx0ZXI7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogQGludGVybmFsLWJ1dHRvbi1kZWZhdWx0LWdsb3ctZ3JhZGllbnQ7XG4gICAgICAgIGZpbHRlcjogQGludGVybmFsLWJ1dHRvbi1kZWZhdWx0LWdsb3ctZmlsdGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBmaWx0ZXIgQGJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uIGVhc2UtaW4tb3V0O1xuICAgIH1cblxufVxuXG4uaG9vay1idXR0b24tZGVmYXVsdC1ob3ZlcigpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tZGVmYXVsdC1tb2RlID0gZ2xvdykgYW5kIG5vdCAoQGludGVybmFsLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWdsb3ctZmlsdGVyID0gficnKSB7XG5cbiAgICAmOjpiZWZvcmUgeyBmaWx0ZXI6IEBpbnRlcm5hbC1idXR0b24tZGVmYXVsdC1ob3Zlci1nbG93LWZpbHRlcjsgfVxuXG59XG5cbi5ob29rLWJ1dHRvbi1taXNjKCkgd2hlbiAoQGludGVybmFsLWJ1dHRvbi1kZWZhdWx0LW1vZGUgPSBnbG93KSB7XG5cbiAgICAudWstYnV0dG9uLWRlZmF1bHQ6bm90KC51ay1oYWNrKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxufVxuXG4udWstYnV0dG9uLWRlZmF1bHQ6OmFmdGVyOmV4dGVuZCgudWstYnV0dG9uLWRlZmF1bHQpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tZGVmYXVsdC1tb2RlID0gZ2xvdykge31cbi51ay1idXR0b24tZGVmYXVsdDpob3Zlcjo6YWZ0ZXI6ZXh0ZW5kKC51ay1idXR0b24tZGVmYXVsdDpob3Zlcikgd2hlbiAoQGludGVybmFsLWJ1dHRvbi1kZWZhdWx0LW1vZGUgPSBnbG93KSB7fVxuLnVrLWJ1dHRvbi1kZWZhdWx0OmFjdGl2ZTo6YWZ0ZXI6ZXh0ZW5kKC51ay1idXR0b24tZGVmYXVsdDphY3RpdmUpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tZGVmYXVsdC1tb2RlID0gZ2xvdykge31cblxuLy9cbi8vIFByaW1hcnlcbi8vXG5cbi8vIFJpcHBsZVxuLmhvb2stYnV0dG9uLXByaW1hcnkoKSB3aGVuIChAaW50ZXJuYWwtYnV0dG9uLW1vZGUgPSByaXBwbGUpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSAxMDAlLCBAYnV0dG9uLXByaW1hcnktaG92ZXItYmFja2dyb3VuZCAxJSwgdHJhbnNwYXJlbnQgMSUpO1xufVxuXG4uaG9vay1idXR0b24tcHJpbWFyeS1ob3ZlcigpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tbW9kZSA9IHJpcHBsZSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBidXR0b24tcHJpbWFyeS1iYWNrZ3JvdW5kO1xufVxuXG4uaG9vay1idXR0b24tcHJpbWFyeS1hY3RpdmUoKSB3aGVuIChAaW50ZXJuYWwtYnV0dG9uLW1vZGUgPSByaXBwbGUpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuXG4vLyBHbG93XG4uaG9vay1idXR0b24tcHJpbWFyeSgpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tcHJpbWFyeS1tb2RlID0gZ2xvdykge1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogQGludGVybmFsLWJ1dHRvbi1wcmltYXJ5LWdsb3ctZ3JhZGllbnQ7XG4gICAgICAgIGZpbHRlcjogQGludGVybmFsLWJ1dHRvbi1wcmltYXJ5LWdsb3ctZmlsdGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBmaWx0ZXIgQGJ1dHRvbi10cmFuc2l0aW9uLWR1cmF0aW9uIGVhc2UtaW4tb3V0O1xuICAgIH1cblxufVxuXG4uaG9vay1idXR0b24tcHJpbWFyeS1ob3ZlcigpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tcHJpbWFyeS1tb2RlID0gZ2xvdykgYW5kIG5vdCAoQGludGVybmFsLWJ1dHRvbi1wcmltYXJ5LWhvdmVyLWdsb3ctZmlsdGVyID0gficnKSB7XG5cbiAgICAmOjpiZWZvcmUgeyBmaWx0ZXI6IEBpbnRlcm5hbC1idXR0b24tcHJpbWFyeS1ob3Zlci1nbG93LWZpbHRlcjsgfVxuXG59XG5cbi5ob29rLWJ1dHRvbi1taXNjKCkgd2hlbiAoQGludGVybmFsLWJ1dHRvbi1wcmltYXJ5LW1vZGUgPSBnbG93KSB7XG5cbiAgICAudWstYnV0dG9uLXByaW1hcnk6bm90KC51ay1oYWNrKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxufVxuXG4udWstYnV0dG9uLXByaW1hcnk6OmFmdGVyOmV4dGVuZCgudWstYnV0dG9uLXByaW1hcnkpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tcHJpbWFyeS1tb2RlID0gZ2xvdykge31cbi51ay1idXR0b24tcHJpbWFyeTpob3Zlcjo6YWZ0ZXI6ZXh0ZW5kKC51ay1idXR0b24tcHJpbWFyeTpob3Zlcikgd2hlbiAoQGludGVybmFsLWJ1dHRvbi1wcmltYXJ5LW1vZGUgPSBnbG93KSB7fVxuLnVrLWJ1dHRvbi1wcmltYXJ5OmFjdGl2ZTo6YWZ0ZXI6ZXh0ZW5kKC51ay1idXR0b24tcHJpbWFyeTphY3RpdmUpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tcHJpbWFyeS1tb2RlID0gZ2xvdykge31cblxuLy9cbi8vIFNlY29uZGFyeVxuLy9cblxuLy8gUmlwcGxlXG4uaG9vay1idXR0b24tc2Vjb25kYXJ5KCkgd2hlbiAoQGludGVybmFsLWJ1dHRvbi1tb2RlID0gcmlwcGxlKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgMTAwJSwgQGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZCAxJSwgdHJhbnNwYXJlbnQgMSUpO1xufVxuXG4uaG9vay1idXR0b24tc2Vjb25kYXJ5LWhvdmVyKCkgd2hlbiAoQGludGVybmFsLWJ1dHRvbi1tb2RlID0gcmlwcGxlKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZDtcbn1cblxuLmhvb2stYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUoKSB3aGVuIChAaW50ZXJuYWwtYnV0dG9uLW1vZGUgPSByaXBwbGUpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuXG4vLyBHbG93XG4uaG9vay1idXR0b24tc2Vjb25kYXJ5KCkgd2hlbiAoQGludGVybmFsLWJ1dHRvbi1zZWNvbmRhcnktbW9kZSA9IGdsb3cpIHtcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IEBpbnRlcm5hbC1idXR0b24tc2Vjb25kYXJ5LWdsb3ctZ3JhZGllbnQ7XG4gICAgICAgIGZpbHRlcjogQGludGVybmFsLWJ1dHRvbi1zZWNvbmRhcnktZ2xvdy1maWx0ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGZpbHRlciBAYnV0dG9uLXRyYW5zaXRpb24tZHVyYXRpb24gZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG59XG5cbi5ob29rLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXIoKSB3aGVuIChAaW50ZXJuYWwtYnV0dG9uLXNlY29uZGFyeS1tb2RlID0gZ2xvdykgYW5kIG5vdCAoQGludGVybmFsLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXItZ2xvdy1maWx0ZXIgPSB+JycpIHtcblxuICAgICY6OmJlZm9yZSB7IGZpbHRlcjogQGludGVybmFsLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXItZ2xvdy1maWx0ZXI7IH1cblxufVxuXG4uaG9vay1idXR0b24tbWlzYygpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tc2Vjb25kYXJ5LW1vZGUgPSBnbG93KSB7XG5cbiAgICAudWstYnV0dG9uLXNlY29uZGFyeTpub3QoLnVrLWhhY2spIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG59XG5cbi51ay1idXR0b24tc2Vjb25kYXJ5OjphZnRlcjpleHRlbmQoLnVrLWJ1dHRvbi1zZWNvbmRhcnkpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tc2Vjb25kYXJ5LW1vZGUgPSBnbG93KSB7fVxuLnVrLWJ1dHRvbi1zZWNvbmRhcnk6aG92ZXI6OmFmdGVyOmV4dGVuZCgudWstYnV0dG9uLXNlY29uZGFyeTpob3Zlcikgd2hlbiAoQGludGVybmFsLWJ1dHRvbi1zZWNvbmRhcnktbW9kZSA9IGdsb3cpIHt9XG4udWstYnV0dG9uLXNlY29uZGFyeTphY3RpdmU6OmFmdGVyOmV4dGVuZCgudWstYnV0dG9uLXNlY29uZGFyeTphY3RpdmUpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tc2Vjb25kYXJ5LW1vZGUgPSBnbG93KSB7fVxuXG4vL1xuLy8gRGFuZ2VyXG4vL1xuXG4vLyBSaXBwbGVcbi5ob29rLWJ1dHRvbi1kYW5nZXIoKSB3aGVuIChAaW50ZXJuYWwtYnV0dG9uLW1vZGUgPSByaXBwbGUpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSAxMDAlLCBAYnV0dG9uLWRhbmdlci1ob3Zlci1iYWNrZ3JvdW5kIDElLCB0cmFuc3BhcmVudCAxJSk7XG59XG5cbi5ob29rLWJ1dHRvbi1kYW5nZXItaG92ZXIoKSB3aGVuIChAaW50ZXJuYWwtYnV0dG9uLW1vZGUgPSByaXBwbGUpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYnV0dG9uLWRhbmdlci1iYWNrZ3JvdW5kO1xufVxuXG4uaG9vay1idXR0b24tZGFuZ2VyLWFjdGl2ZSgpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tbW9kZSA9IHJpcHBsZSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG5cblxuLy8gRGlzYWJsZWRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gU3RyaWtldGhyb3VnaFxuLy9cblxuLmhvb2stYnV0dG9uLWRpc2FibGVkKCkgd2hlbiAoQGludGVybmFsLWJ1dHRvbi1tb2RlID0gc3RyaWtldGhyb3VnaCkge1xuXG4gICAgJjo6YmVmb3JlIHsgZGlzcGxheTogbm9uZTsgfVxuXG59XG5cbi8vXG4vLyBHbG93XG4vL1xuXG4uaG9vay1idXR0b24tZGlzYWJsZWQoKSB3aGVuIChAaW50ZXJuYWwtYnV0dG9uLWRlZmF1bHQtbW9kZSA9IGdsb3cpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQGludGVybmFsLWJ1dHRvbi1wcmltYXJ5LW1vZGUgPSBnbG93KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEBpbnRlcm5hbC1idXR0b24tc2Vjb25kYXJ5LW1vZGUgPSBnbG93KSB7XG5cbiAgICAmOmFmdGVyLFxuICAgICY6YmVmb3JlIHsgZGlzcGxheTogbm9uZTsgfVxuXG59XG5cblxuLy8gU2l6ZSBtb2RpZmllcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gU3RyaWtldGhyb3VnaFxuLy9cblxuLmhvb2stYnV0dG9uLXNtYWxsKCkgd2hlbiAoQGludGVybmFsLWJ1dHRvbi1tb2RlID0gc3RyaWtldGhyb3VnaCkge1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgbGVmdDogfidjYWxjKEB7YnV0dG9uLXNtYWxsLXBhZGRpbmctaG9yaXpvbnRhbH0gLSAzcHgpJztcbiAgICAgICAgcmlnaHQ6IH4nY2FsYygxMDAlICsgM3B4IC0gKEB7YnV0dG9uLXNtYWxsLXBhZGRpbmctaG9yaXpvbnRhbH0gLSAzcHgpKSc7XG4gICAgfVxuXG59XG5cbi5ob29rLWJ1dHRvbi1sYXJnZSgpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tbW9kZSA9IHN0cmlrZXRocm91Z2gpIHtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGxlZnQ6IH4nY2FsYyhAe2J1dHRvbi1sYXJnZS1wYWRkaW5nLWhvcml6b250YWx9IC0gNXB4KSc7XG4gICAgICAgIHJpZ2h0OiB+J2NhbGMoMTAwJSArIDNweCAtIChAe2J1dHRvbi1sYXJnZS1wYWRkaW5nLWhvcml6b250YWx9IC0gNXB4KSknO1xuICAgIH1cblxufVxuXG4vL1xuLy8gR2xvd1xuLy9cblxuLmhvb2stYnV0dG9uLXNtYWxsKCkgd2hlbiAoQGludGVybmFsLWJ1dHRvbi1kZWZhdWx0LW1vZGUgPSBnbG93KSBhbmQgbm90IChAYnV0dG9uLXNtYWxsLWJvcmRlci1yYWRpdXMgPSAwKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKEBpbnRlcm5hbC1idXR0b24tcHJpbWFyeS1tb2RlID0gZ2xvdykgYW5kIG5vdCAoQGJ1dHRvbi1zbWFsbC1ib3JkZXItcmFkaXVzID0gMCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChAaW50ZXJuYWwtYnV0dG9uLXNlY29uZGFyeS1tb2RlID0gZ2xvdykgYW5kIG5vdCAoQGJ1dHRvbi1zbWFsbC1ib3JkZXItcmFkaXVzID0gMCkge1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHsgYm9yZGVyLXJhZGl1czogQGJ1dHRvbi1zbWFsbC1ib3JkZXItcmFkaXVzOyB9XG5cbn1cblxuLmhvb2stYnV0dG9uLWxhcmdlKCkgd2hlbiAoQGludGVybmFsLWJ1dHRvbi1kZWZhdWx0LW1vZGUgPSBnbG93KSBhbmQgbm90IChAYnV0dG9uLWxhcmdlLWJvcmRlci1yYWRpdXMgPSAwKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKEBpbnRlcm5hbC1idXR0b24tcHJpbWFyeS1tb2RlID0gZ2xvdykgYW5kIG5vdCAoQGJ1dHRvbi1sYXJnZS1ib3JkZXItcmFkaXVzID0gMCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChAaW50ZXJuYWwtYnV0dG9uLXNlY29uZGFyeS1tb2RlID0gZ2xvdykgYW5kIG5vdCAoQGJ1dHRvbi1sYXJnZS1ib3JkZXItcmFkaXVzID0gMCkge1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHsgYm9yZGVyLXJhZGl1czogQGJ1dHRvbi1sYXJnZS1ib3JkZXItcmFkaXVzOyB9XG5cbn1cblxuXG4vLyBUZXh0IG1vZGlmaWVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIExpbmUgZWZmZWN0XG4vL1xuXG4uaG9vay1idXR0b24tdGV4dCgpIHdoZW4gKEBidXR0b24tdGV4dC1tb2RlID0gbGluZSkge1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDA7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogQGludGVybmFsLWJ1dHRvbi10ZXh0LWxpbmUtYm90dG9tO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMTAwJTtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIGJvcmRlci1ib3R0b206IEBidXR0b24tdGV4dC1ib3JkZXItd2lkdGggc29saWQgQGJ1dHRvbi10ZXh0LWJvcmRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogcmlnaHQgMC4zcyBlYXNlLW91dDtcbiAgICB9XG5cbn1cblxuLmhvb2stYnV0dG9uLXRleHQtaG92ZXIoKSB3aGVuIChAYnV0dG9uLXRleHQtbW9kZSA9IGxpbmUpIHtcblxuICAgICY6OmJlZm9yZSB7IHJpZ2h0OiAwOyB9XG5cbn1cblxuLmhvb2stYnV0dG9uLXRleHQtZGlzYWJsZWQoKSB3aGVuIChAYnV0dG9uLXRleHQtbW9kZSA9IGxpbmUpIHtcblxuICAgICY6OmJlZm9yZSB7IGRpc3BsYXk6IG5vbmU7IH1cblxufVxuXG4vL1xuLy8gSWNvblxuLy9cblxuLmhvb2stYnV0dG9uLXRleHQoKSB3aGVuIChAYnV0dG9uLXRleHQtbW9kZSA9IGFycm93KSB7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1yaWdodDogKEBpbnRlcm5hbC1idXR0b24tdGV4dC1hcnJvdy13aWR0aCArIEBpbnRlcm5hbC1idXR0b24tdGV4dC1hcnJvdy1wYWRkaW5nKTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogQGludGVybmFsLWJ1dHRvbi10ZXh0LWFycm93LXdpZHRoO1xuICAgICAgICAuc3ZnLWZpbGwoQGludGVybmFsLWJ1dHRvbi10ZXh0LWFycm93LWltYWdlLCBcIiMwMDBcIiwgQGludGVybmFsLWJ1dHRvbi10ZXh0LWFycm93LWNvbG9yKTtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogfidjYWxjKDEwMCUgLSBAe2ludGVybmFsLWJ1dHRvbi10ZXh0LWFycm93LXdpZHRoLWFuaW1hdGlvbn0pIDUwJSc7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtcG9zaXRpb24gMC4ycyBlYXNlLW91dDtcbiAgICB9XG5cbn1cblxuLmhvb2stYnV0dG9uLXRleHQtaG92ZXIoKSB3aGVuIChAYnV0dG9uLXRleHQtbW9kZSA9IGFycm93KSB7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICAuc3ZnLWZpbGwoQGludGVybmFsLWJ1dHRvbi10ZXh0LWFycm93LWltYWdlLCBcIiMwMDBcIiwgQGludGVybmFsLWJ1dHRvbi10ZXh0LWFycm93LWhvdmVyLWNvbG9yKTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA1MCU7XG4gICAgfVxuXG59XG5cbi8vXG4vLyBFbSBkYXNoXG4vL1xuXG4uaG9vay1idXR0b24tdGV4dCgpIHdoZW4gKEBidXR0b24tdGV4dC1tb2RlID0gZW0tZGFzaCkge1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogKEBpbnRlcm5hbC1idXR0b24tdGV4dC1lbS1kYXNoLXNpemUgKyBAaW50ZXJuYWwtYnV0dG9uLXRleHQtZW0tZGFzaC1wYWRkaW5nKTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiB+J2NhbGMoNTAlIC0gMXB4KSc7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiBAaW50ZXJuYWwtYnV0dG9uLXRleHQtZW0tZGFzaC1zaXplO1xuICAgICAgICBib3JkZXItYm90dG9tOiBAYnV0dG9uLXRleHQtYm9yZGVyLXdpZHRoIHNvbGlkIEBidXR0b24tdGV4dC1ib3JkZXI7XG4gICAgfVxuXG59XG5cbi5ob29rLWJ1dHRvbi10ZXh0LWhvdmVyKCkgd2hlbiAoQGJ1dHRvbi10ZXh0LW1vZGUgPSBlbS1kYXNoKSBhbmQgbm90ICgoQGJ1dHRvbi10ZXh0LWJvcmRlciA9IEBidXR0b24tdGV4dC1ob3Zlci1ib3JkZXIpIGFuZCAoQGJ1dHRvbi10ZXh0LWhvdmVyLWJvcmRlciA9IHRyYW5zcGFyZW50KSkge1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQGJ1dHRvbi10ZXh0LWhvdmVyLWJvcmRlcjtcbiAgICB9XG59XG5cbi8vXG4vLyBCb3JkZXIgYm90dG9tXG4vL1xuXG4uaG9vay1idXR0b24tdGV4dCgpIHdoZW4gKEBidXR0b24tdGV4dC1tb2RlID0gYm9yZGVyLWJvdHRvbSkge1xuICAgIGJvcmRlci1ib3R0b206IEBidXR0b24tdGV4dC1ib3JkZXItd2lkdGggc29saWQgQGJ1dHRvbi10ZXh0LWJvcmRlcjtcbn1cblxuLmhvb2stYnV0dG9uLXRleHQtaG92ZXIoKSB3aGVuIChAYnV0dG9uLXRleHQtbW9kZSA9IGJvcmRlci1ib3R0b20pIGFuZCBub3QgKChAYnV0dG9uLXRleHQtYm9yZGVyID0gQGJ1dHRvbi10ZXh0LWhvdmVyLWJvcmRlcikgYW5kIChAYnV0dG9uLXRleHQtaG92ZXItYm9yZGVyID0gdHJhbnNwYXJlbnQpKSB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQGJ1dHRvbi10ZXh0LWhvdmVyLWJvcmRlcjtcbn1cblxuXG4vLyBMaW5rIG1vZGlmaWVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYnV0dG9uLWxpbmsoKSB7fVxuXG5cbi8vIE1pc2NlbGxhbmVvdXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1idXR0b24tbWlzYygpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tbW9kZSA9IHN0cmlrZXRocm91Z2gpIHtcblxuICAgIC51ay1idXR0b24tc21hbGw6aG92ZXIge1xuXG4gICAgICAgICY6OmJlZm9yZSB7IHJpZ2h0OiB+J2NhbGMoQHtidXR0b24tc21hbGwtcGFkZGluZy1ob3Jpem9udGFsfSAtIDNweCknOyB9XG5cbiAgICB9XG5cbiAgICAudWstYnV0dG9uLWxhcmdlOmhvdmVyIHtcblxuICAgICAgICAmOjpiZWZvcmUgeyByaWdodDogfidjYWxjKEB7YnV0dG9uLWxhcmdlLXBhZGRpbmctaG9yaXpvbnRhbH0gLSA1cHgpJzsgfVxuXG4gICAgfVxuXG59XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbnZlcnNlLWJ1dHRvbi10ZXh0LWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuXG4vL1xuLy8gTmV3XG4vL1xuXG5AaW50ZXJuYWwtaW52ZXJzZS1idXR0b24tZGVmYXVsdC1nbG93LWdyYWRpZW50OiAgICAgICAgIH4nJztcbkBpbnRlcm5hbC1pbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWdsb3ctZ3JhZGllbnQ6ICAgICAgICAgficnO1xuQGludGVybmFsLWludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1nbG93LWdyYWRpZW50OiAgICAgICB+Jyc7XG5cbkBpbnRlcm5hbC1pbnZlcnNlLWJ1dHRvbi10ZXh0LWFycm93LWNvbG9yOiAgICAgICAgICAgICAgQGludmVyc2UtYnV0dG9uLXRleHQtY29sb3I7XG5AaW50ZXJuYWwtaW52ZXJzZS1idXR0b24tdGV4dC1hcnJvdy1ob3Zlci1jb2xvcjogICAgICAgIEBpbnZlcnNlLWJ1dHRvbi10ZXh0LWhvdmVyLWNvbG9yO1xuXG5AaW52ZXJzZS1idXR0b24tdGV4dC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1ib3JkZXI7XG5AaW52ZXJzZS1idXR0b24tdGV4dC1ob3Zlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuXG4uaG9vay1pbnZlcnNlLWJ1dHRvbi1kZWZhdWx0KCkge31cblxuLmhvb2staW52ZXJzZS1idXR0b24tZGVmYXVsdCgpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tbW9kZSA9IHJpcHBsZSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDEwMCUsIEBpbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQgMSUsIHRyYW5zcGFyZW50IDElKTtcbn1cbi5ob29rLWludmVyc2UtYnV0dG9uLWRlZmF1bHQtaG92ZXIoKSB3aGVuIChAaW50ZXJuYWwtYnV0dG9uLW1vZGUgPSByaXBwbGUpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1idXR0b24tZGVmYXVsdC1iYWNrZ3JvdW5kO1xufVxuLmhvb2staW52ZXJzZS1idXR0b24tZGVmYXVsdC1hY3RpdmUoKSB3aGVuIChAaW50ZXJuYWwtYnV0dG9uLW1vZGUgPSByaXBwbGUpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuXG4uaG9vay1pbnZlcnNlKCkgd2hlbiAoQGludGVybmFsLWJ1dHRvbi1kZWZhdWx0LW1vZGUgPSBnbG93KSBhbmQgbm90IChAaW50ZXJuYWwtaW52ZXJzZS1idXR0b24tZGVmYXVsdC1nbG93LWdyYWRpZW50ID0gficnKSB7XG5cbiAgICAudWstYnV0dG9uLWRlZmF1bHQ6OmJlZm9yZSB7IGJhY2tncm91bmQtaW1hZ2U6IEBpbnRlcm5hbC1pbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWdsb3ctZ3JhZGllbnQ7IH1cblxufVxuLmhvb2staW52ZXJzZSgpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tZGVmYXVsdC1tb2RlID0gZ2xvdykge1xuXG4gICAgLnVrLWJ1dHRvbi1kZWZhdWx0OjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWJhY2tncm91bmQ7XG4gICAgICAgIC5ob29rLWludmVyc2UtYnV0dG9uLWRlZmF1bHQoKTtcbiAgICB9XG5cbiAgICAudWstYnV0dG9uLWRlZmF1bHQ6aG92ZXI6OmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtYnV0dG9uLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWhvdmVyKCk7XG4gICAgfVxuXG4gICAgLnVrLWJ1dHRvbi1kZWZhdWx0OmFjdGl2ZTo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1idXR0b24tZGVmYXVsdC1hY3RpdmUtYmFja2dyb3VuZDtcbiAgICAgICAgLmhvb2staW52ZXJzZS1idXR0b24tZGVmYXVsdC1hY3RpdmUoKTtcbiAgICB9XG5cbn1cblxuLmhvb2staW52ZXJzZS1idXR0b24tcHJpbWFyeSgpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tbW9kZSA9IHJpcHBsZSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDEwMCUsIEBpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWhvdmVyLWJhY2tncm91bmQgMSUsIHRyYW5zcGFyZW50IDElKTtcbn1cbi5ob29rLWludmVyc2UtYnV0dG9uLXByaW1hcnktaG92ZXIoKSB3aGVuIChAaW50ZXJuYWwtYnV0dG9uLW1vZGUgPSByaXBwbGUpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1idXR0b24tcHJpbWFyeS1iYWNrZ3JvdW5kO1xufVxuLmhvb2staW52ZXJzZS1idXR0b24tcHJpbWFyeS1hY3RpdmUoKSB3aGVuIChAaW50ZXJuYWwtYnV0dG9uLW1vZGUgPSByaXBwbGUpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuXG4uaG9vay1pbnZlcnNlKCkgd2hlbiAoQGludGVybmFsLWJ1dHRvbi1kZWZhdWx0LW1vZGUgPSBnbG93KSBhbmQgbm90IChAaW50ZXJuYWwtaW52ZXJzZS1idXR0b24tcHJpbWFyeS1nbG93LWdyYWRpZW50ID0gficnKSB7XG5cbiAgICAudWstYnV0dG9uLXByaW1hcnk6OmJlZm9yZSB7IGJhY2tncm91bmQtaW1hZ2U6IEBpbnRlcm5hbC1pbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWdsb3ctZ3JhZGllbnQ7IH1cblxufVxuLmhvb2staW52ZXJzZSgpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tcHJpbWFyeS1tb2RlID0gZ2xvdykge1xuXG4gICAgLnVrLWJ1dHRvbi1wcmltYXJ5OjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQ7XG4gICAgICAgIC5ob29rLWludmVyc2UtYnV0dG9uLXByaW1hcnkoKTtcbiAgICB9XG5cbiAgICAudWstYnV0dG9uLXByaW1hcnk6aG92ZXI6OmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtYnV0dG9uLXByaW1hcnktaG92ZXItYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWhvdmVyLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWhvdmVyKCk7XG4gICAgfVxuXG4gICAgLnVrLWJ1dHRvbi1wcmltYXJ5OmFjdGl2ZTo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1idXR0b24tcHJpbWFyeS1hY3RpdmUtYmFja2dyb3VuZDtcbiAgICAgICAgLmhvb2staW52ZXJzZS1idXR0b24tcHJpbWFyeS1hY3RpdmUoKTtcbiAgICB9XG5cbn1cblxuLmhvb2staW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5KCkgd2hlbiAoQGludGVybmFsLWJ1dHRvbi1tb2RlID0gcmlwcGxlKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgMTAwJSwgQGludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kIDElLCB0cmFuc3BhcmVudCAxJSk7XG59XG4uaG9vay1pbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXIoKSB3aGVuIChAaW50ZXJuYWwtYnV0dG9uLW1vZGUgPSByaXBwbGUpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQ7XG59XG4uaG9vay1pbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlKCkgd2hlbiAoQGludGVybmFsLWJ1dHRvbi1tb2RlID0gcmlwcGxlKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cblxuLmhvb2staW52ZXJzZSgpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tZGVmYXVsdC1tb2RlID0gZ2xvdykgYW5kIG5vdCAoQGludGVybmFsLWludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1nbG93LWdyYWRpZW50ID0gficnKSB7XG5cbiAgICAudWstYnV0dG9uLXNlY29uZGFyeTo6YmVmb3JlIHsgYmFja2dyb3VuZC1pbWFnZTogQGludGVybmFsLWludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1nbG93LWdyYWRpZW50OyB9XG5cbn1cbi5ob29rLWludmVyc2UoKSB3aGVuIChAaW50ZXJuYWwtYnV0dG9uLXNlY29uZGFyeS1tb2RlID0gZ2xvdykge1xuXG4gICAgLnVrLWJ1dHRvbi1zZWNvbmRhcnk6OmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kO1xuICAgICAgICAuaG9vay1pbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnkoKTtcbiAgICB9XG5cbiAgICAudWstYnV0dG9uLXNlY29uZGFyeTpob3Zlcjo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWhvdmVyLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXIoKTtcbiAgICB9XG5cbiAgICAudWstYnV0dG9uLXNlY29uZGFyeTphY3RpdmU6OmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtYmFja2dyb3VuZDtcbiAgICAgICAgLmhvb2staW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWFjdGl2ZSgpO1xuICAgIH1cblxufVxuXG4uaG9vay1pbnZlcnNlLWJ1dHRvbi10ZXh0KCkgd2hlbiAoQGJ1dHRvbi10ZXh0LW1vZGUgPSBsaW5lKSB7XG4gICAgJjo6YmVmb3JlIHsgYm9yZGVyLWJvdHRvbS1jb2xvcjogQGludmVyc2UtYnV0dG9uLXRleHQtYm9yZGVyOyB9XG59XG5cbi5ob29rLWludmVyc2UtYnV0dG9uLXRleHQoKSB3aGVuIChAYnV0dG9uLXRleHQtbW9kZSA9IGFycm93KSB7XG4gICAgJjo6YmVmb3JlIHsgLnN2Zy1maWxsKEBpbnRlcm5hbC1idXR0b24tdGV4dC1hcnJvdy1pbWFnZSwgXCIjMDAwXCIsIEBpbnRlcm5hbC1pbnZlcnNlLWJ1dHRvbi10ZXh0LWFycm93LWNvbG9yKTsgfVxufVxuLmhvb2staW52ZXJzZS1idXR0b24tdGV4dC1ob3ZlcigpIHdoZW4gKEBidXR0b24tdGV4dC1tb2RlID0gYXJyb3cpIHtcbiAgICAmOjpiZWZvcmUgeyAuc3ZnLWZpbGwoQGludGVybmFsLWJ1dHRvbi10ZXh0LWFycm93LWltYWdlLCBcIiMwMDBcIiwgQGludGVybmFsLWludmVyc2UtYnV0dG9uLXRleHQtYXJyb3ctaG92ZXItY29sb3IpOyB9XG59XG5cbi5ob29rLWludmVyc2UtYnV0dG9uLXRleHQoKSB3aGVuIChAYnV0dG9uLXRleHQtbW9kZSA9IGJvcmRlci1ib3R0b20pIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAaW52ZXJzZS1idXR0b24tdGV4dC1ib3JkZXI7XG59XG4uaG9vay1pbnZlcnNlLWJ1dHRvbi10ZXh0LWhvdmVyKCkgd2hlbiAoQGJ1dHRvbi10ZXh0LW1vZGUgPSBib3JkZXItYm90dG9tKSBhbmQgbm90ICgoQGludmVyc2UtYnV0dG9uLXRleHQtYm9yZGVyID0gQGludmVyc2UtYnV0dG9uLXRleHQtaG92ZXItYm9yZGVyKSBhbmQgKEBpbnZlcnNlLWJ1dHRvbi10ZXh0LWhvdmVyLWJvcmRlciA9IHRyYW5zcGFyZW50KSkge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IEBpbnZlcnNlLWJ1dHRvbi10ZXh0LWhvdmVyLWJvcmRlcjtcbn1cblxuLmhvb2staW52ZXJzZS1idXR0b24tdGV4dC1kaXNhYmxlZCgpIHt9XG5cbi5ob29rLWludmVyc2UtYnV0dG9uLWxpbmsoKSB7fVxuIiwiLy9cbi8vIENvbXBvbmVudDogQnV0dG9uXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIE5ld1xuLy9cblxuQGJ1dHRvbi1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktZm9udC1mYW1pbHk7XG5AYnV0dG9uLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1mb250LXdlaWdodDtcbkBidXR0b24tdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LXRleHQtdHJhbnNmb3JtO1xuQGJ1dHRvbi1sZXR0ZXItc3BhY2luZzogICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktbGV0dGVyLXNwYWNpbmc7XG5AYnV0dG9uLWZvbnQtc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1mb250LXN0eWxlO1xuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWJ1dHRvbigpIHt9XG5cbi5ob29rLWJ1dHRvbigpIHdoZW4gbm90IChAYnV0dG9uLWZvbnQtZmFtaWx5ID0gaW5oZXJpdCkge1xuICAgIGZvbnQtZmFtaWx5OiBAYnV0dG9uLWZvbnQtZmFtaWx5O1xufVxuXG4uaG9vay1idXR0b24oKSB3aGVuIG5vdCAoQGJ1dHRvbi1mb250LXdlaWdodCA9IGluaGVyaXQpIHtcbiAgICBmb250LXdlaWdodDogQGJ1dHRvbi1mb250LXdlaWdodDtcbn1cblxuLmhvb2stYnV0dG9uKCkgd2hlbiBub3QgKEBidXR0b24tdGV4dC10cmFuc2Zvcm0gPSBpbmhlcml0KSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IEBidXR0b24tdGV4dC10cmFuc2Zvcm07XG59XG5cbi5ob29rLWJ1dHRvbigpIHdoZW4gbm90IChAYnV0dG9uLWxldHRlci1zcGFjaW5nID0gaW5oZXJpdCkge1xuICAgIGxldHRlci1zcGFjaW5nOiBAYnV0dG9uLWxldHRlci1zcGFjaW5nO1xufVxuXG4uaG9vay1idXR0b24oKSB3aGVuIG5vdCAoQGJ1dHRvbi1mb250LXN0eWxlID0gaW5oZXJpdCkge1xuICAgIGZvbnQtc3R5bGU6IEBidXR0b24tZm9udC1zdHlsZTtcbn1cblxuLmhvb2stYnV0dG9uLWhvdmVyKCkge31cblxuLmhvb2stYnV0dG9uLWFjdGl2ZSgpIHt9XG5cblxuLy8gU3R5bGUgbW9kaWZpZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYnV0dG9uLWRlZmF1bHQoKSB7fVxuXG4uaG9vay1idXR0b24tZGVmYXVsdC1ob3ZlcigpIHt9XG5cbi5ob29rLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZSgpIHt9XG5cbi8vXG4vLyBQcmltYXJ5XG4vL1xuXG4uaG9vay1idXR0b24tcHJpbWFyeSgpIHt9XG5cbi5ob29rLWJ1dHRvbi1wcmltYXJ5LWhvdmVyKCkge31cblxuLmhvb2stYnV0dG9uLXByaW1hcnktYWN0aXZlKCkge31cblxuLy9cbi8vIFNlY29uZGFyeVxuLy9cblxuLmhvb2stYnV0dG9uLXNlY29uZGFyeSgpIHt9XG5cbi5ob29rLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXIoKSB7fVxuXG4uaG9vay1idXR0b24tc2Vjb25kYXJ5LWFjdGl2ZSgpIHt9XG5cbi8vXG4vLyBEYW5nZXJcbi8vXG5cbi5ob29rLWJ1dHRvbi1kYW5nZXIoKSB7fVxuXG4uaG9vay1idXR0b24tZGFuZ2VyLWhvdmVyKCkge31cblxuLmhvb2stYnV0dG9uLWRhbmdlci1hY3RpdmUoKSB7fVxuXG5cbi8vIERpc2FibGVkXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYnV0dG9uLWRpc2FibGVkKCkge31cblxuXG4vLyBTaXplIG1vZGlmaWVyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWJ1dHRvbi1zbWFsbCgpIHt9XG5cbi5ob29rLWJ1dHRvbi1sYXJnZSgpIHt9XG5cblxuLy8gVGV4dCBtb2RpZmllclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWJ1dHRvbi10ZXh0KCkge31cblxuLmhvb2stYnV0dG9uLXRleHQtaG92ZXIoKSB7fVxuXG4uaG9vay1idXR0b24tdGV4dC1kaXNhYmxlZCgpIHt9XG5cblxuLy8gTGluayBtb2RpZmllclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWJ1dHRvbi1saW5rKCkge31cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYnV0dG9uLW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1pbnZlcnNlLWJ1dHRvbi1kZWZhdWx0KCkge31cbi5ob29rLWludmVyc2UtYnV0dG9uLWRlZmF1bHQtaG92ZXIoKSB7fVxuLmhvb2staW52ZXJzZS1idXR0b24tZGVmYXVsdC1hY3RpdmUoKSB7fVxuXG4uaG9vay1pbnZlcnNlLWJ1dHRvbi1wcmltYXJ5KCkge31cbi5ob29rLWludmVyc2UtYnV0dG9uLXByaW1hcnktaG92ZXIoKSB7fVxuLmhvb2staW52ZXJzZS1idXR0b24tcHJpbWFyeS1hY3RpdmUoKSB7fVxuXG4uaG9vay1pbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnkoKSB7fVxuLmhvb2staW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWhvdmVyKCkge31cbi5ob29rLWludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUoKSB7fVxuXG4uaG9vay1pbnZlcnNlLWJ1dHRvbi10ZXh0KCkge31cbi5ob29rLWludmVyc2UtYnV0dG9uLXRleHQtaG92ZXIoKSB7fVxuLmhvb2staW52ZXJzZS1idXR0b24tdGV4dC1kaXNhYmxlZCgpIHt9XG5cbi5ob29rLWludmVyc2UtYnV0dG9uLWxpbmsoKSB7fSIsIi8vXG4vLyBDb21wb25lbnQ6IEJ1dHRvblxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBidXR0b24tYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgICAgICAgICAgIDA7XG5cbkBidXR0b24tc21hbGwtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgICAgIDA7XG5AYnV0dG9uLWxhcmdlLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICAwO1xuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWJ1dHRvbigpIHdoZW4gbm90IChAYnV0dG9uLWJvcmRlci1yYWRpdXMgPSAwKSB7XG4gICAgYm9yZGVyLXJhZGl1czogQGJ1dHRvbi1ib3JkZXItcmFkaXVzO1xufVxuXG4uaG9vay1idXR0b24taG92ZXIoKSB7fVxuXG4uaG9vay1idXR0b24tYWN0aXZlKCkge31cblxuXG4vLyBTdHlsZSBtb2RpZmllcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1idXR0b24tZGVmYXVsdCgpIHt9XG5cbi5ob29rLWJ1dHRvbi1kZWZhdWx0LWhvdmVyKCkge31cblxuLmhvb2stYnV0dG9uLWRlZmF1bHQtYWN0aXZlKCkge31cblxuLy9cbi8vIFByaW1hcnlcbi8vXG5cbi5ob29rLWJ1dHRvbi1wcmltYXJ5KCkge31cblxuLmhvb2stYnV0dG9uLXByaW1hcnktaG92ZXIoKSB7fVxuXG4uaG9vay1idXR0b24tcHJpbWFyeS1hY3RpdmUoKSB7fVxuXG4vL1xuLy8gU2Vjb25kYXJ5XG4vL1xuXG4uaG9vay1idXR0b24tc2Vjb25kYXJ5KCkge31cblxuLmhvb2stYnV0dG9uLXNlY29uZGFyeS1ob3ZlcigpIHt9XG5cbi5ob29rLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlKCkge31cblxuLy9cbi8vIERhbmdlclxuLy9cblxuLmhvb2stYnV0dG9uLWRhbmdlcigpIHt9XG5cbi5ob29rLWJ1dHRvbi1kYW5nZXItaG92ZXIoKSB7fVxuXG4uaG9vay1idXR0b24tZGFuZ2VyLWFjdGl2ZSgpIHt9XG5cblxuLy8gRGlzYWJsZWRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1idXR0b24tZGlzYWJsZWQoKSB7fVxuXG5cbi8vIFNpemUgbW9kaWZpZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYnV0dG9uLXNtYWxsKCkgd2hlbiBub3QgKEBidXR0b24tc21hbGwtYm9yZGVyLXJhZGl1cyA9IDApIHtcbiAgICBib3JkZXItcmFkaXVzOiBAYnV0dG9uLXNtYWxsLWJvcmRlci1yYWRpdXM7XG59XG5cbi5ob29rLWJ1dHRvbi1sYXJnZSgpIHdoZW4gbm90IChAYnV0dG9uLWxhcmdlLWJvcmRlci1yYWRpdXMgPSAwKSB7XG4gICAgYm9yZGVyLXJhZGl1czogQGJ1dHRvbi1sYXJnZS1ib3JkZXItcmFkaXVzO1xufVxuXG5cbi8vIFRleHQgbW9kaWZpZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1idXR0b24tdGV4dCgpIHdoZW4gbm90IChAYnV0dG9uLWJvcmRlci1yYWRpdXMgPSAwKSwgbm90IChAYnV0dG9uLXNtYWxsLWJvcmRlci1yYWRpdXMgPSAwKSwgbm90IChAYnV0dG9uLWxhcmdlLWJvcmRlci1yYWRpdXMgPSAwKSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLmhvb2stYnV0dG9uLXRleHQtaG92ZXIoKSB7fVxuXG4uaG9vay1idXR0b24tdGV4dC1kaXNhYmxlZCgpIHt9XG5cblxuLy8gTGluayBtb2RpZmllclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWJ1dHRvbi1saW5rKCkge31cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYnV0dG9uLW1pc2MoKSB3aGVuIG5vdCAoQGJ1dHRvbi1ib3JkZXItcmFkaXVzID0gMCkge1xuXG4gICAgLyogR3JvdXBcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qXG4gICAgICogUmVzZXQgYm9yZGVyLXJhZGl1c1xuICAgICAqL1xuXG4gICAgLnVrLWJ1dHRvbi1ncm91cCA+IC51ay1idXR0b246bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSxcbiAgICAudWstYnV0dG9uLWdyb3VwID4gZGl2Om5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkgLnVrLWJ1dHRvbiB7IGJvcmRlci1yYWRpdXM6IDA7IH1cblxuICAgIC51ay1idXR0b24tZ3JvdXAgPiAudWstYnV0dG9uOmZpcnN0LWNoaWxkLFxuICAgIC51ay1idXR0b24tZ3JvdXAgPiBkaXY6Zmlyc3QtY2hpbGQgLnVrLWJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICB9XG5cbiAgICAudWstYnV0dG9uLWdyb3VwID4gLnVrLWJ1dHRvbjpsYXN0LWNoaWxkLFxuICAgIC51ay1idXR0b24tZ3JvdXAgPiBkaXY6bGFzdC1jaGlsZCAudWstYnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICB9XG5cbn1cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2staW52ZXJzZS1idXR0b24tZGVmYXVsdCgpIHt9XG4uaG9vay1pbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWhvdmVyKCkge31cbi5ob29rLWludmVyc2UtYnV0dG9uLWRlZmF1bHQtYWN0aXZlKCkge31cblxuLmhvb2staW52ZXJzZS1idXR0b24tcHJpbWFyeSgpIHt9XG4uaG9vay1pbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWhvdmVyKCkge31cbi5ob29rLWludmVyc2UtYnV0dG9uLXByaW1hcnktYWN0aXZlKCkge31cblxuLmhvb2staW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5KCkge31cbi5ob29rLWludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1ob3ZlcigpIHt9XG4uaG9vay1pbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlKCkge31cblxuLmhvb2staW52ZXJzZS1idXR0b24tdGV4dCgpIHt9XG4uaG9vay1pbnZlcnNlLWJ1dHRvbi10ZXh0LWhvdmVyKCkge31cbi5ob29rLWludmVyc2UtYnV0dG9uLXRleHQtZGlzYWJsZWQoKSB7fVxuXG4uaG9vay1pbnZlcnNlLWJ1dHRvbi1saW5rKCkge30iLCIvL1xuLy8gQ29tcG9uZW50OiBCdXR0b25cbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gTmV3XG4vL1xuXG5AYnV0dG9uLWJhY2tncm91bmQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICBhdXRvO1xuQGJ1dHRvbi1iYWNrZ3JvdW5kLXBvc2l0aW9uLXg6ICAgICAgICAgICAgICAgICAgMDtcbkBidXR0b24taG92ZXItYmFja2dyb3VuZC1wb3NpdGlvbi14OiAgICAgICAgICAgIDA7XG5cbkBpbnRlcm5hbC1idXR0b24tZGVmYXVsdC1ncmFkaWVudDogICAgICAgICAgICAgIH4nJztcbkBpbnRlcm5hbC1idXR0b24tZGVmYXVsdC1ob3Zlci1ncmFkaWVudDogICAgICAgIH4nJztcbkBpbnRlcm5hbC1idXR0b24tZGVmYXVsdC1hY3RpdmUtZ3JhZGllbnQ6ICAgICAgIH4nJztcblxuQGludGVybmFsLWJ1dHRvbi1wcmltYXJ5LWdyYWRpZW50OiAgICAgICAgICAgICAgficnO1xuQGludGVybmFsLWJ1dHRvbi1wcmltYXJ5LWhvdmVyLWdyYWRpZW50OiAgICAgICAgficnO1xuQGludGVybmFsLWJ1dHRvbi1wcmltYXJ5LWFjdGl2ZS1ncmFkaWVudDogICAgICAgficnO1xuXG5AaW50ZXJuYWwtYnV0dG9uLXNlY29uZGFyeS1ncmFkaWVudDogICAgICAgICAgICB+Jyc7XG5AaW50ZXJuYWwtYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1ncmFkaWVudDogICAgICB+Jyc7XG5AaW50ZXJuYWwtYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtZ3JhZGllbnQ6ICAgICB+Jyc7XG5cbkBpbnRlcm5hbC1idXR0b24tZGFuZ2VyLWdyYWRpZW50OiAgICAgICAgICAgICAgIH4nJztcbkBpbnRlcm5hbC1idXR0b24tZGFuZ2VyLWhvdmVyLWdyYWRpZW50OiAgICAgICAgIH4nJztcbkBpbnRlcm5hbC1idXR0b24tZGFuZ2VyLWFjdGl2ZS1ncmFkaWVudDogICAgICAgIH4nJztcblxuXG4vLyBDb21wb25lbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1idXR0b24oKSB7IGJhY2tncm91bmQtb3JpZ2luOiBib3JkZXItYm94OyB9XG5cbi5ob29rLWJ1dHRvbi1ob3ZlcigpIHt9XG5cbi5ob29rLWJ1dHRvbi1hY3RpdmUoKSB7fVxuXG4vLyBCYWNrZ3JvdW5kIHNpemUgYW5kIHBvc2l0aW9uXG4uaG9vay1idXR0b24oKSB3aGVuIG5vdCAoQGJ1dHRvbi1iYWNrZ3JvdW5kLXNpemUgPSBhdXRvKSB7XG4gICAgYmFja2dyb3VuZC1zaXplOiBAYnV0dG9uLWJhY2tncm91bmQtc2l6ZTtcbn1cblxuLmhvb2stYnV0dG9uKCkgd2hlbiBub3QgKEBidXR0b24tYmFja2dyb3VuZC1wb3NpdGlvbi14ID0gMCkge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb24teDogQGJ1dHRvbi1iYWNrZ3JvdW5kLXBvc2l0aW9uLXg7XG59XG5cbi5ob29rLWJ1dHRvbi1ob3ZlcigpIHdoZW4gbm90IChAYnV0dG9uLWhvdmVyLWJhY2tncm91bmQtcG9zaXRpb24teCA9IEBidXR0b24tYmFja2dyb3VuZC1wb3NpdGlvbi14KSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiBAYnV0dG9uLWhvdmVyLWJhY2tncm91bmQtcG9zaXRpb24teDtcbn1cblxuXG4vLyBTdHlsZSBtb2RpZmllcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1idXR0b24tZGVmYXVsdCgpIHdoZW4gbm90IChAaW50ZXJuYWwtYnV0dG9uLWRlZmF1bHQtZ3JhZGllbnQgPSB+JycpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBAaW50ZXJuYWwtYnV0dG9uLWRlZmF1bHQtZ3JhZGllbnQ7XG59XG5cbi8vIEhvdmVyXG4uaG9vay1idXR0b24tZGVmYXVsdC1ob3ZlcigpIHdoZW4gbm90IChAaW50ZXJuYWwtYnV0dG9uLWRlZmF1bHQtaG92ZXItZ3JhZGllbnQgPSB+JycpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBAaW50ZXJuYWwtYnV0dG9uLWRlZmF1bHQtaG92ZXItZ3JhZGllbnQ7XG59XG5cbi5ob29rLWJ1dHRvbi1kZWZhdWx0LWhvdmVyKCkgd2hlbiAoQGludGVybmFsLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWdyYWRpZW50ID0gficnKSBhbmQgbm90IChAaW50ZXJuYWwtYnV0dG9uLWRlZmF1bHQtZ3JhZGllbnQgPSB+JycpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuXG4vLyBBY3RpdmVcbi5ob29rLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZSgpIHdoZW4gbm90IChAaW50ZXJuYWwtYnV0dG9uLWRlZmF1bHQtYWN0aXZlLWdyYWRpZW50ID0gficnKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogQGludGVybmFsLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZS1ncmFkaWVudDtcbn1cblxuLmhvb2stYnV0dG9uLWRlZmF1bHQtYWN0aXZlKCkgd2hlbiAoQGludGVybmFsLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZS1ncmFkaWVudCA9IH4nJykgYW5kIG5vdCAoQGludGVybmFsLWJ1dHRvbi1kZWZhdWx0LWdyYWRpZW50ID0gficnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEBpbnRlcm5hbC1idXR0b24tZGVmYXVsdC1hY3RpdmUtZ3JhZGllbnQgPSB+JycpIGFuZCBub3QgKEBpbnRlcm5hbC1idXR0b24tZGVmYXVsdC1ob3Zlci1ncmFkaWVudCA9IH4nJykge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG5cbi8vXG4vLyBQcmltYXJ5XG4vL1xuXG4uaG9vay1idXR0b24tcHJpbWFyeSgpIHdoZW4gbm90IChAaW50ZXJuYWwtYnV0dG9uLXByaW1hcnktZ3JhZGllbnQgPSB+JycpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBAaW50ZXJuYWwtYnV0dG9uLXByaW1hcnktZ3JhZGllbnQ7XG59XG5cbi8vIEhvdmVyXG4uaG9vay1idXR0b24tcHJpbWFyeS1ob3ZlcigpIHdoZW4gbm90IChAaW50ZXJuYWwtYnV0dG9uLXByaW1hcnktaG92ZXItZ3JhZGllbnQgPSB+JycpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBAaW50ZXJuYWwtYnV0dG9uLXByaW1hcnktaG92ZXItZ3JhZGllbnQ7XG59XG5cbi5ob29rLWJ1dHRvbi1wcmltYXJ5LWhvdmVyKCkgd2hlbiAoQGludGVybmFsLWJ1dHRvbi1wcmltYXJ5LWhvdmVyLWdyYWRpZW50ID0gficnKSBhbmQgbm90IChAaW50ZXJuYWwtYnV0dG9uLXByaW1hcnktZ3JhZGllbnQgPSB+JycpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuXG4vLyBBY3RpdmVcbi5ob29rLWJ1dHRvbi1wcmltYXJ5LWFjdGl2ZSgpIHdoZW4gbm90IChAaW50ZXJuYWwtYnV0dG9uLXByaW1hcnktYWN0aXZlLWdyYWRpZW50ID0gficnKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogQGludGVybmFsLWJ1dHRvbi1wcmltYXJ5LWFjdGl2ZS1ncmFkaWVudDtcbn1cblxuLmhvb2stYnV0dG9uLXByaW1hcnktYWN0aXZlKCkgd2hlbiAoQGludGVybmFsLWJ1dHRvbi1wcmltYXJ5LWFjdGl2ZS1ncmFkaWVudCA9IH4nJykgYW5kIG5vdCAoQGludGVybmFsLWJ1dHRvbi1wcmltYXJ5LWdyYWRpZW50ID0gficnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEBpbnRlcm5hbC1idXR0b24tcHJpbWFyeS1hY3RpdmUtZ3JhZGllbnQgPSB+JycpIGFuZCBub3QgKEBpbnRlcm5hbC1idXR0b24tcHJpbWFyeS1ob3Zlci1ncmFkaWVudCA9IH4nJykge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG5cbi8vXG4vLyBTZWNvbmRhcnlcbi8vXG5cbi5ob29rLWJ1dHRvbi1zZWNvbmRhcnkoKSB3aGVuIG5vdCAoQGludGVybmFsLWJ1dHRvbi1zZWNvbmRhcnktZ3JhZGllbnQgPSB+JycpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBAaW50ZXJuYWwtYnV0dG9uLXNlY29uZGFyeS1ncmFkaWVudDtcbn1cblxuLy8gSG92ZXJcbi5ob29rLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXIoKSB3aGVuIG5vdCAoQGludGVybmFsLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXItZ3JhZGllbnQgPSB+JycpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBAaW50ZXJuYWwtYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1ncmFkaWVudDtcbn1cblxuLmhvb2stYnV0dG9uLXNlY29uZGFyeS1ob3ZlcigpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tc2Vjb25kYXJ5LWhvdmVyLWdyYWRpZW50ID0gficnKSBhbmQgbm90IChAaW50ZXJuYWwtYnV0dG9uLXNlY29uZGFyeS1ncmFkaWVudCA9IH4nJykge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG5cbi8vIEFjdGl2ZVxuLmhvb2stYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUoKSB3aGVuIG5vdCAoQGludGVybmFsLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWdyYWRpZW50ID0gficnKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogQGludGVybmFsLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWdyYWRpZW50O1xufVxuXG4uaG9vay1idXR0b24tc2Vjb25kYXJ5LWFjdGl2ZSgpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tc2Vjb25kYXJ5LWFjdGl2ZS1ncmFkaWVudCA9IH4nJykgYW5kIG5vdCAoQGludGVybmFsLWJ1dHRvbi1zZWNvbmRhcnktZ3JhZGllbnQgPSB+JycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQGludGVybmFsLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWdyYWRpZW50ID0gficnKSBhbmQgbm90IChAaW50ZXJuYWwtYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1ncmFkaWVudCA9IH4nJykge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG5cbi8vXG4vLyBEYW5nZXJcbi8vXG5cbi5ob29rLWJ1dHRvbi1kYW5nZXIoKSB3aGVuIG5vdCAoQGludGVybmFsLWJ1dHRvbi1kYW5nZXItZ3JhZGllbnQgPSB+JycpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBAaW50ZXJuYWwtYnV0dG9uLWRhbmdlci1ncmFkaWVudDtcbn1cblxuLy8gSG92ZXJcbi5ob29rLWJ1dHRvbi1kYW5nZXItaG92ZXIoKSB3aGVuIG5vdCAoQGludGVybmFsLWJ1dHRvbi1kYW5nZXItaG92ZXItZ3JhZGllbnQgPSB+JycpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBAaW50ZXJuYWwtYnV0dG9uLWRhbmdlci1ob3Zlci1ncmFkaWVudDtcbn1cblxuLmhvb2stYnV0dG9uLWRhbmdlci1ob3ZlcigpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tZGFuZ2VyLWhvdmVyLWdyYWRpZW50ID0gficnKSBhbmQgbm90IChAaW50ZXJuYWwtYnV0dG9uLWRhbmdlci1ncmFkaWVudCA9IH4nJykge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG5cbi8vIEFjdGl2ZVxuLmhvb2stYnV0dG9uLWRhbmdlci1hY3RpdmUoKSB3aGVuIG5vdCAoQGludGVybmFsLWJ1dHRvbi1kYW5nZXItYWN0aXZlLWdyYWRpZW50ID0gficnKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogQGludGVybmFsLWJ1dHRvbi1kYW5nZXItYWN0aXZlLWdyYWRpZW50O1xufVxuXG4uaG9vay1idXR0b24tZGFuZ2VyLWFjdGl2ZSgpIHdoZW4gKEBpbnRlcm5hbC1idXR0b24tZGFuZ2VyLWFjdGl2ZS1ncmFkaWVudCA9IH4nJykgYW5kIG5vdCAoQGludGVybmFsLWJ1dHRvbi1kYW5nZXItZ3JhZGllbnQgPSB+JycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQGludGVybmFsLWJ1dHRvbi1kYW5nZXItYWN0aXZlLWdyYWRpZW50ID0gficnKSBhbmQgbm90IChAaW50ZXJuYWwtYnV0dG9uLWRhbmdlci1ob3Zlci1ncmFkaWVudCA9IH4nJykge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG5cblxuLy8gRGlzYWJsZWRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1idXR0b24tZGlzYWJsZWQoKSB7IGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IH1cblxuXG4vLyBTaXplIG1vZGlmaWVyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWJ1dHRvbi1zbWFsbCgpIHt9XG5cbi5ob29rLWJ1dHRvbi1sYXJnZSgpIHt9XG5cblxuLy8gVGV4dCBtb2RpZmllclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWJ1dHRvbi10ZXh0KCkge31cblxuLmhvb2stYnV0dG9uLXRleHQtaG92ZXIoKSB7fVxuXG4uaG9vay1idXR0b24tdGV4dC1kaXNhYmxlZCgpIHt9XG5cblxuLy8gTGluayBtb2RpZmllclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWJ1dHRvbi1saW5rKCkge31cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYnV0dG9uLW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1pbnZlcnNlLWJ1dHRvbi1kZWZhdWx0KCkgd2hlbiBub3QgKEBpbnRlcm5hbC1idXR0b24tZGVmYXVsdC1ncmFkaWVudCA9IH4nJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3QgKEBpbnRlcm5hbC1idXR0b24tZGVmYXVsdC1ob3Zlci1ncmFkaWVudCA9IH4nJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3QgKEBpbnRlcm5hbC1idXR0b24tZGVmYXVsdC1hY3RpdmUtZ3JhZGllbnQgPSB+JycpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLmhvb2staW52ZXJzZS1idXR0b24tZGVmYXVsdC1ob3ZlcigpIHt9XG4uaG9vay1pbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZSgpIHt9XG5cbi5ob29rLWludmVyc2UtYnV0dG9uLXByaW1hcnkoKSB3aGVuIG5vdCAoQGludGVybmFsLWJ1dHRvbi1wcmltYXJ5LWdyYWRpZW50ID0gficnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdCAoQGludGVybmFsLWJ1dHRvbi1wcmltYXJ5LWhvdmVyLWdyYWRpZW50ID0gficnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdCAoQGludGVybmFsLWJ1dHRvbi1wcmltYXJ5LWFjdGl2ZS1ncmFkaWVudCA9IH4nJykge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4uaG9vay1pbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWhvdmVyKCkge31cbi5ob29rLWludmVyc2UtYnV0dG9uLXByaW1hcnktYWN0aXZlKCkge31cblxuLmhvb2staW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5KCkgd2hlbiBub3QgKEBpbnRlcm5hbC1idXR0b24tc2Vjb25kYXJ5LWdyYWRpZW50ID0gficnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90IChAaW50ZXJuYWwtYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1ncmFkaWVudCA9IH4nJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdCAoQGludGVybmFsLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWdyYWRpZW50ID0gficnKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi5ob29rLWludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1ob3ZlcigpIHt9XG4uaG9vay1pbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlKCkge31cblxuLmhvb2staW52ZXJzZS1idXR0b24tdGV4dCgpIHt9XG4uaG9vay1pbnZlcnNlLWJ1dHRvbi10ZXh0LWhvdmVyKCkge31cbi5ob29rLWludmVyc2UtYnV0dG9uLXRleHQtZGlzYWJsZWQoKSB7fVxuXG4uaG9vay1pbnZlcnNlLWJ1dHRvbi1saW5rKCkge31cbiIsIi8vXG4vLyBDb21wb25lbnQ6IEJ1dHRvblxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBidXR0b24tZGVmYXVsdC1ib3gtc2hhZG93OiAgICAgICAgICAgICAgICAgICAgIG5vbmU7XG5AYnV0dG9uLWRlZmF1bHQtaG92ZXItYm94LXNoYWRvdzogICAgICAgICAgICAgICBub25lO1xuQGJ1dHRvbi1kZWZhdWx0LWFjdGl2ZS1ib3gtc2hhZG93OiAgICAgICAgICAgICAgbm9uZTtcblxuQGJ1dHRvbi1wcmltYXJ5LWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgbm9uZTtcbkBidXR0b24tcHJpbWFyeS1ob3Zlci1ib3gtc2hhZG93OiAgICAgICAgICAgICAgIG5vbmU7XG5AYnV0dG9uLXByaW1hcnktYWN0aXZlLWJveC1zaGFkb3c6ICAgICAgICAgICAgICBub25lO1xuXG5AYnV0dG9uLXNlY29uZGFyeS1ib3gtc2hhZG93OiAgICAgICAgICAgICAgICAgICBub25lO1xuQGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItYm94LXNoYWRvdzogICAgICAgICAgICAgbm9uZTtcbkBidXR0b24tc2Vjb25kYXJ5LWFjdGl2ZS1ib3gtc2hhZG93OiAgICAgICAgICAgIG5vbmU7XG5cbkBidXR0b24tZGFuZ2VyLWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgIG5vbmU7XG5AYnV0dG9uLWRhbmdlci1ob3Zlci1ib3gtc2hhZG93OiAgICAgICAgICAgICAgICBub25lO1xuQGJ1dHRvbi1kYW5nZXItYWN0aXZlLWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgbm9uZTtcblxuXG4vLyBDb21wb25lbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1idXR0b24oKSB7fVxuXG4uaG9vay1idXR0b24taG92ZXIoKSB7fVxuXG4uaG9vay1idXR0b24tYWN0aXZlKCkge31cblxuXG4vLyBTdHlsZSBtb2RpZmllcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1idXR0b24tZGVmYXVsdCgpIHdoZW4gbm90IChAYnV0dG9uLWRlZmF1bHQtYm94LXNoYWRvdyA9IG5vbmUpIHtcbiAgICBib3gtc2hhZG93OiBAYnV0dG9uLWRlZmF1bHQtYm94LXNoYWRvdztcbn1cblxuLmhvb2stYnV0dG9uLWRlZmF1bHQtaG92ZXIoKSB3aGVuIG5vdCAoQGJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJveC1zaGFkb3cgPSBub25lKSB7XG4gICAgYm94LXNoYWRvdzogQGJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJveC1zaGFkb3c7XG59XG5cbi5ob29rLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZSgpIHdoZW4gbm90IChAYnV0dG9uLWRlZmF1bHQtYWN0aXZlLWJveC1zaGFkb3cgPSBub25lKSB7XG4gICAgYm94LXNoYWRvdzogQGJ1dHRvbi1kZWZhdWx0LWFjdGl2ZS1ib3gtc2hhZG93O1xufVxuXG4vL1xuLy8gUHJpbWFyeVxuLy9cblxuLmhvb2stYnV0dG9uLXByaW1hcnkoKSB3aGVuIG5vdCAoQGJ1dHRvbi1wcmltYXJ5LWJveC1zaGFkb3cgPSBub25lKSB7XG4gICAgYm94LXNoYWRvdzogQGJ1dHRvbi1wcmltYXJ5LWJveC1zaGFkb3c7XG59XG5cbi5ob29rLWJ1dHRvbi1wcmltYXJ5LWhvdmVyKCkgd2hlbiBub3QgKEBidXR0b24tcHJpbWFyeS1ob3Zlci1ib3gtc2hhZG93ID0gbm9uZSkge1xuICAgIGJveC1zaGFkb3c6IEBidXR0b24tcHJpbWFyeS1ob3Zlci1ib3gtc2hhZG93O1xufVxuXG4uaG9vay1idXR0b24tcHJpbWFyeS1hY3RpdmUoKSB3aGVuIG5vdCAoQGJ1dHRvbi1wcmltYXJ5LWFjdGl2ZS1ib3gtc2hhZG93ID0gbm9uZSkge1xuICAgIGJveC1zaGFkb3c6IEBidXR0b24tcHJpbWFyeS1hY3RpdmUtYm94LXNoYWRvdztcbn1cblxuLy9cbi8vIFNlY29uZGFyeVxuLy9cblxuLmhvb2stYnV0dG9uLXNlY29uZGFyeSgpIHdoZW4gbm90IChAYnV0dG9uLXNlY29uZGFyeS1ib3gtc2hhZG93ID0gbm9uZSkge1xuICAgIGJveC1zaGFkb3c6IEBidXR0b24tc2Vjb25kYXJ5LWJveC1zaGFkb3c7XG59XG5cbi5ob29rLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXIoKSB3aGVuIG5vdCAoQGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItYm94LXNoYWRvdyA9IG5vbmUpIHtcbiAgICBib3gtc2hhZG93OiBAYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1ib3gtc2hhZG93O1xufVxuXG4uaG9vay1idXR0b24tc2Vjb25kYXJ5LWFjdGl2ZSgpIHdoZW4gbm90IChAYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtYm94LXNoYWRvdyA9IG5vbmUpIHtcbiAgICBib3gtc2hhZG93OiBAYnV0dG9uLXNlY29uZGFyeS1hY3RpdmUtYm94LXNoYWRvdztcbn1cblxuLy9cbi8vIERhbmdlclxuLy9cblxuLmhvb2stYnV0dG9uLWRhbmdlcigpIHdoZW4gbm90IChAYnV0dG9uLWRhbmdlci1ib3gtc2hhZG93ID0gbm9uZSkge1xuICAgIGJveC1zaGFkb3c6IEBidXR0b24tZGFuZ2VyLWJveC1zaGFkb3c7XG59XG5cbi5ob29rLWJ1dHRvbi1kYW5nZXItaG92ZXIoKSB3aGVuIG5vdCAoQGJ1dHRvbi1kYW5nZXItaG92ZXItYm94LXNoYWRvdyA9IG5vbmUpIHtcbiAgICBib3gtc2hhZG93OiBAYnV0dG9uLWRhbmdlci1ob3Zlci1ib3gtc2hhZG93O1xufVxuXG4uaG9vay1idXR0b24tZGFuZ2VyLWFjdGl2ZSgpIHdoZW4gbm90IChAYnV0dG9uLWRhbmdlci1hY3RpdmUtYm94LXNoYWRvdyA9IG5vbmUpIHtcbiAgICBib3gtc2hhZG93OiBAYnV0dG9uLWRhbmdlci1hY3RpdmUtYm94LXNoYWRvdztcbn1cblxuXG4vLyBEaXNhYmxlZFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWJ1dHRvbi1kaXNhYmxlZCgpIHsgYm94LXNoYWRvdzogbm9uZTsgfVxuXG5cbi8vIFNpemUgbW9kaWZpZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYnV0dG9uLXNtYWxsKCkge31cblxuLmhvb2stYnV0dG9uLWxhcmdlKCkge31cblxuXG4vLyBUZXh0IG1vZGlmaWVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYnV0dG9uLXRleHQoKSB7fVxuXG4uaG9vay1idXR0b24tdGV4dC1ob3ZlcigpIHt9XG5cbi5ob29rLWJ1dHRvbi10ZXh0LWRpc2FibGVkKCkge31cblxuXG4vLyBMaW5rIG1vZGlmaWVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYnV0dG9uLWxpbmsoKSB7fVxuXG5cbi8vIE1pc2NlbGxhbmVvdXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1idXR0b24tbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbnZlcnNlLWJ1dHRvbi1kZWZhdWx0LWJveC1zaGFkb3c6ICAgICAgICAgICAgIG5vbmU7XG5AaW52ZXJzZS1idXR0b24tZGVmYXVsdC1ob3Zlci1ib3gtc2hhZG93OiAgICAgICBub25lO1xuQGludmVyc2UtYnV0dG9uLWRlZmF1bHQtYWN0aXZlLWJveC1zaGFkb3c6ICAgICAgbm9uZTtcblxuQGludmVyc2UtYnV0dG9uLXByaW1hcnktYm94LXNoYWRvdzogICAgICAgICAgICAgbm9uZTtcbkBpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWhvdmVyLWJveC1zaGFkb3c6ICAgICAgIG5vbmU7XG5AaW52ZXJzZS1idXR0b24tcHJpbWFyeS1hY3RpdmUtYm94LXNoYWRvdzogICAgICBub25lO1xuXG5AaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWJveC1zaGFkb3c6ICAgICAgICAgICBub25lO1xuQGludmVyc2UtYnV0dG9uLXNlY29uZGFyeS1ob3Zlci1ib3gtc2hhZG93OiAgICAgbm9uZTtcbkBpbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWJveC1zaGFkb3c6ICAgIG5vbmU7XG5cbi5ob29rLWludmVyc2UtYnV0dG9uLWRlZmF1bHQoKSB3aGVuIG5vdCAoQGJ1dHRvbi1kZWZhdWx0LWJveC1zaGFkb3cgPSBub25lKSB7XG4gICAgYm94LXNoYWRvdzogQGludmVyc2UtYnV0dG9uLWRlZmF1bHQtYm94LXNoYWRvdztcbn1cbi5ob29rLWludmVyc2UtYnV0dG9uLWRlZmF1bHQtaG92ZXIoKSB3aGVuIG5vdCAoQGJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJveC1zaGFkb3cgPSBub25lKSB7XG4gICAgYm94LXNoYWRvdzogQGludmVyc2UtYnV0dG9uLWRlZmF1bHQtaG92ZXItYm94LXNoYWRvdztcbn1cbi5ob29rLWludmVyc2UtYnV0dG9uLWRlZmF1bHQtYWN0aXZlKCkgd2hlbiBub3QgKEBidXR0b24tZGVmYXVsdC1hY3RpdmUtYm94LXNoYWRvdyA9IG5vbmUpIHtcbiAgICBib3gtc2hhZG93OiBAaW52ZXJzZS1idXR0b24tZGVmYXVsdC1hY3RpdmUtYm94LXNoYWRvdztcbn1cblxuLmhvb2staW52ZXJzZS1idXR0b24tcHJpbWFyeSgpIHdoZW4gbm90IChAYnV0dG9uLXByaW1hcnktYm94LXNoYWRvdyA9IG5vbmUpIHtcbiAgICBib3gtc2hhZG93OiBAaW52ZXJzZS1idXR0b24tcHJpbWFyeS1ib3gtc2hhZG93O1xufVxuLmhvb2staW52ZXJzZS1idXR0b24tcHJpbWFyeS1ob3ZlcigpIHdoZW4gbm90IChAYnV0dG9uLXByaW1hcnktaG92ZXItYm94LXNoYWRvdyA9IG5vbmUpIHtcbiAgICBib3gtc2hhZG93OiBAaW52ZXJzZS1idXR0b24tcHJpbWFyeS1ob3Zlci1ib3gtc2hhZG93O1xufVxuLmhvb2staW52ZXJzZS1idXR0b24tcHJpbWFyeS1hY3RpdmUoKSB3aGVuIG5vdCAoQGJ1dHRvbi1wcmltYXJ5LWFjdGl2ZS1ib3gtc2hhZG93ID0gbm9uZSkge1xuICAgIGJveC1zaGFkb3c6IEBpbnZlcnNlLWJ1dHRvbi1wcmltYXJ5LWFjdGl2ZS1ib3gtc2hhZG93O1xufVxuXG4uaG9vay1pbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnkoKSB3aGVuIG5vdCAoQGJ1dHRvbi1zZWNvbmRhcnktYm94LXNoYWRvdyA9IG5vbmUpIHtcbiAgICBib3gtc2hhZG93OiBAaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWJveC1zaGFkb3c7XG59XG4uaG9vay1pbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktaG92ZXIoKSB3aGVuIG5vdCAoQGJ1dHRvbi1zZWNvbmRhcnktaG92ZXItYm94LXNoYWRvdyA9IG5vbmUpIHtcbiAgICBib3gtc2hhZG93OiBAaW52ZXJzZS1idXR0b24tc2Vjb25kYXJ5LWhvdmVyLWJveC1zaGFkb3c7XG59XG4uaG9vay1pbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlKCkgd2hlbiBub3QgKEBidXR0b24tc2Vjb25kYXJ5LWFjdGl2ZS1ib3gtc2hhZG93ID0gbm9uZSkge1xuICAgIGJveC1zaGFkb3c6IEBpbnZlcnNlLWJ1dHRvbi1zZWNvbmRhcnktYWN0aXZlLWJveC1zaGFkb3c7XG59XG5cbi5ob29rLWludmVyc2UtYnV0dG9uLXRleHQoKSB7fVxuLmhvb2staW52ZXJzZS1idXR0b24tdGV4dC1ob3ZlcigpIHt9XG4uaG9vay1pbnZlcnNlLWJ1dHRvbi10ZXh0LWRpc2FibGVkKCkge31cblxuLmhvb2staW52ZXJzZS1idXR0b24tbGluaygpIHt9IiwiLy8gTmFtZTogICAgICAgICAgICBQcm9ncmVzc1xuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gY3JlYXRlIHByb2dyZXNzIGJhcnNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1wcm9ncmVzc2Bcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AcHJvZ3Jlc3MtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNXB4O1xuQHByb2dyZXNzLW1hcmdpbi12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tYXJnaW47XG5AcHJvZ3Jlc3MtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWJhY2tncm91bmQ7XG5cbkBwcm9ncmVzcy1iYXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kO1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBQcm9ncmVzc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIEJlaGF2ZSBsaWtlIGEgYmxvY2sgZWxlbWVudC5cbiAqIDMuIFJlbW92ZSBib3JkZXJzIGluIEZpcmVmb3guXG4gKiA0LiBSZW1vdmUgZGVmYXVsdCBzdHlsZSBpbiBDaHJvbWUsIFNhZmFyaSBhbmQgRWRnZS5cbiAqIDUuIFN0eWxlXG4gKi9cblxuLnVrLXByb2dyZXNzIHtcbiAgICAvKiAxICovXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIC8qIDIgKi9cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICAvKiAzICovXG4gICAgYm9yZGVyOiAwO1xuICAgIC8qIDQgKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAcHJvZ3Jlc3MtYmFja2dyb3VuZDtcbiAgICAvKiA1ICovXG4gICAgbWFyZ2luLWJvdHRvbTogQHByb2dyZXNzLW1hcmdpbi12ZXJ0aWNhbDtcbiAgICBoZWlnaHQ6IEBwcm9ncmVzcy1oZWlnaHQ7XG4gICAgLmhvb2stcHJvZ3Jlc3MoKTtcbn1cblxuLyogQWRkIG1hcmdpbiBpZiBhZGphY2VudCBlbGVtZW50ICovXG4qICsgLnVrLXByb2dyZXNzIHsgbWFyZ2luLXRvcDogQHByb2dyZXNzLW1hcmdpbi12ZXJ0aWNhbDsgfVxuXG4vKlxuICogU2hvdyBiYWNrZ3JvdW5kIGNvbG9yIHNldCBvbiBgdWstcHJvZ3Jlc3NgIGluIENocm9tZSwgU2FmYXJpIGFuZCBFZGdlLlxuICovXG5cbiAudWstcHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtYmFyIHsgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLypcbiAqIFByb2dyZXNzIEJhclxuICogMS4gVHJhbnNpdGlvbnMgZG9uJ3Qgd29yayBvbiBgOjotbW96LXByb2dyZXNzLWJhcmAgcHNldWRvIGVsZW1lbnQgaW4gRmlyZWZveCB5ZXQuXG4gKiAgICBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD02NjIzNTFcbiAqL1xuXG4udWstcHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBwcm9ncmVzcy1iYXItYmFja2dyb3VuZDtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGVhc2U7XG4gICAgLmhvb2stcHJvZ3Jlc3MtYmFyKCk7XG59XG5cbi51ay1wcm9ncmVzczo6LW1vei1wcm9ncmVzcy1iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBwcm9ncmVzcy1iYXItYmFja2dyb3VuZDtcbiAgICAvKiAxICovXG4gICAgdHJhbnNpdGlvbjogd2lkdGggMC42cyBlYXNlO1xuICAgIC5ob29rLXByb2dyZXNzLWJhcigpO1xufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stcHJvZ3Jlc3MtbWlzYygpO1xuXG4uaG9vay1wcm9ncmVzcygpIHt9XG4uaG9vay1wcm9ncmVzcy1iYXIoKSB7fVxuLmhvb2stcHJvZ3Jlc3MtbWlzYygpIHt9XG4iLCIvL1xuLy8gQ29tcG9uZW50OiBQcm9ncmVzc1xuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBwcm9ncmVzcy1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgICAgICAgIDUwMHB4O1xuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXByb2dyZXNzKCkgd2hlbiBub3QgKEBwcm9ncmVzcy1ib3JkZXItcmFkaXVzID0gMCkge1xuICAgIGJvcmRlci1yYWRpdXM6IEBwcm9ncmVzcy1ib3JkZXItcmFkaXVzO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5ob29rLXByb2dyZXNzLWJhcigpIHt9XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXByb2dyZXNzLW1pc2MoKSB7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBTZWN0aW9uXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgaG9yaXpvbnRhbCBsYXlvdXQgc2VjdGlvblxuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLXNlY3Rpb25gXG4vL1xuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstc2VjdGlvbi14c21hbGxgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1zZWN0aW9uLXNtYWxsYFxuLy8gICAgICAgICAgICAgICAgICBgdWstc2VjdGlvbi1sYXJnZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXNlY3Rpb24teGxhcmdlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstc2VjdGlvbi1kZWZhdWx0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstc2VjdGlvbi1tdXRlZGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXNlY3Rpb24tcHJpbWFyeWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXNlY3Rpb24tc2Vjb25kYXJ5YFxuLy8gICAgICAgICAgICAgICAgICBgdWstc2VjdGlvbi1vdmVybGFwYFxuLy9cbi8vIFN0YXRlczogICAgICAgICAgYHVrLXByZXNlcnZlLWNvbG9yYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBzZWN0aW9uLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tZWRpdW0tbWFyZ2luO1xuQHNlY3Rpb24tcGFkZGluZy12ZXJ0aWNhbC1tOiAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWxhcmdlLW1hcmdpbjtcblxuQHNlY3Rpb24teHNtYWxsLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICBAZ2xvYmFsLW1hcmdpbjtcblxuQHNlY3Rpb24tc21hbGwtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICBAZ2xvYmFsLW1lZGl1bS1tYXJnaW47XG5cbkBzZWN0aW9uLWxhcmdlLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgQGdsb2JhbC1sYXJnZS1tYXJnaW47XG5Ac2VjdGlvbi1sYXJnZS1wYWRkaW5nLXZlcnRpY2FsLW06ICAgICAgICAgICAgICAgIEBnbG9iYWwteGxhcmdlLW1hcmdpbjtcblxuQHNlY3Rpb24teGxhcmdlLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICBAZ2xvYmFsLXhsYXJnZS1tYXJnaW47XG5Ac2VjdGlvbi14bGFyZ2UtcGFkZGluZy12ZXJ0aWNhbC1tOiAgICAgICAgICAgICAgIChAZ2xvYmFsLWxhcmdlLW1hcmdpbiArIEBnbG9iYWwteGxhcmdlLW1hcmdpbik7XG5cbkBzZWN0aW9uLWRlZmF1bHQtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1iYWNrZ3JvdW5kO1xuXG5Ac2VjdGlvbi1tdXRlZC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZDtcblxuQHNlY3Rpb24tcHJpbWFyeS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZDtcbkBzZWN0aW9uLXByaW1hcnktY29sb3ItbW9kZTogICAgICAgICAgICAgICAgICAgICAgbGlnaHQ7XG5cbkBzZWN0aW9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktYmFja2dyb3VuZDtcbkBzZWN0aW9uLXNlY29uZGFyeS1jb2xvci1tb2RlOiAgICAgICAgICAgICAgICAgICAgbGlnaHQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFNlY3Rpb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gTWFrZSBpdCB3b3JrIHdpdGggYDEwMHZoYCBhbmQgaGVpZ2h0IGluIGdlbmVyYWxcbiAqL1xuXG4udWstc2VjdGlvbiB7XG4gICAgZGlzcGxheTogZmxvdy1yb290O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICBwYWRkaW5nLXRvcDogQHNlY3Rpb24tcGFkZGluZy12ZXJ0aWNhbDtcbiAgICBwYWRkaW5nLWJvdHRvbTogQHNlY3Rpb24tcGFkZGluZy12ZXJ0aWNhbDtcbiAgICAuaG9vay1zZWN0aW9uKCk7XG59XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LW1lZGl1bSkge1xuXG4gICAgLnVrLXNlY3Rpb24ge1xuICAgICAgICBwYWRkaW5nLXRvcDogQHNlY3Rpb24tcGFkZGluZy12ZXJ0aWNhbC1tO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogQHNlY3Rpb24tcGFkZGluZy12ZXJ0aWNhbC1tO1xuICAgIH1cblxufVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cblxuLnVrLXNlY3Rpb24gPiA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cblxuXG4vKiBTaXplIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBYU21hbGxcbiAqL1xuXG4udWstc2VjdGlvbi14c21hbGwge1xuICAgIHBhZGRpbmctdG9wOiBAc2VjdGlvbi14c21hbGwtcGFkZGluZy12ZXJ0aWNhbDtcbiAgICBwYWRkaW5nLWJvdHRvbTogQHNlY3Rpb24teHNtYWxsLXBhZGRpbmctdmVydGljYWw7XG59XG5cbi8qXG4gKiBTbWFsbFxuICovXG5cbi51ay1zZWN0aW9uLXNtYWxsIHtcbiAgICBwYWRkaW5nLXRvcDogQHNlY3Rpb24tc21hbGwtcGFkZGluZy12ZXJ0aWNhbDtcbiAgICBwYWRkaW5nLWJvdHRvbTogQHNlY3Rpb24tc21hbGwtcGFkZGluZy12ZXJ0aWNhbDtcbn1cblxuLypcbiAqIExhcmdlXG4gKi9cblxuLnVrLXNlY3Rpb24tbGFyZ2Uge1xuICAgIHBhZGRpbmctdG9wOiBAc2VjdGlvbi1sYXJnZS1wYWRkaW5nLXZlcnRpY2FsO1xuICAgIHBhZGRpbmctYm90dG9tOiBAc2VjdGlvbi1sYXJnZS1wYWRkaW5nLXZlcnRpY2FsO1xufVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1tZWRpdW0pIHtcblxuICAgIC51ay1zZWN0aW9uLWxhcmdlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IEBzZWN0aW9uLWxhcmdlLXBhZGRpbmctdmVydGljYWwtbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IEBzZWN0aW9uLWxhcmdlLXBhZGRpbmctdmVydGljYWwtbTtcbiAgICB9XG5cbn1cblxuXG4vKlxuICogWExhcmdlXG4gKi9cblxuLnVrLXNlY3Rpb24teGxhcmdlIHtcbiAgICBwYWRkaW5nLXRvcDogQHNlY3Rpb24teGxhcmdlLXBhZGRpbmctdmVydGljYWw7XG4gICAgcGFkZGluZy1ib3R0b206IEBzZWN0aW9uLXhsYXJnZS1wYWRkaW5nLXZlcnRpY2FsO1xufVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1tZWRpdW0pIHtcblxuICAgIC51ay1zZWN0aW9uLXhsYXJnZSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiBAc2VjdGlvbi14bGFyZ2UtcGFkZGluZy12ZXJ0aWNhbC1tO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogQHNlY3Rpb24teGxhcmdlLXBhZGRpbmctdmVydGljYWwtbTtcbiAgICB9XG5cbn1cblxuXG4vKiBTdHlsZSBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogRGVmYXVsdFxuICovXG5cbi51ay1zZWN0aW9uLWRlZmF1bHQge1xuICAgIGJhY2tncm91bmQ6IEBzZWN0aW9uLWRlZmF1bHQtYmFja2dyb3VuZDtcbiAgICAuaG9vay1zZWN0aW9uLWRlZmF1bHQoKTtcbn1cblxuLypcbiAqIE11dGVkXG4gKi9cblxuLnVrLXNlY3Rpb24tbXV0ZWQge1xuICAgIGJhY2tncm91bmQ6IEBzZWN0aW9uLW11dGVkLWJhY2tncm91bmQ7XG4gICAgLmhvb2stc2VjdGlvbi1tdXRlZCgpO1xufVxuXG4vKlxuICogUHJpbWFyeVxuICovXG5cbi51ay1zZWN0aW9uLXByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6IEBzZWN0aW9uLXByaW1hcnktYmFja2dyb3VuZDtcbiAgICAuaG9vay1zZWN0aW9uLXByaW1hcnkoKTtcbn1cblxuLnVrLXNlY3Rpb24tcHJpbWFyeTpub3QoLnVrLXByZXNlcnZlLWNvbG9yKTpleHRlbmQoLnVrLWxpZ2h0IGFsbCkgd2hlbiAoQHNlY3Rpb24tcHJpbWFyeS1jb2xvci1tb2RlID0gbGlnaHQpIHt9XG4udWstc2VjdGlvbi1wcmltYXJ5Om5vdCgudWstcHJlc2VydmUtY29sb3IpOmV4dGVuZCgudWstZGFyayBhbGwpIHdoZW4gKEBzZWN0aW9uLXByaW1hcnktY29sb3ItbW9kZSA9IGRhcmspIHt9XG5cbi8qXG4gKiBTZWNvbmRhcnlcbiAqL1xuXG4udWstc2VjdGlvbi1zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQ6IEBzZWN0aW9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kO1xuICAgIC5ob29rLXNlY3Rpb24tc2Vjb25kYXJ5KCk7XG59XG5cbi51ay1zZWN0aW9uLXNlY29uZGFyeTpub3QoLnVrLXByZXNlcnZlLWNvbG9yKTpleHRlbmQoLnVrLWxpZ2h0IGFsbCkgd2hlbiAoQHNlY3Rpb24tc2Vjb25kYXJ5LWNvbG9yLW1vZGUgPSBsaWdodCkge31cbi51ay1zZWN0aW9uLXNlY29uZGFyeTpub3QoLnVrLXByZXNlcnZlLWNvbG9yKTpleHRlbmQoLnVrLWRhcmsgYWxsKSB3aGVuIChAc2VjdGlvbi1zZWNvbmRhcnktY29sb3ItbW9kZSA9IGRhcmspIHt9XG5cblxuLyogT3ZlcmxhcCBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBSZXNlcnZlZCBtb2RpZmllciB0byBtYWtlIGEgc2VjdGlvbiBvdmVybGFwIGFub3RoZXIgc2VjdGlvbiB3aXRoIGFuIGJvcmRlciBpbWFnZVxuICogSW1wbGVtZW50ZWQgYnkgdGhlIHRoZW1lXG4gKi9cblxuLnVrLXNlY3Rpb24tb3ZlcmxhcCB7XG4gICAgLmhvb2stc2VjdGlvbi1vdmVybGFwKCk7XG59XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1zZWN0aW9uLW1pc2MoKTtcblxuLmhvb2stc2VjdGlvbigpIHt9XG4uaG9vay1zZWN0aW9uLWRlZmF1bHQoKSB7fVxuLmhvb2stc2VjdGlvbi1tdXRlZCgpIHt9XG4uaG9vay1zZWN0aW9uLXNlY29uZGFyeSgpIHt9XG4uaG9vay1zZWN0aW9uLXByaW1hcnkoKSB7fVxuLmhvb2stc2VjdGlvbi1vdmVybGFwKCkge31cbi5ob29rLXNlY3Rpb24tbWlzYygpIHt9XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIENvbnRhaW5lclxuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gYWxpZ24gYW5kIGNlbnRlciB5b3VyIHNpdGUgYW5kIGdyaWQgY29udGVudFxuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWNvbnRhaW5lcmBcbi8vXG4vLyBNb2RpZmllcjogICAgICAgIGB1ay1jb250YWluZXItc21hbGxgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1jb250YWluZXItbGFyZ2VgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1jb250YWluZXItZXhwYW5kYFxuLy8gICAgICAgICAgICAgICAgICBgdWstY29udGFpbmVyLWV4cGFuZC1sZWZ0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstY29udGFpbmVyLWV4cGFuZC1yaWdodGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLWxlZnRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1jb250YWluZXItaXRlbS1wYWRkaW5nLXJlbW92ZS1yaWdodGBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AY29udGFpbmVyLW1heC13aWR0aDogICAgICAgICAgICAgICAgICAgMTIwMHB4O1xuQGNvbnRhaW5lci14c21hbGwtbWF4LXdpZHRoOiAgICAgICAgICAgIDc1MHB4O1xuQGNvbnRhaW5lci1zbWFsbC1tYXgtd2lkdGg6ICAgICAgICAgICAgIDkwMHB4O1xuQGNvbnRhaW5lci1sYXJnZS1tYXgtd2lkdGg6ICAgICAgICAgICAgIDE0MDBweDtcbkBjb250YWluZXIteGxhcmdlLW1heC13aWR0aDogICAgICAgICAgICAxNjAwcHg7XG5cbkBjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAxNXB4O1xuQGNvbnRhaW5lci1wYWRkaW5nLWhvcml6b250YWwtczogICAgICAgIEBnbG9iYWwtZ3V0dGVyO1xuQGNvbnRhaW5lci1wYWRkaW5nLWhvcml6b250YWwtbTogICAgICAgIEBnbG9iYWwtbWVkaXVtLWd1dHRlcjtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogQ29udGFpbmVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIEJveCBzaXppbmcgaGFzIHRvIGJlIGBjb250ZW50LWJveGAgc28gdGhlIG1heC13aWR0aCBpcyBhbHdheXMgdGhlIHNhbWUgYW5kXG4gKiAgICB1bmFmZmVjdGVkIGJ5IHRoZSBwYWRkaW5nIG9uIGRpZmZlcmVudCBicmVha3BvaW50cy4gSXQncyBpbXBvcnRhbnQgZm9yIHRoZSBzaXplIG1vZGlmaWVycy5cbiAqL1xuXG4udWstY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbG93LXJvb3Q7XG4gICAgLyogMSAqL1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIG1heC13aWR0aDogQGNvbnRhaW5lci1tYXgtd2lkdGg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmctbGVmdDogQGNvbnRhaW5lci1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgcGFkZGluZy1yaWdodDogQGNvbnRhaW5lci1wYWRkaW5nLWhvcml6b250YWw7XG59XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtc21hbGwpIHtcblxuICAgIC51ay1jb250YWluZXIge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IEBjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsLXM7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IEBjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsLXM7XG4gICAgfVxuXG59XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LW1lZGl1bSkge1xuXG4gICAgLnVrLWNvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogQGNvbnRhaW5lci1wYWRkaW5nLWhvcml6b250YWwtbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogQGNvbnRhaW5lci1wYWRkaW5nLWhvcml6b250YWwtbTtcbiAgICB9XG5cbn1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG5cbi51ay1jb250YWluZXIgPiA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cblxuLypcbiAqIFJlbW92ZSBwYWRkaW5nIGZyb20gbmVzdGVkIGNvbnRhaW5lcnNcbiAqL1xuXG4udWstY29udGFpbmVyIC51ay1jb250YWluZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuXG5cbi8qIFNpemUgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstY29udGFpbmVyLXhzbWFsbCB7IG1heC13aWR0aDogQGNvbnRhaW5lci14c21hbGwtbWF4LXdpZHRoOyB9XG5cbi51ay1jb250YWluZXItc21hbGwgeyBtYXgtd2lkdGg6IEBjb250YWluZXItc21hbGwtbWF4LXdpZHRoOyB9XG5cbi51ay1jb250YWluZXItbGFyZ2UgeyBtYXgtd2lkdGg6IEBjb250YWluZXItbGFyZ2UtbWF4LXdpZHRoOyB9XG5cbi51ay1jb250YWluZXIteGxhcmdlIHsgbWF4LXdpZHRoOiBAY29udGFpbmVyLXhsYXJnZS1tYXgtd2lkdGg7IH1cblxuLnVrLWNvbnRhaW5lci1leHBhbmQgeyBtYXgtd2lkdGg6IG5vbmU7IH1cblxuXG4vKiBFeHBhbmQgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogRXhwYW5kIG9uZSBzaWRlIG9ubHlcbiAqL1xuXG4udWstY29udGFpbmVyLWV4cGFuZC1sZWZ0IHsgbWFyZ2luLWxlZnQ6IDA7IH1cbi51ay1jb250YWluZXItZXhwYW5kLXJpZ2h0IHsgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtc21hbGwpIHtcblxuICAgIC51ay1jb250YWluZXItZXhwYW5kLWxlZnQudWstY29udGFpbmVyLXhzbWFsbCxcbiAgICAudWstY29udGFpbmVyLWV4cGFuZC1yaWdodC51ay1jb250YWluZXIteHNtYWxsIHsgbWF4LXdpZHRoOiB+J2NhbGMoNTAlICsgKEB7Y29udGFpbmVyLXhzbWFsbC1tYXgtd2lkdGh9IC8gMikgLSBAe2NvbnRhaW5lci1wYWRkaW5nLWhvcml6b250YWwtc30pJzsgfVxuXG4gICAgLnVrLWNvbnRhaW5lci1leHBhbmQtbGVmdC51ay1jb250YWluZXItc21hbGwsXG4gICAgLnVrLWNvbnRhaW5lci1leHBhbmQtcmlnaHQudWstY29udGFpbmVyLXNtYWxsIHsgbWF4LXdpZHRoOiB+J2NhbGMoNTAlICsgKEB7Y29udGFpbmVyLXNtYWxsLW1heC13aWR0aH0gLyAyKSAtIEB7Y29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1zfSknOyB9XG5cbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAudWstY29udGFpbmVyLWV4cGFuZC1sZWZ0LFxuICAgIC51ay1jb250YWluZXItZXhwYW5kLXJpZ2h0IHsgbWF4LXdpZHRoOiB+J2NhbGMoNTAlICsgKEB7Y29udGFpbmVyLW1heC13aWR0aH0gLyAyKSAtIEB7Y29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1tfSknOyB9XG5cbiAgICAudWstY29udGFpbmVyLWV4cGFuZC1sZWZ0LnVrLWNvbnRhaW5lci14c21hbGwsXG4gICAgLnVrLWNvbnRhaW5lci1leHBhbmQtcmlnaHQudWstY29udGFpbmVyLXhzbWFsbCB7IG1heC13aWR0aDogfidjYWxjKDUwJSArIChAe2NvbnRhaW5lci14c21hbGwtbWF4LXdpZHRofSAvIDIpIC0gQHtjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsLW19KSc7IH1cblxuICAgIC51ay1jb250YWluZXItZXhwYW5kLWxlZnQudWstY29udGFpbmVyLXNtYWxsLFxuICAgIC51ay1jb250YWluZXItZXhwYW5kLXJpZ2h0LnVrLWNvbnRhaW5lci1zbWFsbCB7IG1heC13aWR0aDogfidjYWxjKDUwJSArIChAe2NvbnRhaW5lci1zbWFsbC1tYXgtd2lkdGh9IC8gMikgLSBAe2NvbnRhaW5lci1wYWRkaW5nLWhvcml6b250YWwtbX0pJzsgfVxuXG4gICAgLnVrLWNvbnRhaW5lci1leHBhbmQtbGVmdC51ay1jb250YWluZXItbGFyZ2UsXG4gICAgLnVrLWNvbnRhaW5lci1leHBhbmQtcmlnaHQudWstY29udGFpbmVyLWxhcmdlIHsgbWF4LXdpZHRoOiB+J2NhbGMoNTAlICsgKEB7Y29udGFpbmVyLWxhcmdlLW1heC13aWR0aH0gLyAyKSAtIEB7Y29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1tfSknOyB9XG5cbiAgICAudWstY29udGFpbmVyLWV4cGFuZC1sZWZ0LnVrLWNvbnRhaW5lci14bGFyZ2UsXG4gICAgLnVrLWNvbnRhaW5lci1leHBhbmQtcmlnaHQudWstY29udGFpbmVyLXhsYXJnZSB7IG1heC13aWR0aDogfidjYWxjKDUwJSArIChAe2NvbnRhaW5lci14bGFyZ2UtbWF4LXdpZHRofSAvIDIpIC0gQHtjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsLW19KSc7IH1cblxufVxuXG5cbi8qIEl0ZW1cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogVXRpbGl0eSBjbGFzc2VzIHRvIHJlc2V0IGNvbnRhaW5lciBwYWRkaW5nIG9uIHRoZSBsZWZ0IG9yIHJpZ2h0IHNpZGVcbiAqIE5vdGU6IEl0IGhhcyB0byBiZSBuZWdhdGl2ZSBtYXJnaW4gb24gdGhlIGl0ZW0sIGJlY2F1c2UgaXQncyBzcGVjaWZpYyB0byB0aGUgaXRlbS5cbiAqL1xuXG4udWstY29udGFpbmVyLWl0ZW0tcGFkZGluZy1yZW1vdmUtbGVmdCxcbi51ay1jb250YWluZXItaXRlbS1wYWRkaW5nLXJlbW92ZS1yaWdodCB7IHdpZHRoOiB+J2NhbGMoMTAwJSArIEB7Y29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbH0pJyB9XG5cbi51ay1jb250YWluZXItaXRlbS1wYWRkaW5nLXJlbW92ZS1sZWZ0IHsgbWFyZ2luLWxlZnQ6IC1AY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbDsgfVxuLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLXJpZ2h0IHsgbWFyZ2luLXJpZ2h0OiAtQGNvbnRhaW5lci1wYWRkaW5nLWhvcml6b250YWw7IH1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1zbWFsbCkge1xuXG4gICAgLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLWxlZnQsXG4gICAgLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLXJpZ2h0IHsgd2lkdGg6IH4nY2FsYygxMDAlICsgQHtjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsLXN9KScgfVxuXG4gICAgLnVrLWNvbnRhaW5lci1pdGVtLXBhZGRpbmctcmVtb3ZlLWxlZnQgeyBtYXJnaW4tbGVmdDogLUBjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsLXM7IH1cbiAgICAudWstY29udGFpbmVyLWl0ZW0tcGFkZGluZy1yZW1vdmUtcmlnaHQgeyBtYXJnaW4tcmlnaHQ6IC1AY29udGFpbmVyLXBhZGRpbmctaG9yaXpvbnRhbC1zOyB9XG5cbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAudWstY29udGFpbmVyLWl0ZW0tcGFkZGluZy1yZW1vdmUtbGVmdCxcbiAgICAudWstY29udGFpbmVyLWl0ZW0tcGFkZGluZy1yZW1vdmUtcmlnaHQgeyB3aWR0aDogfidjYWxjKDEwMCUgKyBAe2NvbnRhaW5lci1wYWRkaW5nLWhvcml6b250YWwtbX0pJyB9XG5cbiAgICAudWstY29udGFpbmVyLWl0ZW0tcGFkZGluZy1yZW1vdmUtbGVmdCB7IG1hcmdpbi1sZWZ0OiAtQGNvbnRhaW5lci1wYWRkaW5nLWhvcml6b250YWwtbTsgfVxuICAgIC51ay1jb250YWluZXItaXRlbS1wYWRkaW5nLXJlbW92ZS1yaWdodCB7IG1hcmdpbi1yaWdodDogLUBjb250YWluZXItcGFkZGluZy1ob3Jpem9udGFsLW07IH1cblxufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stY29udGFpbmVyLW1pc2MoKTtcblxuLmhvb2stY29udGFpbmVyLW1pc2MoKSB7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBUaWxlXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgdGlsZWQgYm94ZXNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay10aWxlYFxuLy9cbi8vIE1vZGlmaWVyczogICAgICAgYHVrLXRpbGUteHNtYWxsYFxuLy8gICAgICAgICAgICAgICAgICBgdWstdGlsZS1zbWFsbGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRpbGUtbGFyZ2VgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10aWxlLXhsYXJnZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRpbGUtZGVmYXVsdGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRpbGUtbXV0ZWRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10aWxlLXByaW1hcnlgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10aWxlLXNlY29uZGFyeWBcbi8vXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1wcmVzZXJ2ZS1jb2xvcmBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AdGlsZS1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgICAgIDE1cHg7XG5AdGlsZS1wYWRkaW5nLWhvcml6b250YWwtczogICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZ3V0dGVyO1xuQHRpbGUtcGFkZGluZy1ob3Jpem9udGFsLW06ICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW1lZGl1bS1ndXR0ZXI7XG5AdGlsZS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbWVkaXVtLW1hcmdpbjtcbkB0aWxlLXBhZGRpbmctdmVydGljYWwtbTogICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1sYXJnZS1tYXJnaW47XG5cbkB0aWxlLXhzbWFsbC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgQGdsb2JhbC1tYXJnaW47XG5cbkB0aWxlLXNtYWxsLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tZWRpdW0tbWFyZ2luO1xuXG5AdGlsZS1sYXJnZS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbGFyZ2UtbWFyZ2luO1xuQHRpbGUtbGFyZ2UtcGFkZGluZy12ZXJ0aWNhbC1tOiAgICAgICAgICAgICAgICBAZ2xvYmFsLXhsYXJnZS1tYXJnaW47XG5cbkB0aWxlLXhsYXJnZS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgQGdsb2JhbC14bGFyZ2UtbWFyZ2luO1xuQHRpbGUteGxhcmdlLXBhZGRpbmctdmVydGljYWwtbTogICAgICAgICAgICAgICAoQGdsb2JhbC1sYXJnZS1tYXJnaW4gKyBAZ2xvYmFsLXhsYXJnZS1tYXJnaW4pO1xuXG5AdGlsZS1kZWZhdWx0LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtYmFja2dyb3VuZDtcblxuQHRpbGUtbXV0ZWQtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWJhY2tncm91bmQ7XG5cbkB0aWxlLXByaW1hcnktYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQ7XG5AdGlsZS1wcmltYXJ5LWNvbG9yLW1vZGU6ICAgICAgICAgICAgICAgICAgICAgIGxpZ2h0O1xuXG5AdGlsZS1zZWNvbmRhcnktYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWJhY2tncm91bmQ7XG5AdGlsZS1zZWNvbmRhcnktY29sb3ItbW9kZTogICAgICAgICAgICAgICAgICAgIGxpZ2h0O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBUaWxlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXRpbGUge1xuICAgIGRpc3BsYXk6IGZsb3ctcm9vdDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nLWxlZnQ6IEB0aWxlLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBwYWRkaW5nLXJpZ2h0OiBAdGlsZS1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgcGFkZGluZy10b3A6IEB0aWxlLXBhZGRpbmctdmVydGljYWw7XG4gICAgcGFkZGluZy1ib3R0b206IEB0aWxlLXBhZGRpbmctdmVydGljYWw7XG4gICAgLmhvb2stdGlsZSgpO1xufVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LXNtYWxsKSB7XG5cbiAgICAudWstdGlsZSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogQHRpbGUtcGFkZGluZy1ob3Jpem9udGFsLXM7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IEB0aWxlLXBhZGRpbmctaG9yaXpvbnRhbC1zO1xuICAgIH1cblxufVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1tZWRpdW0pIHtcblxuICAgIC51ay10aWxlIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiBAdGlsZS1wYWRkaW5nLWhvcml6b250YWwtbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogQHRpbGUtcGFkZGluZy1ob3Jpem9udGFsLW07XG4gICAgICAgIHBhZGRpbmctdG9wOiBAdGlsZS1wYWRkaW5nLXZlcnRpY2FsLW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBAdGlsZS1wYWRkaW5nLXZlcnRpY2FsLW07XG4gICAgfVxuXG59XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcbiAqL1xuXG4udWstdGlsZSA+IDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5cbi8qIFNpemUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFhTbWFsbFxuICovXG5cbi51ay10aWxlLXhzbWFsbCB7XG4gICAgcGFkZGluZy10b3A6IEB0aWxlLXhzbWFsbC1wYWRkaW5nLXZlcnRpY2FsO1xuICAgIHBhZGRpbmctYm90dG9tOiBAdGlsZS14c21hbGwtcGFkZGluZy12ZXJ0aWNhbDtcbn1cblxuLypcbiAqIFNtYWxsXG4gKi9cblxuLnVrLXRpbGUtc21hbGwge1xuICAgIHBhZGRpbmctdG9wOiBAdGlsZS1zbWFsbC1wYWRkaW5nLXZlcnRpY2FsO1xuICAgIHBhZGRpbmctYm90dG9tOiBAdGlsZS1zbWFsbC1wYWRkaW5nLXZlcnRpY2FsO1xufVxuXG4vKlxuICogTGFyZ2VcbiAqL1xuXG4udWstdGlsZS1sYXJnZSB7XG4gICAgcGFkZGluZy10b3A6IEB0aWxlLWxhcmdlLXBhZGRpbmctdmVydGljYWw7XG4gICAgcGFkZGluZy1ib3R0b206IEB0aWxlLWxhcmdlLXBhZGRpbmctdmVydGljYWw7XG59XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LW1lZGl1bSkge1xuXG4gICAgLnVrLXRpbGUtbGFyZ2Uge1xuICAgICAgICBwYWRkaW5nLXRvcDogQHRpbGUtbGFyZ2UtcGFkZGluZy12ZXJ0aWNhbC1tO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogQHRpbGUtbGFyZ2UtcGFkZGluZy12ZXJ0aWNhbC1tO1xuICAgIH1cblxufVxuXG5cbi8qXG4gKiBYTGFyZ2VcbiAqL1xuXG4udWstdGlsZS14bGFyZ2Uge1xuICAgIHBhZGRpbmctdG9wOiBAdGlsZS14bGFyZ2UtcGFkZGluZy12ZXJ0aWNhbDtcbiAgICBwYWRkaW5nLWJvdHRvbTogQHRpbGUteGxhcmdlLXBhZGRpbmctdmVydGljYWw7XG59XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LW1lZGl1bSkge1xuXG4gICAgLnVrLXRpbGUteGxhcmdlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IEB0aWxlLXhsYXJnZS1wYWRkaW5nLXZlcnRpY2FsLW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBAdGlsZS14bGFyZ2UtcGFkZGluZy12ZXJ0aWNhbC1tO1xuICAgIH1cblxufVxuXG5cbi8qIFN0eWxlIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBEZWZhdWx0XG4gKi9cblxuLnVrLXRpbGUtZGVmYXVsdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQHRpbGUtZGVmYXVsdC1iYWNrZ3JvdW5kO1xuICAgIC5ob29rLXRpbGUtZGVmYXVsdCgpO1xufVxuXG4udWstdGlsZS1kZWZhdWx0LnVrLXRpbGUtaG92ZXI6aG92ZXIge1xuICAgIC5ob29rLXRpbGUtZGVmYXVsdC1ob3ZlcigpO1xufVxuXG4vKlxuICogTXV0ZWRcbiAqL1xuXG4udWstdGlsZS1tdXRlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQHRpbGUtbXV0ZWQtYmFja2dyb3VuZDtcbiAgICAuaG9vay10aWxlLW11dGVkKCk7XG59XG5cbi51ay10aWxlLW11dGVkLnVrLXRpbGUtaG92ZXI6aG92ZXIge1xuICAgIC5ob29rLXRpbGUtbXV0ZWQtaG92ZXIoKTtcbn1cblxuLypcbiAqIFByaW1hcnlcbiAqL1xuXG4udWstdGlsZS1wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAdGlsZS1wcmltYXJ5LWJhY2tncm91bmQ7XG4gICAgLmhvb2stdGlsZS1wcmltYXJ5KCk7XG59XG5cbi51ay10aWxlLXByaW1hcnkudWstdGlsZS1ob3Zlcjpob3ZlciB7XG4gICAgLmhvb2stdGlsZS1wcmltYXJ5LWhvdmVyKCk7XG59XG5cbi8vIENvbG9yIE1vZGVcbi51ay10aWxlLXByaW1hcnk6bm90KC51ay1wcmVzZXJ2ZS1jb2xvcik6ZXh0ZW5kKC51ay1saWdodCBhbGwpIHdoZW4gKEB0aWxlLXByaW1hcnktY29sb3ItbW9kZSA9IGxpZ2h0KSB7fVxuLnVrLXRpbGUtcHJpbWFyeTpub3QoLnVrLXByZXNlcnZlLWNvbG9yKTpleHRlbmQoLnVrLWRhcmsgYWxsKSB3aGVuIChAdGlsZS1wcmltYXJ5LWNvbG9yLW1vZGUgPSBkYXJrKSB7fVxuXG4vKlxuICogU2Vjb25kYXJ5XG4gKi9cblxuLnVrLXRpbGUtc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAdGlsZS1zZWNvbmRhcnktYmFja2dyb3VuZDtcbiAgICAuaG9vay10aWxlLXNlY29uZGFyeSgpO1xufVxuXG4udWstdGlsZS1zZWNvbmRhcnkudWstdGlsZS1ob3Zlcjpob3ZlciB7XG4gICAgLmhvb2stdGlsZS1zZWNvbmRhcnktaG92ZXIoKTtcbn1cblxuLy8gQ29sb3IgTW9kZVxuLnVrLXRpbGUtc2Vjb25kYXJ5Om5vdCgudWstcHJlc2VydmUtY29sb3IpOmV4dGVuZCgudWstbGlnaHQgYWxsKSB3aGVuIChAdGlsZS1zZWNvbmRhcnktY29sb3ItbW9kZSA9IGxpZ2h0KSB7fVxuLnVrLXRpbGUtc2Vjb25kYXJ5Om5vdCgudWstcHJlc2VydmUtY29sb3IpOmV4dGVuZCgudWstZGFyayBhbGwpIHdoZW4gKEB0aWxlLXNlY29uZGFyeS1jb2xvci1tb2RlID0gZGFyaykge31cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXRpbGUtbWlzYygpO1xuXG4uaG9vay10aWxlKCkge31cbi5ob29rLXRpbGUtZGVmYXVsdCgpIHt9XG4uaG9vay10aWxlLWRlZmF1bHQtaG92ZXIoKSB7fVxuLmhvb2stdGlsZS1tdXRlZCgpIHt9XG4uaG9vay10aWxlLW11dGVkLWhvdmVyKCkge31cbi5ob29rLXRpbGUtcHJpbWFyeSgpIHt9XG4uaG9vay10aWxlLXByaW1hcnktaG92ZXIoKSB7fVxuLmhvb2stdGlsZS1zZWNvbmRhcnkoKSB7fVxuLmhvb2stdGlsZS1zZWNvbmRhcnktaG92ZXIoKSB7fVxuLmhvb2stdGlsZS1taXNjKCkge31cbiIsIi8vXG4vLyBDb21wb25lbnQ6IFRpbGVcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gTmV3XG4vL1xuXG5cbkB0aWxlLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgIGRhcmtlbihAdGlsZS1tdXRlZC1iYWNrZ3JvdW5kLCAyJSk7XG5AdGlsZS1tdXRlZC1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICBkYXJrZW4oQHRpbGUtbXV0ZWQtYmFja2dyb3VuZCwgMiUpO1xuQHRpbGUtcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgZGFya2VuKEB0aWxlLXByaW1hcnktYmFja2dyb3VuZCwgNCUpO1xuQHRpbGUtc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgZGFya2VuKEB0aWxlLXNlY29uZGFyeS1iYWNrZ3JvdW5kLCA0JSk7XG5cbkBpbnRlcm5hbC10aWxlLWhvdmVyLW1vZGU6ICAgICAgICAgICAgICAgICAgICAgIH4nJzsgLy8gcmlwcGxlXG5cblxuLy8gQ29tcG9uZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stdGlsZSgpIHt9XG5cblxuLy8gU3R5bGUgbW9kaWZpZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stdGlsZS1kZWZhdWx0KCkge31cblxuLmhvb2stdGlsZS1kZWZhdWx0LWhvdmVyKCkgd2hlbiBub3QgKEB0aWxlLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZCA9IGluaGVyaXQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAdGlsZS1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQ7XG59XG5cbi8vXG4vLyBGaXggcmVuZGVyaW5nIGJ1ZyBpbiBTYWZhcmkgYnkgZmFkaW5nIHRoZSBvcmlnaW5hbCBjb2xvciB0byB0cmFuc3BhcmVudCBpbnN0ZWFkIG9mIGB0cmFuc3BhcmVudGAgd2hpY2ggaXMgYHJnYmEoMCwwLDAsMClgXG4vLyBOb3RlOiBmYWRlIGNvbG9yIGZ1bmN0aW9uIGRvZXNuJ3Qgd29yayB3aXRoIGBpbmhlcml0YFxuLy9cblxuLmhvb2stdGlsZS1kZWZhdWx0KCkgd2hlbiAoQGludGVybmFsLXRpbGUtaG92ZXItbW9kZSA9IHJpcHBsZSkgYW5kIG5vdCAoQHRpbGUtZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kID0gaW5oZXJpdCkge1xuXG4gICAgJi51ay10aWxlLWhvdmVyIHsgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGZhcnRoZXN0LXNpZGUgYXQgNTAlIDEwMCUsIEB0aWxlLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZCB+J2NhbGMoMTAwJSAtIDFweCknLCBmYWRlKEB0aWxlLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZCwgMCUpIDEwMCUpOyB9XG5cbn1cblxuLmhvb2stdGlsZS1kZWZhdWx0LWhvdmVyKCkgd2hlbiAoQGludGVybmFsLXRpbGUtaG92ZXItbW9kZSA9IHJpcHBsZSkgYW5kIG5vdCAoQHRpbGUtZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kID0gaW5oZXJpdCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEB0aWxlLWRlZmF1bHQtYmFja2dyb3VuZDtcbn1cblxuLy9cbi8vIE11dGVkXG4vL1xuXG4uaG9vay10aWxlLW11dGVkKCkge31cblxuLmhvb2stdGlsZS1tdXRlZC1ob3ZlcigpIHdoZW4gbm90IChAdGlsZS1tdXRlZC1ob3Zlci1iYWNrZ3JvdW5kID0gaW5oZXJpdCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEB0aWxlLW11dGVkLWhvdmVyLWJhY2tncm91bmQ7XG59XG5cbi8vXG4vLyBGaXggcmVuZGVyaW5nIGJ1ZyBpbiBTYWZhcmkgYnkgZmFkaW5nIHRoZSBvcmlnaW5hbCBjb2xvciB0byB0cmFuc3BhcmVudCBpbnN0ZWFkIG9mIGB0cmFuc3BhcmVudGAgd2hpY2ggaXMgYHJnYmEoMCwwLDAsMClgXG4vLyBOb3RlOiBmYWRlIGNvbG9yIGZ1bmN0aW9uIGRvZXNuJ3Qgd29yayB3aXRoIGBpbmhlcml0YFxuLy9cblxuLmhvb2stdGlsZS1tdXRlZCgpIHdoZW4gKEBpbnRlcm5hbC10aWxlLWhvdmVyLW1vZGUgPSByaXBwbGUpIGFuZCBub3QgKEB0aWxlLW11dGVkLWhvdmVyLWJhY2tncm91bmQgPSBpbmhlcml0KSB7XG5cbiAgICAmLnVrLXRpbGUtaG92ZXIgeyBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoZmFydGhlc3Qtc2lkZSBhdCA1MCUgMTAwJSwgQHRpbGUtbXV0ZWQtaG92ZXItYmFja2dyb3VuZCB+J2NhbGMoMTAwJSAtIDFweCknLCBmYWRlKEB0aWxlLW11dGVkLWhvdmVyLWJhY2tncm91bmQsIDAlKSAxMDAlKTsgfVxuXG59XG5cbi5ob29rLXRpbGUtbXV0ZWQtaG92ZXIoKSB3aGVuIChAaW50ZXJuYWwtdGlsZS1ob3Zlci1tb2RlID0gcmlwcGxlKSBhbmQgbm90IChAdGlsZS1tdXRlZC1ob3Zlci1iYWNrZ3JvdW5kID0gaW5oZXJpdCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEB0aWxlLW11dGVkLWJhY2tncm91bmQ7XG59XG5cbi8vXG4vLyBQcmltYXJ5XG4vL1xuXG4uaG9vay10aWxlLXByaW1hcnkoKSB7fVxuXG4uaG9vay10aWxlLXByaW1hcnktaG92ZXIoKSB3aGVuIG5vdCAoQHRpbGUtcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kID0gaW5oZXJpdCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEB0aWxlLXByaW1hcnktaG92ZXItYmFja2dyb3VuZDtcbn1cblxuLy9cbi8vIEZpeCByZW5kZXJpbmcgYnVnIGluIFNhZmFyaSBieSBmYWRpbmcgdGhlIG9yaWdpbmFsIGNvbG9yIHRvIHRyYW5zcGFyZW50IGluc3RlYWQgb2YgYHRyYW5zcGFyZW50YCB3aGljaCBpcyBgcmdiYSgwLDAsMCwwKWBcbi8vIE5vdGU6IGZhZGUgY29sb3IgZnVuY3Rpb24gZG9lc24ndCB3b3JrIHdpdGggYGluaGVyaXRgXG4vL1xuXG4uaG9vay10aWxlLXByaW1hcnkoKSB3aGVuIChAaW50ZXJuYWwtdGlsZS1ob3Zlci1tb2RlID0gcmlwcGxlKSBhbmQgbm90IChAdGlsZS1wcmltYXJ5LWhvdmVyLWJhY2tncm91bmQgPSBpbmhlcml0KSB7XG5cbiAgICAmLnVrLXRpbGUtaG92ZXIgeyBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoZmFydGhlc3Qtc2lkZSBhdCA1MCUgMTAwJSwgQHRpbGUtcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kIH4nY2FsYygxMDAlIC0gMXB4KScsIGZhZGUoQHRpbGUtcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kLCAwJSkgMTAwJSk7IH1cblxufVxuXG4uaG9vay10aWxlLXByaW1hcnktaG92ZXIoKSB3aGVuIChAaW50ZXJuYWwtdGlsZS1ob3Zlci1tb2RlID0gcmlwcGxlKSBhbmQgbm90IChAdGlsZS1wcmltYXJ5LWhvdmVyLWJhY2tncm91bmQgPSBpbmhlcml0KSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQHRpbGUtcHJpbWFyeS1iYWNrZ3JvdW5kO1xufVxuXG4vL1xuLy8gU2Vjb25kYXJ5XG4vL1xuXG4uaG9vay10aWxlLXNlY29uZGFyeSgpIHt9XG5cbi5ob29rLXRpbGUtc2Vjb25kYXJ5LWhvdmVyKCkgd2hlbiBub3QgKEB0aWxlLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kID0gaW5oZXJpdCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEB0aWxlLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xufVxuXG4vL1xuLy8gRml4IHJlbmRlcmluZyBidWcgaW4gU2FmYXJpIGJ5IGZhZGluZyB0aGUgb3JpZ2luYWwgY29sb3IgdG8gdHJhbnNwYXJlbnQgaW5zdGVhZCBvZiBgdHJhbnNwYXJlbnRgIHdoaWNoIGlzIGByZ2JhKDAsMCwwLDApYFxuLy8gTm90ZTogZmFkZSBjb2xvciBmdW5jdGlvbiBkb2Vzbid0IHdvcmsgd2l0aCBgaW5oZXJpdGBcbi8vXG5cbi5ob29rLXRpbGUtc2Vjb25kYXJ5KCkgd2hlbiAoQGludGVybmFsLXRpbGUtaG92ZXItbW9kZSA9IHJpcHBsZSkgYW5kIG5vdCAoQHRpbGUtc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQgPSBpbmhlcml0KSB7XG5cbiAgICAmLnVrLXRpbGUtaG92ZXIgeyBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoZmFydGhlc3Qtc2lkZSBhdCA1MCUgMTAwJSwgQHRpbGUtc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQgfidjYWxjKDEwMCUgLSAxcHgpJywgZmFkZShAdGlsZS1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZCwgMCUpIDEwMCUpOyB9XG5cbn1cblxuLmhvb2stdGlsZS1zZWNvbmRhcnktaG92ZXIoKSB3aGVuIChAaW50ZXJuYWwtdGlsZS1ob3Zlci1tb2RlID0gcmlwcGxlKSBhbmQgbm90IChAdGlsZS1zZWNvbmRhcnktaG92ZXItYmFja2dyb3VuZCA9IGluaGVyaXQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAdGlsZS1zZWNvbmRhcnktYmFja2dyb3VuZDtcbn1cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stdGlsZS1taXNjKCkge1xuXG4gICAgLnVrLXRpbGUtaG92ZXIge1xuICAgICAgICB0cmFuc2l0aW9uOiAwLjFzIGVhc2UtaW4tb3V0O1xuICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLCBiYWNrZ3JvdW5kLXNpemU7XG4gICAgfVxuXG59XG5cbi5ob29rLXRpbGUtbWlzYygpIHdoZW4gKEBpbnRlcm5hbC10aWxlLWhvdmVyLW1vZGUgPSByaXBwbGUpIHtcblxuICAgIC51ay10aWxlLWhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMCAwO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4xNjUsLjg1LC40NSwxKTtcbiAgICB9XG5cbiAgICAudWstdGlsZS1ob3Zlcjpob3ZlciB7IGJhY2tncm91bmQtc2l6ZTogMTUwJSAxNTAlOyB9XG5cbn1cblxuLy8gRml4IGlmIGB1ay1saW5rLXRvZ2dsZWAgaXMgc2V0IG9uIHRpbGVcbi5ob29rLXRpbGUtbWlzYygpIHdoZW4gKEB0aWxlLXByaW1hcnktY29sb3ItbW9kZSA9IGxpZ2h0KSB7XG5cbiAgICA6d2hlcmUoLnVrLXRpbGUtcHJpbWFyeTpub3QoLnVrLXByZXNlcnZlLWNvbG9yKSkgPiAqICB7IGNvbG9yOiBAaW52ZXJzZS1iYXNlLWNvbG9yOyB9XG5cbn1cbi5ob29rLXRpbGUtbWlzYygpIHdoZW4gKEB0aWxlLXNlY29uZGFyeS1jb2xvci1tb2RlID0gbGlnaHQpIHtcblxuICAgIDp3aGVyZSgudWstdGlsZS1zZWNvbmRhcnk6bm90KC51ay1wcmVzZXJ2ZS1jb2xvcikpID4gKiAgeyBjb2xvcjogQGludmVyc2UtYmFzZS1jb2xvcjsgfVxuXG59XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIENhcmRcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBib3hlZCBjb250ZW50IGNvbnRhaW5lcnNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1jYXJkYFxuLy9cbi8vIFN1Yi1vYmplY3RzOiAgICAgYHVrLWNhcmQtYm9keWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWNhcmQtaGVhZGVyYFxuLy8gICAgICAgICAgICAgICAgICBgdWstY2FyZC1mb290ZXJgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1jYXJkLW1lZGlhLSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1jYXJkLXRpdGxlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstY2FyZC1iYWRnZWBcbi8vXG4vLyBNb2RpZmllcnM6ICAgICAgIGB1ay1jYXJkLWhvdmVyYFxuLy8gICAgICAgICAgICAgICAgICBgdWstY2FyZC1kZWZhdWx0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstY2FyZC1wcmltYXJ5YFxuLy8gICAgICAgICAgICAgICAgICBgdWstY2FyZC1zZWNvbmRhcnlgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1jYXJkLXNtYWxsYFxuLy8gICAgICAgICAgICAgICAgICBgdWstY2FyZC1sYXJnZWBcbi8vXG4vLyBVc2VzOiAgICAgICAgICAgIGB1ay1ncmlkLXN0YWNrYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBjYXJkLWJvZHktcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgQGdsb2JhbC1ndXR0ZXI7XG5AY2FyZC1ib2R5LXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZ3V0dGVyO1xuXG5AY2FyZC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbC1sOiAgICAgICAgICAgICAgIEBnbG9iYWwtbWVkaXVtLWd1dHRlcjtcbkBjYXJkLWJvZHktcGFkZGluZy12ZXJ0aWNhbC1sOiAgICAgICAgICAgICAgICAgQGdsb2JhbC1tZWRpdW0tZ3V0dGVyO1xuXG5AY2FyZC1oZWFkZXItcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgIEBnbG9iYWwtZ3V0dGVyO1xuQGNhcmQtaGVhZGVyLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICByb3VuZCgoQGdsb2JhbC1ndXR0ZXIgLyAyKSk7XG5cbkBjYXJkLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWwtbDogICAgICAgICAgICAgQGdsb2JhbC1tZWRpdW0tZ3V0dGVyO1xuQGNhcmQtaGVhZGVyLXBhZGRpbmctdmVydGljYWwtbDogICAgICAgICAgICAgICByb3VuZCgoQGdsb2JhbC1tZWRpdW0tZ3V0dGVyIC8gMikpO1xuXG5AY2FyZC1mb290ZXItcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgIEBnbG9iYWwtZ3V0dGVyO1xuQGNhcmQtZm9vdGVyLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAoQGdsb2JhbC1ndXR0ZXIgLyAyKTtcblxuQGNhcmQtZm9vdGVyLXBhZGRpbmctaG9yaXpvbnRhbC1sOiAgICAgICAgICAgICBAZ2xvYmFsLW1lZGl1bS1ndXR0ZXI7XG5AY2FyZC1mb290ZXItcGFkZGluZy12ZXJ0aWNhbC1sOiAgICAgICAgICAgICAgIHJvdW5kKChAZ2xvYmFsLW1lZGl1bS1ndXR0ZXIgLyAyKSk7XG5cbkBjYXJkLXRpdGxlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1sYXJnZS1mb250LXNpemU7XG5AY2FyZC10aXRsZS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgIDEuNDtcblxuQGNhcmQtYmFkZ2UtdG9wOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNXB4O1xuQGNhcmQtYmFkZ2UtcmlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNXB4O1xuQGNhcmQtYmFkZ2UtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMnB4O1xuQGNhcmQtYmFkZ2UtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAxMHB4O1xuQGNhcmQtYmFkZ2UtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZDtcbkBjYXJkLWJhZGdlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1pbnZlcnNlLWNvbG9yO1xuQGNhcmQtYmFkZ2UtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZTtcblxuQGNhcmQtaG92ZXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWJhY2tncm91bmQ7XG5cbkBjYXJkLWRlZmF1bHQtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kO1xuQGNhcmQtZGVmYXVsdC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWNvbG9yO1xuQGNhcmQtZGVmYXVsdC10aXRsZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQGNhcmQtZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICBkYXJrZW4oQGNhcmQtZGVmYXVsdC1iYWNrZ3JvdW5kLCA1JSk7XG5cbkBjYXJkLXByaW1hcnktYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQ7XG5AY2FyZC1wcmltYXJ5LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtaW52ZXJzZS1jb2xvcjtcbkBjYXJkLXByaW1hcnktdGl0bGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgQGNhcmQtcHJpbWFyeS1jb2xvcjtcbkBjYXJkLXByaW1hcnktaG92ZXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgZGFya2VuKEBjYXJkLXByaW1hcnktYmFja2dyb3VuZCwgNSUpO1xuQGNhcmQtcHJpbWFyeS1jb2xvci1tb2RlOiAgICAgICAgICAgICAgICAgICAgICBsaWdodDtcblxuQGNhcmQtc2Vjb25kYXJ5LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1iYWNrZ3JvdW5kO1xuQGNhcmQtc2Vjb25kYXJ5LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWludmVyc2UtY29sb3I7XG5AY2FyZC1zZWNvbmRhcnktdGl0bGUtY29sb3I6ICAgICAgICAgICAgICAgICAgIEBjYXJkLXNlY29uZGFyeS1jb2xvcjtcbkBjYXJkLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgZGFya2VuKEBjYXJkLXNlY29uZGFyeS1iYWNrZ3JvdW5kLCA1JSk7XG5AY2FyZC1zZWNvbmRhcnktY29sb3ItbW9kZTogICAgICAgICAgICAgICAgICAgIGxpZ2h0O1xuXG5AY2FyZC1zbWFsbC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgIEBnbG9iYWwtbWFyZ2luO1xuQGNhcmQtc21hbGwtYm9keS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICBAZ2xvYmFsLW1hcmdpbjtcbkBjYXJkLXNtYWxsLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgQGdsb2JhbC1tYXJnaW47XG5AY2FyZC1zbWFsbC1oZWFkZXItcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgIHJvdW5kKChAZ2xvYmFsLW1hcmdpbiAvIDEuNSkpO1xuQGNhcmQtc21hbGwtZm9vdGVyLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICBAZ2xvYmFsLW1hcmdpbjtcbkBjYXJkLXNtYWxsLWZvb3Rlci1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgcm91bmQoKEBnbG9iYWwtbWFyZ2luIC8gMS41KSk7XG5cbkBjYXJkLWxhcmdlLWJvZHktcGFkZGluZy1ob3Jpem9udGFsLWw6ICAgICAgICAgQGdsb2JhbC1sYXJnZS1ndXR0ZXI7XG5AY2FyZC1sYXJnZS1ib2R5LXBhZGRpbmctdmVydGljYWwtbDogICAgICAgICAgIEBnbG9iYWwtbGFyZ2UtZ3V0dGVyO1xuQGNhcmQtbGFyZ2UtaGVhZGVyLXBhZGRpbmctaG9yaXpvbnRhbC1sOiAgICAgICBAZ2xvYmFsLWxhcmdlLWd1dHRlcjtcbkBjYXJkLWxhcmdlLWhlYWRlci1wYWRkaW5nLXZlcnRpY2FsLWw6ICAgICAgICAgcm91bmQoKEBnbG9iYWwtbGFyZ2UtZ3V0dGVyIC8gMikpO1xuQGNhcmQtbGFyZ2UtZm9vdGVyLXBhZGRpbmctaG9yaXpvbnRhbC1sOiAgICAgICBAZ2xvYmFsLWxhcmdlLWd1dHRlcjtcbkBjYXJkLWxhcmdlLWZvb3Rlci1wYWRkaW5nLXZlcnRpY2FsLWw6ICAgICAgICAgcm91bmQoKEBnbG9iYWwtbGFyZ2UtZ3V0dGVyIC8gMikpO1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBDYXJkXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWNhcmQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC5ob29rLWNhcmQoKTtcbn1cblxuXG4vKiBTZWN0aW9uc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1jYXJkLWJvZHkge1xuICAgIGRpc3BsYXk6IGZsb3ctcm9vdDtcbiAgICBwYWRkaW5nOiBAY2FyZC1ib2R5LXBhZGRpbmctdmVydGljYWwgQGNhcmQtYm9keS1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgLmhvb2stY2FyZC1ib2R5KCk7XG59XG5cbi51ay1jYXJkLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxvdy1yb290O1xuICAgIHBhZGRpbmc6IEBjYXJkLWhlYWRlci1wYWRkaW5nLXZlcnRpY2FsIEBjYXJkLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgLmhvb2stY2FyZC1oZWFkZXIoKTtcbn1cblxuLnVrLWNhcmQtZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBmbG93LXJvb3Q7XG4gICAgcGFkZGluZzogQGNhcmQtZm9vdGVyLXBhZGRpbmctdmVydGljYWwgQGNhcmQtZm9vdGVyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICAuaG9vay1jYXJkLWZvb3RlcigpO1xufVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1sYXJnZSkge1xuXG4gICAgLnVrLWNhcmQtYm9keSB7IHBhZGRpbmc6IEBjYXJkLWJvZHktcGFkZGluZy12ZXJ0aWNhbC1sIEBjYXJkLWJvZHktcGFkZGluZy1ob3Jpem9udGFsLWw7IH1cblxuICAgIC51ay1jYXJkLWhlYWRlciB7IHBhZGRpbmc6IEBjYXJkLWhlYWRlci1wYWRkaW5nLXZlcnRpY2FsLWwgQGNhcmQtaGVhZGVyLXBhZGRpbmctaG9yaXpvbnRhbC1sOyB9XG5cbiAgICAudWstY2FyZC1mb290ZXIgeyBwYWRkaW5nOiBAY2FyZC1mb290ZXItcGFkZGluZy12ZXJ0aWNhbC1sIEBjYXJkLWZvb3Rlci1wYWRkaW5nLWhvcml6b250YWwtbDsgfVxuXG59XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcbiAqL1xuXG4udWstY2FyZC1ib2R5ID4gOmxhc3QtY2hpbGQsXG4udWstY2FyZC1oZWFkZXIgPiA6bGFzdC1jaGlsZCxcbi51ay1jYXJkLWZvb3RlciA+IDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5cbi8qIE1lZGlhXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFJlc2VydmVkIGFsaWdubWVudCBtb2RpZmllciB0byBzdHlsZSB0aGUgbWVkaWEgZWxlbWVudCwgZS5nLiB3aXRoIGBib3JkZXItcmFkaXVzYFxuICogSW1wbGVtZW50ZWQgYnkgdGhlIHRoZW1lXG4gKi9cblxuW2NsYXNzKj0ndWstY2FyZC1tZWRpYSddIHtcbiAgICAuaG9vay1jYXJkLW1lZGlhKCk7XG59XG5cbi51ay1jYXJkLW1lZGlhLXRvcCxcbi51ay1ncmlkLXN0YWNrID4gLnVrLWNhcmQtbWVkaWEtbGVmdCxcbi51ay1ncmlkLXN0YWNrID4gLnVrLWNhcmQtbWVkaWEtcmlnaHQgIHtcbiAgICAuaG9vay1jYXJkLW1lZGlhLXRvcCgpO1xufVxuXG4udWstY2FyZC1tZWRpYS1ib3R0b20ge1xuICAgIC5ob29rLWNhcmQtbWVkaWEtYm90dG9tKCk7XG59XG5cbjpub3QoLnVrLWdyaWQtc3RhY2spID4gLnVrLWNhcmQtbWVkaWEtbGVmdCB7XG4gICAgLmhvb2stY2FyZC1tZWRpYS1sZWZ0KCk7XG59XG5cbjpub3QoLnVrLWdyaWQtc3RhY2spID4gLnVrLWNhcmQtbWVkaWEtcmlnaHQge1xuICAgIC5ob29rLWNhcmQtbWVkaWEtcmlnaHQoKTtcbn1cblxuXG4vKiBUaXRsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1jYXJkLXRpdGxlIHtcbiAgICBmb250LXNpemU6IEBjYXJkLXRpdGxlLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogQGNhcmQtdGl0bGUtbGluZS1oZWlnaHQ7XG4gICAgLmhvb2stY2FyZC10aXRsZSgpO1xufVxuXG5cbi8qIEJhZGdlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFBvc2l0aW9uXG4gKiAyLiBTaXplXG4gKiAzLiBTdHlsZVxuICogNC4gQ2VudGVyIGNoaWxkIHZlcnRpY2FsbHlcbiAqL1xuXG4udWstY2FyZC1iYWRnZSB7XG4gICAgLyogMSAqL1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IEBjYXJkLWJhZGdlLXRvcDtcbiAgICByaWdodDogQGNhcmQtYmFkZ2UtcmlnaHQ7XG4gICAgei1pbmRleDogMTtcbiAgICAvKiAyICovXG4gICAgaGVpZ2h0OiBAY2FyZC1iYWRnZS1oZWlnaHQ7XG4gICAgcGFkZGluZzogMCBAY2FyZC1iYWRnZS1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgLyogMyAqL1xuICAgIGJhY2tncm91bmQ6IEBjYXJkLWJhZGdlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6IEBjYXJkLWJhZGdlLWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogQGNhcmQtYmFkZ2UtZm9udC1zaXplO1xuICAgIC8qIDQgKi9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgLmhvb2stY2FyZC1iYWRnZSgpO1xufVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIGFkamFjZW50IGVsZW1lbnRcbiAqL1xuXG4udWstY2FyZC1iYWRnZTpmaXJzdC1jaGlsZCArICogeyBtYXJnaW4tdG9wOiAwOyB9XG5cblxuLyogSG92ZXIgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstY2FyZC1ob3Zlcjpub3QoLnVrLWNhcmQtZGVmYXVsdCk6bm90KC51ay1jYXJkLXByaW1hcnkpOm5vdCgudWstY2FyZC1zZWNvbmRhcnkpOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAY2FyZC1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgIC5ob29rLWNhcmQtaG92ZXIoKTtcbn1cblxuXG4vKiBTdHlsZSBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogRGVmYXVsdFxuICogTm90ZTogSGVhZGVyIGFuZCBGb290ZXIgYXJlIG9ubHkgaW1wbGVtZW50ZWQgZm9yIHRoZSBkZWZhdWx0IHN0eWxlXG4gKi9cblxuLnVrLWNhcmQtZGVmYXVsdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGNhcmQtZGVmYXVsdC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiBAY2FyZC1kZWZhdWx0LWNvbG9yO1xuICAgIC5ob29rLWNhcmQtZGVmYXVsdCgpO1xufVxuXG4udWstY2FyZC1kZWZhdWx0IC51ay1jYXJkLXRpdGxlIHtcbiAgICBjb2xvcjogQGNhcmQtZGVmYXVsdC10aXRsZS1jb2xvcjtcbiAgICAuaG9vay1jYXJkLWRlZmF1bHQtdGl0bGUoKTtcbn1cblxuLnVrLWNhcmQtZGVmYXVsdC51ay1jYXJkLWhvdmVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAY2FyZC1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQ7XG4gICAgLmhvb2stY2FyZC1kZWZhdWx0LWhvdmVyKCk7XG59XG5cbi51ay1jYXJkLWRlZmF1bHQgLnVrLWNhcmQtaGVhZGVyIHtcbiAgICAuaG9vay1jYXJkLWRlZmF1bHQtaGVhZGVyKCk7XG59XG5cbi51ay1jYXJkLWRlZmF1bHQgLnVrLWNhcmQtZm9vdGVyIHtcbiAgICAuaG9vay1jYXJkLWRlZmF1bHQtZm9vdGVyKCk7XG59XG5cbi8qXG4gKiBQcmltYXJ5XG4gKi9cblxuLnVrLWNhcmQtcHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGNhcmQtcHJpbWFyeS1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiBAY2FyZC1wcmltYXJ5LWNvbG9yO1xuICAgIC5ob29rLWNhcmQtcHJpbWFyeSgpO1xufVxuXG4udWstY2FyZC1wcmltYXJ5IC51ay1jYXJkLXRpdGxlIHtcbiAgICBjb2xvcjogQGNhcmQtcHJpbWFyeS10aXRsZS1jb2xvcjtcbiAgICAuaG9vay1jYXJkLXByaW1hcnktdGl0bGUoKTtcbn1cblxuLnVrLWNhcmQtcHJpbWFyeS51ay1jYXJkLWhvdmVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAY2FyZC1wcmltYXJ5LWhvdmVyLWJhY2tncm91bmQ7XG4gICAgLmhvb2stY2FyZC1wcmltYXJ5LWhvdmVyKCk7XG59XG5cbi8vIENvbG9yIE1vZGVcbi51ay1jYXJkLXByaW1hcnkudWstY2FyZC1ib2R5OmV4dGVuZCgudWstbGlnaHQgYWxsKSB3aGVuIChAY2FyZC1wcmltYXJ5LWNvbG9yLW1vZGUgPSBsaWdodCkge31cbi51ay1jYXJkLXByaW1hcnkgPiA6bm90KFtjbGFzcyo9J3VrLWNhcmQtbWVkaWEnXSk6ZXh0ZW5kKC51ay1saWdodCBhbGwpIHdoZW4gKEBjYXJkLXByaW1hcnktY29sb3ItbW9kZSA9IGxpZ2h0KSB7fVxuLnVrLWNhcmQtcHJpbWFyeS51ay1jYXJkLWJvZHk6ZXh0ZW5kKC51ay1kYXJrIGFsbCkgd2hlbiAoQGNhcmQtcHJpbWFyeS1jb2xvci1tb2RlID0gZGFyaykge31cbi51ay1jYXJkLXByaW1hcnkgPiA6bm90KFtjbGFzcyo9J3VrLWNhcmQtbWVkaWEnXSk6ZXh0ZW5kKC51ay1kYXJrIGFsbCkgd2hlbiAoQGNhcmQtcHJpbWFyeS1jb2xvci1tb2RlID0gZGFyaykge31cblxuLypcbiAqIFNlY29uZGFyeVxuICovXG5cbi51ay1jYXJkLXNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGNhcmQtc2Vjb25kYXJ5LWJhY2tncm91bmQ7XG4gICAgY29sb3I6IEBjYXJkLXNlY29uZGFyeS1jb2xvcjtcbiAgICAuaG9vay1jYXJkLXNlY29uZGFyeSgpO1xufVxuXG4udWstY2FyZC1zZWNvbmRhcnkgLnVrLWNhcmQtdGl0bGUge1xuICAgIGNvbG9yOiBAY2FyZC1zZWNvbmRhcnktdGl0bGUtY29sb3I7XG4gICAgLmhvb2stY2FyZC1zZWNvbmRhcnktdGl0bGUoKTtcbn1cblxuLnVrLWNhcmQtc2Vjb25kYXJ5LnVrLWNhcmQtaG92ZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBjYXJkLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgIC5ob29rLWNhcmQtc2Vjb25kYXJ5LWhvdmVyKCk7XG59XG5cbi8vIENvbG9yIE1vZGVcbi51ay1jYXJkLXNlY29uZGFyeS51ay1jYXJkLWJvZHk6ZXh0ZW5kKC51ay1saWdodCBhbGwpIHdoZW4gKEBjYXJkLXNlY29uZGFyeS1jb2xvci1tb2RlID0gbGlnaHQpIHt9XG4udWstY2FyZC1zZWNvbmRhcnkgPiA6bm90KFtjbGFzcyo9J3VrLWNhcmQtbWVkaWEnXSk6ZXh0ZW5kKC51ay1saWdodCBhbGwpIHdoZW4gKEBjYXJkLXNlY29uZGFyeS1jb2xvci1tb2RlID0gbGlnaHQpIHt9XG4udWstY2FyZC1zZWNvbmRhcnkudWstY2FyZC1ib2R5OmV4dGVuZCgudWstZGFyayBhbGwpIHdoZW4gKEBjYXJkLXNlY29uZGFyeS1jb2xvci1tb2RlID0gZGFyaykge31cbi51ay1jYXJkLXNlY29uZGFyeSA+IDpub3QoW2NsYXNzKj0ndWstY2FyZC1tZWRpYSddKTpleHRlbmQoLnVrLWRhcmsgYWxsKSB3aGVuIChAY2FyZC1zZWNvbmRhcnktY29sb3ItbW9kZSA9IGRhcmspIHt9XG5cblxuLyogU2l6ZSBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBTbWFsbFxuICovXG5cbi51ay1jYXJkLXNtYWxsLnVrLWNhcmQtYm9keSxcbi51ay1jYXJkLXNtYWxsIC51ay1jYXJkLWJvZHkgeyBwYWRkaW5nOiBAY2FyZC1zbWFsbC1ib2R5LXBhZGRpbmctdmVydGljYWwgQGNhcmQtc21hbGwtYm9keS1wYWRkaW5nLWhvcml6b250YWw7IH1cblxuLnVrLWNhcmQtc21hbGwgLnVrLWNhcmQtaGVhZGVyIHsgcGFkZGluZzogQGNhcmQtc21hbGwtaGVhZGVyLXBhZGRpbmctdmVydGljYWwgQGNhcmQtc21hbGwtaGVhZGVyLXBhZGRpbmctaG9yaXpvbnRhbDsgfVxuLnVrLWNhcmQtc21hbGwgLnVrLWNhcmQtZm9vdGVyIHsgcGFkZGluZzogQGNhcmQtc21hbGwtZm9vdGVyLXBhZGRpbmctdmVydGljYWwgQGNhcmQtc21hbGwtZm9vdGVyLXBhZGRpbmctaG9yaXpvbnRhbDsgfVxuXG4vKlxuICogTGFyZ2VcbiAqL1xuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1sYXJnZSkge1xuXG4gICAgLnVrLWNhcmQtbGFyZ2UudWstY2FyZC1ib2R5LFxuICAgIC51ay1jYXJkLWxhcmdlIC51ay1jYXJkLWJvZHkgeyBwYWRkaW5nOiBAY2FyZC1sYXJnZS1ib2R5LXBhZGRpbmctdmVydGljYWwtbCBAY2FyZC1sYXJnZS1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbC1sOyB9XG5cbiAgICAudWstY2FyZC1sYXJnZSAudWstY2FyZC1oZWFkZXIgeyBwYWRkaW5nOiBAY2FyZC1sYXJnZS1oZWFkZXItcGFkZGluZy12ZXJ0aWNhbC1sIEBjYXJkLWxhcmdlLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWwtbDsgfVxuICAgIC51ay1jYXJkLWxhcmdlIC51ay1jYXJkLWZvb3RlciB7IHBhZGRpbmc6IEBjYXJkLWxhcmdlLWZvb3Rlci1wYWRkaW5nLXZlcnRpY2FsLWwgQGNhcmQtbGFyZ2UtZm9vdGVyLXBhZGRpbmctaG9yaXpvbnRhbC1sOyB9XG5cbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWNhcmQtbWlzYygpO1xuXG4uaG9vay1jYXJkKCkge31cbi5ob29rLWNhcmQtYm9keSgpIHt9XG4uaG9vay1jYXJkLWhlYWRlcigpIHt9XG4uaG9vay1jYXJkLWZvb3RlcigpIHt9XG4uaG9vay1jYXJkLW1lZGlhKCkge31cbi5ob29rLWNhcmQtbWVkaWEtdG9wKCkge31cbi5ob29rLWNhcmQtbWVkaWEtYm90dG9tKCkge31cbi5ob29rLWNhcmQtbWVkaWEtbGVmdCgpIHt9XG4uaG9vay1jYXJkLW1lZGlhLXJpZ2h0KCkge31cbi5ob29rLWNhcmQtdGl0bGUoKSB7fVxuLmhvb2stY2FyZC1iYWRnZSgpIHt9XG4uaG9vay1jYXJkLWhvdmVyKCkge31cbi5ob29rLWNhcmQtZGVmYXVsdCgpIHt9XG4uaG9vay1jYXJkLWRlZmF1bHQtdGl0bGUoKSB7fVxuLmhvb2stY2FyZC1kZWZhdWx0LWhvdmVyKCkge31cbi5ob29rLWNhcmQtZGVmYXVsdC1oZWFkZXIoKSB7fVxuLmhvb2stY2FyZC1kZWZhdWx0LWZvb3RlcigpIHt9XG4uaG9vay1jYXJkLXByaW1hcnkoKSB7fVxuLmhvb2stY2FyZC1wcmltYXJ5LXRpdGxlKCkge31cbi5ob29rLWNhcmQtcHJpbWFyeS1ob3ZlcigpIHt9XG4uaG9vay1jYXJkLXNlY29uZGFyeSgpIHt9XG4uaG9vay1jYXJkLXNlY29uZGFyeS10aXRsZSgpIHt9XG4uaG9vay1jYXJkLXNlY29uZGFyeS1ob3ZlcigpIHt9XG4uaG9vay1jYXJkLW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW52ZXJzZS1jYXJkLWJhZGdlLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZDtcbkBpbnZlcnNlLWNhcmQtYmFkZ2UtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtaW52ZXJzZS1jb2xvcjtcblxuLmhvb2staW52ZXJzZSgpIHtcblxuICAgICYudWstY2FyZC1iYWRnZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLWNhcmQtYmFkZ2UtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLWNhcmQtYmFkZ2UtY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtY2FyZC1iYWRnZSgpO1xuICAgIH1cblxufVxuXG4uaG9vay1pbnZlcnNlLWNhcmQtYmFkZ2UoKSB7fVxuIiwiLy9cbi8vIENvbXBvbmVudDogQ2FyZFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBjYXJkLXRyYW5zaXRpb24tZHVyYXRpb246ICAgICAgICAgICAgICAgICAgICAgIDAuMXM7XG5cbkBjYXJkLWRlZmF1bHQtYmFja2Ryb3AtZmlsdGVyOiAgICAgICAgICAgICAgICAgIH4nJztcbkBjYXJkLXByaW1hcnktYmFja2Ryb3AtZmlsdGVyOiAgICAgICAgICAgICAgICAgIH4nJztcbkBjYXJkLXNlY29uZGFyeS1iYWNrZHJvcC1maWx0ZXI6ICAgICAgICAgICAgICAgIH4nJztcblxuQGNhcmQtZGVmYXVsdC1oZWFkZXItYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgQGdsb2JhbC1ib3JkZXItd2lkdGg7XG5AY2FyZC1kZWZhdWx0LWhlYWRlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWJvcmRlcjtcblxuQGNhcmQtZGVmYXVsdC1mb290ZXItYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgQGdsb2JhbC1ib3JkZXItd2lkdGg7XG5AY2FyZC1kZWZhdWx0LWZvb3Rlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWJvcmRlcjtcblxuQGNhcmQtZGVmYXVsdC1ob3Zlci10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgMDtcbkBjYXJkLXByaW1hcnktaG92ZXItdG9wOiAgICAgICAgICAgICAgICAgICAgICAgIDA7XG5AY2FyZC1zZWNvbmRhcnktaG92ZXItdG9wOiAgICAgICAgICAgICAgICAgICAgICAwO1xuXG5AaW50ZXJuYWwtY2FyZC1ob3Zlci1tb2RlOiAgICAgICAgICAgICAgICAgICAgICB+Jyc7IC8vIHJpcHBsZVxuXG5AaW50ZXJuYWwtY2FyZC1kZWZhdWx0LW1vZGU6ICAgICAgICAgICAgICAgICAgICB+Jyc7IC8vIGdsb3dcbkBpbnRlcm5hbC1jYXJkLWRlZmF1bHQtZ2xvdy1ncmFkaWVudDogICAgICAgICAgIH4nJztcbkBpbnRlcm5hbC1jYXJkLWRlZmF1bHQtZ2xvdy1maWx0ZXI6ICAgICAgICAgICAgIH4nJztcbkBpbnRlcm5hbC1jYXJkLWRlZmF1bHQtaG92ZXItZ2xvdy1maWx0ZXI6ICAgICAgIH4nJztcblxuQGludGVybmFsLWNhcmQtcHJpbWFyeS1tb2RlOiAgICAgICAgICAgICAgICAgICAgficnOyAvLyBnbG93XG5AaW50ZXJuYWwtY2FyZC1wcmltYXJ5LWdsb3ctZ3JhZGllbnQ6ICAgICAgICAgICB+Jyc7XG5AaW50ZXJuYWwtY2FyZC1wcmltYXJ5LWdsb3ctZmlsdGVyOiAgICAgICAgICAgICB+Jyc7XG5AaW50ZXJuYWwtY2FyZC1wcmltYXJ5LWhvdmVyLWdsb3ctZmlsdGVyOiAgICAgICB+Jyc7XG5cbkBpbnRlcm5hbC1jYXJkLXNlY29uZGFyeS1tb2RlOiAgICAgICAgICAgICAgICAgIH4nJzsgLy8gZ2xvd1xuQGludGVybmFsLWNhcmQtc2Vjb25kYXJ5LWdsb3ctZ3JhZGllbnQ6ICAgICAgICAgficnO1xuQGludGVybmFsLWNhcmQtc2Vjb25kYXJ5LWdsb3ctZmlsdGVyOiAgICAgICAgICAgficnO1xuQGludGVybmFsLWNhcmQtc2Vjb25kYXJ5LWhvdmVyLWdsb3ctZmlsdGVyOiAgICAgficnO1xuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWNhcmQoKSB7XG4gICAgdHJhbnNpdGlvbjogQGNhcmQtdHJhbnNpdGlvbi1kdXJhdGlvbiBlYXNlLWluLW91dDtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBjb2xvciwgYmFja2dyb3VuZC1jb2xvciwgYmFja2dyb3VuZC1zaXplLCBib3JkZXItY29sb3IsIGJveC1zaGFkb3csIHRyYW5zZm9ybSwgdG9wO1xufVxuXG4uaG9vay1jYXJkKCkgd2hlbiBub3QgKEBjYXJkLWRlZmF1bHQtaG92ZXItdG9wID0gMCksIG5vdCAoQGNhcmQtcHJpbWFyeS1ob3Zlci10b3AgPSAwKSwgbm90IChAY2FyZC1zZWNvbmRhcnktaG92ZXItdG9wID0gMCkge1xuICAgIHRvcDogMDtcbn1cblxuLy9cbi8vIFJpcHBsZVxuLy9cblxuLmhvb2stY2FyZCgpIHdoZW4gKEBpbnRlcm5hbC1jYXJkLWhvdmVyLW1vZGUgPSByaXBwbGUpIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMTAwJTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDAgMDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNXM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMTY1LC44NSwuNDUsMSk7XG59XG5cbi5ob29rLWNhcmQoKSB3aGVuIChAaW50ZXJuYWwtY2FyZC1ob3Zlci1tb2RlID0gcmlwcGxlKSB7XG5cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZC1zaXplOiAxNTAlIDE1MCU7IH1cblxufVxuXG4vL1xuLy8gR2xvd1xuLy9cblxuLmhvb2stY2FyZCgpIHdoZW4gKEBpbnRlcm5hbC1jYXJkLWRlZmF1bHQtbW9kZSA9IGdsb3cpIGFuZCBub3QgKEBjYXJkLWJvcmRlci1yYWRpdXMgPSAwKSxcbiAgICAgICAgICAgICAgICAgIChAaW50ZXJuYWwtY2FyZC1wcmltYXJ5LW1vZGUgPSBnbG93KSBhbmQgbm90IChAY2FyZC1ib3JkZXItcmFkaXVzID0gMCksXG4gICAgICAgICAgICAgICAgICAoQGludGVybmFsLWNhcmQtc2Vjb25kYXJ5LW1vZGUgPSBnbG93KSBhbmQgbm90IChAY2FyZC1ib3JkZXItcmFkaXVzID0gMCkge1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHsgYm9yZGVyLXJhZGl1czogQGNhcmQtYm9yZGVyLXJhZGl1czsgfVxuXG59XG5cblxuLy8gU2VjdGlvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1jYXJkLWJvZHkoKSB7fVxuXG4uaG9vay1jYXJkLWhlYWRlcigpIHt9XG5cbi5ob29rLWNhcmQtZm9vdGVyKCkge31cblxuXG4vLyBNZWRpYVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWNhcmQtbWVkaWEoKSB7fVxuXG4uaG9vay1jYXJkLW1lZGlhLXRvcCgpIHt9XG5cbi5ob29rLWNhcmQtbWVkaWEtYm90dG9tKCkge31cblxuLmhvb2stY2FyZC1tZWRpYS1sZWZ0KCkge31cblxuLmhvb2stY2FyZC1tZWRpYS1yaWdodCgpIHt9XG5cblxuLy8gVGl0bGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1jYXJkLXRpdGxlKCkge31cblxuXG4vLyBCYWRnZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWNhcmQtYmFkZ2UoKSB7fVxuXG5cbi8vIEhvdmVyIG1vZGlmaWVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIFJpcHBsZVxuLy8gRml4IHJlbmRlcmluZyBidWcgaW4gU2FmYXJpIGJ5IGZhZGluZyB0aGUgb3JpZ2luYWwgY29sb3IgdG8gdHJhbnNwYXJlbnQgaW5zdGVhZCBvZiBgdHJhbnNwYXJlbnRgIHdoaWNoIGlzIGByZ2JhKDAsMCwwLDApYFxuLy9cblxuLmhvb2stY2FyZC1ob3ZlcigpIHdoZW4gKEBpbnRlcm5hbC1jYXJkLWhvdmVyLW1vZGUgPSByaXBwbGUpIGFuZCBub3QgKEBjYXJkLWhvdmVyLWJhY2tncm91bmQgPSBpbmhlcml0KSB7XG5cbiAgICAmOm5vdCgudWstY2FyZC1kZWZhdWx0KTpub3QoLnVrLWNhcmQtcHJpbWFyeSk6bm90KC51ay1jYXJkLXNlY29uZGFyeSkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGZhcnRoZXN0LXNpZGUgYXQgNTAlIDEwMCUsIEBjYXJkLWhvdmVyLWJhY2tncm91bmQgfidjYWxjKDEwMCUgLSAxcHgpJywgZmFkZShAY2FyZC1ob3Zlci1iYWNrZ3JvdW5kLCAwJSkgMTAwJSk7XG4gICAgfVxuXG59XG5cblxuLy8gU3R5bGUgbW9kaWZpZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stY2FyZC1kZWZhdWx0KCkgd2hlbiBub3QgKEBjYXJkLWRlZmF1bHQtYmFja2Ryb3AtZmlsdGVyID0gficnKSB7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBAY2FyZC1kZWZhdWx0LWJhY2tkcm9wLWZpbHRlcjtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogQGNhcmQtZGVmYXVsdC1iYWNrZHJvcC1maWx0ZXI7XG59XG5cbi5ob29rLWNhcmQtZGVmYXVsdC10aXRsZSgpIHt9XG5cbi5ob29rLWNhcmQtZGVmYXVsdC1ob3ZlcigpIHdoZW4gbm90IChAY2FyZC1kZWZhdWx0LWhvdmVyLXRvcCA9IDApIHtcbiAgICB0b3A6IEBjYXJkLWRlZmF1bHQtaG92ZXItdG9wO1xufVxuXG4uaG9vay1jYXJkLWRlZmF1bHQtaGVhZGVyKCkgeyBib3JkZXItYm90dG9tOiBAY2FyZC1kZWZhdWx0LWhlYWRlci1ib3JkZXItd2lkdGggc29saWQgQGNhcmQtZGVmYXVsdC1oZWFkZXItYm9yZGVyOyB9XG5cbi5ob29rLWNhcmQtZGVmYXVsdC1mb290ZXIoKSB7IGJvcmRlci10b3A6IEBjYXJkLWRlZmF1bHQtZm9vdGVyLWJvcmRlci13aWR0aCBzb2xpZCBAY2FyZC1kZWZhdWx0LWZvb3Rlci1ib3JkZXI7IH1cblxuLy9cbi8vIFJpcHBsZVxuLy8gRml4IHJlbmRlcmluZyBidWcgaW4gU2FmYXJpIGJ5IGZhZGluZyB0aGUgb3JpZ2luYWwgY29sb3IgdG8gdHJhbnNwYXJlbnQgaW5zdGVhZCBvZiBgdHJhbnNwYXJlbnRgIHdoaWNoIGlzIGByZ2JhKDAsMCwwLDApYFxuLy8gTm90ZTogZmFkZSBjb2xvciBmdW5jdGlvbiBkb2Vzbid0IHdvcmsgd2l0aCBgaW5oZXJpdGBcbi8vXG5cbi5ob29rLWNhcmQtZGVmYXVsdCgpIHdoZW4gKEBpbnRlcm5hbC1jYXJkLWhvdmVyLW1vZGUgPSByaXBwbGUpIGFuZCBub3QgKEBjYXJkLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZCA9IGluaGVyaXQpIHtcblxuICAgICYudWstY2FyZC1ob3ZlciB7IGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChmYXJ0aGVzdC1zaWRlIGF0IDUwJSAxMDAlLCBAY2FyZC1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQgfidjYWxjKDEwMCUgLSAxcHgpJywgZmFkZShAY2FyZC1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQsIDAlKSAxMDAlKTsgfVxuXG59XG5cbi5ob29rLWNhcmQtZGVmYXVsdC1ob3ZlcigpIHdoZW4gKEBpbnRlcm5hbC1jYXJkLWhvdmVyLW1vZGUgPSByaXBwbGUpIGFuZCBub3QgKEBjYXJkLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZCA9IGluaGVyaXQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAY2FyZC1kZWZhdWx0LWJhY2tncm91bmQ7XG59XG5cbi8vXG4vLyBHbG93XG4vL1xuXG4uaG9vay1jYXJkLWRlZmF1bHQoKSB3aGVuIChAaW50ZXJuYWwtY2FyZC1kZWZhdWx0LW1vZGUgPSBnbG93KSB7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgLy8gRml4IFNhZmFyaSBmbGlja2VyaW5nXG4gICAgICAgIHdpbGwtY2hhbmdlOiBmaWx0ZXI7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogQGludGVybmFsLWNhcmQtZGVmYXVsdC1nbG93LWdyYWRpZW50O1xuICAgICAgICBmaWx0ZXI6IEBpbnRlcm5hbC1jYXJkLWRlZmF1bHQtZ2xvdy1maWx0ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGZpbHRlciBAY2FyZC10cmFuc2l0aW9uLWR1cmF0aW9uIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICY6OmFmdGVyIHsgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7IH1cblxufVxuXG4uaG9vay1jYXJkLWRlZmF1bHQtaG92ZXIoKSB3aGVuIChAaW50ZXJuYWwtY2FyZC1kZWZhdWx0LW1vZGUgPSBnbG93KSBhbmQgbm90IChAaW50ZXJuYWwtY2FyZC1kZWZhdWx0LWhvdmVyLWdsb3ctZmlsdGVyID0gficnKSB7XG5cbiAgICAmOjpiZWZvcmUgeyBmaWx0ZXI6IEBpbnRlcm5hbC1jYXJkLWRlZmF1bHQtaG92ZXItZ2xvdy1maWx0ZXI7IH1cblxufVxuXG4uaG9vay1jYXJkLW1pc2MoKSB3aGVuIChAaW50ZXJuYWwtY2FyZC1kZWZhdWx0LW1vZGUgPSBnbG93KSB7XG5cbiAgICAudWstY2FyZC1kZWZhdWx0Om5vdCgudWstaGFjaykge1xuICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tkcm9wLWZpbHRlcjogbm9uZTtcbiAgICAgICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IG5vbmU7XG4gICAgfVxuXG59XG5cbi51ay1jYXJkLWRlZmF1bHQ6OmFmdGVyOmV4dGVuZCgudWstY2FyZC1kZWZhdWx0KSB3aGVuIChAaW50ZXJuYWwtY2FyZC1kZWZhdWx0LW1vZGUgPSBnbG93KSB7fVxuLnVrLWNhcmQtZGVmYXVsdC51ay1jYXJkLWhvdmVyOmhvdmVyOjphZnRlcjpleHRlbmQoLnVrLWNhcmQtZGVmYXVsdC51ay1jYXJkLWhvdmVyOmhvdmVyKSB3aGVuIChAaW50ZXJuYWwtY2FyZC1kZWZhdWx0LW1vZGUgPSBnbG93KSB7fVxuXG4vL1xuLy8gUHJpbWFyeVxuLy9cblxuLmhvb2stY2FyZC1wcmltYXJ5KCkgd2hlbiBub3QgKEBjYXJkLXByaW1hcnktYmFja2Ryb3AtZmlsdGVyID0gficnKSB7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBAY2FyZC1wcmltYXJ5LWJhY2tkcm9wLWZpbHRlcjtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogQGNhcmQtcHJpbWFyeS1iYWNrZHJvcC1maWx0ZXI7XG59XG5cbi5ob29rLWNhcmQtcHJpbWFyeS10aXRsZSgpIHt9XG5cbi5ob29rLWNhcmQtcHJpbWFyeS1ob3ZlcigpIHdoZW4gbm90IChAY2FyZC1wcmltYXJ5LWhvdmVyLXRvcCA9IDApIHtcbiAgICB0b3A6IEBjYXJkLXByaW1hcnktaG92ZXItdG9wO1xufVxuXG4vL1xuLy8gUmlwcGxlXG4vLyBGaXggcmVuZGVyaW5nIGJ1ZyBpbiBTYWZhcmkgYnkgZmFkaW5nIHRoZSBvcmlnaW5hbCBjb2xvciB0byB0cmFuc3BhcmVudCBpbnN0ZWFkIG9mIGB0cmFuc3BhcmVudGAgd2hpY2ggaXMgYHJnYmEoMCwwLDAsMClgXG4vLyBOb3RlOiBmYWRlIGNvbG9yIGZ1bmN0aW9uIGRvZXNuJ3Qgd29yayB3aXRoIGBpbmhlcml0YFxuLy9cblxuLmhvb2stY2FyZC1wcmltYXJ5KCkgd2hlbiAoQGludGVybmFsLWNhcmQtaG92ZXItbW9kZSA9IHJpcHBsZSkgYW5kIG5vdCAoQGNhcmQtcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kID0gaW5oZXJpdCkge1xuXG4gICAgJi51ay1jYXJkLWhvdmVyIHsgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGZhcnRoZXN0LXNpZGUgYXQgNTAlIDEwMCUsIEBjYXJkLXByaW1hcnktaG92ZXItYmFja2dyb3VuZCB+J2NhbGMoMTAwJSAtIDFweCknLCBmYWRlKEBjYXJkLXByaW1hcnktaG92ZXItYmFja2dyb3VuZCwgMCUpIDEwMCUpOyB9XG5cbn1cblxuLmhvb2stY2FyZC1wcmltYXJ5LWhvdmVyKCkgd2hlbiAoQGludGVybmFsLWNhcmQtaG92ZXItbW9kZSA9IHJpcHBsZSkgYW5kIG5vdCAoQGNhcmQtcHJpbWFyeS1ob3Zlci1iYWNrZ3JvdW5kID0gaW5oZXJpdCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBjYXJkLXByaW1hcnktYmFja2dyb3VuZDtcbn1cblxuLy9cbi8vIEdsb3dcbi8vXG5cbi5ob29rLWNhcmQtcHJpbWFyeSgpIHdoZW4gKEBpbnRlcm5hbC1jYXJkLXByaW1hcnktbW9kZSA9IGdsb3cpIHtcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICAvLyBGaXggU2FmYXJpIGZsaWNrZXJpbmdcbiAgICAgICAgd2lsbC1jaGFuZ2U6IGZpbHRlcjtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBAaW50ZXJuYWwtY2FyZC1wcmltYXJ5LWdsb3ctZ3JhZGllbnQ7XG4gICAgICAgIGZpbHRlcjogQGludGVybmFsLWNhcmQtcHJpbWFyeS1nbG93LWZpbHRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogZmlsdGVyIEBjYXJkLXRyYW5zaXRpb24tZHVyYXRpb24gZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIgeyB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsgfVxuXG59XG5cbi5ob29rLWNhcmQtcHJpbWFyeS1ob3ZlcigpIHdoZW4gKEBpbnRlcm5hbC1jYXJkLXByaW1hcnktbW9kZSA9IGdsb3cpIGFuZCBub3QgKEBpbnRlcm5hbC1jYXJkLXByaW1hcnktaG92ZXItZ2xvdy1maWx0ZXIgPSB+JycpIHtcblxuICAgICY6OmJlZm9yZSB7IGZpbHRlcjogQGludGVybmFsLWNhcmQtcHJpbWFyeS1ob3Zlci1nbG93LWZpbHRlcjsgfVxuXG59XG5cbi5ob29rLWNhcmQtbWlzYygpIHdoZW4gKEBpbnRlcm5hbC1jYXJkLXByaW1hcnktbW9kZSA9IGdsb3cpIHtcblxuICAgIC51ay1jYXJkLXByaW1hcnk6bm90KC51ay1oYWNrKSB7XG4gICAgICAgIHotaW5kZXg6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBub25lO1xuICAgICAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogbm9uZTtcbiAgICB9XG5cbn1cblxuLnVrLWNhcmQtcHJpbWFyeTo6YWZ0ZXI6ZXh0ZW5kKC51ay1jYXJkLXByaW1hcnkpIHdoZW4gKEBpbnRlcm5hbC1jYXJkLXByaW1hcnktbW9kZSA9IGdsb3cpIHt9XG4udWstY2FyZC1wcmltYXJ5LnVrLWNhcmQtaG92ZXI6aG92ZXI6OmFmdGVyOmV4dGVuZCgudWstY2FyZC1wcmltYXJ5LnVrLWNhcmQtaG92ZXI6aG92ZXIpIHdoZW4gKEBpbnRlcm5hbC1jYXJkLXByaW1hcnktbW9kZSA9IGdsb3cpIHt9XG5cbi8vXG4vLyBTZWNvbmRhcnlcbi8vXG5cbi5ob29rLWNhcmQtc2Vjb25kYXJ5KCkgd2hlbiBub3QgKEBjYXJkLXNlY29uZGFyeS1iYWNrZHJvcC1maWx0ZXIgPSB+JycpIHtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IEBjYXJkLXNlY29uZGFyeS1iYWNrZHJvcC1maWx0ZXI7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IEBjYXJkLXNlY29uZGFyeS1iYWNrZHJvcC1maWx0ZXI7XG59XG5cbi5ob29rLWNhcmQtc2Vjb25kYXJ5LXRpdGxlKCkge31cblxuLmhvb2stY2FyZC1zZWNvbmRhcnktaG92ZXIoKSB3aGVuIG5vdCAoQGNhcmQtc2Vjb25kYXJ5LWhvdmVyLXRvcCA9IDApIHtcbiAgICB0b3A6IEBjYXJkLXNlY29uZGFyeS1ob3Zlci10b3A7XG59XG5cbi8vXG4vLyBSaXBwbGVcbi8vIEZpeCByZW5kZXJpbmcgYnVnIGluIFNhZmFyaSBieSBmYWRpbmcgdGhlIG9yaWdpbmFsIGNvbG9yIHRvIHRyYW5zcGFyZW50IGluc3RlYWQgb2YgYHRyYW5zcGFyZW50YCB3aGljaCBpcyBgcmdiYSgwLDAsMCwwKWBcbi8vIE5vdGU6IGZhZGUgY29sb3IgZnVuY3Rpb24gZG9lc24ndCB3b3JrIHdpdGggYGluaGVyaXRgXG4vL1xuXG4uaG9vay1jYXJkLXNlY29uZGFyeSgpIHdoZW4gKEBpbnRlcm5hbC1jYXJkLWhvdmVyLW1vZGUgPSByaXBwbGUpIGFuZCBub3QgKEBjYXJkLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kID0gaW5oZXJpdCkge1xuXG4gICAgJi51ay1jYXJkLWhvdmVyIHsgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGZhcnRoZXN0LXNpZGUgYXQgNTAlIDEwMCUsIEBjYXJkLXNlY29uZGFyeS1ob3Zlci1iYWNrZ3JvdW5kIH4nY2FsYygxMDAlIC0gMXB4KScsIGZhZGUoQGNhcmQtc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQsIDAlKSAxMDAlKTsgfVxuXG59XG5cbi5ob29rLWNhcmQtc2Vjb25kYXJ5LWhvdmVyKCkgd2hlbiAoQGludGVybmFsLWNhcmQtaG92ZXItbW9kZSA9IHJpcHBsZSkgYW5kIG5vdCAoQGNhcmQtc2Vjb25kYXJ5LWhvdmVyLWJhY2tncm91bmQgPSBpbmhlcml0KSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGNhcmQtc2Vjb25kYXJ5LWJhY2tncm91bmQ7XG59XG5cbi8vXG4vLyBHbG93XG4vL1xuXG4uaG9vay1jYXJkLXNlY29uZGFyeSgpIHdoZW4gKEBpbnRlcm5hbC1jYXJkLXNlY29uZGFyeS1tb2RlID0gZ2xvdykge1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIC8vIEZpeCBTYWZhcmkgZmxpY2tlcmluZ1xuICAgICAgICB3aWxsLWNoYW5nZTogZmlsdGVyO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IEBpbnRlcm5hbC1jYXJkLXNlY29uZGFyeS1nbG93LWdyYWRpZW50O1xuICAgICAgICBmaWx0ZXI6IEBpbnRlcm5hbC1jYXJkLXNlY29uZGFyeS1nbG93LWZpbHRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogZmlsdGVyIEBjYXJkLXRyYW5zaXRpb24tZHVyYXRpb24gZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIgeyB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsgfVxuXG59XG5cbi5ob29rLWNhcmQtc2Vjb25kYXJ5LWhvdmVyKCkgd2hlbiAoQGludGVybmFsLWNhcmQtc2Vjb25kYXJ5LW1vZGUgPSBnbG93KSBhbmQgbm90IChAaW50ZXJuYWwtY2FyZC1zZWNvbmRhcnktaG92ZXItZ2xvdy1maWx0ZXIgPSB+JycpIHtcblxuICAgICY6OmJlZm9yZSB7IGZpbHRlcjogQGludGVybmFsLWNhcmQtc2Vjb25kYXJ5LWhvdmVyLWdsb3ctZmlsdGVyOyB9XG5cbn1cblxuLmhvb2stY2FyZC1taXNjKCkgd2hlbiAoQGludGVybmFsLWNhcmQtc2Vjb25kYXJ5LW1vZGUgPSBnbG93KSB7XG5cbiAgICAudWstY2FyZC1zZWNvbmRhcnk6bm90KC51ay1oYWNrKSB7XG4gICAgICAgIHotaW5kZXg6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBub25lO1xuICAgICAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogbm9uZTtcbiAgICB9XG5cbn1cblxuLnVrLWNhcmQtc2Vjb25kYXJ5OjphZnRlcjpleHRlbmQoLnVrLWNhcmQtc2Vjb25kYXJ5KSB3aGVuIChAaW50ZXJuYWwtY2FyZC1zZWNvbmRhcnktbW9kZSA9IGdsb3cpIHt9XG4udWstY2FyZC1zZWNvbmRhcnkudWstY2FyZC1ob3Zlcjpob3Zlcjo6YWZ0ZXI6ZXh0ZW5kKC51ay1jYXJkLXNlY29uZGFyeS51ay1jYXJkLWhvdmVyOmhvdmVyKSB3aGVuIChAaW50ZXJuYWwtY2FyZC1zZWNvbmRhcnktbW9kZSA9IGdsb3cpIHt9XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWNhcmQtbWlzYygpIHtcblxuICAgIC8qXG4gICAgICogRGVmYXVsdFxuICAgICAqL1xuXG4gICAgLnVrLWNhcmQtYm9keSA+IC51ay1uYXYtZGVmYXVsdCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtQGNhcmQtYm9keS1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLUBjYXJkLWJvZHktcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIH1cbiAgICAudWstY2FyZC1ib2R5ID4gLnVrLW5hdi1kZWZhdWx0Om9ubHktY2hpbGQge1xuICAgICAgICBtYXJnaW4tdG9wOiAoLUBjYXJkLWJvZHktcGFkZGluZy12ZXJ0aWNhbCArIDE1cHgpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAoLUBjYXJkLWJvZHktcGFkZGluZy12ZXJ0aWNhbCArIDE1cHgpO1xuICAgIH1cblxuICAgIC51ay1jYXJkLWJvZHkgLnVrLW5hdi1kZWZhdWx0ID4gbGkgPiBhLFxuICAgIC51ay1jYXJkLWJvZHkgLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtaGVhZGVyLFxuICAgIC51ay1jYXJkLWJvZHkgLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtZGl2aWRlciB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogQGNhcmQtYm9keS1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IEBjYXJkLWJvZHktcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIH1cblxuICAgIC51ay1jYXJkLWJvZHkgLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtc3ViIHsgcGFkZGluZy1sZWZ0OiBAbmF2LXN1Ymxpc3QtZGVlcGVyLXBhZGRpbmctbGVmdCArIEBjYXJkLWJvZHktcGFkZGluZy1ob3Jpem9udGFsOyB9XG5cblxuICAgIC8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1sYXJnZSkge1xuXG4gICAgICAgIC51ay1jYXJkLWJvZHkgPiAudWstbmF2LWRlZmF1bHQge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC1AY2FyZC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbC1sO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtQGNhcmQtYm9keS1wYWRkaW5nLWhvcml6b250YWwtbDtcbiAgICAgICAgfVxuICAgICAgICAudWstY2FyZC1ib2R5ID4gLnVrLW5hdi1kZWZhdWx0Om9ubHktY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogKC1AY2FyZC1ib2R5LXBhZGRpbmctdmVydGljYWwtbCArIDE1cHgpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogKC1AY2FyZC1ib2R5LXBhZGRpbmctdmVydGljYWwtbCArIDE1cHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnVrLWNhcmQtYm9keSAudWstbmF2LWRlZmF1bHQgPiBsaSA+IGEsXG4gICAgICAgIC51ay1jYXJkLWJvZHkgLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtaGVhZGVyLFxuICAgICAgICAudWstY2FyZC1ib2R5IC51ay1uYXYtZGVmYXVsdCAudWstbmF2LWRpdmlkZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBAY2FyZC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbC1sO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogQGNhcmQtYm9keS1wYWRkaW5nLWhvcml6b250YWwtbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC51ay1jYXJkLWJvZHkgLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtc3ViIHsgcGFkZGluZy1sZWZ0OiBAbmF2LXN1Ymxpc3QtZGVlcGVyLXBhZGRpbmctbGVmdCArIEBjYXJkLWJvZHktcGFkZGluZy1ob3Jpem9udGFsLWw7IH1cblxuICAgIH1cblxuICAgIC8qXG4gICAgICogU21hbGxcbiAgICAgKi9cblxuICAgIC51ay1jYXJkLXNtYWxsID4gLnVrLW5hdi1kZWZhdWx0IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC1AY2FyZC1zbWFsbC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtQGNhcmQtc21hbGwtYm9keS1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgfVxuICAgIC51ay1jYXJkLXNtYWxsID4gLnVrLW5hdi1kZWZhdWx0Om9ubHktY2hpbGQge1xuICAgICAgICBtYXJnaW4tdG9wOiAoLUBjYXJkLXNtYWxsLWJvZHktcGFkZGluZy12ZXJ0aWNhbCArIDE1cHgpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAoLUBjYXJkLXNtYWxsLWJvZHktcGFkZGluZy12ZXJ0aWNhbCArIDE1cHgpO1xuICAgIH1cblxuICAgIC51ay1jYXJkLXNtYWxsIC51ay1uYXYtZGVmYXVsdCA+IGxpID4gYSxcbiAgICAudWstY2FyZC1zbWFsbCAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1oZWFkZXIsXG4gICAgLnVrLWNhcmQtc21hbGwgLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtZGl2aWRlciB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogQGNhcmQtc21hbGwtYm9keS1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IEBjYXJkLXNtYWxsLWJvZHktcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIH1cblxuICAgIC51ay1jYXJkLXNtYWxsIC51ay1uYXYtZGVmYXVsdCAudWstbmF2LXN1YiB7IHBhZGRpbmctbGVmdDogQG5hdi1zdWJsaXN0LWRlZXBlci1wYWRkaW5nLWxlZnQgKyBAY2FyZC1zbWFsbC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbDsgfVxuXG4gICAgLypcbiAgICAgKiBMYXJnZVxuICAgICAqL1xuXG4gICAgLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LWxhcmdlKSB7XG5cbiAgICAgICAgLnVrLWNhcmQtbGFyZ2UgPiAudWstbmF2LWRlZmF1bHQgeyBtYXJnaW46IDA7IH1cbiAgICAgICAgLnVrLWNhcmQtbGFyZ2UgPiAudWstbmF2LWRlZmF1bHQ6b25seS1jaGlsZCB7IG1hcmdpbjogMDsgfVxuXG4gICAgICAgIC51ay1jYXJkLWxhcmdlIC51ay1uYXYtZGVmYXVsdCA+IGxpID4gYSxcbiAgICAgICAgLnVrLWNhcmQtbGFyZ2UgLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtaGVhZGVyLFxuICAgICAgICAudWstY2FyZC1sYXJnZSAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1kaXZpZGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAudWstY2FyZC1sYXJnZSAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1zdWIgeyBwYWRkaW5nLWxlZnQ6IEBuYXYtc3VibGlzdC1kZWVwZXItcGFkZGluZy1sZWZ0OyB9XG5cbiAgICB9XG5cbn1cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2staW52ZXJzZS1jYXJkLWJhZGdlKCkge31cbiIsIi8vXG4vLyBDb21wb25lbnQ6IENhcmRcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gTmV3XG4vL1xuXG5AY2FyZC10aXRsZS1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktZm9udC1mYW1pbHk7XG5AY2FyZC10aXRsZS1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktZm9udC13ZWlnaHQ7XG5AY2FyZC10aXRsZS10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktdGV4dC10cmFuc2Zvcm07XG5AY2FyZC10aXRsZS1sZXR0ZXItc3BhY2luZzogICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktbGV0dGVyLXNwYWNpbmc7XG5AY2FyZC10aXRsZS1mb250LXN0eWxlOiAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktZm9udC1zdHlsZTtcblxuQGNhcmQtYmFkZ2UtZm9udC1mYW1pbHk6ICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktZm9udC1mYW1pbHk7XG5AY2FyZC1iYWRnZS1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1mb250LXdlaWdodDtcbkBjYXJkLWJhZGdlLXRleHQtdHJhbnNmb3JtOiAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LXRleHQtdHJhbnNmb3JtO1xuQGNhcmQtYmFkZ2UtbGV0dGVyLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktbGV0dGVyLXNwYWNpbmc7XG5cblxuLy8gQ29tcG9uZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stY2FyZCgpIHt9XG5cblxuLy8gU2VjdGlvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1jYXJkLWJvZHkoKSB7fVxuXG4uaG9vay1jYXJkLWhlYWRlcigpIHt9XG5cbi5ob29rLWNhcmQtZm9vdGVyKCkge31cblxuXG4vLyBNZWRpYVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWNhcmQtbWVkaWEoKSB7fVxuXG4uaG9vay1jYXJkLW1lZGlhLXRvcCgpIHt9XG5cbi5ob29rLWNhcmQtbWVkaWEtYm90dG9tKCkge31cblxuLmhvb2stY2FyZC1tZWRpYS1sZWZ0KCkge31cblxuLmhvb2stY2FyZC1tZWRpYS1yaWdodCgpIHt9XG5cblxuLy8gVGl0bGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1jYXJkLXRpdGxlKCkge31cblxuLmhvb2stY2FyZC10aXRsZSgpIHdoZW4gbm90IChAY2FyZC10aXRsZS1mb250LWZhbWlseSA9IGluaGVyaXQpIHtcbiAgICBmb250LWZhbWlseTogQGNhcmQtdGl0bGUtZm9udC1mYW1pbHk7XG59XG5cbi5ob29rLWNhcmQtdGl0bGUoKSB3aGVuIG5vdCAoQGNhcmQtdGl0bGUtZm9udC13ZWlnaHQgPSBpbmhlcml0KSB7XG4gICAgZm9udC13ZWlnaHQ6IEBjYXJkLXRpdGxlLWZvbnQtd2VpZ2h0O1xufVxuXG4uaG9vay1jYXJkLXRpdGxlKCkgd2hlbiBub3QgKEBjYXJkLXRpdGxlLXRleHQtdHJhbnNmb3JtID0gaW5oZXJpdCkge1xuICAgIHRleHQtdHJhbnNmb3JtOiBAY2FyZC10aXRsZS10ZXh0LXRyYW5zZm9ybTtcbn1cblxuLmhvb2stY2FyZC10aXRsZSgpIHdoZW4gbm90IChAY2FyZC10aXRsZS1sZXR0ZXItc3BhY2luZyA9IGluaGVyaXQpIHtcbiAgICBsZXR0ZXItc3BhY2luZzogQGNhcmQtdGl0bGUtbGV0dGVyLXNwYWNpbmc7XG59XG5cbi5ob29rLWNhcmQtdGl0bGUoKSB3aGVuIG5vdCAoQGNhcmQtdGl0bGUtZm9udC1zdHlsZSA9IGluaGVyaXQpIHtcbiAgICBmb250LXN0eWxlOiBAY2FyZC10aXRsZS1mb250LXN0eWxlO1xufVxuXG5cbi8vIEJhZGdlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stY2FyZC1iYWRnZSgpIHdoZW4gbm90IChAY2FyZC1iYWRnZS1mb250LWZhbWlseSA9IGluaGVyaXQpIHtcbiAgICBmb250LWZhbWlseTogQGNhcmQtYmFkZ2UtZm9udC1mYW1pbHk7XG59XG5cbi5ob29rLWNhcmQtYmFkZ2UoKSB3aGVuIG5vdCAoQGNhcmQtYmFkZ2UtZm9udC13ZWlnaHQgPSBpbmhlcml0KSB7XG4gICAgZm9udC13ZWlnaHQ6IEBjYXJkLWJhZGdlLWZvbnQtd2VpZ2h0O1xufVxuXG4uaG9vay1jYXJkLWJhZGdlKCkgd2hlbiBub3QgKEBjYXJkLWJhZGdlLXRleHQtdHJhbnNmb3JtID0gaW5oZXJpdCkge1xuICAgIHRleHQtdHJhbnNmb3JtOiBAY2FyZC1iYWRnZS10ZXh0LXRyYW5zZm9ybTtcbn1cblxuLmhvb2stY2FyZC1iYWRnZSgpIHdoZW4gbm90IChAY2FyZC1iYWRnZS1sZXR0ZXItc3BhY2luZyA9IGluaGVyaXQpIHtcbiAgICBsZXR0ZXItc3BhY2luZzogQGNhcmQtYmFkZ2UtbGV0dGVyLXNwYWNpbmc7XG59XG5cblxuLy8gSG92ZXIgbW9kaWZpZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1jYXJkLWhvdmVyKCkge31cblxuXG4vLyBTdHlsZSBtb2RpZmllcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1jYXJkLWRlZmF1bHQoKSB7fVxuXG4uaG9vay1jYXJkLWRlZmF1bHQtdGl0bGUoKSB7fVxuXG4uaG9vay1jYXJkLWRlZmF1bHQtaG92ZXIoKSB7fVxuXG4uaG9vay1jYXJkLWRlZmF1bHQtaGVhZGVyKCkge31cblxuLmhvb2stY2FyZC1kZWZhdWx0LWZvb3RlcigpIHt9XG5cbi8vXG4vLyBQcmltYXJ5XG4vL1xuXG4uaG9vay1jYXJkLXByaW1hcnkoKSB7fVxuXG4uaG9vay1jYXJkLXByaW1hcnktdGl0bGUoKSB7fVxuXG4uaG9vay1jYXJkLXByaW1hcnktaG92ZXIoKSB7fVxuXG4vL1xuLy8gU2Vjb25kYXJ5XG4vL1xuXG4uaG9vay1jYXJkLXNlY29uZGFyeSgpIHt9XG5cbi5ob29rLWNhcmQtc2Vjb25kYXJ5LXRpdGxlKCkge31cblxuLmhvb2stY2FyZC1zZWNvbmRhcnktaG92ZXIoKSB7fVxuXG5cbi8vIE1pc2NlbGxhbmVvdXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1jYXJkLW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1pbnZlcnNlLWNhcmQtYmFkZ2UoKSB7fVxuIiwiLy9cbi8vIENvbXBvbmVudDogQ2FyZFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBjYXJkLWhvdmVyLWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgICAgbm9uZTtcbkBpbnRlcm5hbC1jYXJkLWhvdmVyLXRyYW5zaXRpb24tYm94LXNoYWRvdzogICAgMCAwIDAgcmdiYSgwLCAwLCAwLCAwKSwgMCAwIDAgcmdiYSgwLCAwLCAwLCAwKTtcblxuQGNhcmQtZGVmYXVsdC1ib3gtc2hhZG93OiAgICAgICAgICAgICAgICAgICAgICBub25lO1xuQGNhcmQtZGVmYXVsdC1ob3Zlci1ib3gtc2hhZG93OiAgICAgICAgICAgICAgICBub25lO1xuXG5AY2FyZC1wcmltYXJ5LWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgIG5vbmU7XG5AY2FyZC1wcmltYXJ5LWhvdmVyLWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgIG5vbmU7XG5cbkBjYXJkLXNlY29uZGFyeS1ib3gtc2hhZG93OiAgICAgICAgICAgICAgICAgICAgbm9uZTtcbkBjYXJkLXNlY29uZGFyeS1ob3Zlci1ib3gtc2hhZG93OiAgICAgICAgICAgICAgbm9uZTtcblxuXG4vLyBDb21wb25lbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1jYXJkKCkge31cblxuXG4vLyBTZWN0aW9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWNhcmQtYm9keSgpIHt9XG5cbi5ob29rLWNhcmQtaGVhZGVyKCkge31cblxuLmhvb2stY2FyZC1mb290ZXIoKSB7fVxuXG5cbi8vIE1lZGlhXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stY2FyZC1tZWRpYSgpIHt9XG5cbi5ob29rLWNhcmQtbWVkaWEtdG9wKCkge31cblxuLmhvb2stY2FyZC1tZWRpYS1ib3R0b20oKSB7fVxuXG4uaG9vay1jYXJkLW1lZGlhLWxlZnQoKSB7fVxuXG4uaG9vay1jYXJkLW1lZGlhLXJpZ2h0KCkge31cblxuXG4vLyBUaXRsZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWNhcmQtdGl0bGUoKSB7fVxuXG5cbi8vIEJhZGdlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stY2FyZC1iYWRnZSgpIHt9XG5cblxuLy8gSG92ZXIgbW9kaWZpZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1jYXJkLWhvdmVyKCkgd2hlbiBub3QgKEBjYXJkLWhvdmVyLWJveC1zaGFkb3cgPSBub25lKSB7XG4gICAgYm94LXNoYWRvdzogQGNhcmQtaG92ZXItYm94LXNoYWRvdztcbn1cblxuXG4vLyBTdHlsZSBtb2RpZmllcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1jYXJkLWRlZmF1bHQoKSB3aGVuIG5vdCAoQGNhcmQtZGVmYXVsdC1ib3gtc2hhZG93ID0gbm9uZSkge1xuICAgIGJveC1zaGFkb3c6IEBjYXJkLWRlZmF1bHQtYm94LXNoYWRvdztcbn1cblxuLmhvb2stY2FyZC1kZWZhdWx0LXRpdGxlKCkge31cblxuLmhvb2stY2FyZC1kZWZhdWx0LWhvdmVyKCkgd2hlbiBub3QgKEBjYXJkLWRlZmF1bHQtaG92ZXItYm94LXNoYWRvdyA9IG5vbmUpIHtcbiAgICBib3gtc2hhZG93OiBAY2FyZC1kZWZhdWx0LWhvdmVyLWJveC1zaGFkb3c7XG59XG5cbi5ob29rLWNhcmQtZGVmYXVsdC1oZWFkZXIoKSB7fVxuXG4uaG9vay1jYXJkLWRlZmF1bHQtZm9vdGVyKCkge31cblxuLy9cbi8vIFByaW1hcnlcbi8vXG5cbi5ob29rLWNhcmQtcHJpbWFyeSgpIHdoZW4gbm90IChAY2FyZC1wcmltYXJ5LWJveC1zaGFkb3cgPSBub25lKSB7XG4gICAgYm94LXNoYWRvdzogQGNhcmQtcHJpbWFyeS1ib3gtc2hhZG93O1xufVxuXG4uaG9vay1jYXJkLXByaW1hcnktdGl0bGUoKSB7fVxuXG4uaG9vay1jYXJkLXByaW1hcnktaG92ZXIoKSB3aGVuIG5vdCAoQGNhcmQtcHJpbWFyeS1ob3Zlci1ib3gtc2hhZG93ID0gbm9uZSkge1xuICAgIGJveC1zaGFkb3c6IEBjYXJkLXByaW1hcnktaG92ZXItYm94LXNoYWRvdztcbn1cblxuLy9cbi8vIFNlY29uZGFyeVxuLy9cblxuLmhvb2stY2FyZC1zZWNvbmRhcnkoKSB3aGVuIG5vdCAoQGNhcmQtc2Vjb25kYXJ5LWJveC1zaGFkb3cgPSBub25lKSB7XG4gICAgYm94LXNoYWRvdzogQGNhcmQtc2Vjb25kYXJ5LWJveC1zaGFkb3c7XG59XG5cbi5ob29rLWNhcmQtc2Vjb25kYXJ5LXRpdGxlKCkge31cblxuLmhvb2stY2FyZC1zZWNvbmRhcnktaG92ZXIoKSB3aGVuIG5vdCAoQGNhcmQtc2Vjb25kYXJ5LWhvdmVyLWJveC1zaGFkb3cgPSBub25lKSB7XG4gICAgYm94LXNoYWRvdzogQGNhcmQtc2Vjb25kYXJ5LWhvdmVyLWJveC1zaGFkb3c7XG59XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWNhcmQtbWlzYygpIHdoZW4gbm90IChAY2FyZC1ob3Zlci1ib3gtc2hhZG93ID0gbm9uZSkge1xuXG4gICAgLnVrLWNhcmQtaG92ZXI6bm90KC51ay1jYXJkLWRlZmF1bHQpOm5vdCgudWstY2FyZC1wcmltYXJ5KTpub3QoLnVrLWNhcmQtc2Vjb25kYXJ5KSB7XG4gICAgICAgIGJveC1zaGFkb3c6IEBpbnRlcm5hbC1jYXJkLWhvdmVyLXRyYW5zaXRpb24tYm94LXNoYWRvdztcbiAgICB9XG5cbn1cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2staW52ZXJzZS1jYXJkLWJhZGdlKCkge31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgQ2xvc2Vcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBhIGNsb3NlIGJ1dHRvblxuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWNsb3NlYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBjbG9zZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtY29sb3I7XG5AY2xvc2UtaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWNvbG9yO1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBDbG9zZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZG9wdHMgYHVrLWljb25gXG4gKi9cblxuLnVrLWNsb3NlIHtcbiAgICBjb2xvcjogQGNsb3NlLWNvbG9yO1xuICAgIC5ob29rLWNsb3NlKCk7XG59XG5cbi8qIEhvdmVyICovXG4udWstY2xvc2U6aG92ZXIge1xuICAgIGNvbG9yOiBAY2xvc2UtaG92ZXItY29sb3I7XG4gICAgLmhvb2stY2xvc2UtaG92ZXIoKTtcbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWNsb3NlLW1pc2MoKTtcblxuLmhvb2stY2xvc2UoKSB7fVxuLmhvb2stY2xvc2UtaG92ZXIoKSB7fVxuLmhvb2stY2xvc2UtbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbnZlcnNlLWNsb3NlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvcjtcbkBpbnZlcnNlLWNsb3NlLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1jb2xvcjtcblxuLmhvb2staW52ZXJzZSgpIHtcblxuICAgIC51ay1jbG9zZSB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1jbG9zZS1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1jbG9zZSgpO1xuICAgIH1cblxuICAgIC51ay1jbG9zZTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1jbG9zZS1ob3Zlci1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1jbG9zZS1ob3ZlcigpO1xuICAgIH1cblxufVxuXG4uaG9vay1pbnZlcnNlLWNsb3NlKCkge31cbi5ob29rLWludmVyc2UtY2xvc2UtaG92ZXIoKSB7fVxuIiwiLy9cbi8vIENvbXBvbmVudDogQ2xvc2Vcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWNsb3NlKCkge1xuICAgIHRyYW5zaXRpb246IDAuMXMgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIG9wYWNpdHk7XG59XG5cbi5ob29rLWNsb3NlLWhvdmVyKCkge31cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stY2xvc2UtbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWludmVyc2UtY2xvc2UoKSB7fVxuLmhvb2staW52ZXJzZS1jbG9zZS1ob3ZlcigpIHt9IiwiLy8gTmFtZTogICAgICAgICAgICBTcGlubmVyXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgYSBsb2FkaW5nIHNwaW5uZXJcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1zcGlubmVyYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBzcGlubmVyLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwcHg7XG5Ac3Bpbm5lci1zdHJva2Utd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAxO1xuQHNwaW5uZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvb3IoKChAc3Bpbm5lci1zaXplIC0gQHNwaW5uZXItc3Ryb2tlLXdpZHRoKSAvIDIpKTsgLy8gTWludXMgc3Ryb2tlIHdpZHRoIHRvIHByZXZlbnQgb3ZlcmZsb3cgY2xpcHBpbmdcbkBzcGlubmVyLWNpcmN1bWZlcmVuY2U6ICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kKDIgKiAzLjE0MSAqIEBzcGlubmVyLXJhZGl1cyk7XG5Ac3Bpbm5lci1kdXJhdGlvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjRzO1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBTcGlubmVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkb3B0cyBgdWstaWNvbmBcbiAqL1xuXG4udWstc3Bpbm5lciB7XG4gICAgLmhvb2stc3Bpbm5lcigpO1xufVxuXG5cbi8qIFNWR1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1zcGlubmVyID4gKiB7IGFuaW1hdGlvbjogdWstc3Bpbm5lci1yb3RhdGUgQHNwaW5uZXItZHVyYXRpb24gbGluZWFyIGluZmluaXRlOyB9XG5cbkBrZXlmcmFtZXMgdWstc3Bpbm5lci1yb3RhdGUge1xuICAgIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTsgfVxufVxuXG4vKlxuICogQ2lyY2xlXG4gKi9cblxuLnVrLXNwaW5uZXIgPiAqID4gKiB7XG4gICAgc3Ryb2tlLWRhc2hhcnJheTogQHNwaW5uZXItY2lyY3VtZmVyZW5jZTtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgYW5pbWF0aW9uOiB1ay1zcGlubmVyLWRhc2ggQHNwaW5uZXItZHVyYXRpb24gZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgc3Ryb2tlLXdpZHRoOiBAc3Bpbm5lci1zdHJva2Utd2lkdGg7XG4gICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xufVxuXG5Aa2V5ZnJhbWVzIHVrLXNwaW5uZXItZGFzaCB7XG4gICAgMCUgeyBzdHJva2UtZGFzaG9mZnNldDogQHNwaW5uZXItY2lyY3VtZmVyZW5jZTsgfVxuICAgIDUwJSB7XG4gICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAoQHNwaW5uZXItY2lyY3VtZmVyZW5jZSAvIDQpO1xuICAgICAgICB0cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogQHNwaW5uZXItY2lyY3VtZmVyZW5jZTtcbiAgICAgICAgdHJhbnNmb3JtOnJvdGF0ZSg0NTBkZWcpO1xuICAgIH1cbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXNwaW5uZXItbWlzYygpO1xuXG4uaG9vay1zcGlubmVyKCkge31cbi5ob29rLXNwaW5uZXItbWlzYygpIHt9XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIFRvdG9wXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgYW4gaWNvbiB0byBzY3JvbGwgYmFjayB0byB0b3Bcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay10b3RvcGBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AdG90b3AtcGFkZGluZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1cHg7XG5AdG90b3AtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWNvbG9yO1xuXG5AdG90b3AtaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWNvbG9yO1xuXG5AdG90b3AtYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBUb3RvcFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGRvcHRzIGB1ay1pY29uYFxuICovXG5cbi51ay10b3RvcCB7XG4gICAgcGFkZGluZzogQHRvdG9wLXBhZGRpbmc7XG4gICAgY29sb3I6IEB0b3RvcC1jb2xvcjtcbiAgICAuaG9vay10b3RvcCgpO1xufVxuXG4vKiBIb3ZlciAqL1xuLnVrLXRvdG9wOmhvdmVyIHtcbiAgICBjb2xvcjogQHRvdG9wLWhvdmVyLWNvbG9yO1xuICAgIC5ob29rLXRvdG9wLWhvdmVyKCk7XG59XG5cbi8qIE9uQ2xpY2sgKi9cbi51ay10b3RvcDphY3RpdmUge1xuICAgIGNvbG9yOiBAdG90b3AtYWN0aXZlLWNvbG9yO1xuICAgIC5ob29rLXRvdG9wLWFjdGl2ZSgpO1xufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stdG90b3AtbWlzYygpO1xuXG4uaG9vay10b3RvcCgpIHt9XG4uaG9vay10b3RvcC1ob3ZlcigpIHt9XG4uaG9vay10b3RvcC1hY3RpdmUoKSB7fVxuLmhvb2stdG90b3AtbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbnZlcnNlLXRvdG9wLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yO1xuQGludmVyc2UtdG90b3AtaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtY29sb3I7XG5AaW52ZXJzZS10b3RvcC1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcblxuLmhvb2staW52ZXJzZSgpIHtcblxuICAgIC51ay10b3RvcCB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS10b3RvcC1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS10b3RvcCgpO1xuICAgIH1cblxuICAgIC51ay10b3RvcDpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS10b3RvcC1ob3Zlci1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS10b3RvcC1ob3ZlcigpO1xuICAgIH1cblxuICAgIC51ay10b3RvcDphY3RpdmUge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtdG90b3AtYWN0aXZlLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLXRvdG9wLWFjdGl2ZSgpO1xuICAgIH1cblxufVxuXG4uaG9vay1pbnZlcnNlLXRvdG9wKCkge31cbi5ob29rLWludmVyc2UtdG90b3AtaG92ZXIoKSB7fVxuLmhvb2staW52ZXJzZS10b3RvcC1hY3RpdmUoKSB7fVxuIiwiLy9cbi8vIENvbXBvbmVudDogVG90b3Bcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gTmV3XG4vL1xuXG5AdG90b3AtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcbkB0b3RvcC1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuQHRvdG9wLWFjdGl2ZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5cbkBpbnRlcm5hbC10b3RvcC1tb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgIH4nJzsgLy8gYW5pbWF0ZVxuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXRvdG9wKCkge1xuICAgIGJhY2tncm91bmQ6IEB0b3RvcC1iYWNrZ3JvdW5kO1xuICAgIHRyYW5zaXRpb246IDAuMXMgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgYm94LXNoYWRvdztcbn1cblxuLmhvb2stdG90b3AtaG92ZXIoKSB7IGJhY2tncm91bmQtY29sb3I6IEB0b3RvcC1ob3Zlci1iYWNrZ3JvdW5kOyB9XG5cbi5ob29rLXRvdG9wLWFjdGl2ZSgpIHsgYmFja2dyb3VuZC1jb2xvcjogQHRvdG9wLWFjdGl2ZS1iYWNrZ3JvdW5kOyB9XG5cbi8vXG4vLyBBbmltYXRlXG4vL1xuXG4uaG9vay10b3RvcC1ob3ZlcigpIHdoZW4gKEBpbnRlcm5hbC10b3RvcC1tb2RlID0gYW5pbWF0ZSkge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIHN2ZyB7IGFuaW1hdGlvbjogdWstc2xpZGUtdG9wIDAuM3MgcmV2ZXJzZSwgdWstc2xpZGUtYm90dG9tIDAuMnMgMC4zczsgfVxufVxuXG5cbi8vIE1pc2NlbGxhbmVvdXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1pY29uLW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW52ZXJzZS10b3RvcC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuQGludmVyc2UtdG90b3AtaG92ZXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcbkBpbnZlcnNlLXRvdG9wLWFjdGl2ZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5cbi5ob29rLWludmVyc2UtdG90b3AoKSB7IGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLXRvdG9wLWJhY2tncm91bmQ7IH1cbi5ob29rLWludmVyc2UtdG90b3AtaG92ZXIoKSB7IGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLXRvdG9wLWhvdmVyLWJhY2tncm91bmQ7IH1cbi5ob29rLWludmVyc2UtdG90b3AtYWN0aXZlKCkgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS10b3RvcC1hY3RpdmUtYmFja2dyb3VuZDsgfVxuIiwiLy9cbi8vIENvbXBvbmVudDogVG90b3Bcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gTmV3XG4vL1xuXG5AdG90b3AtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAwO1xuXG5AdG90b3AtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcbkB0b3RvcC1ob3Zlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuQHRvdG9wLWFjdGl2ZS1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5cblxuLy8gQ29tcG9uZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stdG90b3AoKSB3aGVuIG5vdCAoQHRvdG9wLWJvcmRlci13aWR0aCA9IDApIHtcbiAgICBib3JkZXI6IEB0b3RvcC1ib3JkZXItd2lkdGggc29saWQgQHRvdG9wLWJvcmRlcjtcbn1cblxuLmhvb2stdG90b3AtaG92ZXIoKSB3aGVuIG5vdCAoQHRvdG9wLWJvcmRlci13aWR0aCA9IDApIHtcbiAgICBib3JkZXItY29sb3I6IEB0b3RvcC1ob3Zlci1ib3JkZXI7XG59XG5cbi5ob29rLXRvdG9wLWFjdGl2ZSgpIHdoZW4gbm90IChAdG90b3AtYm9yZGVyLXdpZHRoID0gMCkge1xuICAgIGJvcmRlci1jb2xvcjogQHRvdG9wLWFjdGl2ZS1ib3JkZXI7XG59XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWljb24tbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbnZlcnNlLXRvdG9wLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5AaW52ZXJzZS10b3RvcC1ob3Zlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuQGludmVyc2UtdG90b3AtYWN0aXZlLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcblxuLmhvb2staW52ZXJzZS10b3RvcCgpIHdoZW4gbm90IChAdG90b3AtYm9yZGVyLXdpZHRoID0gMCkge1xuICAgIGJvcmRlci1jb2xvcjogQGludmVyc2UtdG90b3AtYm9yZGVyO1xufVxuLmhvb2staW52ZXJzZS10b3RvcC1ob3ZlcigpIHdoZW4gbm90IChAdG90b3AtYm9yZGVyLXdpZHRoID0gMCkge1xuICAgIGJvcmRlci1jb2xvcjogQGludmVyc2UtdG90b3AtaG92ZXItYm9yZGVyO1xufVxuLmhvb2staW52ZXJzZS10b3RvcC1hY3RpdmUoKSB3aGVuIG5vdCAoQHRvdG9wLWJvcmRlci13aWR0aCA9IDApIHtcbiAgICBib3JkZXItY29sb3I6IEBpbnZlcnNlLXRvdG9wLWFjdGl2ZS1ib3JkZXI7XG59IiwiLy9cbi8vIENvbXBvbmVudDogVG90b3Bcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gTmV3XG4vL1xuXG5AdG90b3AtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgICAgICAgICAgICAwO1xuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXRvdG9wKCkgd2hlbiBub3QgKEB0b3RvcC1ib3JkZXItcmFkaXVzID0gMCkge1xuICAgIGJvcmRlci1yYWRpdXM6IEB0b3RvcC1ib3JkZXItcmFkaXVzO1xufVxuXG4uaG9vay10b3RvcC1ob3ZlcigpIHt9XG5cbi5ob29rLXRvdG9wLWFjdGl2ZSgpIHt9XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWljb24tbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWludmVyc2UtdG90b3AoKSB7fVxuLmhvb2staW52ZXJzZS10b3RvcC1ob3ZlcigpIHt9XG4uaG9vay1pbnZlcnNlLXRvdG9wLWFjdGl2ZSgpIHt9IiwiLy8gTmFtZTogICAgICAgICAgICBNYXJrZXJcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBhIG1hcmtlciBpY29uXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstbWFya2VyYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBtYXJrZXItcGFkZGluZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1cHg7XG5AbWFya2VyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktYmFja2dyb3VuZDtcbkBtYXJrZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWludmVyc2UtY29sb3I7XG5cbkBtYXJrZXItaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWludmVyc2UtY29sb3I7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IE1hcmtlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGRvcHRzIGB1ay1pY29uYFxuICovXG5cbi51ay1tYXJrZXIge1xuICAgIHBhZGRpbmc6IEBtYXJrZXItcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiBAbWFya2VyLWJhY2tncm91bmQ7XG4gICAgY29sb3I6IEBtYXJrZXItY29sb3I7XG4gICAgLmhvb2stbWFya2VyKCk7XG59XG5cbi8qIEhvdmVyICovXG4udWstbWFya2VyOmhvdmVyIHtcbiAgICBjb2xvcjogQG1hcmtlci1ob3Zlci1jb2xvcjtcbiAgICAuaG9vay1tYXJrZXItaG92ZXIoKTtcbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW1hcmtlci1taXNjKCk7XG5cbi5ob29rLW1hcmtlcigpIHt9XG4uaG9vay1tYXJrZXItaG92ZXIoKSB7fVxuLmhvb2stbWFya2VyLW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW52ZXJzZS1tYXJrZXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWJhY2tncm91bmQ7XG5AaW52ZXJzZS1tYXJrZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWNvbG9yO1xuQGludmVyc2UtbWFya2VyLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgQGdsb2JhbC1jb2xvcjtcblxuLmhvb2staW52ZXJzZSgpIHtcblxuICAgIC51ay1tYXJrZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBAaW52ZXJzZS1tYXJrZXItYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLW1hcmtlci1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1tYXJrZXIoKTtcbiAgICB9XG5cbiAgICAudWstbWFya2VyOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLW1hcmtlci1ob3Zlci1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1tYXJrZXItaG92ZXIoKTtcbiAgICB9XG5cbn1cblxuLmhvb2staW52ZXJzZS1tYXJrZXIoKSB7fVxuLmhvb2staW52ZXJzZS1tYXJrZXItaG92ZXIoKSB7fVxuIiwiLy9cbi8vIENvbXBvbmVudDogTWFya2VyXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIE5ld1xuLy9cblxuQG1hcmtlci1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgQG1hcmtlci1iYWNrZ3JvdW5kO1xuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW1hcmtlcigpIHtcbiAgICB0cmFuc2l0aW9uOiAwLjFzIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yO1xufVxuXG4uaG9vay1tYXJrZXItaG92ZXIoKSB3aGVuIG5vdCAoQG1hcmtlci1ob3Zlci1iYWNrZ3JvdW5kID0gQG1hcmtlci1iYWNrZ3JvdW5kKSB7XG4gICAgYmFja2dyb3VuZDogQG1hcmtlci1ob3Zlci1iYWNrZ3JvdW5kO1xufVxuXG5cbi8vIE1pc2NlbGxhbmVvdXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1tYXJrZXItbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbnZlcnNlLW1hcmtlci1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgQGludmVyc2UtbWFya2VyLWJhY2tncm91bmQ7XG5cbi5ob29rLWludmVyc2UtbWFya2VyKCkge31cblxuLmhvb2staW52ZXJzZS1tYXJrZXItaG92ZXIoKSB3aGVuIG5vdCAoQGludmVyc2UtbWFya2VyLWhvdmVyLWJhY2tncm91bmQgPSBAaW52ZXJzZS1tYXJrZXItYmFja2dyb3VuZCkge1xuICAgIGJhY2tncm91bmQ6IEBpbnZlcnNlLW1hcmtlci1ob3Zlci1iYWNrZ3JvdW5kO1xufVxuIiwiLy9cbi8vIENvbXBvbmVudDogTWFya2VyXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIE5ld1xuLy9cblxuQG1hcmtlci1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgMDtcblxuQG1hcmtlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5AbWFya2VyLWhvdmVyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcblxuXG4vLyBDb21wb25lbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1tYXJrZXIoKSB3aGVuIG5vdCAoQG1hcmtlci1ib3JkZXItd2lkdGggPSAwKSB7XG4gICAgYm9yZGVyOiBAbWFya2VyLWJvcmRlci13aWR0aCBzb2xpZCBAbWFya2VyLWJvcmRlcjtcbn1cblxuLmhvb2stbWFya2VyLWhvdmVyKCkgd2hlbiBub3QgKEBtYXJrZXItYm9yZGVyLXdpZHRoID0gMCkge1xuICAgIGJvcmRlci1jb2xvcjogQG1hcmtlci1ob3Zlci1ib3JkZXI7XG59XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW1hcmtlci1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGludmVyc2UtbWFya2VyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcbkBpbnZlcnNlLW1hcmtlci1ob3Zlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5cbi5ob29rLWludmVyc2UtbWFya2VyKCkgd2hlbiBub3QgKEBtYXJrZXItYm9yZGVyLXdpZHRoID0gMCkge1xuICAgIGJvcmRlci1jb2xvcjogQGludmVyc2UtbWFya2VyLWJvcmRlcjtcbn1cbi5ob29rLWludmVyc2UtbWFya2VyLWhvdmVyKCkgd2hlbiBub3QgKEBtYXJrZXItYm9yZGVyLXdpZHRoID0gMCkge1xuICAgIGJvcmRlci1jb2xvcjogQGludmVyc2UtbWFya2VyLWhvdmVyLWJvcmRlcjtcbn1cbiIsIi8vXG4vLyBDb21wb25lbnQ6IE1hcmtlclxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBtYXJrZXItYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgICAgICAgICAgIDUwMHB4O1xuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW1hcmtlcigpIHdoZW4gbm90IChAbWFya2VyLWJvcmRlci1yYWRpdXMgPSAwKSB7XG4gICAgYm9yZGVyLXJhZGl1czogQG1hcmtlci1ib3JkZXItcmFkaXVzO1xufVxuXG4uaG9vay1tYXJrZXItaG92ZXIoKSB7fVxuXG5cbi8vIE1pc2NlbGxhbmVvdXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1tYXJrZXItbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWludmVyc2UtbWFya2VyKCkge31cbi5ob29rLWludmVyc2UtbWFya2VyLWhvdmVyKCkge31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgQWxlcnRcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBhbGVydCBtZXNzYWdlc1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWFsZXJ0YFxuLy9cbi8vIEFkb3B0ZWQ6ICAgICAgICAgYHVrLWFsZXJ0LWNsb3NlYFxuLy9cbi8vIE1vZGlmaWVyczogICAgICAgYHVrLWFsZXJ0LXByaW1hcnlgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1hbGVydC1zdWNjZXNzYFxuLy8gICAgICAgICAgICAgICAgICBgdWstYWxlcnQtd2FybmluZ2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLWFsZXJ0LWRhbmdlcmBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AYWxlcnQtbWFyZ2luLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW1hcmdpbjtcbkBhbGVydC1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1cHg7XG5AYWxlcnQtcGFkZGluZy1yaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICBAYWxlcnQtcGFkZGluZyArIDE0cHg7XG5AYWxlcnQtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWJhY2tncm91bmQ7XG5AYWxlcnQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWNvbG9yO1xuXG5AYWxlcnQtY2xvc2UtdG9wOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAYWxlcnQtcGFkZGluZyArIDVweDtcbkBhbGVydC1jbG9zZS1yaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBhbGVydC1wYWRkaW5nO1xuXG5AYWxlcnQtcHJpbWFyeS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICBsaWdodGVuKHRpbnQoQGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQsIDQwJSksIDIwJSk7XG5AYWxlcnQtcHJpbWFyeS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZDtcblxuQGFsZXJ0LXN1Y2Nlc3MtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgbGlnaHRlbih0aW50KEBnbG9iYWwtc3VjY2Vzcy1iYWNrZ3JvdW5kLCA0MCUpLCAyNSUpO1xuQGFsZXJ0LXN1Y2Nlc3MtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zdWNjZXNzLWJhY2tncm91bmQ7XG5cbkBhbGVydC13YXJuaW5nLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgIGxpZ2h0ZW4odGludChAZ2xvYmFsLXdhcm5pbmctYmFja2dyb3VuZCwgNDUlKSwgMTUlKTtcbkBhbGVydC13YXJuaW5nLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtd2FybmluZy1iYWNrZ3JvdW5kO1xuXG5AYWxlcnQtZGFuZ2VyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICBsaWdodGVuKHRpbnQoQGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZCwgNDAlKSwgMjAlKTtcbkBhbGVydC1kYW5nZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZGFuZ2VyLWJhY2tncm91bmQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEFsZXJ0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWFsZXJ0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogQGFsZXJ0LW1hcmdpbi12ZXJ0aWNhbDtcbiAgICBwYWRkaW5nOiBAYWxlcnQtcGFkZGluZyBAYWxlcnQtcGFkZGluZy1yaWdodCBAYWxlcnQtcGFkZGluZyBAYWxlcnQtcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiBAYWxlcnQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogQGFsZXJ0LWNvbG9yO1xuICAgIC5ob29rLWFsZXJ0KCk7XG59XG5cbi8qIEFkZCBtYXJnaW4gaWYgYWRqYWNlbnQgZWxlbWVudCAqL1xuKiArIC51ay1hbGVydCB7IG1hcmdpbi10b3A6IEBhbGVydC1tYXJnaW4tdmVydGljYWw7IH1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG5cbi51ay1hbGVydCA+IDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5cbi8qIENsb3NlXG4gKiBBZG9wdHMgYHVrLWNsb3NlYFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1hbGVydC1jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogQGFsZXJ0LWNsb3NlLXRvcDtcbiAgICByaWdodDogQGFsZXJ0LWNsb3NlLXJpZ2h0O1xuICAgIC5ob29rLWFsZXJ0LWNsb3NlKCk7XG59XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gYWRqYWNlbnQgZWxlbWVudFxuICovXG5cbi51ay1hbGVydC1jbG9zZTpmaXJzdC1jaGlsZCArICogeyBtYXJnaW4tdG9wOiAwOyB9XG5cbi8qXG4gKiBIb3ZlclxuICovXG5cbi51ay1hbGVydC1jbG9zZTpob3ZlciB7XG4gICAgLmhvb2stYWxlcnQtY2xvc2UtaG92ZXIoKTtcbn1cblxuXG4vKiBTdHlsZSBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogUHJpbWFyeVxuICovXG5cbi51ay1hbGVydC1wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiBAYWxlcnQtcHJpbWFyeS1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiBAYWxlcnQtcHJpbWFyeS1jb2xvcjtcbiAgICAuaG9vay1hbGVydC1wcmltYXJ5KCk7XG59XG5cbi8qXG4gKiBTdWNjZXNzXG4gKi9cblxuLnVrLWFsZXJ0LXN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6IEBhbGVydC1zdWNjZXNzLWJhY2tncm91bmQ7XG4gICAgY29sb3I6IEBhbGVydC1zdWNjZXNzLWNvbG9yO1xuICAgIC5ob29rLWFsZXJ0LXN1Y2Nlc3MoKTtcbn1cblxuLypcbiAqIFdhcm5pbmdcbiAqL1xuXG4udWstYWxlcnQtd2FybmluZyB7XG4gICAgYmFja2dyb3VuZDogQGFsZXJ0LXdhcm5pbmctYmFja2dyb3VuZDtcbiAgICBjb2xvcjogQGFsZXJ0LXdhcm5pbmctY29sb3I7XG4gICAgLmhvb2stYWxlcnQtd2FybmluZygpO1xufVxuXG4vKlxuICogRGFuZ2VyXG4gKi9cblxuLnVrLWFsZXJ0LWRhbmdlciB7XG4gICAgYmFja2dyb3VuZDogQGFsZXJ0LWRhbmdlci1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiBAYWxlcnQtZGFuZ2VyLWNvbG9yO1xuICAgIC5ob29rLWFsZXJ0LWRhbmdlcigpO1xufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYWxlcnQtbWlzYygpO1xuXG4uaG9vay1hbGVydCgpIHt9XG4uaG9vay1hbGVydC1jbG9zZSgpIHt9XG4uaG9vay1hbGVydC1jbG9zZS1ob3ZlcigpIHt9XG4uaG9vay1hbGVydC1wcmltYXJ5KCkge31cbi5ob29rLWFsZXJ0LXN1Y2Nlc3MoKSB7fVxuLmhvb2stYWxlcnQtd2FybmluZygpIHt9XG4uaG9vay1hbGVydC1kYW5nZXIoKSB7fVxuLmhvb2stYWxlcnQtbWlzYygpIHt9XG4iLCIvL1xuLy8gQ29tcG9uZW50OiBBbGVydFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBhbGVydC1jbG9zZS1vcGFjaXR5OiAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuNDtcbkBhbGVydC1jbG9zZS1ob3Zlci1vcGFjaXR5OiAgICAgICAgICAgICAgICAgICAgIDAuODtcblxuXG4vLyBDb21wb25lbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1hbGVydCgpIHt9XG5cblxuLy8gQ2xvc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1hbGVydC1jbG9zZSgpIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBvcGFjaXR5OiBAYWxlcnQtY2xvc2Utb3BhY2l0eTtcbn1cblxuLmhvb2stYWxlcnQtY2xvc2UtaG92ZXIoKSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgb3BhY2l0eTogQGFsZXJ0LWNsb3NlLWhvdmVyLW9wYWNpdHk7XG59XG5cblxuLy8gU3R5bGUgbW9kaWZpZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYWxlcnQtcHJpbWFyeSgpIHt9XG5cbi5ob29rLWFsZXJ0LXN1Y2Nlc3MoKSB7fVxuXG4uaG9vay1hbGVydC13YXJuaW5nKCkge31cblxuLmhvb2stYWxlcnQtZGFuZ2VyKCkge31cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYWxlcnQtbWlzYygpIHtcblxuICAgIC8qXG4gICAgICogQ29udGVudFxuICAgICAqL1xuXG4gICAgLnVrLWFsZXJ0IGgxLFxuICAgIC51ay1hbGVydCBoMixcbiAgICAudWstYWxlcnQgaDMsXG4gICAgLnVrLWFsZXJ0IGg0LFxuICAgIC51ay1hbGVydCBoNSxcbiAgICAudWstYWxlcnQgaDYgeyBjb2xvcjogaW5oZXJpdDsgfVxuXG4gICAgLnVrLWFsZXJ0IGE6bm90KFtjbGFzc10pIHtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgIC51ay1hbGVydCBhOm5vdChbY2xhc3NdKTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbn0iLCIvLyBOYW1lOiAgICAgICAgICAgIFBsYWNlaG9sZGVyXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgcGxhY2Vob2xkZXIgYm94ZXNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1wbGFjZWhvbGRlcmBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AcGxhY2Vob2xkZXItbWFyZ2luLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW1hcmdpbjtcbkBwbGFjZWhvbGRlci1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZ3V0dGVyO1xuQHBsYWNlaG9sZGVyLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgQGdsb2JhbC1ndXR0ZXI7XG5AcGxhY2Vob2xkZXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWJhY2tncm91bmQ7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFBsYWNlaG9sZGVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXBsYWNlaG9sZGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiBAcGxhY2Vob2xkZXItbWFyZ2luLXZlcnRpY2FsO1xuICAgIHBhZGRpbmc6IEBwbGFjZWhvbGRlci1wYWRkaW5nLXZlcnRpY2FsIEBwbGFjZWhvbGRlci1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgYmFja2dyb3VuZDogQHBsYWNlaG9sZGVyLWJhY2tncm91bmQ7XG4gICAgLmhvb2stcGxhY2Vob2xkZXIoKTtcbn1cblxuLyogQWRkIG1hcmdpbiBpZiBhZGphY2VudCBlbGVtZW50ICovXG4qICsgLnVrLXBsYWNlaG9sZGVyIHsgbWFyZ2luLXRvcDogQHBsYWNlaG9sZGVyLW1hcmdpbi12ZXJ0aWNhbDsgfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cblxuLnVrLXBsYWNlaG9sZGVyID4gOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1wbGFjZWhvbGRlci1taXNjKCk7XG5cbi5ob29rLXBsYWNlaG9sZGVyKCkge31cbi5ob29rLXBsYWNlaG9sZGVyLW1pc2MoKSB7fVxuIiwiLy9cbi8vIENvbXBvbmVudDogUGxhY2Vob2xkZXJcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AcGxhY2Vob2xkZXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcblxuLy9cbi8vIE5ld1xuLy9cblxuQHBsYWNlaG9sZGVyLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1ib3JkZXItd2lkdGg7XG5AcGxhY2Vob2xkZXItYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWJvcmRlcjtcbkBwbGFjZWhvbGRlci1ib3JkZXItc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgIGRhc2hlZDtcblxuXG4vLyBDb21wb25lbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1wbGFjZWhvbGRlcigpIHsgYm9yZGVyOiBAcGxhY2Vob2xkZXItYm9yZGVyLXdpZHRoIEBwbGFjZWhvbGRlci1ib3JkZXItc3R5bGUgQHBsYWNlaG9sZGVyLWJvcmRlcjsgfVxuXG5cbi8vIE1pc2NlbGxhbmVvdXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1wbGFjZWhvbGRlci1taXNjKCkge30iLCIvLyBOYW1lOiAgICAgICAgICAgIEJhZGdlXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgbm90aWZpY2F0aW9uIGJhZGdlc1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWJhZGdlYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBiYWRnZS1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4cHg7XG5AYmFkZ2UtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgICAwO1xuQGJhZGdlLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAgICAgNXB4O1xuQGJhZGdlLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgNTAwcHg7XG5AYmFkZ2UtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZDtcbkBiYWRnZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtaW52ZXJzZS1jb2xvcjtcbkBiYWRnZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExcHg7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEJhZGdlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFN0eWxlXG4gKiAyLiBDZW50ZXIgY2hpbGQgdmVydGljYWxseSBhbmQgaG9yaXpvbnRhbGx5XG4gKi9cblxuLnVrLWJhZGdlIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1pbi13aWR0aDogQGJhZGdlLXNpemU7XG4gICAgaGVpZ2h0OiBAYmFkZ2Utc2l6ZTtcbiAgICBwYWRkaW5nOiBAYmFkZ2UtcGFkZGluZy12ZXJ0aWNhbCBAYmFkZ2UtcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIGJvcmRlci1yYWRpdXM6IEBiYWRnZS1ib3JkZXItcmFkaXVzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgLyogMSAqL1xuICAgIGJhY2tncm91bmQ6IEBiYWRnZS1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiBAYmFkZ2UtY29sb3IgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IEBiYWRnZS1mb250LXNpemU7XG4gICAgLyogMiAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgLmhvb2stYmFkZ2UoKTtcbn1cblxuLypcbiAqIFJlcXVpcmVkIGZvciBgYWBcbiAqL1xuXG4udWstYmFkZ2U6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAuaG9vay1iYWRnZS1ob3ZlcigpO1xufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYmFkZ2UtbWlzYygpO1xuXG4uaG9vay1iYWRnZSgpIHt9XG4uaG9vay1iYWRnZS1ob3ZlcigpIHt9XG4uaG9vay1iYWRnZS1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGludmVyc2UtYmFkZ2UtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kO1xuQGludmVyc2UtYmFkZ2UtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtaW52ZXJzZS1jb2xvcjtcblxuLmhvb2staW52ZXJzZSgpIHtcblxuICAgIC51ay1iYWRnZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLWJhZGdlLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1iYWRnZS1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgICAuaG9vay1pbnZlcnNlLWJhZGdlKCk7XG4gICAgfVxuXG4gICAgLnVrLWJhZGdlOmhvdmVyIHtcbiAgICAgICAgLmhvb2staW52ZXJzZS1iYWRnZS1ob3ZlcigpO1xuICAgIH1cblxufVxuXG4uaG9vay1pbnZlcnNlLWJhZGdlKCkge31cbi5ob29rLWludmVyc2UtYmFkZ2UtaG92ZXIoKSB7fVxuIiwiLy9cbi8vIENvbXBvbmVudDogQmFkZ2Vcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gTmV3XG4vL1xuXG5AYmFkZ2UtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtYWw7XG5cblxuLy8gQ29tcG9uZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYmFkZ2UoKSB7XG4gICAgZm9udC13ZWlnaHQ6IEBiYWRnZS1mb250LXdlaWdodDtcbiAgICAvLyBNYWtlIHN1cmUgdGV4dCBpcyBjZW50ZXJlZCBmb3IgYW55IGZvbnRcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbn1cblxuLmhvb2stYmFkZ2UoKSB3aGVuIG5vdCAoQGJhc2UtbGluay10ZXh0LWRlY29yYXRpb24gPSBub25lKSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uaG9vay1iYWRnZS1ob3ZlcigpIHt9XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWJhZGdlLW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1pbnZlcnNlLWJhZGdlKCkge31cbi5ob29rLWludmVyc2UtYmFkZ2UtaG92ZXIoKSB7fSIsIi8vIE5hbWU6ICAgICAgICAgICAgTGFiZWxcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGluZGljYXRlIGltcG9ydGFudCBub3Rlc1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWxhYmVsYFxuLy9cbi8vIE1vZGlmaWVyczogICAgICAgYHVrLWxhYmVsLXN1Y2Nlc3NgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1sYWJlbC13YXJuaW5nYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbGFiZWwtZGFuZ2VyYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBsYWJlbC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICAgIDA7XG5AbGFiZWwtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNtYWxsLW1hcmdpbjtcbkBsYWJlbC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kO1xuQGxhYmVsLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1saW5lLWhlaWdodDtcbkBsYWJlbC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc21hbGwtZm9udC1zaXplO1xuQGxhYmVsLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1pbnZlcnNlLWNvbG9yO1xuXG5AbGFiZWwtc3VjY2Vzcy1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXN1Y2Nlc3MtYmFja2dyb3VuZDtcbkBsYWJlbC1zdWNjZXNzLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtaW52ZXJzZS1jb2xvcjtcbkBsYWJlbC13YXJuaW5nLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtd2FybmluZy1iYWNrZ3JvdW5kO1xuQGxhYmVsLXdhcm5pbmctY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1pbnZlcnNlLWNvbG9yO1xuQGxhYmVsLWRhbmdlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZDtcbkBsYWJlbC1kYW5nZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtaW52ZXJzZS1jb2xvcjtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogTGFiZWxcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiBAbGFiZWwtcGFkZGluZy12ZXJ0aWNhbCBAbGFiZWwtcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIGJhY2tncm91bmQ6IEBsYWJlbC1iYWNrZ3JvdW5kO1xuICAgIGxpbmUtaGVpZ2h0OiBAbGFiZWwtbGluZS1oZWlnaHQ7XG4gICAgZm9udC1zaXplOiBAbGFiZWwtZm9udC1zaXplO1xuICAgIGNvbG9yOiBAbGFiZWwtY29sb3I7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC5ob29rLWxhYmVsKCk7XG59XG5cblxuLyogQ29sb3IgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFN1Y2Nlc3NcbiAqL1xuXG4udWstbGFiZWwtc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGxhYmVsLXN1Y2Nlc3MtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogQGxhYmVsLXN1Y2Nlc3MtY29sb3I7XG4gICAgLmhvb2stbGFiZWwtc3VjY2VzcygpO1xufVxuXG4vKlxuICogV2FybmluZ1xuICovXG5cbi51ay1sYWJlbC13YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGFiZWwtd2FybmluZy1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiBAbGFiZWwtd2FybmluZy1jb2xvcjtcbiAgICAuaG9vay1sYWJlbC13YXJuaW5nKCk7XG59XG5cbi8qXG4gKiBEYW5nZXJcbiAqL1xuXG4udWstbGFiZWwtZGFuZ2VyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbGFiZWwtZGFuZ2VyLWJhY2tncm91bmQ7XG4gICAgY29sb3I6IEBsYWJlbC1kYW5nZXItY29sb3I7XG4gICAgLmhvb2stbGFiZWwtZGFuZ2VyKCk7XG59XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1sYWJlbC1taXNjKCk7XG5cbi5ob29rLWxhYmVsKCkge31cbi5ob29rLWxhYmVsLXN1Y2Nlc3MoKSB7fVxuLmhvb2stbGFiZWwtd2FybmluZygpIHt9XG4uaG9vay1sYWJlbC1kYW5nZXIoKSB7fVxuLmhvb2stbGFiZWwtbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbnZlcnNlLWxhYmVsLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZDtcbkBpbnZlcnNlLWxhYmVsLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWludmVyc2UtY29sb3I7XG5cbi5ob29rLWludmVyc2UoKSB7XG5cbiAgICAudWstbGFiZWwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1sYWJlbC1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogQGludmVyc2UtbGFiZWwtY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtbGFiZWwoKTtcbiAgICB9XG5cbn1cblxuLmhvb2staW52ZXJzZS1sYWJlbCgpIHt9XG4iLCIvL1xuLy8gQ29tcG9uZW50OiBMYWJlbFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBsYWJlbC1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtZmFtaWx5O1xuQGxhYmVsLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktZm9udC13ZWlnaHQ7XG5AbGFiZWwtdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS10ZXh0LXRyYW5zZm9ybTtcbkBsYWJlbC1sZXR0ZXItc3BhY2luZzogICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWxldHRlci1zcGFjaW5nO1xuQGxhYmVsLWZvbnQtc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktZm9udC1zdHlsZTtcblxuXG4vLyBDb21wb25lbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1sYWJlbCgpIHt9XG5cbi5ob29rLWxhYmVsKCkgd2hlbiBub3QgKEBsYWJlbC1mb250LWZhbWlseSA9IGluaGVyaXQpIHtcbiAgICBmb250LWZhbWlseTogQGxhYmVsLWZvbnQtZmFtaWx5O1xufVxuXG4uaG9vay1sYWJlbCgpIHdoZW4gbm90IChAbGFiZWwtZm9udC13ZWlnaHQgPSBpbmhlcml0KSB7XG4gICAgZm9udC13ZWlnaHQ6IEBsYWJlbC1mb250LXdlaWdodDtcbn1cblxuLmhvb2stbGFiZWwoKSB3aGVuIG5vdCAoQGxhYmVsLXRleHQtdHJhbnNmb3JtID0gaW5oZXJpdCkge1xuICAgIHRleHQtdHJhbnNmb3JtOiBAbGFiZWwtdGV4dC10cmFuc2Zvcm07XG59XG5cbi5ob29rLWxhYmVsKCkgd2hlbiBub3QgKEBsYWJlbC1sZXR0ZXItc3BhY2luZyA9IGluaGVyaXQpIHtcbiAgICBsZXR0ZXItc3BhY2luZzogQGxhYmVsLWxldHRlci1zcGFjaW5nO1xufVxuXG4uaG9vay1sYWJlbCgpIHdoZW4gbm90IChAbGFiZWwtZm9udC1zdHlsZSA9IGluaGVyaXQpIHtcbiAgICBmb250LXN0eWxlOiBAbGFiZWwtZm9udC1zdHlsZTtcbn1cblxuXG4vLyBDb2xvciBtb2RpZmllcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1sYWJlbC1zdWNjZXNzKCkge31cblxuLmhvb2stbGFiZWwtd2FybmluZygpIHt9XG5cbi5ob29rLWxhYmVsLWRhbmdlcigpIHt9XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWxhYmVsLW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1pbnZlcnNlLWxhYmVsKCkge30iLCIvL1xuLy8gQ29tcG9uZW50OiBMYWJlbFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBsYWJlbC1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgICAgICAgICAgIDA7XG5cblxuLy8gQ29tcG9uZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbGFiZWwoKSB3aGVuIG5vdCAoQGxhYmVsLWJvcmRlci1yYWRpdXMgPSAwKSB7XG4gICAgYm9yZGVyLXJhZGl1czogQGxhYmVsLWJvcmRlci1yYWRpdXM7XG59XG5cblxuLy8gQ29sb3IgbW9kaWZpZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbGFiZWwtc3VjY2VzcygpIHt9XG5cbi5ob29rLWxhYmVsLXdhcm5pbmcoKSB7fVxuXG4uaG9vay1sYWJlbC1kYW5nZXIoKSB7fVxuXG5cbi8vIE1pc2NlbGxhbmVvdXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1sYWJlbC1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2staW52ZXJzZS1sYWJlbCgpIHt9IiwiLy8gTmFtZTogICAgICAgICAgICBPdmVybGF5XG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgY29udGVudCBhcmVhcyBvdmVybGF5aW5nIGFuIGltYWdlXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstb3ZlcmxheWBcbi8vXG4vLyBBZG9wdGVkOiAgICAgICAgIGB1ay1vdmVybGF5LWljb25gXG4vL1xuLy8gTW9kaWZpZXI6ICAgICAgICBgdWstb3ZlcmxheS1kZWZhdWx0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstb3ZlcmxheS1wcmltYXJ5YFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBvdmVybGF5LXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZ3V0dGVyO1xuQG92ZXJsYXktcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1ndXR0ZXI7XG5cbkBvdmVybGF5LWRlZmF1bHQtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgIGZhZGUoQGdsb2JhbC1iYWNrZ3JvdW5kLCA4MCUpO1xuXG5Ab3ZlcmxheS1wcmltYXJ5LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICBmYWRlKEBnbG9iYWwtc2Vjb25kYXJ5LWJhY2tncm91bmQsIDgwJSk7XG5Ab3ZlcmxheS1wcmltYXJ5LWNvbG9yLW1vZGU6ICAgICAgICAgICAgICAgICAgICBsaWdodDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogT3ZlcmxheVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1vdmVybGF5IHtcbiAgICBwYWRkaW5nOiBAb3ZlcmxheS1wYWRkaW5nLXZlcnRpY2FsIEBvdmVybGF5LXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICAuaG9vay1vdmVybGF5KCk7XG59XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcbiAqL1xuXG4udWstb3ZlcmxheSA+IDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5cbi8qIEljb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstb3ZlcmxheS1pY29uIHtcbiAgICAuaG9vay1vdmVybGF5LWljb24oKTtcbn1cblxuXG4vKiBTdHlsZSBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogRGVmYXVsdFxuICovXG5cbi51ay1vdmVybGF5LWRlZmF1bHQge1xuICAgIGJhY2tncm91bmQ6IEBvdmVybGF5LWRlZmF1bHQtYmFja2dyb3VuZDtcbiAgICAuaG9vay1vdmVybGF5LWRlZmF1bHQoKTtcbn1cblxuLypcbiAqIFByaW1hcnlcbiAqL1xuXG4udWstb3ZlcmxheS1wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiBAb3ZlcmxheS1wcmltYXJ5LWJhY2tncm91bmQ7XG4gICAgLmhvb2stb3ZlcmxheS1wcmltYXJ5KCk7XG59XG5cbi8vIENvbG9yIE1vZGVcbi51ay1vdmVybGF5LXByaW1hcnk6ZXh0ZW5kKC51ay1saWdodCBhbGwpIHdoZW4gKEBvdmVybGF5LXByaW1hcnktY29sb3ItbW9kZSA9IGxpZ2h0KSB7fVxuLnVrLW92ZXJsYXktcHJpbWFyeTpleHRlbmQoLnVrLWRhcmsgYWxsKSB3aGVuIChAb3ZlcmxheS1wcmltYXJ5LWNvbG9yLW1vZGUgPSBkYXJrKSB7fVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stb3ZlcmxheS1taXNjKCk7XG5cbi5ob29rLW92ZXJsYXkoKSB7fVxuLmhvb2stb3ZlcmxheS1pY29uKCkge31cbi5ob29rLW92ZXJsYXktZGVmYXVsdCgpIHt9XG4uaG9vay1vdmVybGF5LXByaW1hcnkoKSB7fVxuLmhvb2stb3ZlcmxheS1taXNjKCkge31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgQXJ0aWNsZVxuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gY3JlYXRlIGFydGljbGVzXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstYXJ0aWNsZWBcbi8vXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay1hcnRpY2xlLXRpdGxlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstYXJ0aWNsZS1tZXRhYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBhcnRpY2xlLW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbGFyZ2UtbWFyZ2luO1xuXG5AYXJ0aWNsZS10aXRsZS1mb250LXNpemUtbTogICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLTJ4bGFyZ2UtZm9udC1zaXplO1xuQGFydGljbGUtdGl0bGUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgQGFydGljbGUtdGl0bGUtZm9udC1zaXplLW0gKiAwLjg1O1xuQGFydGljbGUtdGl0bGUtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgMS4yO1xuXG5AYXJ0aWNsZS1tZXRhLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZTtcbkBhcnRpY2xlLW1ldGEtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgIDEuNDtcbkBhcnRpY2xlLW1ldGEtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtY29sb3I7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEFydGljbGVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstYXJ0aWNsZSB7XG4gICAgZGlzcGxheTogZmxvdy1yb290O1xuICAgIC5ob29rLWFydGljbGUoKTtcbn1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG5cbi51ay1hcnRpY2xlID4gOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG5cblxuLyogQWRqYWNlbnQgc2libGluZ1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1hcnRpY2xlICsgLnVrLWFydGljbGUge1xuICAgIG1hcmdpbi10b3A6IEBhcnRpY2xlLW1hcmdpbi10b3A7XG4gICAgLmhvb2stYXJ0aWNsZS1hZGphY2VudCgpO1xufVxuXG5cbi8qIFRpdGxlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWFydGljbGUtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogQGFydGljbGUtdGl0bGUtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBAYXJ0aWNsZS10aXRsZS1saW5lLWhlaWdodDtcbiAgICAuaG9vay1hcnRpY2xlLXRpdGxlKCk7XG59XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LW1lZGl1bSkge1xuXG4gICAgLnVrLWFydGljbGUtdGl0bGUgeyBmb250LXNpemU6IEBhcnRpY2xlLXRpdGxlLWZvbnQtc2l6ZS1tOyB9XG5cbn1cblxuXG4vKiBNZXRhXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWFydGljbGUtbWV0YSB7XG4gICAgZm9udC1zaXplOiBAYXJ0aWNsZS1tZXRhLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogQGFydGljbGUtbWV0YS1saW5lLWhlaWdodDtcbiAgICBjb2xvcjogQGFydGljbGUtbWV0YS1jb2xvcjtcbiAgICAuaG9vay1hcnRpY2xlLW1ldGEoKTtcbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWFydGljbGUtbWlzYygpO1xuXG4uaG9vay1hcnRpY2xlKCkge31cbi5ob29rLWFydGljbGUtYWRqYWNlbnQoKSB7fVxuLmhvb2stYXJ0aWNsZS10aXRsZSgpIHt9XG4uaG9vay1hcnRpY2xlLW1ldGEoKSB7fVxuLmhvb2stYXJ0aWNsZS1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGludmVyc2UtYXJ0aWNsZS1tZXRhLWNvbG9yOiAgICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3I7XG5cbi5ob29rLWludmVyc2UoKSB7XG5cbiAgICAudWstYXJ0aWNsZS10aXRsZSAge1xuICAgICAgICAuaG9vay1pbnZlcnNlLWFydGljbGUtdGl0bGUoKTtcbiAgICB9XG5cbiAgICAudWstYXJ0aWNsZS1tZXRhICB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1hcnRpY2xlLW1ldGEtY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtYXJ0aWNsZS1tZXRhKCk7XG4gICAgfVxuXG59XG5cbi5ob29rLWludmVyc2UtYXJ0aWNsZS10aXRsZSgpIHt9XG4uaG9vay1pbnZlcnNlLWFydGljbGUtbWV0YSgpIHt9XG4iLCIvL1xuLy8gQ29tcG9uZW50OiBBcnRpY2xlXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIE5ld1xuLy9cblxuQGFydGljbGUtdGl0bGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcbkBhcnRpY2xlLXRpdGxlLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtcHJpbWFyeS1mb250LWZhbWlseTtcbkBhcnRpY2xlLXRpdGxlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtcHJpbWFyeS1mb250LXdlaWdodDtcbkBhcnRpY2xlLXRpdGxlLXRleHQtdHJhbnNmb3JtOiAgICAgICAgICAgICAgICAgIEBnbG9iYWwtcHJpbWFyeS10ZXh0LXRyYW5zZm9ybTtcbkBhcnRpY2xlLXRpdGxlLWxldHRlci1zcGFjaW5nOiAgICAgICAgICAgICAgICAgIEBnbG9iYWwtcHJpbWFyeS1sZXR0ZXItc3BhY2luZztcbkBhcnRpY2xlLXRpdGxlLWZvbnQtc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtcHJpbWFyeS1mb250LXN0eWxlO1xuXG5AYXJ0aWNsZS1tZXRhLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1mb250LWZhbWlseTtcbkBhcnRpY2xlLW1ldGEtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0O1xuQGFydGljbGUtbWV0YS10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktdGV4dC10cmFuc2Zvcm07XG5AYXJ0aWNsZS1tZXRhLWxldHRlci1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1sZXR0ZXItc3BhY2luZztcbkBhcnRpY2xlLW1ldGEtZm9udC1zdHlsZTogICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtc3R5bGU7XG5cblxuLy8gQ29tcG9uZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYXJ0aWNsZSgpIHt9XG5cblxuLy8gQWRqYWNlbnQgc2libGluZ1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWFydGljbGUtYWRqYWNlbnQoKSB7fVxuXG5cbi8vIFRpdGxlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYXJ0aWNsZS10aXRsZSgpIHsgY29sb3I6IEBhcnRpY2xlLXRpdGxlLWNvbG9yOyB9XG5cbi5ob29rLWFydGljbGUtdGl0bGUoKSB3aGVuIG5vdCAoQGFydGljbGUtdGl0bGUtZm9udC1mYW1pbHkgPSBpbmhlcml0KSB7XG4gICAgZm9udC1mYW1pbHk6IEBhcnRpY2xlLXRpdGxlLWZvbnQtZmFtaWx5O1xufVxuXG4uaG9vay1hcnRpY2xlLXRpdGxlKCkgd2hlbiBub3QgKEBhcnRpY2xlLXRpdGxlLWZvbnQtd2VpZ2h0ID0gaW5oZXJpdCkge1xuICAgIGZvbnQtd2VpZ2h0OiBAYXJ0aWNsZS10aXRsZS1mb250LXdlaWdodDtcbn1cblxuLmhvb2stYXJ0aWNsZS10aXRsZSgpIHdoZW4gbm90IChAYXJ0aWNsZS10aXRsZS10ZXh0LXRyYW5zZm9ybSA9IGluaGVyaXQpIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogQGFydGljbGUtdGl0bGUtdGV4dC10cmFuc2Zvcm07XG59XG5cbi5ob29rLWFydGljbGUtdGl0bGUoKSB3aGVuIG5vdCAoQGFydGljbGUtdGl0bGUtbGV0dGVyLXNwYWNpbmcgPSBpbmhlcml0KSB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IEBhcnRpY2xlLXRpdGxlLWxldHRlci1zcGFjaW5nO1xufVxuXG4uaG9vay1hcnRpY2xlLXRpdGxlKCkgd2hlbiBub3QgKEBhcnRpY2xlLXRpdGxlLWZvbnQtc3R5bGUgPSBpbmhlcml0KSB7XG4gICAgZm9udC1zdHlsZTogQGFydGljbGUtdGl0bGUtZm9udC1zdHlsZTtcbn1cblxuXG4vLyBNZXRhXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYXJ0aWNsZS1tZXRhKCkge31cblxuLmhvb2stYXJ0aWNsZS1tZXRhKCkgd2hlbiBub3QgKEBhcnRpY2xlLW1ldGEtZm9udC1mYW1pbHkgPSBpbmhlcml0KSB7XG4gICAgZm9udC1mYW1pbHk6IEBhcnRpY2xlLW1ldGEtZm9udC1mYW1pbHk7XG59XG5cbi5ob29rLWFydGljbGUtbWV0YSgpIHdoZW4gbm90IChAYXJ0aWNsZS1tZXRhLWZvbnQtd2VpZ2h0ID0gaW5oZXJpdCkge1xuICAgIGZvbnQtd2VpZ2h0OiBAYXJ0aWNsZS1tZXRhLWZvbnQtd2VpZ2h0O1xufVxuXG4uaG9vay1hcnRpY2xlLW1ldGEoKSB3aGVuIG5vdCAoQGFydGljbGUtbWV0YS10ZXh0LXRyYW5zZm9ybSA9IGluaGVyaXQpIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogQGFydGljbGUtbWV0YS10ZXh0LXRyYW5zZm9ybTtcbn1cblxuLmhvb2stYXJ0aWNsZS1tZXRhKCkgd2hlbiBub3QgKEBhcnRpY2xlLW1ldGEtbGV0dGVyLXNwYWNpbmcgPSBpbmhlcml0KSB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IEBhcnRpY2xlLW1ldGEtbGV0dGVyLXNwYWNpbmc7XG59XG5cbi5ob29rLWFydGljbGUtbWV0YSgpIHdoZW4gbm90IChAYXJ0aWNsZS1tZXRhLWZvbnQtc3R5bGUgPSBpbmhlcml0KSB7XG4gICAgZm9udC1zdHlsZTogQGFydGljbGUtbWV0YS1mb250LXN0eWxlO1xufVxuXG5cbi8vIE1pc2NlbGxhbmVvdXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1hcnRpY2xlLW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW52ZXJzZS1hcnRpY2xlLXRpdGxlLWNvbG9yOiAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcblxuLmhvb2staW52ZXJzZS1hcnRpY2xlLXRpdGxlKCkgeyBjb2xvcjogQGludmVyc2UtYXJ0aWNsZS10aXRsZS1jb2xvcjsgfVxuXG4uaG9vay1pbnZlcnNlLWFydGljbGUtbWV0YSgpIHt9IiwiLy9cbi8vIENvbXBvbmVudDogQXJ0aWNsZVxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBhcnRpY2xlLW1ldGEtbGluay1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgIEBhcnRpY2xlLW1ldGEtY29sb3I7XG5AYXJ0aWNsZS1tZXRhLWxpbmstaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICBAZ2xvYmFsLWNvbG9yO1xuXG5AYXJ0aWNsZS1tYXJnaW4tdG9wLW06ICAgICAgICAgICAgICAgICAgICAgICAgICBAYXJ0aWNsZS1tYXJnaW4tdG9wO1xuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWFydGljbGUoKSB7fVxuXG5cbi8vIEFkamFjZW50IHNpYmxpbmdcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1hcnRpY2xlLWFkamFjZW50KCkge31cblxuXG4vLyBUaXRsZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWFydGljbGUtdGl0bGUoKSB7fVxuXG5cbi8vIE1ldGFcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1hcnRpY2xlLW1ldGEoKSB7XG5cbiAgICBhIHsgY29sb3I6IEBhcnRpY2xlLW1ldGEtbGluay1jb2xvcjsgfVxuXG4gICAgYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBAYXJ0aWNsZS1tZXRhLWxpbmstaG92ZXItY29sb3I7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbn1cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYXJ0aWNsZS1taXNjKCkgd2hlbiBub3QgKEBhcnRpY2xlLW1hcmdpbi10b3AtbSA9IEBhcnRpY2xlLW1hcmdpbi10b3ApIHtcblxuICAgIC8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1tZWRpdW0pIHtcblxuICAgICAgICAudWstYXJ0aWNsZSArIC51ay1hcnRpY2xlIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IEBhcnRpY2xlLW1hcmdpbi10b3AtbTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWludmVyc2UtYXJ0aWNsZS1tZXRhKCkge30iLCIvLyBOYW1lOiAgICAgICAgICAgIENvbW1lbnRcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBuZXN0ZWQgY29tbWVudHNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1jb21tZW50YFxuLy9cbi8vIFN1Yi1vYmplY3RzOiAgICAgYHVrLWNvbW1lbnQtYm9keWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWNvbW1lbnQtaGVhZGVyYFxuLy8gICAgICAgICAgICAgICAgICBgdWstY29tbWVudC10aXRsZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWNvbW1lbnQtbWV0YWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWNvbW1lbnQtYXZhdGFyYFxuLy8gICAgICAgICAgICAgICAgICBgdWstY29tbWVudC1saXN0YFxuLy9cbi8vIE1vZGlmaWVyOiAgICAgICAgYHVrLWNvbW1lbnQtcHJpbWFyeWBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AY29tbWVudC1oZWFkZXItbWFyZ2luLWJvdHRvbTogICAgICAgICAgICAgICAgICBAZ2xvYmFsLW1hcmdpbjtcblxuQGNvbW1lbnQtdGl0bGUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tZWRpdW0tZm9udC1zaXplO1xuQGNvbW1lbnQtdGl0bGUtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgMS40O1xuXG5AY29tbWVudC1tZXRhLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZTtcbkBjb21tZW50LW1ldGEtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgIDEuNDtcbkBjb21tZW50LW1ldGEtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtY29sb3I7XG5cbkBjb21tZW50LWxpc3QtbWFyZ2luLXRvcDogICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbGFyZ2UtbWFyZ2luO1xuQGNvbW1lbnQtbGlzdC1wYWRkaW5nLWxlZnQ6ICAgICAgICAgICAgICAgICAgICAgMzBweDtcbkBjb21tZW50LWxpc3QtcGFkZGluZy1sZWZ0LW06ICAgICAgICAgICAgICAgICAgIDEwMHB4O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBDb21tZW50XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWNvbW1lbnQge1xuICAgIC5ob29rLWNvbW1lbnQoKTtcbn1cblxuXG4vKiBTZWN0aW9uc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1jb21tZW50LWJvZHkge1xuICAgIGRpc3BsYXk6IGZsb3ctcm9vdDtcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAuaG9vay1jb21tZW50LWJvZHkoKTtcbn1cblxuLnVrLWNvbW1lbnQtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbG93LXJvb3Q7XG4gICAgbWFyZ2luLWJvdHRvbTogQGNvbW1lbnQtaGVhZGVyLW1hcmdpbi1ib3R0b207XG4gICAgLmhvb2stY29tbWVudC1oZWFkZXIoKTtcbn1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG5cbi51ay1jb21tZW50LWJvZHkgPiA6bGFzdC1jaGlsZCxcbi51ay1jb21tZW50LWhlYWRlciA+IDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5cbi8qIFRpdGxlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWNvbW1lbnQtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogQGNvbW1lbnQtdGl0bGUtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBAY29tbWVudC10aXRsZS1saW5lLWhlaWdodDtcbiAgICAuaG9vay1jb21tZW50LXRpdGxlKCk7XG59XG5cblxuLyogTWV0YVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1jb21tZW50LW1ldGEge1xuICAgIGZvbnQtc2l6ZTogQGNvbW1lbnQtbWV0YS1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IEBjb21tZW50LW1ldGEtbGluZS1oZWlnaHQ7XG4gICAgY29sb3I6IEBjb21tZW50LW1ldGEtY29sb3I7XG4gICAgLmhvb2stY29tbWVudC1tZXRhKCk7XG59XG5cblxuLyogQXZhdGFyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWNvbW1lbnQtYXZhdGFyIHtcbiAgICAuaG9vay1jb21tZW50LWF2YXRhcigpO1xufVxuXG5cbi8qIExpc3RcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstY29tbWVudC1saXN0IHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi8qIEFkamFjZW50IHNpYmxpbmdzICovXG4udWstY29tbWVudC1saXN0ID4gOm50aC1jaGlsZChuKzIpIHtcbiAgICBtYXJnaW4tdG9wOiBAY29tbWVudC1saXN0LW1hcmdpbi10b3A7XG4gICAgLmhvb2stY29tbWVudC1saXN0LWFkamFjZW50KCk7XG59XG5cbi8qXG4gKiBTdWJsaXN0c1xuICogTm90ZTogR2VuZXJhbCBzaWJsaW5nIHNlbGVjdG9yIGFsbG93cyByZXBseSBibG9jayBiZXR3ZWVuIGNvbW1lbnQgYW5kIHN1Ymxpc3RcbiAqL1xuXG4udWstY29tbWVudC1saXN0IC51ay1jb21tZW50IH4gdWwge1xuICAgIG1hcmdpbjogQGNvbW1lbnQtbGlzdC1tYXJnaW4tdG9wIDAgMCAwO1xuICAgIHBhZGRpbmctbGVmdDogQGNvbW1lbnQtbGlzdC1wYWRkaW5nLWxlZnQ7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAuaG9vay1jb21tZW50LWxpc3Qtc3ViKCk7XG59XG5cbi8qIFRhYmxldCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAudWstY29tbWVudC1saXN0IC51ay1jb21tZW50IH4gdWwgeyBwYWRkaW5nLWxlZnQ6IEBjb21tZW50LWxpc3QtcGFkZGluZy1sZWZ0LW07IH1cblxufVxuXG4vKiBBZGphY2VudCBzaWJsaW5ncyAqL1xuLnVrLWNvbW1lbnQtbGlzdCAudWstY29tbWVudCB+IHVsID4gOm50aC1jaGlsZChuKzIpIHtcbiAgICBtYXJnaW4tdG9wOiBAY29tbWVudC1saXN0LW1hcmdpbi10b3A7XG4gICAgLmhvb2stY29tbWVudC1saXN0LXN1Yi1hZGphY2VudCgpO1xufVxuXG5cbi8qIFN0eWxlIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWNvbW1lbnQtcHJpbWFyeSB7XG4gICAgLmhvb2stY29tbWVudC1wcmltYXJ5KCk7XG59XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1jb21tZW50LW1pc2MoKTtcblxuLmhvb2stY29tbWVudCgpIHt9XG4uaG9vay1jb21tZW50LWJvZHkoKSB7fVxuLmhvb2stY29tbWVudC1oZWFkZXIoKSB7fVxuLmhvb2stY29tbWVudC10aXRsZSgpIHt9XG4uaG9vay1jb21tZW50LW1ldGEoKSB7fVxuLmhvb2stY29tbWVudC1hdmF0YXIoKSB7fVxuLmhvb2stY29tbWVudC1saXN0LWFkamFjZW50KCkge31cbi5ob29rLWNvbW1lbnQtbGlzdC1zdWIoKSB7fVxuLmhvb2stY29tbWVudC1saXN0LXN1Yi1hZGphY2VudCgpIHt9XG4uaG9vay1jb21tZW50LXByaW1hcnkoKSB7fVxuLmhvb2stY29tbWVudC1taXNjKCkge31cbiIsIi8vXG4vLyBDb21wb25lbnQ6IENvbW1lbnRcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gTmV3XG4vL1xuXG5AY29tbWVudC1tZXRhLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1mb250LWZhbWlseTtcbkBjb21tZW50LW1ldGEtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0O1xuQGNvbW1lbnQtbWV0YS10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktdGV4dC10cmFuc2Zvcm07XG5AY29tbWVudC1tZXRhLWxldHRlci1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1sZXR0ZXItc3BhY2luZztcbkBjb21tZW50LW1ldGEtZm9udC1zdHlsZTogICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtc3R5bGU7XG5cblxuLy8gQ29tcG9uZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stY29tbWVudCgpIHt9XG5cblxuLy8gU2VjdGlvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1jb21tZW50LWJvZHkoKSB7fVxuXG4uaG9vay1jb21tZW50LWhlYWRlcigpIHt9XG5cblxuLy8gVGl0bGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1jb21tZW50LXRpdGxlKCkge31cblxuXG4vLyBNZXRhXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stY29tbWVudC1tZXRhKCkge31cblxuLmhvb2stY29tbWVudC1tZXRhKCkgd2hlbiBub3QgKEBjb21tZW50LW1ldGEtZm9udC1mYW1pbHkgPSBpbmhlcml0KSB7XG4gICAgZm9udC1mYW1pbHk6IEBjb21tZW50LW1ldGEtZm9udC1mYW1pbHk7XG59XG5cbi5ob29rLWNvbW1lbnQtbWV0YSgpIHdoZW4gbm90IChAY29tbWVudC1tZXRhLWZvbnQtd2VpZ2h0ID0gaW5oZXJpdCkge1xuICAgIGZvbnQtd2VpZ2h0OiBAY29tbWVudC1tZXRhLWZvbnQtd2VpZ2h0O1xufVxuXG4uaG9vay1jb21tZW50LW1ldGEoKSB3aGVuIG5vdCAoQGNvbW1lbnQtbWV0YS10ZXh0LXRyYW5zZm9ybSA9IGluaGVyaXQpIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogQGNvbW1lbnQtbWV0YS10ZXh0LXRyYW5zZm9ybTtcbn1cblxuLmhvb2stY29tbWVudC1tZXRhKCkgd2hlbiBub3QgKEBjb21tZW50LW1ldGEtbGV0dGVyLXNwYWNpbmcgPSBpbmhlcml0KSB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IEBjb21tZW50LW1ldGEtbGV0dGVyLXNwYWNpbmc7XG59XG5cbi5ob29rLWNvbW1lbnQtbWV0YSgpIHdoZW4gbm90IChAY29tbWVudC1tZXRhLWZvbnQtc3R5bGUgPSBpbmhlcml0KSB7XG4gICAgZm9udC1zdHlsZTogQGNvbW1lbnQtbWV0YS1mb250LXN0eWxlO1xufVxuXG5cbi8vIEF2YXRhclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWNvbW1lbnQtYXZhdGFyKCkge31cblxuXG4vLyBMaXN0XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stY29tbWVudC1saXN0LWFkamFjZW50KCkge31cblxuLmhvb2stY29tbWVudC1saXN0LXN1YigpIHt9XG5cbi5ob29rLWNvbW1lbnQtbGlzdC1zdWItYWRqYWNlbnQoKSB7fVxuXG5cbi8vIFN0eWxlIG1vZGlmaWVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stY29tbWVudC1wcmltYXJ5KCkge31cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stY29tbWVudC1taXNjKCkge30iLCIvL1xuLy8gQ29tcG9uZW50OiBDb21tZW50XG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIE5ld1xuLy9cblxuQGNvbW1lbnQtcHJpbWFyeS1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1ndXR0ZXI7XG5AY29tbWVudC1wcmltYXJ5LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWJhY2tncm91bmQ7XG5cblxuLy8gQ29tcG9uZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stY29tbWVudCgpIHt9XG5cblxuLy8gU2VjdGlvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1jb21tZW50LWJvZHkoKSB7fVxuXG4uaG9vay1jb21tZW50LWhlYWRlcigpIHt9XG5cblxuLy8gVGl0bGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1jb21tZW50LXRpdGxlKCkge31cblxuXG4vLyBNZXRhXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stY29tbWVudC1tZXRhKCkge31cblxuXG4vLyBBdmF0YXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1jb21tZW50LWF2YXRhcigpIHt9XG5cblxuLy8gTGlzdFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWNvbW1lbnQtbGlzdC1hZGphY2VudCgpIHt9XG5cbi5ob29rLWNvbW1lbnQtbGlzdC1zdWIoKSB7fVxuXG4uaG9vay1jb21tZW50LWxpc3Qtc3ViLWFkamFjZW50KCkge31cblxuXG4vLyBTdHlsZSBtb2RpZmllclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWNvbW1lbnQtcHJpbWFyeSgpIHtcbiAgICBwYWRkaW5nOiBAY29tbWVudC1wcmltYXJ5LXBhZGRpbmc7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGNvbW1lbnQtcHJpbWFyeS1iYWNrZ3JvdW5kO1xufVxuXG5cbi8vIE1pc2NlbGxhbmVvdXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1jb21tZW50LW1pc2MoKSB7fSIsIi8vIE5hbWU6ICAgICAgICAgICAgU2VhcmNoXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgdGhlIHNlYXJjaFxuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLXNlYXJjaGBcbi8vXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay1zZWFyY2gtaW5wdXRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1zZWFyY2gtdG9nZ2xlYFxuLy9cbi8vIEFkb3B0ZWQ6ICAgICAgICAgYHVrLXNlYXJjaC1pY29uYFxuLy9cbi8vIE1vZGlmaWVyOiAgICAgICAgYHVrLXNlYXJjaC1kZWZhdWx0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstc2VhcmNoLW5hdmJhcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXNlYXJjaC1sYXJnZWBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5Ac2VhcmNoLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1jb2xvcjtcbkBzZWFyY2gtcGxhY2Vob2xkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWNvbG9yO1xuXG5Ac2VhcmNoLWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tdXRlZC1jb2xvcjtcblxuQHNlYXJjaC1kZWZhdWx0LXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0MHB4O1xuQHNlYXJjaC1kZWZhdWx0LWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtY29udHJvbC1oZWlnaHQ7XG5Ac2VhcmNoLWRlZmF1bHQtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgMTBweDtcbkBzZWFyY2gtZGVmYXVsdC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWJhY2tncm91bmQ7XG5Ac2VhcmNoLWRlZmF1bHQtZm9jdXMtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgZGFya2VuKEBzZWFyY2gtZGVmYXVsdC1iYWNrZ3JvdW5kLCA1JSk7XG5cbkBzZWFyY2gtZGVmYXVsdC1pY29uLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWNvbnRyb2wtaGVpZ2h0O1xuQHNlYXJjaC1kZWZhdWx0LWljb24tcGFkZGluZzogICAgICAgICAgICAgICAgICAgICAgIDA7XG5cbkBzZWFyY2gtbmF2YmFyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0MDBweDtcbkBzZWFyY2gtbmF2YmFyLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0MHB4O1xuQHNlYXJjaC1uYXZiYXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuQHNlYXJjaC1uYXZiYXItZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbGFyZ2UtZm9udC1zaXplO1xuXG5Ac2VhcmNoLW5hdmJhci1pY29uLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgNDBweDtcbkBzZWFyY2gtbmF2YmFyLWljb24tcGFkZGluZzogICAgICAgICAgICAgICAgICAgICAgICAwO1xuXG5Ac2VhcmNoLWxhcmdlLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTAwcHg7XG5Ac2VhcmNoLWxhcmdlLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgODBweDtcbkBzZWFyY2gtbGFyZ2UtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcbkBzZWFyY2gtbGFyZ2UtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLTJ4bGFyZ2UtZm9udC1zaXplO1xuXG5Ac2VhcmNoLWxhcmdlLWljb24td2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgODBweDtcbkBzZWFyY2gtbGFyZ2UtaWNvbi1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAwO1xuXG5Ac2VhcmNoLXRvZ2dsZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tdXRlZC1jb2xvcjtcbkBzZWFyY2gtdG9nZ2xlLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWNvbG9yO1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBTZWFyY2hcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gQ29udGFpbmVyIGZpdHMgaXRzIGNvbnRlbnRcbiAqIDIuIENyZWF0ZSBwb3NpdGlvbiBjb250ZXh0XG4gKiAzLiBQcmV2ZW50IGNvbnRlbnQgb3ZlcmZsb3dcbiAqIDQuIFJlc2V0IGBmb3JtYFxuICovXG5cbi51ay1zZWFyY2gge1xuICAgIC8qIDEgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgLyogMiAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvKiAzICovXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIC8qIDQgKi9cbiAgICBtYXJnaW46IDA7XG59XG5cblxuLyogSW5wdXRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgb24gT1MgWCBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cblxuLnVrLXNlYXJjaC1pbnB1dDo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbi51ay1zZWFyY2gtaW5wdXQ6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24geyAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLypcbiAqIFJlbW92ZXMgcGxhY2Vob2xkZXIgdHJhbnNwYXJlbmN5IGluIEZpcmVmb3guXG4gKi9cblxuLnVrLXNlYXJjaC1pbnB1dDo6LW1vei1wbGFjZWhvbGRlciB7IG9wYWNpdHk6IDE7IH1cblxuLypcbiAqIDEuIERlZmluZSBjb25zaXN0ZW50IGJveCBzaXppbmcuXG4gKiAyLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3gvSUUgYW5kIENocm9tZS9TYWZhcmkvT3BlcmEuXG4gKiAzLiBSZW1vdmUgYGJvcmRlci1yYWRpdXNgIGluIGlPUy5cbiAqIDQuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIGFsbCBicm93c2Vyc1xuICogNS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqIDYuIFJlbW92ZSBkZWZhdWx0IHN0eWxlIGluIGlPUy5cbiAqIDcuIFZlcnRpY2FsIGFsaWdubWVudFxuICogOC4gVGFrZSB0aGUgZnVsbCBjb250YWluZXIgd2lkdGhcbiAqIDkuIFN0eWxlXG4gKi9cblxuLnVrLXNlYXJjaC1pbnB1dCB7XG4gICAgLyogMSAqL1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLyogMiAqL1xuICAgIG1hcmdpbjogMDtcbiAgICAvKiAzICovXG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAvKiA0ICovXG4gICAgZm9udDogaW5oZXJpdDtcbiAgICAvKiA1ICovXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgLyogNiAqL1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAvKiA3ICovXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAvKiA4ICovXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLyogOSAqL1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjb2xvcjogQHNlYXJjaC1jb2xvcjtcbiAgICAuaG9vay1zZWFyY2gtaW5wdXQoKTtcbn1cblxuLnVrLXNlYXJjaC1pbnB1dDpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IH1cblxuLyogUGxhY2Vob2xkZXIgKi9cbi51ay1zZWFyY2gtaW5wdXQ6OnBsYWNlaG9sZGVyIHsgY29sb3I6IEBzZWFyY2gtcGxhY2Vob2xkZXItY29sb3I7IH1cblxuXG4vKiBJY29uIChBZG9wdHMgYHVrLWljb25gKVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBQb3NpdGlvbiBhYm92ZSBpbnB1dFxuICogMS4gU2V0IHBvc2l0aW9uXG4gKiAyLiBDZW50ZXIgaWNvbiB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHlcbiAqIDMuIFN0eWxlXG4gKi9cblxuLnVrLXNlYXJjaCAudWstc2VhcmNoLWljb24ge1xuICAgIC8qIDEgKi9cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIC8qIDIgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIC8qIDMgKi9cbiAgICBjb2xvcjogQHNlYXJjaC1pY29uLWNvbG9yO1xuICAgIC5ob29rLXNlYXJjaC1pY29uKCk7XG59XG5cbi8qXG4gKiBSZXF1aXJlZCBmb3IgYGFgLlxuICovXG5cbi51ay1zZWFyY2ggLnVrLXNlYXJjaC1pY29uOmhvdmVyIHsgY29sb3I6IEBzZWFyY2gtaWNvbi1jb2xvcjsgfVxuXG4vKlxuICogTWFrZSBgaW5wdXRgIGVsZW1lbnQgY2xpY2thYmxlIHRocm91Z2ggaWNvbiwgZS5nLiBpZiBpdCdzIGEgYHNwYW5gXG4gKi9cblxuLnVrLXNlYXJjaCAudWstc2VhcmNoLWljb246bm90KGEpOm5vdChidXR0b24pOm5vdChpbnB1dCkgeyBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4vKlxuICogUG9zaXRpb24gbW9kaWZpZXJcbiAqL1xuXG4udWstc2VhcmNoIC51ay1zZWFyY2gtaWNvbi1mbGlwIHtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvO1xufVxuXG5cbi8qIERlZmF1bHQgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstc2VhcmNoLWRlZmF1bHQgeyB3aWR0aDogQHNlYXJjaC1kZWZhdWx0LXdpZHRoOyB9XG5cbi8qXG4gKiBJbnB1dFxuICovXG5cbi51ay1zZWFyY2gtZGVmYXVsdCAudWstc2VhcmNoLWlucHV0IHtcbiAgICBoZWlnaHQ6IEBzZWFyY2gtZGVmYXVsdC1oZWlnaHQ7XG4gICAgcGFkZGluZy1sZWZ0OiBAc2VhcmNoLWRlZmF1bHQtcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIHBhZGRpbmctcmlnaHQ6IEBzZWFyY2gtZGVmYXVsdC1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgYmFja2dyb3VuZDogQHNlYXJjaC1kZWZhdWx0LWJhY2tncm91bmQ7XG4gICAgLmhvb2stc2VhcmNoLWRlZmF1bHQtaW5wdXQoKTtcbn1cblxuLyogRm9jdXMgKi9cbi51ay1zZWFyY2gtZGVmYXVsdCAudWstc2VhcmNoLWlucHV0OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAc2VhcmNoLWRlZmF1bHQtZm9jdXMtYmFja2dyb3VuZDtcbiAgICAuaG9vay1zZWFyY2gtZGVmYXVsdC1pbnB1dC1mb2N1cygpO1xufVxuXG4vKlxuICogSWNvblxuICovXG5cbi51ay1zZWFyY2gtZGVmYXVsdCAudWstc2VhcmNoLWljb24geyB3aWR0aDogQHNlYXJjaC1kZWZhdWx0LWljb24td2lkdGg7IH1cblxuLnVrLXNlYXJjaC1kZWZhdWx0IC51ay1zZWFyY2gtaWNvbjpub3QoLnVrLXNlYXJjaC1pY29uLWZsaXApIH4gLnVrLXNlYXJjaC1pbnB1dCB7IHBhZGRpbmctbGVmdDogKEBzZWFyY2gtZGVmYXVsdC1pY29uLXdpZHRoICsgQHNlYXJjaC1kZWZhdWx0LWljb24tcGFkZGluZyk7IH1cbi51ay1zZWFyY2gtZGVmYXVsdCAudWstc2VhcmNoLWljb24tZmxpcCB+IC51ay1zZWFyY2gtaW5wdXQgeyBwYWRkaW5nLXJpZ2h0OiAoQHNlYXJjaC1kZWZhdWx0LWljb24td2lkdGggKyBAc2VhcmNoLWRlZmF1bHQtaWNvbi1wYWRkaW5nKTsgfVxuXG5cbi8qIE5hdmJhciBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1zZWFyY2gtbmF2YmFyIHsgd2lkdGg6IEBzZWFyY2gtbmF2YmFyLXdpZHRoOyB9XG5cbi8qXG4gKiBJbnB1dFxuICovXG5cbi51ay1zZWFyY2gtbmF2YmFyIC51ay1zZWFyY2gtaW5wdXQge1xuICAgIGhlaWdodDogQHNlYXJjaC1uYXZiYXItaGVpZ2h0O1xuICAgIGJhY2tncm91bmQ6IEBzZWFyY2gtbmF2YmFyLWJhY2tncm91bmQ7XG4gICAgZm9udC1zaXplOiBAc2VhcmNoLW5hdmJhci1mb250LXNpemU7XG4gICAgLmhvb2stc2VhcmNoLW5hdmJhci1pbnB1dCgpO1xufVxuXG4vKiBGb2N1cyAqL1xuLnVrLXNlYXJjaC1uYXZiYXIgLnVrLXNlYXJjaC1pbnB1dDpmb2N1cyB7XG4gICAgLmhvb2stc2VhcmNoLW5hdmJhci1pbnB1dC1mb2N1cygpO1xufVxuXG4vKlxuICogSWNvblxuICovXG5cbi51ay1zZWFyY2gtbmF2YmFyIC51ay1zZWFyY2gtaWNvbiB7IHdpZHRoOiBAc2VhcmNoLW5hdmJhci1pY29uLXdpZHRoOyB9XG5cbi51ay1zZWFyY2gtbmF2YmFyIC51ay1zZWFyY2gtaWNvbjpub3QoLnVrLXNlYXJjaC1pY29uLWZsaXApIH4gLnVrLXNlYXJjaC1pbnB1dCB7IHBhZGRpbmctbGVmdDogKEBzZWFyY2gtbmF2YmFyLWljb24td2lkdGggKyBAc2VhcmNoLW5hdmJhci1pY29uLXBhZGRpbmcpOyB9XG4udWstc2VhcmNoLW5hdmJhciAudWstc2VhcmNoLWljb24tZmxpcCB+IC51ay1zZWFyY2gtaW5wdXQgeyBwYWRkaW5nLXJpZ2h0OiAoQHNlYXJjaC1uYXZiYXItaWNvbi13aWR0aCArIEBzZWFyY2gtbmF2YmFyLWljb24tcGFkZGluZyk7IH1cblxuXG4vKiBMYXJnZSBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1zZWFyY2gtbGFyZ2UgeyB3aWR0aDogQHNlYXJjaC1sYXJnZS13aWR0aDsgfVxuXG4vKlxuICogSW5wdXRcbiAqL1xuXG4udWstc2VhcmNoLWxhcmdlIC51ay1zZWFyY2gtaW5wdXQge1xuICAgIGhlaWdodDogQHNlYXJjaC1sYXJnZS1oZWlnaHQ7XG4gICAgYmFja2dyb3VuZDogQHNlYXJjaC1sYXJnZS1iYWNrZ3JvdW5kO1xuICAgIGZvbnQtc2l6ZTogQHNlYXJjaC1sYXJnZS1mb250LXNpemU7XG4gICAgLmhvb2stc2VhcmNoLWxhcmdlLWlucHV0KCk7XG59XG5cbi8qIEZvY3VzICovXG4udWstc2VhcmNoLWxhcmdlIC51ay1zZWFyY2gtaW5wdXQ6Zm9jdXMge1xuICAgIC5ob29rLXNlYXJjaC1sYXJnZS1pbnB1dC1mb2N1cygpO1xufVxuXG4vKlxuICogSWNvblxuICovXG5cbi51ay1zZWFyY2gtbGFyZ2UgLnVrLXNlYXJjaC1pY29uIHsgd2lkdGg6IEBzZWFyY2gtbGFyZ2UtaWNvbi13aWR0aDsgfVxuXG4udWstc2VhcmNoLWxhcmdlIC51ay1zZWFyY2gtaWNvbjpub3QoLnVrLXNlYXJjaC1pY29uLWZsaXApIH4gLnVrLXNlYXJjaC1pbnB1dCB7IHBhZGRpbmctbGVmdDogKEBzZWFyY2gtbGFyZ2UtaWNvbi13aWR0aCArIEBzZWFyY2gtbGFyZ2UtaWNvbi1wYWRkaW5nKTsgfVxuLnVrLXNlYXJjaC1sYXJnZSAudWstc2VhcmNoLWljb24tZmxpcCB+IC51ay1zZWFyY2gtaW5wdXQgeyBwYWRkaW5nLXJpZ2h0OiAoQHNlYXJjaC1sYXJnZS1pY29uLXdpZHRoICsgQHNlYXJjaC1sYXJnZS1pY29uLXBhZGRpbmcpOyB9XG5cblxuLyogVG9nZ2xlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXNlYXJjaC10b2dnbGUge1xuICAgIGNvbG9yOiBAc2VhcmNoLXRvZ2dsZS1jb2xvcjtcbiAgICAuaG9vay1zZWFyY2gtdG9nZ2xlKCk7XG59XG5cbi8qIEhvdmVyICovXG4udWstc2VhcmNoLXRvZ2dsZTpob3ZlciB7XG4gICAgY29sb3I6IEBzZWFyY2gtdG9nZ2xlLWhvdmVyLWNvbG9yO1xuICAgIC5ob29rLXNlYXJjaC10b2dnbGUtaG92ZXIoKTtcbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXNlYXJjaC1taXNjKCk7XG5cbi5ob29rLXNlYXJjaC1pbnB1dCgpIHt9XG4uaG9vay1zZWFyY2gtaWNvbigpIHt9XG4uaG9vay1zZWFyY2gtZGVmYXVsdC1pbnB1dCgpIHt9XG4uaG9vay1zZWFyY2gtZGVmYXVsdC1pbnB1dC1mb2N1cygpIHt9XG4uaG9vay1zZWFyY2gtbmF2YmFyLWlucHV0KCkge31cbi5ob29rLXNlYXJjaC1uYXZiYXItaW5wdXQtZm9jdXMoKSB7fVxuLmhvb2stc2VhcmNoLWxhcmdlLWlucHV0KCkge31cbi5ob29rLXNlYXJjaC1sYXJnZS1pbnB1dC1mb2N1cygpIHt9XG5cbi5ob29rLXNlYXJjaC10b2dnbGUoKSB7fVxuLmhvb2stc2VhcmNoLXRvZ2dsZS1ob3ZlcigpIHt9XG5cbi5ob29rLXNlYXJjaC1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGludmVyc2Utc2VhcmNoLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtY29sb3I7XG5AaW52ZXJzZS1zZWFyY2gtcGxhY2Vob2xkZXItY29sb3I6ICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvcjtcblxuQGludmVyc2Utc2VhcmNoLWljb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3I7XG5cbkBpbnZlcnNlLXNlYXJjaC1kZWZhdWx0LWJhY2tncm91bmQ6ICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLW11dGVkLWJhY2tncm91bmQ7XG5AaW52ZXJzZS1zZWFyY2gtZGVmYXVsdC1mb2N1cy1iYWNrZ3JvdW5kOiAgICAgIGZhZGVpbihAaW52ZXJzZS1zZWFyY2gtZGVmYXVsdC1iYWNrZ3JvdW5kLCA1JSk7XG5cbkBpbnZlcnNlLXNlYXJjaC1uYXZiYXItYmFja2dyb3VuZDogICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5cbkBpbnZlcnNlLXNlYXJjaC1sYXJnZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5cbkBpbnZlcnNlLXNlYXJjaC10b2dnbGUtY29sb3I6ICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yO1xuQGludmVyc2Utc2VhcmNoLXRvZ2dsZS1ob3Zlci1jb2xvcjogICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtY29sb3I7XG5cbi5ob29rLWludmVyc2UoKSB7XG5cbiAgICAvL1xuICAgIC8vIElucHV0XG4gICAgLy9cblxuICAgIC51ay1zZWFyY2gtaW5wdXQgeyBjb2xvcjogQGludmVyc2Utc2VhcmNoLWNvbG9yOyB9XG5cbiAgICAudWstc2VhcmNoLWlucHV0OjpwbGFjZWhvbGRlciB7IGNvbG9yOiBAaW52ZXJzZS1zZWFyY2gtcGxhY2Vob2xkZXItY29sb3I7IH1cblxuICAgIC8vXG4gICAgLy8gSWNvblxuICAgIC8vXG5cbiAgICAudWstc2VhcmNoIC51ay1zZWFyY2gtaWNvbiB7IGNvbG9yOiBAaW52ZXJzZS1zZWFyY2gtaWNvbi1jb2xvcjsgfVxuICAgIC51ay1zZWFyY2ggLnVrLXNlYXJjaC1pY29uOmhvdmVyIHsgY29sb3I6IEBpbnZlcnNlLXNlYXJjaC1pY29uLWNvbG9yOyB9XG5cbiAgICAvL1xuICAgIC8vIFN0eWxlIG1vZGlmaWVyXG4gICAgLy9cblxuICAgIC51ay1zZWFyY2gtZGVmYXVsdCAudWstc2VhcmNoLWlucHV0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2Utc2VhcmNoLWRlZmF1bHQtYmFja2dyb3VuZDtcbiAgICAgICAgLmhvb2staW52ZXJzZS1zZWFyY2gtZGVmYXVsdC1pbnB1dCgpO1xuICAgIH1cblxuICAgIC51ay1zZWFyY2gtZGVmYXVsdCAudWstc2VhcmNoLWlucHV0OmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2Utc2VhcmNoLWRlZmF1bHQtZm9jdXMtYmFja2dyb3VuZDtcbiAgICAgICAgLmhvb2staW52ZXJzZS1zZWFyY2gtZGVmYXVsdC1pbnB1dC1mb2N1cygpO1xuICAgIH1cblxuICAgIC51ay1zZWFyY2gtbmF2YmFyIC51ay1zZWFyY2gtaW5wdXQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1zZWFyY2gtbmF2YmFyLWJhY2tncm91bmQ7XG4gICAgICAgIC5ob29rLWludmVyc2Utc2VhcmNoLW5hdmJhci1pbnB1dCgpO1xuICAgIH1cblxuICAgIC51ay1zZWFyY2gtbmF2YmFyIC51ay1zZWFyY2gtaW5wdXQ6Zm9jdXMge1xuICAgICAgICAuaG9vay1pbnZlcnNlLXNlYXJjaC1uYXZiYXItaW5wdXQtZm9jdXMoKTtcbiAgICB9XG5cbiAgICAudWstc2VhcmNoLWxhcmdlIC51ay1zZWFyY2gtaW5wdXQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1zZWFyY2gtbGFyZ2UtYmFja2dyb3VuZDtcbiAgICAgICAgLmhvb2staW52ZXJzZS1zZWFyY2gtbGFyZ2UtaW5wdXQoKTtcbiAgICB9XG5cbiAgICAudWstc2VhcmNoLWxhcmdlIC51ay1zZWFyY2gtaW5wdXQ6Zm9jdXMge1xuICAgICAgICAuaG9vay1pbnZlcnNlLXNlYXJjaC1sYXJnZS1pbnB1dC1mb2N1cygpO1xuICAgIH1cblxuICAgIC8vXG4gICAgLy8gVG9nZ2xlXG4gICAgLy9cblxuICAgIC51ay1zZWFyY2gtdG9nZ2xlIHtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLXNlYXJjaC10b2dnbGUtY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2Utc2VhcmNoLXRvZ2dsZSgpO1xuICAgIH1cblxuICAgIC51ay1zZWFyY2gtdG9nZ2xlOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLXNlYXJjaC10b2dnbGUtaG92ZXItY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2Utc2VhcmNoLXRvZ2dsZS1ob3ZlcigpO1xuICAgIH1cblxufVxuXG4uaG9vay1pbnZlcnNlLXNlYXJjaC1kZWZhdWx0LWlucHV0KCkge31cbi5ob29rLWludmVyc2Utc2VhcmNoLWRlZmF1bHQtaW5wdXQtZm9jdXMoKSB7fVxuLmhvb2staW52ZXJzZS1zZWFyY2gtbmF2YmFyLWlucHV0KCkge31cbi5ob29rLWludmVyc2Utc2VhcmNoLW5hdmJhci1pbnB1dC1mb2N1cygpIHt9XG4uaG9vay1pbnZlcnNlLXNlYXJjaC1sYXJnZS1pbnB1dCgpIHt9XG4uaG9vay1pbnZlcnNlLXNlYXJjaC1sYXJnZS1pbnB1dC1mb2N1cygpIHt9XG4uaG9vay1pbnZlcnNlLXNlYXJjaC10b2dnbGUoKSB7fVxuLmhvb2staW52ZXJzZS1zZWFyY2gtdG9nZ2xlLWhvdmVyKCkge31cbiIsIi8vXG4vLyBDb21wb25lbnQ6IFNlYXJjaFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBzZWFyY2gtZGVmYXVsdC1iYWNrZHJvcC1maWx0ZXI6ICAgICAgICAgICAgICAgICAgICB+Jyc7XG5cbkBzZWFyY2gtbmF2YmFyLWJhY2tkcm9wLWZpbHRlcjogICAgICAgICAgICAgICAgICAgICB+Jyc7XG5cbkBzZWFyY2gtbGFyZ2UtYmFja2Ryb3AtZmlsdGVyOiAgICAgICAgICAgICAgICAgICAgICB+Jyc7XG5cbkBzZWFyY2gtbmF2YmFyLWZvY3VzLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICBAc2VhcmNoLW5hdmJhci1iYWNrZ3JvdW5kO1xuXG5Ac2VhcmNoLWxhcmdlLWZvY3VzLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgQHNlYXJjaC1sYXJnZS1iYWNrZ3JvdW5kO1xuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXNlYXJjaC1pbnB1dCgpIHtcbiAgICB0cmFuc2l0aW9uOiAwLjJzIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXItY29sb3IsIGJveC1zaGFkb3c7XG59XG5cblxuLy8gRGVmYXVsdCBtb2RpZmllcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1zZWFyY2gtZGVmYXVsdC1pbnB1dCgpIHdoZW4gbm90IChAc2VhcmNoLWRlZmF1bHQtYmFja2Ryb3AtZmlsdGVyID0gficnKSB7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBAc2VhcmNoLWRlZmF1bHQtYmFja2Ryb3AtZmlsdGVyO1xuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBAc2VhcmNoLWRlZmF1bHQtYmFja2Ryb3AtZmlsdGVyO1xufVxuXG4uaG9vay1zZWFyY2gtZGVmYXVsdC1pbnB1dC1mb2N1cygpIHt9XG5cblxuLy8gTmF2YmFyIG1vZGlmaWVyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXNlYXJjaC1uYXZiYXItaW5wdXQoKSB3aGVuIG5vdCAoQHNlYXJjaC1uYXZiYXItYmFja2Ryb3AtZmlsdGVyID0gficnKSB7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBAc2VhcmNoLW5hdmJhci1iYWNrZHJvcC1maWx0ZXI7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IEBzZWFyY2gtbmF2YmFyLWJhY2tkcm9wLWZpbHRlcjtcbn1cblxuLmhvb2stc2VhcmNoLW5hdmJhci1pbnB1dC1mb2N1cygpIHdoZW4gbm90IChAc2VhcmNoLW5hdmJhci1mb2N1cy1iYWNrZ3JvdW5kID0gQHNlYXJjaC1uYXZiYXItYmFja2dyb3VuZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBzZWFyY2gtbmF2YmFyLWZvY3VzLWJhY2tncm91bmQ7XG59XG5cblxuLy8gTGFyZ2UgbW9kaWZpZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stc2VhcmNoLWxhcmdlLWlucHV0KCkgd2hlbiBub3QgKEBzZWFyY2gtbGFyZ2UtYmFja2Ryb3AtZmlsdGVyID0gficnKSB7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBAc2VhcmNoLWxhcmdlLWJhY2tkcm9wLWZpbHRlcjtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogQHNlYXJjaC1sYXJnZS1iYWNrZHJvcC1maWx0ZXI7XG59XG5cbi5ob29rLXNlYXJjaC1sYXJnZS1pbnB1dC1mb2N1cygpIHdoZW4gbm90IChAc2VhcmNoLWxhcmdlLWZvY3VzLWJhY2tncm91bmQgPSBAc2VhcmNoLWxhcmdlLWJhY2tncm91bmQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAc2VhcmNoLWxhcmdlLWZvY3VzLWJhY2tncm91bmQ7XG59XG5cblxuLy8gVG9nZ2xlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stc2VhcmNoLXRvZ2dsZSgpIHt9XG5cbi5ob29rLXNlYXJjaC10b2dnbGUtaG92ZXIoKSB7fVxuXG5cbi8vIE1pc2NlbGxhbmVvdXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1zZWFyY2gtbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbnZlcnNlLXNlYXJjaC1uYXZiYXItZm9jdXMtYmFja2dyb3VuZDogICAgICAgICAgICBAaW52ZXJzZS1zZWFyY2gtbmF2YmFyLWJhY2tncm91bmQ7XG5cbkBpbnZlcnNlLXNlYXJjaC1sYXJnZS1mb2N1cy1iYWNrZ3JvdW5kOiAgICAgICAgICAgICBAaW52ZXJzZS1zZWFyY2gtbGFyZ2UtYmFja2dyb3VuZDtcblxuLmhvb2staW52ZXJzZS1zZWFyY2gtZGVmYXVsdC1pbnB1dCgpIHt9XG4uaG9vay1pbnZlcnNlLXNlYXJjaC1kZWZhdWx0LWlucHV0LWZvY3VzKCkge31cblxuLmhvb2staW52ZXJzZS1zZWFyY2gtbmF2YmFyLWlucHV0KCkge31cbi5ob29rLWludmVyc2Utc2VhcmNoLW5hdmJhci1pbnB1dC1mb2N1cygpIHdoZW4gbm90IChAaW52ZXJzZS1zZWFyY2gtbmF2YmFyLWZvY3VzLWJhY2tncm91bmQgPSBAaW52ZXJzZS1zZWFyY2gtbmF2YmFyLWJhY2tncm91bmQpIHtcbiAgICBiYWNrZ3JvdW5kOiBAaW52ZXJzZS1zZWFyY2gtbmF2YmFyLWZvY3VzLWJhY2tncm91bmQ7XG59XG5cbi5ob29rLWludmVyc2Utc2VhcmNoLWxhcmdlLWlucHV0KCkge31cbi5ob29rLWludmVyc2Utc2VhcmNoLWxhcmdlLWlucHV0LWZvY3VzKCkgd2hlbiBub3QgKEBpbnZlcnNlLXNlYXJjaC1sYXJnZS1mb2N1cy1iYWNrZ3JvdW5kID0gQGludmVyc2Utc2VhcmNoLWxhcmdlLWJhY2tncm91bmQpIHtcbiAgICBiYWNrZ3JvdW5kOiBAaW52ZXJzZS1zZWFyY2gtbGFyZ2UtZm9jdXMtYmFja2dyb3VuZDtcbn1cblxuLmhvb2staW52ZXJzZS1zZWFyY2gtdG9nZ2xlKCkge31cbi5ob29rLWludmVyc2Utc2VhcmNoLXRvZ2dsZS1ob3ZlcigpIHt9IiwiLy8gTmFtZTogICAgICAgICAgICBBY2NvcmRpb25cbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBhY2NvcmRpb25zXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstYWNjb3JkaW9uYFxuLy9cbi8vIFN1Yi1vYmplY3RzOiAgICAgYHVrLWFjY29yZGlvbi10aXRsZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWFjY29yZGlvbi1jb250ZW50YFxuLy9cbi8vIFN0YXRlczogICAgICAgICAgYHVrLW9wZW5gXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGFjY29yZGlvbi1pdGVtLW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW1hcmdpbjtcblxuQGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW1lZGl1bS1mb250LXNpemU7XG5AYWNjb3JkaW9uLXRpdGxlLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgIDEuNDtcbkBhY2NvcmRpb24tdGl0bGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcbkBhY2NvcmRpb24tdGl0bGUtaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgQGdsb2JhbC1jb2xvcjtcblxuQGFjY29yZGlvbi1jb250ZW50LW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgICBAZ2xvYmFsLW1hcmdpbjtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogQWNjb3JkaW9uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWFjY29yZGlvbiB7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIC5ob29rLWFjY29yZGlvbigpO1xufVxuXG5cbi8qIEl0ZW1cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstYWNjb3JkaW9uID4gOm50aC1jaGlsZChuKzIpIHtcbiAgICBtYXJnaW4tdG9wOiBAYWNjb3JkaW9uLWl0ZW0tbWFyZ2luLXRvcDtcbiAgICAuaG9vay1hY2NvcmRpb24taXRlbSgpO1xufVxuXG5cbi8qIFRpdGxlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWFjY29yZGlvbi10aXRsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiBAYWNjb3JkaW9uLXRpdGxlLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogQGFjY29yZGlvbi10aXRsZS1saW5lLWhlaWdodDtcbiAgICBjb2xvcjogQGFjY29yZGlvbi10aXRsZS1jb2xvcjtcbiAgICAuaG9vay1hY2NvcmRpb24tdGl0bGUoKTtcbn1cblxuLyogSG92ZXIgKi9cbi51ay1hY2NvcmRpb24tdGl0bGU6aG92ZXIge1xuICAgIGNvbG9yOiBAYWNjb3JkaW9uLXRpdGxlLWhvdmVyLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAuaG9vay1hY2NvcmRpb24tdGl0bGUtaG92ZXIoKTtcbn1cblxuXG4vKiBDb250ZW50XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWFjY29yZGlvbi1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbG93LXJvb3Q7XG4gICAgbWFyZ2luLXRvcDogQGFjY29yZGlvbi1jb250ZW50LW1hcmdpbi10b3A7XG4gICAgLmhvb2stYWNjb3JkaW9uLWNvbnRlbnQoKTtcbn1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG5cbiAudWstYWNjb3JkaW9uLWNvbnRlbnQgPiA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWFjY29yZGlvbi1taXNjKCk7XG5cbi5ob29rLWFjY29yZGlvbigpIHt9XG4uaG9vay1hY2NvcmRpb24taXRlbSgpIHt9XG4uaG9vay1hY2NvcmRpb24tdGl0bGUoKSB7fVxuLmhvb2stYWNjb3JkaW9uLXRpdGxlLWhvdmVyKCkge31cbi5ob29rLWFjY29yZGlvbi1jb250ZW50KCkge31cbi5ob29rLWFjY29yZGlvbi1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGludmVyc2UtYWNjb3JkaW9uLXRpdGxlLWNvbG9yOiAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AaW52ZXJzZS1hY2NvcmRpb24tdGl0bGUtaG92ZXItY29sb3I6ICAgICAgIEBpbnZlcnNlLWdsb2JhbC1jb2xvcjtcblxuLmhvb2staW52ZXJzZSgpIHtcblxuICAgIC51ay1hY2NvcmRpb24gPiA6bnRoLWNoaWxkKG4rMikge1xuICAgICAgICAuaG9vay1pbnZlcnNlLWFjY29yZGlvbi1pdGVtKCk7XG4gICAgfVxuXG4gICAgLnVrLWFjY29yZGlvbi10aXRsZSB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1hY2NvcmRpb24tdGl0bGUtY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtYWNjb3JkaW9uLXRpdGxlKCk7XG4gICAgfVxuXG4gICAgLnVrLWFjY29yZGlvbi10aXRsZTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1hY2NvcmRpb24tdGl0bGUtaG92ZXItY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtYWNjb3JkaW9uLXRpdGxlLWhvdmVyKCk7XG4gICAgfVxuXG59XG5cbi5ob29rLWludmVyc2UtYWNjb3JkaW9uLWl0ZW0oKSB7fVxuLmhvb2staW52ZXJzZS1hY2NvcmRpb24tdGl0bGUoKSB7fVxuLmhvb2staW52ZXJzZS1hY2NvcmRpb24tdGl0bGUtaG92ZXIoKSB7fVxuIiwiLy9cbi8vIENvbXBvbmVudDogQWNjb3JkaW9uXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIE5ld1xuLy9cblxuQGFjY29yZGlvbi1pdGVtLXBhZGRpbmctdG9wOiAgICAgICAgICAgICAgICAgICAwO1xuQGFjY29yZGlvbi1pdGVtLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAwO1xuQGFjY29yZGlvbi1pdGVtLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcblxuXG4vLyBDb21wb25lbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1hY2NvcmRpb24oKSB7fVxuXG5cbi8vIEl0ZW1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1hY2NvcmRpb24taXRlbSgpIHdoZW4gbm90IChAYWNjb3JkaW9uLWl0ZW0tYm9yZGVyLXdpZHRoID0gMCkge1xuICAgIHBhZGRpbmctdG9wOiBAYWNjb3JkaW9uLWl0ZW0tcGFkZGluZy10b3A7XG4gICAgYm9yZGVyLXRvcDogQGFjY29yZGlvbi1pdGVtLWJvcmRlci13aWR0aCBzb2xpZCBAYWNjb3JkaW9uLWl0ZW0tYm9yZGVyO1xuIH1cblxuXG4vLyBUaXRsZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWFjY29yZGlvbi10aXRsZSgpIHt9XG5cbi5ob29rLWFjY29yZGlvbi10aXRsZS1ob3ZlcigpIHt9XG5cblxuLy8gQ29udGVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWFjY29yZGlvbi1jb250ZW50KCkge31cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYWNjb3JkaW9uLW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW52ZXJzZS1hY2NvcmRpb24taXRlbS1ib3JkZXI6ICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1ib3JkZXI7XG5cbi5ob29rLWludmVyc2UtYWNjb3JkaW9uLWl0ZW0oKSB3aGVuIG5vdCAoQGFjY29yZGlvbi1pdGVtLWJvcmRlci13aWR0aCA9IDApIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBAaW52ZXJzZS1hY2NvcmRpb24taXRlbS1ib3JkZXI7XG59XG5cbi5ob29rLWludmVyc2UtYWNjb3JkaW9uLXRpdGxlKCkge31cbi5ob29rLWludmVyc2UtYWNjb3JkaW9uLXRpdGxlLWhvdmVyKCkge31cbiIsIi8vXG4vLyBDb21wb25lbnQ6IEFjY29yZGlvblxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBhY2NvcmRpb24tdGl0bGUtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgMDtcbkBhY2NvcmRpb24tdGl0bGUtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgMDtcbkBhY2NvcmRpb24tdGl0bGUtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5cbkBhY2NvcmRpb24taWNvbi1tYXJnaW4tbGVmdDogICAgICAgICAgICAgICAgICAgMTBweDtcbkBhY2NvcmRpb24taWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1jb2xvcjtcblxuQGludGVybmFsLWFjY29yZGlvbi1pY29uLWNsb3NlLWltYWdlOiAgICAgICAgICBcIi4uLy4uL2ltYWdlcy9iYWNrZ3JvdW5kcy9hY2NvcmRpb24tY2xvc2Uuc3ZnXCI7XG5AaW50ZXJuYWwtYWNjb3JkaW9uLWljb24tb3Blbi1pbWFnZTogICAgICAgICAgIFwiLi4vLi4vaW1hZ2VzL2JhY2tncm91bmRzL2FjY29yZGlvbi1vcGVuLnN2Z1wiO1xuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWFjY29yZGlvbigpIHt9XG5cblxuLy8gSXRlbVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWFjY29yZGlvbi1pdGVtKCkge31cblxuXG4vLyBUaXRsZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWFjY29yZGlvbi10aXRsZSgpIHtcbiAgICBwYWRkaW5nOiBAYWNjb3JkaW9uLXRpdGxlLXBhZGRpbmctdmVydGljYWwgQGFjY29yZGlvbi10aXRsZS1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgYmFja2dyb3VuZDogQGFjY29yZGlvbi10aXRsZS1iYWNrZ3JvdW5kO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB3aWR0aDogKEBhY2NvcmRpb24tdGl0bGUtbGluZS1oZWlnaHQgKiAxZW0pO1xuICAgICAgICBoZWlnaHQ6IChAYWNjb3JkaW9uLXRpdGxlLWxpbmUtaGVpZ2h0ICogMWVtKTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IEBhY2NvcmRpb24taWNvbi1tYXJnaW4tbGVmdDtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAuc3ZnLWZpbGwoQGludGVybmFsLWFjY29yZGlvbi1pY29uLWNsb3NlLWltYWdlLCBcIiMwMDBcIiwgQGFjY29yZGlvbi1pY29uLWNvbG9yKTtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICB9XG5cbiAgICAudWstb3BlbiA+ICY6OmJlZm9yZSB7IC5zdmctZmlsbChAaW50ZXJuYWwtYWNjb3JkaW9uLWljb24tb3Blbi1pbWFnZSwgXCIjMDAwXCIsIEBhY2NvcmRpb24taWNvbi1jb2xvcik7IH1cblxufVxuXG4uaG9vay1hY2NvcmRpb24tdGl0bGUoKSB3aGVuIG5vdCAoQGJhc2UtbGluay10ZXh0LWRlY29yYXRpb24gPSBub25lKSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uaG9vay1hY2NvcmRpb24tdGl0bGUtaG92ZXIoKSB7fVxuXG5cbi8vIENvbnRlbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1hY2NvcmRpb24tY29udGVudCgpIHt9XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWFjY29yZGlvbi1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGludmVyc2UtYWNjb3JkaW9uLXRpdGxlLWJhY2tncm91bmQ6ICAgICAgICAgICB0cmFuc3BhcmVudDtcbkBpbnZlcnNlLWFjY29yZGlvbi1pY29uLWNvbG9yOiAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWNvbG9yO1xuXG4uaG9vay1pbnZlcnNlLWFjY29yZGlvbi1pdGVtKCkge31cblxuLmhvb2staW52ZXJzZS1hY2NvcmRpb24tdGl0bGUoKSB7IGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLWFjY29yZGlvbi10aXRsZS1iYWNrZ3JvdW5kOyB9XG4uaG9vay1pbnZlcnNlLWFjY29yZGlvbi10aXRsZS1ob3ZlcigpIHt9XG5cbi5ob29rLWludmVyc2UoKSB7XG5cbiAgICAudWstYWNjb3JkaW9uLXRpdGxlOjpiZWZvcmUgeyAuc3ZnLWZpbGwoQGludGVybmFsLWFjY29yZGlvbi1pY29uLWNsb3NlLWltYWdlLCBcIiMwMDBcIiwgQGludmVyc2UtYWNjb3JkaW9uLWljb24tY29sb3IpOyB9XG5cbiAgICAudWstb3BlbiA+IC51ay1hY2NvcmRpb24tdGl0bGU6OmJlZm9yZSB7IC5zdmctZmlsbChAaW50ZXJuYWwtYWNjb3JkaW9uLWljb24tb3Blbi1pbWFnZSwgXCIjMDAwXCIsIEBpbnZlcnNlLWFjY29yZGlvbi1pY29uLWNvbG9yKTsgfVxuXG59XG4iLCIvL1xuLy8gQ29tcG9uZW50OiBBY2NvcmRpb25cbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gTmV3XG4vL1xuXG5AYWNjb3JkaW9uLXRpdGxlLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktZm9udC1mYW1pbHk7XG5AYWNjb3JkaW9uLXRpdGxlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktZm9udC13ZWlnaHQ7XG5AYWNjb3JkaW9uLXRpdGxlLXRleHQtdHJhbnNmb3JtOiAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktdGV4dC10cmFuc2Zvcm07XG5AYWNjb3JkaW9uLXRpdGxlLWxldHRlci1zcGFjaW5nOiAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktbGV0dGVyLXNwYWNpbmc7XG5AYWNjb3JkaW9uLXRpdGxlLWZvbnQtc3R5bGU6ICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktZm9udC1zdHlsZTtcblxuXG4vLyBDb21wb25lbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1hY2NvcmRpb24oKSB7fVxuXG5cbi8vIEl0ZW1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1hY2NvcmRpb24taXRlbSgpIHt9XG5cblxuLy8gVGl0bGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1hY2NvcmRpb24tdGl0bGUoKSB3aGVuIG5vdCAoQGFjY29yZGlvbi10aXRsZS1mb250LWZhbWlseSA9IGluaGVyaXQpIHtcbiAgICBmb250LWZhbWlseTogQGFjY29yZGlvbi10aXRsZS1mb250LWZhbWlseTtcbn1cblxuLmhvb2stYWNjb3JkaW9uLXRpdGxlKCkgd2hlbiBub3QgKEBhY2NvcmRpb24tdGl0bGUtZm9udC13ZWlnaHQgPSBpbmhlcml0KSB7XG4gICAgZm9udC13ZWlnaHQ6IEBhY2NvcmRpb24tdGl0bGUtZm9udC13ZWlnaHQ7XG59XG5cbi5ob29rLWFjY29yZGlvbi10aXRsZSgpIHdoZW4gbm90IChAYWNjb3JkaW9uLXRpdGxlLXRleHQtdHJhbnNmb3JtID0gaW5oZXJpdCkge1xuICAgIHRleHQtdHJhbnNmb3JtOiBAYWNjb3JkaW9uLXRpdGxlLXRleHQtdHJhbnNmb3JtO1xufVxuXG4uaG9vay1hY2NvcmRpb24tdGl0bGUoKSB3aGVuIG5vdCAoQGFjY29yZGlvbi10aXRsZS1sZXR0ZXItc3BhY2luZyA9IGluaGVyaXQpIHtcbiAgICBsZXR0ZXItc3BhY2luZzogQGFjY29yZGlvbi10aXRsZS1sZXR0ZXItc3BhY2luZztcbn1cblxuLmhvb2stYWNjb3JkaW9uLXRpdGxlKCkgd2hlbiBub3QgKEBhY2NvcmRpb24tdGl0bGUtZm9udC1zdHlsZSA9IGluaGVyaXQpIHtcbiAgICBmb250LXN0eWxlOiBAYWNjb3JkaW9uLXRpdGxlLWZvbnQtc3R5bGU7XG59XG5cbi5ob29rLWFjY29yZGlvbi10aXRsZS1ob3ZlcigpIHt9XG5cblxuLy8gQ29udGVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWFjY29yZGlvbi1jb250ZW50KCkge31cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYWNjb3JkaW9uLW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1pbnZlcnNlLWFjY29yZGlvbi1pdGVtKCkge31cblxuLmhvb2staW52ZXJzZS1hY2NvcmRpb24tdGl0bGUoKSB7fVxuLmhvb2staW52ZXJzZS1hY2NvcmRpb24tdGl0bGUtaG92ZXIoKSB7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBEcm9wXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBwb3NpdGlvbiBhbnkgZWxlbWVudCBuZXh0IHRvIGFueSBvdGhlciBlbGVtZW50LlxuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWRyb3BgXG4vL1xuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstZHJvcC1zdGFja2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLWRyb3AtZ3JpZGBcbi8vXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1vcGVuYFxuLy9cbi8vIFVzZXM6ICAgICAgICAgICAgQW5pbWF0aW9uXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGRyb3Atei1pbmRleDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXotaW5kZXggKyAyMDtcbkBkcm9wLW1hcmdpbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tYXJnaW47XG5AZHJvcC12aWV3cG9ydC1tYXJnaW46ICAgICAgICAgICAgICAgICAgICAgIDE1cHg7XG5AZHJvcC13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwMHB4O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBEcm9wXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIEhpZGUgYnkgZGVmYXVsdFxuICogMi4gU2V0IHBvc2l0aW9uXG4gKiAzLiBTZXQgYSBkZWZhdWx0IHdpZHRoXG4gKi9cblxuLnVrLWRyb3Age1xuICAgIC8qIDEgKi9cbiAgICBkaXNwbGF5OiBub25lO1xuICAgIC8qIDIgKi9cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogQGRyb3Atei1pbmRleDtcbiAgICAtLXVrLXBvc2l0aW9uLW9mZnNldDogQGRyb3AtbWFyZ2luO1xuICAgIC0tdWstcG9zaXRpb24tdmlld3BvcnQtb2Zmc2V0OiBAZHJvcC12aWV3cG9ydC1tYXJnaW47XG4gICAgLyogMyAqL1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IEBkcm9wLXdpZHRoO1xufVxuXG4vKiBTaG93ICovXG4udWstZHJvcC51ay1vcGVuIHsgZGlzcGxheTogYmxvY2s7IH1cblxuXG4vKiBHcmlkIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1kcm9wLXN0YWNrIC51ay1kcm9wLWdyaWQgPiAqIHsgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stZHJvcC1taXNjKCk7XG5cbi5ob29rLWRyb3AtbWlzYygpIHt9XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIERyb3Bkb3duXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgZHJvcGRvd24gbWVudXNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1kcm9wZG93bmBcbi8vXG4vLyBBZG9wdGVkOiAgICAgICAgIGB1ay1kcm9wZG93bi1uYXZgXG4vL1xuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstZHJvcGRvd24tbGFyZ2VgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1kcm9wZG93bi1zdGFja2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLWRyb3Bkb3duLWdyaWRgXG4vL1xuLy8gU3RhdGVzOiAgICAgICAgICBgdWstYWN0aXZlYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBkcm9wZG93bi16LWluZGV4OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtei1pbmRleCArIDIwO1xuQGRyb3Bkb3duLW1hcmdpbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zbWFsbC1tYXJnaW47XG5AZHJvcGRvd24tdmlld3BvcnQtbWFyZ2luOiAgICAgICAgICAgICAgICAgICAgICAxNXB4O1xuQGRyb3Bkb3duLW1pbi13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAwcHg7XG5AZHJvcGRvd24tcGFkZGluZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNXB4O1xuQGRyb3Bkb3duLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kO1xuQGRyb3Bkb3duLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1jb2xvcjtcbkBkcm9wZG93bi1jb2xvci1tb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbmU7XG5cbkBkcm9wZG93bi1sYXJnZS1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAgIDQwcHg7XG5cbkBkcm9wZG93bi1uYXYtaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtY29sb3I7XG5AZHJvcGRvd24tbmF2LWl0ZW0taG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICBAZ2xvYmFsLWNvbG9yO1xuQGRyb3Bkb3duLW5hdi1zdWJ0aXRsZS1mb250LXNpemU6ICAgICAgICAgICAgICAgQGdsb2JhbC1zbWFsbC1mb250LXNpemU7XG5AZHJvcGRvd24tbmF2LWhlYWRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQGRyb3Bkb3duLW5hdi1kaXZpZGVyLWJvcmRlci13aWR0aDogICAgICAgICAgICAgQGdsb2JhbC1ib3JkZXItd2lkdGg7XG5AZHJvcGRvd24tbmF2LWRpdmlkZXItYm9yZGVyOiAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWJvcmRlcjtcbkBkcm9wZG93bi1uYXYtc3VibGlzdC1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtY29sb3I7XG5AZHJvcGRvd24tbmF2LXN1Ymxpc3QtaXRlbS1ob3Zlci1jb2xvcjogICAgICAgICBAZ2xvYmFsLWNvbG9yO1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBEcm9wZG93blxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBIaWRlIGJ5IGRlZmF1bHRcbiAqIDIuIFNldCBwb3NpdGlvblxuICogMy4gU2V0IGEgZGVmYXVsdCB3aWR0aFxuICogNC4gU3R5bGVcbiAqL1xuXG4udWstZHJvcGRvd24ge1xuICAgIC8qIDEgKi9cbiAgICBkaXNwbGF5OiBub25lO1xuICAgIC8qIDIgKi9cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogQGRyb3Bkb3duLXotaW5kZXg7XG4gICAgLS11ay1wb3NpdGlvbi1vZmZzZXQ6IEBkcm9wZG93bi1tYXJnaW47XG4gICAgLS11ay1wb3NpdGlvbi12aWV3cG9ydC1vZmZzZXQ6IEBkcm9wZG93bi12aWV3cG9ydC1tYXJnaW47XG4gICAgLyogMyAqL1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWluLXdpZHRoOiBAZHJvcGRvd24tbWluLXdpZHRoO1xuICAgIC8qIDQgKi9cbiAgICBwYWRkaW5nOiBAZHJvcGRvd24tcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiBAZHJvcGRvd24tYmFja2dyb3VuZDtcbiAgICBjb2xvcjogQGRyb3Bkb3duLWNvbG9yO1xuICAgIC5ob29rLWRyb3Bkb3duKCk7XG59XG5cbi8qIFNob3cgKi9cbi51ay1kcm9wZG93bi51ay1vcGVuIHsgZGlzcGxheTogYmxvY2s7IH1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG5cbi51ay1kcm9wZG93biA+IDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vLyBDb2xvciBNb2RlXG4udWstZHJvcGRvd246ZXh0ZW5kKC51ay1saWdodCBhbGwpIHdoZW4gKEBkcm9wZG93bi1jb2xvci1tb2RlID0gbGlnaHQpIHt9XG4udWstZHJvcGRvd246ZXh0ZW5kKC51ay1kYXJrIGFsbCkgd2hlbiAoQGRyb3Bkb3duLWNvbG9yLW1vZGUgPSBkYXJrKSB7fVxuXG5cbi8qIFNpemUgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstZHJvcGRvd24tbGFyZ2UgeyBwYWRkaW5nOiBAZHJvcGRvd24tbGFyZ2UtcGFkZGluZzsgfVxuXG5cbi8qIE5hdlxuICogQWRvcHRzIGB1ay1uYXZgXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWRyb3Bkb3duLW5hdiB7XG4gICAgLmhvb2stZHJvcGRvd24tbmF2KCk7XG59XG5cbi8qXG4gKiBJdGVtc1xuICovXG5cbi51ay1kcm9wZG93bi1uYXYgPiBsaSA+IGEge1xuICAgIGNvbG9yOiBAZHJvcGRvd24tbmF2LWl0ZW0tY29sb3I7XG4gICAgLmhvb2stZHJvcGRvd24tbmF2LWl0ZW0oKTtcbn1cblxuLyogSG92ZXIgKyBBY3RpdmUgKi9cbi51ay1kcm9wZG93bi1uYXYgPiBsaSA+IGE6aG92ZXIsXG4udWstZHJvcGRvd24tbmF2ID4gbGkudWstYWN0aXZlID4gYSB7XG4gICAgY29sb3I6IEBkcm9wZG93bi1uYXYtaXRlbS1ob3Zlci1jb2xvcjtcbiAgICAuaG9vay1kcm9wZG93bi1uYXYtaXRlbS1ob3ZlcigpO1xufVxuXG4vKlxuICogU3VidGl0bGVcbiAqL1xuXG4udWstZHJvcGRvd24tbmF2IC51ay1uYXYtc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogQGRyb3Bkb3duLW5hdi1zdWJ0aXRsZS1mb250LXNpemU7XG4gICAgLmhvb2stZHJvcGRvd24tbmF2LXN1YnRpdGxlKCk7XG59XG5cbi8qXG4gKiBIZWFkZXJcbiAqL1xuXG4udWstZHJvcGRvd24tbmF2IC51ay1uYXYtaGVhZGVyIHtcbiAgICBjb2xvcjogQGRyb3Bkb3duLW5hdi1oZWFkZXItY29sb3I7XG4gICAgLmhvb2stZHJvcGRvd24tbmF2LWhlYWRlcigpO1xufVxuXG4vKlxuICogRGl2aWRlclxuICovXG5cbi51ay1kcm9wZG93bi1uYXYgLnVrLW5hdi1kaXZpZGVyIHtcbiAgICBib3JkZXItdG9wOiBAZHJvcGRvd24tbmF2LWRpdmlkZXItYm9yZGVyLXdpZHRoIHNvbGlkIEBkcm9wZG93bi1uYXYtZGl2aWRlci1ib3JkZXI7XG4gICAgLmhvb2stZHJvcGRvd24tbmF2LWRpdmlkZXIoKTtcbn1cblxuLypcbiAqIFN1Ymxpc3RzXG4gKi9cblxuLnVrLWRyb3Bkb3duLW5hdiAudWstbmF2LXN1YiBhIHsgY29sb3I6IEBkcm9wZG93bi1uYXYtc3VibGlzdC1pdGVtLWNvbG9yOyB9XG5cbi51ay1kcm9wZG93bi1uYXYgLnVrLW5hdi1zdWIgYTpob3Zlcixcbi51ay1kcm9wZG93bi1uYXYgLnVrLW5hdi1zdWIgbGkudWstYWN0aXZlID4gYSB7IGNvbG9yOiBAZHJvcGRvd24tbmF2LXN1Ymxpc3QtaXRlbS1ob3Zlci1jb2xvcjsgfVxuXG5cbi8qIEdyaWQgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWRyb3Bkb3duLXN0YWNrIC51ay1kcm9wZG93bi1ncmlkID4gKiB7IHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stZHJvcGRvd24tbWlzYygpO1xuXG4uaG9vay1kcm9wZG93bigpIHt9XG4uaG9vay1kcm9wZG93bi1uYXYoKSB7fVxuLmhvb2stZHJvcGRvd24tbmF2LWl0ZW0oKSB7fVxuLmhvb2stZHJvcGRvd24tbmF2LWl0ZW0taG92ZXIoKSB7fVxuLmhvb2stZHJvcGRvd24tbmF2LXN1YnRpdGxlKCkge31cbi5ob29rLWRyb3Bkb3duLW5hdi1oZWFkZXIoKSB7fVxuLmhvb2stZHJvcGRvd24tbmF2LWRpdmlkZXIoKSB7fVxuLmhvb2stZHJvcGRvd24tbWlzYygpIHt9XG4iLCIvL1xuLy8gQ29tcG9uZW50OiBEcm9wZG93blxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBkcm9wZG93bi1ib3gtc2hhZG93OiAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbmU7XG5cbkBkcm9wZG93bi1uYXYtZGl2aWRlci1ib3gtc2hhZG93OiAgICAgICAgICAgICAgIG5vbmU7XG5cblxuLy8gQ29tcG9uZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stZHJvcGRvd24oKSB3aGVuIG5vdCAoQGRyb3Bkb3duLWJveC1zaGFkb3cgPSBub25lKSB7XG4gICAgYm94LXNoYWRvdzogQGRyb3Bkb3duLWJveC1zaGFkb3c7XG59XG5cblxuLy8gTmF2XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stZHJvcGRvd24tbmF2KCkge31cblxuLmhvb2stZHJvcGRvd24tbmF2LWl0ZW0oKSB7fVxuXG4uaG9vay1kcm9wZG93bi1uYXYtaXRlbS1ob3ZlcigpIHt9XG5cbi5ob29rLWRyb3Bkb3duLW5hdi1oZWFkZXIoKSB7fVxuXG4uaG9vay1kcm9wZG93bi1uYXYtZGl2aWRlcigpIHdoZW4gbm90IChAZHJvcGRvd24tbmF2LWRpdmlkZXItYm94LXNoYWRvdyA9IG5vbmUpIHtcbiAgICBib3gtc2hhZG93OiBAZHJvcGRvd24tbmF2LWRpdmlkZXItYm94LXNoYWRvdztcbn1cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stZHJvcGRvd24tbWlzYygpIHt9IiwiLy9cbi8vIENvbXBvbmVudDogRHJvcGRvd25cbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gTmV3XG4vL1xuXG5AZHJvcGRvd24tYmFja2Ryb3AtZmlsdGVyOiAgICAgICAgICAgICAgICAgICAgICB+Jyc7XG5cbkBkcm9wZG93bi1uYXYtbWFyZ2luLWhvcml6b250YWw6ICAgICAgICAgICAgICAgIDA7XG5cbkBkcm9wZG93bi1uYXYtaXRlbS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgIEBuYXYtaXRlbS1wYWRkaW5nLXZlcnRpY2FsO1xuQGRyb3Bkb3duLW5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgQG5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDtcblxuQGRyb3Bkb3duLW5hdi1pdGVtLWhvdmVyLWJhY2tncm91bmQ6ICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5cbkBkcm9wZG93bi1uYXYtc3VibGlzdC1wYWRkaW5nLWxlZnQ6ICAgICAgICAgICAgIChAZHJvcGRvd24tbmF2LWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsICsgQG5hdi1zdWJsaXN0LWRlZXBlci1wYWRkaW5nLWxlZnQpO1xuXG5AZHJvcGRvd24tbmF2LWRpdmlkZXItbWFyZ2luLWhvcml6b250YWw6ICAgICAgICAwO1xuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWRyb3Bkb3duKCkgd2hlbiBub3QgKEBkcm9wZG93bi1iYWNrZHJvcC1maWx0ZXIgPSB+JycpIHtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IEBkcm9wZG93bi1iYWNrZHJvcC1maWx0ZXI7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IEBkcm9wZG93bi1iYWNrZHJvcC1maWx0ZXI7XG59XG5cbi8vIE5hdlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWRyb3Bkb3duLW5hdigpIHtcbiAgICBtYXJnaW4tbGVmdDogQGRyb3Bkb3duLW5hdi1tYXJnaW4taG9yaXpvbnRhbDtcbiAgICBtYXJnaW4tcmlnaHQ6IEBkcm9wZG93bi1uYXYtbWFyZ2luLWhvcml6b250YWw7XG59XG5cbi5ob29rLWRyb3Bkb3duLW5hdi1pdGVtKCkgeyBwYWRkaW5nOiBAZHJvcGRvd24tbmF2LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbCBAZHJvcGRvd24tbmF2LWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsOyB9XG5cbi5ob29rLWRyb3Bkb3duLW5hdi1pdGVtLWhvdmVyKCkgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAZHJvcGRvd24tbmF2LWl0ZW0taG92ZXItYmFja2dyb3VuZDsgfVxuXG4uaG9vay1kcm9wZG93bi1uYXYtaGVhZGVyKCkgeyBwYWRkaW5nOiBAZHJvcGRvd24tbmF2LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbCBAZHJvcGRvd24tbmF2LWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsOyB9XG5cbi5ob29rLWRyb3Bkb3duLW5hdi1kaXZpZGVyKCkge1xuICAgIG1hcmdpbi1sZWZ0OiBAZHJvcGRvd24tbmF2LWRpdmlkZXItbWFyZ2luLWhvcml6b250YWw7XG4gICAgbWFyZ2luLXJpZ2h0OiBAZHJvcGRvd24tbmF2LWRpdmlkZXItbWFyZ2luLWhvcml6b250YWw7XG59XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWRyb3Bkb3duLW1pc2MoKSB7XG5cbiAgICAudWstZHJvcGRvd24tbmF2IC51ay1uYXYtc3ViIHsgcGFkZGluZy1sZWZ0OiBAZHJvcGRvd24tbmF2LXN1Ymxpc3QtcGFkZGluZy1sZWZ0OyB9XG5cbn0iLCIvL1xuLy8gQ29tcG9uZW50OiBEcm9wZG93blxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBkcm9wZG93bi1uYXYtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZm9udC1zaXplO1xuQGRyb3Bkb3duLW5hdi1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktZm9udC1mYW1pbHk7XG5AZHJvcGRvd24tbmF2LWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1mb250LXdlaWdodDtcbkBkcm9wZG93bi1uYXYtdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LXRleHQtdHJhbnNmb3JtO1xuQGRyb3Bkb3duLW5hdi1sZXR0ZXItc3BhY2luZzogICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktbGV0dGVyLXNwYWNpbmc7XG5AZHJvcGRvd24tbmF2LWZvbnQtc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1mb250LXN0eWxlO1xuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWRyb3Bkb3duKCkge31cblxuXG4vLyBOYXZcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1kcm9wZG93bi1uYXYoKSB7IGZvbnQtc2l6ZTogQGRyb3Bkb3duLW5hdi1mb250LXNpemU7IH1cblxuLmhvb2stZHJvcGRvd24tbmF2KCkgd2hlbiBub3QgKEBkcm9wZG93bi1uYXYtZm9udC1mYW1pbHkgPSBpbmhlcml0KSB7XG4gICAgZm9udC1mYW1pbHk6IEBkcm9wZG93bi1uYXYtZm9udC1mYW1pbHk7XG59XG5cbi5ob29rLWRyb3Bkb3duLW5hdigpIHdoZW4gbm90IChAZHJvcGRvd24tbmF2LWZvbnQtd2VpZ2h0ID0gaW5oZXJpdCkge1xuICAgIGZvbnQtd2VpZ2h0OiBAZHJvcGRvd24tbmF2LWZvbnQtd2VpZ2h0O1xufVxuXG4uaG9vay1kcm9wZG93bi1uYXYoKSB3aGVuIG5vdCAoQGRyb3Bkb3duLW5hdi10ZXh0LXRyYW5zZm9ybSA9IGluaGVyaXQpIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogQGRyb3Bkb3duLW5hdi10ZXh0LXRyYW5zZm9ybTtcbn1cblxuLmhvb2stZHJvcGRvd24tbmF2KCkgd2hlbiBub3QgKEBkcm9wZG93bi1uYXYtbGV0dGVyLXNwYWNpbmcgPSBpbmhlcml0KSB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IEBkcm9wZG93bi1uYXYtbGV0dGVyLXNwYWNpbmc7XG59XG5cbi5ob29rLWRyb3Bkb3duLW5hdigpIHdoZW4gbm90IChAZHJvcGRvd24tbmF2LWZvbnQtc3R5bGUgPSBpbmhlcml0KSB7XG4gICAgZm9udC1zdHlsZTogQGRyb3Bkb3duLW5hdi1mb250LXN0eWxlO1xufVxuXG4uaG9vay1kcm9wZG93bi1uYXYtaXRlbSgpIHt9XG5cbi5ob29rLWRyb3Bkb3duLW5hdi1pdGVtLWhvdmVyKCkge31cblxuLmhvb2stZHJvcGRvd24tbmF2LWhlYWRlcigpIHt9XG5cbi5ob29rLWRyb3Bkb3duLW5hdi1kaXZpZGVyKCkge31cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stZHJvcGRvd24tbWlzYygpIHt9IiwiLy8gTmFtZTogICAgICAgICAgICBEcm9wYmFyXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgZHJvcGJhciBtZW51c1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWRyb3BiYXJgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGRyb3BiYXItbWFyZ2luOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMDtcbkBkcm9wYmFyLXotaW5kZXg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtei1pbmRleCArIDIwO1xuQGRyb3BiYXItcGFkZGluZy10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTVweDtcbkBkcm9wYmFyLXBhZGRpbmctYm90dG9tOiAgICAgICAgICAgICAgICAgICAgICAgIEBkcm9wYmFyLXBhZGRpbmctdG9wO1xuQGRyb3BiYXItcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICAgMTVweDtcbkBkcm9wYmFyLXBhZGRpbmctaG9yaXpvbnRhbC1zOiAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZ3V0dGVyO1xuQGRyb3BiYXItcGFkZGluZy1ob3Jpem9udGFsLW06ICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tZWRpdW0tZ3V0dGVyO1xuQGRyb3BiYXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kO1xuQGRyb3BiYXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1jb2xvcjtcbkBkcm9wYmFyLWNvbG9yLW1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbmU7XG5cbkBkcm9wYmFyLWxhcmdlLXBhZGRpbmctdG9wOiAgICAgICAgICAgICAgICAgICAgIDQwcHg7XG5AZHJvcGJhci1sYXJnZS1wYWRkaW5nLWJvdHRvbTogICAgICAgICAgICAgICAgICBAZHJvcGJhci1sYXJnZS1wYWRkaW5nLXRvcDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogRHJvcGJhclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBIaWRlIGJ5IGRlZmF1bHRcbiAqIDIuIFNldCBwb3NpdGlvblxuICogMy4gU3R5bGVcbiAqL1xuXG4udWstZHJvcGJhciB7XG4gICAgLS11ay1wb3NpdGlvbi1vZmZzZXQ6IEBkcm9wYmFyLW1hcmdpbjtcbiAgICAtLXVrLXBvc2l0aW9uLXNoaWZ0LW9mZnNldDogMDtcbiAgICAtLXVrLXBvc2l0aW9uLXZpZXdwb3J0LW9mZnNldDogMDtcbiAgICAvKiAxICovXG4gICAgZGlzcGxheTogbm9uZTtcbiAgICAvKiAyICovXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IEBkcm9wYmFyLXotaW5kZXg7XG4gICAgLyogMyAqL1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogQGRyb3BiYXItcGFkZGluZy10b3AgQGRyb3BiYXItcGFkZGluZy1ob3Jpem9udGFsIEBkcm9wYmFyLXBhZGRpbmctYm90dG9tIEBkcm9wYmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBiYWNrZ3JvdW5kOiBAZHJvcGJhci1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiBAZHJvcGJhci1jb2xvcjtcbiAgICAuaG9vay1kcm9wYmFyKCk7XG59XG5cbi8qIFNob3cgKi9cbi51ay1kcm9wYmFyLnVrLW9wZW4geyBkaXNwbGF5OiBibG9jazsgfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cblxuLnVrLWRyb3BiYXIgPiA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1zbWFsbCkge1xuXG4gICAgLnVrLWRyb3BiYXIge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IEBkcm9wYmFyLXBhZGRpbmctaG9yaXpvbnRhbC1zO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiBAZHJvcGJhci1wYWRkaW5nLWhvcml6b250YWwtcztcbiAgICB9XG5cbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAudWstZHJvcGJhciB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogQGRyb3BiYXItcGFkZGluZy1ob3Jpem9udGFsLW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IEBkcm9wYmFyLXBhZGRpbmctaG9yaXpvbnRhbC1tO1xuICAgIH1cblxufVxuXG4vLyBDb2xvciBNb2RlXG4udWstZHJvcGJhcjpleHRlbmQoLnVrLWxpZ2h0IGFsbCkgd2hlbiAoQGRyb3BiYXItY29sb3ItbW9kZSA9IGxpZ2h0KSB7fVxuLnVrLWRyb3BiYXI6ZXh0ZW5kKC51ay1kYXJrIGFsbCkgd2hlbiAoQGRyb3BiYXItY29sb3ItbW9kZSA9IGRhcmspIHt9XG5cbi8qIFNpemUgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstZHJvcGJhci1sYXJnZSB7XG4gICAgcGFkZGluZy10b3A6IEBkcm9wYmFyLWxhcmdlLXBhZGRpbmctdG9wO1xuICAgIHBhZGRpbmctYm90dG9tOiBAZHJvcGJhci1sYXJnZS1wYWRkaW5nLWJvdHRvbTtcbn1cblxuXG4vKiBEaXJlY3Rpb24gbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstZHJvcGJhci10b3Age1xuICAgIC5ob29rLWRyb3BiYXItdG9wKCk7XG59XG5cbi51ay1kcm9wYmFyLWJvdHRvbSB7XG4gICAgLmhvb2stZHJvcGJhci1ib3R0b20oKTtcbn1cblxuLnVrLWRyb3BiYXItbGVmdCB7XG4gICAgLmhvb2stZHJvcGJhci1sZWZ0KCk7XG59XG5cbi51ay1kcm9wYmFyLXJpZ2h0IHtcbiAgICAuaG9vay1kcm9wYmFyLXJpZ2h0KCk7XG59XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1kcm9wYmFyLW1pc2MoKTtcblxuLmhvb2stZHJvcGJhcigpIHt9XG4uaG9vay1kcm9wYmFyLXRvcCgpIHt9XG4uaG9vay1kcm9wYmFyLWJvdHRvbSgpIHt9XG4uaG9vay1kcm9wYmFyLWxlZnQoKSB7fVxuLmhvb2stZHJvcGJhci1yaWdodCgpIHt9XG4uaG9vay1kcm9wYmFyLW1pc2MoKSB7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBNb2RhbFxuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gY3JlYXRlIG1vZGFsIGRpYWxvZ3Ncbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1tb2RhbGBcbi8vXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay1tb2RhbC1wYWdlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbW9kYWwtZGlhbG9nYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbW9kYWwtaGVhZGVyYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbW9kYWwtYm9keWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW1vZGFsLWZvb3RlcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW1vZGFsLXRpdGxlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbW9kYWwtY2xvc2VgXG4vL1xuLy8gQWRvcHRlZDogICAgICAgICBgdWstbW9kYWwtY2xvc2UtZGVmYXVsdGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW1vZGFsLWNsb3NlLW91dHNpZGVgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1tb2RhbC1jbG9zZS1mdWxsYFxuLy9cbi8vIE1vZGlmaWVyczogICAgICAgYHVrLW1vZGFsLWNvbnRhaW5lcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW1vZGFsLWZ1bGxgXG4vL1xuLy8gU3RhdGVzOiAgICAgICAgICBgdWstb3BlbmBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AbW9kYWwtei1pbmRleDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXotaW5kZXggKyAxMDtcbkBtb2RhbC1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJnYmEoMCwwLDAsMC42KTtcblxuQG1vZGFsLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAgICAgMTVweDtcbkBtb2RhbC1wYWRkaW5nLWhvcml6b250YWwtczogICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZ3V0dGVyO1xuQG1vZGFsLXBhZGRpbmctaG9yaXpvbnRhbC1tOiAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tZWRpdW0tZ3V0dGVyO1xuQG1vZGFsLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAgICAgQG1vZGFsLXBhZGRpbmctaG9yaXpvbnRhbDtcbkBtb2RhbC1wYWRkaW5nLXZlcnRpY2FsLXM6ICAgICAgICAgICAgICAgICAgICAgIDUwcHg7XG5cbkBtb2RhbC1kaWFsb2ctd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYwMHB4O1xuQG1vZGFsLWRpYWxvZy1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1iYWNrZ3JvdW5kO1xuXG5AbW9kYWwtY29udGFpbmVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAxMjAwcHg7XG5cbkBtb2RhbC1ib2R5LXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgIDIwcHg7XG5AbW9kYWwtYm9keS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAyMHB4O1xuQG1vZGFsLWJvZHktcGFkZGluZy1ob3Jpem9udGFsLXM6ICAgICAgICAgICAgICAgQGdsb2JhbC1ndXR0ZXI7XG5AbW9kYWwtYm9keS1wYWRkaW5nLXZlcnRpY2FsLXM6ICAgICAgICAgICAgICAgICBAZ2xvYmFsLWd1dHRlcjtcblxuQG1vZGFsLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgMjBweDtcbkBtb2RhbC1oZWFkZXItcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgIChAbW9kYWwtaGVhZGVyLXBhZGRpbmctaG9yaXpvbnRhbCAvIDIpO1xuQG1vZGFsLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWwtczogICAgICAgICAgICAgQGdsb2JhbC1ndXR0ZXI7XG5AbW9kYWwtaGVhZGVyLXBhZGRpbmctdmVydGljYWwtczogICAgICAgICAgICAgICAoQG1vZGFsLWhlYWRlci1wYWRkaW5nLWhvcml6b250YWwtcyAvIDIpO1xuQG1vZGFsLWhlYWRlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kO1xuXG5AbW9kYWwtZm9vdGVyLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAyMHB4O1xuQG1vZGFsLWZvb3Rlci1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgKEBtb2RhbC1mb290ZXItcGFkZGluZy1ob3Jpem9udGFsIC8gMik7XG5AbW9kYWwtZm9vdGVyLXBhZGRpbmctaG9yaXpvbnRhbC1zOiAgICAgICAgICAgICBAZ2xvYmFsLWd1dHRlcjtcbkBtb2RhbC1mb290ZXItcGFkZGluZy12ZXJ0aWNhbC1zOiAgICAgICAgICAgICAgIChAbW9kYWwtZm9vdGVyLXBhZGRpbmctaG9yaXpvbnRhbC1zIC8gMik7XG5AbW9kYWwtZm9vdGVyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWJhY2tncm91bmQ7XG5cbkBtb2RhbC10aXRsZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwteGxhcmdlLWZvbnQtc2l6ZTtcbkBtb2RhbC10aXRsZS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgIDEuMztcblxuQG1vZGFsLWNsb3NlLXBvc2l0aW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zbWFsbC1tYXJnaW47XG5AbW9kYWwtY2xvc2UtcGFkZGluZzogICAgICAgICAgICAgICAgICAgICAgICAgICA1cHg7XG5cbkBtb2RhbC1jbG9zZS1vdXRzaWRlLXBvc2l0aW9uOiAgICAgICAgICAgICAgICAgIDA7XG5AbW9kYWwtY2xvc2Utb3V0c2lkZS10cmFuc2xhdGU6ICAgICAgICAgICAgICAgICAxMDAlO1xuQG1vZGFsLWNsb3NlLW91dHNpZGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgbGlnaHRlbihAZ2xvYmFsLWludmVyc2UtY29sb3IsIDIwJSk7XG5AbW9kYWwtY2xvc2Utb3V0c2lkZS1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICBAZ2xvYmFsLWludmVyc2UtY29sb3I7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IE1vZGFsXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIEhpZGUgYnkgZGVmYXVsdFxuICogMi4gU2V0IHBvc2l0aW9uXG4gKiAzLiBBbGxvdyBzY3JvbGxpbmcgZm9yIHRoZSBtb2RhbCBkaWFsb2dcbiAqIDQuIEhvcml6b250YWwgcGFkZGluZ1xuICogNS4gTWFzayB0aGUgYmFja2dyb3VuZCBwYWdlXG4gKiA2LiBGYWRlLWluIHRyYW5zaXRpb25cbiAqL1xuXG4udWstbW9kYWwge1xuICAgIC8qIDEgKi9cbiAgICBkaXNwbGF5OiBub25lO1xuICAgIC8qIDIgKi9cbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IEBtb2RhbC16LWluZGV4O1xuICAgIC8qIDMgKi9cbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICAvKiA0ICovXG4gICAgcGFkZGluZzogQG1vZGFsLXBhZGRpbmctdmVydGljYWwgQG1vZGFsLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICAvKiA1ICovXG4gICAgYmFja2dyb3VuZDogQG1vZGFsLWJhY2tncm91bmQ7XG4gICAgLyogNiAqL1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXI7XG4gICAgLmhvb2stbW9kYWwoKTtcbn1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1zbWFsbCkge1xuXG4gICAgLnVrLW1vZGFsIHsgcGFkZGluZzogQG1vZGFsLXBhZGRpbmctdmVydGljYWwtcyBAbW9kYWwtcGFkZGluZy1ob3Jpem9udGFsLXM7IH1cblxufVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1tZWRpdW0pIHtcblxuICAgIC51ay1tb2RhbCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogQG1vZGFsLXBhZGRpbmctaG9yaXpvbnRhbC1tO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiBAbW9kYWwtcGFkZGluZy1ob3Jpem9udGFsLW07XG4gICAgfVxuXG59XG5cbi8qXG4gKiBPcGVuXG4gKi9cblxuLnVrLW1vZGFsLnVrLW9wZW4geyBvcGFjaXR5OiAxOyB9XG5cblxuLyogUGFnZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBQcmV2ZW50IHNjcm9sbGJhcnNcbiAqL1xuXG4udWstbW9kYWwtcGFnZSB7IG92ZXJmbG93OiBoaWRkZW47IH1cblxuXG4vKiBEaWFsb2dcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gQ3JlYXRlIHBvc2l0aW9uIGNvbnRleHQgZm9yIHNwaW5uZXIgYW5kIGNsb3NlIGJ1dHRvblxuICogMi4gRGltZW5zaW9uc1xuICogMy4gYCFpbXBvcnRhbnRgIGlzIG5lZWRlZCB0byBvdmVyd3JpdGUgYHVrLXdpZHRoLWF1dG9gLiBTZWUgYCNtb2RhbC1tZWRpYS1pbWFnZWAgaW4gdGVzdHNcbiAqIDQuIFN0eWxlXG4gKiA1LiBTbGlkZS1pbiB0cmFuc2l0aW9uXG4gKi9cblxuLnVrLW1vZGFsLWRpYWxvZyB7XG4gICAgLyogMSAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvKiAyICovXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICB3aWR0aDogQG1vZGFsLWRpYWxvZy13aWR0aDtcbiAgICAvKiAzICovXG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgLyogNCAqL1xuICAgIGJhY2tncm91bmQ6IEBtb2RhbC1kaWFsb2ctYmFja2dyb3VuZDtcbiAgICAvKiA1ICovXG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMHB4KTtcbiAgICB0cmFuc2l0aW9uOiAwLjNzIGxpbmVhcjtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCB0cmFuc2Zvcm07XG4gICAgLmhvb2stbW9kYWwtZGlhbG9nKCk7XG59XG5cbi8qXG4gKiBPcGVuXG4gKi9cblxuLnVrLW9wZW4gPiAudWstbW9kYWwtZGlhbG9nIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbn1cblxuXG4vKiBTaXplIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIENvbnRhaW5lciBzaXplXG4gKiBUYWtlIHRoZSBzYW1lIHNpemUgYXMgdGhlIENvbnRhaW5lciBjb21wb25lbnRcbiAqL1xuXG4udWstbW9kYWwtY29udGFpbmVyIC51ay1tb2RhbC1kaWFsb2cgeyB3aWR0aDogQG1vZGFsLWNvbnRhaW5lci13aWR0aDsgfVxuXG4vKlxuICogRnVsbCBzaXplXG4gKiAxLiBSZW1vdmUgcGFkZGluZyBhbmQgYmFja2dyb3VuZCBmcm9tIG1vZGFsXG4gKiAyLiBSZXNldCBhbGwgZGVmYXVsdCBkZWNsYXJhdGlvbnMgZnJvbSBtb2RhbCBkaWFsb2dcbiAqL1xuXG4vKiAxICovXG4udWstbW9kYWwtZnVsbCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xufVxuXG4vKiAyICovXG4udWstbW9kYWwtZnVsbCAudWstbW9kYWwtZGlhbG9nIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAuaG9vay1tb2RhbC1mdWxsKCk7XG59XG5cblxuLyogU2VjdGlvbnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbW9kYWwtYm9keSB7XG4gICAgZGlzcGxheTogZmxvdy1yb290O1xuICAgIHBhZGRpbmc6IEBtb2RhbC1ib2R5LXBhZGRpbmctdmVydGljYWwgQG1vZGFsLWJvZHktcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIC5ob29rLW1vZGFsLWJvZHkoKTtcbn1cblxuLnVrLW1vZGFsLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxvdy1yb290O1xuICAgIHBhZGRpbmc6IEBtb2RhbC1oZWFkZXItcGFkZGluZy12ZXJ0aWNhbCBAbW9kYWwtaGVhZGVyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBiYWNrZ3JvdW5kOiBAbW9kYWwtaGVhZGVyLWJhY2tncm91bmQ7XG4gICAgLmhvb2stbW9kYWwtaGVhZGVyKCk7XG59XG5cbi51ay1tb2RhbC1mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsb3ctcm9vdDtcbiAgICBwYWRkaW5nOiBAbW9kYWwtZm9vdGVyLXBhZGRpbmctdmVydGljYWwgQG1vZGFsLWZvb3Rlci1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgYmFja2dyb3VuZDogQG1vZGFsLWZvb3Rlci1iYWNrZ3JvdW5kO1xuICAgIC5ob29rLW1vZGFsLWZvb3RlcigpO1xufVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LXNtYWxsKSB7XG5cbiAgICAudWstbW9kYWwtYm9keSB7IHBhZGRpbmc6IEBtb2RhbC1ib2R5LXBhZGRpbmctdmVydGljYWwtcyBAbW9kYWwtYm9keS1wYWRkaW5nLWhvcml6b250YWwtczsgfVxuICAgIC51ay1tb2RhbC1oZWFkZXIgeyBwYWRkaW5nOiBAbW9kYWwtaGVhZGVyLXBhZGRpbmctdmVydGljYWwtcyBAbW9kYWwtaGVhZGVyLXBhZGRpbmctaG9yaXpvbnRhbC1zOyB9XG4gICAgLnVrLW1vZGFsLWZvb3RlciB7IHBhZGRpbmc6IEBtb2RhbC1mb290ZXItcGFkZGluZy12ZXJ0aWNhbC1zIEBtb2RhbC1mb290ZXItcGFkZGluZy1ob3Jpem9udGFsLXM7IH1cblxufVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cblxuLnVrLW1vZGFsLWJvZHkgPiA6bGFzdC1jaGlsZCxcbi51ay1tb2RhbC1oZWFkZXIgPiA6bGFzdC1jaGlsZCxcbi51ay1tb2RhbC1mb290ZXIgPiA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cblxuXG4vKiBUaXRsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1tb2RhbC10aXRsZSB7XG4gICAgZm9udC1zaXplOiBAbW9kYWwtdGl0bGUtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBAbW9kYWwtdGl0bGUtbGluZS1oZWlnaHQ7XG4gICAgLmhvb2stbW9kYWwtdGl0bGUoKTtcbn1cblxuXG4vKiBDbG9zZVxuICogQWRvcHRzIGB1ay1jbG9zZWBcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5bY2xhc3MqPSd1ay1tb2RhbC1jbG9zZS0nXSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IEBtb2RhbC16LWluZGV4O1xuICAgIHRvcDogQG1vZGFsLWNsb3NlLXBvc2l0aW9uO1xuICAgIHJpZ2h0OiBAbW9kYWwtY2xvc2UtcG9zaXRpb247XG4gICAgcGFkZGluZzogQG1vZGFsLWNsb3NlLXBhZGRpbmc7XG4gICAgLmhvb2stbW9kYWwtY2xvc2UoKTtcbn1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSBhZGphY2VudCBlbGVtZW50XG4gKi9cblxuW2NsYXNzKj0ndWstbW9kYWwtY2xvc2UtJ106Zmlyc3QtY2hpbGQgKyAqIHsgbWFyZ2luLXRvcDogMDsgfVxuXG4vKlxuICogSG92ZXJcbiAqL1xuXG5bY2xhc3MqPSd1ay1tb2RhbC1jbG9zZS0nXTpob3ZlciB7XG4gICAgLmhvb2stbW9kYWwtY2xvc2UtaG92ZXIoKTtcbn1cblxuLypcbiAqIERlZmF1bHRcbiAqL1xuXG4udWstbW9kYWwtY2xvc2UtZGVmYXVsdCB7XG4gICAgLmhvb2stbW9kYWwtY2xvc2UtZGVmYXVsdCgpO1xufVxuXG4udWstbW9kYWwtY2xvc2UtZGVmYXVsdDpob3ZlciB7XG4gICAgLmhvb2stbW9kYWwtY2xvc2UtZGVmYXVsdC1ob3ZlcigpO1xufVxuXG4vKlxuICogT3V0c2lkZVxuICogMS4gUHJldmVudCBzY3JvbGxiYXIgb24gc21hbGwgZGV2aWNlc1xuICovXG5cbi51ay1tb2RhbC1jbG9zZS1vdXRzaWRlIHtcbiAgICB0b3A6IEBtb2RhbC1jbG9zZS1vdXRzaWRlLXBvc2l0aW9uO1xuICAgIC8qIDEgKi9cbiAgICByaWdodDogLUBtb2RhbC1jbG9zZS1wYWRkaW5nO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0oQG1vZGFsLWNsb3NlLW91dHNpZGUtdHJhbnNsYXRlKSk7XG4gICAgY29sb3I6IEBtb2RhbC1jbG9zZS1vdXRzaWRlLWNvbG9yO1xuICAgIC5ob29rLW1vZGFsLWNsb3NlLW91dHNpZGUoKTtcbn1cblxuLnVrLW1vZGFsLWNsb3NlLW91dHNpZGU6aG92ZXIge1xuICAgIGNvbG9yOiBAbW9kYWwtY2xvc2Utb3V0c2lkZS1ob3Zlci1jb2xvcjtcbiAgICAuaG9vay1tb2RhbC1jbG9zZS1vdXRzaWRlLWhvdmVyKCk7XG59XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LW1lZGl1bSkge1xuXG4gICAgLyogMSAqL1xuICAgIC51ay1tb2RhbC1jbG9zZS1vdXRzaWRlIHtcbiAgICAgICAgcmlnaHQ6IEBtb2RhbC1jbG9zZS1vdXRzaWRlLXBvc2l0aW9uO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShAbW9kYWwtY2xvc2Utb3V0c2lkZS10cmFuc2xhdGUsIC0oQG1vZGFsLWNsb3NlLW91dHNpZGUtdHJhbnNsYXRlKSk7XG4gICAgfVxuXG59XG5cbi8qXG4gKiBGdWxsXG4gKi9cblxuLnVrLW1vZGFsLWNsb3NlLWZ1bGwge1xuICAgIC5ob29rLW1vZGFsLWNsb3NlLWZ1bGwoKTtcbn1cblxuLnVrLW1vZGFsLWNsb3NlLWZ1bGw6aG92ZXIge1xuICAgIC5ob29rLW1vZGFsLWNsb3NlLWZ1bGwtaG92ZXIoKTtcbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW1vZGFsLW1pc2MoKTtcblxuLmhvb2stbW9kYWwoKSB7fVxuLmhvb2stbW9kYWwtZGlhbG9nKCkge31cbi5ob29rLW1vZGFsLWZ1bGwoKSB7fVxuLmhvb2stbW9kYWwtaGVhZGVyKCkge31cbi5ob29rLW1vZGFsLWJvZHkoKSB7fVxuLmhvb2stbW9kYWwtZm9vdGVyKCkge31cbi5ob29rLW1vZGFsLXRpdGxlKCkge31cbi5ob29rLW1vZGFsLWNsb3NlKCkge31cbi5ob29rLW1vZGFsLWNsb3NlLWhvdmVyKCkge31cbi5ob29rLW1vZGFsLWNsb3NlLWRlZmF1bHQoKSB7fVxuLmhvb2stbW9kYWwtY2xvc2UtZGVmYXVsdC1ob3ZlcigpIHt9XG4uaG9vay1tb2RhbC1jbG9zZS1vdXRzaWRlKCkge31cbi5ob29rLW1vZGFsLWNsb3NlLW91dHNpZGUtaG92ZXIoKSB7fVxuLmhvb2stbW9kYWwtY2xvc2UtZnVsbCgpIHt9XG4uaG9vay1tb2RhbC1jbG9zZS1mdWxsLWhvdmVyKCkge31cbi5ob29rLW1vZGFsLW1pc2MoKSB7fVxuIiwiLy9cbi8vIENvbXBvbmVudDogTW9kYWxcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AbW9kYWwtaGVhZGVyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICBAbW9kYWwtZGlhbG9nLWJhY2tncm91bmQ7XG5AbW9kYWwtZm9vdGVyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICBAbW9kYWwtZGlhbG9nLWJhY2tncm91bmQ7XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBtb2RhbC1oZWFkZXItYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1ib3JkZXItd2lkdGg7XG5AbW9kYWwtaGVhZGVyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtYm9yZGVyO1xuXG5AbW9kYWwtZm9vdGVyLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtYm9yZGVyLXdpZHRoO1xuQG1vZGFsLWZvb3Rlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWJvcmRlcjtcblxuQG1vZGFsLWNsb3NlLWZ1bGwtcGFkZGluZzogICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW1hcmdpbjtcbkBtb2RhbC1jbG9zZS1mdWxsLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgQG1vZGFsLWRpYWxvZy1iYWNrZ3JvdW5kO1xuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW1vZGFsKCkge31cblxuXG4vLyBEaWFsb2dcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1tb2RhbC1kaWFsb2coKSB7fVxuXG5cbi8vIEZ1bGxcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1tb2RhbC1mdWxsKCkge31cblxuXG4vLyBTZWN0aW9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW1vZGFsLWhlYWRlcigpIHsgYm9yZGVyLWJvdHRvbTogQG1vZGFsLWhlYWRlci1ib3JkZXItd2lkdGggc29saWQgQG1vZGFsLWhlYWRlci1ib3JkZXI7IH1cblxuLmhvb2stbW9kYWwtYm9keSgpIHt9XG5cbi5ob29rLW1vZGFsLWZvb3RlcigpIHsgYm9yZGVyLXRvcDogQG1vZGFsLWZvb3Rlci1ib3JkZXItd2lkdGggc29saWQgQG1vZGFsLWZvb3Rlci1ib3JkZXI7IH1cblxuXG4vLyBUaXRsZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW1vZGFsLXRpdGxlKCkge31cblxuXG4vLyBDbG9zZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW1vZGFsLWNsb3NlKCkge31cblxuLmhvb2stbW9kYWwtY2xvc2UtaG92ZXIoKSB7fVxuXG4uaG9vay1tb2RhbC1jbG9zZS1kZWZhdWx0KCkge31cblxuLmhvb2stbW9kYWwtY2xvc2UtZGVmYXVsdC1ob3ZlcigpIHt9XG5cbi5ob29rLW1vZGFsLWNsb3NlLW91dHNpZGUoKSB7fVxuXG4uaG9vay1tb2RhbC1jbG9zZS1vdXRzaWRlLWhvdmVyKCkge31cblxuLmhvb2stbW9kYWwtY2xvc2UtZnVsbCgpIHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgcGFkZGluZzogQG1vZGFsLWNsb3NlLWZ1bGwtcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiBAbW9kYWwtY2xvc2UtZnVsbC1iYWNrZ3JvdW5kO1xufVxuXG4uaG9vay1tb2RhbC1jbG9zZS1mdWxsLWhvdmVyKCkge31cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbW9kYWwtbWlzYygpIHt9IiwiLy9cbi8vIENvbXBvbmVudDogTW9kYWxcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gTmV3XG4vL1xuXG5AbW9kYWwtdGl0bGUtZm9udC1mYW1pbHk6ICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktZm9udC1mYW1pbHk7XG5AbW9kYWwtdGl0bGUtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktZm9udC13ZWlnaHQ7XG5AbW9kYWwtdGl0bGUtdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktdGV4dC10cmFuc2Zvcm07XG5AbW9kYWwtdGl0bGUtbGV0dGVyLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktbGV0dGVyLXNwYWNpbmc7XG5AbW9kYWwtdGl0bGUtZm9udC1zdHlsZTogICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktZm9udC1zdHlsZTtcblxuXG4vLyBDb21wb25lbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1tb2RhbCgpIHt9XG5cblxuLy8gRGlhbG9nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbW9kYWwtZGlhbG9nKCkge31cblxuXG4vLyBGdWxsXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbW9kYWwtZnVsbCgpIHt9XG5cblxuLy8gU2VjdGlvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1tb2RhbC1oZWFkZXIoKSB7fVxuXG4uaG9vay1tb2RhbC1ib2R5KCkge31cblxuLmhvb2stbW9kYWwtZm9vdGVyKCkge31cblxuXG4vLyBUaXRsZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW1vZGFsLXRpdGxlKCkge31cblxuLmhvb2stbW9kYWwtdGl0bGUoKSB3aGVuIG5vdCAoQG1vZGFsLXRpdGxlLWZvbnQtZmFtaWx5ID0gaW5oZXJpdCkge1xuICAgIGZvbnQtZmFtaWx5OiBAbW9kYWwtdGl0bGUtZm9udC1mYW1pbHk7XG59XG5cbi5ob29rLW1vZGFsLXRpdGxlKCkgd2hlbiBub3QgKEBtb2RhbC10aXRsZS1mb250LXdlaWdodCA9IGluaGVyaXQpIHtcbiAgICBmb250LXdlaWdodDogQG1vZGFsLXRpdGxlLWZvbnQtd2VpZ2h0O1xufVxuXG4uaG9vay1tb2RhbC10aXRsZSgpIHdoZW4gbm90IChAbW9kYWwtdGl0bGUtdGV4dC10cmFuc2Zvcm0gPSBpbmhlcml0KSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IEBtb2RhbC10aXRsZS10ZXh0LXRyYW5zZm9ybTtcbn1cblxuLmhvb2stbW9kYWwtdGl0bGUoKSB3aGVuIG5vdCAoQG1vZGFsLXRpdGxlLWxldHRlci1zcGFjaW5nID0gaW5oZXJpdCkge1xuICAgIGxldHRlci1zcGFjaW5nOiBAbW9kYWwtdGl0bGUtbGV0dGVyLXNwYWNpbmc7XG59XG5cbi5ob29rLW1vZGFsLXRpdGxlKCkgd2hlbiBub3QgKEBtb2RhbC10aXRsZS1mb250LXN0eWxlID0gaW5oZXJpdCkge1xuICAgIGZvbnQtc3R5bGU6IEBtb2RhbC10aXRsZS1mb250LXN0eWxlO1xufVxuXG5cbi8vIENsb3NlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbW9kYWwtY2xvc2UoKSB7fVxuXG4uaG9vay1tb2RhbC1jbG9zZS1ob3ZlcigpIHt9XG5cbi5ob29rLW1vZGFsLWNsb3NlLWRlZmF1bHQoKSB7fVxuXG4uaG9vay1tb2RhbC1jbG9zZS1kZWZhdWx0LWhvdmVyKCkge31cblxuLmhvb2stbW9kYWwtY2xvc2Utb3V0c2lkZSgpIHt9XG5cbi5ob29rLW1vZGFsLWNsb3NlLW91dHNpZGUtaG92ZXIoKSB7fVxuXG4uaG9vay1tb2RhbC1jbG9zZS1mdWxsKCkge31cblxuLmhvb2stbW9kYWwtY2xvc2UtZnVsbC1ob3ZlcigpIHt9XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW1vZGFsLW1pc2MoKSB7fSIsIi8vIE5hbWU6ICAgICAgICAgICAgU2xpZGVzaG93XG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgc2xpZGVzaG93c1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLXNsaWRlc2hvd2Bcbi8vXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay1zbGlkZXNob3ctaXRlbXNgXG4vL1xuLy8gU3RhdGVzOiAgICAgICAgICBgdWstYWN0aXZlYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBTbGlkZXNob3dcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gUHJldmVudCB0YWIgaGlnaGxpZ2h0aW5nIG9uIGlPUy5cbiAqL1xuXG4udWstc2xpZGVzaG93IHtcbiAgICAvKiAxICovXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAuaG9vay1zbGlkZXNob3coKTtcbn1cblxuXG4vKiBJdGVtc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBDcmVhdGUgcG9zaXRpb24gYW5kIHN0YWNraW5nIGNvbnRleHRcbiAqIDIuIFJlc2V0IGxpc3RcbiAqIDMuIENsaXAgY2hpbGQgZWxlbWVudHNcbiAqIDQuIFByZXZlbnQgZGlzcGxheWluZyB0aGUgY2FsbG91dCBpbmZvcm1hdGlvbiBvbiBpT1MuXG4gKiA1LiBEaXNhYmxlIGhvcml6b250YWwgcGFubmluZyBnZXN0dXJlc1xuICovXG5cbi51ay1zbGlkZXNob3ctaXRlbXMge1xuICAgIC8qIDEgKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMDtcbiAgICAvKiAyICovXG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAvKiAzICovXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAvKiA0ICovXG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAgIC8qIDUgKi9cbiAgICB0b3VjaC1hY3Rpb246IHBhbi15O1xufVxuXG5cbi8qIEl0ZW1cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gUG9zaXRpb24gaXRlbXMgYWJvdmUgZWFjaCBvdGhlclxuICogMi4gVGFrZSB0aGUgZnVsbCB3aWR0aFxuICogMy4gQ2xpcCBjaGlsZCBlbGVtZW50cywgZS5nLiBmb3IgYHVrLWNvdmVyYFxuICogNC4gT3B0aW1pemUgYW5pbWF0aW9uXG4gKi9cblxuLnVrLXNsaWRlc2hvdy1pdGVtcyA+ICoge1xuICAgIC8qIDEgKi9cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgLyogMiAqL1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICAvKiAzICovXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAvKiA0ICovXG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbn1cblxuLypcbiAqIEhpZGUgbm90IGFjdGl2ZSBpdGVtc1xuICovXG5cbi51ay1zbGlkZXNob3ctaXRlbXMgPiA6bm90KC51ay1hY3RpdmUpIHsgZGlzcGxheTogbm9uZTsgfVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stc2xpZGVzaG93LW1pc2MoKTtcblxuLmhvb2stc2xpZGVzaG93KCkge31cbi5ob29rLXNsaWRlc2hvdy1taXNjKCkge31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgU2xpZGVyXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgaG9yaXpvbnRhbCBzbGlkZXJzXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstc2xpZGVyYFxuLy9cbi8vIFN1Yi1vYmplY3RzOiAgICAgYHVrLXNsaWRlci1jb250YWluZXJgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1zbGlkZXItaXRlbXNgXG4vL1xuLy8gU3RhdGVzOiAgICAgICAgICBgdWstYWN0aXZlYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBzbGlkZXItY29udGFpbmVyLW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgICAgICAgICAtMTFweDtcbkBzbGlkZXItY29udGFpbmVyLW1hcmdpbi1ib3R0b206ICAgICAgICAgICAgICAgICAgICAtMzlweDtcbkBzbGlkZXItY29udGFpbmVyLW1hcmdpbi1sZWZ0OiAgICAgICAgICAgICAgICAgICAgICAtMjVweDtcbkBzbGlkZXItY29udGFpbmVyLW1hcmdpbi1yaWdodDogICAgICAgICAgICAgICAgICAgICAtMjVweDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogU2xpZGVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFByZXZlbnQgdGFiIGhpZ2hsaWdodGluZyBvbiBpT1MuXG4gKi9cblxuLnVrLXNsaWRlciB7XG4gICAgLyogMSAqL1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgLmhvb2stc2xpZGVyKCk7XG59XG5cblxuLyogQ29udGFpbmVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIENsaXAgY2hpbGQgZWxlbWVudHNcbiAqL1xuXG4udWstc2xpZGVyLWNvbnRhaW5lciB7IG92ZXJmbG93OiBoaWRkZW47IH1cblxuLypcbiAqIFdpZGVuIGNvbnRhaW5lciB0byBwcmV2ZW50IGJveC1zaGFkb3dzIGZyb20gY2xpcHBpbmcsIGBsYXJnZS1ib3gtc2hhZG93YFxuICovXG5cbi51ay1zbGlkZXItY29udGFpbmVyLW9mZnNldCB7XG4gICAgbWFyZ2luOiBAc2xpZGVyLWNvbnRhaW5lci1tYXJnaW4tdG9wIEBzbGlkZXItY29udGFpbmVyLW1hcmdpbi1yaWdodCBAc2xpZGVyLWNvbnRhaW5lci1tYXJnaW4tYm90dG9tIEBzbGlkZXItY29udGFpbmVyLW1hcmdpbi1sZWZ0O1xuICAgIHBhZGRpbmc6IChAc2xpZGVyLWNvbnRhaW5lci1tYXJnaW4tdG9wICogLTEpIChAc2xpZGVyLWNvbnRhaW5lci1tYXJnaW4tcmlnaHQgKiAtMSkgKEBzbGlkZXItY29udGFpbmVyLW1hcmdpbi1ib3R0b20gKiAtMSkgKEBzbGlkZXItY29udGFpbmVyLW1hcmdpbi1sZWZ0ICogLTEpO1xufVxuXG4vKiBJdGVtc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBPcHRpbWl6ZSBhbmltYXRpb25cbiAqIDIuIENyZWF0ZSBhIGNvbnRhaW5pbmcgYmxvY2suIEluIFNhZmFyaSBpdCdzIG5laXRoZXIgY3JlYXRlZCBieSBgdHJhbnNmb3JtYCBub3IgYHdpbGwtY2hhbmdlYC5cbiAqIDMuIERpc2FibGUgaG9yaXpvbnRhbCBwYW5uaW5nIGdlc3R1cmVzXG4gKi9cblxuLnVrLXNsaWRlci1pdGVtcyB7XG4gICAgLyogMSAqL1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gICAgLyogMiAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvKiAzICovXG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbn1cblxuLypcbiAqIDEuIFJlc2V0IGxpc3Qgc3R5bGUgd2l0aG91dCBpbnRlcmZlcmluZyB3aXRoIGdyaWRcbiAqIDIuIFByZXZlbnQgZGlzcGxheWluZyB0aGUgY2FsbG91dCBpbmZvcm1hdGlvbiBvbiBpT1MuXG4gKi9cblxuLnVrLXNsaWRlci1pdGVtczpub3QoLnVrLWdyaWQpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC8qIDEgKi9cbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIC8qIDIgKi9cbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG59XG5cbi51ay1zbGlkZXItaXRlbXMudWstZ3JpZCB7IGZsZXgtd3JhcDogbm93cmFwOyB9XG5cblxuLyogSXRlbVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBMZXQgaXRlbXMgdGFrZSBjb250ZW50IGRpbWVuc2lvbnMgKDAgMCBhdXRvKVxuICogICAgYG1heC13aWR0aGAgbmVlZGVkIHRvIGtlZXAgaW1hZ2UgcmVzcG9uc2l2ZW5lc3MgYW5kIHByZXZlbnQgY29udGVudCBvdmVyZmxvd1xuICogMy4gQ3JlYXRlIHBvc2l0aW9uIGNvbnRleHRcbiAqL1xuXG4udWstc2xpZGVyLWl0ZW1zID4gKiB7XG4gICAgLyogMSAqL1xuICAgIGZsZXg6IG5vbmU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIC8qIDMgKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1zbGlkZXItbWlzYygpO1xuXG4uaG9vay1zbGlkZXIoKSB7fVxuLmhvb2stc2xpZGVyLW1pc2MoKSB7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBTdGlja3lcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIG1ha2UgZWxlbWVudHMgc3RpY2t5IGluIHRoZSB2aWV3cG9ydFxuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLXN0aWNreWBcbi8vXG4vLyBNb2RpZmllcjogICAgICAgIGB1ay1zdGlja3ktZml4ZWRgXG4vL1xuLy8gU3RhdGVzOiAgICAgICAgICBgdWstYWN0aXZlYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBzdGlja3ktei1pbmRleDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtei1pbmRleCAtIDIwO1xuXG5Ac3RpY2t5LWFuaW1hdGlvbi1kdXJhdGlvbjogICAgICAgICAgICAgICAgICAgICAwLjJzO1xuQHN0aWNreS1yZXZlcnNlLWFuaW1hdGlvbi1kdXJhdGlvbjogICAgICAgICAgICAgMC4ycztcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogU3RpY2t5XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIENyZWF0ZSBwb3NpdGlvbiBjb250ZXh0IHNvIGl0J3MgdCB0aGUgc2FtZSBsaWtlIHdoZW4gZml4ZWQuXG4gKiAyLiBNb3JlIHJvYnVzdCBpZiBwYWRkaW5nIGFuZCBib3JkZXIgYXJlIHVzZWQgYW5kIHRoZSBzdGlja3kgaGVpZ2h0IGlzIHRyYW5zaXRpb25lZFxuICovXG5cbi51ay1zdGlja3kge1xuICAgIC8qIDEgKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLyogMiAqL1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi8qXG4gKiAxLiBGb3JjZSBuZXcgbGF5ZXIgdG8gcmVzb2x2ZSBmcmFtZSByYXRlIGlzc3VlcyBvbiBkZXZpY2VzIHdpdGggbG93ZXIgZnJhbWUgcmF0ZXNcbiAqL1xuXG4udWstc3RpY2t5LWZpeGVkIHtcbiAgICB6LWluZGV4OiBAc3RpY2t5LXotaW5kZXg7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgLyogMSAqL1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLypcbiAqIEZhc3RlciBhbmltYXRpb25zXG4gKi9cblxuLnVrLXN0aWNreVtjbGFzcyo9J3VrLWFuaW1hdGlvbi0nXSB7IGFuaW1hdGlvbi1kdXJhdGlvbjogQHN0aWNreS1hbmltYXRpb24tZHVyYXRpb247IH1cblxuLnVrLXN0aWNreS51ay1hbmltYXRpb24tcmV2ZXJzZSB7IGFuaW1hdGlvbi1kdXJhdGlvbjogQHN0aWNreS1yZXZlcnNlLWFuaW1hdGlvbi1kdXJhdGlvbjsgfVxuXG4vKlxuICogUGxhY2Vob2xkZXJcbiAqIE1ha2UgY29udGVudCBjbGlja2FibGUgZm9yIHN0aWNreSBjb3ZlciBhbmQgcmV2ZWFsIGVmZmVjdHNcbiAqL1xuXG4udWstc3RpY2t5LXBsYWNlaG9sZGVyIHsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXN0aWNreS1taXNjKCk7XG5cbi5ob29rLXN0aWNreS1taXNjKCkge31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgT2ZmLWNhbnZhc1xuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gY3JlYXRlIGFuIG9mZi1jYW52YXMgc2lkZWJhclxuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLW9mZmNhbnZhc2Bcbi8vXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay1vZmZjYW52YXMtYmFyYFxuLy8gICAgICAgICAgICAgICAgICBgdWstb2ZmY2FudmFzLWNvbnRhaW5lcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW9mZmNhbnZhcy1wYWdlYFxuLy9cbi8vIEFkb3B0ZWQ6ICAgICAgICAgYHVrLW9mZmNhbnZhcy1jbG9zZWBcbi8vXG4vLyBNb2RpZmllcnM6ICAgICAgIGB1ay1vZmZjYW52YXMtZmxpcGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW9mZmNhbnZhcy1iYXItYW5pbWF0aW9uYFxuLy8gICAgICAgICAgICAgICAgICBgdWstb2ZmY2FudmFzLXJldmVhbGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW9mZmNhbnZhcy1vdmVybGF5YFxuLy8gICAgICAgICAgICAgICAgICBgdWstb2ZmY2FudmFzLWNvbnRhaW5lci1hbmltYXRpb25gXG4vL1xuLy8gU3RhdGVzOiAgICAgICAgICBgdWstb3BlbmBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5Ab2ZmY2FudmFzLXotaW5kZXg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXotaW5kZXg7XG5cbkBvZmZjYW52YXMtYmFyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgIDI3MHB4O1xuQG9mZmNhbnZhcy1iYXItcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgMjBweDtcbkBvZmZjYW52YXMtYmFyLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgIDIwcHg7XG5Ab2ZmY2FudmFzLWJhci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1iYWNrZ3JvdW5kO1xuQG9mZmNhbnZhcy1iYXItY29sb3ItbW9kZTogICAgICAgICAgICAgICAgICAgICAgbGlnaHQ7XG5cbkBvZmZjYW52YXMtYmFyLXdpZHRoLXM6ICAgICAgICAgICAgICAgICAgICAgICAgIDM1MHB4O1xuQG9mZmNhbnZhcy1iYXItcGFkZGluZy12ZXJ0aWNhbC1zOiAgICAgICAgICAgICAgQGdsb2JhbC1ndXR0ZXI7XG5Ab2ZmY2FudmFzLWJhci1wYWRkaW5nLWhvcml6b250YWwtczogICAgICAgICAgICBAZ2xvYmFsLWd1dHRlcjtcblxuQG9mZmNhbnZhcy1jbG9zZS1wb3NpdGlvbjogICAgICAgICAgICAgICAgICAgICAgNXB4O1xuQG9mZmNhbnZhcy1jbG9zZS1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAgNXB4O1xuXG5Ab2ZmY2FudmFzLWNsb3NlLXBvc2l0aW9uLXM6ICAgICAgICAgICAgICAgICAgICAxMHB4O1xuXG5Ab2ZmY2FudmFzLW92ZXJsYXktYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICByZ2JhKDAsMCwwLDAuMSk7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IE9mZi1jYW52YXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gSGlkZSBieSBkZWZhdWx0XG4gKiAyLiBTZXQgcG9zaXRpb25cbiAqL1xuXG4udWstb2ZmY2FudmFzIHtcbiAgICAvKiAxICovXG4gICAgZGlzcGxheTogbm9uZTtcbiAgICAvKiAyICovXG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiBAb2ZmY2FudmFzLXotaW5kZXg7XG59XG5cbi8qXG4gKiBGbGlwIG1vZGlmaWVyXG4gKi9cblxuLnVrLW9mZmNhbnZhcy1mbGlwIC51ay1vZmZjYW52YXMge1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87XG59XG5cblxuLyogQmFyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFNldCBwb3NpdGlvblxuICogMi4gU2l6ZSBhbmQgc3R5bGVcbiAqIDMuIEFsbG93IHNjcm9sbGluZ1xuICovXG5cbi51ay1vZmZjYW52YXMtYmFyIHtcbiAgICAvKiAxICovXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogLUBvZmZjYW52YXMtYmFyLXdpZHRoO1xuICAgIC8qIDIgKi9cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiBAb2ZmY2FudmFzLWJhci13aWR0aDtcbiAgICBwYWRkaW5nOiBAb2ZmY2FudmFzLWJhci1wYWRkaW5nLXZlcnRpY2FsIEBvZmZjYW52YXMtYmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBiYWNrZ3JvdW5kOiBAb2ZmY2FudmFzLWJhci1iYWNrZ3JvdW5kO1xuICAgIC8qIDMgKi9cbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICAuaG9vay1vZmZjYW52YXMtYmFyKCk7XG59XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtc21hbGwpIHtcblxuICAgIC51ay1vZmZjYW52YXMtYmFyIHtcbiAgICAgICAgbGVmdDogLUBvZmZjYW52YXMtYmFyLXdpZHRoLXM7XG4gICAgICAgIHdpZHRoOiBAb2ZmY2FudmFzLWJhci13aWR0aC1zO1xuICAgICAgICBwYWRkaW5nOiBAb2ZmY2FudmFzLWJhci1wYWRkaW5nLXZlcnRpY2FsLXMgQG9mZmNhbnZhcy1iYXItcGFkZGluZy1ob3Jpem9udGFsLXM7XG4gICAgfVxuXG59XG5cbi8vIENvbG9yIE1vZGVcbi51ay1vZmZjYW52YXMtYmFyOmV4dGVuZCgudWstbGlnaHQgYWxsKSB3aGVuIChAb2ZmY2FudmFzLWJhci1jb2xvci1tb2RlID0gbGlnaHQpIHt9XG4udWstb2ZmY2FudmFzLWJhcjpleHRlbmQoLnVrLWRhcmsgYWxsKSB3aGVuIChAb2ZmY2FudmFzLWJhci1jb2xvci1tb2RlID0gZGFyaykge31cblxuLyogRmxpcCBtb2RpZmllciAqL1xuLnVrLW9mZmNhbnZhcy1mbGlwIC51ay1vZmZjYW52YXMtYmFyIHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAtQG9mZmNhbnZhcy1iYXItd2lkdGg7XG59XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LXNtYWxsKSB7XG5cbiAgICAudWstb2ZmY2FudmFzLWZsaXAgLnVrLW9mZmNhbnZhcy1iYXIgeyByaWdodDogLUBvZmZjYW52YXMtYmFyLXdpZHRoLXM7IH1cblxufVxuXG4vKlxuICogT3BlblxuICovXG5cbi51ay1vcGVuID4gLnVrLW9mZmNhbnZhcy1iYXIgeyBsZWZ0OiAwOyB9XG4udWstb2ZmY2FudmFzLWZsaXAgLnVrLW9wZW4gPiAudWstb2ZmY2FudmFzLWJhciB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMDtcbn1cblxuLypcbiAqIFNsaWRlIEFuaW1hdGlvbiAoVXNlZCBpbiBzbGlkZSBhbmQgcHVzaCBtb2RlKVxuICovXG5cbi51ay1vZmZjYW52YXMtYmFyLWFuaW1hdGlvbiB7IHRyYW5zaXRpb246IGxlZnQgMC4zcyBlYXNlLW91dDsgfVxuLnVrLW9mZmNhbnZhcy1mbGlwIC51ay1vZmZjYW52YXMtYmFyLWFuaW1hdGlvbiB7IHRyYW5zaXRpb24tcHJvcGVydHk6IHJpZ2h0OyB9XG5cbi8qXG4gKiBSZXZlYWwgQW5pbWF0aW9uXG4gKiAxLiBTZXQgcG9zaXRpb25cbiAqIDIuIENsaXAgdGhlIGJhclxuICogMy4gQW5pbWF0aW9uXG4gKiA0LiBSZXNldCBwb3NpdGlvblxuICovXG5cbi51ay1vZmZjYW52YXMtcmV2ZWFsIHtcbiAgICAvKiAxICovXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICAvKiAyICovXG4gICAgd2lkdGg6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAvKiAzICovXG4gICAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBlYXNlLW91dDtcbn1cblxuLnVrLW9mZmNhbnZhcy1yZXZlYWwgLnVrLW9mZmNhbnZhcy1iYXIge1xuICAgIC8qIDQgKi9cbiAgICBsZWZ0OiAwO1xufVxuXG4udWstb2ZmY2FudmFzLWZsaXAgLnVrLW9mZmNhbnZhcy1yZXZlYWwgLnVrLW9mZmNhbnZhcy1iYXIge1xuICAgIC8qIDQgKi9cbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAwO1xufVxuXG4udWstb3BlbiA+IC51ay1vZmZjYW52YXMtcmV2ZWFsIHsgd2lkdGg6IEBvZmZjYW52YXMtYmFyLXdpZHRoOyB9XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LXNtYWxsKSB7XG5cbiAgICAudWstb3BlbiA+IC51ay1vZmZjYW52YXMtcmV2ZWFsIHsgd2lkdGg6IEBvZmZjYW52YXMtYmFyLXdpZHRoLXM7IH1cblxufVxuXG4vKlxuICogRmxpcCBtb2RpZmllclxuICovXG5cbi51ay1vZmZjYW52YXMtZmxpcCAudWstb2ZmY2FudmFzLXJldmVhbCB7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogYXV0bztcbn1cblxuXG4vKiBDbG9zZVxuICogQWRvcHRzIGB1ay1jbG9zZWBcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstb2ZmY2FudmFzLWNsb3NlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogQG9mZmNhbnZhcy16LWluZGV4O1xuICAgIHRvcDogQG9mZmNhbnZhcy1jbG9zZS1wb3NpdGlvbjtcbiAgICByaWdodDogQG9mZmNhbnZhcy1jbG9zZS1wb3NpdGlvbjtcbiAgICBwYWRkaW5nOiBAb2ZmY2FudmFzLWNsb3NlLXBhZGRpbmc7XG4gICAgLmhvb2stb2ZmY2FudmFzLWNsb3NlKCk7XG59XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LXNtYWxsKSB7XG5cbiAgICAudWstb2ZmY2FudmFzLWNsb3NlIHtcbiAgICAgICAgdG9wOiBAb2ZmY2FudmFzLWNsb3NlLXBvc2l0aW9uLXM7XG4gICAgICAgIHJpZ2h0OiBAb2ZmY2FudmFzLWNsb3NlLXBvc2l0aW9uLXM7XG4gICAgfVxuXG59XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gYWRqYWNlbnQgZWxlbWVudFxuICovXG5cbi51ay1vZmZjYW52YXMtY2xvc2U6Zmlyc3QtY2hpbGQgKyAqIHsgbWFyZ2luLXRvcDogMDsgfVxuXG5cbi8qIE92ZXJsYXlcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogT3ZlcmxheSB0aGUgd2hvbGUgcGFnZS4gTmVlZGVkIGZvciB0aGUgYDo6YmVmb3JlYFxuICogMS4gVXNpbmcgYDEwMHZ3YCBzbyBubyBtb2RpZmljYXRpb24gaXMgbmVlZGVkIHdoZW4gb2ZmLWNhbnZhcyBpcyBmbGlwcGVkXG4gKiAyLiBBbGxvdyBmb3IgY2xvc2luZyB3aXRoIHN3aXBlIGdlc3R1cmUgb24gZGV2aWNlcyB3aXRoIHBvaW50ZXIgZXZlbnRzLlxuICovXG5cbi51ay1vZmZjYW52YXMtb3ZlcmxheSB7XG4gICAgLyogMSAqL1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICAvKiAyICovXG4gICAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuXG4vKlxuICogMS4gTWFzayB0aGUgd2hvbGUgcGFnZVxuICogMi4gRmFkZS1pbiB0cmFuc2l0aW9uXG4gKi9cblxuLnVrLW9mZmNhbnZhcy1vdmVybGF5OjpiZWZvcmUge1xuICAgIC8qIDEgKi9cbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZDogQG9mZmNhbnZhcy1vdmVybGF5LWJhY2tncm91bmQ7XG4gICAgLyogMiAqL1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXI7XG4gICAgLmhvb2stb2ZmY2FudmFzLW92ZXJsYXkoKTtcbn1cblxuLnVrLW9mZmNhbnZhcy1vdmVybGF5LnVrLW9wZW46OmJlZm9yZSB7IG9wYWNpdHk6IDE7IH1cblxuXG4vKiBQcmV2ZW50IHNjcm9sbGluZ1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBQcmV2ZW50IGhvcml6b250YWwgc2Nyb2xsYmFyIHdoZW4gdGhlIGNvbnRlbnQgaXMgc2xpZGUtb3V0XG4gKiBIYXMgdG8gYmUgb24gdGhlIGBodG1sYCBlbGVtZW50IHRvbyB0byBtYWtlIGl0IHdvcmsgb24gdGhlIGBib2R5YFxuICovXG5cbi51ay1vZmZjYW52YXMtcGFnZSxcbi51ay1vZmZjYW52YXMtY29udGFpbmVyIHsgb3ZlcmZsb3cteDogaGlkZGVuOyB9XG5cblxuLyogQ29udGFpbmVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFByZXBhcmUgc2xpZGUtb3V0IGFuaW1hdGlvbiAoVXNlZCBpbiByZXZlYWwgYW5kIHB1c2ggbW9kZSlcbiAqIFVzaW5nIGBwb3NpdGlvbjogbGVmdGAgaW5zdGVhZCBvZiBgdHJhbnNmb3JtYCBiZWNhdXNlIHBvc2l0aW9uIGBmaXhlZGAgZWxlbWVudHMgbGlrZSBzdGlja3kgbmF2YmFyc1xuICogbG9zZSB0aGVpciBmaXhlZCBzdGF0ZSBhbmQgYmVoYXZlcyBsaWtlIGBhYnNvbHV0ZWAgd2l0aGluIGEgdHJhbnNmb3JtZWQgY29udGFpbmVyXG4gKiAxLiBQcm92aWRlIGEgZml4ZWQgd2lkdGggYW5kIHByZXZlbnQgc2hyaW5raW5nXG4gKi9cblxuLnVrLW9mZmNhbnZhcy1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zaXRpb246IGxlZnQgMC4zcyBlYXNlLW91dDtcbiAgICAvKiAxICovXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLypcbiAqIEFjdGl2YXRlIHNsaWRlLW91dCBhbmltYXRpb25cbiAqL1xuXG46bm90KC51ay1vZmZjYW52YXMtZmxpcCkudWstb2ZmY2FudmFzLWNvbnRhaW5lci1hbmltYXRpb24geyBsZWZ0OiBAb2ZmY2FudmFzLWJhci13aWR0aDsgfVxuXG4udWstb2ZmY2FudmFzLWZsaXAudWstb2ZmY2FudmFzLWNvbnRhaW5lci1hbmltYXRpb24geyBsZWZ0OiAtQG9mZmNhbnZhcy1iYXItd2lkdGg7IH1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtc21hbGwpIHtcblxuICAgIDpub3QoLnVrLW9mZmNhbnZhcy1mbGlwKS51ay1vZmZjYW52YXMtY29udGFpbmVyLWFuaW1hdGlvbiB7IGxlZnQ6IEBvZmZjYW52YXMtYmFyLXdpZHRoLXM7IH1cblxuICAgIC51ay1vZmZjYW52YXMtZmxpcC51ay1vZmZjYW52YXMtY29udGFpbmVyLWFuaW1hdGlvbiB7IGxlZnQ6IC1Ab2ZmY2FudmFzLWJhci13aWR0aC1zOyB9XG5cbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW9mZmNhbnZhcy1taXNjKCk7XG5cbi5ob29rLW9mZmNhbnZhcy1iYXIoKSB7fVxuLmhvb2stb2ZmY2FudmFzLWNsb3NlKCkge31cbi5ob29rLW9mZmNhbnZhcy1vdmVybGF5KCkge31cbi5ob29rLW9mZmNhbnZhcy1taXNjKCkge31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgU3dpdGNoZXJcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIG5hdmlnYXRlIHRocm91Z2ggZGlmZmVyZW50IGNvbnRlbnQgcGFuZXNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1zd2l0Y2hlcmBcbi8vXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1hY3RpdmVgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFN3aXRjaGVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFJlc2V0IGxpc3RcbiAqL1xuXG4udWstc3dpdGNoZXIge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cblxuLyogSXRlbXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogSGlkZSBub3QgYWN0aXZlIGl0ZW1zXG4gKi9cblxuLnVrLXN3aXRjaGVyID4gOm5vdCgudWstYWN0aXZlKSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG5cbi51ay1zd2l0Y2hlciA+ICogPiA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXN3aXRjaGVyLW1pc2MoKTtcblxuLmhvb2stc3dpdGNoZXItbWlzYygpIHt9XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIExlYWRlclxuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gY3JlYXRlIGRvdCBsZWFkZXJzXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstbGVhZGVyYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBsZWFkZXItZmlsbC1jb250ZW50OiAgICAgICAgICAgICAgICAgICAgICAgICAgIH4nLic7XG5AbGVhZGVyLWZpbGwtbWFyZ2luLWxlZnQ6ICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNtYWxsLWd1dHRlcjtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogTGVhZGVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWxlYWRlciB7IG92ZXJmbG93OiBoaWRkZW47IH1cblxuLypcbiAqIDEuIFBsYWNlIGVsZW1lbnQgaW4gdGV4dCBmbG93XG4gKiAyLiBOZXZlciBicmVhayBpbnRvIGEgbmV3IGxpbmVcbiAqIDMuIEdldCBhIHN0cmluZyBiYWNrIHdpdGggYXMgbWFueSByZXBlYXRpbmcgY2hhcmFjdGVycyB0byBmaWxsIHRoZSBjb250YWluZXJcbiAqIDQuIFByZXZlbnQgd3JhcHBpbmcuIE92ZXJmbG93aW5nIGNoYXJhY3RlcnMgd2lsbCBiZSBjbGlwcGVkIGJ5IHRoZSBjb250YWluZXJcbiAqL1xuXG4udWstbGVhZGVyLWZpbGw6OmFmdGVyIHtcbiAgICAvKiAxICovXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiBAbGVhZGVyLWZpbGwtbWFyZ2luLWxlZnQ7XG4gICAgLyogMiAqL1xuICAgIHdpZHRoOiAwO1xuICAgIC8qIDMgKi9cbiAgICBjb250ZW50OiBhdHRyKGRhdGEtZmlsbCk7XG4gICAgLyogNCAqL1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLmhvb2stbGVhZGVyKCk7XG59XG5cbi8qXG4gKiBIaWRlIGlmIG1lZGlhIGRvZXMgbm90IG1hdGNoXG4gKi9cblxuLnVrLWxlYWRlci1maWxsLnVrLWxlYWRlci1oaWRlOjphZnRlciB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLypcbiAqIFBhc3MgZmlsbCBjaGFyYWN0ZXIgdG8gSlNcbiAqL1xuXG46cm9vdCB7IC0tdWstbGVhZGVyLWZpbGwtY29udGVudDogQGxlYWRlci1maWxsLWNvbnRlbnQ7IH1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWxlYWRlci1taXNjKCk7XG5cbi5ob29rLWxlYWRlcigpIHt9XG4uaG9vay1sZWFkZXItbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWludmVyc2UoKSB7XG5cbiAgICAudWstbGVhZGVyLWZpbGw6OmFmdGVyIHtcbiAgICAgICAgLmhvb2staW52ZXJzZS1sZWFkZXIoKTtcbiAgICB9XG5cbn1cblxuLmhvb2staW52ZXJzZS1sZWFkZXIoKSB7fVxuIiwiLy9cbi8vIENvbXBvbmVudDogTGVhZGVyXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIE5ld1xuLy9cblxuQGxlYWRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1jb2xvcjtcblxuXG4vLyBDb21wb25lbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1sZWFkZXIoKSB7IGNvbG9yOiBAbGVhZGVyLWNvbG9yOyB9XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWxlYWRlci1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGludmVyc2UtbGVhZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtY29sb3I7XG5cbi5ob29rLWludmVyc2UtbGVhZGVyKCkgeyBjb2xvcjogQGludmVyc2UtbGVhZGVyLWNvbG9yOyB9IiwiLy8gTmFtZTogICAgICAgICAgICBOb3RpZmljYXRpb25cbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBub3RpZmljYXRpb24gbWVzc2FnZXNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1ub3RpZmljYXRpb25gXG4vL1xuLy8gU3ViLW9iamVjdHM6ICAgICBgdWstbm90aWZpY2F0aW9uLW1lc3NhZ2VgXG4vL1xuLy8gQWRvcHRlZDogICAgICAgICBgdWstbm90aWZpY2F0aW9uLWNsb3NlYFxuLy9cbi8vIE1vZGlmaWVyczogICAgICAgYHVrLW5vdGlmaWNhdGlvbi10b3AtY2VudGVyYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbm90aWZpY2F0aW9uLXRvcC1yaWdodGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW5vdGlmaWNhdGlvbi1ib3R0b20tbGVmdGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW5vdGlmaWNhdGlvbi1ib3R0b20tY2VudGVyYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbm90aWZpY2F0aW9uLWJvdHRvbS1yaWdodGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXByaW1hcnlgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ub3RpZmljYXRpb24tbWVzc2FnZS1zdWNjZXNzYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbm90aWZpY2F0aW9uLW1lc3NhZ2Utd2FybmluZ2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlLWRhbmdlcmBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5Abm90aWZpY2F0aW9uLXBvc2l0aW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMHB4O1xuQG5vdGlmaWNhdGlvbi16LWluZGV4OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC16LWluZGV4ICsgNDA7XG5Abm90aWZpY2F0aW9uLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNTBweDtcblxuQG5vdGlmaWNhdGlvbi1tZXNzYWdlLW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgICAgICAgMTBweDtcbkBub3RpZmljYXRpb24tbWVzc2FnZS1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc21hbGwtZ3V0dGVyO1xuQG5vdGlmaWNhdGlvbi1tZXNzYWdlLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kO1xuQG5vdGlmaWNhdGlvbi1tZXNzYWdlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1jb2xvcjtcbkBub3RpZmljYXRpb24tbWVzc2FnZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbWVkaXVtLWZvbnQtc2l6ZTtcbkBub3RpZmljYXRpb24tbWVzc2FnZS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgIDEuNDtcblxuQG5vdGlmaWNhdGlvbi1jbG9zZS10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQG5vdGlmaWNhdGlvbi1tZXNzYWdlLXBhZGRpbmcgKyA1cHg7XG5Abm90aWZpY2F0aW9uLWNsb3NlLXJpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbm90aWZpY2F0aW9uLW1lc3NhZ2UtcGFkZGluZztcblxuQG5vdGlmaWNhdGlvbi1tZXNzYWdlLXByaW1hcnktY29sb3I6ICAgICAgICAgICAgICAgICAgQGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQ7XG5Abm90aWZpY2F0aW9uLW1lc3NhZ2Utc3VjY2Vzcy1jb2xvcjogICAgICAgICAgICAgICAgICBAZ2xvYmFsLXN1Y2Nlc3MtYmFja2dyb3VuZDtcbkBub3RpZmljYXRpb24tbWVzc2FnZS13YXJuaW5nLWNvbG9yOiAgICAgICAgICAgICAgICAgIEBnbG9iYWwtd2FybmluZy1iYWNrZ3JvdW5kO1xuQG5vdGlmaWNhdGlvbi1tZXNzYWdlLWRhbmdlci1jb2xvcjogICAgICAgICAgICAgICAgICAgQGdsb2JhbC1kYW5nZXItYmFja2dyb3VuZDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogTm90aWZpY2F0aW9uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFNldCBwb3NpdGlvblxuICogMi4gRGltZW5zaW9uc1xuICovXG5cbi51ay1ub3RpZmljYXRpb24ge1xuICAgIC8qIDEgKi9cbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiBAbm90aWZpY2F0aW9uLXBvc2l0aW9uO1xuICAgIGxlZnQ6IEBub3RpZmljYXRpb24tcG9zaXRpb247XG4gICAgei1pbmRleDogQG5vdGlmaWNhdGlvbi16LWluZGV4O1xuICAgIC8qIDIgKi9cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiBAbm90aWZpY2F0aW9uLXdpZHRoO1xuICAgIC5ob29rLW5vdGlmaWNhdGlvbigpO1xufVxuXG5cbi8qIFBvc2l0aW9uIG1vZGlmaWVyc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLW5vdGlmaWNhdGlvbi10b3AtcmlnaHQsXG4udWstbm90aWZpY2F0aW9uLWJvdHRvbS1yaWdodCB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogQG5vdGlmaWNhdGlvbi1wb3NpdGlvbjtcbn1cblxuLnVrLW5vdGlmaWNhdGlvbi10b3AtY2VudGVyLFxuLnVrLW5vdGlmaWNhdGlvbi1ib3R0b20tY2VudGVyIHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IChAbm90aWZpY2F0aW9uLXdpZHRoIC8gLTIpO1xufVxuXG4udWstbm90aWZpY2F0aW9uLWJvdHRvbS1sZWZ0LFxuLnVrLW5vdGlmaWNhdGlvbi1ib3R0b20tcmlnaHQsXG4udWstbm90aWZpY2F0aW9uLWJvdHRvbS1jZW50ZXIge1xuICAgIHRvcDogYXV0bztcbiAgICBib3R0b206IEBub3RpZmljYXRpb24tcG9zaXRpb247XG59XG5cblxuLyogUmVzcG9uc2l2ZW5lc3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIFBob25lcyBwb3J0cmFpdCBhbmQgc21hbGxlciAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IEBicmVha3BvaW50LXhzbWFsbC1tYXgpIHtcblxuICAgIC51ay1ub3RpZmljYXRpb24ge1xuICAgICAgICBsZWZ0OiBAbm90aWZpY2F0aW9uLXBvc2l0aW9uO1xuICAgICAgICByaWdodDogQG5vdGlmaWNhdGlvbi1wb3NpdGlvbjtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbn1cblxuXG4vKiBNZXNzYWdlXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbm90aWZpY2F0aW9uLW1lc3NhZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiBAbm90aWZpY2F0aW9uLW1lc3NhZ2UtcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiBAbm90aWZpY2F0aW9uLW1lc3NhZ2UtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogQG5vdGlmaWNhdGlvbi1tZXNzYWdlLWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogQG5vdGlmaWNhdGlvbi1tZXNzYWdlLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogQG5vdGlmaWNhdGlvbi1tZXNzYWdlLWxpbmUtaGVpZ2h0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAuaG9vay1ub3RpZmljYXRpb24tbWVzc2FnZSgpO1xufVxuXG4qICsgLnVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlIHsgbWFyZ2luLXRvcDogQG5vdGlmaWNhdGlvbi1tZXNzYWdlLW1hcmdpbi10b3A7IH1cblxuXG4vKiBDbG9zZVxuICogQWRvcHRzIGB1ay1jbG9zZWBcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbm90aWZpY2F0aW9uLWNsb3NlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IEBub3RpZmljYXRpb24tY2xvc2UtdG9wO1xuICAgIHJpZ2h0OiBAbm90aWZpY2F0aW9uLWNsb3NlLXJpZ2h0O1xuICAgIC5ob29rLW5vdGlmaWNhdGlvbi1jbG9zZSgpO1xufVxuXG4udWstbm90aWZpY2F0aW9uLW1lc3NhZ2U6aG92ZXIgLnVrLW5vdGlmaWNhdGlvbi1jbG9zZSB7IGRpc3BsYXk6IGJsb2NrOyB9XG5cblxuLyogU3R5bGUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFByaW1hcnlcbiAqL1xuXG4udWstbm90aWZpY2F0aW9uLW1lc3NhZ2UtcHJpbWFyeSB7XG4gICAgY29sb3I6IEBub3RpZmljYXRpb24tbWVzc2FnZS1wcmltYXJ5LWNvbG9yO1xuICAgIC5ob29rLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXByaW1hcnkoKTtcbn1cblxuLypcbiAqIFN1Y2Nlc3NcbiAqL1xuXG4udWstbm90aWZpY2F0aW9uLW1lc3NhZ2Utc3VjY2VzcyB7XG4gICAgY29sb3I6IEBub3RpZmljYXRpb24tbWVzc2FnZS1zdWNjZXNzLWNvbG9yO1xuICAgIC5ob29rLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXN1Y2Nlc3MoKTtcbn1cblxuLypcbiAqIFdhcm5pbmdcbiAqL1xuXG4udWstbm90aWZpY2F0aW9uLW1lc3NhZ2Utd2FybmluZyB7XG4gICAgY29sb3I6IEBub3RpZmljYXRpb24tbWVzc2FnZS13YXJuaW5nLWNvbG9yO1xuICAgIC5ob29rLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXdhcm5pbmcoKTtcbn1cblxuLypcbiAqIERhbmdlclxuICovXG5cbi51ay1ub3RpZmljYXRpb24tbWVzc2FnZS1kYW5nZXIge1xuICAgIGNvbG9yOiBAbm90aWZpY2F0aW9uLW1lc3NhZ2UtZGFuZ2VyLWNvbG9yO1xuICAgIC5ob29rLW5vdGlmaWNhdGlvbi1tZXNzYWdlLWRhbmdlcigpO1xufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbm90aWZpY2F0aW9uLW1pc2MoKTtcblxuLmhvb2stbm90aWZpY2F0aW9uKCkge31cbi5ob29rLW5vdGlmaWNhdGlvbi1tZXNzYWdlKCkge31cbi5ob29rLW5vdGlmaWNhdGlvbi1jbG9zZSgpIHt9XG4uaG9vay1ub3RpZmljYXRpb24tbWVzc2FnZS1wcmltYXJ5KCkge31cbi5ob29rLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXN1Y2Nlc3MoKSB7fVxuLmhvb2stbm90aWZpY2F0aW9uLW1lc3NhZ2Utd2FybmluZygpIHt9XG4uaG9vay1ub3RpZmljYXRpb24tbWVzc2FnZS1kYW5nZXIoKSB7fVxuLmhvb2stbm90aWZpY2F0aW9uLW1pc2MoKSB7fVxuIiwiLy9cbi8vIENvbXBvbmVudDogTm90aWZpY2F0aW9uXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQG5vdGlmaWNhdGlvbi1wb3NpdGlvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTVweDtcbkBub3RpZmljYXRpb24td2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQyMHB4O1xuXG5Abm90aWZpY2F0aW9uLW1lc3NhZ2UtcGFkZGluZzogICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWd1dHRlcjtcbkBub3RpZmljYXRpb24tbWVzc2FnZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZm9udC1zaXplO1xuQG5vdGlmaWNhdGlvbi1tZXNzYWdlLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgMS41O1xuXG5Abm90aWZpY2F0aW9uLWNsb3NlLXRvcDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQG5vdGlmaWNhdGlvbi1tZXNzYWdlLXBhZGRpbmcgLyAyKTtcbkBub3RpZmljYXRpb24tY2xvc2UtcmlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChAbm90aWZpY2F0aW9uLW1lc3NhZ2UtcGFkZGluZyAvIDIpO1xuXG5Abm90aWZpY2F0aW9uLW1lc3NhZ2UtcHJpbWFyeS1jb2xvcjogICAgICAgICAgICAgICAgICBAZ2xvYmFsLWludmVyc2UtY29sb3I7XG5Abm90aWZpY2F0aW9uLW1lc3NhZ2Utc3VjY2Vzcy1jb2xvcjogICAgICAgICAgICAgICAgICBAZ2xvYmFsLWludmVyc2UtY29sb3I7XG5Abm90aWZpY2F0aW9uLW1lc3NhZ2Utd2FybmluZy1jb2xvcjogICAgICAgICAgICAgICAgICBAZ2xvYmFsLWludmVyc2UtY29sb3I7XG5Abm90aWZpY2F0aW9uLW1lc3NhZ2UtZGFuZ2VyLWNvbG9yOiAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWludmVyc2UtY29sb3I7XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBub3RpZmljYXRpb24tbWVzc2FnZS1wcmltYXJ5LWJhY2tncm91bmQ6ICAgICAgICAgICAgIEBnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kO1xuQG5vdGlmaWNhdGlvbi1tZXNzYWdlLXN1Y2Nlc3MtYmFja2dyb3VuZDogICAgICAgICAgICAgQGdsb2JhbC1zdWNjZXNzLWJhY2tncm91bmQ7XG5Abm90aWZpY2F0aW9uLW1lc3NhZ2Utd2FybmluZy1iYWNrZ3JvdW5kOiAgICAgICAgICAgICBAZ2xvYmFsLXdhcm5pbmctYmFja2dyb3VuZDtcbkBub3RpZmljYXRpb24tbWVzc2FnZS1kYW5nZXItYmFja2dyb3VuZDogICAgICAgICAgICAgIEBnbG9iYWwtZGFuZ2VyLWJhY2tncm91bmQ7XG5cblxuQG5vdGlmaWNhdGlvbi1tZXNzYWdlLXByaW1hcnktY29sb3ItbW9kZTogICAgICAgICAgICAgbGlnaHQ7XG5Abm90aWZpY2F0aW9uLW1lc3NhZ2Utc3VjY2Vzcy1jb2xvci1tb2RlOiAgICAgICAgICAgICBsaWdodDtcbkBub3RpZmljYXRpb24tbWVzc2FnZS13YXJuaW5nLWNvbG9yLW1vZGU6ICAgICAgICAgICAgIGxpZ2h0O1xuQG5vdGlmaWNhdGlvbi1tZXNzYWdlLWRhbmdlci1jb2xvci1tb2RlOiAgICAgICAgICAgICAgbGlnaHQ7XG5cblxuLy8gQ29tcG9uZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbm90aWZpY2F0aW9uKCkge31cblxuXG4vLyBNZXNzYWdlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbm90aWZpY2F0aW9uLW1lc3NhZ2UoKSB7fVxuXG5cbi8vIENsb3NlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbm90aWZpY2F0aW9uLWNsb3NlKCkge31cblxuXG4vLyBTdHlsZSBtb2RpZmllcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1ub3RpZmljYXRpb24tbWVzc2FnZS1wcmltYXJ5KCkgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAbm90aWZpY2F0aW9uLW1lc3NhZ2UtcHJpbWFyeS1iYWNrZ3JvdW5kOyB9XG5cbi5ob29rLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXN1Y2Nlc3MoKSB7IGJhY2tncm91bmQtY29sb3I6IEBub3RpZmljYXRpb24tbWVzc2FnZS1zdWNjZXNzLWJhY2tncm91bmQ7IH1cblxuLmhvb2stbm90aWZpY2F0aW9uLW1lc3NhZ2Utd2FybmluZygpIHsgYmFja2dyb3VuZC1jb2xvcjogQG5vdGlmaWNhdGlvbi1tZXNzYWdlLXdhcm5pbmctYmFja2dyb3VuZDsgfVxuXG4uaG9vay1ub3RpZmljYXRpb24tbWVzc2FnZS1kYW5nZXIoKSB7IGJhY2tncm91bmQtY29sb3I6IEBub3RpZmljYXRpb24tbWVzc2FnZS1kYW5nZXItYmFja2dyb3VuZDsgfVxuXG5cbi8vIE1pc2NlbGxhbmVvdXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1ub3RpZmljYXRpb24tbWlzYygpIHtcblxuICAgIC51ay1ub3RpZmljYXRpb24tbWVzc2FnZS1wcmltYXJ5IC51ay1jbG9zZTpleHRlbmQoLnVrLWxpZ2h0IC51ay1jbG9zZSBhbGwpIHdoZW4gKEBub3RpZmljYXRpb24tbWVzc2FnZS1wcmltYXJ5LWNvbG9yLW1vZGUgPSBsaWdodCkge31cbiAgICAudWstbm90aWZpY2F0aW9uLW1lc3NhZ2UtcHJpbWFyeSAudWstY2xvc2U6ZXh0ZW5kKC51ay1kYXJrIC51ay1jbG9zZSBhbGwpIHdoZW4gKEBub3RpZmljYXRpb24tbWVzc2FnZS1wcmltYXJ5LWNvbG9yLW1vZGUgPSBkYXJrKSB7fVxuICAgIC51ay1ub3RpZmljYXRpb24tbWVzc2FnZS1wcmltYXJ5IC51ay1idXR0b24tZGVmYXVsdDpleHRlbmQoLnVrLWxpZ2h0IC51ay1idXR0b24tZGVmYXVsdCBhbGwpIHdoZW4gKEBub3RpZmljYXRpb24tbWVzc2FnZS1wcmltYXJ5LWNvbG9yLW1vZGUgPSBsaWdodCkge31cbiAgICAudWstbm90aWZpY2F0aW9uLW1lc3NhZ2UtcHJpbWFyeSAudWstYnV0dG9uLWRlZmF1bHQ6ZXh0ZW5kKC51ay1kYXJrIC51ay1idXR0b24tZGVmYXVsdCBhbGwpIHdoZW4gKEBub3RpZmljYXRpb24tbWVzc2FnZS1wcmltYXJ5LWNvbG9yLW1vZGUgPSBkYXJrKSB7fVxuICAgIC51ay1ub3RpZmljYXRpb24tbWVzc2FnZS1wcmltYXJ5IC51ay1idXR0b24tcHJpbWFyeTpleHRlbmQoLnVrLWxpZ2h0IC51ay1idXR0b24tcHJpbWFyeSBhbGwpIHdoZW4gKEBub3RpZmljYXRpb24tbWVzc2FnZS1wcmltYXJ5LWNvbG9yLW1vZGUgPSBsaWdodCkge31cbiAgICAudWstbm90aWZpY2F0aW9uLW1lc3NhZ2UtcHJpbWFyeSAudWstYnV0dG9uLXByaW1hcnk6ZXh0ZW5kKC51ay1kYXJrIC51ay1idXR0b24tcHJpbWFyeSBhbGwpIHdoZW4gKEBub3RpZmljYXRpb24tbWVzc2FnZS1wcmltYXJ5LWNvbG9yLW1vZGUgPSBkYXJrKSB7fVxuICAgIC51ay1ub3RpZmljYXRpb24tbWVzc2FnZS1wcmltYXJ5IC51ay1idXR0b24tc2Vjb25kYXJ5OmV4dGVuZCgudWstbGlnaHQgLnVrLWJ1dHRvbi1zZWNvbmRhcnkgYWxsKSB3aGVuIChAbm90aWZpY2F0aW9uLW1lc3NhZ2UtcHJpbWFyeS1jb2xvci1tb2RlID0gbGlnaHQpIHt9XG4gICAgLnVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXByaW1hcnkgLnVrLWJ1dHRvbi1zZWNvbmRhcnk6ZXh0ZW5kKC51ay1kYXJrIC51ay1idXR0b24tc2Vjb25kYXJ5IGFsbCkgd2hlbiAoQG5vdGlmaWNhdGlvbi1tZXNzYWdlLXByaW1hcnktY29sb3ItbW9kZSA9IGRhcmspIHt9XG4gICAgLnVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXByaW1hcnkgLnVrLWJ1dHRvbi10ZXh0OmV4dGVuZCgudWstbGlnaHQgLnVrLWJ1dHRvbi10ZXh0IGFsbCkgd2hlbiAoQG5vdGlmaWNhdGlvbi1tZXNzYWdlLXByaW1hcnktY29sb3ItbW9kZSA9IGxpZ2h0KSB7fVxuICAgIC51ay1ub3RpZmljYXRpb24tbWVzc2FnZS1wcmltYXJ5IC51ay1idXR0b24tdGV4dDpleHRlbmQoLnVrLWRhcmsgLnVrLWJ1dHRvbi10ZXh0IGFsbCkgd2hlbiAoQG5vdGlmaWNhdGlvbi1tZXNzYWdlLXByaW1hcnktY29sb3ItbW9kZSA9IGRhcmspIHt9XG5cbiAgICAudWstbm90aWZpY2F0aW9uLW1lc3NhZ2Utc3VjY2VzcyAudWstY2xvc2U6ZXh0ZW5kKC51ay1saWdodCAudWstY2xvc2UgYWxsKSB3aGVuIChAbm90aWZpY2F0aW9uLW1lc3NhZ2Utc3VjY2Vzcy1jb2xvci1tb2RlID0gbGlnaHQpIHt9XG4gICAgLnVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXN1Y2Nlc3MgLnVrLWNsb3NlOmV4dGVuZCgudWstZGFyayAudWstY2xvc2UgYWxsKSB3aGVuIChAbm90aWZpY2F0aW9uLW1lc3NhZ2Utc3VjY2Vzcy1jb2xvci1tb2RlID0gZGFyaykge31cbiAgICAudWstbm90aWZpY2F0aW9uLW1lc3NhZ2Utc3VjY2VzcyAudWstYnV0dG9uLWRlZmF1bHQ6ZXh0ZW5kKC51ay1saWdodCAudWstYnV0dG9uLWRlZmF1bHQgYWxsKSB3aGVuIChAbm90aWZpY2F0aW9uLW1lc3NhZ2Utc3VjY2Vzcy1jb2xvci1tb2RlID0gbGlnaHQpIHt9XG4gICAgLnVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXN1Y2Nlc3MgLnVrLWJ1dHRvbi1kZWZhdWx0OmV4dGVuZCgudWstZGFyayAudWstYnV0dG9uLWRlZmF1bHQgYWxsKSB3aGVuIChAbm90aWZpY2F0aW9uLW1lc3NhZ2Utc3VjY2Vzcy1jb2xvci1tb2RlID0gZGFyaykge31cbiAgICAudWstbm90aWZpY2F0aW9uLW1lc3NhZ2Utc3VjY2VzcyAudWstYnV0dG9uLXByaW1hcnk6ZXh0ZW5kKC51ay1saWdodCAudWstYnV0dG9uLXByaW1hcnkgYWxsKSB3aGVuIChAbm90aWZpY2F0aW9uLW1lc3NhZ2Utc3VjY2Vzcy1jb2xvci1tb2RlID0gbGlnaHQpIHt9XG4gICAgLnVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXN1Y2Nlc3MgLnVrLWJ1dHRvbi1wcmltYXJ5OmV4dGVuZCgudWstZGFyayAudWstYnV0dG9uLXByaW1hcnkgYWxsKSB3aGVuIChAbm90aWZpY2F0aW9uLW1lc3NhZ2Utc3VjY2Vzcy1jb2xvci1tb2RlID0gZGFyaykge31cbiAgICAudWstbm90aWZpY2F0aW9uLW1lc3NhZ2Utc3VjY2VzcyAudWstYnV0dG9uLXNlY29uZGFyeTpleHRlbmQoLnVrLWxpZ2h0IC51ay1idXR0b24tc2Vjb25kYXJ5IGFsbCkgd2hlbiAoQG5vdGlmaWNhdGlvbi1tZXNzYWdlLXN1Y2Nlc3MtY29sb3ItbW9kZSA9IGxpZ2h0KSB7fVxuICAgIC51ay1ub3RpZmljYXRpb24tbWVzc2FnZS1zdWNjZXNzIC51ay1idXR0b24tc2Vjb25kYXJ5OmV4dGVuZCgudWstZGFyayAudWstYnV0dG9uLXNlY29uZGFyeSBhbGwpIHdoZW4gKEBub3RpZmljYXRpb24tbWVzc2FnZS1zdWNjZXNzLWNvbG9yLW1vZGUgPSBkYXJrKSB7fVxuICAgIC51ay1ub3RpZmljYXRpb24tbWVzc2FnZS1zdWNjZXNzIC51ay1idXR0b24tdGV4dDpleHRlbmQoLnVrLWxpZ2h0IC51ay1idXR0b24tdGV4dCBhbGwpIHdoZW4gKEBub3RpZmljYXRpb24tbWVzc2FnZS1zdWNjZXNzLWNvbG9yLW1vZGUgPSBsaWdodCkge31cbiAgICAudWstbm90aWZpY2F0aW9uLW1lc3NhZ2Utc3VjY2VzcyAudWstYnV0dG9uLXRleHQ6ZXh0ZW5kKC51ay1kYXJrIC51ay1idXR0b24tdGV4dCBhbGwpIHdoZW4gKEBub3RpZmljYXRpb24tbWVzc2FnZS1zdWNjZXNzLWNvbG9yLW1vZGUgPSBkYXJrKSB7fVxuXG4gICAgLnVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXdhcm5pbmcgLnVrLWNsb3NlOmV4dGVuZCgudWstbGlnaHQgLnVrLWNsb3NlIGFsbCkgd2hlbiAoQG5vdGlmaWNhdGlvbi1tZXNzYWdlLXdhcm5pbmctY29sb3ItbW9kZSA9IGxpZ2h0KSB7fVxuICAgIC51ay1ub3RpZmljYXRpb24tbWVzc2FnZS13YXJuaW5nIC51ay1jbG9zZTpleHRlbmQoLnVrLWRhcmsgLnVrLWNsb3NlIGFsbCkgd2hlbiAoQG5vdGlmaWNhdGlvbi1tZXNzYWdlLXdhcm5pbmctY29sb3ItbW9kZSA9IGRhcmspIHt9XG4gICAgLnVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXdhcm5pbmcgLnVrLWJ1dHRvbi1kZWZhdWx0OmV4dGVuZCgudWstbGlnaHQgLnVrLWJ1dHRvbi1kZWZhdWx0IGFsbCkgd2hlbiAoQG5vdGlmaWNhdGlvbi1tZXNzYWdlLXdhcm5pbmctY29sb3ItbW9kZSA9IGxpZ2h0KSB7fVxuICAgIC51ay1ub3RpZmljYXRpb24tbWVzc2FnZS13YXJuaW5nIC51ay1idXR0b24tZGVmYXVsdDpleHRlbmQoLnVrLWRhcmsgLnVrLWJ1dHRvbi1kZWZhdWx0IGFsbCkgd2hlbiAoQG5vdGlmaWNhdGlvbi1tZXNzYWdlLXdhcm5pbmctY29sb3ItbW9kZSA9IGRhcmspIHt9XG4gICAgLnVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXdhcm5pbmcgLnVrLWJ1dHRvbi1wcmltYXJ5OmV4dGVuZCgudWstbGlnaHQgLnVrLWJ1dHRvbi1wcmltYXJ5IGFsbCkgd2hlbiAoQG5vdGlmaWNhdGlvbi1tZXNzYWdlLXdhcm5pbmctY29sb3ItbW9kZSA9IGxpZ2h0KSB7fVxuICAgIC51ay1ub3RpZmljYXRpb24tbWVzc2FnZS13YXJuaW5nIC51ay1idXR0b24tcHJpbWFyeTpleHRlbmQoLnVrLWRhcmsgLnVrLWJ1dHRvbi1wcmltYXJ5IGFsbCkgd2hlbiAoQG5vdGlmaWNhdGlvbi1tZXNzYWdlLXdhcm5pbmctY29sb3ItbW9kZSA9IGRhcmspIHt9XG4gICAgLnVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXdhcm5pbmcgLnVrLWJ1dHRvbi1zZWNvbmRhcnk6ZXh0ZW5kKC51ay1saWdodCAudWstYnV0dG9uLXNlY29uZGFyeSBhbGwpIHdoZW4gKEBub3RpZmljYXRpb24tbWVzc2FnZS13YXJuaW5nLWNvbG9yLW1vZGUgPSBsaWdodCkge31cbiAgICAudWstbm90aWZpY2F0aW9uLW1lc3NhZ2Utd2FybmluZyAudWstYnV0dG9uLXNlY29uZGFyeTpleHRlbmQoLnVrLWRhcmsgLnVrLWJ1dHRvbi1zZWNvbmRhcnkgYWxsKSB3aGVuIChAbm90aWZpY2F0aW9uLW1lc3NhZ2Utd2FybmluZy1jb2xvci1tb2RlID0gZGFyaykge31cbiAgICAudWstbm90aWZpY2F0aW9uLW1lc3NhZ2Utd2FybmluZyAudWstYnV0dG9uLXRleHQ6ZXh0ZW5kKC51ay1saWdodCAudWstYnV0dG9uLXRleHQgYWxsKSB3aGVuIChAbm90aWZpY2F0aW9uLW1lc3NhZ2Utd2FybmluZy1jb2xvci1tb2RlID0gbGlnaHQpIHt9XG4gICAgLnVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlLXdhcm5pbmcgLnVrLWJ1dHRvbi10ZXh0OmV4dGVuZCgudWstZGFyayAudWstYnV0dG9uLXRleHQgYWxsKSB3aGVuIChAbm90aWZpY2F0aW9uLW1lc3NhZ2Utd2FybmluZy1jb2xvci1tb2RlID0gZGFyaykge31cblxuICAgIC51ay1ub3RpZmljYXRpb24tbWVzc2FnZS1kYW5nZXIgLnVrLWNsb3NlOmV4dGVuZCgudWstbGlnaHQgLnVrLWNsb3NlIGFsbCkgd2hlbiAoQG5vdGlmaWNhdGlvbi1tZXNzYWdlLWRhbmdlci1jb2xvci1tb2RlID0gbGlnaHQpIHt9XG4gICAgLnVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlLWRhbmdlciAudWstY2xvc2U6ZXh0ZW5kKC51ay1kYXJrIC51ay1jbG9zZSBhbGwpIHdoZW4gKEBub3RpZmljYXRpb24tbWVzc2FnZS1kYW5nZXItY29sb3ItbW9kZSA9IGRhcmspIHt9XG4gICAgLnVrLW5vdGlmaWNhdGlvbi1tZXNzYWdlLWRhbmdlciAudWstYnV0dG9uLWRlZmF1bHQ6ZXh0ZW5kKC51ay1saWdodCAudWstYnV0dG9uLWRlZmF1bHQgYWxsKSB3aGVuIChAbm90aWZpY2F0aW9uLW1lc3NhZ2UtZGFuZ2VyLWNvbG9yLW1vZGUgPSBsaWdodCkge31cbiAgICAudWstbm90aWZpY2F0aW9uLW1lc3NhZ2UtZGFuZ2VyIC51ay1idXR0b24tZGVmYXVsdDpleHRlbmQoLnVrLWRhcmsgLnVrLWJ1dHRvbi1kZWZhdWx0IGFsbCkgd2hlbiAoQG5vdGlmaWNhdGlvbi1tZXNzYWdlLWRhbmdlci1jb2xvci1tb2RlID0gZGFyaykge31cbiAgICAudWstbm90aWZpY2F0aW9uLW1lc3NhZ2UtZGFuZ2VyIC51ay1idXR0b24tcHJpbWFyeTpleHRlbmQoLnVrLWxpZ2h0IC51ay1idXR0b24tcHJpbWFyeSBhbGwpIHdoZW4gKEBub3RpZmljYXRpb24tbWVzc2FnZS1kYW5nZXItY29sb3ItbW9kZSA9IGxpZ2h0KSB7fVxuICAgIC51ay1ub3RpZmljYXRpb24tbWVzc2FnZS1kYW5nZXIgLnVrLWJ1dHRvbi1wcmltYXJ5OmV4dGVuZCgudWstZGFyayAudWstYnV0dG9uLXByaW1hcnkgYWxsKSB3aGVuIChAbm90aWZpY2F0aW9uLW1lc3NhZ2UtZGFuZ2VyLWNvbG9yLW1vZGUgPSBkYXJrKSB7fVxuICAgIC51ay1ub3RpZmljYXRpb24tbWVzc2FnZS1kYW5nZXIgLnVrLWJ1dHRvbi1zZWNvbmRhcnk6ZXh0ZW5kKC51ay1saWdodCAudWstYnV0dG9uLXNlY29uZGFyeSBhbGwpIHdoZW4gKEBub3RpZmljYXRpb24tbWVzc2FnZS1kYW5nZXItY29sb3ItbW9kZSA9IGxpZ2h0KSB7fVxuICAgIC51ay1ub3RpZmljYXRpb24tbWVzc2FnZS1kYW5nZXIgLnVrLWJ1dHRvbi1zZWNvbmRhcnk6ZXh0ZW5kKC51ay1kYXJrIC51ay1idXR0b24tc2Vjb25kYXJ5IGFsbCkgd2hlbiAoQG5vdGlmaWNhdGlvbi1tZXNzYWdlLWRhbmdlci1jb2xvci1tb2RlID0gZGFyaykge31cbiAgICAudWstbm90aWZpY2F0aW9uLW1lc3NhZ2UtZGFuZ2VyIC51ay1idXR0b24tdGV4dDpleHRlbmQoLnVrLWxpZ2h0IC51ay1idXR0b24tdGV4dCBhbGwpIHdoZW4gKEBub3RpZmljYXRpb24tbWVzc2FnZS1kYW5nZXItY29sb3ItbW9kZSA9IGxpZ2h0KSB7fVxuICAgIC51ay1ub3RpZmljYXRpb24tbWVzc2FnZS1kYW5nZXIgLnVrLWJ1dHRvbi10ZXh0OmV4dGVuZCgudWstZGFyayAudWstYnV0dG9uLXRleHQgYWxsKSB3aGVuIChAbm90aWZpY2F0aW9uLW1lc3NhZ2UtZGFuZ2VyLWNvbG9yLW1vZGUgPSBkYXJrKSB7fVxuXG59XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIFRvb2x0aXBcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSB0b29sdGlwc1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLXRvb2x0aXBgXG4vL1xuLy8gTW9kaWZpZXJzICAgICAgICBgdWstdG9vbHRpcC10b3BgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10b29sdGlwLXRvcC1sZWZ0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstdG9vbHRpcC10b3AtcmlnaHRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10b29sdGlwLWJvdHRvbWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRvb2x0aXAtYm90dG9tLWxlZnRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10b29sdGlwLWJvdHRvbS1yaWdodGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRvb2x0aXAtbGVmdGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRvb2x0aXAtcmlnaHRgXG4vL1xuLy8gU3RhdGVzOiAgICAgICAgICBgdWstYWN0aXZlYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkB0b29sdGlwLXotaW5kZXg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtei1pbmRleCArIDMwO1xuQHRvb2x0aXAtbWFyZ2luOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTBweDtcbkB0b29sdGlwLW1heC13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMHB4O1xuQHRvb2x0aXAtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgM3B4O1xuQHRvb2x0aXAtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICAgNnB4O1xuQHRvb2x0aXAtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIzY2NjtcbkB0b29sdGlwLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICAgICAgIDJweDtcbkB0b29sdGlwLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtaW52ZXJzZS1jb2xvcjtcbkB0b29sdGlwLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEycHg7XG5cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogVG9vbHRpcFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBIaWRlIGJ5IGRlZmF1bHRcbiAqIDIuIFBvc2l0aW9uXG4gKiAzLiBSZW1vdmUgdG9vbHRpcCBmcm9tIGRvY3VtZW50IGZsb3cgdG8ga2VlcCB0aGUgVUlraXQgY29udGFpbmVyIGZyb20gY2hhbmdpbmcgaXRzIHNpemUgd2hlbiBpbmplY3RlZCBpbnRvIHRoZSBkb2N1bWVudCBpbml0aWFsbHlcbiAqIDQuIERpbWVuc2lvbnNcbiAqIDUuIFN0eWxlXG4gKi9cblxuLnVrLXRvb2x0aXAge1xuICAgIC8qIDEgKi9cbiAgICBkaXNwbGF5OiBub25lO1xuICAgIC8qIDIgKi9cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogQHRvb2x0aXAtei1pbmRleDtcbiAgICAtLXVrLXBvc2l0aW9uLW9mZnNldDogQHRvb2x0aXAtbWFyZ2luO1xuICAgIC0tdWstcG9zaXRpb24tdmlld3BvcnQtb2Zmc2V0OiAxMDtcbiAgICAvKiAzICovXG4gICAgdG9wOiAwO1xuICAgIC8qIDQgKi9cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1heC13aWR0aDogQHRvb2x0aXAtbWF4LXdpZHRoO1xuICAgIHBhZGRpbmc6IEB0b29sdGlwLXBhZGRpbmctdmVydGljYWwgQHRvb2x0aXAtcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIC8qIDUgKi9cbiAgICBiYWNrZ3JvdW5kOiBAdG9vbHRpcC1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1yYWRpdXM6IEB0b29sdGlwLWJvcmRlci1yYWRpdXM7XG4gICAgY29sb3I6IEB0b29sdGlwLWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogQHRvb2x0aXAtZm9udC1zaXplO1xuICAgIC5ob29rLXRvb2x0aXAoKTtcbn1cblxuLyogU2hvdyAqL1xuLnVrLXRvb2x0aXAudWstYWN0aXZlIHsgZGlzcGxheTogYmxvY2s7IH1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXRvb2x0aXAtbWlzYygpO1xuXG4uaG9vay10b29sdGlwKCkge31cbi5ob29rLXRvb2x0aXAtbWlzYygpIHt9XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIFNvcnRhYmxlXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgc29ydGFibGUgZ3JpZHMgYW5kIGxpc3RzXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstc29ydGFibGVgXG4vL1xuLy8gU3ViLW9iamVjdHM6ICAgICBgdWstc29ydGFibGUtZHJhZ2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLXNvcnRhYmxlLXBsYWNlaG9sZGVyYFxuLy8gICAgICAgICAgICAgICAgICBgdWstc29ydGFibGUtaGFuZGxlYFxuLy9cbi8vIE1vZGlmaWVyczogICAgICAgYHVrLXNvcnRhYmxlLWVtcHR5YFxuLy9cbi8vIFN0YXRlczogICAgICAgICAgYHVrLWRyYWdgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQHNvcnRhYmxlLWRyYWdnZWQtei1pbmRleDogICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC16LWluZGV4ICsgNTA7XG5cbkBzb3J0YWJsZS1wbGFjZWhvbGRlci1vcGFjaXR5OiAgICAgICAgICAgICAgICAgIDA7XG5cbkBzb3J0YWJsZS1lbXB0eS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgIDUwcHg7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFNvcnRhYmxlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXNvcnRhYmxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLmhvb2stc29ydGFibGUoKTtcbn1cblxuLypcbiAqIFJlbW92ZSBtYXJnaW4gZnJvbSB0aGUgbGFzdC1jaGlsZFxuICovXG5cbi51ay1zb3J0YWJsZSA+IDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5cbi8qIERyYWdcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstc29ydGFibGUtZHJhZyB7XG4gICAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG4gICAgei1pbmRleDogQHNvcnRhYmxlLWRyYWdnZWQtei1pbmRleCAhaW1wb3J0YW50O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIC5ob29rLXNvcnRhYmxlLWRyYWcoKTtcbn1cblxuXG4vKiBQbGFjZWhvbGRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1zb3J0YWJsZS1wbGFjZWhvbGRlciB7XG4gICAgb3BhY2l0eTogQHNvcnRhYmxlLXBsYWNlaG9sZGVyLW9wYWNpdHk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgLmhvb2stc29ydGFibGUtcGxhY2Vob2xkZXIoKTtcbn1cblxuXG4vKiBFbXB0eSBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1zb3J0YWJsZS1lbXB0eSB7XG4gICAgbWluLWhlaWdodDogQHNvcnRhYmxlLWVtcHR5LWhlaWdodDtcbiAgICAuaG9vay1zb3J0YWJsZS1lbXB0eSgpO1xufVxuXG5cbi8qIEhhbmRsZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIEhvdmVyICovXG4udWstc29ydGFibGUtaGFuZGxlOmhvdmVyIHsgY3Vyc29yOiBtb3ZlOyB9XG5cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXNvcnRhYmxlLW1pc2MoKTtcblxuLmhvb2stc29ydGFibGUoKSB7fVxuLmhvb2stc29ydGFibGUtZHJhZygpIHt9XG4uaG9vay1zb3J0YWJsZS1wbGFjZWhvbGRlcigpIHt9XG4uaG9vay1zb3J0YWJsZS1lbXB0eSgpIHt9XG4uaG9vay1zb3J0YWJsZS1taXNjKCkge31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgQ291bnRkb3duXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgY291bnRkb3duIHRpbWVyc1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWNvdW50ZG93bmBcbi8vXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay1jb3VudGRvd24tbnVtYmVyYFxuLy8gICAgICAgICAgICAgICAgICBgdWstY291bnRkb3duLXNlcGFyYXRvcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWNvdW50ZG93bi1sYWJlbGBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AY291bnRkb3duLW51bWJlci1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAwLjg7XG5AY291bnRkb3duLW51bWJlci1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAycmVtOyAvLyAzMnB4XG5AY291bnRkb3duLW51bWJlci1mb250LXNpemUtczogICAgICAgICAgICAgICAgICA0cmVtOyAvLyA2NHB4XG5AY291bnRkb3duLW51bWJlci1mb250LXNpemUtbTogICAgICAgICAgICAgICAgICA2cmVtOyAvLyA5NnB4XG5cbkBjb3VudGRvd24tc2VwYXJhdG9yLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgIDEuNjtcbkBjb3VudGRvd24tc2VwYXJhdG9yLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgIDFyZW07IC8vIDE2cHhcbkBjb3VudGRvd24tc2VwYXJhdG9yLWZvbnQtc2l6ZS1zOiAgICAgICAgICAgICAgIDJyZW07IC8vIDMycHhcbkBjb3VudGRvd24tc2VwYXJhdG9yLWZvbnQtc2l6ZS1tOiAgICAgICAgICAgICAgIDNyZW07IC8vIDQ4cHhcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogQ291bnRkb3duXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWNvdW50ZG93biB7XG4gICAgLmhvb2stY291bnRkb3duKCk7XG59XG5cblxuLyogSXRlbVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1jb3VudGRvd24tbnVtYmVyLFxuLnVrLWNvdW50ZG93bi1zZXBhcmF0b3Ige1xuICAgIC5ob29rLWNvdW50ZG93bi1pdGVtKCk7XG59XG5cblxuLyogTnVtYmVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuXG4vKlxuICogMS4gTWFrZSBudW1iZXJzIGFsbCBvZiB0aGUgc2FtZSBzaXplIHRvIHByZXZlbnQganVtcGluZy4gTXVzdCBiZSBzdXBwb3J0ZWQgYnkgdGhlIGZvbnQuXG4gKiAyLiBTdHlsZVxuICovXG5cbi51ay1jb3VudGRvd24tbnVtYmVyIHtcbiAgICAvKiAxICovXG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICAvKiAyICovXG4gICAgZm9udC1zaXplOiBAY291bnRkb3duLW51bWJlci1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IEBjb3VudGRvd24tbnVtYmVyLWxpbmUtaGVpZ2h0O1xuICAgIC5ob29rLWNvdW50ZG93bi1udW1iZXIoKTtcbn1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1zbWFsbCkge1xuXG4gICAgLnVrLWNvdW50ZG93bi1udW1iZXIgeyBmb250LXNpemU6IEBjb3VudGRvd24tbnVtYmVyLWZvbnQtc2l6ZS1zOyB9XG5cbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAudWstY291bnRkb3duLW51bWJlciB7IGZvbnQtc2l6ZTogQGNvdW50ZG93bi1udW1iZXItZm9udC1zaXplLW07IH1cblxufVxuXG5cbi8qIFNlcGFyYXRvclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1jb3VudGRvd24tc2VwYXJhdG9yIHtcbiAgICBmb250LXNpemU6IEBjb3VudGRvd24tc2VwYXJhdG9yLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogQGNvdW50ZG93bi1zZXBhcmF0b3ItbGluZS1oZWlnaHQ7XG4gICAgLmhvb2stY291bnRkb3duLXNlcGFyYXRvcigpO1xufVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LXNtYWxsKSB7XG5cbiAgICAudWstY291bnRkb3duLXNlcGFyYXRvciB7IGZvbnQtc2l6ZTogQGNvdW50ZG93bi1zZXBhcmF0b3ItZm9udC1zaXplLXM7IH1cblxufVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1tZWRpdW0pIHtcblxuICAgIC51ay1jb3VudGRvd24tc2VwYXJhdG9yIHsgZm9udC1zaXplOiBAY291bnRkb3duLXNlcGFyYXRvci1mb250LXNpemUtbTsgfVxuXG59XG5cblxuLyogTGFiZWxcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstY291bnRkb3duLWxhYmVsIHtcbiAgICAuaG9vay1jb3VudGRvd24tbGFiZWwoKTtcbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWNvdW50ZG93bi1taXNjKCk7XG5cbi5ob29rLWNvdW50ZG93bigpIHt9XG4uaG9vay1jb3VudGRvd24taXRlbSgpIHt9XG4uaG9vay1jb3VudGRvd24tbnVtYmVyKCkge31cbi5ob29rLWNvdW50ZG93bi1zZXBhcmF0b3IoKSB7fVxuLmhvb2stY291bnRkb3duLWxhYmVsKCkge31cbi5ob29rLWNvdW50ZG93bi1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2staW52ZXJzZSgpIHtcblxuICAgIC51ay1jb3VudGRvd24tbnVtYmVyLFxuICAgIC51ay1jb3VudGRvd24tc2VwYXJhdG9yIHtcbiAgICAgICAgLmhvb2staW52ZXJzZS1jb3VudGRvd24taXRlbSgpO1xuICAgIH1cblxuICAgIC51ay1jb3VudGRvd24tbnVtYmVyIHtcbiAgICAgICAgLmhvb2staW52ZXJzZS1jb3VudGRvd24tbnVtYmVyKCk7XG4gICAgfVxuXG4gICAgLnVrLWNvdW50ZG93bi1zZXBhcmF0b3Ige1xuICAgICAgICAuaG9vay1pbnZlcnNlLWNvdW50ZG93bi1zZXBhcmF0b3IoKTtcbiAgICB9XG5cbiAgICAudWstY291bnRkb3duLWxhYmVsIHtcbiAgICAgICAgLmhvb2staW52ZXJzZS1jb3VudGRvd24tbGFiZWwoKTtcbiAgICB9XG5cbn1cblxuLmhvb2staW52ZXJzZS1jb3VudGRvd24taXRlbSgpIHt9XG4uaG9vay1pbnZlcnNlLWNvdW50ZG93bi1udW1iZXIoKSB7fVxuLmhvb2staW52ZXJzZS1jb3VudGRvd24tc2VwYXJhdG9yKCkge31cbi5ob29rLWludmVyc2UtY291bnRkb3duLWxhYmVsKCkge31cbiIsIi8vXG4vLyBDb21wb25lbnQ6IENvdW50ZG93blxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBjb3VudGRvd24taXRlbS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AY291bnRkb3duLWl0ZW0tZm9udC1mYW1pbHk6ICAgICAgICAgICAgICAgICAgICBpbmhlcml0O1xuQGNvdW50ZG93bi1pdGVtLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgaW5oZXJpdDtcbkBjb3VudGRvd24taXRlbS10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgICAgICAgIGluaGVyaXQ7XG5AY291bnRkb3duLWl0ZW0tbGV0dGVyLXNwYWNpbmc6ICAgICAgICAgICAgICAgICBpbmhlcml0O1xuQGNvdW50ZG93bi1pdGVtLWZvbnQtc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgaW5oZXJpdDtcblxuQGNvdW50ZG93bi1sYWJlbC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1mb250LXNpemU7XG5AY291bnRkb3duLWxhYmVsLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWNvbG9yO1xuQGNvdW50ZG93bi1sYWJlbC1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgaW5oZXJpdDtcbkBjb3VudGRvd24tbGFiZWwtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgIGluaGVyaXQ7XG5AY291bnRkb3duLWxhYmVsLXRleHQtdHJhbnNmb3JtOiAgICAgICAgICAgICAgICBpbmhlcml0O1xuQGNvdW50ZG93bi1sYWJlbC1sZXR0ZXItc3BhY2luZzogICAgICAgICAgICAgICAgaW5oZXJpdDtcbkBjb3VudGRvd24tbGFiZWwtZm9udC1zdHlsZTogICAgICAgICAgICAgICAgICAgIGluaGVyaXQ7XG5cblxuLy8gQ29tcG9uZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stY291bnRkb3duKCkge31cblxuXG4vLyBJdGVtXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stY291bnRkb3duLWl0ZW0oKSB7IGNvbG9yOiBAY291bnRkb3duLWl0ZW0tY29sb3I7IH1cblxuLmhvb2stY291bnRkb3duLWl0ZW0oKSB3aGVuIG5vdCAoQGNvdW50ZG93bi1pdGVtLWZvbnQtZmFtaWx5ID0gaW5oZXJpdCkge1xuICAgIGZvbnQtZmFtaWx5OiBAY291bnRkb3duLWl0ZW0tZm9udC1mYW1pbHk7XG59XG5cbi5ob29rLWNvdW50ZG93bi1pdGVtKCkgd2hlbiBub3QgKEBjb3VudGRvd24taXRlbS1mb250LXdlaWdodCA9IGluaGVyaXQpIHtcbiAgICBmb250LXdlaWdodDogQGNvdW50ZG93bi1pdGVtLWZvbnQtd2VpZ2h0O1xufVxuXG4uaG9vay1jb3VudGRvd24taXRlbSgpIHdoZW4gbm90IChAY291bnRkb3duLWl0ZW0tdGV4dC10cmFuc2Zvcm0gPSBpbmhlcml0KSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IEBjb3VudGRvd24taXRlbS10ZXh0LXRyYW5zZm9ybTtcbn1cblxuLmhvb2stY291bnRkb3duLWl0ZW0oKSB3aGVuIG5vdCAoQGNvdW50ZG93bi1pdGVtLWxldHRlci1zcGFjaW5nID0gaW5oZXJpdCkge1xuICAgIGxldHRlci1zcGFjaW5nOiBAY291bnRkb3duLWl0ZW0tbGV0dGVyLXNwYWNpbmc7XG59XG5cbi5ob29rLWNvdW50ZG93bi1pdGVtKCkgd2hlbiBub3QgKEBjb3VudGRvd24taXRlbS1mb250LXN0eWxlID0gaW5oZXJpdCkge1xuICAgIGZvbnQtc3R5bGU6IEBjb3VudGRvd24taXRlbS1mb250LXN0eWxlO1xufVxuXG5cbi8vIE51bWJlclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWNvdW50ZG93bi1udW1iZXIoKSB7fVxuXG5cbi8vIFNlcGFyYXRvclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWNvdW50ZG93bi1zZXBhcmF0b3IoKSB7fVxuXG5cbi8vIExhYmVsXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stY291bnRkb3duLWxhYmVsKCkge1xuICAgIGNvbG9yOiBAY291bnRkb3duLWxhYmVsLWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogQGNvdW50ZG93bi1sYWJlbC1mb250LXNpemU7XG59XG5cbi5ob29rLWNvdW50ZG93bi1sYWJlbCgpIHdoZW4gbm90IChAY291bnRkb3duLWxhYmVsLWZvbnQtZmFtaWx5ID0gaW5oZXJpdCkge1xuICAgIGZvbnQtZmFtaWx5OiBAY291bnRkb3duLWxhYmVsLWZvbnQtZmFtaWx5O1xufVxuXG4uaG9vay1jb3VudGRvd24tbGFiZWwoKSB3aGVuIG5vdCAoQGNvdW50ZG93bi1sYWJlbC1mb250LXdlaWdodCA9IGluaGVyaXQpIHtcbiAgICBmb250LXdlaWdodDogQGNvdW50ZG93bi1sYWJlbC1mb250LXdlaWdodDtcbn1cblxuLmhvb2stY291bnRkb3duLWxhYmVsKCkgd2hlbiBub3QgKEBjb3VudGRvd24tbGFiZWwtdGV4dC10cmFuc2Zvcm0gPSBpbmhlcml0KSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IEBjb3VudGRvd24tbGFiZWwtdGV4dC10cmFuc2Zvcm07XG59XG5cbi5ob29rLWNvdW50ZG93bi1sYWJlbCgpIHdoZW4gbm90IChAY291bnRkb3duLWxhYmVsLWxldHRlci1zcGFjaW5nID0gaW5oZXJpdCkge1xuICAgIGxldHRlci1zcGFjaW5nOiBAY291bnRkb3duLWxhYmVsLWxldHRlci1zcGFjaW5nO1xufVxuXG4uaG9vay1jb3VudGRvd24tbGFiZWwoKSB3aGVuIG5vdCAoQGNvdW50ZG93bi1sYWJlbC1mb250LXN0eWxlID0gaW5oZXJpdCkge1xuICAgIGZvbnQtc3R5bGU6IEBjb3VudGRvd24tbGFiZWwtZm9udC1zdHlsZTtcbn1cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stY291bnRkb3duLW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW52ZXJzZS1jb3VudGRvd24taXRlbS1jb2xvcjogICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcbkBpbnZlcnNlLWNvdW50ZG93bi1sYWJlbC1jb2xvcjogICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yO1xuXG4uaG9vay1pbnZlcnNlLWNvdW50ZG93bi1pdGVtKCkgeyBjb2xvcjogQGludmVyc2UtY291bnRkb3duLWl0ZW0tY29sb3I7IH1cbi5ob29rLWludmVyc2UtY291bnRkb3duLW51bWJlcigpIHt9XG4uaG9vay1pbnZlcnNlLWNvdW50ZG93bi1zZXBhcmF0b3IoKSB7fVxuLmhvb2staW52ZXJzZS1jb3VudGRvd24tbGFiZWwoKSB7IGNvbG9yOiBAaW52ZXJzZS1jb3VudGRvd24tbGFiZWwtY29sb3I7IH1cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgR3JpZFxuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gY3JlYXRlIHJlc3BvbnNpdmUsIGZsdWlkIGFuZCBuZXN0YWJsZSBncmlkc1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWdyaWRgXG4vL1xuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstZ3JpZC1zbWFsbGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWdyaWQtbWVkaXVtYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZ3JpZC1sYXJnZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWdyaWQtY29sbGFwc2VgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ncmlkLWRpdmlkZXJgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ncmlkLW1hdGNoYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZ3JpZC1zdGFja2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLWdyaWQtbWFyZ2luYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZ3JpZC1tYXJnaW4tc21hbGxgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ncmlkLW1hcmdpbi1tZWRpdW1gXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ncmlkLW1hcmdpbi1sYXJnZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWdyaWQtbWFyZ2luLWNvbGxhcHNlYFxuLy9cbi8vIFN1Yi1tb2RpZmllcjogICAgYHVrLWdyaWQtaXRlbS1tYXRjaGBcbi8vXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1maXJzdC1jb2x1bW5gXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGdyaWQtZ3V0dGVyLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1ndXR0ZXI7XG5AZ3JpZC1ndXR0ZXItdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAgICAgICBAZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbDtcbkBncmlkLWd1dHRlci1ob3Jpem9udGFsLWw6ICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbWVkaXVtLWd1dHRlcjtcbkBncmlkLWd1dHRlci12ZXJ0aWNhbC1sOiAgICAgICAgICAgICAgICAgICAgICAgIEBncmlkLWd1dHRlci1ob3Jpem9udGFsLWw7XG5cbkBncmlkLXNtYWxsLWd1dHRlci1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc21hbGwtZ3V0dGVyO1xuQGdyaWQtc21hbGwtZ3V0dGVyLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgQGdyaWQtc21hbGwtZ3V0dGVyLWhvcml6b250YWw7XG5cbkBncmlkLW1lZGl1bS1ndXR0ZXItaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgIEBnbG9iYWwtZ3V0dGVyO1xuQGdyaWQtbWVkaXVtLWd1dHRlci12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgQGdyaWQtbWVkaXVtLWd1dHRlci1ob3Jpem9udGFsO1xuXG5AZ3JpZC1sYXJnZS1ndXR0ZXItaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICBAZ2xvYmFsLW1lZGl1bS1ndXR0ZXI7XG5AZ3JpZC1sYXJnZS1ndXR0ZXItdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICBAZ3JpZC1sYXJnZS1ndXR0ZXItaG9yaXpvbnRhbDtcbkBncmlkLWxhcmdlLWd1dHRlci1ob3Jpem9udGFsLWw6ICAgICAgICAgICAgICAgIEBnbG9iYWwtbGFyZ2UtZ3V0dGVyO1xuQGdyaWQtbGFyZ2UtZ3V0dGVyLXZlcnRpY2FsLWw6ICAgICAgICAgICAgICAgICAgQGdyaWQtbGFyZ2UtZ3V0dGVyLWhvcml6b250YWwtbDtcblxuQGdyaWQtZGl2aWRlci1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1ib3JkZXItd2lkdGg7XG5AZ3JpZC1kaXZpZGVyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWJvcmRlcjtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogR3JpZFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBBbGxvdyBjZWxscyB0byB3cmFwIGludG8gdGhlIG5leHQgbGluZVxuICogMi4gUmVzZXQgbGlzdFxuICovXG5cbi51ay1ncmlkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC8qIDEgKi9cbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgLyogMiAqL1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi8qXG4gKiBHcmlkIGNlbGxcbiAqIE5vdGU6IFNwYWNlIGlzIGFsbG9jYXRlZCBzb2xlbHkgYmFzZWQgb24gY29udGVudCBkaW1lbnNpb25zLCBidXQgc2hyaW5rczogMCAxIGF1dG9cbiAqIFJlc2V0IG1hcmdpbiBmb3IgZS5nLiBwYXJhZ3JhcGhzXG4gKi9cblxuLnVrLWdyaWQgPiAqIHsgbWFyZ2luOiAwOyB9XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcbiAqL1xuXG4udWstZ3JpZCA+ICogPiA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cblxuXG4vKiBHdXR0ZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogRGVmYXVsdFxuICovXG5cbi8qIEhvcml6b250YWwgKi9cbi51ay1ncmlkIHsgbWFyZ2luLWxlZnQ6IC1AZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbDsgfVxuLnVrLWdyaWQgPiAqIHsgcGFkZGluZy1sZWZ0OiBAZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbDsgfVxuXG4vKiBWZXJ0aWNhbCAqL1xuLnVrLWdyaWQgKyAudWstZ3JpZCxcbi51ay1ncmlkID4gLnVrLWdyaWQtbWFyZ2luLFxuKiArIC51ay1ncmlkLW1hcmdpbiB7IG1hcmdpbi10b3A6IEBncmlkLWd1dHRlci12ZXJ0aWNhbDsgfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1sYXJnZSkge1xuXG4gICAgLyogSG9yaXpvbnRhbCAqL1xuICAgIC51ay1ncmlkIHsgbWFyZ2luLWxlZnQ6IC1AZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbC1sOyB9XG4gICAgLnVrLWdyaWQgPiAqIHsgcGFkZGluZy1sZWZ0OiBAZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbC1sOyB9XG5cbiAgICAvKiBWZXJ0aWNhbCAqL1xuICAgIC51ay1ncmlkICsgLnVrLWdyaWQsXG4gICAgLnVrLWdyaWQgPiAudWstZ3JpZC1tYXJnaW4sXG4gICAgKiArIC51ay1ncmlkLW1hcmdpbiB7IG1hcmdpbi10b3A6IEBncmlkLWd1dHRlci12ZXJ0aWNhbC1sOyB9XG5cbn1cblxuLypcbiAqIFNtYWxsXG4gKi9cblxuLyogSG9yaXpvbnRhbCAqL1xuLnVrLWdyaWQtc21hbGwsXG4udWstZ3JpZC1jb2x1bW4tc21hbGwgeyBtYXJnaW4tbGVmdDogLUBncmlkLXNtYWxsLWd1dHRlci1ob3Jpem9udGFsOyB9XG4udWstZ3JpZC1zbWFsbCA+ICosXG4udWstZ3JpZC1jb2x1bW4tc21hbGwgPiAqICB7IHBhZGRpbmctbGVmdDogQGdyaWQtc21hbGwtZ3V0dGVyLWhvcml6b250YWw7IH1cblxuLyogVmVydGljYWwgKi9cbi51ay1ncmlkICsgLnVrLWdyaWQtc21hbGwsXG4udWstZ3JpZCArIC51ay1ncmlkLXJvdy1zbWFsbCxcbi51ay1ncmlkLXNtYWxsID4gLnVrLWdyaWQtbWFyZ2luLFxuLnVrLWdyaWQtcm93LXNtYWxsID4gLnVrLWdyaWQtbWFyZ2luLFxuKiArIC51ay1ncmlkLW1hcmdpbi1zbWFsbCB7IG1hcmdpbi10b3A6IEBncmlkLXNtYWxsLWd1dHRlci12ZXJ0aWNhbDsgfVxuXG4vKlxuICogTWVkaXVtXG4gKi9cblxuLyogSG9yaXpvbnRhbCAqL1xuLnVrLWdyaWQtbWVkaXVtLFxuLnVrLWdyaWQtY29sdW1uLW1lZGl1bSB7IG1hcmdpbi1sZWZ0OiAtQGdyaWQtbWVkaXVtLWd1dHRlci1ob3Jpem9udGFsOyB9XG4udWstZ3JpZC1tZWRpdW0gPiAqLFxuLnVrLWdyaWQtY29sdW1uLW1lZGl1bSA+ICogeyBwYWRkaW5nLWxlZnQ6IEBncmlkLW1lZGl1bS1ndXR0ZXItaG9yaXpvbnRhbDsgfVxuXG4vKiBWZXJ0aWNhbCAqL1xuLnVrLWdyaWQgKyAudWstZ3JpZC1tZWRpdW0sXG4udWstZ3JpZCArIC51ay1ncmlkLXJvdy1tZWRpdW0sXG4udWstZ3JpZC1tZWRpdW0gPiAudWstZ3JpZC1tYXJnaW4sXG4udWstZ3JpZC1yb3ctbWVkaXVtID4gLnVrLWdyaWQtbWFyZ2luLFxuKiArIC51ay1ncmlkLW1hcmdpbi1tZWRpdW0geyBtYXJnaW4tdG9wOiBAZ3JpZC1tZWRpdW0tZ3V0dGVyLXZlcnRpY2FsOyB9XG5cbi8qXG4gKiBMYXJnZVxuICovXG5cbi8qIEhvcml6b250YWwgKi9cbi51ay1ncmlkLWxhcmdlLFxuLnVrLWdyaWQtY29sdW1uLWxhcmdlIHsgbWFyZ2luLWxlZnQ6IC1AZ3JpZC1sYXJnZS1ndXR0ZXItaG9yaXpvbnRhbDsgfVxuLnVrLWdyaWQtbGFyZ2UgPiAqLFxuLnVrLWdyaWQtY29sdW1uLWxhcmdlID4gKiB7IHBhZGRpbmctbGVmdDogQGdyaWQtbGFyZ2UtZ3V0dGVyLWhvcml6b250YWw7IH1cblxuLyogVmVydGljYWwgKi9cbi51ay1ncmlkICsgLnVrLWdyaWQtbGFyZ2UsXG4udWstZ3JpZCArIC51ay1ncmlkLXJvdy1sYXJnZSxcbi51ay1ncmlkLWxhcmdlID4gLnVrLWdyaWQtbWFyZ2luLFxuLnVrLWdyaWQtcm93LWxhcmdlID4gLnVrLWdyaWQtbWFyZ2luLFxuKiArIC51ay1ncmlkLW1hcmdpbi1sYXJnZSB7IG1hcmdpbi10b3A6IEBncmlkLWxhcmdlLWd1dHRlci12ZXJ0aWNhbDsgfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1sYXJnZSkge1xuXG4gICAgLyogSG9yaXpvbnRhbCAqL1xuICAgIC51ay1ncmlkLWxhcmdlLFxuICAgIC51ay1ncmlkLWNvbHVtbi1sYXJnZSB7IG1hcmdpbi1sZWZ0OiAtQGdyaWQtbGFyZ2UtZ3V0dGVyLWhvcml6b250YWwtbDsgfVxuICAgIC51ay1ncmlkLWxhcmdlID4gKixcbiAgICAudWstZ3JpZC1jb2x1bW4tbGFyZ2UgPiAqIHsgcGFkZGluZy1sZWZ0OiBAZ3JpZC1sYXJnZS1ndXR0ZXItaG9yaXpvbnRhbC1sOyB9XG5cbiAgICAvKiBWZXJ0aWNhbCAqL1xuICAgIC51ay1ncmlkICsgLnVrLWdyaWQtbGFyZ2UsXG4gICAgLnVrLWdyaWQgKyAudWstZ3JpZC1yb3ctbGFyZ2UsXG4gICAgLnVrLWdyaWQtbGFyZ2UgPiAudWstZ3JpZC1tYXJnaW4sXG4gICAgLnVrLWdyaWQtcm93LWxhcmdlID4gLnVrLWdyaWQtbWFyZ2luLFxuICAgICogKyAudWstZ3JpZC1tYXJnaW4tbGFyZ2UgeyBtYXJnaW4tdG9wOiBAZ3JpZC1sYXJnZS1ndXR0ZXItdmVydGljYWwtbDsgfVxuXG59XG5cbi8qXG4gKiBDb2xsYXBzZVxuICovXG5cbi8qIEhvcml6b250YWwgKi9cbi51ay1ncmlkLWNvbGxhcHNlLFxuLnVrLWdyaWQtY29sdW1uLWNvbGxhcHNlIHsgbWFyZ2luLWxlZnQ6IDA7IH1cbi51ay1ncmlkLWNvbGxhcHNlID4gKixcbi51ay1ncmlkLWNvbHVtbi1jb2xsYXBzZSA+ICogeyBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLyogVmVydGljYWwgKi9cbi51ay1ncmlkICsgLnVrLWdyaWQtY29sbGFwc2UsXG4udWstZ3JpZCArIC51ay1ncmlkLXJvdy1jb2xsYXBzZSxcbi51ay1ncmlkLWNvbGxhcHNlID4gLnVrLWdyaWQtbWFyZ2luLFxuLnVrLWdyaWQtcm93LWNvbGxhcHNlID4gLnVrLWdyaWQtbWFyZ2luIHsgbWFyZ2luLXRvcDogMDsgfVxuXG5cbi8qIERpdmlkZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstZ3JpZC1kaXZpZGVyID4gKiB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4udWstZ3JpZC1kaXZpZGVyID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGJvcmRlci1sZWZ0OiBAZ3JpZC1kaXZpZGVyLWJvcmRlci13aWR0aCBzb2xpZCBAZ3JpZC1kaXZpZGVyLWJvcmRlcjtcbiAgICAuaG9vay1ncmlkLWRpdmlkZXItaG9yaXpvbnRhbCgpO1xufVxuXG4vKiBWZXJ0aWNhbCAqL1xuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm9yZGVyLXRvcDogQGdyaWQtZGl2aWRlci1ib3JkZXItd2lkdGggc29saWQgQGdyaWQtZGl2aWRlci1ib3JkZXI7XG4gICAgLmhvb2stZ3JpZC1kaXZpZGVyLXZlcnRpY2FsKCk7XG59XG5cbi8qXG4gKiBEZWZhdWx0XG4gKi9cblxuLyogSG9yaXpvbnRhbCAqL1xuLnVrLWdyaWQtZGl2aWRlciB7IG1hcmdpbi1sZWZ0OiAtKEBncmlkLWd1dHRlci1ob3Jpem9udGFsICogMik7IH1cbi51ay1ncmlkLWRpdmlkZXIgPiAqIHsgcGFkZGluZy1sZWZ0OiAoQGdyaWQtZ3V0dGVyLWhvcml6b250YWwgKiAyKTsgfVxuXG4udWstZ3JpZC1kaXZpZGVyID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHsgbGVmdDogQGdyaWQtZ3V0dGVyLWhvcml6b250YWw7IH1cblxuLyogVmVydGljYWwgKi9cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbiB7IG1hcmdpbi10b3A6IChAZ3JpZC1ndXR0ZXItdmVydGljYWwgKiAyKTsgfVxuXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gICAgdG9wOiAtQGdyaWQtZ3V0dGVyLXZlcnRpY2FsO1xuICAgIGxlZnQ6IChAZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbCAqIDIpO1xufVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1sYXJnZSkge1xuXG4gICAgLyogSG9yaXpvbnRhbCAqL1xuICAgIC51ay1ncmlkLWRpdmlkZXIgeyBtYXJnaW4tbGVmdDogLShAZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbC1sICogMik7IH1cbiAgICAudWstZ3JpZC1kaXZpZGVyID4gKiB7IHBhZGRpbmctbGVmdDogKEBncmlkLWd1dHRlci1ob3Jpem9udGFsLWwgKiAyKTsgfVxuXG4gICAgLnVrLWdyaWQtZGl2aWRlciA+IDpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSB7IGxlZnQ6IEBncmlkLWd1dHRlci1ob3Jpem9udGFsLWw7IH1cblxuICAgIC8qIFZlcnRpY2FsICovXG4gICAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luIHsgbWFyZ2luLXRvcDogKEBncmlkLWd1dHRlci12ZXJ0aWNhbC1sICogMik7IH1cblxuICAgIC51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHtcbiAgICAgICAgdG9wOiAtQGdyaWQtZ3V0dGVyLXZlcnRpY2FsLWw7XG4gICAgICAgIGxlZnQ6IChAZ3JpZC1ndXR0ZXItaG9yaXpvbnRhbC1sICogMik7XG4gICAgfVxuXG59XG5cbi8qXG4gKiBTbWFsbFxuICovXG5cbi8qIEhvcml6b250YWwgKi9cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1zbWFsbCxcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tc21hbGwgeyBtYXJnaW4tbGVmdDogLShAZ3JpZC1zbWFsbC1ndXR0ZXItaG9yaXpvbnRhbCAqIDIpOyB9XG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtc21hbGwgPiAqLFxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1zbWFsbCA+ICogeyBwYWRkaW5nLWxlZnQ6IChAZ3JpZC1zbWFsbC1ndXR0ZXItaG9yaXpvbnRhbCAqIDIpOyB9XG5cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1zbWFsbCA+IDpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSxcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tc21hbGwgPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUgeyBsZWZ0OiBAZ3JpZC1zbWFsbC1ndXR0ZXItaG9yaXpvbnRhbDsgfVxuXG4vKiBWZXJ0aWNhbCAqL1xuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXNtYWxsLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4sXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtcm93LXNtYWxsLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4geyBtYXJnaW4tdG9wOiAoQGdyaWQtc21hbGwtZ3V0dGVyLXZlcnRpY2FsICogMik7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXNtYWxsLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gICAgdG9wOiAtQGdyaWQtc21hbGwtZ3V0dGVyLXZlcnRpY2FsO1xuICAgIGxlZnQ6IChAZ3JpZC1zbWFsbC1ndXR0ZXItaG9yaXpvbnRhbCAqIDIpO1xufVxuXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtcm93LXNtYWxsLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7IHRvcDogLUBncmlkLXNtYWxsLWd1dHRlci12ZXJ0aWNhbDsgfVxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1zbWFsbC51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUgeyBsZWZ0OiAoQGdyaWQtc21hbGwtZ3V0dGVyLWhvcml6b250YWwgKiAyKTsgfVxuXG4vKlxuICogTWVkaXVtXG4gKi9cblxuLyogSG9yaXpvbnRhbCAqL1xuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLW1lZGl1bSxcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbWVkaXVtIHsgbWFyZ2luLWxlZnQ6IC0oQGdyaWQtbWVkaXVtLWd1dHRlci1ob3Jpem9udGFsICogMik7IH1cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1tZWRpdW0gPiAqLFxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1tZWRpdW0gPiAqIHsgcGFkZGluZy1sZWZ0OiAoQGdyaWQtbWVkaXVtLWd1dHRlci1ob3Jpem9udGFsICogMik7IH1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLW1lZGl1bSA+IDpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSxcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbWVkaXVtID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHsgbGVmdDogQGdyaWQtbWVkaXVtLWd1dHRlci1ob3Jpem9udGFsOyB9XG5cbi8qIFZlcnRpY2FsICovXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbWVkaXVtLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4sXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtcm93LW1lZGl1bS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luIHsgbWFyZ2luLXRvcDogKEBncmlkLW1lZGl1bS1ndXR0ZXItdmVydGljYWwgKiAyKTsgfVxuXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbWVkaXVtLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gICAgdG9wOiAtQGdyaWQtbWVkaXVtLWd1dHRlci12ZXJ0aWNhbDtcbiAgICBsZWZ0OiAoQGdyaWQtbWVkaXVtLWd1dHRlci1ob3Jpem9udGFsICogMik7XG59XG5cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1yb3ctbWVkaXVtLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7IHRvcDogLUBncmlkLW1lZGl1bS1ndXR0ZXItdmVydGljYWw7IH1cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbWVkaXVtLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7IGxlZnQ6IChAZ3JpZC1tZWRpdW0tZ3V0dGVyLWhvcml6b250YWwgKiAyKTsgfVxuXG4vKlxuICogTGFyZ2VcbiAqL1xuXG4vKiBIb3Jpem9udGFsICovXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbGFyZ2UsXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLWxhcmdlIHsgbWFyZ2luLWxlZnQ6IC0oQGdyaWQtbGFyZ2UtZ3V0dGVyLWhvcml6b250YWwgKiAyKTsgfVxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWxhcmdlID4gKixcbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbGFyZ2UgPiAqIHsgcGFkZGluZy1sZWZ0OiAoQGdyaWQtbGFyZ2UtZ3V0dGVyLWhvcml6b250YWwgKiAyKTsgfVxuXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbGFyZ2UgPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUsXG4udWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLWxhcmdlID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHsgbGVmdDogQGdyaWQtbGFyZ2UtZ3V0dGVyLWhvcml6b250YWw7IH1cblxuLyogVmVydGljYWwgKi9cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1sYXJnZS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luLFxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXJvdy1sYXJnZS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luIHsgbWFyZ2luLXRvcDogKEBncmlkLWxhcmdlLWd1dHRlci12ZXJ0aWNhbCAqIDIpOyB9XG5cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1sYXJnZS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xuICAgIHRvcDogLUBncmlkLWxhcmdlLWd1dHRlci12ZXJ0aWNhbDtcbiAgICBsZWZ0OiAoQGdyaWQtbGFyZ2UtZ3V0dGVyLWhvcml6b250YWwgKiAyKTtcbn1cblxuLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXJvdy1sYXJnZS51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUgeyB0b3A6IC1AZ3JpZC1sYXJnZS1ndXR0ZXItdmVydGljYWw7IH1cbi51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1jb2x1bW4tbGFyZ2UudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHsgbGVmdDogKEBncmlkLWxhcmdlLWd1dHRlci1ob3Jpem9udGFsICogMik7IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbGFyZ2UpIHtcblxuICAgIC8qIEhvcml6b250YWwgKi9cbiAgICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbGFyZ2UsXG4gICAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1sYXJnZSB7IG1hcmdpbi1sZWZ0OiAtKEBncmlkLWxhcmdlLWd1dHRlci1ob3Jpem9udGFsLWwgKiAyKTsgfVxuICAgIC51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1sYXJnZSA+ICosXG4gICAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWNvbHVtbi1sYXJnZSA+ICogeyBwYWRkaW5nLWxlZnQ6IChAZ3JpZC1sYXJnZS1ndXR0ZXItaG9yaXpvbnRhbC1sICogMik7IH1cblxuICAgIC51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1sYXJnZSA+IDpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSxcbiAgICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLWxhcmdlID4gOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHsgbGVmdDogQGdyaWQtbGFyZ2UtZ3V0dGVyLWhvcml6b250YWwtbDsgfVxuXG4gICAgLyogVmVydGljYWwgKi9cbiAgICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtbGFyZ2UudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbixcbiAgICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtcm93LWxhcmdlLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW4geyBtYXJnaW4tdG9wOiAoQGdyaWQtbGFyZ2UtZ3V0dGVyLXZlcnRpY2FsLWwgKiAyKTsgfVxuXG4gICAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLWxhcmdlLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gICAgICAgIHRvcDogLUBncmlkLWxhcmdlLWd1dHRlci12ZXJ0aWNhbC1sO1xuICAgICAgICBsZWZ0OiAoQGdyaWQtbGFyZ2UtZ3V0dGVyLWhvcml6b250YWwtbCAqIDIpO1xuICAgIH1cblxuICAgIC51ay1ncmlkLWRpdmlkZXIudWstZ3JpZC1yb3ctbGFyZ2UudWstZ3JpZC1zdGFjayA+IC51ay1ncmlkLW1hcmdpbjo6YmVmb3JlIHsgdG9wOiAtQGdyaWQtbGFyZ2UtZ3V0dGVyLXZlcnRpY2FsLWw7IH1cbiAgICAudWstZ3JpZC1kaXZpZGVyLnVrLWdyaWQtY29sdW1uLWxhcmdlLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7IGxlZnQ6IChAZ3JpZC1sYXJnZS1ndXR0ZXItaG9yaXpvbnRhbC1sICogMik7IH1cblxufVxuXG5cbi8qIE1hdGNoIGNoaWxkIG9mIGEgZ3JpZCBjZWxsXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEJlaGF2ZSBsaWtlIGEgYmxvY2sgZWxlbWVudFxuICogMS4gV3JhcCBpbnRvIHRoZSBuZXh0IGxpbmVcbiAqIDIuIFRha2UgdGhlIGZ1bGwgd2lkdGgsIGF0IGxlYXN0IDEwMCUuIE9ubHkgaWYgbm8gY2xhc3MgZnJvbSB0aGUgV2lkdGggY29tcG9uZW50IGlzIHNldC5cbiAqIDMuIEV4cGFuZCB3aWR0aCBldmVuIGlmIGxhcmdlciB0aGFuIDEwMCUsIGUuZy4gYmVjYXVzZSBvZiBuZWdhdGl2ZSBtYXJnaW4gKE5lZWRlZCBmb3IgbmVzdGVkIGdyaWRzKVxuICovXG5cbi51ay1ncmlkLW1hdGNoID4gKixcbi51ay1ncmlkLWl0ZW0tbWF0Y2gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLyogMSAqL1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnVrLWdyaWQtbWF0Y2ggPiAqID4gOm5vdChbY2xhc3MqPSd1ay13aWR0aCddKSxcbi51ay1ncmlkLWl0ZW0tbWF0Y2ggPiA6bm90KFtjbGFzcyo9J3VrLXdpZHRoJ10pIHtcbiAgICAvKiAyICovXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAvKiAzICovXG4gICAgZmxleDogYXV0bztcbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWdyaWQtbWlzYygpO1xuXG4uaG9vay1ncmlkLWRpdmlkZXItaG9yaXpvbnRhbCgpIHt9XG4uaG9vay1ncmlkLWRpdmlkZXItdmVydGljYWwoKSB7fVxuLmhvb2stZ3JpZC1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGludmVyc2UtZ3JpZC1kaXZpZGVyLWJvcmRlcjogICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtYm9yZGVyO1xuXG4uaG9vay1pbnZlcnNlKCkge1xuXG4gICAgLnVrLWdyaWQtZGl2aWRlciA+IDpub3QoLnVrLWZpcnN0LWNvbHVtbik6OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBAaW52ZXJzZS1ncmlkLWRpdmlkZXItYm9yZGVyO1xuICAgICAgICAuaG9vay1pbnZlcnNlLWdyaWQtZGl2aWRlci1ob3Jpem9udGFsKCk7XG4gICAgfVxuXG4gICAgLnVrLWdyaWQtZGl2aWRlci51ay1ncmlkLXN0YWNrID4gLnVrLWdyaWQtbWFyZ2luOjpiZWZvcmUge1xuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiBAaW52ZXJzZS1ncmlkLWRpdmlkZXItYm9yZGVyO1xuICAgICAgICAuaG9vay1pbnZlcnNlLWdyaWQtZGl2aWRlci12ZXJ0aWNhbCgpO1xuICAgIH1cblxufVxuXG4uaG9vay1pbnZlcnNlLWdyaWQtZGl2aWRlci1ob3Jpem9udGFsKCkge31cbi5ob29rLWludmVyc2UtZ3JpZC1kaXZpZGVyLXZlcnRpY2FsKCkge31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgTmF2XG4vLyBEZXNjcmlwdGlvbjogICAgIERlZmluZXMgc3R5bGVzIGZvciBsaXN0IG5hdmlnYXRpb25zXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstbmF2YFxuLy9cbi8vIFN1Yi1vYmplY3RzOiAgICAgYHVrLW5hdi1wYXJlbnQtaWNvbmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW5hdi1oZWFkZXJgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXYtZGl2aWRlcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW5hdi1zdWJ0aXRsZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW5hdi1zdWJgXG4vL1xuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstbmF2LWRlZmF1bHRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXYtcHJpbWFyeWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW5hdi1jZW50ZXJgLFxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2LWRpdmlkZXJgXG4vL1xuLy8gU3RhdGVzOiAgICAgICAgICBgdWstYWN0aXZlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstcGFyZW50YFxuLy8gICAgICAgICAgICAgICAgICBgdWstb3BlbmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRvdWNoYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBuYXYtaXRlbS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgIDVweDtcbkBuYXYtaXRlbS1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgIDA7XG5cbkBuYXYtc3VibGlzdC1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgIDVweDtcbkBuYXYtc3VibGlzdC1wYWRkaW5nLWxlZnQ6ICAgICAgICAgICAgICAgICAgICAgIDE1cHg7XG5AbmF2LXN1Ymxpc3QtZGVlcGVyLXBhZGRpbmctbGVmdDogICAgICAgICAgICAgICAxNXB4O1xuQG5hdi1zdWJsaXN0LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgMnB4O1xuXG5AbmF2LXBhcmVudC1pY29uLW1hcmdpbi1sZWZ0OiAgICAgICAgICAgICAgICAgICA0cHg7XG5cbkBuYXYtaGVhZGVyLXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgIEBuYXYtaXRlbS1wYWRkaW5nLXZlcnRpY2FsO1xuQG5hdi1oZWFkZXItcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgQG5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDtcbkBuYXYtaGVhZGVyLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc21hbGwtZm9udC1zaXplO1xuQG5hdi1oZWFkZXItdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgICAgICAgICAgdXBwZXJjYXNlO1xuQG5hdi1oZWFkZXItbWFyZ2luLXRvcDogICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tYXJnaW47XG5cbkBuYXYtZGl2aWRlci1tYXJnaW4tdmVydGljYWw6ICAgICAgICAgICAgICAgICAgIDVweDtcbkBuYXYtZGl2aWRlci1tYXJnaW4taG9yaXpvbnRhbDogICAgICAgICAgICAgICAgIDA7XG5cbkBuYXYtZGVmYXVsdC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZm9udC1zaXplO1xuQG5hdi1kZWZhdWx0LWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1saW5lLWhlaWdodDtcbkBuYXYtZGVmYXVsdC1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtY29sb3I7XG5AbmF2LWRlZmF1bHQtaXRlbS1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICBAZ2xvYmFsLWNvbG9yO1xuQG5hdi1kZWZhdWx0LWl0ZW0tYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAgQGdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcbkBuYXYtZGVmYXVsdC1zdWJ0aXRsZS1mb250LXNpemU6ICAgICAgICAgICAgICAgIEBnbG9iYWwtc21hbGwtZm9udC1zaXplO1xuQG5hdi1kZWZhdWx0LWhlYWRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcbkBuYXYtZGVmYXVsdC1kaXZpZGVyLWJvcmRlci13aWR0aDogICAgICAgICAgICAgIEBnbG9iYWwtYm9yZGVyLXdpZHRoO1xuQG5hdi1kZWZhdWx0LWRpdmlkZXItYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1ib3JkZXI7XG5AbmF2LWRlZmF1bHQtc3VibGlzdC1mb250LXNpemU6ICAgICAgICAgICAgICAgICBAbmF2LWRlZmF1bHQtZm9udC1zaXplO1xuQG5hdi1kZWZhdWx0LXN1Ymxpc3QtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgQG5hdi1kZWZhdWx0LWxpbmUtaGVpZ2h0O1xuQG5hdi1kZWZhdWx0LXN1Ymxpc3QtaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgQGdsb2JhbC1tdXRlZC1jb2xvcjtcbkBuYXYtZGVmYXVsdC1zdWJsaXN0LWl0ZW0taG92ZXItY29sb3I6ICAgICAgICAgIEBnbG9iYWwtY29sb3I7XG5AbmF2LWRlZmF1bHQtc3VibGlzdC1pdGVtLWFjdGl2ZS1jb2xvcjogICAgICAgICBAZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuXG5AbmF2LXByaW1hcnktZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWxhcmdlLWZvbnQtc2l6ZTtcbkBuYXYtcHJpbWFyeS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbGluZS1oZWlnaHQ7XG5AbmF2LXByaW1hcnktaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWNvbG9yO1xuQG5hdi1wcmltYXJ5LWl0ZW0taG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgQGdsb2JhbC1jb2xvcjtcbkBuYXYtcHJpbWFyeS1pdGVtLWFjdGl2ZS1jb2xvcjogICAgICAgICAgICAgICAgIEBnbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AbmF2LXByaW1hcnktc3VidGl0bGUtZm9udC1zaXplOiAgICAgICAgICAgICAgICBAZ2xvYmFsLW1lZGl1bS1mb250LXNpemU7XG5AbmF2LXByaW1hcnktaGVhZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQG5hdi1wcmltYXJ5LWRpdmlkZXItYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgQGdsb2JhbC1ib3JkZXItd2lkdGg7XG5AbmF2LXByaW1hcnktZGl2aWRlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWJvcmRlcjtcbkBuYXYtcHJpbWFyeS1zdWJsaXN0LWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgIEBnbG9iYWwtbWVkaXVtLWZvbnQtc2l6ZTtcbkBuYXYtcHJpbWFyeS1zdWJsaXN0LWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgIEBnbG9iYWwtbGluZS1oZWlnaHQ7XG5AbmF2LXByaW1hcnktc3VibGlzdC1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWNvbG9yO1xuQG5hdi1wcmltYXJ5LXN1Ymxpc3QtaXRlbS1ob3Zlci1jb2xvcjogICAgICAgICAgQGdsb2JhbC1jb2xvcjtcbkBuYXYtcHJpbWFyeS1zdWJsaXN0LWl0ZW0tYWN0aXZlLWNvbG9yOiAgICAgICAgIEBnbG9iYWwtZW1waGFzaXMtY29sb3I7XG5cbkBuYXYtc2Vjb25kYXJ5LWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZm9udC1zaXplO1xuQG5hdi1zZWNvbmRhcnktbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1saW5lLWhlaWdodDtcbkBuYXYtc2Vjb25kYXJ5LWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AbmF2LXNlY29uZGFyeS1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICBAZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQG5hdi1zZWNvbmRhcnktaXRlbS1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgICAgQGdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcbkBuYXYtc2Vjb25kYXJ5LXN1YnRpdGxlLWZvbnQtc2l6ZTogICAgICAgICAgICAgIEBnbG9iYWwtc21hbGwtZm9udC1zaXplO1xuQG5hdi1zZWNvbmRhcnktc3VidGl0bGUtY29sb3I6ICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tdXRlZC1jb2xvcjtcbkBuYXYtc2Vjb25kYXJ5LXN1YnRpdGxlLWhvdmVyLWNvbG9yOiAgICAgICAgICAgIEBnbG9iYWwtY29sb3I7XG5AbmF2LXNlY29uZGFyeS1zdWJ0aXRsZS1hY3RpdmUtY29sb3I6ICAgICAgICAgICBAZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQG5hdi1zZWNvbmRhcnktaGVhZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcbkBuYXYtc2Vjb25kYXJ5LWRpdmlkZXItYm9yZGVyLXdpZHRoOiAgICAgICAgICAgIEBnbG9iYWwtYm9yZGVyLXdpZHRoO1xuQG5hdi1zZWNvbmRhcnktZGl2aWRlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgQGdsb2JhbC1ib3JkZXI7XG5AbmF2LXNlY29uZGFyeS1zdWJsaXN0LWZvbnQtc2l6ZTogICAgICAgICAgICAgICBAZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZTtcbkBuYXYtc2Vjb25kYXJ5LXN1Ymxpc3QtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgIEBnbG9iYWwtbGluZS1oZWlnaHQ7XG5AbmF2LXNlY29uZGFyeS1zdWJsaXN0LWl0ZW0tY29sb3I6ICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWNvbG9yO1xuQG5hdi1zZWNvbmRhcnktc3VibGlzdC1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgQGdsb2JhbC1jb2xvcjtcbkBuYXYtc2Vjb25kYXJ5LXN1Ymxpc3QtaXRlbS1hY3RpdmUtY29sb3I6ICAgICAgIEBnbG9iYWwtZW1waGFzaXMtY29sb3I7XG5cbkBuYXYtZGl2aWRlcnMtbWFyZ2luLXRvcDogICAgICAgICAgICAgICAgICAgICAgIDVweDtcbkBuYXYtZGl2aWRlcnMtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtYm9yZGVyLXdpZHRoO1xuQG5hdi1kaXZpZGVycy1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1ib3JkZXI7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IE5hdlxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBSZXNldFxuICovXG5cbi51ay1uYXYsXG4udWstbmF2IHVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4vKlxuKiAxLiBDZW50ZXIgY29udGVudCB2ZXJ0aWNhbGx5LCBlLmcuIGFuIGljb25cbiogMi4gSW1pdGF0ZSB3aGl0ZSBzcGFjZSBnYXAgd2hlbiB1c2luZyBmbGV4Ym94XG4qIDMuIFJlc2V0IGxpbmtcbiAqL1xuXG4udWstbmF2IGxpID4gYSB7XG4gICAgLyogMSAqL1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAvKiAyICovXG4gICAgY29sdW1uLWdhcDogMC4yNWVtO1xuICAgIC8qIDMqL1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLypcbiAqIEl0ZW1zXG4gKiBNdXN0IHRhcmdldCBgYWAgZWxlbWVudHMgdG8gZXhjbHVkZSBvdGhlciBlbGVtZW50cyAoZS5nLiBsaXN0cylcbiAqL1xuXG4udWstbmF2ID4gbGkgPiBhIHsgcGFkZGluZzogQG5hdi1pdGVtLXBhZGRpbmctdmVydGljYWwgQG5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDsgfVxuXG5cbi8qIFN1Ymxpc3RzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIExldmVsIDJcbiAqIGB1bGAgbmVlZGVkIGZvciBoaWdoZXIgc3BlY2lmaWNpdHkgdG8gb3ZlcnJpZGUgcGFkZGluZ1xuICovXG5cbnVsLnVrLW5hdi1zdWIge1xuICAgIHBhZGRpbmc6IEBuYXYtc3VibGlzdC1wYWRkaW5nLXZlcnRpY2FsIDAgQG5hdi1zdWJsaXN0LXBhZGRpbmctdmVydGljYWwgQG5hdi1zdWJsaXN0LXBhZGRpbmctbGVmdDtcbiAgICAuaG9vay1uYXYtc3ViKCk7XG59XG5cbi8qXG4gKiBMZXZlbCAzIGFuZCBkZWVwZXJcbiAqL1xuXG4udWstbmF2LXN1YiB1bCB7IHBhZGRpbmctbGVmdDogQG5hdi1zdWJsaXN0LWRlZXBlci1wYWRkaW5nLWxlZnQ7IH1cblxuLypcbiAqIEl0ZW1zXG4gKi9cblxuLnVrLW5hdi1zdWIgYSB7IHBhZGRpbmc6IEBuYXYtc3VibGlzdC1pdGVtLXBhZGRpbmctdmVydGljYWwgMDsgfVxuXG5cbi8qIFBhcmVudCBpY29uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLW5hdi1wYXJlbnQtaWNvbiB7IG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG5cbi51ay1uYXYgPiBsaSA+IGFbYXJpYS1leHBhbmRlZD1cInRydWVcIl0gLnVrLW5hdi1wYXJlbnQtaWNvbiB7IHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cblxuXG4vKiBIZWFkZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbmF2LWhlYWRlciB7XG4gICAgcGFkZGluZzogQG5hdi1oZWFkZXItcGFkZGluZy12ZXJ0aWNhbCBAbmF2LWhlYWRlci1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgdGV4dC10cmFuc2Zvcm06IEBuYXYtaGVhZGVyLXRleHQtdHJhbnNmb3JtO1xuICAgIGZvbnQtc2l6ZTogQG5hdi1oZWFkZXItZm9udC1zaXplO1xuICAgIC5ob29rLW5hdi1oZWFkZXIoKTtcbn1cblxuLnVrLW5hdi1oZWFkZXI6bm90KDpmaXJzdC1jaGlsZCkgeyBtYXJnaW4tdG9wOiBAbmF2LWhlYWRlci1tYXJnaW4tdG9wOyB9XG5cblxuLyogRGl2aWRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1uYXYgLnVrLW5hdi1kaXZpZGVyIHtcbiAgICBtYXJnaW46IEBuYXYtZGl2aWRlci1tYXJnaW4tdmVydGljYWwgQG5hdi1kaXZpZGVyLW1hcmdpbi1ob3Jpem9udGFsO1xuICAgIC5ob29rLW5hdi1kaXZpZGVyKCk7XG59XG5cblxuLyogRGVmYXVsdCBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1uYXYtZGVmYXVsdCB7XG4gICAgZm9udC1zaXplOiBAbmF2LWRlZmF1bHQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBAbmF2LWRlZmF1bHQtbGluZS1oZWlnaHQ7XG4gICAgLmhvb2stbmF2LWRlZmF1bHQoKTtcbn1cblxuLypcbiAqIEl0ZW1zXG4gKi9cblxuLnVrLW5hdi1kZWZhdWx0ID4gbGkgPiBhIHtcbiAgICBjb2xvcjogQG5hdi1kZWZhdWx0LWl0ZW0tY29sb3I7XG4gICAgLmhvb2stbmF2LWRlZmF1bHQtaXRlbSgpO1xufVxuXG4vKiBIb3ZlciAqL1xuLnVrLW5hdi1kZWZhdWx0ID4gbGkgPiBhOmhvdmVyIHtcbiAgICBjb2xvcjogQG5hdi1kZWZhdWx0LWl0ZW0taG92ZXItY29sb3I7XG4gICAgLmhvb2stbmF2LWRlZmF1bHQtaXRlbS1ob3ZlcigpO1xufVxuXG4vKiBBY3RpdmUgKi9cbi51ay1uYXYtZGVmYXVsdCA+IGxpLnVrLWFjdGl2ZSA+IGEge1xuICAgIGNvbG9yOiBAbmF2LWRlZmF1bHQtaXRlbS1hY3RpdmUtY29sb3I7XG4gICAgLmhvb2stbmF2LWRlZmF1bHQtaXRlbS1hY3RpdmUoKTtcbn1cblxuLypcbiAqIFN1YnRpdGxlXG4gKi9cblxuLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogQG5hdi1kZWZhdWx0LXN1YnRpdGxlLWZvbnQtc2l6ZTtcbiAgICAuaG9vay1uYXYtZGVmYXVsdC1zdWJ0aXRsZSgpO1xufVxuXG4vKlxuICogSGVhZGVyXG4gKi9cblxuLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtaGVhZGVyIHtcbiAgICBjb2xvcjogQG5hdi1kZWZhdWx0LWhlYWRlci1jb2xvcjtcbiAgICAuaG9vay1uYXYtZGVmYXVsdC1oZWFkZXIoKTtcbn1cblxuLypcbiAqIERpdmlkZXJcbiAqL1xuXG4udWstbmF2LWRlZmF1bHQgLnVrLW5hdi1kaXZpZGVyIHtcbiAgICBib3JkZXItdG9wOiBAbmF2LWRlZmF1bHQtZGl2aWRlci1ib3JkZXItd2lkdGggc29saWQgQG5hdi1kZWZhdWx0LWRpdmlkZXItYm9yZGVyO1xuICAgIC5ob29rLW5hdi1kZWZhdWx0LWRpdmlkZXIoKTtcbn1cblxuLypcbiAqIFN1Ymxpc3RzXG4gKi9cblxuLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtc3ViIHtcbiAgICBmb250LXNpemU6IEBuYXYtZGVmYXVsdC1zdWJsaXN0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogQG5hdi1kZWZhdWx0LXN1Ymxpc3QtbGluZS1oZWlnaHQ7XG59XG5cbi51ay1uYXYtZGVmYXVsdCAudWstbmF2LXN1YiBhIHsgY29sb3I6IEBuYXYtZGVmYXVsdC1zdWJsaXN0LWl0ZW0tY29sb3I7IH1cblxuLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtc3ViIGE6aG92ZXIgeyBjb2xvcjogQG5hdi1kZWZhdWx0LXN1Ymxpc3QtaXRlbS1ob3Zlci1jb2xvcjsgfVxuXG4udWstbmF2LWRlZmF1bHQgLnVrLW5hdi1zdWIgbGkudWstYWN0aXZlID4gYSB7IGNvbG9yOiBAbmF2LWRlZmF1bHQtc3VibGlzdC1pdGVtLWFjdGl2ZS1jb2xvcjsgfVxuXG5cbi8qIFByaW1hcnkgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbmF2LXByaW1hcnkge1xuICAgIGZvbnQtc2l6ZTogQG5hdi1wcmltYXJ5LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogQG5hdi1wcmltYXJ5LWxpbmUtaGVpZ2h0O1xuICAgIC5ob29rLW5hdi1wcmltYXJ5KCk7XG59XG5cbi8qXG4gKiBJdGVtc1xuICovXG5cbi51ay1uYXYtcHJpbWFyeSA+IGxpID4gYSB7XG4gICAgY29sb3I6IEBuYXYtcHJpbWFyeS1pdGVtLWNvbG9yO1xuICAgIC5ob29rLW5hdi1wcmltYXJ5LWl0ZW0oKTtcbn1cblxuLyogSG92ZXIgKi9cbi51ay1uYXYtcHJpbWFyeSA+IGxpID4gYTpob3ZlciB7XG4gICAgY29sb3I6IEBuYXYtcHJpbWFyeS1pdGVtLWhvdmVyLWNvbG9yO1xuICAgIC5ob29rLW5hdi1wcmltYXJ5LWl0ZW0taG92ZXIoKTtcbn1cblxuLyogQWN0aXZlICovXG4udWstbmF2LXByaW1hcnkgPiBsaS51ay1hY3RpdmUgPiBhIHtcbiAgICBjb2xvcjogQG5hdi1wcmltYXJ5LWl0ZW0tYWN0aXZlLWNvbG9yO1xuICAgIC5ob29rLW5hdi1wcmltYXJ5LWl0ZW0tYWN0aXZlKCk7XG59XG5cbi8qXG4gKiBTdWJ0aXRsZVxuICovXG5cbi51ay1uYXYtcHJpbWFyeSAudWstbmF2LXN1YnRpdGxlIHtcbiAgICBmb250LXNpemU6IEBuYXYtcHJpbWFyeS1zdWJ0aXRsZS1mb250LXNpemU7XG4gICAgLmhvb2stbmF2LXByaW1hcnktc3VidGl0bGUoKTtcbn1cblxuLypcbiAqIEhlYWRlclxuICovXG5cbi51ay1uYXYtcHJpbWFyeSAudWstbmF2LWhlYWRlciB7XG4gICAgY29sb3I6IEBuYXYtcHJpbWFyeS1oZWFkZXItY29sb3I7XG4gICAgLmhvb2stbmF2LXByaW1hcnktaGVhZGVyKCk7XG59XG5cbi8qXG4gKiBEaXZpZGVyXG4gKi9cblxuLnVrLW5hdi1wcmltYXJ5IC51ay1uYXYtZGl2aWRlciB7XG4gICAgYm9yZGVyLXRvcDogQG5hdi1wcmltYXJ5LWRpdmlkZXItYm9yZGVyLXdpZHRoIHNvbGlkIEBuYXYtcHJpbWFyeS1kaXZpZGVyLWJvcmRlcjtcbiAgICAuaG9vay1uYXYtcHJpbWFyeS1kaXZpZGVyKCk7XG59XG5cbi8qXG4gKiBTdWJsaXN0c1xuICovXG5cbi51ay1uYXYtcHJpbWFyeSAudWstbmF2LXN1YiB7XG4gICAgZm9udC1zaXplOiBAbmF2LXByaW1hcnktc3VibGlzdC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IEBuYXYtcHJpbWFyeS1zdWJsaXN0LWxpbmUtaGVpZ2h0O1xufVxuXG4udWstbmF2LXByaW1hcnkgLnVrLW5hdi1zdWIgYSB7IGNvbG9yOiBAbmF2LXByaW1hcnktc3VibGlzdC1pdGVtLWNvbG9yOyB9XG5cbi51ay1uYXYtcHJpbWFyeSAudWstbmF2LXN1YiBhOmhvdmVyIHsgY29sb3I6IEBuYXYtcHJpbWFyeS1zdWJsaXN0LWl0ZW0taG92ZXItY29sb3I7IH1cblxuLnVrLW5hdi1wcmltYXJ5IC51ay1uYXYtc3ViIGxpLnVrLWFjdGl2ZSA+IGEgeyBjb2xvcjogQG5hdi1wcmltYXJ5LXN1Ymxpc3QtaXRlbS1hY3RpdmUtY29sb3I7IH1cblxuXG4vKiBTZWNvbmRhcnkgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbmF2LXNlY29uZGFyeSB7XG4gICAgZm9udC1zaXplOiBAbmF2LXNlY29uZGFyeS1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IEBuYXYtc2Vjb25kYXJ5LWxpbmUtaGVpZ2h0O1xuICAgIC5ob29rLW5hdi1zZWNvbmRhcnkoKTtcbn1cblxuLypcbiAqIEl0ZW1zXG4gKi9cblxuLnVrLW5hdi1zZWNvbmRhcnkgPiBsaSA+IGEge1xuXG4gICAgY29sb3I6IEBuYXYtc2Vjb25kYXJ5LWl0ZW0tY29sb3I7XG4gICAgLmhvb2stbmF2LXNlY29uZGFyeS1pdGVtKCk7XG59XG5cbi8qIEhvdmVyICovXG4udWstbmF2LXNlY29uZGFyeSA+IGxpID4gYTpob3ZlciB7XG4gICAgY29sb3I6IEBuYXYtc2Vjb25kYXJ5LWl0ZW0taG92ZXItY29sb3I7XG4gICAgLmhvb2stbmF2LXNlY29uZGFyeS1pdGVtLWhvdmVyKCk7XG59XG5cbi8qIEFjdGl2ZSAqL1xuLnVrLW5hdi1zZWNvbmRhcnkgPiBsaS51ay1hY3RpdmUgPiBhIHtcbiAgICBjb2xvcjogQG5hdi1zZWNvbmRhcnktaXRlbS1hY3RpdmUtY29sb3I7XG4gICAgLmhvb2stbmF2LXNlY29uZGFyeS1pdGVtLWFjdGl2ZSgpO1xufVxuXG4vKlxuICogU3VidGl0bGVcbiAqL1xuXG4udWstbmF2LXNlY29uZGFyeSAudWstbmF2LXN1YnRpdGxlIHtcbiAgICBmb250LXNpemU6IEBuYXYtc2Vjb25kYXJ5LXN1YnRpdGxlLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogQG5hdi1zZWNvbmRhcnktc3VidGl0bGUtY29sb3I7XG4gICAgLmhvb2stbmF2LXNlY29uZGFyeS1zdWJ0aXRsZSgpO1xufVxuXG4vKiBIb3ZlciAqL1xuLnVrLW5hdi1zZWNvbmRhcnkgPiBsaSA+IGE6aG92ZXIgLnVrLW5hdi1zdWJ0aXRsZSB7XG4gICAgY29sb3I6IEBuYXYtc2Vjb25kYXJ5LXN1YnRpdGxlLWhvdmVyLWNvbG9yO1xuICAgIC5ob29rLW5hdi1zZWNvbmRhcnktc3VidGl0bGUtaG92ZXIoKTtcbn1cblxuLyogQWN0aXZlICovXG4udWstbmF2LXNlY29uZGFyeSA+IGxpLnVrLWFjdGl2ZSA+IGEgLnVrLW5hdi1zdWJ0aXRsZSB7XG4gICAgY29sb3I6IEBuYXYtc2Vjb25kYXJ5LXN1YnRpdGxlLWFjdGl2ZS1jb2xvcjtcbiAgICAuaG9vay1uYXYtc2Vjb25kYXJ5LXN1YnRpdGxlLWFjdGl2ZSgpO1xufVxuXG4vKlxuICogSGVhZGVyXG4gKi9cblxuLnVrLW5hdi1zZWNvbmRhcnkgLnVrLW5hdi1oZWFkZXIge1xuICAgIGNvbG9yOiBAbmF2LXNlY29uZGFyeS1oZWFkZXItY29sb3I7XG4gICAgLmhvb2stbmF2LXNlY29uZGFyeS1oZWFkZXIoKTtcbn1cblxuLypcbiAqIERpdmlkZXJcbiAqL1xuXG4udWstbmF2LXNlY29uZGFyeSAudWstbmF2LWRpdmlkZXIge1xuICAgIGJvcmRlci10b3A6IEBuYXYtc2Vjb25kYXJ5LWRpdmlkZXItYm9yZGVyLXdpZHRoIHNvbGlkIEBuYXYtc2Vjb25kYXJ5LWRpdmlkZXItYm9yZGVyO1xuICAgIC5ob29rLW5hdi1zZWNvbmRhcnktZGl2aWRlcigpO1xufVxuXG4vKlxuICogU3VibGlzdHNcbiAqL1xuXG4udWstbmF2LXNlY29uZGFyeSAudWstbmF2LXN1YiB7XG4gICAgZm9udC1zaXplOiBAbmF2LXNlY29uZGFyeS1zdWJsaXN0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogQG5hdi1zZWNvbmRhcnktc3VibGlzdC1saW5lLWhlaWdodDtcbn1cblxuLnVrLW5hdi1zZWNvbmRhcnkgLnVrLW5hdi1zdWIgYSB7IGNvbG9yOiBAbmF2LXNlY29uZGFyeS1zdWJsaXN0LWl0ZW0tY29sb3I7IH1cblxuLnVrLW5hdi1zZWNvbmRhcnkgLnVrLW5hdi1zdWIgYTpob3ZlciB7IGNvbG9yOiBAbmF2LXNlY29uZGFyeS1zdWJsaXN0LWl0ZW0taG92ZXItY29sb3I7IH1cblxuLnVrLW5hdi1zZWNvbmRhcnkgLnVrLW5hdi1zdWIgbGkudWstYWN0aXZlID4gYSB7IGNvbG9yOiBAbmF2LXNlY29uZGFyeS1zdWJsaXN0LWl0ZW0tYWN0aXZlLWNvbG9yOyB9XG5cblxuLyogQWxpZ25tZW50IG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIENlbnRlciBoZWFkZXJcbiAqIDIuIENlbnRlciBpdGVtc1xuICovXG5cbiAvKiAxICovXG4udWstbmF2LWNlbnRlciB7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuIC8qIDIgKi9cbi51ay1uYXYtY2VudGVyIGxpID4gYSB7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG5cbi8qIFN1Ymxpc3RzICovXG4udWstbmF2LWNlbnRlciAudWstbmF2LXN1Yixcbi51ay1uYXYtY2VudGVyIC51ay1uYXYtc3ViIHVsIHsgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi8qIFBhcmVudCBpY29uICAqL1xuLnVrLW5hdi1jZW50ZXIgLnVrLW5hdi1wYXJlbnQtaWNvbiB7IG1hcmdpbi1sZWZ0OiBAbmF2LXBhcmVudC1pY29uLW1hcmdpbi1sZWZ0OyB9XG5cblxuLyogU3R5bGUgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogRGl2aWRlclxuICogTmFtaW5nIGlzIGluIHBsdXJhbCB0byBwcmV2ZW50IGNvbmZsaWN0cyB3aXRoIGRpdmlkZXIgc3ViIG9iamVjdC5cbiAqL1xuXG4udWstbmF2LnVrLW5hdi1kaXZpZGVyID4gOm5vdCgudWstbmF2LWhlYWRlciwgLnVrLW5hdi1kaXZpZGVyKSArIDpub3QoLnVrLW5hdi1oZWFkZXIsIC51ay1uYXYtZGl2aWRlcikge1xuICAgIG1hcmdpbi10b3A6IEBuYXYtZGl2aWRlcnMtbWFyZ2luLXRvcDtcbiAgICBwYWRkaW5nLXRvcDogQG5hdi1kaXZpZGVycy1tYXJnaW4tdG9wO1xuICAgIGJvcmRlci10b3A6IEBuYXYtZGl2aWRlcnMtYm9yZGVyLXdpZHRoIHNvbGlkIEBuYXYtZGl2aWRlcnMtYm9yZGVyO1xuICAgIC5ob29rLW5hdi1kaXZpZGVycygpO1xufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbmF2LW1pc2MoKTtcblxuLmhvb2stbmF2LXN1YigpIHt9XG4uaG9vay1uYXYtaGVhZGVyKCkge31cbi5ob29rLW5hdi1kaXZpZGVyKCkge31cbi5ob29rLW5hdi1kZWZhdWx0KCkge31cbi5ob29rLW5hdi1kZWZhdWx0LWl0ZW0oKSB7fVxuLmhvb2stbmF2LWRlZmF1bHQtaXRlbS1ob3ZlcigpIHt9XG4uaG9vay1uYXYtZGVmYXVsdC1pdGVtLWFjdGl2ZSgpIHt9XG4uaG9vay1uYXYtZGVmYXVsdC1zdWJ0aXRsZSgpIHt9XG4uaG9vay1uYXYtZGVmYXVsdC1oZWFkZXIoKSB7fVxuLmhvb2stbmF2LWRlZmF1bHQtZGl2aWRlcigpIHt9XG4uaG9vay1uYXYtcHJpbWFyeSgpIHt9XG4uaG9vay1uYXYtcHJpbWFyeS1pdGVtKCkge31cbi5ob29rLW5hdi1wcmltYXJ5LWl0ZW0taG92ZXIoKSB7fVxuLmhvb2stbmF2LXByaW1hcnktaXRlbS1hY3RpdmUoKSB7fVxuLmhvb2stbmF2LXByaW1hcnktc3VidGl0bGUoKSB7fVxuLmhvb2stbmF2LXByaW1hcnktaGVhZGVyKCkge31cbi5ob29rLW5hdi1wcmltYXJ5LWRpdmlkZXIoKSB7fVxuLmhvb2stbmF2LXNlY29uZGFyeSgpIHt9XG4uaG9vay1uYXYtc2Vjb25kYXJ5LWl0ZW0oKSB7fVxuLmhvb2stbmF2LXNlY29uZGFyeS1pdGVtLWhvdmVyKCkge31cbi5ob29rLW5hdi1zZWNvbmRhcnktaXRlbS1hY3RpdmUoKSB7fVxuLmhvb2stbmF2LXNlY29uZGFyeS1zdWJ0aXRsZSgpIHt9XG4uaG9vay1uYXYtc2Vjb25kYXJ5LXN1YnRpdGxlLWhvdmVyKCkge31cbi5ob29rLW5hdi1zZWNvbmRhcnktc3VidGl0bGUtYWN0aXZlKCkge31cbi5ob29rLW5hdi1zZWNvbmRhcnktaGVhZGVyKCkge31cbi5ob29rLW5hdi1zZWNvbmRhcnktZGl2aWRlcigpIHt9XG4uaG9vay1uYXYtZGl2aWRlcnMoKSB7fVxuLmhvb2stbmF2LW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW52ZXJzZS1uYXYtZGVmYXVsdC1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yO1xuQGludmVyc2UtbmF2LWRlZmF1bHQtaXRlbS1ob3Zlci1jb2xvcjogICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1jb2xvcjtcbkBpbnZlcnNlLW5hdi1kZWZhdWx0LWl0ZW0tYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AaW52ZXJzZS1uYXYtZGVmYXVsdC1oZWFkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQGludmVyc2UtbmF2LWRlZmF1bHQtZGl2aWRlci1ib3JkZXI6ICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1ib3JkZXI7XG5AaW52ZXJzZS1uYXYtZGVmYXVsdC1zdWJsaXN0LWl0ZW0tY29sb3I6ICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yO1xuQGludmVyc2UtbmF2LWRlZmF1bHQtc3VibGlzdC1pdGVtLWhvdmVyLWNvbG9yOiAgICAgIEBpbnZlcnNlLWdsb2JhbC1jb2xvcjtcbkBpbnZlcnNlLW5hdi1kZWZhdWx0LXN1Ymxpc3QtaXRlbS1hY3RpdmUtY29sb3I6ICAgICBAaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3I7XG5cbkBpbnZlcnNlLW5hdi1wcmltYXJ5LWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3I7XG5AaW52ZXJzZS1uYXYtcHJpbWFyeS1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWNvbG9yO1xuQGludmVyc2UtbmF2LXByaW1hcnktaXRlbS1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcbkBpbnZlcnNlLW5hdi1wcmltYXJ5LWhlYWRlci1jb2xvcjogICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AaW52ZXJzZS1uYXYtcHJpbWFyeS1kaXZpZGVyLWJvcmRlcjogICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWJvcmRlcjtcbkBpbnZlcnNlLW5hdi1wcmltYXJ5LXN1Ymxpc3QtaXRlbS1jb2xvcjogICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3I7XG5AaW52ZXJzZS1uYXYtcHJpbWFyeS1zdWJsaXN0LWl0ZW0taG92ZXItY29sb3I6ICAgICAgQGludmVyc2UtZ2xvYmFsLWNvbG9yO1xuQGludmVyc2UtbmF2LXByaW1hcnktc3VibGlzdC1pdGVtLWFjdGl2ZS1jb2xvcjogICAgIEBpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcblxuQGludmVyc2UtbmF2LXNlY29uZGFyeS1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcbkBpbnZlcnNlLW5hdi1zZWNvbmRhcnktaXRlbS1ob3Zlci1jb2xvcjogICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AaW52ZXJzZS1uYXYtc2Vjb25kYXJ5LWl0ZW0tYWN0aXZlLWNvbG9yOiAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQGludmVyc2UtbmF2LXNlY29uZGFyeS1zdWJ0aXRsZS1jb2xvcjogICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvcjtcbkBpbnZlcnNlLW5hdi1zZWNvbmRhcnktc3VidGl0bGUtaG92ZXItY29sb3I6ICAgICAgICBAaW52ZXJzZS1nbG9iYWwtY29sb3I7XG5AaW52ZXJzZS1uYXYtc2Vjb25kYXJ5LXN1YnRpdGxlLWFjdGl2ZS1jb2xvcjogICAgICAgQGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQGludmVyc2UtbmF2LXNlY29uZGFyeS1oZWFkZXItY29sb3I6ICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcbkBpbnZlcnNlLW5hdi1zZWNvbmRhcnktZGl2aWRlci1ib3JkZXI6ICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtYm9yZGVyO1xuQGludmVyc2UtbmF2LXNlY29uZGFyeS1zdWJsaXN0LWl0ZW0tY29sb3I6ICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvcjtcbkBpbnZlcnNlLW5hdi1zZWNvbmRhcnktc3VibGlzdC1pdGVtLWhvdmVyLWNvbG9yOiAgICBAaW52ZXJzZS1nbG9iYWwtY29sb3I7XG5AaW52ZXJzZS1uYXYtc2Vjb25kYXJ5LXN1Ymxpc3QtaXRlbS1hY3RpdmUtY29sb3I6ICAgQGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuXG5AaW52ZXJzZS1uYXYtZGl2aWRlcnMtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWJvcmRlcjtcblxuLmhvb2staW52ZXJzZSgpIHtcblxuICAgIC8vXG4gICAgLy8gRGVmYXVsdFxuICAgIC8vXG5cbiAgICAudWstbmF2LWRlZmF1bHQgPiBsaSA+IGEge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtbmF2LWRlZmF1bHQtaXRlbS1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1uYXYtZGVmYXVsdC1pdGVtKCk7XG4gICAgfVxuXG4gICAgLnVrLW5hdi1kZWZhdWx0ID4gbGkgPiBhOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLW5hdi1kZWZhdWx0LWl0ZW0taG92ZXItY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtbmF2LWRlZmF1bHQtaXRlbS1ob3ZlcigpO1xuICAgIH1cblxuICAgIC51ay1uYXYtZGVmYXVsdCA+IGxpLnVrLWFjdGl2ZSA+IGEge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtbmF2LWRlZmF1bHQtaXRlbS1hY3RpdmUtY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtbmF2LWRlZmF1bHQtaXRlbS1hY3RpdmUoKTtcbiAgICB9XG5cbiAgICAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1oZWFkZXIge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtbmF2LWRlZmF1bHQtaGVhZGVyLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLW5hdi1kZWZhdWx0LWhlYWRlcigpO1xuICAgIH1cblxuICAgIC51ay1uYXYtZGVmYXVsdCAudWstbmF2LWRpdmlkZXIge1xuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiBAaW52ZXJzZS1uYXYtZGVmYXVsdC1kaXZpZGVyLWJvcmRlcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1uYXYtZGVmYXVsdC1kaXZpZGVyKCk7XG4gICAgfVxuXG4gICAgLnVrLW5hdi1kZWZhdWx0IC51ay1uYXYtc3ViIGEgeyBjb2xvcjogQGludmVyc2UtbmF2LWRlZmF1bHQtc3VibGlzdC1pdGVtLWNvbG9yOyB9XG5cbiAgICAudWstbmF2LWRlZmF1bHQgLnVrLW5hdi1zdWIgYTpob3ZlciB7IGNvbG9yOiBAaW52ZXJzZS1uYXYtZGVmYXVsdC1zdWJsaXN0LWl0ZW0taG92ZXItY29sb3I7IH1cblxuICAgIC51ay1uYXYtZGVmYXVsdCAudWstbmF2LXN1YiBsaS51ay1hY3RpdmUgPiBhIHsgY29sb3I6IEBpbnZlcnNlLW5hdi1kZWZhdWx0LXN1Ymxpc3QtaXRlbS1hY3RpdmUtY29sb3I7IH1cblxuICAgIC8vXG4gICAgLy8gUHJpbWFyeVxuICAgIC8vXG5cbiAgICAudWstbmF2LXByaW1hcnkgPiBsaSA+IGEge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtbmF2LXByaW1hcnktaXRlbS1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1uYXYtcHJpbWFyeS1pdGVtKCk7XG4gICAgfVxuXG4gICAgLnVrLW5hdi1wcmltYXJ5ID4gbGkgPiBhOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLW5hdi1wcmltYXJ5LWl0ZW0taG92ZXItY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtbmF2LXByaW1hcnktaXRlbS1ob3ZlcigpO1xuICAgIH1cblxuICAgIC51ay1uYXYtcHJpbWFyeSA+IGxpLnVrLWFjdGl2ZSA+IGEge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtbmF2LXByaW1hcnktaXRlbS1hY3RpdmUtY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtbmF2LXByaW1hcnktaXRlbS1hY3RpdmUoKTtcbiAgICB9XG5cbiAgICAudWstbmF2LXByaW1hcnkgLnVrLW5hdi1oZWFkZXIge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtbmF2LXByaW1hcnktaGVhZGVyLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLW5hdi1wcmltYXJ5LWhlYWRlcigpO1xuICAgIH1cblxuICAgIC51ay1uYXYtcHJpbWFyeSAudWstbmF2LWRpdmlkZXIge1xuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiBAaW52ZXJzZS1uYXYtcHJpbWFyeS1kaXZpZGVyLWJvcmRlcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1uYXYtcHJpbWFyeS1kaXZpZGVyKCk7XG4gICAgfVxuXG4gICAgLnVrLW5hdi1wcmltYXJ5IC51ay1uYXYtc3ViIGEgeyBjb2xvcjogQGludmVyc2UtbmF2LXByaW1hcnktc3VibGlzdC1pdGVtLWNvbG9yOyB9XG5cbiAgICAudWstbmF2LXByaW1hcnkgLnVrLW5hdi1zdWIgYTpob3ZlciB7IGNvbG9yOiBAaW52ZXJzZS1uYXYtcHJpbWFyeS1zdWJsaXN0LWl0ZW0taG92ZXItY29sb3I7IH1cblxuICAgIC51ay1uYXYtcHJpbWFyeSAudWstbmF2LXN1YiBsaS51ay1hY3RpdmUgPiBhIHsgY29sb3I6IEBpbnZlcnNlLW5hdi1wcmltYXJ5LXN1Ymxpc3QtaXRlbS1hY3RpdmUtY29sb3I7IH1cblxuICAgIC8vXG4gICAgLy8gU2Vjb25kYXJ5XG4gICAgLy9cblxuICAgIC51ay1uYXYtc2Vjb25kYXJ5ID4gbGkgPiBhIHtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLW5hdi1zZWNvbmRhcnktaXRlbS1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1uYXYtc2Vjb25kYXJ5LWl0ZW0oKTtcbiAgICB9XG5cbiAgICAudWstbmF2LXNlY29uZGFyeSA+IGxpID4gYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1uYXYtc2Vjb25kYXJ5LWl0ZW0taG92ZXItY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtbmF2LXNlY29uZGFyeS1pdGVtLWhvdmVyKCk7XG4gICAgfVxuXG4gICAgLnVrLW5hdi1zZWNvbmRhcnkgPiBsaS51ay1hY3RpdmUgPiBhIHtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLW5hdi1zZWNvbmRhcnktaXRlbS1hY3RpdmUtY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtbmF2LXNlY29uZGFyeS1pdGVtLWFjdGl2ZSgpO1xuICAgIH1cblxuICAgIC51ay1uYXYtc2Vjb25kYXJ5IC51ay1uYXYtc3VidGl0bGUge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtbmF2LXNlY29uZGFyeS1zdWJ0aXRsZS1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1uYXYtc2Vjb25kYXJ5LXN1YnRpdGxlKCk7XG4gICAgfVxuXG4gICAgLnVrLW5hdi1zZWNvbmRhcnkgPiBsaSA+IGE6aG92ZXIgLnVrLW5hdi1zdWJ0aXRsZSB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1uYXYtc2Vjb25kYXJ5LXN1YnRpdGxlLWhvdmVyLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLW5hdi1zZWNvbmRhcnktc3VidGl0bGUtaG92ZXIoKTtcbiAgICB9XG5cbiAgICAudWstbmF2LXNlY29uZGFyeSA+IGxpLnVrLWFjdGl2ZSA+IGEgLnVrLW5hdi1zdWJ0aXRsZSB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1uYXYtc2Vjb25kYXJ5LXN1YnRpdGxlLWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1uYXYtc2Vjb25kYXJ5LXN1YnRpdGxlLWFjdGl2ZSgpO1xuICAgIH1cblxuICAgIC51ay1uYXYtc2Vjb25kYXJ5IC51ay1uYXYtaGVhZGVyIHtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLW5hdi1zZWNvbmRhcnktaGVhZGVyLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLW5hdi1zZWNvbmRhcnktaGVhZGVyKCk7XG4gICAgfVxuXG4gICAgLnVrLW5hdi1zZWNvbmRhcnkgLnVrLW5hdi1kaXZpZGVyIHtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogQGludmVyc2UtbmF2LXNlY29uZGFyeS1kaXZpZGVyLWJvcmRlcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1uYXYtc2Vjb25kYXJ5LWRpdmlkZXIoKTtcbiAgICB9XG5cbiAgICAudWstbmF2LXNlY29uZGFyeSAudWstbmF2LXN1YiBhIHsgY29sb3I6IEBpbnZlcnNlLW5hdi1zZWNvbmRhcnktc3VibGlzdC1pdGVtLWNvbG9yOyB9XG5cbiAgICAudWstbmF2LXNlY29uZGFyeSAudWstbmF2LXN1YiBhOmhvdmVyIHsgY29sb3I6IEBpbnZlcnNlLW5hdi1zZWNvbmRhcnktc3VibGlzdC1pdGVtLWhvdmVyLWNvbG9yOyB9XG5cbiAgICAudWstbmF2LXNlY29uZGFyeSAudWstbmF2LXN1YiBsaS51ay1hY3RpdmUgPiBhIHsgY29sb3I6IEBpbnZlcnNlLW5hdi1zZWNvbmRhcnktc3VibGlzdC1pdGVtLWFjdGl2ZS1jb2xvcjsgfVxuXG4gICAgLy9cbiAgICAvLyBEaXZpZGVyc1xuICAgIC8vXG5cbiAgICAudWstbmF2LnVrLW5hdi1kaXZpZGVyID4gOm5vdCgudWstbmF2LWRpdmlkZXIpICsgOm5vdCgudWstbmF2LWhlYWRlciwgLnVrLW5hdi1kaXZpZGVyKSB7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6IEBpbnZlcnNlLW5hdi1kaXZpZGVycy1ib3JkZXI7XG4gICAgICAgIC5ob29rLWludmVyc2UtbmF2LWRpdmlkZXJzKCk7XG4gICAgfVxuXG59XG5cbi5ob29rLWludmVyc2UtbmF2LWRlZmF1bHQtaXRlbSgpIHt9XG4uaG9vay1pbnZlcnNlLW5hdi1kZWZhdWx0LWl0ZW0taG92ZXIoKSB7fVxuLmhvb2staW52ZXJzZS1uYXYtZGVmYXVsdC1pdGVtLWFjdGl2ZSgpIHt9XG4uaG9vay1pbnZlcnNlLW5hdi1kZWZhdWx0LWhlYWRlcigpIHt9XG4uaG9vay1pbnZlcnNlLW5hdi1kZWZhdWx0LWRpdmlkZXIoKSB7fVxuLmhvb2staW52ZXJzZS1uYXYtcHJpbWFyeS1pdGVtKCkge31cbi5ob29rLWludmVyc2UtbmF2LXByaW1hcnktaXRlbS1ob3ZlcigpIHt9XG4uaG9vay1pbnZlcnNlLW5hdi1wcmltYXJ5LWl0ZW0tYWN0aXZlKCkge31cbi5ob29rLWludmVyc2UtbmF2LXByaW1hcnktaGVhZGVyKCkge31cbi5ob29rLWludmVyc2UtbmF2LXByaW1hcnktZGl2aWRlcigpIHt9XG4uaG9vay1pbnZlcnNlLW5hdi1zZWNvbmRhcnktaXRlbSgpIHt9XG4uaG9vay1pbnZlcnNlLW5hdi1zZWNvbmRhcnktaXRlbS1ob3ZlcigpIHt9XG4uaG9vay1pbnZlcnNlLW5hdi1zZWNvbmRhcnktaXRlbS1hY3RpdmUoKSB7fVxuLmhvb2staW52ZXJzZS1uYXYtc2Vjb25kYXJ5LXN1YnRpdGxlKCkge31cbi5ob29rLWludmVyc2UtbmF2LXNlY29uZGFyeS1zdWJ0aXRsZS1ob3ZlcigpIHt9XG4uaG9vay1pbnZlcnNlLW5hdi1zZWNvbmRhcnktc3VidGl0bGUtYWN0aXZlKCkge31cbi5ob29rLWludmVyc2UtbmF2LXNlY29uZGFyeS1oZWFkZXIoKSB7fVxuLmhvb2staW52ZXJzZS1uYXYtc2Vjb25kYXJ5LWRpdmlkZXIoKSB7fVxuLmhvb2staW52ZXJzZS1uYXYtZGl2aWRlcnMoKSB7fVxuIiwiLy9cbi8vIENvbXBvbmVudDogTmF2XG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIE5ld1xuLy9cblxuQG5hdi1oZWFkZXItZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgaW5oZXJpdDtcbkBuYXYtaGVhZGVyLWxldHRlci1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWxldHRlci1zcGFjaW5nO1xuXG5AbmF2LWRlZmF1bHQtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWZvbnQtc2l6ZTtcbkBuYXYtZGVmYXVsdC1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtZmFtaWx5O1xuQG5hdi1kZWZhdWx0LWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktZm9udC13ZWlnaHQ7XG5AbmF2LWRlZmF1bHQtdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS10ZXh0LXRyYW5zZm9ybTtcbkBuYXYtZGVmYXVsdC1sZXR0ZXItc3BhY2luZzogICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWxldHRlci1zcGFjaW5nO1xuQG5hdi1kZWZhdWx0LWZvbnQtc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktZm9udC1zdHlsZTtcblxuQG5hdi1wcmltYXJ5LWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1wcmltYXJ5LWZvbnQtZmFtaWx5O1xuQG5hdi1wcmltYXJ5LWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1wcmltYXJ5LWZvbnQtd2VpZ2h0O1xuQG5hdi1wcmltYXJ5LXRleHQtdHJhbnNmb3JtOiAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1wcmltYXJ5LXRleHQtdHJhbnNmb3JtO1xuQG5hdi1wcmltYXJ5LWxldHRlci1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1wcmltYXJ5LWxldHRlci1zcGFjaW5nO1xuQG5hdi1wcmltYXJ5LWZvbnQtc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1wcmltYXJ5LWZvbnQtc3R5bGU7XG5cblxuLy8gU3VibGlzdHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1uYXYtc3ViKCkge31cblxuXG4vLyBQYXJlbnQgaWNvbiBtb2RpZmllclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW5hdi1wYXJlbnQtaWNvbigpIHt9XG5cblxuLy8gSGVhZGVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbmF2LWhlYWRlcigpIHdoZW4gbm90IChAbmF2LWhlYWRlci1mb250LXdlaWdodCA9IGluaGVyaXQpIHtcbiAgICBmb250LXdlaWdodDogQG5hdi1oZWFkZXItZm9udC13ZWlnaHQ7XG59XG5cbi5ob29rLW5hdi1oZWFkZXIoKSB3aGVuIG5vdCAoQG5hdi1oZWFkZXItbGV0dGVyLXNwYWNpbmcgPSBpbmhlcml0KSB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IEBuYXYtaGVhZGVyLWxldHRlci1zcGFjaW5nO1xufVxuXG5cbi8vIERpdmlkZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1uYXYtZGl2aWRlcigpIHt9XG5cblxuLy8gRGVmYXVsdCBzdHlsZSBtb2RpZmllclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW5hdi1kZWZhdWx0KCkgeyBmb250LXNpemU6IEBuYXYtZGVmYXVsdC1mb250LXNpemU7IH1cblxuLmhvb2stbmF2LWRlZmF1bHQoKSB3aGVuIG5vdCAoQG5hdi1kZWZhdWx0LWZvbnQtZmFtaWx5ID0gaW5oZXJpdCkge1xuICAgIGZvbnQtZmFtaWx5OiBAbmF2LWRlZmF1bHQtZm9udC1mYW1pbHk7XG59XG5cbi5ob29rLW5hdi1kZWZhdWx0KCkgd2hlbiBub3QgKEBuYXYtZGVmYXVsdC1mb250LXdlaWdodCA9IGluaGVyaXQpIHtcbiAgICBmb250LXdlaWdodDogQG5hdi1kZWZhdWx0LWZvbnQtd2VpZ2h0O1xufVxuXG4uaG9vay1uYXYtZGVmYXVsdCgpIHdoZW4gbm90IChAbmF2LWRlZmF1bHQtdGV4dC10cmFuc2Zvcm0gPSBpbmhlcml0KSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IEBuYXYtZGVmYXVsdC10ZXh0LXRyYW5zZm9ybTtcbn1cblxuLmhvb2stbmF2LWRlZmF1bHQoKSB3aGVuIG5vdCAoQG5hdi1kZWZhdWx0LWxldHRlci1zcGFjaW5nID0gaW5oZXJpdCkge1xuICAgIGxldHRlci1zcGFjaW5nOiBAbmF2LWRlZmF1bHQtbGV0dGVyLXNwYWNpbmc7XG59XG5cbi5ob29rLW5hdi1kZWZhdWx0KCkgd2hlbiBub3QgKEBuYXYtZGVmYXVsdC1mb250LXN0eWxlID0gaW5oZXJpdCkge1xuICAgIGZvbnQtc3R5bGU6IEBuYXYtZGVmYXVsdC1mb250LXN0eWxlO1xufVxuXG4uaG9vay1uYXYtZGVmYXVsdC1pdGVtKCkge31cblxuLmhvb2stbmF2LWRlZmF1bHQtaXRlbS1ob3ZlcigpIHt9XG5cbi5ob29rLW5hdi1kZWZhdWx0LWl0ZW0tYWN0aXZlKCkge31cblxuLmhvb2stbmF2LWRlZmF1bHQtaGVhZGVyKCkge31cblxuLmhvb2stbmF2LWRlZmF1bHQtZGl2aWRlcigpIHt9XG5cblxuLy8gUHJpbWFyeSBzdHlsZSBtb2RpZmllclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW5hdi1wcmltYXJ5KCkgd2hlbiBub3QgKEBuYXYtcHJpbWFyeS1mb250LWZhbWlseSA9IGluaGVyaXQpIHtcbiAgICBmb250LWZhbWlseTogQG5hdi1wcmltYXJ5LWZvbnQtZmFtaWx5O1xufVxuXG4uaG9vay1uYXYtcHJpbWFyeSgpIHdoZW4gbm90IChAbmF2LXByaW1hcnktZm9udC13ZWlnaHQgPSBpbmhlcml0KSB7XG4gICAgZm9udC13ZWlnaHQ6IEBuYXYtcHJpbWFyeS1mb250LXdlaWdodDtcbn1cblxuLmhvb2stbmF2LXByaW1hcnkoKSB3aGVuIG5vdCAoQG5hdi1wcmltYXJ5LXRleHQtdHJhbnNmb3JtID0gaW5oZXJpdCkge1xuICAgIHRleHQtdHJhbnNmb3JtOiBAbmF2LXByaW1hcnktdGV4dC10cmFuc2Zvcm07XG59XG5cbi5ob29rLW5hdi1wcmltYXJ5KCkgd2hlbiBub3QgKEBuYXYtcHJpbWFyeS1sZXR0ZXItc3BhY2luZyA9IGluaGVyaXQpIHtcbiAgICBsZXR0ZXItc3BhY2luZzogQG5hdi1wcmltYXJ5LWxldHRlci1zcGFjaW5nO1xufVxuXG4uaG9vay1uYXYtcHJpbWFyeSgpIHdoZW4gbm90IChAbmF2LXByaW1hcnktZm9udC1zdHlsZSA9IGluaGVyaXQpIHtcbiAgICBmb250LXN0eWxlOiBAbmF2LXByaW1hcnktZm9udC1zdHlsZTtcbn1cblxuLmhvb2stbmF2LXByaW1hcnktaXRlbSgpIHt9XG5cbi5ob29rLW5hdi1wcmltYXJ5LWl0ZW0taG92ZXIoKSB7fVxuXG4uaG9vay1uYXYtcHJpbWFyeS1pdGVtLWFjdGl2ZSgpIHt9XG5cbi5ob29rLW5hdi1wcmltYXJ5LWhlYWRlcigpIHt9XG5cbi5ob29rLW5hdi1wcmltYXJ5LWRpdmlkZXIoKSB7fVxuXG5cbi8vIFN0eWxlIG1vZGlmaWVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbmF2LWRpdmlkZXJzKCkge31cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbmF2LW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1pbnZlcnNlLW5hdi1wYXJlbnQtaWNvbigpIHt9XG5cbi5ob29rLWludmVyc2UtbmF2LWRlZmF1bHQtaXRlbSgpIHt9XG4uaG9vay1pbnZlcnNlLW5hdi1kZWZhdWx0LWl0ZW0taG92ZXIoKSB7fVxuLmhvb2staW52ZXJzZS1uYXYtZGVmYXVsdC1pdGVtLWFjdGl2ZSgpIHt9XG4uaG9vay1pbnZlcnNlLW5hdi1kZWZhdWx0LWhlYWRlcigpIHt9XG4uaG9vay1pbnZlcnNlLW5hdi1kZWZhdWx0LWRpdmlkZXIoKSB7fVxuXG4uaG9vay1pbnZlcnNlLW5hdi1wcmltYXJ5LWl0ZW0oKSB7fVxuLmhvb2staW52ZXJzZS1uYXYtcHJpbWFyeS1pdGVtLWhvdmVyKCkge31cbi5ob29rLWludmVyc2UtbmF2LXByaW1hcnktaXRlbS1hY3RpdmUoKSB7fVxuLmhvb2staW52ZXJzZS1uYXYtcHJpbWFyeS1oZWFkZXIoKSB7fVxuLmhvb2staW52ZXJzZS1uYXYtcHJpbWFyeS1kaXZpZGVyKCkge31cblxuLmhvb2staW52ZXJzZS1uYXYtZGl2aWRlcnMoKSB7fSIsIi8vXG4vLyBDb21wb25lbnQ6IE5hdlxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gTmV3XG4vL1xuXG5AbmF2LXBhcmVudC1pY29uLW1hcmdpbi1yaWdodDogICAgICAgICAgICAgICAgICAwO1xuXG5AbmF2LWRlZmF1bHQtaXRlbS1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICB0cmFuc3BhcmVudDtcbkBuYXYtZGVmYXVsdC1pdGVtLWFjdGl2ZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuXG5AbmF2LXByaW1hcnktaXRlbS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICBAbmF2LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbDtcbkBuYXYtcHJpbWFyeS1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgIEBuYXYtaXRlbS1wYWRkaW5nLWhvcml6b250YWw7XG5cbkBuYXYtcHJpbWFyeS1oZWFkZXItcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgIEBuYXYtaGVhZGVyLXBhZGRpbmctdmVydGljYWw7XG5AbmF2LXByaW1hcnktaGVhZGVyLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICBAbmF2LWhlYWRlci1wYWRkaW5nLWhvcml6b250YWw7XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBTdWJsaXN0c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW5hdi1zdWIoKSB7fVxuXG5cbi8vIFBhcmVudCBpY29uIG1vZGlmaWVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbmF2LXBhcmVudC1pY29uKCkgeyBtYXJnaW4tcmlnaHQ6IEBuYXYtcGFyZW50LWljb24tbWFyZ2luLXJpZ2h0OyB9XG5cblxuLy8gSGVhZGVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbmF2LWhlYWRlcigpIHt9XG5cblxuLy8gRGl2aWRlclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW5hdi1kaXZpZGVyKCkge31cblxuXG4vLyBEZWZhdWx0IHN0eWxlIG1vZGlmaWVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbmF2LWRlZmF1bHQoKSB7fVxuXG4uaG9vay1uYXYtZGVmYXVsdC1pdGVtKCkge1xuICAgIHRyYW5zaXRpb246IDAuMXMgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgYm94LXNoYWRvdztcbn1cblxuLmhvb2stbmF2LWRlZmF1bHQtaXRlbS1ob3ZlcigpIHsgYmFja2dyb3VuZC1jb2xvcjogQG5hdi1kZWZhdWx0LWl0ZW0taG92ZXItYmFja2dyb3VuZDsgfVxuXG4uaG9vay1uYXYtZGVmYXVsdC1pdGVtLWFjdGl2ZSgpIHsgYmFja2dyb3VuZC1jb2xvcjogQG5hdi1kZWZhdWx0LWl0ZW0tYWN0aXZlLWJhY2tncm91bmQ7IH1cblxuLmhvb2stbmF2LWRlZmF1bHQtaGVhZGVyKCkge31cblxuLmhvb2stbmF2LWRlZmF1bHQtZGl2aWRlcigpIHt9XG5cblxuLy8gUHJpbWFyeSBzdHlsZSBtb2RpZmllclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW5hdi1wcmltYXJ5KCkge31cblxuLmhvb2stbmF2LXByaW1hcnktaXRlbSgpIHtcbiAgICB0cmFuc2l0aW9uOiAwLjFzIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXItY29sb3IsIGJveC1zaGFkb3c7XG4gICAgcGFkZGluZzogQG5hdi1wcmltYXJ5LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbCBAbmF2LXByaW1hcnktaXRlbS1wYWRkaW5nLWhvcml6b250YWw7XG59XG5cbi5ob29rLW5hdi1wcmltYXJ5LWl0ZW0taG92ZXIoKSB7fVxuXG4uaG9vay1uYXYtcHJpbWFyeS1pdGVtLWFjdGl2ZSgpIHt9XG5cbi5ob29rLW5hdi1wcmltYXJ5LWhlYWRlcigpIHsgcGFkZGluZzogQG5hdi1wcmltYXJ5LWhlYWRlci1wYWRkaW5nLXZlcnRpY2FsIEBuYXYtcHJpbWFyeS1oZWFkZXItcGFkZGluZy1ob3Jpem9udGFsOyB9XG5cbi5ob29rLW5hdi1wcmltYXJ5LWRpdmlkZXIoKSB7fVxuXG5cbi8vIFN0eWxlIG1vZGlmaWVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbmF2LWRpdmlkZXJzKCkge31cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbmF2LW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW52ZXJzZS1uYXYtZGVmYXVsdC1pdGVtLWhvdmVyLWJhY2tncm91bmQ6ICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuQGludmVyc2UtbmF2LWRlZmF1bHQtaXRlbS1hY3RpdmUtYmFja2dyb3VuZDogICAgICAgICAgICB0cmFuc3BhcmVudDtcblxuLmhvb2staW52ZXJzZS1uYXYtcGFyZW50LWljb24oKSB7fVxuXG4uaG9vay1pbnZlcnNlLW5hdi1kZWZhdWx0LWl0ZW0oKSB7fVxuLmhvb2staW52ZXJzZS1uYXYtZGVmYXVsdC1pdGVtLWhvdmVyKCkgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1uYXYtZGVmYXVsdC1pdGVtLWhvdmVyLWJhY2tncm91bmQ7IH1cbi5ob29rLWludmVyc2UtbmF2LWRlZmF1bHQtaXRlbS1hY3RpdmUoKSB7IGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLW5hdi1kZWZhdWx0LWl0ZW0tYWN0aXZlLWJhY2tncm91bmQ7IH1cbi5ob29rLWludmVyc2UtbmF2LWRlZmF1bHQtaGVhZGVyKCkge31cbi5ob29rLWludmVyc2UtbmF2LWRlZmF1bHQtZGl2aWRlcigpIHt9XG5cbi5ob29rLWludmVyc2UtbmF2LXByaW1hcnktaXRlbSgpIHt9XG4uaG9vay1pbnZlcnNlLW5hdi1wcmltYXJ5LWl0ZW0taG92ZXIoKSB7fVxuLmhvb2staW52ZXJzZS1uYXYtcHJpbWFyeS1pdGVtLWFjdGl2ZSgpIHt9XG4uaG9vay1pbnZlcnNlLW5hdi1wcmltYXJ5LWhlYWRlcigpIHt9XG4uaG9vay1pbnZlcnNlLW5hdi1wcmltYXJ5LWRpdmlkZXIoKSB7fVxuXG4uaG9vay1pbnZlcnNlLW5hdi1kaXZpZGVycygpIHt9IiwiLy8gTmFtZTogICAgICAgICAgICBOYXZiYXJcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBob3Jpem9udGFsIG5hdmlnYXRpb24gYmFyc1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLW5hdmJhcmBcbi8vXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay1uYXZiYXItY29udGFpbmVyYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2YmFyLWxlZnRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXZiYXItcmlnaHRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXZiYXItY2VudGVyYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2YmFyLWNlbnRlci1sZWZ0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2YmFyLWNlbnRlci1yaWdodGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW5hdmJhci1uYXZgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXZiYXItcGFyZW50LWljb25gXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXZiYXItaXRlbWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW5hdmJhci10b2dnbGVgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXZiYXItc3VidGl0bGVgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXZiYXItZHJvcGJhcmBcbi8vXG4vLyBBZG9wdGVkOiAgICAgICAgIGB1ay1uYXZiYXItZHJvcGRvd25gICsgTW9kaWZpZXJzXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXZiYXItZHJvcGRvd24tbmF2YFxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2YmFyLWRyb3Bkb3duLWdyaWRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXZiYXItdG9nZ2xlLWljb25gXG4vL1xuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstbmF2YmFyLXByaW1hcnlgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXZiYXItdHJhbnNwYXJlbnRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1uYXZiYXItc3RpY2t5YFxuLy8gICAgICAgICAgICAgICAgICBgdWstbmF2YmFyLWRyb3Bkb3duLXN0YWNrYFxuLy9cbi8vIFN0YXRlczogICAgICAgICAgYHVrLWFjdGl2ZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBhcmVudGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW9wZW5gXG4vL1xuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBuYXZiYXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZDtcbkBuYXZiYXItZ2FwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDBweDsgLy8gTXVzdCBoYXZlIGEgdW5pdCBiZWNhdXNlIG9mIGBjYWxjYFxuQG5hdmJhci1jb2xvci1tb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9uZTtcblxuQG5hdmJhci1uYXYtZ2FwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHB4OyAvLyBNdXN0IGhhdmUgYSB1bml0IGJlY2F1c2Ugb2YgYGNhbGNgXG5cbkBuYXZiYXItbmF2LWl0ZW0taGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgIDgwcHg7XG5AbmF2YmFyLW5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAxNXB4O1xuQG5hdmJhci1uYXYtaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tdXRlZC1jb2xvcjtcbkBuYXZiYXItbmF2LWl0ZW0tZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZm9udC1zaXplO1xuQG5hdmJhci1uYXYtaXRlbS1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgQGdsb2JhbC1mb250LWZhbWlseTtcbkBuYXZiYXItbmF2LWl0ZW0taG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtY29sb3I7XG5AbmF2YmFyLW5hdi1pdGVtLW9uY2xpY2stY29sb3I6ICAgICAgICAgICAgICAgICBAZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQG5hdmJhci1uYXYtaXRlbS1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgICAgICAgQGdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcblxuQG5hdmJhci1wYXJlbnQtaWNvbi1tYXJnaW4tbGVmdDogICAgICAgICAgICAgICAgNHB4O1xuXG5AbmF2YmFyLWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAxNXB4O1xuQG5hdmJhci1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1jb2xvcjtcblxuQG5hdmJhci10b2dnbGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tdXRlZC1jb2xvcjtcbkBuYXZiYXItdG9nZ2xlLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtY29sb3I7XG5cbkBuYXZiYXItc3VidGl0bGUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc21hbGwtZm9udC1zaXplO1xuXG5AbmF2YmFyLWRyb3Bkb3duLXotaW5kZXg6ICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXotaW5kZXggKyAyMDtcbkBuYXZiYXItZHJvcGRvd24tbWFyZ2luOiAgICAgICAgICAgICAgICAgICAgICAgIDA7XG5AbmF2YmFyLWRyb3Bkb3duLXNoaWZ0LW1hcmdpbjogICAgICAgICAgICAgICAgICAwO1xuQG5hdmJhci1kcm9wZG93bi12aWV3cG9ydC1tYXJnaW46ICAgICAgICAgICAgICAgMTVweDtcbkBuYXZiYXItZHJvcGRvd24td2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgIDIwMHB4O1xuQG5hdmJhci1kcm9wZG93bi1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAgMTVweDtcbkBuYXZiYXItZHJvcGRvd24tYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZDtcbkBuYXZiYXItZHJvcGRvd24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtY29sb3I7XG5AbmF2YmFyLWRyb3Bkb3duLWNvbG9yLW1vZGU6ICAgICAgICAgICAgICAgICAgICBub25lO1xuQG5hdmJhci1kcm9wZG93bi1ncmlkLWd1dHRlci1ob3Jpem9udGFsOiAgICAgICAgQGdsb2JhbC1ndXR0ZXI7XG5AbmF2YmFyLWRyb3Bkb3duLWdyaWQtZ3V0dGVyLXZlcnRpY2FsOiAgICAgICAgICBAbmF2YmFyLWRyb3Bkb3duLWdyaWQtZ3V0dGVyLWhvcml6b250YWw7XG5cbkBuYXZiYXItZHJvcGRvd24tbGFyZ2Utc2hpZnQtbWFyZ2luOiAgICAgICAgICAgIDA7XG5AbmF2YmFyLWRyb3Bkb3duLWxhcmdlLXBhZGRpbmc6ICAgICAgICAgICAgICAgICA0MHB4O1xuXG5AbmF2YmFyLWRyb3Bkb3duLWRyb3BiYXItbWFyZ2luOiAgICAgICAgICAgICAgICAwO1xuQG5hdmJhci1kcm9wZG93bi1kcm9wYmFyLXNoaWZ0LW1hcmdpbjogICAgICAgICAgMDtcbkBuYXZiYXItZHJvcGRvd24tZHJvcGJhci1wYWRkaW5nLXRvcDogICAgICAgICAgIEBuYXZiYXItZHJvcGRvd24tcGFkZGluZztcbkBuYXZiYXItZHJvcGRvd24tZHJvcGJhci1wYWRkaW5nLWJvdHRvbTogICAgICAgIEBuYXZiYXItZHJvcGRvd24tZHJvcGJhci1wYWRkaW5nLXRvcDtcbkBuYXZiYXItZHJvcGRvd24tZHJvcGJhci12aWV3cG9ydC1tYXJnaW46ICAgICAgIDE1cHg7XG5AbmF2YmFyLWRyb3Bkb3duLWRyb3BiYXItdmlld3BvcnQtbWFyZ2luLXM6ICAgICBAZ2xvYmFsLWd1dHRlcjtcbkBuYXZiYXItZHJvcGRvd24tZHJvcGJhci12aWV3cG9ydC1tYXJnaW4tbTogICAgIEBnbG9iYWwtbWVkaXVtLWd1dHRlcjtcblxuQG5hdmJhci1kcm9wZG93bi1kcm9wYmFyLWxhcmdlLXNoaWZ0LW1hcmdpbjogICAgMDtcbkBuYXZiYXItZHJvcGRvd24tZHJvcGJhci1sYXJnZS1wYWRkaW5nLXRvcDogICAgIEBuYXZiYXItZHJvcGRvd24tbGFyZ2UtcGFkZGluZztcbkBuYXZiYXItZHJvcGRvd24tZHJvcGJhci1sYXJnZS1wYWRkaW5nLWJvdHRvbTogIEBuYXZiYXItZHJvcGRvd24tZHJvcGJhci1sYXJnZS1wYWRkaW5nLXRvcDtcblxuQG5hdmJhci1kcm9wZG93bi1uYXYtaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgQGdsb2JhbC1tdXRlZC1jb2xvcjtcbkBuYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0taG92ZXItY29sb3I6ICAgICAgICAgIEBnbG9iYWwtY29sb3I7XG5AbmF2YmFyLWRyb3Bkb3duLW5hdi1pdGVtLWFjdGl2ZS1jb2xvcjogICAgICAgICBAZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQG5hdmJhci1kcm9wZG93bi1uYXYtc3VidGl0bGUtZm9udC1zaXplOiAgICAgICAgQGdsb2JhbC1zbWFsbC1mb250LXNpemU7XG5AbmF2YmFyLWRyb3Bkb3duLW5hdi1oZWFkZXItY29sb3I6ICAgICAgICAgICAgICBAZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQG5hdmJhci1kcm9wZG93bi1uYXYtZGl2aWRlci1ib3JkZXItd2lkdGg6ICAgICAgQGdsb2JhbC1ib3JkZXItd2lkdGg7XG5AbmF2YmFyLWRyb3Bkb3duLW5hdi1kaXZpZGVyLWJvcmRlcjogICAgICAgICAgICBAZ2xvYmFsLWJvcmRlcjtcbkBuYXZiYXItZHJvcGRvd24tbmF2LXN1Ymxpc3QtaXRlbS1jb2xvcjogICAgICAgIEBnbG9iYWwtbXV0ZWQtY29sb3I7XG5AbmF2YmFyLWRyb3Bkb3duLW5hdi1zdWJsaXN0LWl0ZW0taG92ZXItY29sb3I6ICBAZ2xvYmFsLWNvbG9yO1xuQG5hdmJhci1kcm9wZG93bi1uYXYtc3VibGlzdC1pdGVtLWFjdGl2ZS1jb2xvcjogQGdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcblxuQG5hdmJhci1kcm9wYmFyLXotaW5kZXg6ICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC16LWluZGV4IC0gMjA7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IE5hdmJhclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBDcmVhdGUgcG9zaXRpb24gY29udGV4dCB0byBjZW50ZXIgbmF2YmFyIGdyb3VwXG4gKi9cblxuLnVrLW5hdmJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAvKiAxICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC5ob29rLW5hdmJhcigpO1xufVxuXG5cbi8qIENvbnRhaW5lclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1uYXZiYXItY29udGFpbmVyOm5vdCgudWstbmF2YmFyLXRyYW5zcGFyZW50KSB7XG4gICAgYmFja2dyb3VuZDogQG5hdmJhci1iYWNrZ3JvdW5kO1xuICAgIC5ob29rLW5hdmJhci1jb250YWluZXIoKTtcbn1cblxuLy8gQ29sb3IgTW9kZVxuLnVrLW5hdmJhci1jb250YWluZXI6bm90KC51ay1uYXZiYXItdHJhbnNwYXJlbnQpOmV4dGVuZCgudWstbGlnaHQgYWxsKSB3aGVuIChAbmF2YmFyLWNvbG9yLW1vZGUgPSBsaWdodCkge31cbi51ay1uYXZiYXItY29udGFpbmVyOm5vdCgudWstbmF2YmFyLXRyYW5zcGFyZW50KTpleHRlbmQoLnVrLWRhcmsgYWxsKSB3aGVuIChAbmF2YmFyLWNvbG9yLW1vZGUgPSBkYXJrKSB7fVxuXG5cbi8qIEdyb3Vwc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBBbGlnbiBuYXZzIGFuZCBpdGVtcyB2ZXJ0aWNhbGx5IGlmIHRoZXkgaGF2ZSBhIGRpZmZlcmVudCBoZWlnaHRcbiAqL1xuXG4udWstbmF2YmFyLWxlZnQsXG4udWstbmF2YmFyLXJpZ2h0LFxuW2NsYXNzKj0ndWstbmF2YmFyLWNlbnRlciddIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogQG5hdmJhci1nYXA7XG4gICAgLyogMSAqL1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi8qXG4gKiBIb3Jpem9udGFsIGFsaWdubWVudFxuICogMS4gQ3JlYXRlIHBvc2l0aW9uIGNvbnRleHQgZm9yIGNlbnRlcmVkIG5hdmJhciB3aXRoIHN1YiBncm91cHMgKGxlZnQvcmlnaHQpXG4gKiAyLiBGaXggdGV4dCB3cmFwcGluZyBpZiBjb250ZW50IGlzIGxhcmdlciB0aGFuIDUwJSBvZiB0aGUgY29udGFpbmVyLlxuICogMy4gTmVlZGVkIGZvciBkcm9wZG93bnMgYmVjYXVzZSBhIG5ldyBwb3NpdGlvbiBjb250ZXh0IGlzIGNyZWF0ZWRcbiAqICAgIGB6LWluZGV4YCBtdXN0IGJlIHNtYWxsZXIgdGhhbiBvZmYtY2FudmFzXG4gKiA0LiBBbGlnbiBzdWIgZ3JvdXBzIGZvciBjZW50ZXJlZCBuYXZiYXJcbiAqL1xuXG4udWstbmF2YmFyLXJpZ2h0IHsgbWFyZ2luLWxlZnQ6IGF1dG87IH1cblxuLnVrLW5hdmJhci1jZW50ZXI6b25seS1jaGlsZCB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIC8qIDEgKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi51ay1uYXZiYXItY2VudGVyOm5vdCg6b25seS1jaGlsZCkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwtNTAlKTtcbiAgICAvKiAyICovXG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLyogMyAqL1xuICAgIHotaW5kZXg6IEBnbG9iYWwtei1pbmRleCAtIDEwO1xufVxuXG4vKiA0ICovXG4udWstbmF2YmFyLWNlbnRlci1sZWZ0LFxuLnVrLW5hdmJhci1jZW50ZXItcmlnaHQge1xuICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgdG9wOiAwO1xufVxuXG4udWstbmF2YmFyLWNlbnRlci1sZWZ0IHsgcmlnaHQ6ICB+J2NhbGMoMTAwJSArIEB7bmF2YmFyLWdhcH0pJzsgfVxuLnVrLW5hdmJhci1jZW50ZXItcmlnaHQgeyBsZWZ0OiB+J2NhbGMoMTAwJSArIEB7bmF2YmFyLWdhcH0pJzsgfVxuXG5bY2xhc3MqPSd1ay1uYXZiYXItY2VudGVyLSddIHtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuXG4vKiBOYXZcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gUmVzZXQgbGlzdFxuICovXG5cbi51ay1uYXZiYXItbmF2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogQG5hdmJhci1uYXYtZ2FwO1xuICAgIC8qIDEgKi9cbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4vKlxuICogQWxsb3cgaXRlbXMgdG8gd3JhcCBpbnRvIHRoZSBuZXh0IGxpbmVcbiAqIE9ubHkgbm90IGBhYnNvbHV0ZWAgcG9zaXRpb25lZCBncm91cHNcbiAqL1xuXG4udWstbmF2YmFyLWxlZnQsXG4udWstbmF2YmFyLXJpZ2h0LFxuLnVrLW5hdmJhci1jZW50ZXI6b25seS1jaGlsZCB7IGZsZXgtd3JhcDogd3JhcDsgfVxuXG4vKlxuICogSXRlbXNcbiAqIDEuIENlbnRlciBjb250ZW50IHZlcnRpY2FsbHkgYW5kIGhvcml6b250YWxseVxuICogMi4gSW1pdGF0ZSB3aGl0ZSBzcGFjZSBnYXAgd2hlbiB1c2luZyBmbGV4Ym94XG4gKiAzLiBEaW1lbnNpb25zXG4gKiA0LiBTdHlsZVxuICogNS4gUmVxdWlyZWQgZm9yIGBhYFxuICovXG5cbi51ay1uYXZiYXItbmF2ID4gbGkgPiBhLCAgICAvLyBOYXYgaXRlbVxuLnVrLW5hdmJhci1pdGVtLCAgICAgICAgICAgIC8vIENvbnRlbnQgaXRlbVxuLnVrLW5hdmJhci10b2dnbGUgeyAgICAgICAgIC8vIENsaWNrYWJsZSBpdGVtXG4gICAgLyogMSAqL1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAvKiAyICovXG4gICAgY29sdW1uLWdhcDogMC4yNWVtO1xuICAgIC8qIDMgKi9cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1pbi1oZWlnaHQ6IEBuYXZiYXItbmF2LWl0ZW0taGVpZ2h0O1xuICAgIC8qIDQgKi9cbiAgICBmb250LXNpemU6IEBuYXZiYXItbmF2LWl0ZW0tZm9udC1zaXplO1xuICAgIGZvbnQtZmFtaWx5OiBAbmF2YmFyLW5hdi1pdGVtLWZvbnQtZmFtaWx5O1xuICAgIC8qIDUgKi9cbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi8qXG4gKiBOYXYgaXRlbXNcbiAqL1xuXG4udWstbmF2YmFyLW5hdiA+IGxpID4gYSB7XG4gICAgcGFkZGluZzogMCBAbmF2YmFyLW5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBjb2xvcjogQG5hdmJhci1uYXYtaXRlbS1jb2xvcjtcbiAgICAuaG9vay1uYXZiYXItbmF2LWl0ZW0oKTtcbn1cblxuLypcbiAqIEhvdmVyXG4gKiBBcHBseSBob3ZlciBzdHlsZSBhbHNvIGlmIGRyb3Bkb3duIGlzIG9wZW5lZFxuICovXG5cbi51ay1uYXZiYXItbmF2ID4gbGk6aG92ZXIgPiBhLFxuLnVrLW5hdmJhci1uYXYgPiBsaSA+IGFbYXJpYS1leHBhbmRlZD1cInRydWVcIl0ge1xuICAgIGNvbG9yOiBAbmF2YmFyLW5hdi1pdGVtLWhvdmVyLWNvbG9yO1xuICAgIC5ob29rLW5hdmJhci1uYXYtaXRlbS1ob3ZlcigpO1xufVxuXG4vKiBPbkNsaWNrICovXG4udWstbmF2YmFyLW5hdiA+IGxpID4gYTphY3RpdmUge1xuICAgIGNvbG9yOiBAbmF2YmFyLW5hdi1pdGVtLW9uY2xpY2stY29sb3I7XG4gICAgLmhvb2stbmF2YmFyLW5hdi1pdGVtLW9uY2xpY2soKTtcbn1cblxuLyogQWN0aXZlICovXG4udWstbmF2YmFyLW5hdiA+IGxpLnVrLWFjdGl2ZSA+IGEge1xuICAgIGNvbG9yOiBAbmF2YmFyLW5hdi1pdGVtLWFjdGl2ZS1jb2xvcjtcbiAgICAuaG9vay1uYXZiYXItbmF2LWl0ZW0tYWN0aXZlKCk7XG59XG5cblxuLyogUGFyZW50IGljb24gbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbmF2YmFyLXBhcmVudC1pY29uIHsgbWFyZ2luLWxlZnQ6IEBuYXZiYXItcGFyZW50LWljb24tbWFyZ2luLWxlZnQ7IH1cblxuLnVrLW5hdmJhci1uYXYgPiBsaSA+IGFbYXJpYS1leHBhbmRlZD1cInRydWVcIl0gLnVrLW5hdmJhci1wYXJlbnQtaWNvbiB7IHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cblxuXG4vKiBJdGVtXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLW5hdmJhci1pdGVtIHtcbiAgICBwYWRkaW5nOiAwIEBuYXZiYXItaXRlbS1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgY29sb3I6IEBuYXZiYXItaXRlbS1jb2xvcjtcbiAgICAuaG9vay1uYXZiYXItaXRlbSgpO1xufVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cblxuLnVrLW5hdmJhci1pdGVtID4gOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG5cblxuLyogVG9nZ2xlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLW5hdmJhci10b2dnbGUge1xuICAgIHBhZGRpbmc6IDAgQG5hdmJhci1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBjb2xvcjogQG5hdmJhci10b2dnbGUtY29sb3I7XG4gICAgLmhvb2stbmF2YmFyLXRvZ2dsZSgpO1xufVxuXG4udWstbmF2YmFyLXRvZ2dsZTpob3Zlcixcbi51ay1uYXZiYXItdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdIHtcbiAgICBjb2xvcjogQG5hdmJhci10b2dnbGUtaG92ZXItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIC5ob29rLW5hdmJhci10b2dnbGUtaG92ZXIoKTtcbn1cblxuLypcbiAqIEljb25cbiAqIEFkb3B0cyBgdWstaWNvbmBcbiAqL1xuXG4udWstbmF2YmFyLXRvZ2dsZS1pY29uIHtcbiAgICAuaG9vay1uYXZiYXItdG9nZ2xlLWljb24oKTtcbn1cblxuLyogSG92ZXIgKi9cbjpob3ZlciA+IC51ay1uYXZiYXItdG9nZ2xlLWljb24ge1xuICAgIC5ob29rLW5hdmJhci10b2dnbGUtaWNvbi1ob3ZlcigpO1xufVxuXG5cbi8qIFN1YnRpdGxlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLW5hdmJhci1zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiBAbmF2YmFyLXN1YnRpdGxlLWZvbnQtc2l6ZTtcbiAgICAuaG9vay1uYXZiYXItc3VidGl0bGUoKTtcbn1cblxuXG4vKiBKdXN0aWZ5IG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLW5hdmJhci1qdXN0aWZ5IC51ay1uYXZiYXItbGVmdCxcbi51ay1uYXZiYXItanVzdGlmeSAudWstbmF2YmFyLXJpZ2h0LFxuLnVrLW5hdmJhci1qdXN0aWZ5IC51ay1uYXZiYXItbmF2LFxuLnVrLW5hdmJhci1qdXN0aWZ5IC51ay1uYXZiYXItbmF2ID4gbGksICAgICAgICAvLyBOYXYgaXRlbVxuLnVrLW5hdmJhci1qdXN0aWZ5IC51ay1uYXZiYXItaXRlbSwgICAgICAgICAgICAvLyBDb250ZW50IGl0ZW1cbi51ay1uYXZiYXItanVzdGlmeSAudWstbmF2YmFyLXRvZ2dsZSB7IGZsZXgtZ3JvdzogMTsgfVxuXG5cbi8qIFN0eWxlIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1uYXZiYXItcHJpbWFyeSB7XG4gICAgLmhvb2stbmF2YmFyLXByaW1hcnkoKTtcbn1cblxuLnVrLW5hdmJhci10cmFuc3BhcmVudCB7XG4gICAgLmhvb2stbmF2YmFyLXRyYW5zcGFyZW50KCk7XG59XG5cbi51ay1uYXZiYXItc3RpY2t5IHtcbiAgICAuaG9vay1uYXZiYXItc3RpY2t5KCk7XG59XG5cblxuLyogRHJvcGRvd25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRvcHRzIGB1ay1kcm9wZG93bmBcbiAqIDEuIEhpZGUgYnkgZGVmYXVsdFxuICogMi4gU2V0IHBvc2l0aW9uXG4gKiAzLiBTZXQgYSBkZWZhdWx0IHdpZHRoXG4gKiA0LiBTdHlsZVxuICovXG5cbi51ay1uYXZiYXItZHJvcGRvd24ge1xuICAgIC8qIDEgKi9cbiAgICBkaXNwbGF5OiBub25lO1xuICAgIC8qIDIgKi9cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogQG5hdmJhci1kcm9wZG93bi16LWluZGV4O1xuICAgIC0tdWstcG9zaXRpb24tb2Zmc2V0OiBAbmF2YmFyLWRyb3Bkb3duLW1hcmdpbjtcbiAgICAtLXVrLXBvc2l0aW9uLXNoaWZ0LW9mZnNldDogQG5hdmJhci1kcm9wZG93bi1zaGlmdC1tYXJnaW47XG4gICAgLS11ay1wb3NpdGlvbi12aWV3cG9ydC1vZmZzZXQ6IEBuYXZiYXItZHJvcGRvd24tdmlld3BvcnQtbWFyZ2luO1xuICAgIC8qIDMgKi9cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiBAbmF2YmFyLWRyb3Bkb3duLXdpZHRoO1xuICAgIC8qIDQgKi9cbiAgICBwYWRkaW5nOiBAbmF2YmFyLWRyb3Bkb3duLXBhZGRpbmc7XG4gICAgYmFja2dyb3VuZDogQG5hdmJhci1kcm9wZG93bi1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiBAbmF2YmFyLWRyb3Bkb3duLWNvbG9yO1xuICAgIC5ob29rLW5hdmJhci1kcm9wZG93bigpO1xufVxuXG4vKiBTaG93ICovXG4udWstbmF2YmFyLWRyb3Bkb3duLnVrLW9wZW4geyBkaXNwbGF5OiBibG9jazsgfVxuXG4vKlxuICogUmVtb3ZlIG1hcmdpbiBmcm9tIHRoZSBsYXN0LWNoaWxkXG4gKi9cblxuIC51ay1uYXZiYXItZHJvcGRvd24gPiA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cblxuLy8gQ29sb3IgTW9kZVxuLnVrLW5hdmJhci1kcm9wZG93bjpleHRlbmQoLnVrLWxpZ2h0IGFsbCkgd2hlbiAoQG5hdmJhci1kcm9wZG93bi1jb2xvci1tb2RlID0gbGlnaHQpIHt9XG4udWstbmF2YmFyLWRyb3Bkb3duOmV4dGVuZCgudWstZGFyayBhbGwpIHdoZW4gKEBuYXZiYXItZHJvcGRvd24tY29sb3ItbW9kZSA9IGRhcmspIHt9XG5cbi8qXG4gKiBHcmlkXG4gKiBBZG9wdHMgYHVrLWdyaWRgXG4gKi9cblxuLyogR3V0dGVyIEhvcml6b250YWwgKi9cbi51ay1uYXZiYXItZHJvcGRvd24tZ3JpZCB7IG1hcmdpbi1sZWZ0OiAtQG5hdmJhci1kcm9wZG93bi1ncmlkLWd1dHRlci1ob3Jpem9udGFsOyB9XG4udWstbmF2YmFyLWRyb3Bkb3duLWdyaWQgPiAqIHsgcGFkZGluZy1sZWZ0OiBAbmF2YmFyLWRyb3Bkb3duLWdyaWQtZ3V0dGVyLWhvcml6b250YWw7IH1cblxuLyogR3V0dGVyIFZlcnRpY2FsICovXG4udWstbmF2YmFyLWRyb3Bkb3duLWdyaWQgPiAudWstZ3JpZC1tYXJnaW4geyBtYXJnaW4tdG9wOiBAbmF2YmFyLWRyb3Bkb3duLWdyaWQtZ3V0dGVyLXZlcnRpY2FsOyB9XG5cbi8qIFN0YWNrICovXG4udWstbmF2YmFyLWRyb3Bkb3duLXN0YWNrIC51ay1uYXZiYXItZHJvcGRvd24tZ3JpZCA+ICogeyB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbi8qXG4gKiBXaWR0aCBtb2RpZmllclxuICovXG5cbi51ay1uYXZiYXItZHJvcGRvd24td2lkdGgtMjpub3QoLnVrLW5hdmJhci1kcm9wZG93bi1zdGFjaykgeyB3aWR0aDogKEBuYXZiYXItZHJvcGRvd24td2lkdGggKiAyKTsgfVxuLnVrLW5hdmJhci1kcm9wZG93bi13aWR0aC0zOm5vdCgudWstbmF2YmFyLWRyb3Bkb3duLXN0YWNrKSB7IHdpZHRoOiAoQG5hdmJhci1kcm9wZG93bi13aWR0aCAqIDMpOyB9XG4udWstbmF2YmFyLWRyb3Bkb3duLXdpZHRoLTQ6bm90KC51ay1uYXZiYXItZHJvcGRvd24tc3RhY2spIHsgd2lkdGg6IChAbmF2YmFyLWRyb3Bkb3duLXdpZHRoICogNCk7IH1cbi51ay1uYXZiYXItZHJvcGRvd24td2lkdGgtNTpub3QoLnVrLW5hdmJhci1kcm9wZG93bi1zdGFjaykgeyB3aWR0aDogKEBuYXZiYXItZHJvcGRvd24td2lkdGggKiA1KTsgfVxuXG4vKlxuICogU2l6ZSBtb2RpZmllclxuICovXG5cbi51ay1uYXZiYXItZHJvcGRvd24tbGFyZ2Uge1xuICAgIC0tdWstcG9zaXRpb24tc2hpZnQtb2Zmc2V0OiBAbmF2YmFyLWRyb3Bkb3duLWxhcmdlLXNoaWZ0LW1hcmdpbjtcbiAgICBwYWRkaW5nOiBAbmF2YmFyLWRyb3Bkb3duLWxhcmdlLXBhZGRpbmc7XG4gICAgLmhvb2stbmF2YmFyLWRyb3Bkb3duLWxhcmdlKCk7XG59XG5cbi8qXG4gKiBEcm9wYmFyIG1vZGlmaWVyXG4gKiAxLiBSZXNldCBkcm9wZG93biB3aWR0aCB0byBwcmV2ZW50IHRvIGVhcmx5IHNoaWZ0aW5nXG4gKiAyLiBSZXNldCBzdHlsZVxuICogMy4gUGFkZGluZ1xuICovXG5cbi51ay1uYXZiYXItZHJvcGRvd24tZHJvcGJhciB7XG4gICAgLyogMSAqL1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIC8qIDIgKi9cbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAvKiAzICovXG4gICAgcGFkZGluZzogQG5hdmJhci1kcm9wZG93bi1kcm9wYmFyLXBhZGRpbmctdG9wIDAgQG5hdmJhci1kcm9wZG93bi1kcm9wYmFyLXBhZGRpbmctYm90dG9tIDA7XG4gICAgLS11ay1wb3NpdGlvbi1vZmZzZXQ6IEBuYXZiYXItZHJvcGRvd24tZHJvcGJhci1tYXJnaW47XG4gICAgLS11ay1wb3NpdGlvbi1zaGlmdC1vZmZzZXQ6IEBuYXZiYXItZHJvcGRvd24tZHJvcGJhci1zaGlmdC1tYXJnaW47XG4gICAgLS11ay1wb3NpdGlvbi12aWV3cG9ydC1vZmZzZXQ6IEBuYXZiYXItZHJvcGRvd24tZHJvcGJhci12aWV3cG9ydC1tYXJnaW47XG4gICAgLmhvb2stbmF2YmFyLWRyb3Bkb3duLWRyb3BiYXIoKTtcbn1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1zbWFsbCkge1xuXG4gICAgLnVrLW5hdmJhci1kcm9wZG93bi1kcm9wYmFyIHsgLS11ay1wb3NpdGlvbi12aWV3cG9ydC1vZmZzZXQ6IEBuYXZiYXItZHJvcGRvd24tZHJvcGJhci12aWV3cG9ydC1tYXJnaW4tczsgfVxuXG59XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LW1lZGl1bSkge1xuXG4gICAgLnVrLW5hdmJhci1kcm9wZG93bi1kcm9wYmFyIHsgLS11ay1wb3NpdGlvbi12aWV3cG9ydC1vZmZzZXQ6IEBuYXZiYXItZHJvcGRvd24tZHJvcGJhci12aWV3cG9ydC1tYXJnaW4tbTsgfVxuXG59XG5cbi51ay1uYXZiYXItZHJvcGRvd24tZHJvcGJhci1sYXJnZSB7XG4gICAgLS11ay1wb3NpdGlvbi1zaGlmdC1vZmZzZXQ6IEBuYXZiYXItZHJvcGRvd24tZHJvcGJhci1sYXJnZS1zaGlmdC1tYXJnaW47XG4gICAgcGFkZGluZy10b3A6IEBuYXZiYXItZHJvcGRvd24tZHJvcGJhci1sYXJnZS1wYWRkaW5nLXRvcDtcbiAgICBwYWRkaW5nLWJvdHRvbTogQG5hdmJhci1kcm9wZG93bi1kcm9wYmFyLWxhcmdlLXBhZGRpbmctYm90dG9tO1xuICAgIC5ob29rLW5hdmJhci1kcm9wZG93bi1kcm9wYmFyLWxhcmdlKCk7XG59XG5cblxuLyogRHJvcGRvd24gTmF2XG4gKiBBZG9wdHMgYHVrLW5hdmBcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiB7XG4gICAgLmhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdigpO1xufVxuXG4vKlxuICogSXRlbXNcbiAqL1xuXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiA+IGxpID4gYSB7XG4gICAgY29sb3I6IEBuYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0tY29sb3I7XG4gICAgLmhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdi1pdGVtKCk7XG59XG5cbi8qIEhvdmVyICovXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiA+IGxpID4gYTpob3ZlciB7XG4gICAgY29sb3I6IEBuYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0taG92ZXItY29sb3I7XG4gICAgLmhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdi1pdGVtLWhvdmVyKCk7XG59XG5cbi8qIEFjdGl2ZSAqL1xuLnVrLW5hdmJhci1kcm9wZG93bi1uYXYgPiBsaS51ay1hY3RpdmUgPiBhIHtcbiAgICBjb2xvcjogQG5hdmJhci1kcm9wZG93bi1uYXYtaXRlbS1hY3RpdmUtY29sb3I7XG4gICAgLmhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdi1pdGVtLWFjdGl2ZSgpO1xufVxuXG4vKlxuICogU3VidGl0bGVcbiAqL1xuXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiAudWstbmF2LXN1YnRpdGxlIHtcbiAgICBmb250LXNpemU6IEBuYXZiYXItZHJvcGRvd24tbmF2LXN1YnRpdGxlLWZvbnQtc2l6ZTtcbiAgICAuaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LXN1YnRpdGxlKCk7XG59XG5cbi8qXG4gKiBIZWFkZXJcbiAqL1xuXG4udWstbmF2YmFyLWRyb3Bkb3duLW5hdiAudWstbmF2LWhlYWRlciB7XG4gICAgY29sb3I6IEBuYXZiYXItZHJvcGRvd24tbmF2LWhlYWRlci1jb2xvcjtcbiAgICAuaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LWhlYWRlcigpO1xufVxuXG4vKlxuICogRGl2aWRlclxuICovXG5cbi51ay1uYXZiYXItZHJvcGRvd24tbmF2IC51ay1uYXYtZGl2aWRlciB7XG4gICAgYm9yZGVyLXRvcDogQG5hdmJhci1kcm9wZG93bi1uYXYtZGl2aWRlci1ib3JkZXItd2lkdGggc29saWQgQG5hdmJhci1kcm9wZG93bi1uYXYtZGl2aWRlci1ib3JkZXI7XG4gICAgLmhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdi1kaXZpZGVyKCk7XG59XG5cbi8qXG4gKiBTdWJsaXN0c1xuICovXG5cbi51ay1uYXZiYXItZHJvcGRvd24tbmF2IC51ay1uYXYtc3ViIGEgeyBjb2xvcjogQG5hdmJhci1kcm9wZG93bi1uYXYtc3VibGlzdC1pdGVtLWNvbG9yOyB9XG5cbi51ay1uYXZiYXItZHJvcGRvd24tbmF2IC51ay1uYXYtc3ViIGE6aG92ZXIgeyBjb2xvcjogQG5hdmJhci1kcm9wZG93bi1uYXYtc3VibGlzdC1pdGVtLWhvdmVyLWNvbG9yOyB9XG5cbi51ay1uYXZiYXItZHJvcGRvd24tbmF2IC51ay1uYXYtc3ViIGxpLnVrLWFjdGl2ZSA+IGEgeyBjb2xvcjogQG5hdmJhci1kcm9wZG93bi1uYXYtc3VibGlzdC1pdGVtLWFjdGl2ZS1jb2xvcjsgfVxuXG5cbi8qIERyb3BiYXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gUmVzZXQgZHJvcGJhclxuICogMi4gV2lkdGhcbiAqL1xuXG4udWstbmF2YmFyLWRyb3BiYXIge1xuICAgIC8qIDEgKi9cbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIHotaW5kZXg6IEBuYXZiYXItZHJvcGJhci16LWluZGV4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgLyogMiAqL1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgLmhvb2stbmF2YmFyLWRyb3BiYXIoKTtcbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW5hdmJhci1taXNjKCk7XG5cbi5ob29rLW5hdmJhcigpIHt9XG4uaG9vay1uYXZiYXItY29udGFpbmVyKCkge31cbi5ob29rLW5hdmJhci1uYXYtaXRlbSgpIHt9XG4uaG9vay1uYXZiYXItbmF2LWl0ZW0taG92ZXIoKSB7fVxuLmhvb2stbmF2YmFyLW5hdi1pdGVtLW9uY2xpY2soKSB7fVxuLmhvb2stbmF2YmFyLW5hdi1pdGVtLWFjdGl2ZSgpIHt9XG4uaG9vay1uYXZiYXItaXRlbSgpIHt9XG4uaG9vay1uYXZiYXItdG9nZ2xlKCkge31cbi5ob29rLW5hdmJhci10b2dnbGUtaG92ZXIoKSB7fVxuLmhvb2stbmF2YmFyLXRvZ2dsZS1pY29uKCkge31cbi5ob29rLW5hdmJhci10b2dnbGUtaWNvbi1ob3ZlcigpIHt9XG4uaG9vay1uYXZiYXItc3VidGl0bGUoKSB7fVxuLmhvb2stbmF2YmFyLXByaW1hcnkoKSB7fVxuLmhvb2stbmF2YmFyLXRyYW5zcGFyZW50KCkge31cbi5ob29rLW5hdmJhci1zdGlja3koKSB7fVxuLmhvb2stbmF2YmFyLWRyb3Bkb3duKCkge31cbi5ob29rLW5hdmJhci1kcm9wZG93bi1sYXJnZSgpIHt9XG4uaG9vay1uYXZiYXItZHJvcGRvd24tZHJvcGJhcigpIHt9XG4uaG9vay1uYXZiYXItZHJvcGRvd24tZHJvcGJhci1sYXJnZSgpIHt9XG4uaG9vay1uYXZiYXItZHJvcGRvd24tbmF2KCkge31cbi5ob29rLW5hdmJhci1kcm9wZG93bi1uYXYtaXRlbSgpIHt9XG4uaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0taG92ZXIoKSB7fVxuLmhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdi1pdGVtLWFjdGl2ZSgpIHt9XG4uaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LXN1YnRpdGxlKCkge31cbi5ob29rLW5hdmJhci1kcm9wZG93bi1uYXYtaGVhZGVyKCkge31cbi5ob29rLW5hdmJhci1kcm9wZG93bi1uYXYtZGl2aWRlcigpIHt9XG4uaG9vay1uYXZiYXItZHJvcGJhcigpIHt9XG4uaG9vay1uYXZiYXItbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbnZlcnNlLW5hdmJhci1uYXYtaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yO1xuQGludmVyc2UtbmF2YmFyLW5hdi1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtY29sb3I7XG5AaW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0tb25jbGljay1jb2xvcjogICAgICAgIEBpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcbkBpbnZlcnNlLW5hdmJhci1uYXYtaXRlbS1hY3RpdmUtY29sb3I6ICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQGludmVyc2UtbmF2YmFyLWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtY29sb3I7XG5AaW52ZXJzZS1uYXZiYXItdG9nZ2xlLWNvbG9yOiAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvcjtcbkBpbnZlcnNlLW5hdmJhci10b2dnbGUtaG92ZXItY29sb3I6ICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWNvbG9yO1xuXG4uaG9vay1pbnZlcnNlKCkge1xuXG4gICAgLy9cbiAgICAvLyBOYXYgSXRlbVxuICAgIC8vXG5cbiAgICAudWstbmF2YmFyLW5hdiA+IGxpID4gYSB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0tY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtbmF2YmFyLW5hdi1pdGVtKCk7XG4gICAgfVxuXG4gICAgLnVrLW5hdmJhci1uYXYgPiBsaTpob3ZlciA+IGEsXG4gICAgLnVrLW5hdmJhci1uYXYgPiBsaSA+IGFbYXJpYS1leHBhbmRlZD1cInRydWVcIl0ge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtbmF2YmFyLW5hdi1pdGVtLWhvdmVyLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLW5hdmJhci1uYXYtaXRlbS1ob3ZlcigpO1xuICAgIH1cblxuICAgIC51ay1uYXZiYXItbmF2ID4gbGkgPiBhOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0tb25jbGljay1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0tb25jbGljaygpO1xuICAgIH1cblxuICAgIC51ay1uYXZiYXItbmF2ID4gbGkudWstYWN0aXZlID4gYSB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0tYWN0aXZlLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLW5hdmJhci1uYXYtaXRlbS1hY3RpdmUoKTtcbiAgICB9XG5cbiAgICAvL1xuICAgIC8vIEl0ZW1cbiAgICAvL1xuXG4gICAgLnVrLW5hdmJhci1pdGVtIHtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLW5hdmJhci1pdGVtLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLW5hdmJhci1pdGVtKCk7XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBUb2dnbGVcbiAgICAvL1xuXG4gICAgLnVrLW5hdmJhci10b2dnbGUge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtbmF2YmFyLXRvZ2dsZS1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1uYXZiYXItdG9nZ2xlKCk7XG4gICAgfVxuXG4gICAgLnVrLW5hdmJhci10b2dnbGU6aG92ZXIsXG4gICAgLnVrLW5hdmJhci10b2dnbGVbYXJpYS1leHBhbmRlZD1cInRydWVcIl0ge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtbmF2YmFyLXRvZ2dsZS1ob3Zlci1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1uYXZiYXItdG9nZ2xlLWhvdmVyKCk7XG4gICAgfVxuXG59XG5cbi5ob29rLWludmVyc2UtbmF2YmFyLW5hdi1pdGVtKCkge31cbi5ob29rLWludmVyc2UtbmF2YmFyLW5hdi1pdGVtLWhvdmVyKCkge31cbi5ob29rLWludmVyc2UtbmF2YmFyLW5hdi1pdGVtLW9uY2xpY2soKSB7fVxuLmhvb2staW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0tYWN0aXZlKCkge31cbi5ob29rLWludmVyc2UtbmF2YmFyLWl0ZW0oKSB7fVxuLmhvb2staW52ZXJzZS1uYXZiYXItdG9nZ2xlKCkge31cbi5ob29rLWludmVyc2UtbmF2YmFyLXRvZ2dsZS1ob3ZlcigpIHt9XG4iLCIvL1xuLy8gQ29tcG9uZW50OiBOYXZiYXJcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AbmF2YmFyLWRyb3Bkb3duLWdyaWQtZ3V0dGVyLWhvcml6b250YWw6ICAgICAgICAoQG5hdmJhci1kcm9wZG93bi1wYWRkaW5nICogMik7XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBuYXZiYXItYmFja2Ryb3AtZmlsdGVyOiAgICAgICAgICAgICAgICAgICAgICAgIH4nJztcblxuQG5hdmJhci1wYWRkaW5nLXRvcDogICAgICAgICAgICAgICAgICAgICAgICAgICAgMDtcbkBuYXZiYXItcGFkZGluZy1ib3R0b206ICAgICAgICAgICAgICAgICAgICAgICAgIDA7XG5AbmF2YmFyLXBhZGRpbmctdG9wLW06ICAgICAgICAgICAgICAgICAgICAgICAgICAwO1xuQG5hdmJhci1wYWRkaW5nLWJvdHRvbS1tOiAgICAgICAgICAgICAgICAgICAgICAgMDtcblxuQG5hdmJhci1uYXYtaXRlbS10cmFuc2l0aW9uLWR1cmF0aW9uOiAgICAgICAgICAgMC4xcztcblxuQGludGVybmFsLW5hdmJhci1uYXYtaXRlbS1tb2RlOiAgICAgICAgICAgICAgICAgbm9uZTsgLy8gbm9uZSwgZmxpY2tlclxuXG5AbmF2YmFyLW5hdi1pdGVtLWxpbmUtbW9kZTogICAgICAgICAgICAgICAgICAgICBmYWxzZTsgIC8vICAgIHRydWUgLyBmYWxzZVxuQG5hdmJhci1uYXYtaXRlbS1saW5lLXBvc2l0aW9uLW1vZGU6ICAgICAgICAgICAgYm90dG9tOyAvLyAgICB0b3AgLyBib3R0b21cbkBuYXZiYXItbmF2LWl0ZW0tbGluZS1zbGlkZS1tb2RlOiAgICAgICAgICAgICAgIH4nJzsgICAgICAgLy8gICAgbGVmdCAvIGNlbnRlclxuQG5hdmJhci1uYXYtaXRlbS1saW5lLW1hcmdpbi12ZXJ0aWNhbDogICAgICAgICAgMDtcbkBuYXZiYXItbmF2LWl0ZW0tbGluZS1tYXJnaW4taG9yaXpvbnRhbDogICAgICAgIDA7XG5AbmF2YmFyLW5hdi1pdGVtLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAxcHg7XG5AbmF2YmFyLW5hdi1pdGVtLWxpbmUtYmFja2dyb3VuZDogICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcbkBuYXZiYXItbmF2LWl0ZW0tbGluZS1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgIDA7XG5AbmF2YmFyLW5hdi1pdGVtLWxpbmUtdHJhbnNpdGlvbi1kdXJhdGlvbjogICAgICAwLjFzO1xuXG5AbmF2YmFyLW5hdi1pdGVtLWxpbmUtaG92ZXItaGVpZ2h0OiAgICAgICAgICAgICAxcHg7XG5AbmF2YmFyLW5hdi1pdGVtLWxpbmUtaG92ZXItYmFja2dyb3VuZDogICAgICAgICBAZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZDtcblxuQG5hdmJhci1uYXYtaXRlbS1saW5lLW9uY2xpY2staGVpZ2h0OiAgICAgICAgICAgMXB4O1xuQG5hdmJhci1uYXYtaXRlbS1saW5lLW9uY2xpY2stYmFja2dyb3VuZDogICAgICAgQGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQ7XG5cbkBuYXZiYXItbmF2LWl0ZW0tbGluZS1hY3RpdmUtbW9kZTogICAgICAgICAgICAgIHRydWU7ICAvLyAgICB0cnVlIC8gZmFsc2VcbkBuYXZiYXItbmF2LWl0ZW0tbGluZS1hY3RpdmUtaGVpZ2h0OiAgICAgICAgICAgIDFweDtcbkBuYXZiYXItbmF2LWl0ZW0tbGluZS1hY3RpdmUtYmFja2dyb3VuZDogICAgICAgIEBnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kO1xuXG5AbmF2YmFyLW5hdi1pdGVtLWxpbmUtb3BhY2l0eTogICAgICAgICAgICAgICAgICAxO1xuQG5hdmJhci1uYXYtaXRlbS1saW5lLWhvdmVyLW9wYWNpdHk6ICAgICAgICAgICAgMTtcbkBuYXZiYXItbmF2LWl0ZW0tbGluZS1hY3RpdmUtb3BhY2l0eTogICAgICAgICAgIDE7XG5cbkBuYXZiYXItcHJpbWFyeS1uYXYtaXRlbS1wYWRkaW5nLWhvcml6b250YWw6ICAgIEBuYXZiYXItbmF2LWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsO1xuQG5hdmJhci1wcmltYXJ5LW5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbC1tOiAgQG5hdmJhci1wcmltYXJ5LW5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDtcblxuQG5hdmJhci1kcm9wZG93bi1uYXYtbWFyZ2luLWhvcml6b250YWw6ICAgICAgICAgMDtcblxuQG5hdmJhci1kcm9wZG93bi1uYXYtaXRlbS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgQG5hdi1pdGVtLXBhZGRpbmctdmVydGljYWw7XG5AbmF2YmFyLWRyb3Bkb3duLW5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDogICBAbmF2LWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsO1xuXG5AbmF2YmFyLWRyb3Bkb3duLW5hdi1pdGVtLWhvdmVyLWJhY2tncm91bmQ6ICAgICB0cmFuc3BhcmVudDtcblxuQG5hdmJhci1kcm9wZG93bi1uYXYtZGl2aWRlci1tYXJnaW4tdmVydGljYWw6ICAgQG5hdi1kaXZpZGVyLW1hcmdpbi12ZXJ0aWNhbDtcblxuQG5hdmJhci1kcm9wZG93bi1uYXYtc3VibGlzdC1wYWRkaW5nLWxlZnQ6ICAgICAgKEBuYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsICsgQG5hdi1zdWJsaXN0LWRlZXBlci1wYWRkaW5nLWxlZnQpO1xuXG5AbmF2YmFyLWRyb3Bkb3duLWdyaWQtZGl2aWRlci1ib3JkZXItd2lkdGg6ICAgICBAZ2xvYmFsLWJvcmRlci13aWR0aDtcbkBuYXZiYXItZHJvcGRvd24tZ3JpZC1kaXZpZGVyLWJvcmRlcjogICAgICAgICAgIEBuYXZiYXItZHJvcGRvd24tbmF2LWRpdmlkZXItYm9yZGVyO1xuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW5hdmJhcigpIHt9XG5cblxuLy8gQ29udGFpbmVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIDEuIGBiYWNrZHJvcC1maWx0ZXJgIGNyZWF0ZXMgYSBuZXcgc3RhY2tpbmcgY29udGV4dC4gVGhlcmVmb3JlXG4vLyAgICBhIGB6LWluZGV4YCBpcyBuZWVkZWQgc28gZHJvcGRvd24gYXJlIG5vdCBzaG93biBiZWxvdyBjb250ZW50XG4vLyAgICBgei1pbmRleGAgaXMgdGFrZW4gZnJvbSBgdWstbmF2YmFyLWNlbnRlcmBcbi8vIDIuIFRoaXMgbWVhbnMgdGhlIHRvb2xiYXIgYW5kIGhlYWRlcmJhciBhbHNvIG5lZWQgYSBgei1pbmRleGAsIHNvXG4vLyAgICB0aGVyZSBkcm9wZG93bnMgYXJlIHNob3duIGFib3ZlIHRoZSBuYXZiYXJcbi8vXG5cbi5ob29rLW5hdmJhci1jb250YWluZXIoKSB3aGVuIG5vdCAoQG5hdmJhci1iYWNrZHJvcC1maWx0ZXIgPSB+JycpIHtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IEBuYXZiYXItYmFja2Ryb3AtZmlsdGVyO1xuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBAbmF2YmFyLWJhY2tkcm9wLWZpbHRlcjtcbiAgICAvLyAxXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IEBnbG9iYWwtei1pbmRleCAtIDEwO1xufVxuXG4vLyAyXG4udG0tdG9vbGJhciB3aGVuIG5vdCAoQG5hdmJhci1iYWNrZHJvcC1maWx0ZXIgPSB+JycpIHsgei1pbmRleDogQGdsb2JhbC16LWluZGV4IC0gMTAgKyAyOyB9XG4udG0taGVhZGVyYmFyLXRvcCB3aGVuIG5vdCAoQG5hdmJhci1iYWNrZHJvcC1maWx0ZXIgPSB+JycpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogQGdsb2JhbC16LWluZGV4IC0gMTAgKyAxO1xufVxuXG5cbi8vIE5hdlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW5hdmJhci1uYXYtaXRlbSgpIHtcbiAgICB0cmFuc2l0aW9uOiBAbmF2YmFyLW5hdi1pdGVtLXRyYW5zaXRpb24tZHVyYXRpb24gZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgYm94LXNoYWRvdztcbn1cblxuLmhvb2stbmF2YmFyLW5hdi1pdGVtLWhvdmVyKCkgd2hlbiAoQGludGVybmFsLW5hdmJhci1uYXYtaXRlbS1tb2RlID0gZmxpY2tlcikge1xuICAgIGFuaW1hdGlvbjogdWstZmxpY2tlciAwLjJzIGVhc2UgYm90aDtcbn1cblxuLmhvb2stbmF2YmFyLW5hdi1pdGVtLW9uY2xpY2soKSB7fVxuXG4uaG9vay1uYXZiYXItbmF2LWl0ZW0tYWN0aXZlKCkge31cblxuLy9cbi8vIExpbmVcbi8vXG5cbi5ob29rLW5hdmJhci1uYXYtaXRlbSgpIHdoZW4gKEBuYXZiYXItbmF2LWl0ZW0tbGluZS1tb2RlKSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgQHtuYXZiYXItbmF2LWl0ZW0tbGluZS1wb3NpdGlvbi1tb2RlfTogQG5hdmJhci1uYXYtaXRlbS1saW5lLW1hcmdpbi12ZXJ0aWNhbDtcbiAgICAgICAgaGVpZ2h0OiBAbmF2YmFyLW5hdi1pdGVtLWxpbmUtaGVpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLW5hdi1pdGVtLWxpbmUtYmFja2dyb3VuZDtcbiAgICAgICAgdHJhbnNpdGlvbjogQG5hdmJhci1uYXYtaXRlbS1saW5lLXRyYW5zaXRpb24tZHVyYXRpb24gZWFzZS1pbi1vdXQ7XG4gICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgYm94LXNoYWRvdywgaGVpZ2h0LCBsZWZ0LCByaWdodCwgb3BhY2l0eTtcbiAgICAgICAgLmhvb2stbmF2YmFyLW5hdi1pdGVtLWxpbmUoKTtcbiAgICB9XG59XG5cbi5ob29rLW5hdmJhci1uYXYtaXRlbSgpIHdoZW4gKEBuYXZiYXItbmF2LWl0ZW0tbGluZS1tb2RlKSBhbmQgbm90IChAbmF2YmFyLW5hdi1pdGVtLWxpbmUtYm9yZGVyLXJhZGl1cyA9IDApIHtcbiAgICAmOjpiZWZvcmUgeyBib3JkZXItcmFkaXVzOiBAbmF2YmFyLW5hdi1pdGVtLWxpbmUtYm9yZGVyLXJhZGl1czsgfVxufVxuXG4uaG9vay1uYXZiYXItbmF2LWl0ZW0taG92ZXIoKSB3aGVuIChAbmF2YmFyLW5hdi1pdGVtLWxpbmUtbW9kZSkge1xuICAgICY6OmJlZm9yZSB7IC5ob29rLW5hdmJhci1uYXYtaXRlbS1ob3Zlci1saW5lKCk7IH1cbn1cblxuLmhvb2stbmF2YmFyLW5hdi1pdGVtLW9uY2xpY2soKSB3aGVuIChAbmF2YmFyLW5hdi1pdGVtLWxpbmUtbW9kZSkge1xuICAgICY6OmJlZm9yZSB7IC5ob29rLW5hdmJhci1uYXYtaXRlbS1vbmNsaWNrLWxpbmUoKTsgfVxufVxuXG4uaG9vay1uYXZiYXItbmF2LWl0ZW0tYWN0aXZlKCkgd2hlbiAoQG5hdmJhci1uYXYtaXRlbS1saW5lLW1vZGUpIGFuZCAoQG5hdmJhci1uYXYtaXRlbS1saW5lLWFjdGl2ZS1tb2RlKSB7XG4gICAgJjo6YmVmb3JlIHsgLmhvb2stbmF2YmFyLW5hdi1pdGVtLWFjdGl2ZS1saW5lKCk7IH1cbn1cblxuLy9cbi8vIExlZnRcbi8vXG5cbi5ob29rLW5hdmJhci1uYXYtaXRlbS1saW5lKCkge1xuICAgIGxlZnQ6IEBuYXZiYXItbmF2LWl0ZW0tbGluZS1tYXJnaW4taG9yaXpvbnRhbDtcbn1cblxuLy9cbi8vIFJpZ2h0XG4vL1xuXG4vLyBObyBTbGlkZVxuLmhvb2stbmF2YmFyLW5hdi1pdGVtLWxpbmUoKSB3aGVuIChAbmF2YmFyLW5hdi1pdGVtLWxpbmUtc2xpZGUtbW9kZSA9IH4nJykge1xuICAgIHJpZ2h0OiBAbmF2YmFyLW5hdi1pdGVtLWxpbmUtbWFyZ2luLWhvcml6b250YWw7XG59XG5cbi8vIFNsaWRlXG4vLyAwIGNhbid0IGJlIHVuaXRsZXNzIHdoZW4gdXNpbmcgYGNhbGNgXG4vLyAxMDIlIGJlY2F1c2Ugb2YgU2FmYXJpIHJvdW5kaW5nIGlzc3VlXG5cbi5ob29rLW5hdmJhci1uYXYtaXRlbS1saW5lKCkgd2hlbiAoQG5hdmJhci1uYXYtaXRlbS1saW5lLXNsaWRlLW1vZGUgPSBsZWZ0KSBhbmQgKEBuYXZiYXItbmF2LWl0ZW0tbGluZS1tYXJnaW4taG9yaXpvbnRhbCA9IDApIHtcbiAgICByaWdodDogMTAwJTtcbn1cblxuLmhvb2stbmF2YmFyLW5hdi1pdGVtLWxpbmUoKSB3aGVuIChAbmF2YmFyLW5hdi1pdGVtLWxpbmUtc2xpZGUtbW9kZSA9IGxlZnQpIGFuZCBub3QgKEBuYXZiYXItbmF2LWl0ZW0tbGluZS1tYXJnaW4taG9yaXpvbnRhbCA9IDApIHtcbiAgICByaWdodDogfidjYWxjKDEwMiUgLSBAe25hdmJhci1uYXYtaXRlbS1saW5lLW1hcmdpbi1ob3Jpem9udGFsfSknO1xufVxuXG4uaG9vay1uYXZiYXItbmF2LWl0ZW0taG92ZXItbGluZSgpIHdoZW4gKEBuYXZiYXItbmF2LWl0ZW0tbGluZS1zbGlkZS1tb2RlID0gbGVmdCkge1xuICAgIHJpZ2h0OiBAbmF2YmFyLW5hdi1pdGVtLWxpbmUtbWFyZ2luLWhvcml6b250YWw7XG59XG5cbi5ob29rLW5hdmJhci1uYXYtaXRlbS1hY3RpdmUtbGluZSgpIHdoZW4gKEBuYXZiYXItbmF2LWl0ZW0tbGluZS1zbGlkZS1tb2RlID0gbGVmdCkge1xuICAgIHJpZ2h0OiBAbmF2YmFyLW5hdi1pdGVtLWxpbmUtbWFyZ2luLWhvcml6b250YWw7XG59XG5cbi8vIENlbnRlclxuLmhvb2stbmF2YmFyLW5hdi1pdGVtLWxpbmUoKSB3aGVuIChAbmF2YmFyLW5hdi1pdGVtLWxpbmUtc2xpZGUtbW9kZSA9IGNlbnRlcikge1xuICAgIGxlZnQ6IDUwJTtcbiAgICByaWdodDogNTAlO1xufVxuXG4uaG9vay1uYXZiYXItbmF2LWl0ZW0taG92ZXItbGluZSgpIHdoZW4gKEBuYXZiYXItbmF2LWl0ZW0tbGluZS1zbGlkZS1tb2RlID0gY2VudGVyKSB7XG4gICAgbGVmdDogQG5hdmJhci1uYXYtaXRlbS1saW5lLW1hcmdpbi1ob3Jpem9udGFsO1xuICAgIHJpZ2h0OiBAbmF2YmFyLW5hdi1pdGVtLWxpbmUtbWFyZ2luLWhvcml6b250YWw7XG59XG5cbi5ob29rLW5hdmJhci1uYXYtaXRlbS1hY3RpdmUtbGluZSgpIHdoZW4gKEBuYXZiYXItbmF2LWl0ZW0tbGluZS1zbGlkZS1tb2RlID0gY2VudGVyKSB7XG4gICAgbGVmdDogQG5hdmJhci1uYXYtaXRlbS1saW5lLW1hcmdpbi1ob3Jpem9udGFsO1xuICAgIHJpZ2h0OiBAbmF2YmFyLW5hdi1pdGVtLWxpbmUtbWFyZ2luLWhvcml6b250YWw7XG59XG5cbi8vXG4vLyBCYWNrZ3JvdW5kXG4vL1xuXG4uaG9vay1uYXZiYXItbmF2LWl0ZW0taG92ZXItbGluZSgpIHdoZW4gbm90IChAbmF2YmFyLW5hdi1pdGVtLWxpbmUtYmFja2dyb3VuZCA9IEBuYXZiYXItbmF2LWl0ZW0tbGluZS1ob3Zlci1iYWNrZ3JvdW5kKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1uYXYtaXRlbS1saW5lLWhvdmVyLWJhY2tncm91bmQ7XG59XG5cbi5ob29rLW5hdmJhci1uYXYtaXRlbS1vbmNsaWNrLWxpbmUoKSB3aGVuIG5vdCAoQG5hdmJhci1uYXYtaXRlbS1saW5lLWJhY2tncm91bmQgPSBAbmF2YmFyLW5hdi1pdGVtLWxpbmUtb25jbGljay1iYWNrZ3JvdW5kKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1uYXYtaXRlbS1saW5lLW9uY2xpY2stYmFja2dyb3VuZDtcbn1cblxuLmhvb2stbmF2YmFyLW5hdi1pdGVtLWFjdGl2ZS1saW5lKCkgd2hlbiBub3QgKEBuYXZiYXItbmF2LWl0ZW0tbGluZS1iYWNrZ3JvdW5kID0gQG5hdmJhci1uYXYtaXRlbS1saW5lLWFjdGl2ZS1iYWNrZ3JvdW5kKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQG5hdmJhci1uYXYtaXRlbS1saW5lLWFjdGl2ZS1iYWNrZ3JvdW5kO1xufVxuXG4vL1xuLy8gSGVpZ2h0XG4vL1xuXG4uaG9vay1uYXZiYXItbmF2LWl0ZW0taG92ZXItbGluZSgpIHdoZW4gbm90IChAbmF2YmFyLW5hdi1pdGVtLWxpbmUtaGVpZ2h0ID0gQG5hdmJhci1uYXYtaXRlbS1saW5lLWhvdmVyLWhlaWdodCkge1xuICAgIGhlaWdodDogQG5hdmJhci1uYXYtaXRlbS1saW5lLWhvdmVyLWhlaWdodDtcbn1cblxuLmhvb2stbmF2YmFyLW5hdi1pdGVtLW9uY2xpY2stbGluZSgpIHdoZW4gbm90IChAbmF2YmFyLW5hdi1pdGVtLWxpbmUtaGVpZ2h0ID0gQG5hdmJhci1uYXYtaXRlbS1saW5lLW9uY2xpY2staGVpZ2h0KSB7XG4gICAgaGVpZ2h0OiBAbmF2YmFyLW5hdi1pdGVtLWxpbmUtb25jbGljay1oZWlnaHQ7XG59XG5cbi5ob29rLW5hdmJhci1uYXYtaXRlbS1hY3RpdmUtbGluZSgpIHdoZW4gbm90IChAbmF2YmFyLW5hdi1pdGVtLWxpbmUtaGVpZ2h0ID0gQG5hdmJhci1uYXYtaXRlbS1saW5lLWFjdGl2ZS1oZWlnaHQpIHtcbiAgICBoZWlnaHQ6IEBuYXZiYXItbmF2LWl0ZW0tbGluZS1hY3RpdmUtaGVpZ2h0O1xufVxuXG4vL1xuLy8gT3BhY2l0eVxuLy9cblxuLmhvb2stbmF2YmFyLW5hdi1pdGVtLWxpbmUoKSB3aGVuIG5vdCAoQG5hdmJhci1uYXYtaXRlbS1saW5lLW9wYWNpdHkgPSBAbmF2YmFyLW5hdi1pdGVtLWxpbmUtaG92ZXItb3BhY2l0eSkge1xuICAgIG9wYWNpdHk6IEBuYXZiYXItbmF2LWl0ZW0tbGluZS1vcGFjaXR5O1xufVxuXG4uaG9vay1uYXZiYXItbmF2LWl0ZW0taG92ZXItbGluZSgpIHdoZW4gbm90IChAbmF2YmFyLW5hdi1pdGVtLWxpbmUtb3BhY2l0eSA9IEBuYXZiYXItbmF2LWl0ZW0tbGluZS1ob3Zlci1vcGFjaXR5KSB7XG4gICAgb3BhY2l0eTogQG5hdmJhci1uYXYtaXRlbS1saW5lLWhvdmVyLW9wYWNpdHk7XG59XG5cbi5ob29rLW5hdmJhci1uYXYtaXRlbS1hY3RpdmUtbGluZSgpIHdoZW4gbm90IChAbmF2YmFyLW5hdi1pdGVtLWxpbmUtb3BhY2l0eSA9IEBuYXZiYXItbmF2LWl0ZW0tbGluZS1hY3RpdmUtb3BhY2l0eSkge1xuICAgIG9wYWNpdHk6IEBuYXZiYXItbmF2LWl0ZW0tbGluZS1hY3RpdmUtb3BhY2l0eTtcbn1cblxuXG5cbi8vIEl0ZW1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1uYXZiYXItaXRlbSgpIHt9XG5cblxuLy8gVG9nZ2xlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbmF2YmFyLXRvZ2dsZSgpIHt9XG5cbi5ob29rLW5hdmJhci10b2dnbGUtaG92ZXIoKSB7fVxuXG4uaG9vay1uYXZiYXItdG9nZ2xlLWljb24oKSB7fVxuXG4uaG9vay1uYXZiYXItdG9nZ2xlLWljb24taG92ZXIoKSB7fVxuXG5cbi8vIFN1YnRpdGxlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbmF2YmFyLXN1YnRpdGxlKCkge31cblxuXG4vLyBTdHlsZSBtb2RpZmllcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1uYXZiYXItcHJpbWFyeSgpIHdoZW4gbm90IChAbmF2YmFyLXByaW1hcnktbmF2LWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsID0gQG5hdmJhci1uYXYtaXRlbS1wYWRkaW5nLWhvcml6b250YWwpIHtcblxuICAgIC51ay1uYXZiYXItbmF2ID4gbGkgPiBhLFxuICAgIC51ay1uYXZiYXItaXRlbSxcbiAgICAudWstbmF2YmFyLXRvZ2dsZSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogQG5hdmJhci1wcmltYXJ5LW5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogQG5hdmJhci1wcmltYXJ5LW5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICB9XG5cbn1cblxuLmhvb2stbmF2YmFyLXByaW1hcnkoKSB3aGVuIG5vdCAoQG5hdmJhci1wcmltYXJ5LW5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbC1tID0gQG5hdmJhci1wcmltYXJ5LW5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbCkge1xuXG4gICAgLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LW1lZGl1bSkge1xuXG4gICAgICAgIC51ay1uYXZiYXItbmF2ID4gbGkgPiBhLFxuICAgICAgICAudWstbmF2YmFyLWl0ZW0sXG4gICAgICAgIC51ay1uYXZiYXItdG9nZ2xlIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogQG5hdmJhci1wcmltYXJ5LW5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbC1tO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogQG5hdmJhci1wcmltYXJ5LW5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbC1tO1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuLmhvb2stbmF2YmFyLXRyYW5zcGFyZW50KCkge31cblxuLmhvb2stbmF2YmFyLXN0aWNreSgpIHt9XG5cblxuLy8gRHJvcGRvd25cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1uYXZiYXItZHJvcGRvd24oKSB7fVxuXG4uaG9vay1uYXZiYXItZHJvcGRvd24tZHJvcGJhcigpIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cblxuXG4vLyBEcm9wZG93biBuYXZcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1uYXZiYXItZHJvcGRvd24tbmF2KCkge1xuICAgIG1hcmdpbi1sZWZ0OiBAbmF2YmFyLWRyb3Bkb3duLW5hdi1tYXJnaW4taG9yaXpvbnRhbDtcbiAgICBtYXJnaW4tcmlnaHQ6IEBuYXZiYXItZHJvcGRvd24tbmF2LW1hcmdpbi1ob3Jpem9udGFsO1xufVxuXG4uaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0oKSB7IHBhZGRpbmc6IEBuYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbCBAbmF2YmFyLWRyb3Bkb3duLW5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDsgfVxuXG4uaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0taG92ZXIoKSB3aGVuIG5vdCAoQG5hdmJhci1kcm9wZG93bi1uYXYtaXRlbS1ob3Zlci1iYWNrZ3JvdW5kID0gdHJhbnNwYXJlbnQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAbmF2YmFyLWRyb3Bkb3duLW5hdi1pdGVtLWhvdmVyLWJhY2tncm91bmQ7XG59XG5cbi5ob29rLW5hdmJhci1kcm9wZG93bi1uYXYtaXRlbS1hY3RpdmUoKSB3aGVuIG5vdCAoQG5hdmJhci1kcm9wZG93bi1uYXYtaXRlbS1ob3Zlci1iYWNrZ3JvdW5kID0gdHJhbnNwYXJlbnQpIHtcblxuICAgICY6aG92ZXIgeyBjb2xvcjogQG5hdmJhci1kcm9wZG93bi1uYXYtaXRlbS1ob3Zlci1jb2xvcjsgfVxufVxuXG4uaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LWhlYWRlcigpIHsgcGFkZGluZzogQG5hdmJhci1kcm9wZG93bi1uYXYtaXRlbS1wYWRkaW5nLXZlcnRpY2FsIEBuYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsOyB9XG5cbi5ob29rLW5hdmJhci1kcm9wZG93bi1uYXYtZGl2aWRlcigpIHtcbiAgICBtYXJnaW4tdG9wOiBAbmF2YmFyLWRyb3Bkb3duLW5hdi1kaXZpZGVyLW1hcmdpbi12ZXJ0aWNhbDtcbiAgICBtYXJnaW4tYm90dG9tOiBAbmF2YmFyLWRyb3Bkb3duLW5hdi1kaXZpZGVyLW1hcmdpbi12ZXJ0aWNhbDtcbn1cblxuXG4vLyBEcm9wYmFyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbmF2YmFyLWRyb3BiYXIoKSB7fVxuXG4uaG9vay1uYXZiYXItZHJvcGJhci1zbGlkZSgpIHt9XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW5hdmJhci1taXNjKCkge1xuXG4gICAgLypcbiAgICAgKiBOYXZiYXJcbiAgICAgKi9cblxuICAgIC51ay1uYXZiYXItY29udGFpbmVyID4gLnVrLWNvbnRhaW5lciAudWstbmF2YmFyLWxlZnQge1xuICAgICAgICBtYXJnaW4tbGVmdDogLUBuYXZiYXItbmF2LWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC1AbmF2YmFyLW5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICB9XG4gICAgLnVrLW5hdmJhci1jb250YWluZXIgPiAudWstY29udGFpbmVyIC51ay1uYXZiYXItcmlnaHQgeyBtYXJnaW4tcmlnaHQ6IC1AbmF2YmFyLW5hdi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDsgfVxuXG4gICAgLypcbiAgICAgKiBOYXZcbiAgICAgKi9cblxuICAgIC8qIERyb3Bkb3duIG5hdiBzdWIgKi9cbiAgICAudWstbmF2YmFyLWRyb3Bkb3duLW5hdiAudWstbmF2LXN1YiB7IHBhZGRpbmctbGVmdDogQG5hdmJhci1kcm9wZG93bi1uYXYtc3VibGlzdC1wYWRkaW5nLWxlZnQ7IH1cblxuICAgIC8qXG4gICAgICogR3JpZCBEaXZpZGVyXG4gICAgICovXG5cbiAgICAudWstbmF2YmFyLWRyb3Bkb3duLWdyaWQgPiAqIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbiAgICAudWstbmF2YmFyLWRyb3Bkb3duLWdyaWQgPiA6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAoQG5hdmJhci1kcm9wZG93bi1ncmlkLWd1dHRlci1ob3Jpem9udGFsIC8gMik7XG4gICAgICAgIGJvcmRlci1sZWZ0OiBAbmF2YmFyLWRyb3Bkb3duLWdyaWQtZGl2aWRlci1ib3JkZXItd2lkdGggc29saWQgQG5hdmJhci1kcm9wZG93bi1ncmlkLWRpdmlkZXItYm9yZGVyO1xuICAgIH1cblxuICAgIC8qIFZlcnRpY2FsICovXG4gICAgLnVrLW5hdmJhci1kcm9wZG93bi1ncmlkLnVrLWdyaWQtc3RhY2sgPiAudWstZ3JpZC1tYXJnaW46OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtKEBuYXZiYXItZHJvcGRvd24tZ3JpZC1ndXR0ZXItdmVydGljYWwgLyAyKTtcbiAgICAgICAgbGVmdDogQG5hdmJhci1kcm9wZG93bi1ncmlkLWd1dHRlci1ob3Jpem9udGFsO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm9yZGVyLXRvcDogQG5hdmJhci1kcm9wZG93bi1ncmlkLWRpdmlkZXItYm9yZGVyLXdpZHRoIHNvbGlkIEBuYXZiYXItZHJvcGRvd24tZ3JpZC1kaXZpZGVyLWJvcmRlcjtcbiAgICB9XG5cbn1cblxuLmhvb2stbmF2YmFyLW1pc2MoKSB3aGVuIG5vdCAoQG5hdmJhci1wYWRkaW5nLXRvcCA9IDApLFxuICAgICAgICAgICAgICAgICAgICAgICAgIG5vdCAoQG5hdmJhci1wYWRkaW5nLWJvdHRvbSA9IDApIHtcblxuICAgIC51ay1uYXZiYXItY29udGFpbmVyIHtcbiAgICAgICAgcGFkZGluZy10b3A6IEBuYXZiYXItcGFkZGluZy10b3A7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBAbmF2YmFyLXBhZGRpbmctYm90dG9tO1xuICAgIH1cblxufVxuXG4vLyAuaG9vay1uYXZiYXItbWlzYygpIHdoZW4gbm90IChAbmF2YmFyLXBhZGRpbmctdG9wID0gMCksXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgbm90IChAbmF2YmFyLXBhZGRpbmctYm90dG9tID0gMCkge1xuXG4vLyAgICAgW2NsYXNzKj0ndWstbmF2YmFyLWRyb3Bkb3duLXRvcCddOm5vdCgudWstbmF2YmFyLWRyb3Bkb3duLWRyb3BiYXIpIHsgbWFyZ2luLXRvcDogLUBuYXZiYXItZHJvcGRvd24tbWFyZ2luICsgQG5hdmJhci1wYWRkaW5nLXRvcDsgfVxuLy8gICAgIFtjbGFzcyo9J3VrLW5hdmJhci1kcm9wZG93bi1ib3R0b20nXTpub3QoLnVrLW5hdmJhci1kcm9wZG93bi1kcm9wYmFyKSB7IG1hcmdpbi10b3A6IEBuYXZiYXItZHJvcGRvd24tbWFyZ2luICsgQG5hdmJhci1wYWRkaW5nLWJvdHRvbTsgfVxuXG4vLyB9XG5cbi5ob29rLW5hdmJhci1taXNjKCkgd2hlbiBub3QgKEBuYXZiYXItcGFkZGluZy10b3AtbSA9IDApLFxuICAgICAgICAgICAgICAgICAgICAgICAgIG5vdCAoQG5hdmJhci1wYWRkaW5nLWJvdHRvbS1tID0gMCkge1xuXG4gICAgLy8gQXBwbHkgb25seSBpZiBzdGlja3kuIElmIG5hdmJhciBpcyBpbiBjb250ZW50IGZsb3cgdGhlIHNjcm9sbCBwb3NpdGlvbiB3b3VsZCBjaGFuZ2UuIEhhcHBlbnMgaW4gc3RpY2t5LW9uLXVwIG1vZGUuXG4gICAgLnRtLWhlYWRlciAudWstc3RpY2t5LWZpeGVkID4gLnVrLW5hdmJhci1jb250YWluZXI6bm90KC51ay1uYXZiYXItdHJhbnNwYXJlbnQpIHtcbiAgICAgICAgdHJhbnNpdGlvbjogMC4ycyBsaW5lYXI7XG4gICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHBhZGRpbmc7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIGV4dHJhIHBhZGRpbmcgd2hlbiBzY3JvbGxlZCBiZWxvdyBpdHNlbGYuXG4gICAgLnRtLWhlYWRlciA6bm90KC51ay1zdGlja3ktYmVsb3cpID4gLnVrLW5hdmJhci1jb250YWluZXIge1xuICAgICAgICBwYWRkaW5nLXRvcDogQG5hdmJhci1wYWRkaW5nLXRvcC1tO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogQG5hdmJhci1wYWRkaW5nLWJvdHRvbS1tO1xuICAgIH1cblxuICAgIC8vIC8vIEFsaWduIGRyb3Bkb3ducyBpZiBleHRyYSBwYWRkaW5nIGlzIGFwcGxpZWQuXG4gICAgLy8gLnRtLWhlYWRlciA6bm90KC51ay1zdGlja3ktYmVsb3cpID4gLnVrLW5hdmJhci1jb250YWluZXIgW2NsYXNzKj0ndWstbmF2YmFyLWRyb3Bkb3duLXRvcCddOm5vdCgudWstbmF2YmFyLWRyb3Bkb3duLWRyb3BiYXIpIHsgbWFyZ2luLXRvcDogLShAbmF2YmFyLWRyb3Bkb3duLW1hcmdpbiArIEBuYXZiYXItcGFkZGluZy10b3AtbSk7IH1cbiAgICAvLyAudG0taGVhZGVyIDpub3QoLnVrLXN0aWNreS1iZWxvdykgPiAudWstbmF2YmFyLWNvbnRhaW5lciBbY2xhc3MqPSd1ay1uYXZiYXItZHJvcGRvd24tYm90dG9tJ106bm90KC51ay1uYXZiYXItZHJvcGRvd24tZHJvcGJhcikgeyBtYXJnaW4tdG9wOiAoQG5hdmJhci1kcm9wZG93bi1tYXJnaW4gKyBAbmF2YmFyLXBhZGRpbmctYm90dG9tLW0pOyB9XG5cblxufVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0tbGluZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuQGludmVyc2UtbmF2YmFyLW5hdi1pdGVtLWxpbmUtaG92ZXItYmFja2dyb3VuZDogICAgICAgICBAaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kO1xuQGludmVyc2UtbmF2YmFyLW5hdi1pdGVtLWxpbmUtb25jbGljay1iYWNrZ3JvdW5kOiAgICAgICBAaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kO1xuQGludmVyc2UtbmF2YmFyLW5hdi1pdGVtLWxpbmUtYWN0aXZlLWJhY2tncm91bmQ6ICAgICAgICBAaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kO1xuXG4uaG9vay1pbnZlcnNlLW5hdmJhci1uYXYtaXRlbSgpIHdoZW4gKEBuYXZiYXItbmF2LWl0ZW0tbGluZS1tb2RlKSB7XG5cbiAgICAmOjpiZWZvcmUgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0tbGluZS1iYWNrZ3JvdW5kOyB9XG5cbn1cblxuLmhvb2staW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0taG92ZXIoKSB3aGVuIChAbmF2YmFyLW5hdi1pdGVtLWxpbmUtbW9kZSkgYW5kIG5vdCAoQGludmVyc2UtbmF2YmFyLW5hdi1pdGVtLWxpbmUtYmFja2dyb3VuZCA9IEBpbnZlcnNlLW5hdmJhci1uYXYtaXRlbS1saW5lLWhvdmVyLWJhY2tncm91bmQpIHtcblxuICAgICY6OmJlZm9yZSB7IGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLW5hdmJhci1uYXYtaXRlbS1saW5lLWhvdmVyLWJhY2tncm91bmQ7IH1cblxufVxuXG4uaG9vay1pbnZlcnNlLW5hdmJhci1uYXYtaXRlbS1vbmNsaWNrKCkgd2hlbiAoQG5hdmJhci1uYXYtaXRlbS1saW5lLW1vZGUpIGFuZCBub3QgKEBpbnZlcnNlLW5hdmJhci1uYXYtaXRlbS1saW5lLWJhY2tncm91bmQgPSBAaW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0tbGluZS1vbmNsaWNrLWJhY2tncm91bmQpIHtcblxuICAgICY6OmJlZm9yZSB7IGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLW5hdmJhci1uYXYtaXRlbS1saW5lLW9uY2xpY2stYmFja2dyb3VuZDsgfVxuXG59XG5cbi5ob29rLWludmVyc2UtbmF2YmFyLW5hdi1pdGVtLWFjdGl2ZSgpIHdoZW4gKEBuYXZiYXItbmF2LWl0ZW0tbGluZS1tb2RlKSBhbmQgKEBuYXZiYXItbmF2LWl0ZW0tbGluZS1hY3RpdmUtbW9kZSkgYW5kIG5vdCAoQGludmVyc2UtbmF2YmFyLW5hdi1pdGVtLWxpbmUtYmFja2dyb3VuZCA9IEBpbnZlcnNlLW5hdmJhci1uYXYtaXRlbS1saW5lLWFjdGl2ZS1iYWNrZ3JvdW5kKSB7XG5cbiAgICAmOjpiZWZvcmUgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0tbGluZS1hY3RpdmUtYmFja2dyb3VuZDsgfVxuXG59XG5cbi5ob29rLWludmVyc2UtbmF2YmFyLWl0ZW0oKSB7fVxuXG4uaG9vay1pbnZlcnNlLW5hdmJhci10b2dnbGUoKSB7fVxuLmhvb2staW52ZXJzZS1uYXZiYXItdG9nZ2xlLWhvdmVyKCkge31cbiIsIi8vXG4vLyBDb21wb25lbnQ6IE5hdmJhclxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBuYXZiYXItbmF2LWl0ZW0tZm9udC1mYW1pbHk6ICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtZmFtaWx5O1xuXG4vL1xuLy8gTmV3XG4vL1xuXG5AbmF2YmFyLW5hdi1pdGVtLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1mb250LXdlaWdodDtcbkBuYXZiYXItbmF2LWl0ZW0tdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LXRleHQtdHJhbnNmb3JtO1xuQG5hdmJhci1uYXYtaXRlbS1sZXR0ZXItc3BhY2luZzogICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktbGV0dGVyLXNwYWNpbmc7XG5AbmF2YmFyLW5hdi1pdGVtLWZvbnQtc3R5bGU6ICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1mb250LXN0eWxlO1xuXG5AbmF2YmFyLW5hdi1pdGVtLXRleHQtc2hhZG93OiAgICAgICAgICAgICAgICAgICBub25lO1xuQG5hdmJhci1uYXYtaXRlbS1ob3Zlci10ZXh0LXNoYWRvdzogICAgICAgICAgICAgbm9uZTtcbkBuYXZiYXItbmF2LWl0ZW0tYWN0aXZlLXRleHQtc2hhZG93OiAgICAgICAgICAgIG5vbmU7XG5cbkBuYXZiYXItaXRlbS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgIEBuYXZiYXItbmF2LWl0ZW0tZm9udC1zaXplO1xuQG5hdmJhci1pdGVtLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgICAgQG5hdmJhci1uYXYtaXRlbS1mb250LWZhbWlseTtcblxuQG5hdmJhci1wcmltYXJ5LW5hdi1pdGVtLWZvbnQtc2l6ZTogICAgICAgICAgICAgQGdsb2JhbC1sYXJnZS1mb250LXNpemU7XG5AbmF2YmFyLXByaW1hcnktbmF2LWl0ZW0tZm9udC13ZWlnaHQ6ICAgICAgICAgICA0MDA7XG5AbmF2YmFyLXByaW1hcnktbmF2LWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcbkBuYXZiYXItcHJpbWFyeS1uYXYtaXRlbS1ob3Zlci1jb2xvcjogICAgICAgICAgIHRyYW5zcGFyZW50O1xuQG5hdmJhci1wcmltYXJ5LW5hdi1pdGVtLW9uY2xpY2stY29sb3I6ICAgICAgICAgdHJhbnNwYXJlbnQ7XG5AbmF2YmFyLXByaW1hcnktbmF2LWl0ZW0tYWN0aXZlLWNvbG9yOiAgICAgICAgICB0cmFuc3BhcmVudDtcblxuQG5hdmJhci1kcm9wZG93bi1uYXYtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgQGdsb2JhbC1mb250LXNpemU7XG5AbmF2YmFyLWRyb3Bkb3duLW5hdi1mb250LWZhbWlseTogICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1mb250LWZhbWlseTtcbkBuYXZiYXItZHJvcGRvd24tbmF2LWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0O1xuQG5hdmJhci1kcm9wZG93bi1uYXYtdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktdGV4dC10cmFuc2Zvcm07XG5AbmF2YmFyLWRyb3Bkb3duLW5hdi1sZXR0ZXItc3BhY2luZzogICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1sZXR0ZXItc3BhY2luZztcbkBuYXZiYXItZHJvcGRvd24tbmF2LWZvbnQtc3R5bGU6ICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtc3R5bGU7XG5cblxuLy8gQ29tcG9uZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbmF2YmFyKCkge31cblxuXG4vLyBDb250YWluZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1uYXZiYXItY29udGFpbmVyKCkge31cblxuXG4vLyBOYXZcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1uYXZiYXItbmF2LWl0ZW0oKSB7fVxuXG4uaG9vay1uYXZiYXItbmF2LWl0ZW0oKSB3aGVuIG5vdCAoQG5hdmJhci1uYXYtaXRlbS1mb250LXdlaWdodCA9IGluaGVyaXQpIHtcbiAgICBmb250LXdlaWdodDogQG5hdmJhci1uYXYtaXRlbS1mb250LXdlaWdodDtcbn1cblxuLmhvb2stbmF2YmFyLW5hdi1pdGVtKCkgd2hlbiBub3QgKEBuYXZiYXItbmF2LWl0ZW0tdGV4dC10cmFuc2Zvcm0gPSBpbmhlcml0KSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IEBuYXZiYXItbmF2LWl0ZW0tdGV4dC10cmFuc2Zvcm07XG59XG5cbi5ob29rLW5hdmJhci1uYXYtaXRlbSgpIHdoZW4gbm90IChAbmF2YmFyLW5hdi1pdGVtLWxldHRlci1zcGFjaW5nID0gaW5oZXJpdCkge1xuICAgIGxldHRlci1zcGFjaW5nOiBAbmF2YmFyLW5hdi1pdGVtLWxldHRlci1zcGFjaW5nO1xufVxuXG4uaG9vay1uYXZiYXItbmF2LWl0ZW0oKSB3aGVuIG5vdCAoQG5hdmJhci1uYXYtaXRlbS1mb250LXN0eWxlID0gaW5oZXJpdCkge1xuICAgIGZvbnQtc3R5bGU6IEBuYXZiYXItbmF2LWl0ZW0tZm9udC1zdHlsZTtcbn1cblxuLmhvb2stbmF2YmFyLW5hdi1pdGVtKCkgd2hlbiBub3QgKEBuYXZiYXItbmF2LWl0ZW0tdGV4dC1zaGFkb3cgPSBub25lKSB7XG4gICAgdGV4dC1zaGFkb3c6IEBuYXZiYXItbmF2LWl0ZW0tdGV4dC1zaGFkb3c7XG59XG5cbi5ob29rLW5hdmJhci1uYXYtaXRlbS1ob3ZlcigpIHdoZW4gbm90IChAbmF2YmFyLW5hdi1pdGVtLWhvdmVyLXRleHQtc2hhZG93ID0gbm9uZSkge1xuICAgIHRleHQtc2hhZG93OiBAbmF2YmFyLW5hdi1pdGVtLWhvdmVyLXRleHQtc2hhZG93O1xufVxuXG4uaG9vay1uYXZiYXItbmF2LWl0ZW0tb25jbGljaygpIHt9XG5cbi5ob29rLW5hdmJhci1uYXYtaXRlbS1hY3RpdmUoKSB3aGVuIG5vdCAoQG5hdmJhci1uYXYtaXRlbS1hY3RpdmUtdGV4dC1zaGFkb3cgPSBub25lKSB7XG4gICAgdGV4dC1zaGFkb3c6IEBuYXZiYXItbmF2LWl0ZW0tYWN0aXZlLXRleHQtc2hhZG93O1xufVxuXG5cbi8vIEl0ZW1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1uYXZiYXItaXRlbSgpIHdoZW4gbm90IChAbmF2YmFyLW5hdi1pdGVtLWZvbnQtc2l6ZSA9IEBuYXZiYXItaXRlbS1mb250LXNpemUpIHtcbiAgICBmb250LXNpemU6IEBuYXZiYXItaXRlbS1mb250LXNpemU7XG59XG5cbi5ob29rLW5hdmJhci1pdGVtKCkgd2hlbiBub3QgKEBuYXZiYXItbmF2LWl0ZW0tZm9udC1mYW1pbHkgPSBAbmF2YmFyLWl0ZW0tZm9udC1mYW1pbHkpIHtcbiAgICBmb250LWZhbWlseTogQG5hdmJhci1pdGVtLWZvbnQtZmFtaWx5O1xufVxuXG5cbi8vIFRvZ2dsZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW5hdmJhci10b2dnbGUoKSB7fVxuXG4uaG9vay1uYXZiYXItdG9nZ2xlKCkgd2hlbiBub3QgKEBuYXZiYXItbmF2LWl0ZW0tZm9udC13ZWlnaHQgPSBpbmhlcml0KSB7XG4gICAgZm9udC13ZWlnaHQ6IEBuYXZiYXItbmF2LWl0ZW0tZm9udC13ZWlnaHQ7XG59XG5cbi5ob29rLW5hdmJhci10b2dnbGUoKSB3aGVuIG5vdCAoQG5hdmJhci1uYXYtaXRlbS10ZXh0LXRyYW5zZm9ybSA9IGluaGVyaXQpIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogQG5hdmJhci1uYXYtaXRlbS10ZXh0LXRyYW5zZm9ybTtcbn1cblxuLmhvb2stbmF2YmFyLXRvZ2dsZSgpIHdoZW4gbm90IChAbmF2YmFyLW5hdi1pdGVtLWxldHRlci1zcGFjaW5nID0gaW5oZXJpdCkge1xuICAgIGxldHRlci1zcGFjaW5nOiBAbmF2YmFyLW5hdi1pdGVtLWxldHRlci1zcGFjaW5nO1xufVxuXG4uaG9vay1uYXZiYXItdG9nZ2xlLWhvdmVyKCkge31cblxuLmhvb2stbmF2YmFyLXRvZ2dsZS1pY29uKCkge31cblxuLmhvb2stbmF2YmFyLXRvZ2dsZS1pY29uLWhvdmVyKCkge31cblxuXG4vLyBTdWJ0aXRsZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW5hdmJhci1zdWJ0aXRsZSgpIHt9XG5cblxuLy8gU3R5bGUgbW9kaWZpZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbmF2YmFyLXByaW1hcnkoKSB7fVxuXG4uaG9vay1uYXZiYXItbmF2LWl0ZW0oKSB7XG5cbiAgICAudWstbmF2YmFyLXByaW1hcnkgJiB7IGZvbnQtc2l6ZTogQG5hdmJhci1wcmltYXJ5LW5hdi1pdGVtLWZvbnQtc2l6ZTsgfVxuXG4gICAgLnVrLW5hdmJhci1wcmltYXJ5ICYgd2hlbiBub3QgKEBuYXZiYXItcHJpbWFyeS1uYXYtaXRlbS1mb250LXdlaWdodCA9IGluaGVyaXQpIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IEBuYXZiYXItcHJpbWFyeS1uYXYtaXRlbS1mb250LXdlaWdodDtcbiAgICB9XG5cbiAgICAudWstbmF2YmFyLXByaW1hcnkgJiB3aGVuIG5vdCAoQG5hdmJhci1wcmltYXJ5LW5hdi1pdGVtLWNvbG9yID0gdHJhbnNwYXJlbnQpIHtcbiAgICAgICAgY29sb3I6IEBuYXZiYXItcHJpbWFyeS1uYXYtaXRlbS1jb2xvcjtcbiAgICB9XG5cbn1cblxuLmhvb2stbmF2YmFyLW5hdi1pdGVtLWhvdmVyKCkgd2hlbiBub3QgKEBuYXZiYXItcHJpbWFyeS1uYXYtaXRlbS1ob3Zlci1jb2xvciA9IHRyYW5zcGFyZW50KSB7XG5cbiAgICAudWstbmF2YmFyLXByaW1hcnkgJiB7IGNvbG9yOiBAbmF2YmFyLXByaW1hcnktbmF2LWl0ZW0taG92ZXItY29sb3I7IH1cblxufVxuXG4uaG9vay1uYXZiYXItbmF2LWl0ZW0tb25jbGljaygpIHdoZW4gbm90IChAbmF2YmFyLXByaW1hcnktbmF2LWl0ZW0tb25jbGljay1jb2xvciA9IHRyYW5zcGFyZW50KSB7XG5cbiAgICAudWstbmF2YmFyLXByaW1hcnkgJiB7IGNvbG9yOiBAbmF2YmFyLXByaW1hcnktbmF2LWl0ZW0tb25jbGljay1jb2xvcjsgfVxuXG59XG5cbi5ob29rLW5hdmJhci1uYXYtaXRlbS1hY3RpdmUoKSB3aGVuIG5vdCAoQG5hdmJhci1wcmltYXJ5LW5hdi1pdGVtLWFjdGl2ZS1jb2xvciA9IHRyYW5zcGFyZW50KSB7XG5cbiAgICAudWstbmF2YmFyLXByaW1hcnkgJiB7IGNvbG9yOiBAbmF2YmFyLXByaW1hcnktbmF2LWl0ZW0tYWN0aXZlLWNvbG9yOyB9XG5cbn1cblxuLmhvb2stbmF2YmFyLXRyYW5zcGFyZW50KCkge31cblxuLmhvb2stbmF2YmFyLXN0aWNreSgpIHt9XG5cblxuLy8gRHJvcGRvd25cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1uYXZiYXItZHJvcGRvd24oKSB7fVxuXG4uaG9vay1uYXZiYXItZHJvcGRvd24tZHJvcGJhcigpIHt9XG5cblxuLy8gRHJvcGRvd24gbmF2XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdigpIHsgZm9udC1zaXplOiBAbmF2YmFyLWRyb3Bkb3duLW5hdi1mb250LXNpemU7IH1cblxuLmhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdigpIHdoZW4gbm90IChAbmF2YmFyLWRyb3Bkb3duLW5hdi1mb250LWZhbWlseSA9IGluaGVyaXQpIHtcbiAgICBmb250LWZhbWlseTogQG5hdmJhci1kcm9wZG93bi1uYXYtZm9udC1mYW1pbHk7XG59XG5cbi5ob29rLW5hdmJhci1kcm9wZG93bi1uYXYoKSB3aGVuIG5vdCAoQG5hdmJhci1kcm9wZG93bi1uYXYtZm9udC13ZWlnaHQgPSBpbmhlcml0KSB7XG4gICAgZm9udC13ZWlnaHQ6IEBuYXZiYXItZHJvcGRvd24tbmF2LWZvbnQtd2VpZ2h0O1xufVxuXG4uaG9vay1uYXZiYXItZHJvcGRvd24tbmF2KCkgd2hlbiBub3QgKEBuYXZiYXItZHJvcGRvd24tbmF2LXRleHQtdHJhbnNmb3JtID0gaW5oZXJpdCkge1xuICAgIHRleHQtdHJhbnNmb3JtOiBAbmF2YmFyLWRyb3Bkb3duLW5hdi10ZXh0LXRyYW5zZm9ybTtcbn1cblxuLmhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdigpIHdoZW4gbm90IChAbmF2YmFyLWRyb3Bkb3duLW5hdi1sZXR0ZXItc3BhY2luZyA9IGluaGVyaXQpIHtcbiAgICBsZXR0ZXItc3BhY2luZzogQG5hdmJhci1kcm9wZG93bi1uYXYtbGV0dGVyLXNwYWNpbmc7XG59XG5cbi5ob29rLW5hdmJhci1kcm9wZG93bi1uYXYoKSB3aGVuIG5vdCAoQG5hdmJhci1kcm9wZG93bi1uYXYtZm9udC1zdHlsZSA9IGluaGVyaXQpIHtcbiAgICBmb250LXN0eWxlOiBAbmF2YmFyLWRyb3Bkb3duLW5hdi1mb250LXN0eWxlO1xufVxuXG4uaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0oKSB7fVxuXG4uaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LWl0ZW0taG92ZXIoKSB7fVxuXG4uaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LWhlYWRlcigpIHt9XG5cbi5ob29rLW5hdmJhci1kcm9wZG93bi1uYXYtZGl2aWRlcigpIHt9XG5cblxuLy8gRHJvcGJhclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW5hdmJhci1kcm9wYmFyKCkge31cblxuLmhvb2stbmF2YmFyLWRyb3BiYXItc2xpZGUoKSB7fVxuXG5cbi8vIE1pc2NlbGxhbmVvdXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1uYXZiYXItbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWludmVyc2UtbmF2YmFyLW5hdi1pdGVtKCkge31cbi5ob29rLWludmVyc2UtbmF2YmFyLW5hdi1pdGVtLWhvdmVyKCkge31cbi5ob29rLWludmVyc2UtbmF2YmFyLW5hdi1pdGVtLW9uY2xpY2soKSB7fVxuLmhvb2staW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0tYWN0aXZlKCkge31cblxuLmhvb2staW52ZXJzZS1uYXZiYXItaXRlbSgpIHt9XG5cbi5ob29rLWludmVyc2UtbmF2YmFyLXRvZ2dsZSgpIHt9XG4uaG9vay1pbnZlcnNlLW5hdmJhci10b2dnbGUtaG92ZXIoKSB7fSIsIi8vXG4vLyBDb21wb25lbnQ6IE5hdmJhclxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBuYXZiYXItYm94LXNoYWRvdzogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbmU7XG5cbkBuYXZiYXItbmF2LWl0ZW0taG92ZXItYm94LXNoYWRvdzogICAgICAgICAgICAgIG5vbmU7XG5AbmF2YmFyLW5hdi1pdGVtLWFjdGl2ZS1ib3gtc2hhZG93OiAgICAgICAgICAgICBub25lO1xuXG5AbmF2YmFyLXN0aWNreS1ib3gtc2hhZG93OiAgICAgICAgICAgICAgICAgICAgICBub25lO1xuXG5AbmF2YmFyLWRyb3Bkb3duLWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICBub25lO1xuXG5AbmF2YmFyLWRyb3BiYXItYm94LXNoYWRvdzogICAgICAgICAgICAgICAgICAgICBub25lO1xuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW5hdmJhcigpIHt9XG5cblxuLy8gQ29udGFpbmVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIDEuIE1ha2Ugc3VyZSBib3ggc2hhZG93IGlzIG5vdCBzaG93biBiZWxvdyBjb250ZW50XG4vLyAgICBgei1pbmRleGAgaXMgdGFrZW4gZnJvbSBgdWstbmF2YmFyLWNlbnRlcmBcbi8vIDIuIFRoaXMgbWVhbnMgdGhlIHRvb2xiYXIgYW5kIGhlYWRlcmJhciBhbHNvIG5lZWQgYSBgei1pbmRleGAsIHNvXG4vLyAgICB0aGVyZSBkcm9wZG93bnMgYXJlIHNob3duIGFib3ZlIHRoZSBuYXZiYXJcbi8vXG5cbi5ob29rLW5hdmJhci1jb250YWluZXIoKSB3aGVuIG5vdCAoQG5hdmJhci1ib3gtc2hhZG93ID0gbm9uZSkge1xuICAgIGJveC1zaGFkb3c6IEBuYXZiYXItYm94LXNoYWRvdztcbiAgICAvLyAxXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IEBnbG9iYWwtei1pbmRleCAtIDEwO1xufVxuXG4vLyAyXG4udG0tdG9vbGJhciB3aGVuIG5vdCAoQG5hdmJhci1ib3gtc2hhZG93ID0gbm9uZSkgeyB6LWluZGV4OiBAZ2xvYmFsLXotaW5kZXggLSAxMCArIDI7IH1cbi50bS1oZWFkZXJiYXItdG9wIHdoZW4gbm90IChAbmF2YmFyLWJveC1zaGFkb3cgPSBub25lKSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IEBnbG9iYWwtei1pbmRleCAtIDEwICsgMTtcbn1cblxuXG4vLyBOYXZcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1uYXZiYXItbmF2LWl0ZW0oKSB7fVxuXG4uaG9vay1uYXZiYXItbmF2LWl0ZW0taG92ZXIoKSB3aGVuIG5vdCAoQG5hdmJhci1uYXYtaXRlbS1ob3Zlci1ib3gtc2hhZG93ID0gbm9uZSkge1xuICAgIGJveC1zaGFkb3c6IEBuYXZiYXItbmF2LWl0ZW0taG92ZXItYm94LXNoYWRvdztcbn1cblxuLmhvb2stbmF2YmFyLW5hdi1pdGVtLW9uY2xpY2soKSB7fVxuXG4uaG9vay1uYXZiYXItbmF2LWl0ZW0tYWN0aXZlKCkgd2hlbiBub3QgKEBuYXZiYXItbmF2LWl0ZW0tYWN0aXZlLWJveC1zaGFkb3cgPSBub25lKSB7XG4gICAgYm94LXNoYWRvdzogQG5hdmJhci1uYXYtaXRlbS1hY3RpdmUtYm94LXNoYWRvdztcbn1cblxuXG4vLyBJdGVtXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbmF2YmFyLWl0ZW0oKSB7fVxuXG5cbi8vIFRvZ2dsZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW5hdmJhci10b2dnbGUoKSB7fVxuXG4uaG9vay1uYXZiYXItdG9nZ2xlLWhvdmVyKCkge31cblxuLmhvb2stbmF2YmFyLXRvZ2dsZS1pY29uKCkge31cblxuLmhvb2stbmF2YmFyLXRvZ2dsZS1pY29uLWhvdmVyKCkge31cblxuXG4vLyBTdWJ0aXRsZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW5hdmJhci1zdWJ0aXRsZSgpIHt9XG5cblxuLy8gU3R5bGUgbW9kaWZpZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbmF2YmFyLXByaW1hcnkoKSB7fVxuXG4uaG9vay1uYXZiYXItdHJhbnNwYXJlbnQoKSB7fVxuXG4uaG9vay1uYXZiYXItc3RpY2t5KCkgd2hlbiBub3QgKEBuYXZiYXItc3RpY2t5LWJveC1zaGFkb3cgPSBub25lKSB7XG4gICAgYm94LXNoYWRvdzogQG5hdmJhci1zdGlja3ktYm94LXNoYWRvdztcbn1cblxuXG4vLyBEcm9wZG93blxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLW5hdmJhci1kcm9wZG93bigpIHdoZW4gbm90IChAbmF2YmFyLWRyb3Bkb3duLWJveC1zaGFkb3cgPSBub25lKSB7XG4gICAgYm94LXNoYWRvdzogQG5hdmJhci1kcm9wZG93bi1ib3gtc2hhZG93O1xufVxuXG4uaG9vay1uYXZiYXItZHJvcGRvd24tZHJvcGJhcigpIHdoZW4gbm90IChAbmF2YmFyLWRyb3Bkb3duLWJveC1zaGFkb3cgPSBub25lKSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuXG4vLyBEcm9wZG93biBuYXZcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1uYXZiYXItZHJvcGRvd24tbmF2KCkge31cblxuLmhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdi1pdGVtKCkge31cblxuLmhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdi1pdGVtLWhvdmVyKCkge31cblxuLmhvb2stbmF2YmFyLWRyb3Bkb3duLW5hdi1oZWFkZXIoKSB7fVxuXG4uaG9vay1uYXZiYXItZHJvcGRvd24tbmF2LWRpdmlkZXIoKSB7fVxuXG5cbi8vIERyb3BiYXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1uYXZiYXItZHJvcGJhcigpIHt9XG5cbi5ob29rLW5hdmJhci1kcm9wYmFyLXNsaWRlKCkgd2hlbiBub3QgKEBuYXZiYXItZHJvcGJhci1ib3gtc2hhZG93ID0gbm9uZSkge1xuICAgIGJveC1zaGFkb3c6IEBuYXZiYXItZHJvcGJhci1ib3gtc2hhZG93O1xufVxuXG5cbi8vIE1pc2NlbGxhbmVvdXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1uYXZiYXItbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWludmVyc2UtbmF2YmFyLW5hdi1pdGVtKCkge31cbi5ob29rLWludmVyc2UtbmF2YmFyLW5hdi1pdGVtLWhvdmVyKCkge31cbi5ob29rLWludmVyc2UtbmF2YmFyLW5hdi1pdGVtLW9uY2xpY2soKSB7fVxuLmhvb2staW52ZXJzZS1uYXZiYXItbmF2LWl0ZW0tYWN0aXZlKCkge31cblxuLmhvb2staW52ZXJzZS1uYXZiYXItaXRlbSgpIHt9XG5cbi5ob29rLWludmVyc2UtbmF2YmFyLXRvZ2dsZSgpIHt9XG4uaG9vay1pbnZlcnNlLW5hdmJhci10b2dnbGUtaG92ZXIoKSB7fSIsIi8vIE5hbWU6ICAgICAgICAgICAgU3VibmF2XG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBjcmVhdGUgYSBzdWIgbmF2aWdhdGlvblxuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLXN1Ym5hdmBcbi8vXG4vLyBNb2RpZmllcnM6ICAgICAgIGB1ay1zdWJuYXYtZGl2aWRlcmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXN1Ym5hdi1waWxsYFxuLy9cbi8vIFN0YXRlczogICAgICAgICAgYHVrLWFjdGl2ZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWZpcnN0LWNvbHVtbmBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5Ac3VibmF2LW1hcmdpbi1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICAgICAyMHB4O1xuXG5Ac3VibmF2LWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWNvbG9yO1xuQHN1Ym5hdi1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1jb2xvcjtcbkBzdWJuYXYtaXRlbS1ob3Zlci10ZXh0LWRlY29yYXRpb246ICAgICAgICAgICAgIG5vbmU7XG5Ac3VibmF2LWl0ZW0tYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuXG5Ac3VibmF2LWRpdmlkZXItbWFyZ2luLWhvcml6b250YWw6ICAgICAgICAgICAgICBAc3VibmF2LW1hcmdpbi1ob3Jpem9udGFsO1xuQHN1Ym5hdi1kaXZpZGVyLWJvcmRlci1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgMS41ZW07XG5Ac3VibmF2LWRpdmlkZXItYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWJvcmRlci13aWR0aDtcbkBzdWJuYXYtZGl2aWRlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtYm9yZGVyO1xuXG5Ac3VibmF2LXBpbGwtaXRlbS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICA1cHg7XG5Ac3VibmF2LXBpbGwtaXRlbS1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAxMHB4O1xuQHN1Ym5hdi1waWxsLWl0ZW0tYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5Ac3VibmF2LXBpbGwtaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICBAc3VibmF2LWl0ZW0tY29sb3I7XG5Ac3VibmF2LXBpbGwtaXRlbS1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWJhY2tncm91bmQ7XG5Ac3VibmF2LXBpbGwtaXRlbS1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICBAZ2xvYmFsLWNvbG9yO1xuQHN1Ym5hdi1waWxsLWl0ZW0tb25jbGljay1iYWNrZ3JvdW5kOiAgICAgICAgICAgQHN1Ym5hdi1waWxsLWl0ZW0taG92ZXItYmFja2dyb3VuZDtcbkBzdWJuYXYtcGlsbC1pdGVtLW9uY2xpY2stY29sb3I6ICAgICAgICAgICAgICAgIEBzdWJuYXYtcGlsbC1pdGVtLWhvdmVyLWNvbG9yO1xuQHN1Ym5hdi1waWxsLWl0ZW0tYWN0aXZlLWJhY2tncm91bmQ6ICAgICAgICAgICAgQGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQ7XG5Ac3VibmF2LXBpbGwtaXRlbS1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgICAgICBAZ2xvYmFsLWludmVyc2UtY29sb3I7XG5cbkBzdWJuYXYtaXRlbS1kaXNhYmxlZC1jb2xvcjogICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtY29sb3I7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFN1Ym5hdlxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBBbGxvdyBpdGVtcyB0byB3cmFwIGludG8gdGhlIG5leHQgbGluZVxuICogMi4gQ2VudGVyIGl0ZW1zIHZlcnRpY2FsbHkgaWYgdGhleSBoYXZlIGEgZGlmZmVyZW50IGhlaWdodFxuICogMy4gR3V0dGVyXG4gKiA0LiBSZXNldCBsaXN0XG4gKi9cblxuLnVrLXN1Ym5hdiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAvKiAxICovXG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIC8qIDIgKi9cbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIC8qIDMgKi9cbiAgICBtYXJnaW4tbGVmdDogLUBzdWJuYXYtbWFyZ2luLWhvcml6b250YWw7XG4gICAgLyogNCAqL1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAuaG9vay1zdWJuYXYoKTtcbn1cblxuLypcbiAqIDEuIFNwYWNlIGlzIGFsbG9jYXRlZCBzb2xlbHkgYmFzZWQgb24gY29udGVudCBkaW1lbnNpb25zOiAwIDAgYXV0b1xuICogMi4gR3V0dGVyXG4gKiAzLiBDcmVhdGUgcG9zaXRpb24gY29udGV4dCBmb3IgZHJvcGRvd25zXG4gKi9cblxuLnVrLXN1Ym5hdiA+ICoge1xuICAgIC8qIDEgKi9cbiAgICBmbGV4OiBub25lO1xuICAgIC8qIDIgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IEBzdWJuYXYtbWFyZ2luLWhvcml6b250YWw7XG4gICAgLyogMyAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuXG4vKiBJdGVtc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBJdGVtcyBtdXN0IHRhcmdldCBgYWAgZWxlbWVudHMgdG8gZXhjbHVkZSBvdGhlciBlbGVtZW50cyAoZS5nLiBkcm9wZG93bnMpXG4gKiBVc2luZyBgOmZpcnN0LWNoaWxkYCBpbnN0ZWFkIG9mIGBhYCB0byBzdXBwb3J0IGBzcGFuYCBlbGVtZW50cyBmb3IgdGV4dFxuICogMS4gQ2VudGVyIGNvbnRlbnQgdmVydGljYWxseSwgZS5nLiBhbiBpY29uXG4gKiAyLiBJbWl0YXRlIHdoaXRlIHNwYWNlIGdhcCB3aGVuIHVzaW5nIGZsZXhib3hcbiAqIDMuIFN0eWxlXG4gKi9cblxuLnVrLXN1Ym5hdiA+ICogPiA6Zmlyc3QtY2hpbGQge1xuICAgIC8qIDEgKi9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgLyogMiAqL1xuICAgIGNvbHVtbi1nYXA6IDAuMjVlbTtcbiAgICAvKiAzICovXG4gICAgY29sb3I6IEBzdWJuYXYtaXRlbS1jb2xvcjtcbiAgICAuaG9vay1zdWJuYXYtaXRlbSgpO1xufVxuXG4vKiBIb3ZlciAqL1xuLnVrLXN1Ym5hdiA+ICogPiBhOmhvdmVyIHtcbiAgICBjb2xvcjogQHN1Ym5hdi1pdGVtLWhvdmVyLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogQHN1Ym5hdi1pdGVtLWhvdmVyLXRleHQtZGVjb3JhdGlvbjtcbiAgICAuaG9vay1zdWJuYXYtaXRlbS1ob3ZlcigpO1xufVxuXG4vKiBBY3RpdmUgKi9cbi51ay1zdWJuYXYgPiAudWstYWN0aXZlID4gYSB7XG4gICAgY29sb3I6IEBzdWJuYXYtaXRlbS1hY3RpdmUtY29sb3I7XG4gICAgLmhvb2stc3VibmF2LWl0ZW0tYWN0aXZlKCk7XG59XG5cblxuLyogRGl2aWRlciBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBTZXQgZ3V0dGVyXG4gKi9cblxuLnVrLXN1Ym5hdi1kaXZpZGVyIHsgbWFyZ2luLWxlZnQ6IC0oKEBzdWJuYXYtZGl2aWRlci1tYXJnaW4taG9yaXpvbnRhbCAqIDIpICsgQHN1Ym5hdi1kaXZpZGVyLWJvcmRlci13aWR0aCk7IH1cblxuLypcbiAqIEFsaWduIGl0ZW1zIGFuZCBkaXZpZGVyIHZlcnRpY2FsbHlcbiAqL1xuXG4udWstc3VibmF2LWRpdmlkZXIgPiAqIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi8qXG4gKiBEaXZpZGVyXG4gKiAxLiBgbnRoLWNoaWxkYCBtYWtlcyBpdCBhbHNvIHdvcmsgd2l0aG91dCBKUyBpZiBpdCdzIG9ubHkgb25lIHJvd1xuICovXG5cbi51ay1zdWJuYXYtZGl2aWRlciA+IDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGhlaWdodDogQHN1Ym5hdi1kaXZpZGVyLWJvcmRlci1oZWlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IChAc3VibmF2LWRpdmlkZXItbWFyZ2luLWhvcml6b250YWwgLSBAc3VibmF2LW1hcmdpbi1ob3Jpem9udGFsKTtcbiAgICBtYXJnaW4tcmlnaHQ6IEBzdWJuYXYtZGl2aWRlci1tYXJnaW4taG9yaXpvbnRhbDtcbiAgICBib3JkZXItbGVmdDogQHN1Ym5hdi1kaXZpZGVyLWJvcmRlci13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLyogMSAqL1xuLnVrLXN1Ym5hdi1kaXZpZGVyID4gOm50aC1jaGlsZChuKzIpOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogQHN1Ym5hdi1kaXZpZGVyLWJvcmRlcjtcbiAgICAuaG9vay1zdWJuYXYtZGl2aWRlcigpO1xufVxuXG5cbi8qIFBpbGwgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstc3VibmF2LXBpbGwgPiAqID4gOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nOiBAc3VibmF2LXBpbGwtaXRlbS1wYWRkaW5nLXZlcnRpY2FsIEBzdWJuYXYtcGlsbC1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBiYWNrZ3JvdW5kOiBAc3VibmF2LXBpbGwtaXRlbS1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiBAc3VibmF2LXBpbGwtaXRlbS1jb2xvcjtcbiAgICAuaG9vay1zdWJuYXYtcGlsbC1pdGVtKCk7XG59XG5cbi8qIEhvdmVyICovXG4udWstc3VibmF2LXBpbGwgPiAqID4gYTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQHN1Ym5hdi1waWxsLWl0ZW0taG92ZXItYmFja2dyb3VuZDtcbiAgICBjb2xvcjogQHN1Ym5hdi1waWxsLWl0ZW0taG92ZXItY29sb3I7XG4gICAgLmhvb2stc3VibmF2LXBpbGwtaXRlbS1ob3ZlcigpO1xufVxuXG4vKiBPbkNsaWNrICovXG4udWstc3VibmF2LXBpbGwgPiAqID4gYTphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBzdWJuYXYtcGlsbC1pdGVtLW9uY2xpY2stYmFja2dyb3VuZDtcbiAgICBjb2xvcjogQHN1Ym5hdi1waWxsLWl0ZW0tb25jbGljay1jb2xvcjtcbiAgICAuaG9vay1zdWJuYXYtcGlsbC1pdGVtLW9uY2xpY2soKTtcbn1cblxuLyogQWN0aXZlICovXG4udWstc3VibmF2LXBpbGwgPiAudWstYWN0aXZlID4gYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQHN1Ym5hdi1waWxsLWl0ZW0tYWN0aXZlLWJhY2tncm91bmQ7XG4gICAgY29sb3I6IEBzdWJuYXYtcGlsbC1pdGVtLWFjdGl2ZS1jb2xvcjtcbiAgICAuaG9vay1zdWJuYXYtcGlsbC1pdGVtLWFjdGl2ZSgpO1xufVxuXG5cbi8qIERpc2FibGVkXG4gKiBUaGUgc2FtZSBmb3IgYWxsIHN0eWxlIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1zdWJuYXYgPiAudWstZGlzYWJsZWQgPiBhIHtcbiAgICBjb2xvcjogQHN1Ym5hdi1pdGVtLWRpc2FibGVkLWNvbG9yO1xuICAgIC5ob29rLXN1Ym5hdi1pdGVtLWRpc2FibGVkKCk7XG59XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1zdWJuYXYtbWlzYygpO1xuXG4uaG9vay1zdWJuYXYoKSB7fVxuLmhvb2stc3VibmF2LWl0ZW0oKSB7fVxuLmhvb2stc3VibmF2LWl0ZW0taG92ZXIoKSB7fVxuLmhvb2stc3VibmF2LWl0ZW0tYWN0aXZlKCkge31cbi5ob29rLXN1Ym5hdi1kaXZpZGVyKCkge31cbi5ob29rLXN1Ym5hdi1waWxsLWl0ZW0oKSB7fVxuLmhvb2stc3VibmF2LXBpbGwtaXRlbS1ob3ZlcigpIHt9XG4uaG9vay1zdWJuYXYtcGlsbC1pdGVtLW9uY2xpY2soKSB7fVxuLmhvb2stc3VibmF2LXBpbGwtaXRlbS1hY3RpdmUoKSB7fVxuLmhvb2stc3VibmF2LWl0ZW0tZGlzYWJsZWQoKSB7fVxuLmhvb2stc3VibmF2LW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW52ZXJzZS1zdWJuYXYtaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvcjtcbkBpbnZlcnNlLXN1Ym5hdi1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWNvbG9yO1xuQGludmVyc2Utc3VibmF2LWl0ZW0tYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AaW52ZXJzZS1zdWJuYXYtZGl2aWRlci1ib3JkZXI6ICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1ib3JkZXI7XG5AaW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLWJhY2tncm91bmQ6ICAgICAgICAgIHRyYW5zcGFyZW50O1xuQGludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1jb2xvcjogICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3I7XG5AaW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLWhvdmVyLWJhY2tncm91bmQ6ICAgIEBpbnZlcnNlLWdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kO1xuQGludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1ob3Zlci1jb2xvcjogICAgICAgICBAaW52ZXJzZS1nbG9iYWwtY29sb3I7XG5AaW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLW9uY2xpY2stYmFja2dyb3VuZDogIEBpbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0taG92ZXItYmFja2dyb3VuZDtcbkBpbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0tb25jbGljay1jb2xvcjogICAgICAgQGludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1ob3Zlci1jb2xvcjtcbkBpbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0tYWN0aXZlLWJhY2tncm91bmQ6ICAgQGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZDtcbkBpbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0tYWN0aXZlLWNvbG9yOiAgICAgICAgQGludmVyc2UtZ2xvYmFsLWludmVyc2UtY29sb3I7XG5AaW52ZXJzZS1zdWJuYXYtaXRlbS1kaXNhYmxlZC1jb2xvcjogICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvcjtcblxuLmhvb2staW52ZXJzZSgpIHtcblxuICAgIC51ay1zdWJuYXYgPiAqID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLXN1Ym5hdi1pdGVtLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLXN1Ym5hdi1pdGVtKCk7XG4gICAgfVxuXG4gICAgLnVrLXN1Ym5hdiA+ICogPiBhOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLXN1Ym5hdi1pdGVtLWhvdmVyLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLXN1Ym5hdi1pdGVtLWhvdmVyKCk7XG4gICAgfVxuXG4gICAgLnVrLXN1Ym5hdiA+IC51ay1hY3RpdmUgPiBhIHtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLXN1Ym5hdi1pdGVtLWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1zdWJuYXYtaXRlbS1hY3RpdmUoKTtcbiAgICB9XG5cbiAgICAvL1xuICAgIC8vIERpdmlkZXJcbiAgICAvL1xuXG4gICAgLnVrLXN1Ym5hdi1kaXZpZGVyID4gOm50aC1jaGlsZChuKzIpOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IEBpbnZlcnNlLXN1Ym5hdi1kaXZpZGVyLWJvcmRlcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1zdWJuYXYtZGl2aWRlcigpO1xuICAgIH1cblxuICAgIC8vXG4gICAgLy8gUGlsbFxuICAgIC8vXG5cbiAgICAudWstc3VibmF2LXBpbGwgPiAqID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogQGludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtKCk7XG4gICAgfVxuXG4gICAgLnVrLXN1Ym5hdi1waWxsID4gKiA+IGE6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLWhvdmVyLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLWhvdmVyLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0taG92ZXIoKTtcbiAgICB9XG5cbiAgICAudWstc3VibmF2LXBpbGwgPiAqID4gYTphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLW9uY2xpY2stYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0tb25jbGljay1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLW9uY2xpY2soKTtcbiAgICB9XG5cbiAgICAudWstc3VibmF2LXBpbGwgPiAudWstYWN0aXZlID4gYSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0tYWN0aXZlLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLWFjdGl2ZSgpO1xuICAgIH1cblxuICAgIC8vXG4gICAgLy8gRGlzYWJsZWRcbiAgICAvL1xuXG4gICAgLnVrLXN1Ym5hdiA+IC51ay1kaXNhYmxlZCA+IGEge1xuICAgICAgICBjb2xvcjogQGludmVyc2Utc3VibmF2LWl0ZW0tZGlzYWJsZWQtY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2Utc3VibmF2LWl0ZW0tZGlzYWJsZWQoKTtcbiAgICB9XG5cbn1cblxuLmhvb2staW52ZXJzZS1zdWJuYXYtaXRlbSgpIHt9XG4uaG9vay1pbnZlcnNlLXN1Ym5hdi1pdGVtLWhvdmVyKCkge31cbi5ob29rLWludmVyc2Utc3VibmF2LWl0ZW0tYWN0aXZlKCkge31cbi5ob29rLWludmVyc2Utc3VibmF2LWRpdmlkZXIoKSB7fVxuLmhvb2staW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtKCkge31cbi5ob29rLWludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1ob3ZlcigpIHt9XG4uaG9vay1pbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0tb25jbGljaygpIHt9XG4uaG9vay1pbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0tYWN0aXZlKCkge31cbi5ob29rLWludmVyc2Utc3VibmF2LWl0ZW0tZGlzYWJsZWQoKSB7fVxuIiwiLy9cbi8vIENvbXBvbmVudDogU3VibmF2XG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQHN1Ym5hdi1pdGVtLXRyYW5zaXRpb24tZHVyYXRpb246ICAgICAgICAgICAgICAgMC4xcztcblxuQHN1Ym5hdi1pdGVtLXRleHQtZGVjb3JhdGlvbjogICAgICAgICAgICAgICAgICAgaW5oZXJpdDtcblxuQGludGVybmFsLXN1Ym5hdi1waWxsLWl0ZW0tbW9kZTogICAgICAgICAgICAgICAgficnOyAvLyBnbG93XG5AaW50ZXJuYWwtc3VibmF2LXBpbGwtaXRlbS1nbG93LWdyYWRpZW50OiAgICAgICB+Jyc7XG5AaW50ZXJuYWwtc3VibmF2LXBpbGwtaXRlbS1nbG93LWZpbHRlcjogICAgICAgICB+Jyc7XG5AaW50ZXJuYWwtc3VibmF2LXBpbGwtaXRlbS1ob3Zlci1nbG93LWZpbHRlcjogICB+Jyc7XG5AaW50ZXJuYWwtc3VibmF2LXBpbGwtaXRlbS1nbG93LW9wYWNpdHk6ICAgICAgICAxO1xuQGludGVybmFsLXN1Ym5hdi1waWxsLWl0ZW0taG92ZXItZ2xvdy1vcGFjaXR5OiAgMTtcbkBpbnRlcm5hbC1zdWJuYXYtcGlsbC1pdGVtLWFjdGl2ZS1nbG93LW9wYWNpdHk6IDE7XG5cblxuLy8gQ29tcG9uZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stc3VibmF2KCkge31cblxuLmhvb2stc3VibmF2LWl0ZW0oKSB7XG4gICAgdHJhbnNpdGlvbjogQHN1Ym5hdi1pdGVtLXRyYW5zaXRpb24tZHVyYXRpb24gZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgYm94LXNoYWRvdztcbn1cblxuLmhvb2stc3VibmF2LWl0ZW0oKSB3aGVuIG5vdCAoQHN1Ym5hdi1pdGVtLXRleHQtZGVjb3JhdGlvbiA9IGluaGVyaXQpIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IEBzdWJuYXYtaXRlbS10ZXh0LWRlY29yYXRpb247XG59XG5cbi5ob29rLXN1Ym5hdi1pdGVtLWhvdmVyKCkge31cblxuLmhvb2stc3VibmF2LWl0ZW0tYWN0aXZlKCkge31cblxuXG4vLyBEaXZpZGVyIG1vZGlmaWVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stc3VibmF2LWRpdmlkZXIoKSB7fVxuXG5cbi8vIFBpbGwgbW9kaWZpZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1zdWJuYXYtcGlsbC1pdGVtKCkge31cblxuLmhvb2stc3VibmF2LXBpbGwtaXRlbSgpIHdoZW4gbm90IChAYmFzZS1saW5rLXRleHQtZGVjb3JhdGlvbiA9IG5vbmUpIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5ob29rLXN1Ym5hdi1waWxsLWl0ZW0taG92ZXIoKSB7fVxuXG4uaG9vay1zdWJuYXYtcGlsbC1pdGVtLW9uY2xpY2soKSB7fVxuXG4uaG9vay1zdWJuYXYtcGlsbC1pdGVtLWFjdGl2ZSgpIHt9XG5cbi8vXG4vLyBHbG93XG4vL1xuXG4uaG9vay1zdWJuYXYtcGlsbC1pdGVtKCkgd2hlbiAoQGludGVybmFsLXN1Ym5hdi1waWxsLWl0ZW0tbW9kZSA9IGdsb3cpIHtcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICAvLyBGaXggU2FmYXJpIGZsaWNrZXJpbmdcbiAgICAgICAgd2lsbC1jaGFuZ2U6IGZpbHRlcjtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBAaW50ZXJuYWwtc3VibmF2LXBpbGwtaXRlbS1nbG93LWdyYWRpZW50O1xuICAgICAgICBmaWx0ZXI6IEBpbnRlcm5hbC1zdWJuYXYtcGlsbC1pdGVtLWdsb3ctZmlsdGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBAc3VibmF2LWl0ZW0tdHJhbnNpdGlvbi1kdXJhdGlvbiBlYXNlLWluLW91dDtcbiAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgZmlsdGVyO1xuICAgIH1cblxufVxuXG4uaG9vay1zdWJuYXYtcGlsbC1pdGVtKCkgd2hlbiAoQGludGVybmFsLXN1Ym5hdi1waWxsLWl0ZW0tbW9kZSA9IGdsb3cpIGFuZCBub3QgKEBzdWJuYXYtcGlsbC1pdGVtLWJvcmRlci1yYWRpdXMgPSAwKSB7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIgeyBib3JkZXItcmFkaXVzOiBAc3VibmF2LXBpbGwtaXRlbS1ib3JkZXItcmFkaXVzOyB9XG5cbn1cblxuLmhvb2stc3VibmF2LXBpbGwtaXRlbSgpIHdoZW4gKEBpbnRlcm5hbC1zdWJuYXYtcGlsbC1pdGVtLW1vZGUgPSBnbG93KSBhbmQgbm90IChAaW50ZXJuYWwtc3VibmF2LXBpbGwtaXRlbS1nbG93LW9wYWNpdHkgPSAxKSB7XG5cbiAgICAmOjpiZWZvcmUgeyBvcGFjaXR5OiBAaW50ZXJuYWwtc3VibmF2LXBpbGwtaXRlbS1nbG93LW9wYWNpdHk7IH1cblxufVxuXG4uaG9vay1zdWJuYXYtcGlsbC1pdGVtLWhvdmVyKCkgd2hlbiAoQGludGVybmFsLXN1Ym5hdi1waWxsLWl0ZW0tbW9kZSA9IGdsb3cpIGFuZCBub3QgKEBpbnRlcm5hbC1zdWJuYXYtcGlsbC1pdGVtLWhvdmVyLWdsb3ctZmlsdGVyID0gficnKSB7XG5cbiAgICAmOjpiZWZvcmUgeyBmaWx0ZXI6IEBpbnRlcm5hbC1zdWJuYXYtcGlsbC1pdGVtLWhvdmVyLWdsb3ctZmlsdGVyOyB9XG5cbn1cblxuLmhvb2stc3VibmF2LXBpbGwtaXRlbS1ob3ZlcigpIHdoZW4gKEBpbnRlcm5hbC1zdWJuYXYtcGlsbC1pdGVtLW1vZGUgPSBnbG93KSBhbmQgbm90IChAaW50ZXJuYWwtc3VibmF2LXBpbGwtaXRlbS1ob3Zlci1nbG93LW9wYWNpdHkgPSBAaW50ZXJuYWwtc3VibmF2LXBpbGwtaXRlbS1nbG93LW9wYWNpdHkpIHtcblxuICAgICY6OmJlZm9yZSB7IG9wYWNpdHk6IEBpbnRlcm5hbC1zdWJuYXYtcGlsbC1pdGVtLWhvdmVyLWdsb3ctb3BhY2l0eTsgfVxuXG59XG5cbi5ob29rLXN1Ym5hdi1waWxsLWl0ZW0tYWN0aXZlKCkgd2hlbiAoQGludGVybmFsLXN1Ym5hdi1waWxsLWl0ZW0tbW9kZSA9IGdsb3cpIGFuZCBub3QgKEBpbnRlcm5hbC1zdWJuYXYtcGlsbC1pdGVtLWFjdGl2ZS1nbG93LW9wYWNpdHkgPSBAaW50ZXJuYWwtc3VibmF2LXBpbGwtaXRlbS1nbG93LW9wYWNpdHkpIHtcblxuICAgICY6OmJlZm9yZSB7IG9wYWNpdHk6IEBpbnRlcm5hbC1zdWJuYXYtcGlsbC1pdGVtLWFjdGl2ZS1nbG93LW9wYWNpdHk7IH1cblxufVxuXG4uaG9vay1zdWJuYXYtbWlzYygpIHdoZW4gKEBpbnRlcm5hbC1zdWJuYXYtcGlsbC1pdGVtLW1vZGUgPSBnbG93KSB7XG5cbiAgICAudWstc3VibmF2LXBpbGwgPiAqID4gOmZpcnN0LWNoaWxkOm5vdCgudWstaGFjaykge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbn1cblxuLnVrLXN1Ym5hdi1waWxsID4gKiA+IDpmaXJzdC1jaGlsZDo6YWZ0ZXI6ZXh0ZW5kKC51ay1zdWJuYXYtcGlsbCA+ICogPiA6Zmlyc3QtY2hpbGQpIHdoZW4gKEBpbnRlcm5hbC1zdWJuYXYtcGlsbC1pdGVtLW1vZGUgPSBnbG93KSB7fVxuLnVrLXN1Ym5hdi1waWxsID4gKiA+IGE6aG92ZXI6OmFmdGVyOmV4dGVuZCgudWstc3VibmF2LXBpbGwgPiAqID4gYTpob3Zlcikgd2hlbiAoQGludGVybmFsLXN1Ym5hdi1waWxsLWl0ZW0tbW9kZSA9IGdsb3cpIHt9XG4udWstc3VibmF2LXBpbGwgPiAudWstYWN0aXZlID4gYTo6YWZ0ZXI6ZXh0ZW5kKC51ay1zdWJuYXYtcGlsbCA+IC51ay1hY3RpdmUgPiBhKSB3aGVuIChAaW50ZXJuYWwtc3VibmF2LXBpbGwtaXRlbS1tb2RlID0gZ2xvdykge31cblxuXG4vLyBEaXNhYmxlZFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXN1Ym5hdi1pdGVtLWRpc2FibGVkKCkge31cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stc3VibmF2LW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW50ZXJuYWwtaW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLWdsb3ctZ3JhZGllbnQ6ICAgICAgIH4nJztcblxuLmhvb2staW52ZXJzZS1zdWJuYXYtaXRlbSgpIHt9XG4uaG9vay1pbnZlcnNlLXN1Ym5hdi1pdGVtLWhvdmVyKCkge31cbi5ob29rLWludmVyc2Utc3VibmF2LWl0ZW0tYWN0aXZlKCkge31cblxuLmhvb2staW52ZXJzZS1zdWJuYXYtZGl2aWRlcigpIHt9XG5cbi5ob29rLWludmVyc2Utc3VibmF2LXBpbGwtaXRlbSgpIHt9XG4uaG9vay1pbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0taG92ZXIoKSB7fVxuLmhvb2staW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLW9uY2xpY2soKSB7fVxuLmhvb2staW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLWFjdGl2ZSgpIHt9XG5cbi5ob29rLWludmVyc2UoKSB3aGVuIChAaW50ZXJuYWwtc3VibmF2LXBpbGwtaXRlbS1tb2RlID0gZ2xvdykgYW5kIG5vdCAoQGludGVybmFsLWludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1nbG93LWdyYWRpZW50ID0gficnKSB7XG5cbiAgICAudWstc3VibmF2LXBpbGwgPiAqID4gOmZpcnN0LWNoaWxkOjpiZWZvcmUgeyBiYWNrZ3JvdW5kLWltYWdlOiBAaW50ZXJuYWwtaW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLWdsb3ctZ3JhZGllbnQ7IH1cblxufVxuLmhvb2staW52ZXJzZSgpIHdoZW4gKEBpbnRlcm5hbC1zdWJuYXYtcGlsbC1pdGVtLW1vZGUgPSBnbG93KSB7XG5cbiAgICAudWstc3VibmF2LXBpbGwgPiAqID4gOmZpcnN0LWNoaWxkOjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0tYmFja2dyb3VuZDtcbiAgICAgICAgLmhvb2staW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtKCk7XG4gICAgfVxuXG4gICAgLnVrLXN1Ym5hdi1waWxsID4gKiA+IGE6aG92ZXI6OmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogQGludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1ob3Zlci1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLWhvdmVyKCk7XG4gICAgfVxuXG4gICAgLnVrLXN1Ym5hdi1waWxsID4gLnVrLWFjdGl2ZSA+IGE6OmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1hY3RpdmUtYmFja2dyb3VuZDtcbiAgICAgICAgLmhvb2staW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLWFjdGl2ZSgpO1xuICAgIH1cblxufVxuXG4uaG9vay1pbnZlcnNlLXN1Ym5hdi1pdGVtLWRpc2FibGVkKCkge31cbiIsIi8vXG4vLyBDb21wb25lbnQ6IFN1Ym5hdlxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBzdWJuYXYtaXRlbS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZm9udC1zaXplO1xuQHN1Ym5hdi1pdGVtLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktZm9udC1mYW1pbHk7XG5Ac3VibmF2LWl0ZW0tZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1mb250LXdlaWdodDtcbkBzdWJuYXYtaXRlbS10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LXRleHQtdHJhbnNmb3JtO1xuQHN1Ym5hdi1pdGVtLWxldHRlci1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktbGV0dGVyLXNwYWNpbmc7XG5Ac3VibmF2LWl0ZW0tZm9udC1zdHlsZTogICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1mb250LXN0eWxlO1xuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXN1Ym5hdigpIHt9XG5cbi5ob29rLXN1Ym5hdi1pdGVtKCkgeyBmb250LXNpemU6IEBzdWJuYXYtaXRlbS1mb250LXNpemU7IH1cblxuLmhvb2stc3VibmF2LWl0ZW0oKSB3aGVuIG5vdCAoQHN1Ym5hdi1pdGVtLWZvbnQtZmFtaWx5ID0gaW5oZXJpdCkge1xuICAgIGZvbnQtZmFtaWx5OiBAc3VibmF2LWl0ZW0tZm9udC1mYW1pbHk7XG59XG5cbi5ob29rLXN1Ym5hdi1pdGVtKCkgd2hlbiBub3QgKEBzdWJuYXYtaXRlbS1mb250LXdlaWdodCA9IGluaGVyaXQpIHtcbiAgICBmb250LXdlaWdodDogQHN1Ym5hdi1pdGVtLWZvbnQtd2VpZ2h0O1xufVxuXG4uaG9vay1zdWJuYXYtaXRlbSgpIHdoZW4gbm90IChAc3VibmF2LWl0ZW0tdGV4dC10cmFuc2Zvcm0gPSBpbmhlcml0KSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IEBzdWJuYXYtaXRlbS10ZXh0LXRyYW5zZm9ybTtcbn1cblxuLmhvb2stc3VibmF2LWl0ZW0oKSB3aGVuIG5vdCAoQHN1Ym5hdi1pdGVtLWxldHRlci1zcGFjaW5nID0gaW5oZXJpdCkge1xuICAgIGxldHRlci1zcGFjaW5nOiBAc3VibmF2LWl0ZW0tbGV0dGVyLXNwYWNpbmc7XG59XG5cbi5ob29rLXN1Ym5hdi1pdGVtKCkgd2hlbiBub3QgKEBzdWJuYXYtaXRlbS1mb250LXN0eWxlID0gaW5oZXJpdCkge1xuICAgIGZvbnQtc3R5bGU6IEBzdWJuYXYtaXRlbS1mb250LXN0eWxlO1xufVxuXG4uaG9vay1zdWJuYXYtaXRlbS1ob3ZlcigpIHt9XG5cbi5ob29rLXN1Ym5hdi1pdGVtLWFjdGl2ZSgpIHt9XG5cblxuLy8gRGl2aWRlciBtb2RpZmllclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXN1Ym5hdi1kaXZpZGVyKCkge31cblxuXG4vLyBQaWxsIG1vZGlmaWVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stc3VibmF2LXBpbGwtaXRlbSgpIHt9XG5cbi5ob29rLXN1Ym5hdi1waWxsLWl0ZW0taG92ZXIoKSB7fVxuXG4uaG9vay1zdWJuYXYtcGlsbC1pdGVtLW9uY2xpY2soKSB7fVxuXG4uaG9vay1zdWJuYXYtcGlsbC1pdGVtLWFjdGl2ZSgpIHt9XG5cblxuLy8gRGlzYWJsZWRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1zdWJuYXYtaXRlbS1kaXNhYmxlZCgpIHt9XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXN1Ym5hdi1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2staW52ZXJzZS1zdWJuYXYtaXRlbSgpIHt9XG4uaG9vay1pbnZlcnNlLXN1Ym5hdi1pdGVtLWhvdmVyKCkge31cbi5ob29rLWludmVyc2Utc3VibmF2LWl0ZW0tYWN0aXZlKCkge31cblxuLmhvb2staW52ZXJzZS1zdWJuYXYtZGl2aWRlcigpIHt9XG5cbi5ob29rLWludmVyc2Utc3VibmF2LXBpbGwtaXRlbSgpIHt9XG4uaG9vay1pbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0taG92ZXIoKSB7fVxuLmhvb2staW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLW9uY2xpY2soKSB7fVxuLmhvb2staW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtLWFjdGl2ZSgpIHt9XG5cbi5ob29rLWludmVyc2Utc3VibmF2LWl0ZW0tZGlzYWJsZWQoKSB7fVxuIiwiLy9cbi8vIENvbXBvbmVudDogU3VibmF2XG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIE5ld1xuLy9cblxuQHN1Ym5hdi1waWxsLWl0ZW0tYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgMDtcblxuXG4vLyBDb21wb25lbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1zdWJuYXYoKSB7fVxuXG4uaG9vay1zdWJuYXYtaXRlbSgpIHt9XG5cbi5ob29rLXN1Ym5hdi1pdGVtLWhvdmVyKCkge31cblxuLmhvb2stc3VibmF2LWl0ZW0tYWN0aXZlKCkge31cblxuXG4vLyBEaXZpZGVyIG1vZGlmaWVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stc3VibmF2LWRpdmlkZXIoKSB7fVxuXG5cbi8vIFBpbGwgbW9kaWZpZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1zdWJuYXYtcGlsbC1pdGVtKCkgd2hlbiBub3QgKEBzdWJuYXYtcGlsbC1pdGVtLWJvcmRlci1yYWRpdXMgPSAwKSB7XG4gICAgYm9yZGVyLXJhZGl1czogQHN1Ym5hdi1waWxsLWl0ZW0tYm9yZGVyLXJhZGl1cztcbn1cblxuLmhvb2stc3VibmF2LXBpbGwtaXRlbS1ob3ZlcigpIHt9XG5cbi5ob29rLXN1Ym5hdi1waWxsLWl0ZW0tb25jbGljaygpIHt9XG5cbi5ob29rLXN1Ym5hdi1waWxsLWl0ZW0tYWN0aXZlKCkge31cblxuXG4vLyBEaXNhYmxlZFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXN1Ym5hdi1pdGVtLWRpc2FibGVkKCkge31cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stc3VibmF2LW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1pbnZlcnNlLXN1Ym5hdi1pdGVtKCkge31cbi5ob29rLWludmVyc2Utc3VibmF2LWl0ZW0taG92ZXIoKSB7fVxuLmhvb2staW52ZXJzZS1zdWJuYXYtaXRlbS1hY3RpdmUoKSB7fVxuXG4uaG9vay1pbnZlcnNlLXN1Ym5hdi1kaXZpZGVyKCkge31cblxuLmhvb2staW52ZXJzZS1zdWJuYXYtcGlsbC1pdGVtKCkge31cbi5ob29rLWludmVyc2Utc3VibmF2LXBpbGwtaXRlbS1ob3ZlcigpIHt9XG4uaG9vay1pbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0tb25jbGljaygpIHt9XG4uaG9vay1pbnZlcnNlLXN1Ym5hdi1waWxsLWl0ZW0tYWN0aXZlKCkge31cblxuLmhvb2staW52ZXJzZS1zdWJuYXYtaXRlbS1kaXNhYmxlZCgpIHt9XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIEJyZWFkY3J1bWJcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBhIGJyZWFkY3J1bWIgbmF2aWdhdGlvblxuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWJyZWFkY3J1bWJgXG4vL1xuLy8gU3RhdGVzOiAgICAgICAgICBgdWstZGlzYWJsZWRgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGJyZWFkY3J1bWItaXRlbS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc21hbGwtZm9udC1zaXplO1xuQGJyZWFkY3J1bWItaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtY29sb3I7XG5AYnJlYWRjcnVtYi1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1jb2xvcjtcbkBicmVhZGNydW1iLWl0ZW0taG92ZXItdGV4dC1kZWNvcmF0aW9uOiAgICAgICAgICAgICBub25lO1xuQGJyZWFkY3J1bWItaXRlbS1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtY29sb3I7XG5cbkBicmVhZGNydW1iLWRpdmlkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIi9cIjtcbkBicmVhZGNydW1iLWRpdmlkZXItbWFyZ2luLWhvcml6b250YWw6ICAgICAgICAgICAgICAyMHB4O1xuQGJyZWFkY3J1bWItZGl2aWRlci1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgIEBicmVhZGNydW1iLWl0ZW0tZm9udC1zaXplO1xuQGJyZWFkY3J1bWItZGl2aWRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtY29sb3I7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEJyZWFkY3J1bWJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogUmVzZXQgbGlzdFxuICovXG5cbi51ay1icmVhZGNydW1iIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgLmhvb2stYnJlYWRjcnVtYigpO1xufVxuXG4vKlxuICogMS4gRG9lc24ndCBnZW5lcmF0ZSBhbnkgYm94IGFuZCByZXBsYWNlZCBieSBjaGlsZCBib3hlc1xuICovXG5cbi51ay1icmVhZGNydW1iID4gKiB7IGRpc3BsYXk6IGNvbnRlbnRzOyB9XG5cblxuLyogSXRlbXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstYnJlYWRjcnVtYiA+ICogPiAqIHtcbiAgICBmb250LXNpemU6IEBicmVhZGNydW1iLWl0ZW0tZm9udC1zaXplO1xuICAgIGNvbG9yOiBAYnJlYWRjcnVtYi1pdGVtLWNvbG9yO1xuICAgIC5ob29rLWJyZWFkY3J1bWItaXRlbSgpO1xufVxuXG4vKiBIb3ZlciAqL1xuLnVrLWJyZWFkY3J1bWIgPiAqID4gOmhvdmVyIHtcbiAgICBjb2xvcjogQGJyZWFkY3J1bWItaXRlbS1ob3Zlci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IEBicmVhZGNydW1iLWl0ZW0taG92ZXItdGV4dC1kZWNvcmF0aW9uO1xuICAgIC5ob29rLWJyZWFkY3J1bWItaXRlbS1ob3ZlcigpO1xufVxuXG4vKiBEaXNhYmxlZCAqL1xuLnVrLWJyZWFkY3J1bWIgPiAudWstZGlzYWJsZWQgPiAqIHtcbiAgICAuaG9vay1icmVhZGNydW1iLWl0ZW0tZGlzYWJsZWQoKTtcbn1cblxuLyogQWN0aXZlICovXG4udWstYnJlYWRjcnVtYiA+IDpsYXN0LWNoaWxkID4gc3Bhbixcbi51ay1icmVhZGNydW1iID4gOmxhc3QtY2hpbGQgPiBhOm5vdChbaHJlZl0pIHtcbiAgICBjb2xvcjogQGJyZWFkY3J1bWItaXRlbS1hY3RpdmUtY29sb3I7XG4gICAgLmhvb2stYnJlYWRjcnVtYi1pdGVtLWFjdGl2ZSgpO1xufVxuXG4vKlxuICogRGl2aWRlclxuICogYG50aC1jaGlsZGAgbWFrZXMgaXQgYWxzbyB3b3JrIHdpdGhvdXQgSlMgaWYgaXQncyBvbmx5IG9uZSByb3dcbiAqIDEuIFJlbW92ZSBzcGFjZSBiZXR3ZWVuIGlubGluZSBibG9jayBlbGVtZW50cy5cbiAqIDIuIFN0eWxlXG4gKi9cblxuLnVrLWJyZWFkY3J1bWIgPiA6bnRoLWNoaWxkKG4rMik6bm90KC51ay1maXJzdC1jb2x1bW4pOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IEBicmVhZGNydW1iLWRpdmlkZXI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIC8qIDEgKi9cbiAgICBtYXJnaW46IDAgQGJyZWFkY3J1bWItZGl2aWRlci1tYXJnaW4taG9yaXpvbnRhbCAwIH4nY2FsYyhAe2JyZWFkY3J1bWItZGl2aWRlci1tYXJnaW4taG9yaXpvbnRhbH0gLSA0cHgpJztcbiAgICAvKiAyICovXG4gICAgZm9udC1zaXplOiBAYnJlYWRjcnVtYi1kaXZpZGVyLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogQGJyZWFkY3J1bWItZGl2aWRlci1jb2xvcjtcbiAgICAuaG9vay1icmVhZGNydW1iLWRpdmlkZXIoKTtcbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWJyZWFkY3J1bWItbWlzYygpO1xuXG4uaG9vay1icmVhZGNydW1iKCkge31cbi5ob29rLWJyZWFkY3J1bWItaXRlbSgpIHt9XG4uaG9vay1icmVhZGNydW1iLWl0ZW0taG92ZXIoKSB7fVxuLmhvb2stYnJlYWRjcnVtYi1pdGVtLWRpc2FibGVkKCkge31cbi5ob29rLWJyZWFkY3J1bWItaXRlbS1hY3RpdmUoKSB7fVxuLmhvb2stYnJlYWRjcnVtYi1kaXZpZGVyKCkge31cbi5ob29rLWJyZWFkY3J1bWItbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbnZlcnNlLWJyZWFkY3J1bWItaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yO1xuQGludmVyc2UtYnJlYWRjcnVtYi1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtY29sb3I7XG5AaW52ZXJzZS1icmVhZGNydW1iLWl0ZW0tYWN0aXZlLWNvbG9yOiAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1jb2xvcjtcbkBpbnZlcnNlLWJyZWFkY3J1bWItZGl2aWRlci1jb2xvcjogICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yO1xuXG4uaG9vay1pbnZlcnNlKCkge1xuXG4gICAgLnVrLWJyZWFkY3J1bWIgPiAqID4gKiB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1icmVhZGNydW1iLWl0ZW0tY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtYnJlYWRjcnVtYi1pdGVtKCk7XG4gICAgfVxuXG4gICAgLnVrLWJyZWFkY3J1bWIgPiAqID4gOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLWJyZWFkY3J1bWItaXRlbS1ob3Zlci1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1icmVhZGNydW1iLWl0ZW0taG92ZXIoKTtcbiAgICB9XG5cblxuICAgIC51ay1icmVhZGNydW1iID4gLnVrLWRpc2FibGVkID4gKiB7XG4gICAgICAgIC5ob29rLWludmVyc2UtYnJlYWRjcnVtYi1pdGVtLWRpc2FibGVkKCk7XG4gICAgfVxuXG4gICAgLnVrLWJyZWFkY3J1bWIgPiA6bGFzdC1jaGlsZCA+ICoge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtYnJlYWRjcnVtYi1pdGVtLWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1icmVhZGNydW1iLWl0ZW0tYWN0aXZlKCk7XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBEaXZpZGVyXG4gICAgLy9cblxuICAgIC51ay1icmVhZGNydW1iID4gOm50aC1jaGlsZChuKzIpOm5vdCgudWstZmlyc3QtY29sdW1uKTo6YmVmb3JlIHtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLWJyZWFkY3J1bWItZGl2aWRlci1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1icmVhZGNydW1iLWRpdmlkZXIoKTtcbiAgICB9XG5cbn1cblxuLmhvb2staW52ZXJzZS1icmVhZGNydW1iLWl0ZW0oKSB7fVxuLmhvb2staW52ZXJzZS1icmVhZGNydW1iLWl0ZW0taG92ZXIoKSB7fVxuLmhvb2staW52ZXJzZS1icmVhZGNydW1iLWl0ZW0tZGlzYWJsZWQoKSB7fVxuLmhvb2staW52ZXJzZS1icmVhZGNydW1iLWl0ZW0tYWN0aXZlKCkge31cbi5ob29rLWludmVyc2UtYnJlYWRjcnVtYi1kaXZpZGVyKCkge31cbiIsIi8vXG4vLyBDb21wb25lbnQ6IEJyZWFkY3J1bWJcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gTmV3XG4vL1xuXG5AYnJlYWRjcnVtYi1pdGVtLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktZm9udC1mYW1pbHk7XG5AYnJlYWRjcnVtYi1pdGVtLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktZm9udC13ZWlnaHQ7XG5AYnJlYWRjcnVtYi1pdGVtLXRleHQtdHJhbnNmb3JtOiAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktdGV4dC10cmFuc2Zvcm07XG5AYnJlYWRjcnVtYi1pdGVtLWxldHRlci1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktbGV0dGVyLXNwYWNpbmc7XG5AYnJlYWRjcnVtYi1pdGVtLWZvbnQtc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktZm9udC1zdHlsZTtcblxuQGJyZWFkY3J1bWItaXRlbS1kaXNhYmxlZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgIEBicmVhZGNydW1iLWl0ZW0tY29sb3I7XG5cblxuLy8gQ29tcG9uZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYnJlYWRjcnVtYigpIHt9XG5cblxuLy8gSXRlbXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1icmVhZGNydW1iLWl0ZW0oKSB7fVxuXG4uaG9vay1icmVhZGNydW1iLWl0ZW0oKSB3aGVuIG5vdCAoQGJyZWFkY3J1bWItaXRlbS1mb250LWZhbWlseSA9IGluaGVyaXQpIHtcbiAgICBmb250LWZhbWlseTogQGJyZWFkY3J1bWItaXRlbS1mb250LWZhbWlseTtcbn1cblxuLmhvb2stYnJlYWRjcnVtYi1pdGVtKCkgd2hlbiBub3QgKEBicmVhZGNydW1iLWl0ZW0tZm9udC13ZWlnaHQgPSBpbmhlcml0KSB7XG4gICAgZm9udC13ZWlnaHQ6IEBicmVhZGNydW1iLWl0ZW0tZm9udC13ZWlnaHQ7XG59XG5cbi5ob29rLWJyZWFkY3J1bWItaXRlbSgpIHdoZW4gbm90IChAYnJlYWRjcnVtYi1pdGVtLXRleHQtdHJhbnNmb3JtID0gaW5oZXJpdCkge1xuICAgIHRleHQtdHJhbnNmb3JtOiBAYnJlYWRjcnVtYi1pdGVtLXRleHQtdHJhbnNmb3JtO1xufVxuXG4uaG9vay1icmVhZGNydW1iLWl0ZW0oKSB3aGVuIG5vdCAoQGJyZWFkY3J1bWItaXRlbS1sZXR0ZXItc3BhY2luZyA9IGluaGVyaXQpIHtcbiAgICBsZXR0ZXItc3BhY2luZzogQGJyZWFkY3J1bWItaXRlbS1sZXR0ZXItc3BhY2luZztcbn1cblxuLmhvb2stYnJlYWRjcnVtYi1pdGVtKCkgd2hlbiBub3QgKEBicmVhZGNydW1iLWl0ZW0tZm9udC1zdHlsZSA9IGluaGVyaXQpIHtcbiAgICBmb250LXN0eWxlOiBAYnJlYWRjcnVtYi1pdGVtLWZvbnQtc3R5bGU7XG59XG5cbi5ob29rLWJyZWFkY3J1bWItaXRlbS1ob3ZlcigpIHt9XG5cbi5ob29rLWJyZWFkY3J1bWItaXRlbS1kaXNhYmxlZCgpIHsgY29sb3I6IEBicmVhZGNydW1iLWl0ZW0tZGlzYWJsZWQtY29sb3I7IH1cblxuLmhvb2stYnJlYWRjcnVtYi1pdGVtLWFjdGl2ZSgpIHt9XG5cbi5ob29rLWJyZWFkY3J1bWItZGl2aWRlcigpIHt9XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWJyZWFkY3J1bWItbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbnZlcnNlLWJyZWFkY3J1bWItaXRlbS1kaXNhYmxlZC1jb2xvcjogICAgICAgQGludmVyc2UtYnJlYWRjcnVtYi1pdGVtLWNvbG9yO1xuXG4uaG9vay1pbnZlcnNlLWJyZWFkY3J1bWItaXRlbSgpIHt9XG4uaG9vay1pbnZlcnNlLWJyZWFkY3J1bWItaXRlbS1ob3ZlcigpIHt9XG4uaG9vay1pbnZlcnNlLWJyZWFkY3J1bWItaXRlbS1kaXNhYmxlZCgpIHsgY29sb3I6IEBpbnZlcnNlLWJyZWFkY3J1bWItaXRlbS1kaXNhYmxlZC1jb2xvcjsgfVxuLmhvb2staW52ZXJzZS1icmVhZGNydW1iLWl0ZW0tYWN0aXZlKCkge31cblxuLmhvb2staW52ZXJzZS1icmVhZGNydW1iLWRpdmlkZXIoKSB7fSIsIi8vIE5hbWU6ICAgICAgICAgICAgUGFnaW5hdGlvblxuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gY3JlYXRlIGEgcGFnZSBuYXZpZ2F0aW9uXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstcGFnaW5hdGlvbmBcbi8vXG4vLyBBZG9wdGVkOiAgICAgICAgIGB1ay1wYWdpbmF0aW9uLW5leHRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wYWdpbmF0aW9uLXByZXZpb3VzYFxuLy9cbi8vIFN0YXRlczogICAgICAgICAgYHVrLWFjdGl2ZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWRpc2FibGVkYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBwYWdpbmF0aW9uLW1hcmdpbi1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgIDA7XG5cbkBwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgIDVweDtcbkBwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgIDEwcHg7XG5AcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWNvbG9yO1xuQHBhZ2luYXRpb24taXRlbS1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgQGdsb2JhbC1jb2xvcjtcbkBwYWdpbmF0aW9uLWl0ZW0taG92ZXItdGV4dC1kZWNvcmF0aW9uOiAgICAgICAgIG5vbmU7XG5AcGFnaW5hdGlvbi1pdGVtLWFjdGl2ZS1jb2xvcjogICAgICAgICAgICAgICAgICBAZ2xvYmFsLWNvbG9yO1xuQHBhZ2luYXRpb24taXRlbS1kaXNhYmxlZC1jb2xvcjogICAgICAgICAgICAgICAgQGdsb2JhbC1tdXRlZC1jb2xvcjtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogUGFnaW5hdGlvblxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBBbGxvdyBpdGVtcyB0byB3cmFwIGludG8gdGhlIG5leHQgbGluZVxuICogMi4gR3V0dGVyXG4gKiAzLiBSZXNldCBsaXN0XG4gKi9cblxuLnVrLXBhZ2luYXRpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLyogMSAqL1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAvKiAyICovXG4gICAgbWFyZ2luLWxlZnQ6IC1AcGFnaW5hdGlvbi1tYXJnaW4taG9yaXpvbnRhbDtcbiAgICAvKiAzICovXG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIC5ob29rLXBhZ2luYXRpb24oKTtcbn1cblxuLypcbiAqIDEuIFNwYWNlIGlzIGFsbG9jYXRlZCBzb2xlbHkgYmFzZWQgb24gY29udGVudCBkaW1lbnNpb25zOiAwIDAgYXV0b1xuICogMi4gR3V0dGVyXG4gKiAzLiBDcmVhdGUgcG9zaXRpb24gY29udGV4dCBmb3IgZHJvcGRvd25zXG4gKi9cblxuLnVrLXBhZ2luYXRpb24gPiAqIHtcbiAgICAvKiAxICovXG4gICAgZmxleDogbm9uZTtcbiAgICAvKiAyICovXG4gICAgcGFkZGluZy1sZWZ0OiBAcGFnaW5hdGlvbi1tYXJnaW4taG9yaXpvbnRhbDtcbiAgICAvKiAzICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5cbi8qIEl0ZW1zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFByZXZlbnQgZ2FwIGlmIGNoaWxkIGVsZW1lbnQgaXMgYGlubGluZS1ibG9ja2AsIGUuZy4gYW4gaWNvblxuICogMi4gU3R5bGVcbiAqL1xuXG4udWstcGFnaW5hdGlvbiA+ICogPiAqIHtcbiAgICAvKiAxICovXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgLyogMiAqL1xuICAgIHBhZGRpbmc6IEBwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZy12ZXJ0aWNhbCBAcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBjb2xvcjogQHBhZ2luYXRpb24taXRlbS1jb2xvcjtcbiAgICAuaG9vay1wYWdpbmF0aW9uLWl0ZW0oKTtcbn1cblxuLyogSG92ZXIgKi9cbi51ay1wYWdpbmF0aW9uID4gKiA+IDpob3ZlciB7XG4gICAgY29sb3I6IEBwYWdpbmF0aW9uLWl0ZW0taG92ZXItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBAcGFnaW5hdGlvbi1pdGVtLWhvdmVyLXRleHQtZGVjb3JhdGlvbjtcbiAgICAuaG9vay1wYWdpbmF0aW9uLWl0ZW0taG92ZXIoKTtcbn1cblxuLyogQWN0aXZlICovXG4udWstcGFnaW5hdGlvbiA+IC51ay1hY3RpdmUgPiAqIHtcbiAgICBjb2xvcjogQHBhZ2luYXRpb24taXRlbS1hY3RpdmUtY29sb3I7XG4gICAgLmhvb2stcGFnaW5hdGlvbi1pdGVtLWFjdGl2ZSgpO1xufVxuXG4vKiBEaXNhYmxlZCAqL1xuLnVrLXBhZ2luYXRpb24gPiAudWstZGlzYWJsZWQgPiAqIHtcbiAgICBjb2xvcjogQHBhZ2luYXRpb24taXRlbS1kaXNhYmxlZC1jb2xvcjtcbiAgICAuaG9vay1wYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQoKTtcbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXBhZ2luYXRpb24tbWlzYygpO1xuXG4uaG9vay1wYWdpbmF0aW9uKCkge31cbi5ob29rLXBhZ2luYXRpb24taXRlbSgpIHt9XG4uaG9vay1wYWdpbmF0aW9uLWl0ZW0taG92ZXIoKSB7fVxuLmhvb2stcGFnaW5hdGlvbi1pdGVtLWFjdGl2ZSgpIHt9XG4uaG9vay1wYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQoKSB7fVxuLmhvb2stcGFnaW5hdGlvbi1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGludmVyc2UtcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3I7XG5AaW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0taG92ZXItY29sb3I6ICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1jb2xvcjtcbkBpbnZlcnNlLXBhZ2luYXRpb24taXRlbS1hY3RpdmUtY29sb3I6ICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWNvbG9yO1xuQGludmVyc2UtcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkLWNvbG9yOiAgICAgICBAaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3I7XG5cbi5ob29rLWludmVyc2UoKSB7XG5cbiAgICAudWstcGFnaW5hdGlvbiA+ICogPiAqIHtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLXBhZ2luYXRpb24taXRlbS1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0oKTtcbiAgICB9XG5cbiAgICAudWstcGFnaW5hdGlvbiA+ICogPiA6aG92ZXIge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtcGFnaW5hdGlvbi1pdGVtLWhvdmVyLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLXBhZ2luYXRpb24taXRlbS1ob3ZlcigpO1xuICAgIH1cblxuICAgIC51ay1wYWdpbmF0aW9uID4gLnVrLWFjdGl2ZSA+ICoge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtcGFnaW5hdGlvbi1pdGVtLWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0tYWN0aXZlKCk7XG4gICAgfVxuXG4gICAgLnVrLXBhZ2luYXRpb24gPiAudWstZGlzYWJsZWQgPiAqIHtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLXBhZ2luYXRpb24taXRlbS1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQoKTtcbiAgICB9XG5cbn1cblxuLmhvb2staW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0oKSB7fVxuLmhvb2staW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0taG92ZXIoKSB7fVxuLmhvb2staW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0tYWN0aXZlKCkge31cbi5ob29rLWludmVyc2UtcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkKCkge31cbiIsIi8vXG4vLyBDb21wb25lbnQ6IFBhZ2luYXRpb25cbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gTmV3XG4vL1xuXG5AcGFnaW5hdGlvbi1pdGVtLXRyYW5zaXRpb24tZHVyYXRpb246ICAgICAgICAgICAwLjFzO1xuXG5AcGFnaW5hdGlvbi1pdGVtLW1pbi13aWR0aDogICAgICAgICAgICAgICAgICAgICAwO1xuQHBhZ2luYXRpb24taXRlbS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgQGdsb2JhbC1saW5lLWhlaWdodDtcbkBwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuQHBhZ2luYXRpb24taXRlbS1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5AcGFnaW5hdGlvbi1pdGVtLWFjdGl2ZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICB0cmFuc3BhcmVudDtcbkBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQtYmFja2dyb3VuZDogICAgICAgICAgIHRyYW5zcGFyZW50O1xuXG5AaW50ZXJuYWwtcGFnaW5hdGlvbi1pdGVtLW1vZGU6ICAgICAgICAgICAgICAgICB+Jyc7IC8vIGZsaWNrZXIsIGdsb3dcblxuQGludGVybmFsLXBhZ2luYXRpb24taXRlbS1nbG93LWdyYWRpZW50OiAgICAgICAgficnO1xuQGludGVybmFsLXBhZ2luYXRpb24taXRlbS1nbG93LWZpbHRlcjogICAgICAgICAgficnO1xuQGludGVybmFsLXBhZ2luYXRpb24taXRlbS1ob3Zlci1nbG93LWZpbHRlcjogICAgficnO1xuQGludGVybmFsLXBhZ2luYXRpb24taXRlbS1nbG93LW9wYWNpdHk6ICAgICAgICAgMTtcbkBpbnRlcm5hbC1wYWdpbmF0aW9uLWl0ZW0taG92ZXItZ2xvdy1vcGFjaXR5OiAgIDE7XG5AaW50ZXJuYWwtcGFnaW5hdGlvbi1pdGVtLWFjdGl2ZS1nbG93LW9wYWNpdHk6ICAxO1xuXG5AcGFnaW5hdGlvbi1pdGVtLW5leHQtcHJldmlvdXMtY29sb3I6ICAgICAgICAgICBpbmhlcml0O1xuQHBhZ2luYXRpb24taXRlbS1uZXh0LXByZXZpb3VzLWhvdmVyLWNvbG9yOiAgICAgaW5oZXJpdDtcblxuQGludGVybmFsLXBhZ2luYXRpb24taXRlbS1uZXh0LXByZXZpb3VzLW1vZGU6ICAgficnOyAvLyBhbmltYXRlXG5cblxuLy8gQ29tcG9uZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stcGFnaW5hdGlvbigpIHt9XG5cblxuLy8gSXRlbXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1wYWdpbmF0aW9uLWl0ZW0oKSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtaW4td2lkdGg6IEBwYWdpbmF0aW9uLWl0ZW0tbWluLXdpZHRoO1xuICAgIGxpbmUtaGVpZ2h0OiBAcGFnaW5hdGlvbi1pdGVtLWxpbmUtaGVpZ2h0O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBAcGFnaW5hdGlvbi1pdGVtLXRyYW5zaXRpb24tZHVyYXRpb24gZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgYm94LXNoYWRvdztcbn1cblxuLmhvb2stcGFnaW5hdGlvbi1pdGVtKCkgd2hlbiBub3QgKEBiYXNlLWxpbmstdGV4dC1kZWNvcmF0aW9uID0gbm9uZSkge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLy8gQmFja2dyb3VuZFxuLmhvb2stcGFnaW5hdGlvbi1pdGVtKCkgIHdoZW4gbm90IChAcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQgPSB0cmFuc3BhcmVudCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZDtcbn1cblxuLmhvb2stcGFnaW5hdGlvbi1pdGVtLWhvdmVyKCkgd2hlbiBub3QgKEBwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZCA9IEBwYWdpbmF0aW9uLWl0ZW0taG92ZXItYmFja2dyb3VuZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBwYWdpbmF0aW9uLWl0ZW0taG92ZXItYmFja2dyb3VuZDtcbn1cblxuLmhvb2stcGFnaW5hdGlvbi1pdGVtLWFjdGl2ZSgpIHdoZW4gbm90IChAcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQgPSBAcGFnaW5hdGlvbi1pdGVtLWFjdGl2ZS1iYWNrZ3JvdW5kKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQHBhZ2luYXRpb24taXRlbS1hY3RpdmUtYmFja2dyb3VuZDtcbn1cblxuLmhvb2stcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkKCkgd2hlbiBub3QgKEBwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZCA9IEBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQtYmFja2dyb3VuZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBwYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQtYmFja2dyb3VuZDtcbn1cblxuLy9cbi8vIEZsaWNrZXJcbi8vXG5cbi5ob29rLXBhZ2luYXRpb24taXRlbS1ob3ZlcigpIHdoZW4gKEBpbnRlcm5hbC1wYWdpbmF0aW9uLWl0ZW0tbW9kZSA9IGZsaWNrZXIpIHtcbiAgICBhbmltYXRpb246IHVrLWZsaWNrZXIgMC4ycyBlYXNlIGJvdGg7XG59XG5cbi8vXG4vLyBHbG93XG4vL1xuXG4uaG9vay1wYWdpbmF0aW9uLWl0ZW0oKSB3aGVuIChAaW50ZXJuYWwtcGFnaW5hdGlvbi1pdGVtLW1vZGUgPSBnbG93KSB7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgLy8gRml4IFNhZmFyaSBmbGlja2VyaW5nXG4gICAgICAgIHdpbGwtY2hhbmdlOiBmaWx0ZXI7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogQGludGVybmFsLXBhZ2luYXRpb24taXRlbS1nbG93LWdyYWRpZW50O1xuICAgICAgICBmaWx0ZXI6IEBpbnRlcm5hbC1wYWdpbmF0aW9uLWl0ZW0tZ2xvdy1maWx0ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IEBwYWdpbmF0aW9uLWl0ZW0tdHJhbnNpdGlvbi1kdXJhdGlvbiBlYXNlLWluLW91dDtcbiAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgZmlsdGVyO1xuICAgIH1cblxufVxuXG4uaG9vay1wYWdpbmF0aW9uLWl0ZW0oKSB3aGVuIChAaW50ZXJuYWwtcGFnaW5hdGlvbi1pdGVtLW1vZGUgPSBnbG93KSBhbmQgbm90IChAcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXMgPSAwKSB7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIgeyBib3JkZXItcmFkaXVzOiBAcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXM7IH1cblxufVxuXG4uaG9vay1wYWdpbmF0aW9uLWl0ZW0oKSB3aGVuIChAaW50ZXJuYWwtcGFnaW5hdGlvbi1pdGVtLW1vZGUgPSBnbG93KSBhbmQgbm90IChAaW50ZXJuYWwtcGFnaW5hdGlvbi1pdGVtLWdsb3ctb3BhY2l0eSA9IDEpIHtcblxuICAgICY6OmJlZm9yZSB7IG9wYWNpdHk6IEBpbnRlcm5hbC1wYWdpbmF0aW9uLWl0ZW0tZ2xvdy1vcGFjaXR5OyB9XG5cbn1cblxuLmhvb2stcGFnaW5hdGlvbi1pdGVtLWhvdmVyKCkgd2hlbiAoQGludGVybmFsLXBhZ2luYXRpb24taXRlbS1tb2RlID0gZ2xvdykgYW5kIG5vdCAoQGludGVybmFsLXBhZ2luYXRpb24taXRlbS1ob3Zlci1nbG93LWZpbHRlciA9IH4nJykge1xuXG4gICAgJjo6YmVmb3JlIHsgZmlsdGVyOiBAaW50ZXJuYWwtcGFnaW5hdGlvbi1pdGVtLWhvdmVyLWdsb3ctZmlsdGVyOyB9XG5cbn1cblxuLmhvb2stcGFnaW5hdGlvbi1pdGVtLWhvdmVyKCkgd2hlbiAoQGludGVybmFsLXBhZ2luYXRpb24taXRlbS1tb2RlID0gZ2xvdykgYW5kIG5vdCAoQGludGVybmFsLXBhZ2luYXRpb24taXRlbS1ob3Zlci1nbG93LW9wYWNpdHkgPSBAaW50ZXJuYWwtcGFnaW5hdGlvbi1pdGVtLWdsb3ctb3BhY2l0eSkge1xuXG4gICAgJjo6YmVmb3JlIHsgb3BhY2l0eTogQGludGVybmFsLXBhZ2luYXRpb24taXRlbS1ob3Zlci1nbG93LW9wYWNpdHk7IH1cblxufVxuXG4uaG9vay1wYWdpbmF0aW9uLWl0ZW0tYWN0aXZlKCkgd2hlbiAoQGludGVybmFsLXBhZ2luYXRpb24taXRlbS1tb2RlID0gZ2xvdykgYW5kIG5vdCAoQGludGVybmFsLXBhZ2luYXRpb24taXRlbS1hY3RpdmUtZ2xvdy1vcGFjaXR5ID0gQGludGVybmFsLXBhZ2luYXRpb24taXRlbS1nbG93LW9wYWNpdHkpIHtcblxuICAgICY6OmJlZm9yZSB7IG9wYWNpdHk6IEBpbnRlcm5hbC1wYWdpbmF0aW9uLWl0ZW0tYWN0aXZlLWdsb3ctb3BhY2l0eTsgfVxuXG59XG5cbi5ob29rLWJ1dHRvbi1taXNjKCkgd2hlbiAoQGludGVybmFsLXBhZ2luYXRpb24taXRlbS1tb2RlID0gZ2xvdykge1xuXG4gICAgLnVrLXBhZ2luYXRpb24gPiAqID4gKjpub3QoLnVrLWhhY2spIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG59XG5cbi51ay1wYWdpbmF0aW9uID4gKiA+ICo6OmFmdGVyOmV4dGVuZCgudWstcGFnaW5hdGlvbiA+ICogPiAqKSB3aGVuIChAaW50ZXJuYWwtcGFnaW5hdGlvbi1pdGVtLW1vZGUgPSBnbG93KSB7fVxuLnVrLXBhZ2luYXRpb24gPiAqID4gOmhvdmVyOjphZnRlcjpleHRlbmQoLnVrLXBhZ2luYXRpb24gPiAqID4gOmhvdmVyKSB3aGVuIChAaW50ZXJuYWwtcGFnaW5hdGlvbi1pdGVtLW1vZGUgPSBnbG93KSB7fVxuLnVrLXBhZ2luYXRpb24gPiAudWstYWN0aXZlID4gKjo6YWZ0ZXI6ZXh0ZW5kKC51ay1wYWdpbmF0aW9uID4gLnVrLWFjdGl2ZSA+ICopIHdoZW4gKEBpbnRlcm5hbC1wYWdpbmF0aW9uLWl0ZW0tbW9kZSA9IGdsb3cpIHt9XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIE5leHQgUHJldmlvdXMgTW9kZVxuLmhvb2stcGFnaW5hdGlvbi1taXNjKCkgd2hlbiAoQGludGVybmFsLXBhZ2luYXRpb24taXRlbS1uZXh0LXByZXZpb3VzLW1vZGUgPSBhbmltYXRlKSB7XG5cbiAgICA6aG92ZXIgPiAudWstcGFnaW5hdGlvbi1uZXh0IHsgYW5pbWF0aW9uOiB1ay1zbGlkZS1yaWdodCAwLjNzIHJldmVyc2UsIHVrLXNsaWRlLWxlZnQgMC4ycyAwLjNzOyB9XG4gICAgOmhvdmVyID4gLnVrLXBhZ2luYXRpb24tcHJldmlvdXMgeyBhbmltYXRpb246IHVrLXNsaWRlLWxlZnQgMC4zcyByZXZlcnNlLCB1ay1zbGlkZS1yaWdodCAwLjJzIDAuM3M7IH1cblxufVxuXG4uaG9vay1wYWdpbmF0aW9uLW1pc2MoKSB3aGVuIG5vdCAoQHBhZ2luYXRpb24taXRlbS1uZXh0LXByZXZpb3VzLWNvbG9yID0gaW5oZXJpdCkge1xuXG4gICAgLnVrLXBhZ2luYXRpb24tbmV4dCxcbiAgICAudWstcGFnaW5hdGlvbi1wcmV2aW91cyB7IGNvbG9yOiBAcGFnaW5hdGlvbi1pdGVtLW5leHQtcHJldmlvdXMtY29sb3I7IH1cblxufVxuXG4uaG9vay1wYWdpbmF0aW9uLW1pc2MoKSB3aGVuIG5vdCAoQHBhZ2luYXRpb24taXRlbS1uZXh0LXByZXZpb3VzLWhvdmVyLWNvbG9yID0gaW5oZXJpdCkge1xuXG4gICAgOmhvdmVyID4gLnVrLXBhZ2luYXRpb24tbmV4dCxcbiAgICA6aG92ZXIgPiAudWstcGFnaW5hdGlvbi1wcmV2aW91cyB7IGNvbG9yOiBAcGFnaW5hdGlvbi1pdGVtLW5leHQtcHJldmlvdXMtaG92ZXItY29sb3I7IH1cblxufVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuQGludmVyc2UtcGFnaW5hdGlvbi1pdGVtLWhvdmVyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcbkBpbnZlcnNlLXBhZ2luYXRpb24taXRlbS1hY3RpdmUtYmFja2dyb3VuZDogICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5AaW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0tZGlzYWJsZWQtYmFja2dyb3VuZDogICAgICAgICAgIHRyYW5zcGFyZW50O1xuXG5AaW50ZXJuYWwtaW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0tZ2xvdy1ncmFkaWVudDogICAgICAgIH4nJztcblxuQGludmVyc2UtcGFnaW5hdGlvbi1pdGVtLW5leHQtcHJldmlvdXMtY29sb3I6ICAgICAgICAgICBpbmhlcml0O1xuQGludmVyc2UtcGFnaW5hdGlvbi1pdGVtLW5leHQtcHJldmlvdXMtaG92ZXItY29sb3I6ICAgICBpbmhlcml0O1xuXG4uaG9vay1pbnZlcnNlLXBhZ2luYXRpb24taXRlbSgpIHdoZW4gbm90IChAaW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZCA9IHRyYW5zcGFyZW50KSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQ7XG59XG4uaG9vay1pbnZlcnNlLXBhZ2luYXRpb24taXRlbS1ob3ZlcigpIHdoZW4gbm90IChAaW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZCA9IEBpbnZlcnNlLXBhZ2luYXRpb24taXRlbS1ob3Zlci1iYWNrZ3JvdW5kKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtcGFnaW5hdGlvbi1pdGVtLWhvdmVyLWJhY2tncm91bmQ7XG59XG4uaG9vay1pbnZlcnNlLXBhZ2luYXRpb24taXRlbS1hY3RpdmUoKSB3aGVuIG5vdCAoQGludmVyc2UtcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQgPSBAaW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0tYWN0aXZlLWJhY2tncm91bmQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0tYWN0aXZlLWJhY2tncm91bmQ7XG59XG4uaG9vay1pbnZlcnNlLXBhZ2luYXRpb24taXRlbS1kaXNhYmxlZCgpIHdoZW4gbm90IChAaW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZCA9IEBpbnZlcnNlLXBhZ2luYXRpb24taXRlbS1kaXNhYmxlZC1iYWNrZ3JvdW5kKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkLWJhY2tncm91bmQ7XG59XG5cbi5ob29rLWludmVyc2UoKSB3aGVuIChAaW50ZXJuYWwtcGFnaW5hdGlvbi1pdGVtLW1vZGUgPSBnbG93KSBhbmQgbm90IChAaW50ZXJuYWwtaW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0tZ2xvdy1ncmFkaWVudCA9IH4nJykge1xuXG4gICAgLnVrLXBhZ2luYXRpb24gPiAqID4gKjo6YmVmb3JlIHsgYmFja2dyb3VuZC1pbWFnZTogQGludGVybmFsLWludmVyc2UtcGFnaW5hdGlvbi1pdGVtLWdsb3ctZ3JhZGllbnQ7IH1cblxufVxuLmhvb2staW52ZXJzZSgpIHdoZW4gKEBpbnRlcm5hbC1wYWdpbmF0aW9uLWl0ZW0tbW9kZSA9IGdsb3cpIHtcblxuICAgIC51ay1wYWdpbmF0aW9uID4gKiA+ICo6OmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQ7XG4gICAgICAgIC5ob29rLWludmVyc2UtcGFnaW5hdGlvbi1pdGVtKCk7XG4gICAgfVxuXG4gICAgLnVrLXBhZ2luYXRpb24gPiAqID4gKjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0taG92ZXItYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLXBhZ2luYXRpb24taXRlbS1ob3Zlci1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0taG92ZXIoKTtcbiAgICB9XG5cbiAgICAudWstcGFnaW5hdGlvbiA+IC51ay1hY3RpdmUgPiAqOjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLXBhZ2luYXRpb24taXRlbS1hY3RpdmUtYmFja2dyb3VuZDtcbiAgICAgICAgLmhvb2staW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0tYWN0aXZlKCk7XG4gICAgfVxuXG59XG5cbi5ob29rLWludmVyc2UoKSB3aGVuIG5vdCAoQGludmVyc2UtcGFnaW5hdGlvbi1pdGVtLW5leHQtcHJldmlvdXMtY29sb3IgPSBpbmhlcml0KSB7XG5cbiAgICAudWstcGFnaW5hdGlvbi1uZXh0LFxuICAgIC51ay1wYWdpbmF0aW9uLXByZXZpb3VzIHsgY29sb3I6IEBpbnZlcnNlLXBhZ2luYXRpb24taXRlbS1uZXh0LXByZXZpb3VzLWNvbG9yOyB9XG5cbn1cblxuLmhvb2staW52ZXJzZSgpIHdoZW4gbm90IChAaW52ZXJzZS1wYWdpbmF0aW9uLWl0ZW0tbmV4dC1wcmV2aW91cy1ob3Zlci1jb2xvciA9IGluaGVyaXQpIHtcblxuICAgIDpob3ZlciA+IC51ay1wYWdpbmF0aW9uLW5leHQsXG4gICAgOmhvdmVyID4gLnVrLXBhZ2luYXRpb24tcHJldmlvdXMgeyBjb2xvcjogQGludmVyc2UtcGFnaW5hdGlvbi1pdGVtLW5leHQtcHJldmlvdXMtaG92ZXItY29sb3I7IH1cblxufVxuIiwiLy9cbi8vIENvbXBvbmVudDogUGFnaW5hdGlvblxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBwYWdpbmF0aW9uLWl0ZW0tZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZm9udC1zaXplO1xuQHBhZ2luYXRpb24taXRlbS1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktZm9udC1mYW1pbHk7XG5AcGFnaW5hdGlvbi1pdGVtLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1mb250LXdlaWdodDtcbkBwYWdpbmF0aW9uLWl0ZW0tdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LXRleHQtdHJhbnNmb3JtO1xuQHBhZ2luYXRpb24taXRlbS1sZXR0ZXItc3BhY2luZzogICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktbGV0dGVyLXNwYWNpbmc7XG5AcGFnaW5hdGlvbi1pdGVtLWZvbnQtc3R5bGU6ICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1mb250LXN0eWxlO1xuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXBhZ2luYXRpb24oKSB7fVxuXG5cbi8vIEl0ZW1zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stcGFnaW5hdGlvbi1pdGVtKCkgeyBmb250LXNpemU6IEBwYWdpbmF0aW9uLWl0ZW0tZm9udC1zaXplOyB9XG5cbi5ob29rLXBhZ2luYXRpb24taXRlbSgpIHdoZW4gbm90IChAcGFnaW5hdGlvbi1pdGVtLWZvbnQtZmFtaWx5ID0gaW5oZXJpdCkge1xuICAgIGZvbnQtZmFtaWx5OiBAcGFnaW5hdGlvbi1pdGVtLWZvbnQtZmFtaWx5O1xufVxuXG4uaG9vay1wYWdpbmF0aW9uLWl0ZW0oKSB3aGVuIG5vdCAoQHBhZ2luYXRpb24taXRlbS1mb250LXdlaWdodCA9IGluaGVyaXQpIHtcbiAgICBmb250LXdlaWdodDogQHBhZ2luYXRpb24taXRlbS1mb250LXdlaWdodDtcbn1cblxuLmhvb2stcGFnaW5hdGlvbi1pdGVtKCkgd2hlbiBub3QgKEBwYWdpbmF0aW9uLWl0ZW0tdGV4dC10cmFuc2Zvcm0gPSBpbmhlcml0KSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IEBwYWdpbmF0aW9uLWl0ZW0tdGV4dC10cmFuc2Zvcm07XG59XG5cbi5ob29rLXBhZ2luYXRpb24taXRlbSgpIHdoZW4gbm90IChAcGFnaW5hdGlvbi1pdGVtLWxldHRlci1zcGFjaW5nID0gaW5oZXJpdCkge1xuICAgIGxldHRlci1zcGFjaW5nOiBAcGFnaW5hdGlvbi1pdGVtLWxldHRlci1zcGFjaW5nO1xufVxuXG4uaG9vay1wYWdpbmF0aW9uLWl0ZW0oKSB3aGVuIG5vdCAoQHBhZ2luYXRpb24taXRlbS1mb250LXN0eWxlID0gaW5oZXJpdCkge1xuICAgIGZvbnQtc3R5bGU6IEBwYWdpbmF0aW9uLWl0ZW0tZm9udC1zdHlsZTtcbn1cblxuLmhvb2stcGFnaW5hdGlvbi1pdGVtLWhvdmVyKCkge31cblxuLmhvb2stcGFnaW5hdGlvbi1pdGVtLWFjdGl2ZSgpIHt9XG5cbi5ob29rLXBhZ2luYXRpb24taXRlbS1kaXNhYmxlZCgpIHt9XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXBhZ2luYXRpb24tbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWludmVyc2UtcGFnaW5hdGlvbi1pdGVtKCkge31cbi5ob29rLWludmVyc2UtcGFnaW5hdGlvbi1pdGVtLWhvdmVyKCkge31cbi5ob29rLWludmVyc2UtcGFnaW5hdGlvbi1pdGVtLWFjdGl2ZSgpIHt9XG4uaG9vay1pbnZlcnNlLXBhZ2luYXRpb24taXRlbS1kaXNhYmxlZCgpIHt9IiwiLy9cbi8vIENvbXBvbmVudDogUGFnaW5hdGlvblxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgIDA7XG5cblxuLy8gQ29tcG9uZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stcGFnaW5hdGlvbigpIHt9XG5cblxuLy8gSXRlbXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1wYWdpbmF0aW9uLWl0ZW0oKSB3aGVuIG5vdCAoQHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzID0gMCkge1xuICAgIGJvcmRlci1yYWRpdXM6IEBwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1cztcbn1cblxuLmhvb2stcGFnaW5hdGlvbi1pdGVtLWhvdmVyKCkge31cblxuLmhvb2stcGFnaW5hdGlvbi1pdGVtLWFjdGl2ZSgpIHt9XG5cbi5ob29rLXBhZ2luYXRpb24taXRlbS1kaXNhYmxlZCgpIHt9XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXBhZ2luYXRpb24tbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWludmVyc2UtcGFnaW5hdGlvbi1pdGVtKCkge31cbi5ob29rLWludmVyc2UtcGFnaW5hdGlvbi1pdGVtLWhvdmVyKCkge31cbi5ob29rLWludmVyc2UtcGFnaW5hdGlvbi1pdGVtLWFjdGl2ZSgpIHt9XG4uaG9vay1pbnZlcnNlLXBhZ2luYXRpb24taXRlbS1kaXNhYmxlZCgpIHt9IiwiLy8gTmFtZTogICAgICAgICAgICBUYWJcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBhIHRhYmJlZCBuYXZpZ2F0aW9uXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstdGFiYFxuLy9cbi8vIE1vZGlmaWVyczogICAgICAgYHVrLXRhYi1ib3R0b21gXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10YWItbGVmdGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRhYi1yaWdodGBcbi8vXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1hY3RpdmVgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1kaXNhYmxlZGBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AdGFiLW1hcmdpbi1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgIDIwcHg7XG5cbkB0YWItaXRlbS1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAgICAgMTBweDtcbkB0YWItaXRlbS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAgNXB4O1xuQHRhYi1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWNvbG9yO1xuQHRhYi1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWNvbG9yO1xuQHRhYi1pdGVtLWhvdmVyLXRleHQtZGVjb3JhdGlvbjogICAgICAgICBub25lO1xuQHRhYi1pdGVtLWFjdGl2ZS1jb2xvcjogICAgICAgICAgICAgICAgICBAZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQHRhYi1pdGVtLWRpc2FibGVkLWNvbG9yOiAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWNvbG9yO1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBUYWJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gQWxsb3cgaXRlbXMgdG8gd3JhcCBpbnRvIHRoZSBuZXh0IGxpbmVcbiAqIDIuIEd1dHRlclxuICogMy4gUmVzZXQgbGlzdFxuICovXG5cbi51ay10YWIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLyogMSAqL1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAvKiAyICovXG4gICAgbWFyZ2luLWxlZnQ6IC1AdGFiLW1hcmdpbi1ob3Jpem9udGFsO1xuICAgIC8qIDMgKi9cbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgLmhvb2stdGFiKCk7XG59XG5cbi8qXG4gKiAxLiBTcGFjZSBpcyBhbGxvY2F0ZWQgc29sZWx5IGJhc2VkIG9uIGNvbnRlbnQgZGltZW5zaW9uczogMCAwIGF1dG9cbiAqIDIuIEd1dHRlclxuICogMy4gQ3JlYXRlIHBvc2l0aW9uIGNvbnRleHQgZm9yIGRyb3Bkb3duc1xuICovXG5cbi51ay10YWIgPiAqIHtcbiAgICAvKiAxICovXG4gICAgZmxleDogbm9uZTtcbiAgICAvKiAyICovXG4gICAgcGFkZGluZy1sZWZ0OiBAdGFiLW1hcmdpbi1ob3Jpem9udGFsO1xuICAgIC8qIDMgKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cblxuLyogSXRlbXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogSXRlbXMgbXVzdCB0YXJnZXQgYGFgIGVsZW1lbnRzIHRvIGV4Y2x1ZGUgb3RoZXIgZWxlbWVudHMgKGUuZy4gZHJvcGRvd25zKVxuICogMS4gQ2VudGVyIGNvbnRlbnQgdmVydGljYWxseSwgZS5nLiBhbiBpY29uXG4gKiAyLiBJbWl0YXRlIHdoaXRlIHNwYWNlIGdhcCB3aGVuIHVzaW5nIGZsZXhib3hcbiAqIDMuIENlbnRlciBjb250ZW50IGlmIGEgd2lkdGggaXMgc2V0XG4gKiA0LiBTdHlsZVxuICovXG5cbi51ay10YWIgPiAqID4gYSB7XG4gICAgLyogMSAqL1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAvKiAyICovXG4gICAgY29sdW1uLWdhcDogMC4yNWVtO1xuICAgIC8qIDMgKi9cbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAvKiA0ICovXG4gICAgcGFkZGluZzogQHRhYi1pdGVtLXBhZGRpbmctdmVydGljYWwgQHRhYi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBjb2xvcjogQHRhYi1pdGVtLWNvbG9yO1xuICAgIC5ob29rLXRhYi1pdGVtKCk7XG59XG5cbi8qIEhvdmVyICovXG4udWstdGFiID4gKiA+IGE6aG92ZXIge1xuICAgIGNvbG9yOiBAdGFiLWl0ZW0taG92ZXItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBAdGFiLWl0ZW0taG92ZXItdGV4dC1kZWNvcmF0aW9uO1xuICAgIC5ob29rLXRhYi1pdGVtLWhvdmVyKCk7XG59XG5cbi8qIEFjdGl2ZSAqL1xuLnVrLXRhYiA+IC51ay1hY3RpdmUgPiBhIHtcbiAgICBjb2xvcjogQHRhYi1pdGVtLWFjdGl2ZS1jb2xvcjtcbiAgICAuaG9vay10YWItaXRlbS1hY3RpdmUoKTtcbn1cblxuLyogRGlzYWJsZWQgKi9cbi51ay10YWIgPiAudWstZGlzYWJsZWQgPiBhIHtcbiAgICBjb2xvcjogQHRhYi1pdGVtLWRpc2FibGVkLWNvbG9yO1xuICAgIC5ob29rLXRhYi1pdGVtLWRpc2FibGVkKCk7XG59XG5cblxuLyogUG9zaXRpb24gbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQm90dG9tXG4gKi9cblxuLnVrLXRhYi1ib3R0b20ge1xuICAgIC5ob29rLXRhYi1ib3R0b20oKTtcbn1cblxuLnVrLXRhYi1ib3R0b20gPiAqID4gYSB7XG4gICAgLmhvb2stdGFiLWJvdHRvbS1pdGVtKCk7XG59XG5cbi8qXG4gKiBMZWZ0ICsgUmlnaHRcbiAqIDEuIFJlc2V0IEd1dHRlclxuICovXG5cbi51ay10YWItbGVmdCxcbi51ay10YWItcmlnaHQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLyogMSAqL1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4vKiAxICovXG4udWstdGFiLWxlZnQgPiAqLFxuLnVrLXRhYi1yaWdodCA+ICogeyBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLnVrLXRhYi1sZWZ0IHtcbiAgICAuaG9vay10YWItbGVmdCgpO1xufVxuXG4udWstdGFiLXJpZ2h0IHtcbiAgICAuaG9vay10YWItcmlnaHQoKTtcbn1cblxuLnVrLXRhYi1sZWZ0ID4gKiA+IGEge1xuICAgIGp1c3RpZnktY29udGVudDogbGVmdDtcbiAgICAuaG9vay10YWItbGVmdC1pdGVtKCk7XG59XG5cbi51ay10YWItcmlnaHQgPiAqID4gYSB7XG4gICAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xuICAgIC5ob29rLXRhYi1yaWdodC1pdGVtKCk7XG59XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay10YWItbWlzYygpO1xuXG4uaG9vay10YWIoKSB7fVxuLmhvb2stdGFiLWl0ZW0oKSB7fVxuLmhvb2stdGFiLWl0ZW0taG92ZXIoKSB7fVxuLmhvb2stdGFiLWl0ZW0tYWN0aXZlKCkge31cbi5ob29rLXRhYi1pdGVtLWRpc2FibGVkKCkge31cbi5ob29rLXRhYi1ib3R0b20oKSB7fVxuLmhvb2stdGFiLWJvdHRvbS1pdGVtKCkge31cbi5ob29rLXRhYi1sZWZ0KCkge31cbi5ob29rLXRhYi1sZWZ0LWl0ZW0oKSB7fVxuLmhvb2stdGFiLXJpZ2h0KCkge31cbi5ob29rLXRhYi1yaWdodC1pdGVtKCkge31cbi5ob29rLXRhYi1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGludmVyc2UtdGFiLWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3I7XG5AaW52ZXJzZS10YWItaXRlbS1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1jb2xvcjtcbkBpbnZlcnNlLXRhYi1pdGVtLWFjdGl2ZS1jb2xvcjogICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQGludmVyc2UtdGFiLWl0ZW0tZGlzYWJsZWQtY29sb3I6ICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3I7XG5cbi5ob29rLWludmVyc2UoKSB7XG5cbiAgICAudWstdGFiIHtcbiAgICAgICAgLmhvb2staW52ZXJzZS10YWIoKTtcbiAgICB9XG5cbiAgICAudWstdGFiID4gKiA+IGEge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtdGFiLWl0ZW0tY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtdGFiLWl0ZW0oKTtcbiAgICB9XG5cbiAgICAudWstdGFiID4gKiA+IGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtdGFiLWl0ZW0taG92ZXItY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtdGFiLWl0ZW0taG92ZXIoKTtcbiAgICB9XG5cbiAgICAudWstdGFiID4gLnVrLWFjdGl2ZSA+IGEge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtdGFiLWl0ZW0tYWN0aXZlLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLXRhYi1pdGVtLWFjdGl2ZSgpO1xuICAgIH1cblxuICAgIC51ay10YWIgPiAudWstZGlzYWJsZWQgPiBhIHtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLXRhYi1pdGVtLWRpc2FibGVkLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLXRhYi1pdGVtLWRpc2FibGVkKCk7XG4gICAgfVxuXG59XG5cbi5ob29rLWludmVyc2UtdGFiKCkge31cbi5ob29rLWludmVyc2UtdGFiLWl0ZW0oKSB7fVxuLmhvb2staW52ZXJzZS10YWItaXRlbS1ob3ZlcigpIHt9XG4uaG9vay1pbnZlcnNlLXRhYi1pdGVtLWFjdGl2ZSgpIHt9XG4uaG9vay1pbnZlcnNlLXRhYi1pdGVtLWRpc2FibGVkKCkge31cbiIsIi8vXG4vLyBDb21wb25lbnQ6IFRhYlxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkB0YWItYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWJvcmRlci13aWR0aDtcbkB0YWItYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWJvcmRlcjtcblxuQHRhYi1pdGVtLWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtYm9yZGVyLXdpZHRoO1xuXG5AdGFiLWl0ZW0taG92ZXItYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5AdGFiLWl0ZW0tYWN0aXZlLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQ7XG5cbkBpbnRlcm5hbC10YWItaXRlbS1ob3Zlci1ib3JkZXItZ3JhZGllbnQ6ICAgICAgICAgICB+Jyc7XG5AaW50ZXJuYWwtdGFiLWl0ZW0tYWN0aXZlLWJvcmRlci1ncmFkaWVudDogICAgICAgICAgficnO1xuXG5AaW50ZXJuYWwtdGFiLWl0ZW0tYWN0aXZlLWJvcmRlci1pbWFnZS1zbGljZTogICAgICAgficnO1xuQGludGVybmFsLXRhYi1pdGVtLWFjdGl2ZS1ib3JkZXItaW1hZ2U6ICAgICAgICAgICAgIH4nJztcbkBpbnRlcm5hbC10YWItdmVydGljYWwtaXRlbS1hY3RpdmUtYm9yZGVyLWltYWdlOiAgICB+Jyc7XG5cblxuLy8gQ29tcG9uZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stdGFiKCkgd2hlbiBub3QgKEB0YWItYm9yZGVyLXdpZHRoID0gMCkge1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IEB0YWItbWFyZ2luLWhvcml6b250YWw7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiBAdGFiLWJvcmRlci13aWR0aCBzb2xpZCBAdGFiLWJvcmRlcjtcbiAgICB9XG5cbn1cblxuLy8gSXRlbXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBOZWVkIHRvIHJlbW92ZSBkZWZhdWx0IGBib3JkZXItd2lkdGhgIG9mIDRweCBpZiBgYm9yZGVyLWltYWdlYCBpcyB1c2VkIGluIFNhZmFyaSBhbmQgRWRnZVxuLy8gTm90ZTogQSBgdHJhbnNwYXJlbnRgIGJvcmRlciBjb2xvciBvdmVycmlkZXMgdGhlIGJvcmRlciBpbWFnZSBpbiBTYWZhcmlcbi5ob29rLXRhYi1pdGVtKCkgd2hlbiBub3QgKEB0YWItaXRlbS1ib3JkZXItd2lkdGggPSAwKSBhbmQgbm90IChAaW50ZXJuYWwtdGFiLWl0ZW0taG92ZXItYm9yZGVyLWdyYWRpZW50ID0gficnKSxcbiAgICAgICAgICAgICAgICAgICAgICBub3QgKEB0YWItaXRlbS1ib3JkZXItd2lkdGggPSAwKSBhbmQgbm90IChAaW50ZXJuYWwtdGFiLWl0ZW0tYWN0aXZlLWJvcmRlci1ncmFkaWVudCA9IH4nJykge1xuICAgIGJvcmRlci13aWR0aDogMDtcbn1cblxuLmhvb2stdGFiLWl0ZW0oKSB3aGVuIG5vdCAoQHRhYi1pdGVtLWJvcmRlci13aWR0aCA9IDApIHtcbiAgICBib3JkZXItYm90dG9tOiBAdGFiLWl0ZW0tYm9yZGVyLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4uaG9vay10YWItaXRlbS1ob3ZlcigpIHdoZW4gbm90IChAdGFiLWl0ZW0tYm9yZGVyLXdpZHRoID0gMCkge1xuICAgIGJvcmRlci1jb2xvcjogQHRhYi1pdGVtLWhvdmVyLWJvcmRlcjtcbn1cblxuLmhvb2stdGFiLWl0ZW0tYWN0aXZlKCkgd2hlbiBub3QgKEB0YWItaXRlbS1ib3JkZXItd2lkdGggPSAwKSB7XG4gICAgYm9yZGVyLWNvbG9yOiBAdGFiLWl0ZW0tYWN0aXZlLWJvcmRlcjtcbn1cblxuLy8gR3JhZGllbnRcbi5ob29rLXRhYi1pdGVtKCkge31cblxuLmhvb2stdGFiLWl0ZW0taG92ZXIoKSB3aGVuIG5vdCAoQHRhYi1pdGVtLWJvcmRlci13aWR0aCA9IDApIGFuZCBub3QgKEBpbnRlcm5hbC10YWItaXRlbS1ob3Zlci1ib3JkZXItZ3JhZGllbnQgPSB+JycpIHtcbiAgICBib3JkZXItaW1hZ2U6IEBpbnRlcm5hbC10YWItaXRlbS1ob3Zlci1ib3JkZXItZ3JhZGllbnQgMTtcbn1cblxuLmhvb2stdGFiLWl0ZW0tYWN0aXZlKCkgd2hlbiBub3QgKEB0YWItaXRlbS1ib3JkZXItd2lkdGggPSAwKSBhbmQgbm90IChAaW50ZXJuYWwtdGFiLWl0ZW0tYWN0aXZlLWJvcmRlci1ncmFkaWVudCA9IH4nJykge1xuICAgIGJvcmRlci1pbWFnZTogQGludGVybmFsLXRhYi1pdGVtLWFjdGl2ZS1ib3JkZXItZ3JhZGllbnQgMTtcbn1cblxuLy8gSW1hZ2Vcbi5ob29rLXRhYi1pdGVtKCkge31cblxuLmhvb2stdGFiLWl0ZW0taG92ZXIoKSB7fVxuXG4uaG9vay10YWItaXRlbS1hY3RpdmUoKSB3aGVuIG5vdCAoQHRhYi1pdGVtLWJvcmRlci13aWR0aCA9IDApIGFuZCBub3QgKEBpbnRlcm5hbC10YWItaXRlbS1hY3RpdmUtYm9yZGVyLWltYWdlID0gficnKSBhbmQgKEBpbnRlcm5hbC10YWItaXRlbS1hY3RpdmUtYm9yZGVyLWdyYWRpZW50ID0gficnKSB7XG4gICAgLnN2Zy1maWxsKEBpbnRlcm5hbC10YWItaXRlbS1hY3RpdmUtYm9yZGVyLWltYWdlLCBcIiMwMDBcIiwgQHRhYi1pdGVtLWFjdGl2ZS1ib3JkZXIsIGJvcmRlci1pbWFnZS1zb3VyY2UpO1xuICAgIGJvcmRlci1pbWFnZS1zbGljZTogQGludGVybmFsLXRhYi1pdGVtLWFjdGl2ZS1ib3JkZXItaW1hZ2Utc2xpY2U7XG59XG5cbi5ob29rLXRhYi1pdGVtLWRpc2FibGVkKCkge31cblxuXG4vLyBQb3NpdGlvbiBtb2RpZmllcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay10YWItYm90dG9tKCkgd2hlbiBub3QgKEB0YWItYm9yZGVyLXdpZHRoID0gMCkge1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IGF1dG87XG4gICAgfVxuXG59XG5cbi8vIGAwYCBuZWVkZWQgZm9yIHRvIHJlc2V0IGBib3JkZXItd2lkdGhgIGlmIGBib3JkZXItaW1hZ2VgIGlzIHVzZWQgaW4gU2FmYXJpIGFuZCBFZGdlXG4uaG9vay10YWItYm90dG9tLWl0ZW0oKSB3aGVuIG5vdCAoQHRhYi1pdGVtLWJvcmRlci13aWR0aCA9IDApIHtcbiAgICBib3JkZXItdG9wOiBAdGFiLWl0ZW0tYm9yZGVyLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206IDAgbm9uZTtcbn1cblxuLmhvb2stdGFiLWxlZnQoKSB3aGVuIG5vdCAoQHRhYi1ib3JkZXItd2lkdGggPSAwKSB7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvcmRlci1sZWZ0OiBAdGFiLWJvcmRlci13aWR0aCBzb2xpZCBAdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9XG5cbn1cblxuLy8gYDBgIG5lZWRlZCBmb3IgdG8gcmVzZXQgYGJvcmRlci13aWR0aGAgaWYgYGJvcmRlci1pbWFnZWAgaXMgdXNlZCBpbiBTYWZhcmkgYW5kIEVkZ2Vcbi5ob29rLXRhYi1sZWZ0LWl0ZW0oKSB3aGVuIG5vdCAoQHRhYi1pdGVtLWJvcmRlci13aWR0aCA9IDApIHtcbiAgICBib3JkZXItcmlnaHQ6IEB0YWItaXRlbS1ib3JkZXItd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMCBub25lO1xufVxuXG4uaG9vay10YWItcmlnaHQoKSB3aGVuIG5vdCAoQHRhYi1ib3JkZXItd2lkdGggPSAwKSB7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGJvcmRlci1sZWZ0OiBAdGFiLWJvcmRlci13aWR0aCBzb2xpZCBAdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9XG5cbn1cblxuLy8gYDBgIG5lZWRlZCBmb3IgdG8gcmVzZXQgYGJvcmRlci13aWR0aGAgaWYgYGJvcmRlci1pbWFnZWAgaXMgdXNlZCBpbiBTYWZhcmkgYW5kIEVkZ2Vcbi5ob29rLXRhYi1yaWdodC1pdGVtKCkgd2hlbiBub3QgKEB0YWItaXRlbS1ib3JkZXItd2lkdGggPSAwKSB7XG4gICAgYm9yZGVyLWxlZnQ6IEB0YWItaXRlbS1ib3JkZXItd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMCBub25lO1xufVxuXG5cbi8vIE1pc2NlbGxhbmVvdXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay10YWItbWlzYygpIHt9XG5cbi8vIEltYWdlXG4uaG9vay10YWItbWlzYygpIHdoZW4gbm90IChAdGFiLWl0ZW0tYm9yZGVyLXdpZHRoID0gMCkgYW5kIG5vdCAoQGludGVybmFsLXRhYi12ZXJ0aWNhbC1pdGVtLWFjdGl2ZS1ib3JkZXItaW1hZ2UgPSB+JycpIGFuZCAoQGludGVybmFsLXRhYi1pdGVtLWFjdGl2ZS1ib3JkZXItZ3JhZGllbnQgPSB+JycpIHtcblxuICAgIC51ay10YWItbGVmdCA+IC51ay1hY3RpdmUgPiBhLFxuICAgIC51ay10YWItcmlnaHQgPiAudWstYWN0aXZlID4gYSB7XG4gICAgICAgIC5zdmctZmlsbChAaW50ZXJuYWwtdGFiLXZlcnRpY2FsLWl0ZW0tYWN0aXZlLWJvcmRlci1pbWFnZSwgXCIjMDAwXCIsIEB0YWItaXRlbS1hY3RpdmUtYm9yZGVyLCBib3JkZXItaW1hZ2Utc291cmNlKTtcbiAgICAgICAgYm9yZGVyLWltYWdlLXNsaWNlOiBAaW50ZXJuYWwtdGFiLWl0ZW0tYWN0aXZlLWJvcmRlci1pbWFnZS1zbGljZTtcbiAgICB9XG5cbn1cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGludmVyc2UtdGFiLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtYm9yZGVyO1xuXG5AaW52ZXJzZS10YWItaXRlbS1ob3Zlci1ib3JkZXI6ICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuQGludmVyc2UtdGFiLWl0ZW0tYWN0aXZlLWJvcmRlcjogICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kO1xuXG4uaG9vay1pbnZlcnNlLXRhYigpIHdoZW4gbm90IChAdGFiLWJvcmRlci13aWR0aCA9IDApIHtcblxuICAgICY6OmJlZm9yZSB7IGJvcmRlci1jb2xvcjogQGludmVyc2UtdGFiLWJvcmRlcjsgfVxuXG59XG5cbi5ob29rLWludmVyc2UtdGFiLWl0ZW0oKSB3aGVuIG5vdCAoQHRhYi1pdGVtLWJvcmRlci13aWR0aCA9IDApIGFuZCBub3QgKEBpbnRlcm5hbC10YWItaXRlbS1ob3Zlci1ib3JkZXItZ3JhZGllbnQgPSB+JycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90IChAdGFiLWl0ZW0tYm9yZGVyLXdpZHRoID0gMCkgYW5kIG5vdCAoQGludGVybmFsLXRhYi1pdGVtLWFjdGl2ZS1ib3JkZXItZ3JhZGllbnQgPSB+JycpIHtcbiAgICBib3JkZXItaW1hZ2U6IG5vbmU7XG59XG5cbi5ob29rLWludmVyc2UtdGFiLWl0ZW0taG92ZXIoKSB3aGVuIG5vdCAoQHRhYi1pdGVtLWJvcmRlci13aWR0aCA9IDApIHtcbiAgICBib3JkZXItY29sb3I6IEBpbnZlcnNlLXRhYi1pdGVtLWhvdmVyLWJvcmRlcjtcbn1cbi5ob29rLWludmVyc2UtdGFiLWl0ZW0tYWN0aXZlKCkgd2hlbiBub3QgKEB0YWItaXRlbS1ib3JkZXItd2lkdGggPSAwKSB7XG4gICAgYm9yZGVyLWNvbG9yOiBAaW52ZXJzZS10YWItaXRlbS1hY3RpdmUtYm9yZGVyO1xufVxuXG4uaG9vay1pbnZlcnNlLXRhYi1pdGVtLWFjdGl2ZSgpIHdoZW4gbm90IChAdGFiLWl0ZW0tYm9yZGVyLXdpZHRoID0gMCkgYW5kIG5vdCAoQGludGVybmFsLXRhYi1pdGVtLWFjdGl2ZS1ib3JkZXItaW1hZ2UgPSB+JycpIGFuZCAoQGludGVybmFsLXRhYi1pdGVtLWFjdGl2ZS1ib3JkZXItZ3JhZGllbnQgPSB+JycpIHtcbiAgICAuc3ZnLWZpbGwoQGludGVybmFsLXRhYi1pdGVtLWFjdGl2ZS1ib3JkZXItaW1hZ2UsIFwiIzAwMFwiLCBAaW52ZXJzZS10YWItaXRlbS1hY3RpdmUtYm9yZGVyLCBib3JkZXItaW1hZ2Utc291cmNlKTtcbn1cblxuLmhvb2staW52ZXJzZS10YWItaXRlbS1kaXNhYmxlZCgpIHt9XG5cbi5ob29rLWludmVyc2UoKSB3aGVuIG5vdCAoQHRhYi1pdGVtLWJvcmRlci13aWR0aCA9IDApIGFuZCBub3QgKEBpbnRlcm5hbC10YWItdmVydGljYWwtaXRlbS1hY3RpdmUtYm9yZGVyLWltYWdlID0gficnKSBhbmQgKEBpbnRlcm5hbC10YWItaXRlbS1hY3RpdmUtYm9yZGVyLWdyYWRpZW50ID0gficnKSB7XG5cbiAgICAudWstdGFiLWxlZnQgPiAudWstYWN0aXZlID4gYSxcbiAgICAudWstdGFiLXJpZ2h0ID4gLnVrLWFjdGl2ZSA+IGEge1xuICAgICAgICAuc3ZnLWZpbGwoQGludGVybmFsLXRhYi12ZXJ0aWNhbC1pdGVtLWFjdGl2ZS1ib3JkZXItaW1hZ2UsIFwiIzAwMFwiLCBAaW52ZXJzZS10YWItaXRlbS1hY3RpdmUtYm9yZGVyLCBib3JkZXItaW1hZ2Utc291cmNlKTtcbiAgICB9XG5cbn1cbiIsIi8vXG4vLyBDb21wb25lbnQ6IFRhYlxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkB0YWItaXRlbS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuQHRhYi1pdGVtLWhvdmVyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5AdGFiLWl0ZW0tYWN0aXZlLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcblxuQHRhYi12ZXJ0aWNhbC1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgQHRhYi1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDtcbkB0YWItdmVydGljYWwtaXRlbS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgIEB0YWItaXRlbS1wYWRkaW5nLXZlcnRpY2FsO1xuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXRhYigpIHt9XG5cblxuLy8gSXRlbXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay10YWItaXRlbSgpIHtcbiAgICB0cmFuc2l0aW9uOiAwLjFzIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXItY29sb3IsIGJveC1zaGFkb3c7XG59XG5cbi5ob29rLXRhYi1pdGVtKCkgd2hlbiBub3QgKEBiYXNlLWxpbmstdGV4dC1kZWNvcmF0aW9uID0gbm9uZSkge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLy8gQmFja2dyb3VuZFxuLmhvb2stdGFiLWl0ZW0oKSB3aGVuIG5vdCAoQHRhYi1pdGVtLWJhY2tncm91bmQgPSB0cmFuc3BhcmVudCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEB0YWItaXRlbS1iYWNrZ3JvdW5kO1xufVxuXG4uaG9vay10YWItaXRlbS1ob3ZlcigpIHdoZW4gbm90IChAdGFiLWl0ZW0tYmFja2dyb3VuZCA9IEB0YWItaXRlbS1ob3Zlci1iYWNrZ3JvdW5kKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQHRhYi1pdGVtLWhvdmVyLWJhY2tncm91bmQ7XG59XG5cbi5ob29rLXRhYi1pdGVtLWFjdGl2ZSgpIHdoZW4gbm90IChAdGFiLWl0ZW0tYmFja2dyb3VuZCA9IEB0YWItaXRlbS1hY3RpdmUtYmFja2dyb3VuZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEB0YWItaXRlbS1hY3RpdmUtYmFja2dyb3VuZDtcbn1cblxuLmhvb2stdGFiLWl0ZW0tZGlzYWJsZWQoKSB7fVxuXG5cbi8vIFBvc2l0aW9uIG1vZGlmaWVyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXRhYi1ib3R0b20oKSB7fVxuXG4uaG9vay10YWItYm90dG9tLWl0ZW0oKSB7fVxuXG4uaG9vay10YWItbGVmdCgpIHt9XG5cbi5ob29rLXRhYi1sZWZ0LWl0ZW0oKSB7IHBhZGRpbmc6IEB0YWItdmVydGljYWwtaXRlbS1wYWRkaW5nLXZlcnRpY2FsIEB0YWItdmVydGljYWwtaXRlbS1wYWRkaW5nLWhvcml6b250YWw7IH1cblxuLmhvb2stdGFiLXJpZ2h0KCkge31cblxuLmhvb2stdGFiLXJpZ2h0LWl0ZW0oKSB7IHBhZGRpbmc6IEB0YWItdmVydGljYWwtaXRlbS1wYWRkaW5nLXZlcnRpY2FsIEB0YWItdmVydGljYWwtaXRlbS1wYWRkaW5nLWhvcml6b250YWw7IH1cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stdGFiLW1pc2MoKSB7XG5cbiAgICAudWstdGFiIC51ay1kcm9wZG93biB7IG1hcmdpbi1sZWZ0OiAoQHRhYi1tYXJnaW4taG9yaXpvbnRhbCArIEB0YWItaXRlbS1wYWRkaW5nLWhvcml6b250YWwpIH1cblxufVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW52ZXJzZS10YWItaXRlbS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuQGludmVyc2UtdGFiLWl0ZW0taG92ZXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcbkBpbnZlcnNlLXRhYi1pdGVtLWFjdGl2ZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5cbi5ob29rLWludmVyc2UtdGFiKCkge31cbi5ob29rLWludmVyc2UtdGFiLWl0ZW0oKSB3aGVuIG5vdCAoQGludmVyc2UtdGFiLWl0ZW0tYmFja2dyb3VuZCA9IHRyYW5zcGFyZW50KSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtdGFiLWl0ZW0tYmFja2dyb3VuZDtcbn1cbi5ob29rLWludmVyc2UtdGFiLWl0ZW0taG92ZXIoKSB3aGVuIG5vdCAoQGludmVyc2UtdGFiLWl0ZW0tYmFja2dyb3VuZCA9IEBpbnZlcnNlLXRhYi1pdGVtLWhvdmVyLWJhY2tncm91bmQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS10YWItaXRlbS1ob3Zlci1iYWNrZ3JvdW5kO1xufVxuLmhvb2staW52ZXJzZS10YWItaXRlbS1hY3RpdmUoKSB3aGVuIG5vdCAoQGludmVyc2UtdGFiLWl0ZW0tYmFja2dyb3VuZCA9IEBpbnZlcnNlLXRhYi1pdGVtLWFjdGl2ZS1iYWNrZ3JvdW5kKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtdGFiLWl0ZW0tYWN0aXZlLWJhY2tncm91bmQ7XG59XG4uaG9vay1pbnZlcnNlLXRhYi1pdGVtLWRpc2FibGVkKCkge30iLCIvL1xuLy8gQ29tcG9uZW50OiBUYWJcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gTmV3XG4vL1xuXG5AdGFiLWl0ZW0tZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWZvbnQtc2l6ZTtcbkB0YWItaXRlbS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbGluZS1oZWlnaHQ7XG5AdGFiLWl0ZW0tZm9udC1mYW1pbHk6ICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1mb250LWZhbWlseTtcbkB0YWItaXRlbS1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0O1xuQHRhYi1pdGVtLXRleHQtdHJhbnNmb3JtOiAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktdGV4dC10cmFuc2Zvcm07XG5AdGFiLWl0ZW0tbGV0dGVyLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1sZXR0ZXItc3BhY2luZztcbkB0YWItaXRlbS1mb250LXN0eWxlOiAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtc3R5bGU7XG5cblxuLy8gQ29tcG9uZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stdGFiKCkge31cblxuLy8gSXRlbXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay10YWItaXRlbSgpIHtcbiAgICBmb250LXNpemU6IEB0YWItaXRlbS1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IEB0YWItaXRlbS1saW5lLWhlaWdodDtcbn1cblxuLmhvb2stdGFiLWl0ZW0oKSB3aGVuIG5vdCAoQHRhYi1pdGVtLWZvbnQtZmFtaWx5ID0gaW5oZXJpdCkge1xuICAgIGZvbnQtZmFtaWx5OiBAdGFiLWl0ZW0tZm9udC1mYW1pbHk7XG59XG5cbi5ob29rLXRhYi1pdGVtKCkgd2hlbiBub3QgKEB0YWItaXRlbS1mb250LXdlaWdodCA9IGluaGVyaXQpIHtcbiAgICBmb250LXdlaWdodDogQHRhYi1pdGVtLWZvbnQtd2VpZ2h0O1xufVxuXG4uaG9vay10YWItaXRlbSgpIHdoZW4gbm90IChAdGFiLWl0ZW0tdGV4dC10cmFuc2Zvcm0gPSBpbmhlcml0KSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IEB0YWItaXRlbS10ZXh0LXRyYW5zZm9ybTtcbn1cblxuLmhvb2stdGFiLWl0ZW0oKSB3aGVuIG5vdCAoQHRhYi1pdGVtLWxldHRlci1zcGFjaW5nID0gaW5oZXJpdCkge1xuICAgIGxldHRlci1zcGFjaW5nOiBAdGFiLWl0ZW0tbGV0dGVyLXNwYWNpbmc7XG59XG5cbi5ob29rLXRhYi1pdGVtKCkgd2hlbiBub3QgKEB0YWItaXRlbS1mb250LXN0eWxlID0gaW5oZXJpdCkge1xuICAgIGZvbnQtc3R5bGU6IEB0YWItaXRlbS1mb250LXN0eWxlO1xufVxuXG4uaG9vay10YWItaXRlbS1ob3ZlcigpIHt9XG5cbi5ob29rLXRhYi1pdGVtLWFjdGl2ZSgpIHt9XG5cbi5ob29rLXRhYi1pdGVtLWRpc2FibGVkKCkge31cblxuXG4vLyBQb3NpdGlvbiBtb2RpZmllcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay10YWItYm90dG9tKCkge31cblxuLmhvb2stdGFiLWJvdHRvbS1pdGVtKCkge31cblxuLmhvb2stdGFiLWxlZnQoKSB7fVxuXG4uaG9vay10YWItbGVmdC1pdGVtKCkge31cblxuLmhvb2stdGFiLXJpZ2h0KCkge31cblxuLmhvb2stdGFiLXJpZ2h0LWl0ZW0oKSB7fVxuXG5cbi8vIE1pc2NlbGxhbmVvdXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay10YWItbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWludmVyc2UtdGFiKCkge31cblxuLmhvb2staW52ZXJzZS10YWItaXRlbSgpIHt9XG4uaG9vay1pbnZlcnNlLXRhYi1pdGVtLWhvdmVyKCkge31cbi5ob29rLWludmVyc2UtdGFiLWl0ZW0tYWN0aXZlKCkge31cbi5ob29rLWludmVyc2UtdGFiLWl0ZW0tZGlzYWJsZWQoKSB7fSIsIi8vIE5hbWU6ICAgICAgICAgICAgU2xpZGVuYXZcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBwcmV2aW91cy9uZXh0IGljb24gbmF2aWdhdGlvbnNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1zbGlkZW5hdmBcbi8vXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay1zbGlkZW5hdi1jb250YWluZXJgXG4vL1xuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstc2xpZGVuYXYtcHJldmlvdXNgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1zbGlkZW5hdi1uZXh0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstc2xpZGVuYXYtbGFyZ2VgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQHNsaWRlbmF2LXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAgNXB4O1xuQHNsaWRlbmF2LXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAgMTBweDtcblxuQHNsaWRlbmF2LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFkZShAZ2xvYmFsLWNvbG9yLCA1MCUpO1xuQHNsaWRlbmF2LWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgZmFkZShAZ2xvYmFsLWNvbG9yLCA5MCUpO1xuQHNsaWRlbmF2LWFjdGl2ZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgZmFkZShAZ2xvYmFsLWNvbG9yLCA1MCUpO1xuXG5Ac2xpZGVuYXYtbGFyZ2UtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgICAgICAxMHB4O1xuQHNsaWRlbmF2LWxhcmdlLXBhZGRpbmctaG9yaXpvbnRhbDogICAgICAgICAgICAgQHNsaWRlbmF2LWxhcmdlLXBhZGRpbmctdmVydGljYWw7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFNsaWRlbmF2XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkb3B0cyBgdWstaWNvbmBcbiAqL1xuXG4udWstc2xpZGVuYXYge1xuICAgIHBhZGRpbmc6IEBzbGlkZW5hdi1wYWRkaW5nLXZlcnRpY2FsIEBzbGlkZW5hdi1wYWRkaW5nLWhvcml6b250YWw7XG4gICAgY29sb3I6IEBzbGlkZW5hdi1jb2xvcjtcbiAgICAuaG9vay1zbGlkZW5hdigpO1xufVxuXG4vKiBIb3ZlciAqL1xuLnVrLXNsaWRlbmF2OmhvdmVyIHtcbiAgICBjb2xvcjogQHNsaWRlbmF2LWhvdmVyLWNvbG9yO1xuICAgIC5ob29rLXNsaWRlbmF2LWhvdmVyKCk7XG59XG5cbi8qIE9uQ2xpY2sgKi9cbi51ay1zbGlkZW5hdjphY3RpdmUge1xuICAgIGNvbG9yOiBAc2xpZGVuYXYtYWN0aXZlLWNvbG9yO1xuICAgIC5ob29rLXNsaWRlbmF2LWFjdGl2ZSgpO1xufVxuXG5cbi8qIEljb24gbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogUHJldmlvdXNcbiAqL1xuXG4udWstc2xpZGVuYXYtcHJldmlvdXMge1xuICAgIC5ob29rLXNsaWRlbmF2LXByZXZpb3VzKCk7XG59XG5cbi8qXG4gKiBOZXh0XG4gKi9cblxuLnVrLXNsaWRlbmF2LW5leHQge1xuICAgIC5ob29rLXNsaWRlbmF2LW5leHQoKTtcbn1cblxuXG4vKiBTaXplIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXNsaWRlbmF2LWxhcmdlIHtcbiAgICBwYWRkaW5nOiBAc2xpZGVuYXYtbGFyZ2UtcGFkZGluZy12ZXJ0aWNhbCBAc2xpZGVuYXYtbGFyZ2UtcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIC5ob29rLXNsaWRlbmF2LWxhcmdlKCk7XG59XG5cblxuLyogQ29udGFpbmVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXNsaWRlbmF2LWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAuaG9vay1zbGlkZW5hdi1jb250YWluZXIoKTtcbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXNsaWRlbmF2LW1pc2MoKTtcblxuLmhvb2stc2xpZGVuYXYoKSB7fVxuLmhvb2stc2xpZGVuYXYtaG92ZXIoKSB7fVxuLmhvb2stc2xpZGVuYXYtYWN0aXZlKCkge31cbi5ob29rLXNsaWRlbmF2LXByZXZpb3VzKCkge31cbi5ob29rLXNsaWRlbmF2LW5leHQoKSB7fVxuLmhvb2stc2xpZGVuYXYtbGFyZ2UoKSB7fVxuLmhvb2stc2xpZGVuYXYtY29udGFpbmVyKCkge31cbi5ob29rLXNsaWRlbmF2LW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW52ZXJzZS1zbGlkZW5hdi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgIGZhZGUoQGludmVyc2UtZ2xvYmFsLWNvbG9yLCA3MCUpO1xuQGludmVyc2Utc2xpZGVuYXYtaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICBmYWRlKEBpbnZlcnNlLWdsb2JhbC1jb2xvciwgOTUlKTtcbkBpbnZlcnNlLXNsaWRlbmF2LWFjdGl2ZS1jb2xvcjogICAgICAgICAgICAgICAgZmFkZShAaW52ZXJzZS1nbG9iYWwtY29sb3IsIDcwJSk7XG5cbi5ob29rLWludmVyc2UoKSB7XG5cbiAgICAudWstc2xpZGVuYXYge1xuICAgICAgICBjb2xvcjogQGludmVyc2Utc2xpZGVuYXYtY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2Utc2xpZGVuYXYoKTtcbiAgICB9XG5cbiAgICAudWstc2xpZGVuYXY6aG92ZXIge1xuICAgICAgICBjb2xvcjogQGludmVyc2Utc2xpZGVuYXYtaG92ZXItY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2Utc2xpZGVuYXYtaG92ZXIoKTtcbiAgICB9XG5cbiAgICAudWstc2xpZGVuYXY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6IEBpbnZlcnNlLXNsaWRlbmF2LWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgLmhvb2staW52ZXJzZS1zbGlkZW5hdi1hY3RpdmUoKTtcbiAgICB9XG5cbn1cblxuLmhvb2staW52ZXJzZS1zbGlkZW5hdigpIHt9XG4uaG9vay1pbnZlcnNlLXNsaWRlbmF2LWhvdmVyKCkge31cbi5ob29rLWludmVyc2Utc2xpZGVuYXYtYWN0aXZlKCkge31cbiIsIi8vXG4vLyBDb21wb25lbnQ6IFNsaWRlbmF2XG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIE5ld1xuLy9cblxuQHNsaWRlbmF2LWJhY2tkcm9wLWZpbHRlcjogICAgICAgICAgICAgICAgICAgICAgficnO1xuXG5Ac2xpZGVuYXYtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcbkBzbGlkZW5hdi1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuQHNsaWRlbmF2LWFjdGl2ZS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5cbkBpbnRlcm5hbC1zbGlkZW5hdi1uZXh0LXByZXZpb3VzLW1vZGU6ICAgICAgICAgIH4nJzsgLy8gYW5pbWF0ZVxuXG5Ac2xpZGVuYXYtbWFyZ2luOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwO1xuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXNsaWRlbmF2KCkge1xuICAgIHRyYW5zaXRpb246IDAuMXMgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgYm94LXNoYWRvdztcbn1cblxuLmhvb2stc2xpZGVuYXYoKSB3aGVuIG5vdCAoQHNsaWRlbmF2LWJhY2tkcm9wLWZpbHRlciA9IH4nJykge1xuICAgIGJhY2tkcm9wLWZpbHRlcjogQHNsaWRlbmF2LWJhY2tkcm9wLWZpbHRlcjtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogQHNsaWRlbmF2LWJhY2tkcm9wLWZpbHRlcjtcbn1cblxuLy8gQmFja2dyb3VuZFxuLmhvb2stc2xpZGVuYXYoKSB3aGVuIG5vdCAoQHNsaWRlbmF2LWJhY2tncm91bmQgPSB0cmFuc3BhcmVudCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBzbGlkZW5hdi1iYWNrZ3JvdW5kO1xufVxuXG4uaG9vay1zbGlkZW5hdi1ob3ZlcigpIHdoZW4gbm90IChAc2xpZGVuYXYtYmFja2dyb3VuZCA9IEBzbGlkZW5hdi1ob3Zlci1iYWNrZ3JvdW5kKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQHNsaWRlbmF2LWhvdmVyLWJhY2tncm91bmQ7XG59XG5cbi5ob29rLXNsaWRlbmF2LWFjdGl2ZSgpIHdoZW4gbm90IChAc2xpZGVuYXYtYmFja2dyb3VuZCA9IEBzbGlkZW5hdi1hY3RpdmUtYmFja2dyb3VuZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBzbGlkZW5hdi1hY3RpdmUtYmFja2dyb3VuZDtcbn1cblxuXG4vLyBJY29uIG1vZGlmaWVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIEFuaW1hdGVcbi8vXG5cbi5ob29rLXNsaWRlbmF2KCkgd2hlbiAoQGludGVybmFsLXNsaWRlbmF2LW5leHQtcHJldmlvdXMtbW9kZSA9IGFuaW1hdGUpIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uaG9vay1zbGlkZW5hdi1wcmV2aW91cygpIHdoZW4gKEBpbnRlcm5hbC1zbGlkZW5hdi1uZXh0LXByZXZpb3VzLW1vZGUgPSBhbmltYXRlKSB7XG5cbiAgICAmOmhvdmVyIHN2ZyB7IGFuaW1hdGlvbjogdWstc2xpZGUtbGVmdCAwLjNzIHJldmVyc2UsIHVrLXNsaWRlLXJpZ2h0IDAuMnMgMC4zczsgfVxuXG59XG5cbi5ob29rLXNsaWRlbmF2LW5leHQoKSB3aGVuIChAaW50ZXJuYWwtc2xpZGVuYXYtbmV4dC1wcmV2aW91cy1tb2RlID0gYW5pbWF0ZSkge1xuXG4gICAgJjpob3ZlciBzdmcgeyBhbmltYXRpb246IHVrLXNsaWRlLXJpZ2h0IDAuM3MgcmV2ZXJzZSwgdWstc2xpZGUtbGVmdCAwLjJzIDAuM3M7IH1cblxufVxuXG5cbi8vIFNpemUgbW9kaWZpZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1zbGlkZW5hdi1sYXJnZSgpIHt9XG5cblxuLy8gQ29udGFpbmVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stc2xpZGVuYXYtY29udGFpbmVyKCkgd2hlbiBub3QgKEBzbGlkZW5hdi1tYXJnaW4gPSAwKSB7XG5cbiAgICA+IDpmaXJzdC1jaGlsZCB7IG1hcmdpbi1yaWdodDogQHNsaWRlbmF2LW1hcmdpbjsgfVxuXG59XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWljb24tbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbnZlcnNlLXNsaWRlbmF2LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5AaW52ZXJzZS1zbGlkZW5hdi1ob3Zlci1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuQGludmVyc2Utc2xpZGVuYXYtYWN0aXZlLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcblxuLmhvb2staW52ZXJzZS1zbGlkZW5hdigpIHdoZW4gbm90IChAaW52ZXJzZS1zbGlkZW5hdi1iYWNrZ3JvdW5kID0gdHJhbnNwYXJlbnQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1zbGlkZW5hdi1iYWNrZ3JvdW5kO1xufVxuLmhvb2staW52ZXJzZS1zbGlkZW5hdi1ob3ZlcigpIHdoZW4gbm90IChAaW52ZXJzZS1zbGlkZW5hdi1iYWNrZ3JvdW5kID0gQGludmVyc2Utc2xpZGVuYXYtaG92ZXItYmFja2dyb3VuZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLXNsaWRlbmF2LWhvdmVyLWJhY2tncm91bmQ7XG59XG4uaG9vay1pbnZlcnNlLXNsaWRlbmF2LWFjdGl2ZSgpIHdoZW4gbm90IChAaW52ZXJzZS1zbGlkZW5hdi1iYWNrZ3JvdW5kID0gQGludmVyc2Utc2xpZGVuYXYtYWN0aXZlLWJhY2tncm91bmQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW52ZXJzZS1zbGlkZW5hdi1hY3RpdmUtYmFja2dyb3VuZDtcbn1cbiIsIi8vXG4vLyBDb21wb25lbnQ6IFNsaWRlbmF2XG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIE5ld1xuLy9cblxuQHNsaWRlbmF2LWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICAgICAgMDtcblxuXG4vLyBDb21wb25lbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1zbGlkZW5hdigpIHdoZW4gbm90IChAc2xpZGVuYXYtYm9yZGVyLXJhZGl1cyA9IDApIHtcbiAgICBib3JkZXItcmFkaXVzOiBAc2xpZGVuYXYtYm9yZGVyLXJhZGl1cztcbn1cblxuLmhvb2stc2xpZGVuYXYtaG92ZXIoKSB7fVxuXG4uaG9vay1zbGlkZW5hdi1hY3RpdmUoKSB7fVxuXG5cbi8vIEljb24gbW9kaWZpZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1zbGlkZW5hdi1wcmV2aW91cygpIHt9XG5cbi5ob29rLXNsaWRlbmF2LW5leHQoKSB7fVxuXG5cbi8vIFNpemUgbW9kaWZpZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1zbGlkZW5hdi1sYXJnZSgpIHt9XG5cblxuLy8gQ29udGFpbmVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stc2xpZGVuYXYtY29udGFpbmVyKCkge31cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2staWNvbi1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2staW52ZXJzZS1zbGlkZW5hdigpIHt9XG4uaG9vay1pbnZlcnNlLXNsaWRlbmF2LWhvdmVyKCkge31cbi5ob29rLWludmVyc2Utc2xpZGVuYXYtYWN0aXZlKCkge30iLCIvLyBOYW1lOiAgICAgICAgICAgIERvdG5hdlxuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gY3JlYXRlIGRvdCBuYXZpZ2F0aW9uc1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWRvdG5hdmBcbi8vXG4vLyBNb2RpZmllcjogICAgICAgIGB1ay1kb3RuYXYtdmVydGljYWxgXG4vL1xuLy8gU3RhdGVzOiAgICAgICAgICBgdWstYWN0aXZlYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBkb3RuYXYtbWFyZ2luLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgICAgIDEycHg7XG5AZG90bmF2LW1hcmdpbi12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgICBAZG90bmF2LW1hcmdpbi1ob3Jpem9udGFsO1xuXG5AZG90bmF2LWl0ZW0td2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMHB4O1xuQGRvdG5hdi1pdGVtLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgQGRvdG5hdi1pdGVtLXdpZHRoO1xuQGRvdG5hdi1pdGVtLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICAgNTAlO1xuXG5AZG90bmF2LWl0ZW0tYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAgICBmYWRlKEBnbG9iYWwtY29sb3IsIDIwJSk7XG5AZG90bmF2LWl0ZW0taG92ZXItYmFja2dyb3VuZDogICAgICAgICAgICAgICAgICBmYWRlKEBnbG9iYWwtY29sb3IsIDYwJSk7XG5AZG90bmF2LWl0ZW0tb25jbGljay1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICBmYWRlKEBnbG9iYWwtY29sb3IsIDIwJSk7XG5AZG90bmF2LWl0ZW0tYWN0aXZlLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICBmYWRlKEBnbG9iYWwtY29sb3IsIDYwJSk7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IERvdG5hdlxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBBbGxvdyBpdGVtcyB0byB3cmFwIGludG8gdGhlIG5leHQgbGluZVxuICogMi4gUmVzZXQgbGlzdFxuICogMy4gR3V0dGVyXG4gKi9cblxuLnVrLWRvdG5hdiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAvKiAxICovXG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIC8qIDIgKi9cbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIC8qIDMgKi9cbiAgICBtYXJnaW4tbGVmdDogLUBkb3RuYXYtbWFyZ2luLWhvcml6b250YWw7XG4gICAgLmhvb2stZG90bmF2KCk7XG59XG5cbi8qXG4gKiAxLiBTcGFjZSBpcyBhbGxvY2F0ZWQgc29sZWx5IGJhc2VkIG9uIGNvbnRlbnQgZGltZW5zaW9uczogMCAwIGF1dG9cbiAqIDIuIEd1dHRlclxuICovXG5cbi51ay1kb3RuYXYgPiAqIHtcbiAgICAvKiAxICovXG4gICAgZmxleDogbm9uZTtcbiAgICAvKiAyICovXG4gICAgcGFkZGluZy1sZWZ0OiBAZG90bmF2LW1hcmdpbi1ob3Jpem9udGFsO1xufVxuXG5cbi8qIEl0ZW1zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEl0ZW1zXG4gKiAxLiBIaWRlIHRleHQgaWYgcHJlc2VudFxuICovXG5cbi51ay1kb3RuYXYgPiAqID4gKiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogQGRvdG5hdi1pdGVtLXdpZHRoO1xuICAgIGhlaWdodDogQGRvdG5hdi1pdGVtLWhlaWdodDtcbiAgICBib3JkZXItcmFkaXVzOiBAZG90bmF2LWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiBAZG90bmF2LWl0ZW0tYmFja2dyb3VuZDtcbiAgICAvKiAxICovXG4gICAgdGV4dC1pbmRlbnQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC5ob29rLWRvdG5hdi1pdGVtKCk7XG59XG5cbi8qIEhvdmVyICovXG4udWstZG90bmF2ID4gKiA+IDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGRvdG5hdi1pdGVtLWhvdmVyLWJhY2tncm91bmQ7XG4gICAgLmhvb2stZG90bmF2LWl0ZW0taG92ZXIoKTtcbn1cblxuLyogT25DbGljayAqL1xuLnVrLWRvdG5hdiA+ICogPiA6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAZG90bmF2LWl0ZW0tb25jbGljay1iYWNrZ3JvdW5kO1xuICAgIC5ob29rLWRvdG5hdi1pdGVtLW9uY2xpY2soKTtcbn1cblxuLyogQWN0aXZlICovXG4udWstZG90bmF2ID4gLnVrLWFjdGl2ZSA+ICoge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBkb3RuYXYtaXRlbS1hY3RpdmUtYmFja2dyb3VuZDtcbiAgICAuaG9vay1kb3RuYXYtaXRlbS1hY3RpdmUoKTtcbn1cblxuXG4vKiBNb2RpZmllcjogJ3VrLWRvdG5hdi12ZXJ0aWNhbCdcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gQ2hhbmdlIGRpcmVjdGlvblxuICogMi4gR3V0dGVyXG4gKi9cblxuLnVrLWRvdG5hdi12ZXJ0aWNhbCB7XG4gICAgLyogMSAqL1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLyogMiAqL1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi10b3A6IC1AZG90bmF2LW1hcmdpbi12ZXJ0aWNhbDtcbn1cblxuLyogMiAqL1xuLnVrLWRvdG5hdi12ZXJ0aWNhbCA+ICoge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXRvcDogQGRvdG5hdi1tYXJnaW4tdmVydGljYWw7XG59XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1kb3RuYXYtbWlzYygpO1xuXG4uaG9vay1kb3RuYXYoKSB7fVxuLmhvb2stZG90bmF2LWl0ZW0oKSB7fVxuLmhvb2stZG90bmF2LWl0ZW0taG92ZXIoKSB7fVxuLmhvb2stZG90bmF2LWl0ZW0tb25jbGljaygpIHt9XG4uaG9vay1kb3RuYXYtaXRlbS1hY3RpdmUoKSB7fVxuLmhvb2stZG90bmF2LW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW52ZXJzZS1kb3RuYXYtaXRlbS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgIGZhZGUoQGludmVyc2UtZ2xvYmFsLWNvbG9yLCA1MCUpO1xuQGludmVyc2UtZG90bmF2LWl0ZW0taG92ZXItYmFja2dyb3VuZDogICAgICAgICBmYWRlKEBpbnZlcnNlLWdsb2JhbC1jb2xvciwgOTAlKTtcbkBpbnZlcnNlLWRvdG5hdi1pdGVtLW9uY2xpY2stYmFja2dyb3VuZDogICAgICAgZmFkZShAaW52ZXJzZS1nbG9iYWwtY29sb3IsIDUwJSk7XG5AaW52ZXJzZS1kb3RuYXYtaXRlbS1hY3RpdmUtYmFja2dyb3VuZDogICAgICAgIGZhZGUoQGludmVyc2UtZ2xvYmFsLWNvbG9yLCA5MCUpO1xuXG4uaG9vay1pbnZlcnNlKCkge1xuXG4gICAgLnVrLWRvdG5hdiA+ICogPiAqIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtZG90bmF2LWl0ZW0tYmFja2dyb3VuZDtcbiAgICAgICAgLmhvb2staW52ZXJzZS1kb3RuYXYtaXRlbSgpO1xuICAgIH1cblxuICAgIC51ay1kb3RuYXYgPiAqID4gOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtZG90bmF2LWl0ZW0taG92ZXItYmFja2dyb3VuZDtcbiAgICAgICAgLmhvb2staW52ZXJzZS1kb3RuYXYtaXRlbS1ob3ZlcigpO1xuICAgIH1cblxuICAgIC51ay1kb3RuYXYgPiAqID4gOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLWRvdG5hdi1pdGVtLW9uY2xpY2stYmFja2dyb3VuZDtcbiAgICAgICAgLmhvb2staW52ZXJzZS1kb3RuYXYtaXRlbS1vbmNsaWNrKCk7XG4gICAgfVxuXG4gICAgLnVrLWRvdG5hdiA+IC51ay1hY3RpdmUgPiAqIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtZG90bmF2LWl0ZW0tYWN0aXZlLWJhY2tncm91bmQ7XG4gICAgICAgIC5ob29rLWludmVyc2UtZG90bmF2LWl0ZW0tYWN0aXZlKCk7XG4gICAgfVxuXG59XG5cbi5ob29rLWludmVyc2UtZG90bmF2LWl0ZW0oKSB7fVxuLmhvb2staW52ZXJzZS1kb3RuYXYtaXRlbS1ob3ZlcigpIHt9XG4uaG9vay1pbnZlcnNlLWRvdG5hdi1pdGVtLW9uY2xpY2soKSB7fVxuLmhvb2staW52ZXJzZS1kb3RuYXYtaXRlbS1hY3RpdmUoKSB7fVxuIiwiLy9cbi8vIENvbXBvbmVudDogRG90bmF2XG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBDb21wb25lbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1kb3RuYXYoKSB7fVxuXG4uaG9vay1kb3RuYXYtaXRlbSgpIHtcbiAgICB0cmFuc2l0aW9uOiAwLjJzIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXItY29sb3IsIGJveC1zaGFkb3c7XG59XG5cbi5ob29rLWRvdG5hdi1pdGVtLWhvdmVyKCkge31cblxuLmhvb2stZG90bmF2LWl0ZW0tb25jbGljaygpIHt9XG5cbi5ob29rLWRvdG5hdi1pdGVtLWFjdGl2ZSgpIHt9XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWRvdG5hdi1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2staW52ZXJzZS1kb3RuYXYoKSB7fVxuLmhvb2staW52ZXJzZS1kb3RuYXYtaXRlbSgpIHt9XG4uaG9vay1pbnZlcnNlLWRvdG5hdi1pdGVtLWhvdmVyKCkge31cbi5ob29rLWludmVyc2UtZG90bmF2LWl0ZW0tb25jbGljaygpIHt9XG4uaG9vay1pbnZlcnNlLWRvdG5hdi1pdGVtLWFjdGl2ZSgpIHt9IiwiLy8gTmFtZTogICAgICAgICAgICBUaHVtYm5hdlxuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gY3JlYXRlIHRodW1ibmFpbCBuYXZpZ2F0aW9uc1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLXRodW1ibmF2YFxuLy9cbi8vIE1vZGlmaWVyOiAgICAgICAgYHVrLXRodW1ibmF2LXZlcnRpY2FsYFxuLy9cbi8vIFN0YXRlczogICAgICAgICAgYHVrLWFjdGl2ZWBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AdGh1bWJuYXYtbWFyZ2luLWhvcml6b250YWw6ICAgICAgICAgICAgICAgICAgICAxNXB4O1xuQHRodW1ibmF2LW1hcmdpbi12ZXJ0aWNhbDogICAgICAgICAgICAgICAgICAgICAgQHRodW1ibmF2LW1hcmdpbi1ob3Jpem9udGFsO1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBUaHVtYm5hdlxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBBbGxvdyBpdGVtcyB0byB3cmFwIGludG8gdGhlIG5leHQgbGluZVxuICogMi4gUmVzZXQgbGlzdFxuICogMy4gR3V0dGVyXG4gKi9cblxuLnVrLXRodW1ibmF2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC8qIDEgKi9cbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgLyogMiAqL1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgLyogMyAqL1xuICAgIG1hcmdpbi1sZWZ0OiAtQHRodW1ibmF2LW1hcmdpbi1ob3Jpem9udGFsO1xuICAgIC5ob29rLXRodW1ibmF2KCk7XG59XG5cbi8qXG4gKiBTcGFjZSBpcyBhbGxvY2F0ZWQgYmFzZWQgb24gY29udGVudCBkaW1lbnNpb25zLCBidXQgc2hyaW5rczogMCAxIGF1dG9cbiAqIDEuIEd1dHRlclxuICovXG5cbi51ay10aHVtYm5hdiA+ICoge1xuICAgIC8qIDEgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IEB0aHVtYm5hdi1tYXJnaW4taG9yaXpvbnRhbDtcbn1cblxuXG4vKiBJdGVtc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBJdGVtc1xuICovXG5cbi51ay10aHVtYm5hdiA+ICogPiAqIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgLmhvb2stdGh1bWJuYXYtaXRlbSgpO1xufVxuXG4vKiBIb3ZlciAqL1xuLnVrLXRodW1ibmF2ID4gKiA+IDpob3ZlciB7XG4gICAgLmhvb2stdGh1bWJuYXYtaXRlbS1ob3ZlcigpO1xufVxuXG4vKiBBY3RpdmUgKi9cbi51ay10aHVtYm5hdiA+IC51ay1hY3RpdmUgPiAqIHtcbiAgICAuaG9vay10aHVtYm5hdi1pdGVtLWFjdGl2ZSgpO1xufVxuXG5cbi8qIE1vZGlmaWVyOiAndWstdGh1bWJuYXYtdmVydGljYWwnXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIENoYW5nZSBkaXJlY3Rpb25cbiAqIDIuIEd1dHRlclxuICovXG5cbi51ay10aHVtYm5hdi12ZXJ0aWNhbCB7XG4gICAgLyogMSAqL1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLyogMiAqL1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi10b3A6IC1AdGh1bWJuYXYtbWFyZ2luLXZlcnRpY2FsO1xufVxuXG4vKiAyICovXG4udWstdGh1bWJuYXYtdmVydGljYWwgPiAqIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy10b3A6IEB0aHVtYm5hdi1tYXJnaW4tdmVydGljYWw7XG59XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay10aHVtYm5hdi1taXNjKCk7XG5cbi5ob29rLXRodW1ibmF2KCkge31cbi5ob29rLXRodW1ibmF2LWl0ZW0oKSB7fVxuLmhvb2stdGh1bWJuYXYtaXRlbS1ob3ZlcigpIHt9XG4uaG9vay10aHVtYm5hdi1pdGVtLWFjdGl2ZSgpIHt9XG4uaG9vay10aHVtYm5hdi1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2staW52ZXJzZSgpIHtcblxuICAgIC51ay10aHVtYm5hdiA+ICogPiAqIHtcbiAgICAgICAgLmhvb2staW52ZXJzZS10aHVtYm5hdi1pdGVtKCk7XG4gICAgfVxuXG4gICAgLnVrLXRodW1ibmF2ID4gKiA+IDpob3ZlciB7XG4gICAgICAgIC5ob29rLWludmVyc2UtdGh1bWJuYXYtaXRlbS1ob3ZlcigpO1xuICAgIH1cblxuICAgIC51ay10aHVtYm5hdiA+IC51ay1hY3RpdmUgPiAqIHtcbiAgICAgICAgLmhvb2staW52ZXJzZS10aHVtYm5hdi1pdGVtLWFjdGl2ZSgpO1xuICAgIH1cblxufVxuXG4uaG9vay1pbnZlcnNlLXRodW1ibmF2LWl0ZW0oKSB7fVxuLmhvb2staW52ZXJzZS10aHVtYm5hdi1pdGVtLWhvdmVyKCkge31cbi5ob29rLWludmVyc2UtdGh1bWJuYXYtaXRlbS1hY3RpdmUoKSB7fVxuIiwiLy9cbi8vIENvbXBvbmVudDogVGh1bWJuYXZcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gTmV3XG4vL1xuXG5AdGh1bWJuYXYtaXRlbS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuNCk7XG5cbkB0aHVtYm5hdi1pdGVtLW9wYWNpdHk6ICAgICAgICAgICAgICAgICAgICAgICAgIDE7XG5AdGh1bWJuYXYtaXRlbS1ob3Zlci1vcGFjaXR5OiAgICAgICAgICAgICAgICAgICAwO1xuQHRodW1ibmF2LWl0ZW0tYWN0aXZlLW9wYWNpdHk6ICAgICAgICAgICAgICAgICAgMDtcblxuXG4vLyBDb21wb25lbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay10aHVtYm5hdigpIHt9XG5cbi5ob29rLXRodW1ibmF2LWl0ZW0oKSB7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAdGh1bWJuYXYtaXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgICBiYWNrZ3JvdW5kLW9yaWdpbjogYm9yZGVyLWJveDtcbiAgICAgICAgdHJhbnNpdGlvbjogMC4xcyBlYXNlLWluLW91dDtcbiAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgYm9yZGVyLWNvbG9yLCBib3gtc2hhZG93LCBvcGFjaXR5O1xuICAgIH1cblxufVxuXG4uaG9vay10aHVtYm5hdi1pdGVtLWhvdmVyKCkge31cblxuLmhvb2stdGh1bWJuYXYtaXRlbS1hY3RpdmUoKSB7fVxuXG4vL1xuLy8gT3BhY2l0eVxuLy9cblxuLmhvb2stdGh1bWJuYXYtaXRlbSgpIHdoZW4gbm90IChAdGh1bWJuYXYtaXRlbS1vcGFjaXR5ID0gMSkge1xuICAgICY6OmFmdGVyIHsgb3BhY2l0eTogQHRodW1ibmF2LWl0ZW0tb3BhY2l0eTsgfVxufVxuXG4uaG9vay10aHVtYm5hdi1pdGVtLWhvdmVyKCkgd2hlbiBub3QgKEB0aHVtYm5hdi1pdGVtLW9wYWNpdHkgPSBAdGh1bWJuYXYtaXRlbS1ob3Zlci1vcGFjaXR5KSB7XG4gICAgJjo6YWZ0ZXIgeyBvcGFjaXR5OiBAdGh1bWJuYXYtaXRlbS1ob3Zlci1vcGFjaXR5OyB9XG59XG5cbi5ob29rLXRodW1ibmF2LWl0ZW0tYWN0aXZlKCkgd2hlbiBub3QgKEB0aHVtYm5hdi1pdGVtLW9wYWNpdHkgPSBAdGh1bWJuYXYtaXRlbS1hY3RpdmUtb3BhY2l0eSkge1xuICAgICY6OmFmdGVyIHsgb3BhY2l0eTogQHRodW1ibmF2LWl0ZW0tYWN0aXZlLW9wYWNpdHk7IH1cbn1cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stdGh1bWJuYXYtbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbnZlcnNlLXRodW1ibmF2LWl0ZW0tYmFja2dyb3VuZDogICAgICAgICAgICByZ2JhKDAsMCwwLDAuNCk7XG5cbi5ob29rLWludmVyc2UtdGh1bWJuYXYtaXRlbSgpIHtcbiAgICAmOjphZnRlciB7IGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLXRodW1ibmF2LWl0ZW0tYmFja2dyb3VuZDsgfVxufVxuLmhvb2staW52ZXJzZS10aHVtYm5hdi1pdGVtLWhvdmVyKCkge31cbi5ob29rLWludmVyc2UtdGh1bWJuYXYtaXRlbS1hY3RpdmUoKSB7fSIsIi8vXG4vLyBDb21wb25lbnQ6IFRodW1ibmF2XG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIE5ld1xuLy9cblxuQHRodW1ibmF2LWl0ZW0tZ3JhZGllbnQ6ICAgICAgICAgICAgICAgICAgICAgICAgficnO1xuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXRodW1ibmF2KCkge31cblxuLmhvb2stdGh1bWJuYXYtaXRlbSgpIHdoZW4gbm90IChAdGh1bWJuYXYtaXRlbS1ncmFkaWVudCA9IH4nJykge1xuXG4gICAgJjo6YWZ0ZXIgeyBiYWNrZ3JvdW5kLWltYWdlOiBAdGh1bWJuYXYtaXRlbS1ncmFkaWVudDsgfVxuXG59XG5cbi5ob29rLXRodW1ibmF2LWl0ZW0taG92ZXIoKSB7fVxuXG4uaG9vay10aHVtYm5hdi1pdGVtLWFjdGl2ZSgpIHt9XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXRodW1ibmF2LW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW52ZXJzZS10aHVtYm5hdi1pdGVtLWdyYWRpZW50OiAgICAgICAgICAgICAgICB+Jyc7XG5cbi5ob29rLWludmVyc2UtdGh1bWJuYXYtaXRlbSgpIHdoZW4gbm90IChAaW52ZXJzZS10aHVtYm5hdi1pdGVtLWdyYWRpZW50ID0gficnKSB7XG4gICAgJjo6YWZ0ZXIgeyBiYWNrZ3JvdW5kLWltYWdlOiBAaW52ZXJzZS10aHVtYm5hdi1pdGVtLWdyYWRpZW50OyB9XG59XG4uaG9vay1pbnZlcnNlLXRodW1ibmF2LWl0ZW0taG92ZXIoKSB7fVxuLmhvb2staW52ZXJzZS10aHVtYm5hdi1pdGVtLWFjdGl2ZSgpIHt9XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIEljb25uYXZcbi8vIERlc2NyaXB0aW9uOiAgICAgQ29tcG9uZW50IHRvIGNyZWF0ZSBpY29uIG5hdmlnYXRpb25zXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstaWNvbm5hdmBcbi8vXG4vLyBNb2RpZmllcjogICAgICAgIGB1ay1pY29ubmF2LXZlcnRpY2FsYFxuLy9cbi8vIFN0YXRlczogICAgICAgICAgYHVrLWFjdGl2ZWBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaWNvbm5hdi1tYXJnaW4taG9yaXpvbnRhbDogICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zbWFsbC1tYXJnaW47XG5AaWNvbm5hdi1tYXJnaW4tdmVydGljYWw6ICAgICAgICAgICAgICAgICAgICAgICAgQGljb25uYXYtbWFyZ2luLWhvcml6b250YWw7XG5cbkBpY29ubmF2LWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWNvbG9yO1xuXG5AaWNvbm5hdi1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1jb2xvcjtcblxuQGljb25uYXYtaXRlbS1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtY29sb3I7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEljb25uYXZcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gQWxsb3cgaXRlbXMgdG8gd3JhcCBpbnRvIHRoZSBuZXh0IGxpbmVcbiAqIDIuIFJlc2V0IGxpc3RcbiAqIDMuIEd1dHRlclxuICovXG5cbi51ay1pY29ubmF2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC8qIDEgKi9cbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgLyogMiAqL1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgLyogMyAqL1xuICAgIG1hcmdpbi1sZWZ0OiAtQGljb25uYXYtbWFyZ2luLWhvcml6b250YWw7XG4gICAgLmhvb2staWNvbm5hdigpO1xufVxuXG4vKlxuICogU3BhY2UgaXMgYWxsb2NhdGVkIGJhc2VkIG9uIGNvbnRlbnQgZGltZW5zaW9ucywgYnV0IHNocmlua3M6IDAgMSBhdXRvXG4gKiAxLiBHdXR0ZXJcbiAqL1xuXG4udWstaWNvbm5hdiA+ICoge1xuICAgIC8qIDEgKi9cbiAgICBwYWRkaW5nLWxlZnQ6IEBpY29ubmF2LW1hcmdpbi1ob3Jpem9udGFsO1xufVxuXG5cbi8qIEl0ZW1zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEl0ZW1zIG11c3QgdGFyZ2V0IGBhYCBlbGVtZW50cyB0byBleGNsdWRlIG90aGVyIGVsZW1lbnRzIChlLmcuIGRyb3Bkb3ducylcbiAqIDEuIENlbnRlciBjb250ZW50IHZlcnRpY2FsbHkgaWYgdGhlcmUgaXMgc3RpbGwgc29tZSB0ZXh0XG4gKiAyLiBJbWl0YXRlIHdoaXRlIHNwYWNlIGdhcCB3aGVuIHVzaW5nIGZsZXhib3hcbiAqIDMuIEZvcmNlIHRleHQgbm90IHRvIGFmZmVjdCBpdGVtIGhlaWdodFxuICogNC4gU3R5bGVcbiAqIDUuIFJlcXVpcmVkIGZvciBgYWAgaWYgdGhlcmUgaXMgc3RpbGwgc29tZSB0ZXh0XG4gKi9cblxuLnVrLWljb25uYXYgPiAqID4gYSB7XG4gICAgLyogMSAqL1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAvKiAyICovXG4gICAgY29sdW1uLWdhcDogMC4yNWVtO1xuICAgIC8qIDMgKi9cbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICAvKiA0ICovXG4gICAgY29sb3I6IEBpY29ubmF2LWl0ZW0tY29sb3I7XG4gICAgLyogNSAqL1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAuaG9vay1pY29ubmF2LWl0ZW0oKTtcbn1cblxuLyogSG92ZXIgKi9cbi51ay1pY29ubmF2ID4gKiA+IGE6aG92ZXIge1xuICAgIGNvbG9yOiBAaWNvbm5hdi1pdGVtLWhvdmVyLWNvbG9yO1xuICAgIC5ob29rLWljb25uYXYtaXRlbS1ob3ZlcigpO1xufVxuXG4vKiBBY3RpdmUgKi9cbi51ay1pY29ubmF2ID4gLnVrLWFjdGl2ZSA+IGEge1xuICAgIGNvbG9yOiBAaWNvbm5hdi1pdGVtLWFjdGl2ZS1jb2xvcjtcbiAgICAuaG9vay1pY29ubmF2LWl0ZW0tYWN0aXZlKCk7XG59XG5cblxuLyogTW9kaWZpZXI6ICd1ay1pY29ubmF2LXZlcnRpY2FsJ1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBDaGFuZ2UgZGlyZWN0aW9uXG4gKiAyLiBHdXR0ZXJcbiAqL1xuXG4udWstaWNvbm5hdi12ZXJ0aWNhbCB7XG4gICAgLyogMSAqL1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLyogMiAqL1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi10b3A6IC1AaWNvbm5hdi1tYXJnaW4tdmVydGljYWw7XG59XG5cbi8qIDIgKi9cbi51ay1pY29ubmF2LXZlcnRpY2FsID4gKiB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctdG9wOiBAaWNvbm5hdi1tYXJnaW4tdmVydGljYWw7XG59XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1pY29ubmF2LW1pc2MoKTtcblxuLmhvb2staWNvbm5hdigpIHt9XG4uaG9vay1pY29ubmF2LWl0ZW0oKSB7fVxuLmhvb2staWNvbm5hdi1pdGVtLWhvdmVyKCkge31cbi5ob29rLWljb25uYXYtaXRlbS1hY3RpdmUoKSB7fVxuLmhvb2staWNvbm5hdi1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGludmVyc2UtaWNvbm5hdi1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvcjtcbkBpbnZlcnNlLWljb25uYXYtaXRlbS1ob3Zlci1jb2xvcjogICAgICAgICBAaW52ZXJzZS1nbG9iYWwtY29sb3I7XG5AaW52ZXJzZS1pY29ubmF2LWl0ZW0tYWN0aXZlLWNvbG9yOiAgICAgICAgQGludmVyc2UtZ2xvYmFsLWNvbG9yO1xuXG4uaG9vay1pbnZlcnNlKCkge1xuXG4gICAgLnVrLWljb25uYXYgPiAqID4gYSB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1pY29ubmF2LWl0ZW0tY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtaWNvbm5hdi1pdGVtKCk7XG4gICAgfVxuXG4gICAgLnVrLWljb25uYXYgPiAqID4gYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1pY29ubmF2LWl0ZW0taG92ZXItY29sb3I7XG4gICAgICAgIC5ob29rLWludmVyc2UtaWNvbm5hdi1pdGVtLWhvdmVyKCk7XG4gICAgfVxuXG4gICAgLnVrLWljb25uYXYgPiAudWstYWN0aXZlID4gYSB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1pY29ubmF2LWl0ZW0tYWN0aXZlLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLWljb25uYXYtaXRlbS1hY3RpdmUoKTtcbiAgICB9XG5cbn1cblxuLmhvb2staW52ZXJzZS1pY29ubmF2LWl0ZW0oKSB7fVxuLmhvb2staW52ZXJzZS1pY29ubmF2LWl0ZW0taG92ZXIoKSB7fVxuLmhvb2staW52ZXJzZS1pY29ubmF2LWl0ZW0tYWN0aXZlKCkge31cbiIsIi8vXG4vLyBDb21wb25lbnQ6IEljb25uYXZcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWljb25uYXYoKSB7fVxuXG4uaG9vay1pY29ubmF2LWl0ZW0oKSB7XG4gICAgdHJhbnNpdGlvbjogMC4xcyBlYXNlLWluLW91dDtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBjb2xvciwgYmFja2dyb3VuZC1jb2xvciwgYm9yZGVyLWNvbG9yLCBib3gtc2hhZG93O1xufVxuXG4uaG9vay1pY29ubmF2LWl0ZW0taG92ZXIoKSB7fVxuXG4uaG9vay1pY29ubmF2LWl0ZW0tYWN0aXZlKCkge31cblxuXG4vLyBNaXNjZWxsYW5lb3VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2staWNvbm5hdi1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2staW52ZXJzZS1pY29ubmF2LWl0ZW0oKSB7fVxuLmhvb2staW52ZXJzZS1pY29ubmF2LWl0ZW0taG92ZXIoKSB7fVxuLmhvb2staW52ZXJzZS1pY29ubmF2LWl0ZW0tYWN0aXZlKCkge30iLCIvL1xuLy8gQ29tcG9uZW50OiBJY29ubmF2XG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIE5ld1xuLy9cblxuQGljb25uYXYtaXRlbS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc21hbGwtZm9udC1zaXplO1xuXG5cbi8vIENvbXBvbmVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWljb25uYXYoKSB7fVxuXG4uaG9vay1pY29ubmF2LWl0ZW0oKSB7IGZvbnQtc2l6ZTogQGljb25uYXYtaXRlbS1mb250LXNpemU7IH1cblxuLmhvb2staWNvbm5hdi1pdGVtLWhvdmVyKCkge31cblxuLmhvb2staWNvbm5hdi1pdGVtLWFjdGl2ZSgpIHt9XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWljb25uYXYtbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWludmVyc2UtaWNvbm5hdi1pdGVtKCkge31cbi5ob29rLWludmVyc2UtaWNvbm5hdi1pdGVtLWhvdmVyKCkge31cbi5ob29rLWludmVyc2UtaWNvbm5hdi1pdGVtLWFjdGl2ZSgpIHt9IiwiLy8gTmFtZTogICAgICAgICAgICBMaWdodGJveFxuLy8gRGVzY3JpcHRpb246ICAgICBDb21wb25lbnQgdG8gY3JlYXRlIGFuIGxpZ2h0Ym94IGltYWdlIGdhbGxlcnlcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1saWdodGJveGBcbi8vXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay1saWdodGJveC1wYWdlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbGlnaHRib3gtaXRlbXNgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1saWdodGJveC10b29sYmFyYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbGlnaHRib3gtdG9vbGJhci1pY29uYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbGlnaHRib3gtYnV0dG9uYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbGlnaHRib3gtY2FwdGlvbmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWxpZ2h0Ym94LWlmcmFtZWBcbi8vXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1vcGVuYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBsaWdodGJveC16LWluZGV4OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtei1pbmRleCArIDEwO1xuQGxpZ2h0Ym94LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIzAwMDtcblxuQGxpZ2h0Ym94LWZvY3VzLW91dGxpbmU6ICAgICAgICAgICAgICAgICAgICAgICAgcmdiYSgyNTUsMjU1LDI1NSwwLjcpO1xuXG5AbGlnaHRib3gtaXRlbS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuNyk7XG5AbGlnaHRib3gtaXRlbS1tYXgtd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAxMDB2dztcbkBsaWdodGJveC1pdGVtLW1heC1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgIDEwMHZoO1xuXG5AbGlnaHRib3gtdG9vbGJhci1wYWRkaW5nLXZlcnRpY2FsOiAgICAgICAgICAgICAxMHB4O1xuQGxpZ2h0Ym94LXRvb2xiYXItcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgICAgMTBweDtcbkBsaWdodGJveC10b29sYmFyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgIHJnYmEoMCwwLDAsMC4zKTtcbkBsaWdodGJveC10b29sYmFyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgIHJnYmEoMjU1LDI1NSwyNTUsMC43KTtcblxuQGxpZ2h0Ym94LXRvb2xiYXItaWNvbi1wYWRkaW5nOiAgICAgICAgICAgICAgICAgNXB4O1xuQGxpZ2h0Ym94LXRvb2xiYXItaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgcmdiYSgyNTUsMjU1LDI1NSwwLjcpO1xuXG5AbGlnaHRib3gtdG9vbGJhci1pY29uLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAjZmZmO1xuXG5AbGlnaHRib3gtYnV0dG9uLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICA1MHB4O1xuQGxpZ2h0Ym94LWJ1dHRvbi1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICAgQGxpZ2h0Ym94LXRvb2xiYXItYmFja2dyb3VuZDtcbkBsaWdodGJveC1idXR0b24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgIHJnYmEoMjU1LDI1NSwyNTUsMC43KTtcblxuQGxpZ2h0Ym94LWJ1dHRvbi1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgI2ZmZjtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogTGlnaHRib3hcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gSGlkZSBieSBkZWZhdWx0XG4gKiAyLiBTZXQgcG9zaXRpb25cbiAqIDMuIEFsbG93IHNjcm9sbGluZyBmb3IgdGhlIG1vZGFsIGRpYWxvZ1xuICogNC4gSG9yaXpvbnRhbCBwYWRkaW5nXG4gKiA1LiBNYXNrIHRoZSBiYWNrZ3JvdW5kIHBhZ2VcbiAqIDYuIEZhZGUtaW4gdHJhbnNpdGlvblxuICogNy4gUHJldmVudCBjYW5jZWxsYXRpb24gb2YgcG9pbnRlciBldmVudHMgd2hpbGUgZHJhZ2dpbmdcbiAqL1xuXG4udWstbGlnaHRib3gge1xuICAgIC8qIDEgKi9cbiAgICBkaXNwbGF5OiBub25lO1xuICAgIC8qIDIgKi9cbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IEBsaWdodGJveC16LWluZGV4O1xuICAgIC8qIDUgKi9cbiAgICBiYWNrZ3JvdW5kOiBAbGlnaHRib3gtYmFja2dyb3VuZDtcbiAgICAvKiA2ICovXG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhcjtcbiAgICAvKiA3ICovXG4gICAgdG91Y2gtYWN0aW9uOiBwaW5jaC16b29tO1xuICAgIC5ob29rLWxpZ2h0Ym94KCk7XG59XG5cbi8qXG4gKiBPcGVuXG4gKiAxLiBDZW50ZXIgY2hpbGRcbiAqIDIuIEZhZGUtaW5cbiAqL1xuXG4udWstbGlnaHRib3gudWstb3BlbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgLyogMiAqL1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi8qXG4gKiBGb2N1c1xuICovXG5cbi51ay1saWdodGJveCA6Zm9jdXMgeyBvdXRsaW5lLWNvbG9yOiBAbGlnaHRib3gtZm9jdXMtb3V0bGluZTsgfVxuLnVrLWxpZ2h0Ym94IDpmb2N1cy12aXNpYmxlIHsgb3V0bGluZS1jb2xvcjogQGxpZ2h0Ym94LWZvY3VzLW91dGxpbmU7IH1cblxuXG4vKiBQYWdlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIFByZXZlbnQgc2Nyb2xsYmFyc1xuICovXG5cbi51ay1saWdodGJveC1wYWdlIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG5cbi8qIEl0ZW1cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gQ2VudGVyIGNoaWxkIHdpdGhpbiB0aGUgdmlld3BvcnRcbiAqIDIuIE5vdCB2aXNpYmxlIGJ5IGRlZmF1bHRcbiAqIDMuIENvbG9yIG5lZWRlZCBmb3Igc3Bpbm5lciBpY29uXG4gKiA0LiBPcHRpbWl6ZSBhbmltYXRpb25cbiAqIDUuIFJlc3BvbnNpdmVuZXNzXG4gKiAgICBVc2luZyBgdmhgIGZvciBgbWF4LWhlaWdodGAgdG8gZml4IGltYWdlIHByb3BvcnRpb25zIGFmdGVyIHJlc2l6ZSBpbiBTYWZhcmkgYW5kIE9wZXJhXG4gKi9cblxuLnVrLWxpZ2h0Ym94LWl0ZW1zID4gKiB7XG4gICAgLyogMSAqL1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgLyogMiAqL1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAvKiAzICovXG4gICAgY29sb3I6IEBsaWdodGJveC1pdGVtLWNvbG9yO1xuICAgIC8qIDQgKi9cbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIC5ob29rLWxpZ2h0Ym94LWl0ZW0oKTtcbn1cblxuLyogNSAqL1xuLnVrLWxpZ2h0Ym94LWl0ZW1zID4gKiA+ICoge1xuICAgIG1heC13aWR0aDogQGxpZ2h0Ym94LWl0ZW0tbWF4LXdpZHRoO1xuICAgIG1heC1oZWlnaHQ6IEBsaWdodGJveC1pdGVtLW1heC1oZWlnaHQ7XG59XG5cbi51ay1saWdodGJveC1pdGVtcyA+ICogPiA6bm90KGlmcmFtZSkge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbn1cblxuLnVrLWxpZ2h0Ym94LWl0ZW1zID4gLnVrLWFjdGl2ZSB7IGRpc3BsYXk6IGZsZXg7IH1cblxuLyogVG9vbGJhclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1saWdodGJveC10b29sYmFyIHtcbiAgICBwYWRkaW5nOiBAbGlnaHRib3gtdG9vbGJhci1wYWRkaW5nLXZlcnRpY2FsIEBsaWdodGJveC10b29sYmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBiYWNrZ3JvdW5kOiBAbGlnaHRib3gtdG9vbGJhci1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiBAbGlnaHRib3gtdG9vbGJhci1jb2xvcjtcbiAgICAuaG9vay1saWdodGJveC10b29sYmFyKCk7XG59XG5cbi51ay1saWdodGJveC10b29sYmFyID4gKiB7IGNvbG9yOiBAbGlnaHRib3gtdG9vbGJhci1jb2xvcjsgfVxuXG5cbi8qIFRvb2xiYXIgSWNvbiAoQ2xvc2UpXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWxpZ2h0Ym94LXRvb2xiYXItaWNvbiB7XG4gICAgcGFkZGluZzogQGxpZ2h0Ym94LXRvb2xiYXItaWNvbi1wYWRkaW5nO1xuICAgIGNvbG9yOiBAbGlnaHRib3gtdG9vbGJhci1pY29uLWNvbG9yO1xuICAgIC5ob29rLWxpZ2h0Ym94LXRvb2xiYXItaWNvbigpO1xufVxuXG4vKlxuICogSG92ZXJcbiAqL1xuXG4udWstbGlnaHRib3gtdG9vbGJhci1pY29uOmhvdmVyIHtcbiAgICBjb2xvcjogQGxpZ2h0Ym94LXRvb2xiYXItaWNvbi1ob3Zlci1jb2xvcjtcbiAgICAuaG9vay1saWdodGJveC10b29sYmFyLWljb24taG92ZXIoKTtcbn1cblxuXG5cbi8qIEJ1dHRvbiAoU2xpZGVuYXYpXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIENlbnRlciBpY29uIHZlcnRpY2FsbHkgYW5kIGhvcml6b250YWxseVxuICovXG5cbi51ay1saWdodGJveC1idXR0b24ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IEBsaWdodGJveC1idXR0b24tc2l6ZTtcbiAgICBoZWlnaHQ6IEBsaWdodGJveC1idXR0b24tc2l6ZTtcbiAgICBiYWNrZ3JvdW5kOiBAbGlnaHRib3gtYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgY29sb3I6IEBsaWdodGJveC1idXR0b24tY29sb3I7XG4gICAgLyogMSAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgLmhvb2stbGlnaHRib3gtYnV0dG9uKCk7XG59XG5cbi8qIEhvdmVyICovXG4udWstbGlnaHRib3gtYnV0dG9uOmhvdmVyIHtcbiAgICBjb2xvcjogQGxpZ2h0Ym94LWJ1dHRvbi1ob3Zlci1jb2xvcjtcbiAgICAuaG9vay1saWdodGJveC1idXR0b24taG92ZXIoKTtcbn1cblxuLyogT25DbGljayAqL1xuLnVrLWxpZ2h0Ym94LWJ1dHRvbjphY3RpdmUge1xuICAgIC5ob29rLWxpZ2h0Ym94LWJ1dHRvbi1hY3RpdmUoKTtcbn1cblxuXG4vKiBDYXB0aW9uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWxpZ2h0Ym94LWNhcHRpb246ZW1wdHkgeyBkaXNwbGF5OiBub25lOyB9XG5cblxuLyogSWZyYW1lXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWxpZ2h0Ym94LWlmcmFtZSB7XG4gICAgd2lkdGg6IDgwJTtcbiAgICBoZWlnaHQ6IDgwJTtcbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWxpZ2h0Ym94LW1pc2MoKTtcblxuLmhvb2stbGlnaHRib3goKSB7fVxuLmhvb2stbGlnaHRib3gtaXRlbSgpIHt9XG4uaG9vay1saWdodGJveC10b29sYmFyKCkge31cbi5ob29rLWxpZ2h0Ym94LXRvb2xiYXItaWNvbigpIHt9XG4uaG9vay1saWdodGJveC10b29sYmFyLWljb24taG92ZXIoKSB7fVxuLmhvb2stbGlnaHRib3gtYnV0dG9uKCkge31cbi5ob29rLWxpZ2h0Ym94LWJ1dHRvbi1ob3ZlcigpIHt9XG4uaG9vay1saWdodGJveC1idXR0b24tYWN0aXZlKCkge31cbi5ob29rLWxpZ2h0Ym94LW1pc2MoKSB7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBBbmltYXRpb25cbi8vIERlc2NyaXB0aW9uOiAgICAgVXRpbGl0aWVzIGZvciBrZXlmcmFtZSBhbmltYXRpb25zXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstYW5pbWF0aW9uLSpgXG4vL1xuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstYW5pbWF0aW9uLWZhZGVgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1hbmltYXRpb24tc2NhbGUtdXBgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1hbmltYXRpb24tc2NhbGUtZG93bmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWFuaW1hdGlvbi1zbGlkZS10b3AtKmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWFuaW1hdGlvbi1zbGlkZS1ib3R0b20tKmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWFuaW1hdGlvbi1zbGlkZS1sZWZ0LSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1hbmltYXRpb24tc2xpZGUtcmlnaHQtKmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWFuaW1hdGlvbi1rZW5idXJuc2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLWFuaW1hdGlvbi1zaGFrZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWFuaW1hdGlvbi1zdHJva2VgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1hbmltYXRpb24tcmV2ZXJzZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWFuaW1hdGlvbi1mYXN0YFxuLy9cbi8vIFN1Yi1vYmplY3RzOiAgICAgYHVrLWFuaW1hdGlvbi10b2dnbGVgXG4vL1xuLy8gU3RhdGVzOiAgICAgICAgICBgdWstYWN0aXZlYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBhbmltYXRpb24tZHVyYXRpb246ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuNXM7XG5AYW5pbWF0aW9uLWZhZGUtZHVyYXRpb246ICAgICAgICAgICAgICAgICAgICAgICAwLjhzO1xuQGFuaW1hdGlvbi1zdHJva2UtZHVyYXRpb246ICAgICAgICAgICAgICAgICAgICAgMnM7XG5AYW5pbWF0aW9uLWtlbmJ1cm5zLWR1cmF0aW9uOiAgICAgICAgICAgICAgICAgICAxNXM7XG5AYW5pbWF0aW9uLWZhc3QtZHVyYXRpb246ICAgICAgICAgICAgICAgICAgICAgICAwLjFzO1xuXG5AYW5pbWF0aW9uLXNsaWRlLXNtYWxsLXRyYW5zbGF0ZTogICAgICAgICAgICAgICAxMHB4O1xuQGFuaW1hdGlvbi1zbGlkZS1tZWRpdW0tdHJhbnNsYXRlOiAgICAgICAgICAgICAgNTBweDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogQW5pbWF0aW9uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuW2NsYXNzKj0ndWstYW5pbWF0aW9uLSddIHsgYW5pbWF0aW9uOiBAYW5pbWF0aW9uLWR1cmF0aW9uIGVhc2Utb3V0IGJvdGg7IH1cblxuXG4vKiBBbmltYXRpb25zXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEZhZGVcbiAqL1xuXG4udWstYW5pbWF0aW9uLWZhZGUge1xuICAgIGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogQGFuaW1hdGlvbi1mYWRlLWR1cmF0aW9uO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbn1cblxuLypcbiAqIFNjYWxlXG4gKi9cblxuLnVrLWFuaW1hdGlvbi1zY2FsZS11cCB7IGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLCB1ay1zY2FsZS11cDsgfVxuLnVrLWFuaW1hdGlvbi1zY2FsZS1kb3duIHsgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUsIHVrLXNjYWxlLWRvd247IH1cblxuLypcbiAqIFNsaWRlXG4gKi9cblxuLnVrLWFuaW1hdGlvbi1zbGlkZS10b3AgeyBhbmltYXRpb24tbmFtZTogdWstZmFkZSwgdWstc2xpZGUtdG9wOyB9XG4udWstYW5pbWF0aW9uLXNsaWRlLWJvdHRvbSB7IGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLCB1ay1zbGlkZS1ib3R0b207IH1cbi51ay1hbmltYXRpb24tc2xpZGUtbGVmdCB7IGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLCB1ay1zbGlkZS1sZWZ0OyB9XG4udWstYW5pbWF0aW9uLXNsaWRlLXJpZ2h0IHsgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUsIHVrLXNsaWRlLXJpZ2h0OyB9XG5cbi8qXG4gKiBTbGlkZSBTbWFsbFxuICovXG5cbi51ay1hbmltYXRpb24tc2xpZGUtdG9wLXNtYWxsIHsgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUsIHVrLXNsaWRlLXRvcC1zbWFsbDsgfVxuLnVrLWFuaW1hdGlvbi1zbGlkZS1ib3R0b20tc21hbGwgeyBhbmltYXRpb24tbmFtZTogdWstZmFkZSwgdWstc2xpZGUtYm90dG9tLXNtYWxsOyB9XG4udWstYW5pbWF0aW9uLXNsaWRlLWxlZnQtc21hbGwgeyBhbmltYXRpb24tbmFtZTogdWstZmFkZSwgdWstc2xpZGUtbGVmdC1zbWFsbDsgfVxuLnVrLWFuaW1hdGlvbi1zbGlkZS1yaWdodC1zbWFsbCB7IGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLCB1ay1zbGlkZS1yaWdodC1zbWFsbDsgfVxuXG4vKlxuICogU2xpZGUgTWVkaXVtXG4gKi9cblxuLnVrLWFuaW1hdGlvbi1zbGlkZS10b3AtbWVkaXVtIHsgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUsIHVrLXNsaWRlLXRvcC1tZWRpdW07IH1cbi51ay1hbmltYXRpb24tc2xpZGUtYm90dG9tLW1lZGl1bSB7IGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLCB1ay1zbGlkZS1ib3R0b20tbWVkaXVtOyB9XG4udWstYW5pbWF0aW9uLXNsaWRlLWxlZnQtbWVkaXVtIHsgYW5pbWF0aW9uLW5hbWU6IHVrLWZhZGUsIHVrLXNsaWRlLWxlZnQtbWVkaXVtOyB9XG4udWstYW5pbWF0aW9uLXNsaWRlLXJpZ2h0LW1lZGl1bSB7IGFuaW1hdGlvbi1uYW1lOiB1ay1mYWRlLCB1ay1zbGlkZS1yaWdodC1tZWRpdW07IH1cblxuLypcbiAqIEtlbmJ1cm5zXG4gKi9cblxuLnVrLWFuaW1hdGlvbi1rZW5idXJucyB7XG4gICAgYW5pbWF0aW9uLW5hbWU6IHVrLWtlbmJ1cm5zO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogQGFuaW1hdGlvbi1rZW5idXJucy1kdXJhdGlvbjtcbn1cblxuLypcbiAqIFNoYWtlXG4gKi9cblxuLnVrLWFuaW1hdGlvbi1zaGFrZSB7IGFuaW1hdGlvbi1uYW1lOiB1ay1zaGFrZTsgfVxuXG4vKlxuICogU1ZHIFN0cm9rZVxuICogVGhlIGAtLXVrLWFuaW1hdGlvbi1zdHJva2VgIGN1c3RvbSBwcm9wZXJ0eSBjb250YWlucyB0aGUgbG9uZ2VzdCBwYXRoIGxlbmd0aC5cbiAqIFNldCBpdCBtYW51YWxseSBvciB1c2UgYHVrLXN2Zz1cInN0cm9rZS1hbmltYXRpb246IHRydWVcImAgdG8gc2V0IGl0IGF1dG9tYXRpY2FsbHkuXG4gKiBBbGwgc3Ryb2tlcyBhcmUgYW5pbWF0ZWQgYnkgdGhlIHNhbWUgcGFjZSBhbmQgZG9lc24ndCBlbmQgc2ltdWx0YW5lb3VzbHkuXG4gKiBUbyBlbmQgc2ltdWx0YW5lb3VzbHksIGBwYXRoTGVuZ3RoPVwiMVwiYCBjb3VsZCBiZSB1c2VkLCBidXQgaXQncyBub3Qgd29ya2luZyBpbiBTYWZhcmkgeWV0LlxuICovXG5cbi51ay1hbmltYXRpb24tc3Ryb2tlIHtcbiAgICBhbmltYXRpb24tbmFtZTogdWstc3Ryb2tlO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogQGFuaW1hdGlvbi1zdHJva2UtZHVyYXRpb247XG4gICAgc3Ryb2tlLWRhc2hhcnJheTogdmFyKC0tdWstYW5pbWF0aW9uLXN0cm9rZSk7XG59XG5cblxuLyogRGlyZWN0aW9uIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWFuaW1hdGlvbi1yZXZlcnNlIHtcbiAgICBhbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG59XG5cblxuLyogRHVyYXRpb24gbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstYW5pbWF0aW9uLWZhc3QgeyBhbmltYXRpb24tZHVyYXRpb246IEBhbmltYXRpb24tZmFzdC1kdXJhdGlvbjsgfVxuXG5cbi8qIFRvZ2dsZSBhbmltYXRpb24gYmFzZWQgb24gdGhlIFN0YXRlIG9mIHRoZSBQYXJlbnQgRWxlbWVudFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1hbmltYXRpb24tdG9nZ2xlOm5vdCg6aG92ZXIpOm5vdCg6Zm9jdXMpIFtjbGFzcyo9J3VrLWFuaW1hdGlvbi0nXSB7IGFuaW1hdGlvbi1uYW1lOiBub25lOyB9XG5cblxuLyogS2V5ZnJhbWVzIHVzZWQgYnkgYW5pbWF0aW9uIGNsYXNzZXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogRmFkZVxuICovXG5cbkBrZXlmcmFtZXMgdWstZmFkZSB7XG4gICAgMCUgeyBvcGFjaXR5OiAwOyB9XG4gICAgMTAwJSB7IG9wYWNpdHk6IDE7IH1cbn1cblxuLypcbiAqIFNjYWxlXG4gKi9cblxuQGtleWZyYW1lcyB1ay1zY2FsZS11cCB7XG4gICAgMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7IH1cbiAgICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxufVxuXG5Aa2V5ZnJhbWVzIHVrLXNjYWxlLWRvd24ge1xuICAgIDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjEpOyB9XG4gICAgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbn1cblxuLypcbiAqIFNsaWRlXG4gKi9cblxuQGtleWZyYW1lcyB1ay1zbGlkZS10b3Age1xuICAgIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsgfVxuICAgIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbn1cblxuQGtleWZyYW1lcyB1ay1zbGlkZS1ib3R0b20ge1xuICAgIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpOyB9XG4gICAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxufVxuXG5Aa2V5ZnJhbWVzIHVrLXNsaWRlLWxlZnQge1xuICAgIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgfVxuICAgIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbn1cblxuQGtleWZyYW1lcyB1ay1zbGlkZS1yaWdodCB7XG4gICAgMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cbiAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG59XG5cbi8qXG4gKiBTbGlkZSBTbWFsbFxuICovXG5cbkBrZXlmcmFtZXMgdWstc2xpZGUtdG9wLXNtYWxsIHtcbiAgICAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtQGFuaW1hdGlvbi1zbGlkZS1zbWFsbC10cmFuc2xhdGUpOyB9XG4gICAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxufVxuXG5Aa2V5ZnJhbWVzIHVrLXNsaWRlLWJvdHRvbS1zbWFsbCB7XG4gICAgMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoQGFuaW1hdGlvbi1zbGlkZS1zbWFsbC10cmFuc2xhdGUpOyB9XG4gICAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxufVxuXG5Aa2V5ZnJhbWVzIHVrLXNsaWRlLWxlZnQtc21hbGwge1xuICAgIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC1AYW5pbWF0aW9uLXNsaWRlLXNtYWxsLXRyYW5zbGF0ZSk7IH1cbiAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG59XG5cbkBrZXlmcmFtZXMgdWstc2xpZGUtcmlnaHQtc21hbGwge1xuICAgIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKEBhbmltYXRpb24tc2xpZGUtc21hbGwtdHJhbnNsYXRlKTsgfVxuICAgIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbn1cblxuLypcbiAqIFNsaWRlIE1lZGl1bVxuICovXG5cbkBrZXlmcmFtZXMgdWstc2xpZGUtdG9wLW1lZGl1bSB7XG4gICAgMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLUBhbmltYXRpb24tc2xpZGUtbWVkaXVtLXRyYW5zbGF0ZSk7IH1cbiAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG59XG5cbkBrZXlmcmFtZXMgdWstc2xpZGUtYm90dG9tLW1lZGl1bSB7XG4gICAgMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoQGFuaW1hdGlvbi1zbGlkZS1tZWRpdW0tdHJhbnNsYXRlKTsgfVxuICAgIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbn1cblxuQGtleWZyYW1lcyB1ay1zbGlkZS1sZWZ0LW1lZGl1bSB7XG4gICAgMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLUBhbmltYXRpb24tc2xpZGUtbWVkaXVtLXRyYW5zbGF0ZSk7IH1cbiAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG59XG5cbkBrZXlmcmFtZXMgdWstc2xpZGUtcmlnaHQtbWVkaXVtIHtcbiAgICAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWChAYW5pbWF0aW9uLXNsaWRlLW1lZGl1bS10cmFuc2xhdGUpOyB9XG4gICAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxufVxuXG4vKlxuICogS2VuYnVybnNcbiAqL1xuXG5Aa2V5ZnJhbWVzIHVrLWtlbmJ1cm5zIHtcbiAgICAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjIpOyB9XG59XG5cbi8qXG4gKiBTaGFrZVxuICovXG5cbkBrZXlmcmFtZXMgdWstc2hha2Uge1xuICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gICAgMTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC05cHgpOyB9XG4gICAgMjAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDhweCk7IH1cbiAgICAzMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTdweCk7IH1cbiAgICA0MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNnB4KTsgfVxuICAgIDUwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNXB4KTsgfVxuICAgIDYwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpOyB9XG4gICAgNzAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zcHgpOyB9XG4gICAgODAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCk7IH1cbiAgICA5MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTFweCk7IH1cbn1cblxuLypcbiAqIFN0cm9rZVxuICovXG5cbiBAa2V5ZnJhbWVzIHVrLXN0cm9rZSB7XG4gICAgMCUgeyBzdHJva2UtZGFzaG9mZnNldDogdmFyKC0tdWstYW5pbWF0aW9uLXN0cm9rZSk7IH1cbiAgICAxMDAlIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IH1cbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWFuaW1hdGlvbi1taXNjKCk7XG5cbi5ob29rLWFuaW1hdGlvbi1taXNjKCkge31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgV2lkdGhcbi8vIERlc2NyaXB0aW9uOiAgICAgVXRpbGl0aWVzIGZvciB3aWR0aHNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1jaGlsZC13aWR0aC0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstd2lkdGgtKmBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5Ad2lkdGgtc21hbGwtd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNTBweDtcbkB3aWR0aC1tZWRpdW0td2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwMHB4O1xuQHdpZHRoLWxhcmdlLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDUwcHg7XG5Ad2lkdGgteGxhcmdlLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICA2MDBweDtcbkB3aWR0aC0yeGxhcmdlLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgIDc1MHB4O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBXaWR0aFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cblxuLyogRXF1YWwgY2hpbGQgd2lkdGhzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuW2NsYXNzKj0ndWstY2hpbGQtd2lkdGgnXSA+ICoge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi51ay1jaGlsZC13aWR0aC0xLTIgPiAqIHsgd2lkdGg6IDUwJTsgfVxuLnVrLWNoaWxkLXdpZHRoLTEtMyA+ICogeyB3aWR0aDogfidjYWxjKDEwMCUgKiAxIC8gMy4wMDEpJzsgfVxuLnVrLWNoaWxkLXdpZHRoLTEtNCA+ICogeyB3aWR0aDogMjUlOyB9XG4udWstY2hpbGQtd2lkdGgtMS01ID4gKiB7IHdpZHRoOiAyMCU7IH1cbi51ay1jaGlsZC13aWR0aC0xLTYgPiAqIHsgd2lkdGg6IH4nY2FsYygxMDAlICogMSAvIDYuMDAxKSc7IH1cblxuLnVrLWNoaWxkLXdpZHRoLWF1dG8gPiAqIHsgd2lkdGg6IGF1dG87IH1cblxuLypcbiAqIDEuIFJlc2V0IHRoZSBgbWluLXdpZHRoYCwgd2hpY2ggaXMgc2V0IHRvIGF1dG8gYnkgZGVmYXVsdCwgYmVjYXVzZVxuICogICAgZmxleCBpdGVtcyB3b24ndCBzaHJpbmsgYmVsb3cgdGhlaXIgbWluaW11bSBpbnRyaW5zaWMgY29udGVudCBzaXplLlxuICogICAgVXNpbmcgYDFweGAgaW5zdGVhZCBvZiBgMGAsIHNvIGl0ZW1zIHN0aWxsIHdyYXAgaW50byB0aGUgbmV4dCBsaW5lLFxuICogICAgaWYgdGhleSBoYXZlIHplcm8gd2lkdGggYW5kIHBhZGRpbmcgYW5kIHRoZSBwcmVkZWNlc3NvciBpcyAxMDAlIHdpZGUuXG4gKi9cblxuLnVrLWNoaWxkLXdpZHRoLWV4cGFuZCA+IDpub3QoW2NsYXNzKj0ndWstd2lkdGgnXSkge1xuICAgIGZsZXg6IDE7XG4gICAgLyogMSAqL1xuICAgIG1pbi13aWR0aDogMXB4O1xufVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LXNtYWxsKSB7XG5cbiAgICAudWstY2hpbGQtd2lkdGgtMS0xXFxAcyA+ICogeyB3aWR0aDogMTAwJTsgfVxuICAgIC51ay1jaGlsZC13aWR0aC0xLTJcXEBzID4gKiB7IHdpZHRoOiA1MCU7IH1cbiAgICAudWstY2hpbGQtd2lkdGgtMS0zXFxAcyA+ICogeyB3aWR0aDogfidjYWxjKDEwMCUgKiAxIC8gMy4wMDEpJzsgfVxuICAgIC51ay1jaGlsZC13aWR0aC0xLTRcXEBzID4gKiB7IHdpZHRoOiAyNSU7IH1cbiAgICAudWstY2hpbGQtd2lkdGgtMS01XFxAcyA+ICogeyB3aWR0aDogMjAlOyB9XG4gICAgLnVrLWNoaWxkLXdpZHRoLTEtNlxcQHMgPiAqIHsgd2lkdGg6IH4nY2FsYygxMDAlICogMSAvIDYuMDAxKSc7IH1cblxuICAgIC51ay1jaGlsZC13aWR0aC1hdXRvXFxAcyA+ICogeyB3aWR0aDogYXV0bzsgfVxuICAgIC51ay1jaGlsZC13aWR0aC1leHBhbmRcXEBzID4gOm5vdChbY2xhc3MqPSd1ay13aWR0aCddKSB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMXB4O1xuICAgIH1cblxufVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1tZWRpdW0pIHtcblxuICAgIC51ay1jaGlsZC13aWR0aC0xLTFcXEBtID4gKiB7IHdpZHRoOiAxMDAlOyB9XG4gICAgLnVrLWNoaWxkLXdpZHRoLTEtMlxcQG0gPiAqIHsgd2lkdGg6IDUwJTsgfVxuICAgIC51ay1jaGlsZC13aWR0aC0xLTNcXEBtID4gKiB7IHdpZHRoOiB+J2NhbGMoMTAwJSAqIDEgLyAzLjAwMSknOyB9XG4gICAgLnVrLWNoaWxkLXdpZHRoLTEtNFxcQG0gPiAqIHsgd2lkdGg6IDI1JTsgfVxuICAgIC51ay1jaGlsZC13aWR0aC0xLTVcXEBtID4gKiB7IHdpZHRoOiAyMCU7IH1cbiAgICAudWstY2hpbGQtd2lkdGgtMS02XFxAbSA+ICogeyB3aWR0aDogfidjYWxjKDEwMCUgKiAxIC8gNi4wMDEpJzsgfVxuXG4gICAgLnVrLWNoaWxkLXdpZHRoLWF1dG9cXEBtID4gKiB7IHdpZHRoOiBhdXRvOyB9XG4gICAgLnVrLWNoaWxkLXdpZHRoLWV4cGFuZFxcQG0gPiA6bm90KFtjbGFzcyo9J3VrLXdpZHRoJ10pIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiAxcHg7XG4gICAgfVxuXG59XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LWxhcmdlKSB7XG5cbiAgICAudWstY2hpbGQtd2lkdGgtMS0xXFxAbCA+ICogeyB3aWR0aDogMTAwJTsgfVxuICAgIC51ay1jaGlsZC13aWR0aC0xLTJcXEBsID4gKiB7IHdpZHRoOiA1MCU7IH1cbiAgICAudWstY2hpbGQtd2lkdGgtMS0zXFxAbCA+ICogeyB3aWR0aDogfidjYWxjKDEwMCUgKiAxIC8gMy4wMDEpJzsgfVxuICAgIC51ay1jaGlsZC13aWR0aC0xLTRcXEBsID4gKiB7IHdpZHRoOiAyNSU7IH1cbiAgICAudWstY2hpbGQtd2lkdGgtMS01XFxAbCA+ICogeyB3aWR0aDogMjAlOyB9XG4gICAgLnVrLWNoaWxkLXdpZHRoLTEtNlxcQGwgPiAqIHsgd2lkdGg6IH4nY2FsYygxMDAlICogMSAvIDYuMDAxKSc7IH1cblxuICAgIC51ay1jaGlsZC13aWR0aC1hdXRvXFxAbCA+ICogeyB3aWR0aDogYXV0bzsgfVxuICAgIC51ay1jaGlsZC13aWR0aC1leHBhbmRcXEBsID4gOm5vdChbY2xhc3MqPSd1ay13aWR0aCddKSB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMXB4O1xuICAgIH1cblxufVxuXG4vKiBMYXJnZSBzY3JlZW4gYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LXhsYXJnZSkge1xuXG4gICAgLnVrLWNoaWxkLXdpZHRoLTEtMVxcQHhsID4gKiB7IHdpZHRoOiAxMDAlOyB9XG4gICAgLnVrLWNoaWxkLXdpZHRoLTEtMlxcQHhsID4gKiB7IHdpZHRoOiA1MCU7IH1cbiAgICAudWstY2hpbGQtd2lkdGgtMS0zXFxAeGwgPiAqIHsgd2lkdGg6IH4nY2FsYygxMDAlICogMSAvIDMuMDAxKSc7IH1cbiAgICAudWstY2hpbGQtd2lkdGgtMS00XFxAeGwgPiAqIHsgd2lkdGg6IDI1JTsgfVxuICAgIC51ay1jaGlsZC13aWR0aC0xLTVcXEB4bCA+ICogeyB3aWR0aDogMjAlOyB9XG4gICAgLnVrLWNoaWxkLXdpZHRoLTEtNlxcQHhsID4gKiB7IHdpZHRoOiB+J2NhbGMoMTAwJSAqIDEgLyA2LjAwMSknOyB9XG5cbiAgICAudWstY2hpbGQtd2lkdGgtYXV0b1xcQHhsID4gKiB7IHdpZHRoOiBhdXRvOyB9XG4gICAgLnVrLWNoaWxkLXdpZHRoLWV4cGFuZFxcQHhsID4gOm5vdChbY2xhc3MqPSd1ay13aWR0aCddKSB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMXB4O1xuICAgIH1cblxufVxuXG5cbi8qIFNpbmdsZSBXaWR0aHNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gYG1heC13aWR0aGAgaXMgbmVlZGVkIGZvciB0aGUgcGl4ZWwtYmFzZWQgY2xhc3Nlc1xuICovXG5cbltjbGFzcyo9J3VrLXdpZHRoJ10ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLyogMSAqL1xuICAgIG1heC13aWR0aDogMTAwJTtcbn1cblxuLyogSGFsdmVzICovXG4udWstd2lkdGgtMS0yIHsgd2lkdGg6IDUwJTsgfVxuXG4vKiBUaGlyZHMgKi9cbi51ay13aWR0aC0xLTMgeyB3aWR0aDogfidjYWxjKDEwMCUgKiAxIC8gMy4wMDEpJzsgfVxuLnVrLXdpZHRoLTItMyB7IHdpZHRoOiB+J2NhbGMoMTAwJSAqIDIgLyAzLjAwMSknOyB9XG5cbi8qIFF1YXJ0ZXJzICovXG4udWstd2lkdGgtMS00IHsgd2lkdGg6IDI1JTsgfVxuLnVrLXdpZHRoLTMtNCB7IHdpZHRoOiA3NSU7IH1cblxuLyogRmlmdGhzICovXG4udWstd2lkdGgtMS01IHsgd2lkdGg6IDIwJTsgfVxuLnVrLXdpZHRoLTItNSB7IHdpZHRoOiA0MCU7IH1cbi51ay13aWR0aC0zLTUgeyB3aWR0aDogNjAlOyB9XG4udWstd2lkdGgtNC01IHsgd2lkdGg6IDgwJTsgfVxuXG4vKiBTaXh0aHMgKi9cbi51ay13aWR0aC0xLTYgeyB3aWR0aDogfidjYWxjKDEwMCUgKiAxIC8gNi4wMDEpJzsgfVxuLnVrLXdpZHRoLTUtNiB7IHdpZHRoOiB+J2NhbGMoMTAwJSAqIDUgLyA2LjAwMSknOyB9XG5cbi8qIFBpeGVsICovXG4udWstd2lkdGgtc21hbGwgeyB3aWR0aDogQHdpZHRoLXNtYWxsLXdpZHRoOyB9XG4udWstd2lkdGgtbWVkaXVtIHsgd2lkdGg6IEB3aWR0aC1tZWRpdW0td2lkdGg7IH1cbi51ay13aWR0aC1sYXJnZSB7IHdpZHRoOiBAd2lkdGgtbGFyZ2Utd2lkdGg7IH1cbi51ay13aWR0aC14bGFyZ2UgeyB3aWR0aDogQHdpZHRoLXhsYXJnZS13aWR0aDsgfVxuLnVrLXdpZHRoLTJ4bGFyZ2UgeyB3aWR0aDogQHdpZHRoLTJ4bGFyZ2Utd2lkdGg7IH1cbi51ay13aWR0aC14eGxhcmdlIHdoZW4gKEBkZXByZWNhdGVkID0gdHJ1ZSkgeyB3aWR0aDogQHdpZHRoLTJ4bGFyZ2Utd2lkdGg7IH1cblxuLyogQXV0byAqL1xuLnVrLXdpZHRoLWF1dG8geyB3aWR0aDogYXV0bzsgfVxuXG4vKiBFeHBhbmQgKi9cbi51ay13aWR0aC1leHBhbmQge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAxcHg7XG59XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtc21hbGwpIHtcblxuICAgIC8qIFdob2xlICovXG4gICAgLnVrLXdpZHRoLTEtMVxcQHMgeyB3aWR0aDogMTAwJTsgfVxuXG4gICAgLyogSGFsdmVzICovXG4gICAgLnVrLXdpZHRoLTEtMlxcQHMgeyB3aWR0aDogNTAlOyB9XG5cbiAgICAvKiBUaGlyZHMgKi9cbiAgICAudWstd2lkdGgtMS0zXFxAcyB7IHdpZHRoOiB+J2NhbGMoMTAwJSAqIDEgLyAzLjAwMSknOyB9XG4gICAgLnVrLXdpZHRoLTItM1xcQHMgeyB3aWR0aDogfidjYWxjKDEwMCUgKiAyIC8gMy4wMDEpJzsgfVxuXG4gICAgLyogUXVhcnRlcnMgKi9cbiAgICAudWstd2lkdGgtMS00XFxAcyB7IHdpZHRoOiAyNSU7IH1cbiAgICAudWstd2lkdGgtMy00XFxAcyB7IHdpZHRoOiA3NSU7IH1cblxuICAgIC8qIEZpZnRocyAqL1xuICAgIC51ay13aWR0aC0xLTVcXEBzIHsgd2lkdGg6IDIwJTsgfVxuICAgIC51ay13aWR0aC0yLTVcXEBzIHsgd2lkdGg6IDQwJTsgfVxuICAgIC51ay13aWR0aC0zLTVcXEBzIHsgd2lkdGg6IDYwJTsgfVxuICAgIC51ay13aWR0aC00LTVcXEBzIHsgd2lkdGg6IDgwJTsgfVxuXG4gICAgLyogU2l4dGhzICovXG4gICAgLnVrLXdpZHRoLTEtNlxcQHMgeyB3aWR0aDogfidjYWxjKDEwMCUgKiAxIC8gNi4wMDEpJzsgfVxuICAgIC51ay13aWR0aC01LTZcXEBzIHsgd2lkdGg6IH4nY2FsYygxMDAlICogNSAvIDYuMDAxKSc7IH1cblxuICAgIC8qIFBpeGVsICovXG4gICAgLnVrLXdpZHRoLXNtYWxsXFxAcyB7IHdpZHRoOiBAd2lkdGgtc21hbGwtd2lkdGg7IH1cbiAgICAudWstd2lkdGgtbWVkaXVtXFxAcyB7IHdpZHRoOiBAd2lkdGgtbWVkaXVtLXdpZHRoOyB9XG4gICAgLnVrLXdpZHRoLWxhcmdlXFxAcyB7IHdpZHRoOiBAd2lkdGgtbGFyZ2Utd2lkdGg7IH1cbiAgICAudWstd2lkdGgteGxhcmdlXFxAcyB7IHdpZHRoOiBAd2lkdGgteGxhcmdlLXdpZHRoOyB9XG4gICAgLnVrLXdpZHRoLTJ4bGFyZ2VcXEBzIHsgd2lkdGg6IEB3aWR0aC0yeGxhcmdlLXdpZHRoOyB9XG4gICAgLnVrLXdpZHRoLXh4bGFyZ2VcXEBzIHdoZW4gKEBkZXByZWNhdGVkID0gdHJ1ZSkgeyB3aWR0aDogQHdpZHRoLTJ4bGFyZ2Utd2lkdGg7IH1cblxuICAgIC8qIEF1dG8gKi9cbiAgICAudWstd2lkdGgtYXV0b1xcQHMgeyB3aWR0aDogYXV0bzsgfVxuXG4gICAgLyogRXhwYW5kICovXG4gICAgLnVrLXdpZHRoLWV4cGFuZFxcQHMge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDFweDtcbiAgICB9XG5cbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAvKiBXaG9sZSAqL1xuICAgIC51ay13aWR0aC0xLTFcXEBtIHsgd2lkdGg6IDEwMCU7IH1cblxuICAgIC8qIEhhbHZlcyAqL1xuICAgIC51ay13aWR0aC0xLTJcXEBtIHsgd2lkdGg6IDUwJTsgfVxuXG4gICAgLyogVGhpcmRzICovXG4gICAgLnVrLXdpZHRoLTEtM1xcQG0geyB3aWR0aDogfidjYWxjKDEwMCUgKiAxIC8gMy4wMDEpJzsgfVxuICAgIC51ay13aWR0aC0yLTNcXEBtIHsgd2lkdGg6IH4nY2FsYygxMDAlICogMiAvIDMuMDAxKSc7IH1cblxuICAgIC8qIFF1YXJ0ZXJzICovXG4gICAgLnVrLXdpZHRoLTEtNFxcQG0geyB3aWR0aDogMjUlOyB9XG4gICAgLnVrLXdpZHRoLTMtNFxcQG0geyB3aWR0aDogNzUlOyB9XG5cbiAgICAvKiBGaWZ0aHMgKi9cbiAgICAudWstd2lkdGgtMS01XFxAbSB7IHdpZHRoOiAyMCU7IH1cbiAgICAudWstd2lkdGgtMi01XFxAbSB7IHdpZHRoOiA0MCU7IH1cbiAgICAudWstd2lkdGgtMy01XFxAbSB7IHdpZHRoOiA2MCU7IH1cbiAgICAudWstd2lkdGgtNC01XFxAbSB7IHdpZHRoOiA4MCU7IH1cblxuICAgIC8qIFNpeHRocyAqL1xuICAgIC51ay13aWR0aC0xLTZcXEBtIHsgd2lkdGg6IH4nY2FsYygxMDAlICogMSAvIDYuMDAxKSc7IH1cbiAgICAudWstd2lkdGgtNS02XFxAbSB7IHdpZHRoOiB+J2NhbGMoMTAwJSAqIDUgLyA2LjAwMSknOyB9XG5cbiAgICAvKiBQaXhlbCAqL1xuICAgIC51ay13aWR0aC1zbWFsbFxcQG0geyB3aWR0aDogQHdpZHRoLXNtYWxsLXdpZHRoOyB9XG4gICAgLnVrLXdpZHRoLW1lZGl1bVxcQG0geyB3aWR0aDogQHdpZHRoLW1lZGl1bS13aWR0aDsgfVxuICAgIC51ay13aWR0aC1sYXJnZVxcQG0geyB3aWR0aDogQHdpZHRoLWxhcmdlLXdpZHRoOyB9XG4gICAgLnVrLXdpZHRoLXhsYXJnZVxcQG0geyB3aWR0aDogQHdpZHRoLXhsYXJnZS13aWR0aDsgfVxuICAgIC51ay13aWR0aC0yeGxhcmdlXFxAbSB7IHdpZHRoOiBAd2lkdGgtMnhsYXJnZS13aWR0aDsgfVxuICAgIC51ay13aWR0aC14eGxhcmdlXFxAbSB3aGVuIChAZGVwcmVjYXRlZCA9IHRydWUpIHsgd2lkdGg6IEB3aWR0aC0yeGxhcmdlLXdpZHRoOyB9XG5cbiAgICAgLyogQXV0byAqL1xuICAgIC51ay13aWR0aC1hdXRvXFxAbSB7IHdpZHRoOiBhdXRvOyB9XG5cbiAgICAvKiBFeHBhbmQgKi9cbiAgICAudWstd2lkdGgtZXhwYW5kXFxAbSB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMXB4O1xuICAgIH1cblxufVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1sYXJnZSkge1xuXG4gICAgLyogV2hvbGUgKi9cbiAgICAudWstd2lkdGgtMS0xXFxAbCB7IHdpZHRoOiAxMDAlOyB9XG5cbiAgICAvKiBIYWx2ZXMgKi9cbiAgICAudWstd2lkdGgtMS0yXFxAbCB7IHdpZHRoOiA1MCU7IH1cblxuICAgIC8qIFRoaXJkcyAqL1xuICAgIC51ay13aWR0aC0xLTNcXEBsIHsgd2lkdGg6IH4nY2FsYygxMDAlICogMSAvIDMuMDAxKSc7IH1cbiAgICAudWstd2lkdGgtMi0zXFxAbCB7IHdpZHRoOiB+J2NhbGMoMTAwJSAqIDIgLyAzLjAwMSknOyB9XG5cbiAgICAvKiBRdWFydGVycyAqL1xuICAgIC51ay13aWR0aC0xLTRcXEBsIHsgd2lkdGg6IDI1JTsgfVxuICAgIC51ay13aWR0aC0zLTRcXEBsIHsgd2lkdGg6IDc1JTsgfVxuXG4gICAgLyogRmlmdGhzICovXG4gICAgLnVrLXdpZHRoLTEtNVxcQGwgeyB3aWR0aDogMjAlOyB9XG4gICAgLnVrLXdpZHRoLTItNVxcQGwgeyB3aWR0aDogNDAlOyB9XG4gICAgLnVrLXdpZHRoLTMtNVxcQGwgeyB3aWR0aDogNjAlOyB9XG4gICAgLnVrLXdpZHRoLTQtNVxcQGwgeyB3aWR0aDogODAlOyB9XG5cbiAgICAvKiBTaXh0aHMgKi9cbiAgICAudWstd2lkdGgtMS02XFxAbCB7IHdpZHRoOiB+J2NhbGMoMTAwJSAqIDEgLyA2LjAwMSknOyB9XG4gICAgLnVrLXdpZHRoLTUtNlxcQGwgeyB3aWR0aDogfidjYWxjKDEwMCUgKiA1IC8gNi4wMDEpJzsgfVxuXG4gICAgLyogUGl4ZWwgKi9cbiAgICAudWstd2lkdGgtc21hbGxcXEBsIHsgd2lkdGg6IEB3aWR0aC1zbWFsbC13aWR0aDsgfVxuICAgIC51ay13aWR0aC1tZWRpdW1cXEBsIHsgd2lkdGg6IEB3aWR0aC1tZWRpdW0td2lkdGg7IH1cbiAgICAudWstd2lkdGgtbGFyZ2VcXEBsIHsgd2lkdGg6IEB3aWR0aC1sYXJnZS13aWR0aDsgfVxuICAgIC51ay13aWR0aC14bGFyZ2VcXEBsIHsgd2lkdGg6IEB3aWR0aC14bGFyZ2Utd2lkdGg7IH1cbiAgICAudWstd2lkdGgtMnhsYXJnZVxcQGwgeyB3aWR0aDogQHdpZHRoLTJ4bGFyZ2Utd2lkdGg7IH1cbiAgICAudWstd2lkdGgteHhsYXJnZVxcQGwgd2hlbiAoQGRlcHJlY2F0ZWQgPSB0cnVlKSB7IHdpZHRoOiBAd2lkdGgtMnhsYXJnZS13aWR0aDsgfVxuXG4gICAgLyogQXV0byAqL1xuICAgIC51ay13aWR0aC1hdXRvXFxAbCB7IHdpZHRoOiBhdXRvOyB9XG5cbiAgICAvKiBFeHBhbmQgKi9cbiAgICAudWstd2lkdGgtZXhwYW5kXFxAbCB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMXB4O1xuICAgIH1cblxufVxuXG4vKiBMYXJnZSBzY3JlZW4gYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LXhsYXJnZSkge1xuXG4gICAgLyogV2hvbGUgKi9cbiAgICAudWstd2lkdGgtMS0xXFxAeGwgeyB3aWR0aDogMTAwJTsgfVxuXG4gICAgLyogSGFsdmVzICovXG4gICAgLnVrLXdpZHRoLTEtMlxcQHhsIHsgd2lkdGg6IDUwJTsgfVxuXG4gICAgLyogVGhpcmRzICovXG4gICAgLnVrLXdpZHRoLTEtM1xcQHhsIHsgd2lkdGg6IH4nY2FsYygxMDAlICogMSAvIDMuMDAxKSc7IH1cbiAgICAudWstd2lkdGgtMi0zXFxAeGwgeyB3aWR0aDogfidjYWxjKDEwMCUgKiAyIC8gMy4wMDEpJzsgfVxuXG4gICAgLyogUXVhcnRlcnMgKi9cbiAgICAudWstd2lkdGgtMS00XFxAeGwgeyB3aWR0aDogMjUlOyB9XG4gICAgLnVrLXdpZHRoLTMtNFxcQHhsIHsgd2lkdGg6IDc1JTsgfVxuXG4gICAgLyogRmlmdGhzICovXG4gICAgLnVrLXdpZHRoLTEtNVxcQHhsIHsgd2lkdGg6IDIwJTsgfVxuICAgIC51ay13aWR0aC0yLTVcXEB4bCB7IHdpZHRoOiA0MCU7IH1cbiAgICAudWstd2lkdGgtMy01XFxAeGwgeyB3aWR0aDogNjAlOyB9XG4gICAgLnVrLXdpZHRoLTQtNVxcQHhsIHsgd2lkdGg6IDgwJTsgfVxuXG4gICAgLyogU2l4dGhzICovXG4gICAgLnVrLXdpZHRoLTEtNlxcQHhsIHsgd2lkdGg6IH4nY2FsYygxMDAlICogMSAvIDYuMDAxKSc7IH1cbiAgICAudWstd2lkdGgtNS02XFxAeGwgeyB3aWR0aDogfidjYWxjKDEwMCUgKiA1IC8gNi4wMDEpJzsgfVxuXG4gICAgLyogUGl4ZWwgKi9cbiAgICAudWstd2lkdGgtc21hbGxcXEB4bCB7IHdpZHRoOiBAd2lkdGgtc21hbGwtd2lkdGg7IH1cbiAgICAudWstd2lkdGgtbWVkaXVtXFxAeGwgeyB3aWR0aDogQHdpZHRoLW1lZGl1bS13aWR0aDsgfVxuICAgIC51ay13aWR0aC1sYXJnZVxcQHhsIHsgd2lkdGg6IEB3aWR0aC1sYXJnZS13aWR0aDsgfVxuICAgIC51ay13aWR0aC14bGFyZ2VcXEB4bCB7IHdpZHRoOiBAd2lkdGgteGxhcmdlLXdpZHRoOyB9XG4gICAgLnVrLXdpZHRoLTJ4bGFyZ2VcXEB4bCB7IHdpZHRoOiBAd2lkdGgtMnhsYXJnZS13aWR0aDsgfVxuICAgIC51ay13aWR0aC14eGxhcmdlXFxAeGwgd2hlbiAoQGRlcHJlY2F0ZWQgPSB0cnVlKSB7IHdpZHRoOiBAd2lkdGgtMnhsYXJnZS13aWR0aDsgfVxuXG4gICAgLyogQXV0byAqL1xuICAgIC51ay13aWR0aC1hdXRvXFxAeGwgeyB3aWR0aDogYXV0bzsgfVxuXG4gICAgLyogRXhwYW5kICovXG4gICAgLnVrLXdpZHRoLWV4cGFuZFxcQHhsIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiAxcHg7XG4gICAgfVxuXG59XG5cbi8qIEludHJpbnNpYyBXaWR0aHNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstd2lkdGgtbWF4LWNvbnRlbnQgeyB3aWR0aDogbWF4LWNvbnRlbnQ7IH1cblxuLnVrLXdpZHRoLW1pbi1jb250ZW50IHsgd2lkdGg6IG1pbi1jb250ZW50OyB9XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay13aWR0aC1taXNjKCk7XG5cbi5ob29rLXdpZHRoLW1pc2MoKSB7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBIZWlnaHRcbi8vIERlc2NyaXB0aW9uOiAgICAgVXRpbGl0aWVzIGZvciBoZWlnaHRzXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstaGVpZ2h0LSpgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGhlaWdodC1zbWFsbC1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUwcHg7XG5AaGVpZ2h0LW1lZGl1bS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAzMDBweDtcbkBoZWlnaHQtbGFyZ2UtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ1MHB4O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBIZWlnaHRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5bY2xhc3MqPSd1ay1oZWlnaHQnXSB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLypcbiAqIE9ubHkgd29ya3MgaWYgcGFyZW50IGVsZW1lbnQgaGFzIGEgaGVpZ2h0IHNldFxuICovXG5cbi51ay1oZWlnaHQtMS0xIHsgaGVpZ2h0OiAxMDAlOyB9XG5cbi8qXG4gKiBVc2VmdWwgdG8gY3JlYXRlIGltYWdlIHRlYXNlcnNcbiAqL1xuXG4udWstaGVpZ2h0LXZpZXdwb3J0IHsgbWluLWhlaWdodDogMTAwdmg7IH1cbi51ay1oZWlnaHQtdmlld3BvcnQtMiB7IG1pbi1oZWlnaHQ6IDIwMHZoOyB9XG4udWstaGVpZ2h0LXZpZXdwb3J0LTMgeyBtaW4taGVpZ2h0OiAzMDB2aDsgfVxuLnVrLWhlaWdodC12aWV3cG9ydC00IHsgbWluLWhlaWdodDogNDAwdmg7IH1cblxuLypcbiAqIFBpeGVsXG4gKiBVc2VmdWwgZm9yIGBvdmVyZmxvdzogYXV0b2BcbiAqL1xuXG4udWstaGVpZ2h0LXNtYWxsIHsgaGVpZ2h0OiBAaGVpZ2h0LXNtYWxsLWhlaWdodDsgfVxuLnVrLWhlaWdodC1tZWRpdW0geyBoZWlnaHQ6IEBoZWlnaHQtbWVkaXVtLWhlaWdodDsgfVxuLnVrLWhlaWdodC1sYXJnZSB7IGhlaWdodDogQGhlaWdodC1sYXJnZS1oZWlnaHQ7IH1cblxuLnVrLWhlaWdodC1tYXgtc21hbGwgeyBtYXgtaGVpZ2h0OiBAaGVpZ2h0LXNtYWxsLWhlaWdodDsgfVxuLnVrLWhlaWdodC1tYXgtbWVkaXVtIHsgbWF4LWhlaWdodDogQGhlaWdodC1tZWRpdW0taGVpZ2h0OyB9XG4udWstaGVpZ2h0LW1heC1sYXJnZSB7IG1heC1oZWlnaHQ6IEBoZWlnaHQtbGFyZ2UtaGVpZ2h0OyB9XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1oZWlnaHQtbWlzYygpO1xuXG4uaG9vay1oZWlnaHQtbWlzYygpIHt9XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIFRleHRcbi8vIERlc2NyaXB0aW9uOiAgICAgVXRpbGl0aWVzIGZvciB0ZXh0XG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstdGV4dC0qYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkB0ZXh0LWxlYWQtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbGFyZ2UtZm9udC1zaXplO1xuQHRleHQtbGVhZC1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgMS41O1xuQHRleHQtbGVhZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcblxuQHRleHQtbWV0YS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zbWFsbC1mb250LXNpemU7XG5AdGV4dC1tZXRhLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAxLjQ7XG5AdGV4dC1tZXRhLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW11dGVkLWNvbG9yO1xuXG5AdGV4dC1zbWFsbC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZTtcbkB0ZXh0LXNtYWxsLWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgIDEuNTtcblxuQHRleHQtbGFyZ2UtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1sYXJnZS1mb250LXNpemU7XG5AdGV4dC1sYXJnZS1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAxLjU7XG5cbkB0ZXh0LW11dGVkLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtY29sb3I7XG5AdGV4dC1lbXBoYXNpcy1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuQHRleHQtcHJpbWFyeS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1wcmltYXJ5LWJhY2tncm91bmQ7XG5AdGV4dC1zZWNvbmRhcnktY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1iYWNrZ3JvdW5kO1xuQHRleHQtc3VjY2Vzcy1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zdWNjZXNzLWJhY2tncm91bmQ7XG5AdGV4dC13YXJuaW5nLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXdhcm5pbmctYmFja2dyb3VuZDtcbkB0ZXh0LWRhbmdlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZGFuZ2VyLWJhY2tncm91bmQ7XG5cbkB0ZXh0LWJhY2tncm91bmQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kO1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBUZXh0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuXG4vKiBTdHlsZSBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstdGV4dC1sZWFkIHtcbiAgICBmb250LXNpemU6IEB0ZXh0LWxlYWQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBAdGV4dC1sZWFkLWxpbmUtaGVpZ2h0O1xuICAgIGNvbG9yOiBAdGV4dC1sZWFkLWNvbG9yO1xuICAgIC5ob29rLXRleHQtbGVhZCgpO1xufVxuXG4udWstdGV4dC1tZXRhIHtcbiAgICBmb250LXNpemU6IEB0ZXh0LW1ldGEtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBAdGV4dC1tZXRhLWxpbmUtaGVpZ2h0O1xuICAgIGNvbG9yOiBAdGV4dC1tZXRhLWNvbG9yO1xuICAgIC5ob29rLXRleHQtbWV0YSgpO1xufVxuXG5cbi8qIFNpemUgbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXRleHQtc21hbGwge1xuICAgIGZvbnQtc2l6ZTogQHRleHQtc21hbGwtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBAdGV4dC1zbWFsbC1saW5lLWhlaWdodDtcbiAgICAuaG9vay10ZXh0LXNtYWxsKCk7XG59XG5cbi51ay10ZXh0LWxhcmdlIHtcbiAgICBmb250LXNpemU6IEB0ZXh0LWxhcmdlLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogQHRleHQtbGFyZ2UtbGluZS1oZWlnaHQ7XG4gICAgLmhvb2stdGV4dC1sYXJnZSgpO1xufVxuXG4udWstdGV4dC1kZWZhdWx0IHtcbiAgICBmb250LXNpemU6IEBnbG9iYWwtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBAZ2xvYmFsLWxpbmUtaGVpZ2h0O1xufVxuXG5cbi8qIFdlaWdodCBtb2RpZmllclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay10ZXh0LWxpZ2h0IHsgZm9udC13ZWlnaHQ6IDMwMDsgfVxuLnVrLXRleHQtbm9ybWFsIHsgZm9udC13ZWlnaHQ6IDQwMDsgfVxuLnVrLXRleHQtYm9sZCB7IGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuLnVrLXRleHQtbGlnaHRlciB7IGZvbnQtd2VpZ2h0OiBsaWdodGVyOyB9XG4udWstdGV4dC1ib2xkZXIgeyBmb250LXdlaWdodDogYm9sZGVyOyB9XG5cblxuLyogU3R5bGUgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstdGV4dC1pdGFsaWMgeyBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuXG4vKiBUcmFuc2Zvcm0gbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstdGV4dC1jYXBpdGFsaXplIHsgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemUgIWltcG9ydGFudDsgfVxuLnVrLXRleHQtdXBwZXJjYXNlIHsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50OyB9XG4udWstdGV4dC1sb3dlcmNhc2UgeyB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlICFpbXBvcnRhbnQ7IH1cblxuXG4vKiBEZWNvcmF0aW9uIG1vZGlmaWVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXRleHQtZGVjb3JhdGlvbi1ub25lIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7IH1cblxuXG4vKiBDb2xvciBtb2RpZmllcnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstdGV4dC1tdXRlZCB7IGNvbG9yOiBAdGV4dC1tdXRlZC1jb2xvciAhaW1wb3J0YW50OyB9XG4udWstdGV4dC1lbXBoYXNpcyB7IGNvbG9yOiBAdGV4dC1lbXBoYXNpcy1jb2xvciAhaW1wb3J0YW50OyB9XG4udWstdGV4dC1wcmltYXJ5IHsgY29sb3I6IEB0ZXh0LXByaW1hcnktY29sb3IgIWltcG9ydGFudDsgfVxuLnVrLXRleHQtc2Vjb25kYXJ5IHsgY29sb3I6IEB0ZXh0LXNlY29uZGFyeS1jb2xvciAhaW1wb3J0YW50OyB9XG4udWstdGV4dC1zdWNjZXNzIHsgY29sb3I6IEB0ZXh0LXN1Y2Nlc3MtY29sb3IgIWltcG9ydGFudDsgfVxuLnVrLXRleHQtd2FybmluZyB7IGNvbG9yOiBAdGV4dC13YXJuaW5nLWNvbG9yICFpbXBvcnRhbnQ7IH1cbi51ay10ZXh0LWRhbmdlciB7IGNvbG9yOiBAdGV4dC1kYW5nZXItY29sb3IgIWltcG9ydGFudDsgfVxuXG5cbi8qIEJhY2tncm91bmQgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gVGhlIGJhY2tncm91bmQgY2xpcHMgdG8gdGhlIGZvcmVncm91bmQgdGV4dC4gV29ya3MgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gRGVmYXVsdCBjb2xvciBpcyBzZXQgdG8gdHJhbnNwYXJlbnQuXG4gKiAzLiBDb250YWluZXIgZml0cyB0aGUgdGV4dFxuICogNC4gU3R5bGVcbiAqL1xuXG4udWstdGV4dC1iYWNrZ3JvdW5kIHtcbiAgICAvKiAxICovXG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLyogMiAqL1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIC8qIDMgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgLyogNCAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6IEB0ZXh0LWJhY2tncm91bmQtY29sb3I7XG4gICAgLmhvb2stdGV4dC1iYWNrZ3JvdW5kKCk7XG59XG5cblxuLyogQWxpZ25tZW50IG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay10ZXh0LWxlZnQgeyB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cbi51ay10ZXh0LXJpZ2h0IHsgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxuLnVrLXRleHQtY2VudGVyIHsgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH1cbi51ay10ZXh0LWp1c3RpZnkgeyB0ZXh0LWFsaWduOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7IH1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1zbWFsbCkge1xuXG4gICAgLnVrLXRleHQtbGVmdFxcQHMgeyB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cbiAgICAudWstdGV4dC1yaWdodFxcQHMgeyB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XG4gICAgLnVrLXRleHQtY2VudGVyXFxAcyB7IHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9XG5cbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAudWstdGV4dC1sZWZ0XFxAbSB7IHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxuICAgIC51ay10ZXh0LXJpZ2h0XFxAbSB7IHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cbiAgICAudWstdGV4dC1jZW50ZXJcXEBtIHsgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH1cblxufVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1sYXJnZSkge1xuXG4gICAgLnVrLXRleHQtbGVmdFxcQGwgeyB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cbiAgICAudWstdGV4dC1yaWdodFxcQGwgeyB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XG4gICAgLnVrLXRleHQtY2VudGVyXFxAbCB7IHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9XG5cbn1cblxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC14bGFyZ2UpIHtcblxuICAgIC51ay10ZXh0LWxlZnRcXEB4bCB7IHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxuICAgIC51ay10ZXh0LXJpZ2h0XFxAeGwgeyB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XG4gICAgLnVrLXRleHQtY2VudGVyXFxAeGwgeyB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuXG59XG5cbi8qXG4gKiBWZXJ0aWNhbFxuICovXG5cbi51ay10ZXh0LXRvcCB7IHZlcnRpY2FsLWFsaWduOiB0b3AgIWltcG9ydGFudDsgfVxuLnVrLXRleHQtbWlkZGxlIHsgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50OyB9XG4udWstdGV4dC1ib3R0b20geyB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tICFpbXBvcnRhbnQ7IH1cbi51ay10ZXh0LWJhc2VsaW5lIHsgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7IH1cblxuXG4vKiBXcmFwIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBQcmV2ZW50IHRleHQgZnJvbSB3cmFwcGluZyBvbnRvIG11bHRpcGxlIGxpbmVzXG4gKi9cblxuLnVrLXRleHQtbm93cmFwIHsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4vKlxuICogMS4gTWFrZSBzdXJlIGEgbWF4LXdpZHRoIGlzIHNldCBhZnRlciB3aGljaCB0cnVuY2F0aW9uIGNhbiBvY2N1clxuICogMi4gUHJldmVudCB0ZXh0IGZyb20gd3JhcHBpbmcgb250byBtdWx0aXBsZSBsaW5lcywgYW5kIHRydW5jYXRlIHdpdGggYW4gZWxsaXBzaXNcbiAqIDMuIEZpeCBmb3IgdGFibGUgY2VsbHNcbiAqL1xuXG4udWstdGV4dC10cnVuY2F0ZSB7XG4gICAgLyogMSAqL1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAvKiAyICovXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vKiAyICovXG50aC51ay10ZXh0LXRydW5jYXRlLFxudGQudWstdGV4dC10cnVuY2F0ZSB7IG1heC13aWR0aDogMDsgfVxuXG4vKlxuICogV3JhcCBsb25nIHdvcmRzIG9udG8gdGhlIG5leHQgbGluZSBhbmQgYnJlYWsgdGhlbSBpZiB0aGV5IGFyZSB0b28gbG9uZyB0byBmaXQuXG4gKiAxLiBNYWtlIGl0IHdvcmsgd2l0aCB0YWJsZSBjZWxscyBpbiBhbGwgYnJvd3NlcnMuXG4gKiBOb3RlOiBOb3QgdXNpbmcgYGh5cGhlbnM6IGF1dG9gIGJlY2F1c2UgaXQgaHlwaGVuYXRlcyB0ZXh0IGV2ZW4gaWYgbm90IG5lZWRlZC5cbiAqL1xuXG4gLnVrLXRleHQtYnJlYWsgeyBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkOyB9XG5cbiAvKiAxICovXG4gdGgudWstdGV4dC1icmVhayxcbiB0ZC51ay10ZXh0LWJyZWFrIHsgd29yZC1icmVhazogYnJlYWstd29yZDsgfVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stdGV4dC1taXNjKCk7XG5cbi5ob29rLXRleHQtbGVhZCgpIHt9XG4uaG9vay10ZXh0LW1ldGEoKSB7fVxuLmhvb2stdGV4dC1zbWFsbCgpIHt9XG4uaG9vay10ZXh0LWxhcmdlKCkge31cbi5ob29rLXRleHQtYmFja2dyb3VuZCgpIHt9XG4uaG9vay10ZXh0LW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW52ZXJzZS10ZXh0LWxlYWQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1jb2xvcjtcbkBpbnZlcnNlLXRleHQtbWV0YS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yO1xuQGludmVyc2UtdGV4dC1tdXRlZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtbXV0ZWQtY29sb3I7XG5AaW52ZXJzZS10ZXh0LWVtcGhhc2lzLWNvbG9yOiAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcbkBpbnZlcnNlLXRleHQtcHJpbWFyeS1jb2xvcjogICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZDtcbkBpbnZlcnNlLXRleHQtc2Vjb25kYXJ5LWNvbG9yOiAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLXByaW1hcnktYmFja2dyb3VuZDtcblxuLmhvb2staW52ZXJzZSgpIHtcblxuICAgIC51ay10ZXh0LWxlYWQge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtdGV4dC1sZWFkLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLXRleHQtbGVhZCgpO1xuICAgIH1cblxuICAgIC51ay10ZXh0LW1ldGEge1xuICAgICAgICBjb2xvcjogQGludmVyc2UtdGV4dC1tZXRhLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLXRleHQtbWV0YSgpO1xuICAgIH1cblxuICAgIC51ay10ZXh0LW11dGVkIHsgY29sb3I6IEBpbnZlcnNlLXRleHQtbXV0ZWQtY29sb3IgIWltcG9ydGFudDsgfVxuICAgIC51ay10ZXh0LWVtcGhhc2lzIHsgY29sb3I6IEBpbnZlcnNlLXRleHQtZW1waGFzaXMtY29sb3IgIWltcG9ydGFudDsgfVxuICAgIC51ay10ZXh0LXByaW1hcnkgeyBjb2xvcjogQGludmVyc2UtdGV4dC1wcmltYXJ5LWNvbG9yICFpbXBvcnRhbnQ7IH1cbiAgICAudWstdGV4dC1zZWNvbmRhcnkgeyBjb2xvcjogQGludmVyc2UtdGV4dC1zZWNvbmRhcnktY29sb3IgIWltcG9ydGFudDsgfVxuXG59XG5cbi5ob29rLWludmVyc2UtdGV4dC1sZWFkKCkge31cbi5ob29rLWludmVyc2UtdGV4dC1tZXRhKCkge31cbiIsIi8vXG4vLyBDb21wb25lbnQ6IEJhc2Vcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gTmV3XG4vL1xuXG5AdGV4dC1sZWFkLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktZm9udC1mYW1pbHk7XG5AdGV4dC1sZWFkLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktZm9udC13ZWlnaHQ7XG5AdGV4dC1sZWFkLXRleHQtdHJhbnNmb3JtOiAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktdGV4dC10cmFuc2Zvcm07XG5AdGV4dC1sZWFkLWxldHRlci1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktbGV0dGVyLXNwYWNpbmc7XG5AdGV4dC1sZWFkLWZvbnQtc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXByaW1hcnktZm9udC1zdHlsZTtcblxuQHRleHQtbWV0YS1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktZm9udC1mYW1pbHk7XG5AdGV4dC1tZXRhLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1mb250LXdlaWdodDtcbkB0ZXh0LW1ldGEtdGV4dC10cmFuc2Zvcm06ICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LXRleHQtdHJhbnNmb3JtO1xuQHRleHQtbWV0YS1sZXR0ZXItc3BhY2luZzogICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktbGV0dGVyLXNwYWNpbmc7XG5AdGV4dC1tZXRhLWZvbnQtc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS1mb250LXN0eWxlO1xuXG5cbi8vIFN0eWxlIG1vZGlmaWVyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBMZWFkXG4vL1xuXG4uaG9vay10ZXh0LWxlYWQoKSB7fVxuXG4uaG9vay10ZXh0LWxlYWQoKSB3aGVuIG5vdCAoQHRleHQtbGVhZC1mb250LWZhbWlseSA9IGluaGVyaXQpIHtcbiAgICBmb250LWZhbWlseTogQHRleHQtbGVhZC1mb250LWZhbWlseTtcbn1cblxuLmhvb2stdGV4dC1sZWFkKCkgd2hlbiBub3QgKEB0ZXh0LWxlYWQtZm9udC13ZWlnaHQgPSBpbmhlcml0KSB7XG4gICAgZm9udC13ZWlnaHQ6IEB0ZXh0LWxlYWQtZm9udC13ZWlnaHQ7XG59XG5cbi5ob29rLXRleHQtbGVhZCgpIHdoZW4gbm90IChAdGV4dC1sZWFkLXRleHQtdHJhbnNmb3JtID0gaW5oZXJpdCkge1xuICAgIHRleHQtdHJhbnNmb3JtOiBAdGV4dC1sZWFkLXRleHQtdHJhbnNmb3JtO1xufVxuXG4uaG9vay10ZXh0LWxlYWQoKSB3aGVuIG5vdCAoQHRleHQtbGVhZC1sZXR0ZXItc3BhY2luZyA9IGluaGVyaXQpIHtcbiAgICBsZXR0ZXItc3BhY2luZzogQHRleHQtbGVhZC1sZXR0ZXItc3BhY2luZztcbn1cblxuLmhvb2stdGV4dC1sZWFkKCkgd2hlbiBub3QgKEB0ZXh0LWxlYWQtZm9udC1zdHlsZSA9IGluaGVyaXQpIHtcbiAgICBmb250LXN0eWxlOiBAdGV4dC1sZWFkLWZvbnQtc3R5bGU7XG59XG5cbi8vXG4vLyBNZXRhXG4vL1xuXG4uaG9vay10ZXh0LW1ldGEoKSB7fVxuXG4uaG9vay10ZXh0LW1ldGEoKSB3aGVuIG5vdCAoQHRleHQtbWV0YS1mb250LWZhbWlseSA9IGluaGVyaXQpIHtcbiAgICBmb250LWZhbWlseTogQHRleHQtbWV0YS1mb250LWZhbWlseTtcbn1cblxuLmhvb2stdGV4dC1tZXRhKCkgd2hlbiBub3QgKEB0ZXh0LW1ldGEtZm9udC13ZWlnaHQgPSBpbmhlcml0KSB7XG4gICAgZm9udC13ZWlnaHQ6IEB0ZXh0LW1ldGEtZm9udC13ZWlnaHQ7XG59XG5cbi5ob29rLXRleHQtbWV0YSgpIHdoZW4gbm90IChAdGV4dC1tZXRhLXRleHQtdHJhbnNmb3JtID0gaW5oZXJpdCkge1xuICAgIHRleHQtdHJhbnNmb3JtOiBAdGV4dC1tZXRhLXRleHQtdHJhbnNmb3JtO1xufVxuXG4uaG9vay10ZXh0LW1ldGEoKSB3aGVuIG5vdCAoQHRleHQtbWV0YS1sZXR0ZXItc3BhY2luZyA9IGluaGVyaXQpIHtcbiAgICBsZXR0ZXItc3BhY2luZzogQHRleHQtbWV0YS1sZXR0ZXItc3BhY2luZztcbn1cblxuLmhvb2stdGV4dC1tZXRhKCkgd2hlbiBub3QgKEB0ZXh0LW1ldGEtZm9udC1zdHlsZSA9IGluaGVyaXQpIHtcbiAgICBmb250LXN0eWxlOiBAdGV4dC1tZXRhLWZvbnQtc3R5bGU7XG59XG5cblxuLy8gU2l6ZSBtb2RpZmllcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay10ZXh0LXNtYWxsKCkge31cblxuLmhvb2stdGV4dC1sYXJnZSgpIHt9XG5cblxuLy8gQmFja2dyb3VuZCBtb2RpZmllclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXRleHQtYmFja2dyb3VuZCgpIHt9XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXRleHQtbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWludmVyc2UtdGV4dC1sZWFkKCkge31cbi5ob29rLWludmVyc2UtdGV4dC1tZXRhKCkge30iLCIvL1xuLy8gQ29tcG9uZW50OiBCYXNlXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIE5ld1xuLy9cblxuQHRleHQtbWV0YS1saW5rLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgQHRleHQtbWV0YS1jb2xvcjtcbkB0ZXh0LW1ldGEtbGluay1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtY29sb3I7XG5cblxuLy8gU3R5bGUgbW9kaWZpZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stdGV4dC1sZWFkKCkge31cblxuLmhvb2stdGV4dC1tZXRhKCkge1xuICAgPiBhIHsgY29sb3I6IEB0ZXh0LW1ldGEtbGluay1jb2xvcjsgfVxuXG4gICA+IGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogQHRleHQtbWV0YS1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG59XG5cblxuLy8gU2l6ZSBtb2RpZmllcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay10ZXh0LXNtYWxsKCkge31cblxuLmhvb2stdGV4dC1sYXJnZSgpIHt9XG5cblxuLy8gQmFja2dyb3VuZCBtb2RpZmllclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXRleHQtYmFja2dyb3VuZCgpIHt9XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXRleHQtbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWludmVyc2UtdGV4dC1sZWFkKCkge31cbi5ob29rLWludmVyc2UtdGV4dC1tZXRhKCkge30iLCIvL1xuLy8gQ29tcG9uZW50OiBCYXNlXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIE5ld1xuLy9cblxuQGludGVybmFsLXRleHQtYmFja2dyb3VuZC1jb2xvci1ncmFkaWVudDogICAgICAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIEB0ZXh0LWJhY2tncm91bmQtY29sb3IgMCUsIHNwaW4oQHRleHQtYmFja2dyb3VuZC1jb2xvciwgNDAlKSAxMDAlKTtcblxuXG4vLyBTdHlsZSBtb2RpZmllcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay10ZXh0LWxlYWQoKSB7fVxuXG4uaG9vay10ZXh0LW1ldGEoKSB7fVxuXG5cbi8vIFNpemUgbW9kaWZpZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stdGV4dC1zbWFsbCgpIHt9XG5cbi5ob29rLXRleHQtbGFyZ2UoKSB7fVxuXG5cbi8vIEJhY2tncm91bmQgbW9kaWZpZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay10ZXh0LWJhY2tncm91bmQoKSB3aGVuIG5vdCAoQGludGVybmFsLXRleHQtYmFja2dyb3VuZC1jb2xvci1ncmFkaWVudCA9IH4nJykge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IEBpbnRlcm5hbC10ZXh0LWJhY2tncm91bmQtY29sb3ItZ3JhZGllbnQ7XG59XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXRleHQtbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWludmVyc2UtdGV4dC1sZWFkKCkge31cbi5ob29rLWludmVyc2UtdGV4dC1tZXRhKCkge31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgQ29sdW1uXG4vLyBEZXNjcmlwdGlvbjogICAgIFV0aWxpdGllcyBmb3IgdGV4dCBjb2x1bW5zXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstY29sdW1uLSpgXG4vL1xuLy8gU3ViLW9iamVjdHM6ICAgICBgdWstY29sdW1uLXNwYW5gXG4vL1xuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstY29sdW1uLWRpdmlkZXJgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGNvbHVtbi1ndXR0ZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1ndXR0ZXI7XG5AY29sdW1uLWd1dHRlci1sOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW1lZGl1bS1ndXR0ZXI7XG5cbkBjb2x1bW4tZGl2aWRlci1ydWxlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtYm9yZGVyO1xuQGNvbHVtbi1kaXZpZGVyLXJ1bGUtd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgMXB4O1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBDb2x1bW5cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5bY2xhc3MqPSd1ay1jb2x1bW4tJ10geyBjb2x1bW4tZ2FwOiBAY29sdW1uLWd1dHRlcjsgfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1sYXJnZSkge1xuXG4gICAgW2NsYXNzKj0ndWstY29sdW1uLSddIHsgY29sdW1uLWdhcDogQGNvbHVtbi1ndXR0ZXItbDsgfVxuXG59XG5cbi8qXG4gKiBGaXggaW1hZ2UgMXB4IGxpbmUgd3JhcHBpbmcgaW50byB0aGUgbmV4dCBjb2x1bW4gaW4gQ2hyb21lXG4gKi9cblxuW2NsYXNzKj0ndWstY29sdW1uLSddIGltZyB7IHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApOyB9XG5cblxuLyogRGl2aWRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBEb3VibGUgdGhlIGNvbHVtbiBnYXBcbiAqL1xuXG4udWstY29sdW1uLWRpdmlkZXIge1xuICAgIGNvbHVtbi1ydWxlOiBAY29sdW1uLWRpdmlkZXItcnVsZS13aWR0aCBzb2xpZCBAY29sdW1uLWRpdmlkZXItcnVsZS1jb2xvcjtcbiAgICAvKiAxICovXG4gICAgY29sdW1uLWdhcDogKEBjb2x1bW4tZ3V0dGVyICogMik7XG59XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LWxhcmdlKSB7XG5cbiAgICAudWstY29sdW1uLWRpdmlkZXIge1xuICAgICAgICBjb2x1bW4tZ2FwOiAoQGNvbHVtbi1ndXR0ZXItbCAqIDIpO1xuICAgIH1cblxufVxuXG5cbi8qIFdpZHRoIG1vZGlmaWVyc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1jb2x1bW4tMS0yIHsgY29sdW1uLWNvdW50OiAyO31cbi51ay1jb2x1bW4tMS0zIHsgY29sdW1uLWNvdW50OiAzOyB9XG4udWstY29sdW1uLTEtNCB7IGNvbHVtbi1jb3VudDogNDsgfVxuLnVrLWNvbHVtbi0xLTUgeyBjb2x1bW4tY291bnQ6IDU7IH1cbi51ay1jb2x1bW4tMS02IHsgY29sdW1uLWNvdW50OiA2OyB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtc21hbGwpIHtcblxuICAgIC51ay1jb2x1bW4tMS0yXFxAcyB7IGNvbHVtbi1jb3VudDogMjsgfVxuICAgIC51ay1jb2x1bW4tMS0zXFxAcyB7IGNvbHVtbi1jb3VudDogMzsgfVxuICAgIC51ay1jb2x1bW4tMS00XFxAcyB7IGNvbHVtbi1jb3VudDogNDsgfVxuICAgIC51ay1jb2x1bW4tMS01XFxAcyB7IGNvbHVtbi1jb3VudDogNTsgfVxuICAgIC51ay1jb2x1bW4tMS02XFxAcyB7IGNvbHVtbi1jb3VudDogNjsgfVxuXG59XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LW1lZGl1bSkge1xuXG4gICAgLnVrLWNvbHVtbi0xLTJcXEBtIHsgY29sdW1uLWNvdW50OiAyOyB9XG4gICAgLnVrLWNvbHVtbi0xLTNcXEBtIHsgY29sdW1uLWNvdW50OiAzOyB9XG4gICAgLnVrLWNvbHVtbi0xLTRcXEBtIHsgY29sdW1uLWNvdW50OiA0OyB9XG4gICAgLnVrLWNvbHVtbi0xLTVcXEBtIHsgY29sdW1uLWNvdW50OiA1OyB9XG4gICAgLnVrLWNvbHVtbi0xLTZcXEBtIHsgY29sdW1uLWNvdW50OiA2OyB9XG5cbn1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbGFyZ2UpIHtcblxuICAgIC51ay1jb2x1bW4tMS0yXFxAbCB7IGNvbHVtbi1jb3VudDogMjsgfVxuICAgIC51ay1jb2x1bW4tMS0zXFxAbCB7IGNvbHVtbi1jb3VudDogMzsgfVxuICAgIC51ay1jb2x1bW4tMS00XFxAbCB7IGNvbHVtbi1jb3VudDogNDsgfVxuICAgIC51ay1jb2x1bW4tMS01XFxAbCB7IGNvbHVtbi1jb3VudDogNTsgfVxuICAgIC51ay1jb2x1bW4tMS02XFxAbCB7IGNvbHVtbi1jb3VudDogNjsgfVxuXG59XG5cbi8qIExhcmdlIHNjcmVlbiBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQteGxhcmdlKSB7XG5cbiAgICAudWstY29sdW1uLTEtMlxcQHhsIHsgY29sdW1uLWNvdW50OiAyOyB9XG4gICAgLnVrLWNvbHVtbi0xLTNcXEB4bCB7IGNvbHVtbi1jb3VudDogMzsgfVxuICAgIC51ay1jb2x1bW4tMS00XFxAeGwgeyBjb2x1bW4tY291bnQ6IDQ7IH1cbiAgICAudWstY29sdW1uLTEtNVxcQHhsIHsgY29sdW1uLWNvdW50OiA1OyB9XG4gICAgLnVrLWNvbHVtbi0xLTZcXEB4bCB7IGNvbHVtbi1jb3VudDogNjsgfVxuXG59XG5cbi8qIE1ha2UgZWxlbWVudCBzcGFuIGFjcm9zcyBhbGwgY29sdW1uc1xuICogRG9lcyBub3Qgd29yayBpbiBGaXJlZm94IHlldFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1jb2x1bW4tc3BhbiB7IGNvbHVtbi1zcGFuOiBhbGw7IH1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWNvbHVtbi1taXNjKCk7XG5cbi5ob29rLWNvbHVtbi1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGludmVyc2UtY29sdW1uLWRpdmlkZXItcnVsZS1jb2xvcjogICAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1ib3JkZXI7XG5cbi5ob29rLWludmVyc2UoKSB7XG5cbiAgICAudWstY29sdW1uLWRpdmlkZXIgeyBjb2x1bW4tcnVsZS1jb2xvcjogQGludmVyc2UtY29sdW1uLWRpdmlkZXItcnVsZS1jb2xvcjsgfVxuXG59XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIENvdmVyXG4vLyBEZXNjcmlwdGlvbjogICAgIFV0aWxpdGllcyB0byBsZXQgZW1iZWRkZWQgY29udGVudCBjb3ZlciB0aGVpciBjb250YWluZXIgaW4gYSBjZW50ZXJlZCBwb3NpdGlvblxuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWNvdmVyYFxuLy9cbi8vIFN1Yi1vYmplY3Q6ICAgICAgYHVrLWNvdmVyLWNvbnRhaW5lcmBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogQ292ZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogV29ya3Mgd2l0aCBpZnJhbWVzIGFuZCBlbWJlZGRlZCBjb250ZW50XG4gKiAxLiBVc2UgYXR0cmlidXRlIHRvIGFwcGx5IHRyYW5zZm9ybSBpbnN0YW50bHkuIE5lZWRlZCBpZiB0cmFuc2Zvcm0gaXMgdHJhbnNpdGlvbmVkLlxuICogMi4gUmVzZXQgcmVzcG9uc2l2ZW5lc3MgZm9yIGVtYmVkZGVkIGNvbnRlbnRcbiAqIDMuIENlbnRlciBvYmplY3RcbiAqIE5vdGU6IFBlcmNlbnQgdmFsdWVzIG9uIHRoZSBgdG9wYCBwcm9wZXJ0eSBvbmx5IHdvcmtzIGlmIHRoaXMgZWxlbWVudFxuICogICAgICAgaXMgYWJzb2x1dGUgcG9zaXRpb25lZCBvciBpZiB0aGUgY29udGFpbmVyIGhhcyBhIGhlaWdodFxuICovXG5cbi8qIDEgKi9cblt1ay1jb3Zlcl0sXG5bZGF0YS11ay1jb3Zlcl0ge1xuICAgIC8qIDIgKi9cbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgLyogMyAqL1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdG9wOiA1MCU7XG4gICAgLS11ay1wb3NpdGlvbi10cmFuc2xhdGUteDogLTUwJTtcbiAgICAtLXVrLXBvc2l0aW9uLXRyYW5zbGF0ZS15OiAtNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXVrLXBvc2l0aW9uLXRyYW5zbGF0ZS14KSwgdmFyKC0tdWstcG9zaXRpb24tdHJhbnNsYXRlLXkpKTtcbn1cblxuaWZyYW1lW3VrLWNvdmVyXSxcbmlmcmFtZVtkYXRhLXVrLWNvdmVyXSB7IHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cblxuLyogQ29udGFpbmVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFBhcmVudCBjb250YWluZXIgd2hpY2ggY2xpcHMgcmVzaXplZCBvYmplY3RcbiAqIDIuIE5lZWRlZCBpZiB0aGUgY2hpbGQgaXMgcG9zaXRpb25lZCBhYnNvbHV0ZS4gU2VlIG5vdGUgYWJvdmVcbiAqL1xuXG4udWstY292ZXItY29udGFpbmVyIHtcbiAgICAvKiAxICovXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAvKiAyICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stY292ZXItbWlzYygpO1xuXG4uaG9vay1jb3Zlci1taXNjKCkge31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgQmFja2dyb3VuZFxuLy8gRGVzY3JpcHRpb246ICAgICBVdGlsaXRpZXMgZm9yIGJhY2tncm91bmRzXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstYmFja2dyb3VuZC0qYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBiYWNrZ3JvdW5kLWRlZmF1bHQtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgIEBnbG9iYWwtYmFja2dyb3VuZDtcbkBiYWNrZ3JvdW5kLW11dGVkLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZDtcbkBiYWNrZ3JvdW5kLXByaW1hcnktYmFja2dyb3VuZDogICAgICAgICAgICAgICAgIEBnbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kO1xuQGJhY2tncm91bmQtc2Vjb25kYXJ5LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktYmFja2dyb3VuZDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogQmFja2dyb3VuZFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cblxuLyogQ29sb3JcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstYmFja2dyb3VuZC1kZWZhdWx0IHsgYmFja2dyb3VuZC1jb2xvcjogQGJhY2tncm91bmQtZGVmYXVsdC1iYWNrZ3JvdW5kOyB9XG4udWstYmFja2dyb3VuZC1tdXRlZCB7IGJhY2tncm91bmQtY29sb3I6IEBiYWNrZ3JvdW5kLW11dGVkLWJhY2tncm91bmQ7IH1cbi51ay1iYWNrZ3JvdW5kLXByaW1hcnkgeyBiYWNrZ3JvdW5kLWNvbG9yOiBAYmFja2dyb3VuZC1wcmltYXJ5LWJhY2tncm91bmQ7IH1cbi51ay1iYWNrZ3JvdW5kLXNlY29uZGFyeSB7IGJhY2tncm91bmQtY29sb3I6IEBiYWNrZ3JvdW5kLXNlY29uZGFyeS1iYWNrZ3JvdW5kOyB9XG5cblxuLyogU2l6ZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1iYWNrZ3JvdW5kLWNvdmVyLFxuLnVrLWJhY2tncm91bmQtY29udGFpbixcbi51ay1iYWNrZ3JvdW5kLXdpZHRoLTEtMSxcbi51ay1iYWNrZ3JvdW5kLWhlaWdodC0xLTEge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuLnVrLWJhY2tncm91bmQtY292ZXIgeyBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyB9XG4udWstYmFja2dyb3VuZC1jb250YWluIHsgYmFja2dyb3VuZC1zaXplOiBjb250YWluOyB9XG4udWstYmFja2dyb3VuZC13aWR0aC0xLTEgeyBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7IH1cbi51ay1iYWNrZ3JvdW5kLWhlaWdodC0xLTEgeyBiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMTAwJTsgfVxuXG5cbi8qIFBvc2l0aW9uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWJhY2tncm91bmQtdG9wLWxlZnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IH1cbi51ay1iYWNrZ3JvdW5kLXRvcC1jZW50ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMDsgfVxuLnVrLWJhY2tncm91bmQtdG9wLXJpZ2h0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAwOyB9XG4udWstYmFja2dyb3VuZC1jZW50ZXItbGVmdCB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgNTAlOyB9XG4udWstYmFja2dyb3VuZC1jZW50ZXItY2VudGVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTsgfVxuLnVrLWJhY2tncm91bmQtY2VudGVyLXJpZ2h0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA1MCU7IH1cbi51ay1iYWNrZ3JvdW5kLWJvdHRvbS1sZWZ0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAxMDAlOyB9XG4udWstYmFja2dyb3VuZC1ib3R0b20tY2VudGVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDEwMCU7IH1cbi51ay1iYWNrZ3JvdW5kLWJvdHRvbS1yaWdodCB7IGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMTAwJTsgfVxuXG5cbi8qIFJlcGVhdFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1iYWNrZ3JvdW5kLW5vcmVwZWF0IHsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuXG5cbi8qIEF0dGFjaG1lbnRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gRml4IGJ1ZyBpbnRyb2R1Y2VkIGluIENocm9tZSA2NzogdGhlIGJhY2tncm91bmQgaW1hZ2UgaXMgbm90IHZpc2libGUgaWYgYW55IGVsZW1lbnQgb24gdGhlIHBhZ2UgdXNlcyBgdHJhbnNsYXRlM2RgXG4gKi9cblxuLnVrLWJhY2tncm91bmQtZml4ZWQge1xuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gICAgLyogMSAqL1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLypcbiAqIEV4Y2x1ZGUgdG91Y2ggZGV2aWNlcyBiZWNhdXNlIGBmaXhlZGAgZG9lc24ndCB3b3JrIG9uIGlPUyBhbmQgQW5kcm9pZFxuICovXG5cbkBtZWRpYSAocG9pbnRlcjogY29hcnNlKSB7XG4gICAgLnVrLWJhY2tncm91bmQtZml4ZWQgeyBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IHNjcm9sbDsgfVxufVxuXG5cbi8qIEltYWdlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogUGhvbmUgcG9ydHJhaXQgYW5kIHNtYWxsZXIgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiBAYnJlYWtwb2ludC14c21hbGwtbWF4KSB7XG5cbiAgICAudWstYmFja2dyb3VuZC1pbWFnZVxcQHMgeyBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7IH1cblxufVxuXG4vKiBQaG9uZSBsYW5kc2NhcGUgYW5kIHNtYWxsZXIgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiBAYnJlYWtwb2ludC1zbWFsbC1tYXgpIHtcblxuICAgIC51ay1iYWNrZ3JvdW5kLWltYWdlXFxAbSB7IGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDsgfVxuXG59XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIHNtYWxsZXIgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiBAYnJlYWtwb2ludC1tZWRpdW0tbWF4KSB7XG5cbiAgICAudWstYmFja2dyb3VuZC1pbWFnZVxcQGwgeyBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7IH1cblxufVxuXG4vKiBEZXNrdG9wIGFuZCBzbWFsbGVyICovXG5AbWVkaWEgKG1heC13aWR0aDogQGJyZWFrcG9pbnQtbGFyZ2UtbWF4KSB7XG5cbiAgICAudWstYmFja2dyb3VuZC1pbWFnZVxcQHhsIHtiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7IH1cblxufVxuXG5cbi8qIEJsZW5kIG1vZGVzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWJhY2tncm91bmQtYmxlbmQtbXVsdGlwbHkgeyBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IG11bHRpcGx5OyB9XG4udWstYmFja2dyb3VuZC1ibGVuZC1zY3JlZW4geyBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IHNjcmVlbjsgfVxuLnVrLWJhY2tncm91bmQtYmxlbmQtb3ZlcmxheSB7IGJhY2tncm91bmQtYmxlbmQtbW9kZTogb3ZlcmxheTsgfVxuLnVrLWJhY2tncm91bmQtYmxlbmQtZGFya2VuIHsgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBkYXJrZW47IH1cbi51ay1iYWNrZ3JvdW5kLWJsZW5kLWxpZ2h0ZW4geyBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IGxpZ2h0ZW47IH1cbi51ay1iYWNrZ3JvdW5kLWJsZW5kLWNvbG9yLWRvZGdlIHsgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBjb2xvci1kb2RnZTsgfVxuLnVrLWJhY2tncm91bmQtYmxlbmQtY29sb3ItYnVybiB7IGJhY2tncm91bmQtYmxlbmQtbW9kZTogY29sb3ItYnVybjsgfVxuLnVrLWJhY2tncm91bmQtYmxlbmQtaGFyZC1saWdodCB7IGJhY2tncm91bmQtYmxlbmQtbW9kZTogaGFyZC1saWdodDsgfVxuLnVrLWJhY2tncm91bmQtYmxlbmQtc29mdC1saWdodCB7IGJhY2tncm91bmQtYmxlbmQtbW9kZTogc29mdC1saWdodDsgfVxuLnVrLWJhY2tncm91bmQtYmxlbmQtZGlmZmVyZW5jZSB7IGJhY2tncm91bmQtYmxlbmQtbW9kZTogZGlmZmVyZW5jZTsgfVxuLnVrLWJhY2tncm91bmQtYmxlbmQtZXhjbHVzaW9uIHsgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBleGNsdXNpb247IH1cbi51ay1iYWNrZ3JvdW5kLWJsZW5kLWh1ZSB7IGJhY2tncm91bmQtYmxlbmQtbW9kZTogaHVlOyB9XG4udWstYmFja2dyb3VuZC1ibGVuZC1zYXR1cmF0aW9uIHsgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBzYXR1cmF0aW9uOyB9XG4udWstYmFja2dyb3VuZC1ibGVuZC1jb2xvciB7IGJhY2tncm91bmQtYmxlbmQtbW9kZTogY29sb3I7IH1cbi51ay1iYWNrZ3JvdW5kLWJsZW5kLWx1bWlub3NpdHkgeyBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IGx1bWlub3NpdHk7IH1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWJhY2tncm91bmQtbWlzYygpO1xuXG4uaG9vay1iYWNrZ3JvdW5kLW1pc2MoKSB7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBBbGlnblxuLy8gRGVzY3JpcHRpb246ICAgICBVdGlsaXRpZXMgdG8gYWxpZ24gZW1iZWRkZWQgY29udGVudFxuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLWFsaWduLWxlZnQtKmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWFsaWduLXJpZ2h0LSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1hbGlnbi1jZW50ZXJgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGFsaWduLW1hcmdpbi1ob3Jpem9udGFsOiAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1ndXR0ZXI7XG5AYWxpZ24tbWFyZ2luLXZlcnRpY2FsOiAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWd1dHRlcjtcblxuQGFsaWduLW1hcmdpbi1ob3Jpem9udGFsLWw6ICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tZWRpdW0tZ3V0dGVyO1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBBbGlnblxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBEZWZhdWx0XG4gKi9cblxuW2NsYXNzKj0ndWstYWxpZ24nXSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogQGFsaWduLW1hcmdpbi12ZXJ0aWNhbDtcbn1cblxuKiArIFtjbGFzcyo9J3VrLWFsaWduJ10geyBtYXJnaW4tdG9wOiBAYWxpZ24tbWFyZ2luLXZlcnRpY2FsOyB9XG5cbi8qXG4gKiBDZW50ZXJcbiAqL1xuXG4udWstYWxpZ24tY2VudGVyIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi8qXG4gKiBMZWZ0L1JpZ2h0XG4gKi9cblxuLnVrLWFsaWduLWxlZnQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiBAYWxpZ24tbWFyZ2luLWhvcml6b250YWw7XG4gICAgZmxvYXQ6IGxlZnQ7XG59XG5cbi51ay1hbGlnbi1yaWdodCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tbGVmdDogQGFsaWduLW1hcmdpbi1ob3Jpem9udGFsO1xuICAgIGZsb2F0OiByaWdodDtcbn1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1zbWFsbCkge1xuXG4gICAgLnVrLWFsaWduLWxlZnRcXEBzIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBAYWxpZ24tbWFyZ2luLWhvcml6b250YWw7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC51ay1hbGlnbi1yaWdodFxcQHMge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogQGFsaWduLW1hcmdpbi1ob3Jpem9udGFsO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG59XG5cbi8qIFRhYmxldCBsYW5kc2NhcGUgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LW1lZGl1bSkge1xuXG4gICAgLnVrLWFsaWduLWxlZnRcXEBtIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBAYWxpZ24tbWFyZ2luLWhvcml6b250YWw7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC51ay1hbGlnbi1yaWdodFxcQG0ge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogQGFsaWduLW1hcmdpbi1ob3Jpem9udGFsO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG59XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LWxhcmdlKSB7XG5cbiAgICAudWstYWxpZ24tbGVmdFxcQGwge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAudWstYWxpZ24tcmlnaHRcXEBsIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgIC51ay1hbGlnbi1sZWZ0LFxuICAgIC51ay1hbGlnbi1sZWZ0XFxAcyxcbiAgICAudWstYWxpZ24tbGVmdFxcQG0sXG4gICAgLnVrLWFsaWduLWxlZnRcXEBsIHsgbWFyZ2luLXJpZ2h0OiBAYWxpZ24tbWFyZ2luLWhvcml6b250YWwtbDsgfVxuXG4gICAgLnVrLWFsaWduLXJpZ2h0LFxuICAgIC51ay1hbGlnbi1yaWdodFxcQHMsXG4gICAgLnVrLWFsaWduLXJpZ2h0XFxAbSxcbiAgICAudWstYWxpZ24tcmlnaHRcXEBsIHsgbWFyZ2luLWxlZnQ6IEBhbGlnbi1tYXJnaW4taG9yaXpvbnRhbC1sOyB9XG5cbn1cblxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC14bGFyZ2UpIHtcblxuICAgIC51ay1hbGlnbi1sZWZ0XFxAeGwge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IEBhbGlnbi1tYXJnaW4taG9yaXpvbnRhbC1sO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAudWstYWxpZ24tcmlnaHRcXEB4bCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBAYWxpZ24tbWFyZ2luLWhvcml6b250YWwtbDtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYWxpZ24tbWlzYygpO1xuXG4uaG9vay1hbGlnbi1taXNjKCkge31cbiIsIi8vIE5hbWU6ICAgICAgICAgICAgU1ZHXG4vLyBEZXNjcmlwdGlvbjogICAgIENvbXBvbmVudCB0byBzdHlsZSBTVkdzXG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstc3ZnYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBTVkdcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gRmlsbCBhbGwgU1ZHIGVsZW1lbnRzIHdpdGggdGhlIGN1cnJlbnQgdGV4dCBjb2xvciBpZiBubyBgZmlsbGAgYXR0cmlidXRlIGlzIHNldFxuICogMi4gU2V0IHRoZSBmaWxsIGFuZCBzdHJva2UgY29sb3Igb2YgYWxsIFNWRyBlbGVtZW50cyB0byB0aGUgY3VycmVudCB0ZXh0IGNvbG9yXG4gKi9cblxuLyogMSAqL1xuLnVrLXN2Zyxcbi8qIDIgKi9cbi51ay1zdmc6bm90KC51ay1wcmVzZXJ2ZSkgW2ZpbGwqPScjJ106bm90KC51ay1wcmVzZXJ2ZSkgeyBmaWxsOiBjdXJyZW50Y29sb3I7IH1cbi51ay1zdmc6bm90KC51ay1wcmVzZXJ2ZSkgW3N0cm9rZSo9JyMnXTpub3QoLnVrLXByZXNlcnZlKSB7IHN0cm9rZTogY3VycmVudGNvbG9yOyB9XG5cbi8qXG4gKiBGaXggRmlyZWZveCBibHVycnkgU1ZHIHJlbmRlcmluZzogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0NjgzNVxuICovXG5cbi51ay1zdmcgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLDApOyB9XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1zdmctbWlzYygpO1xuXG4uaG9vay1zdmctbWlzYygpIHt9XG4iLCIvL1xuLy8gQ29tcG9uZW50OiBTVkdcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gTmV3XG4vL1xuXG5AaW50ZXJuYWwtc3ZnLW11dGVkLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICBsaWdodGVuKEBnbG9iYWwtbXV0ZWQtY29sb3IsIDE1JSk7XG5AaW50ZXJuYWwtc3ZnLWRlZmF1bHQtYmFja2dyb3VuZDogICAgICAgICAgICAgICBAZ2xvYmFsLWJhY2tncm91bmQ7XG5AaW50ZXJuYWwtc3ZnLW11dGVkLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICBkYXJrZW4oQGdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kLCAyJSk7XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXN2Zy1taXNjKCkge1xuXG4gICAgc3ZnLnVrLXRleHQtbXV0ZWQsXG4gICAgc3ZnIC51ay10ZXh0LW11dGVkIHsgY29sb3I6IEBpbnRlcm5hbC1zdmctbXV0ZWQtY29sb3IgIWltcG9ydGFudDsgfVxuXG4gICAgLnVrLXN2Zy1kZWZhdWx0LWJhY2tncm91bmQgeyBjb2xvcjogQGludGVybmFsLXN2Zy1kZWZhdWx0LWJhY2tncm91bmQgIWltcG9ydGFudDsgfVxuICAgIC51ay1zdmctbXV0ZWQtYmFja2dyb3VuZCB7IGNvbG9yOiBAaW50ZXJuYWwtc3ZnLW11dGVkLWJhY2tncm91bmQgIWltcG9ydGFudDsgfVxuXG59XG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gTmV3XG4vL1xuXG5AaW50ZXJuYWwtaW52ZXJzZS1zdmctbXV0ZWQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1tdXRlZC1jb2xvcjtcbkBpbnRlcm5hbC1pbnZlcnNlLXN2Zy1kZWZhdWx0LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5AaW50ZXJuYWwtaW52ZXJzZS1zdmctbXV0ZWQtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1tdXRlZC1iYWNrZ3JvdW5kO1xuXG4uaG9vay1pbnZlcnNlKCkge1xuXG4gICAgc3ZnLnVrLXRleHQtbXV0ZWQsXG4gICAgc3ZnIC51ay10ZXh0LW11dGVkIHsgY29sb3I6IEBpbnRlcm5hbC1pbnZlcnNlLXN2Zy1tdXRlZC1jb2xvciAhaW1wb3J0YW50OyB9XG5cbiAgICAudWstc3ZnLWRlZmF1bHQtYmFja2dyb3VuZCB7IGNvbG9yOiBAaW50ZXJuYWwtaW52ZXJzZS1zdmctZGVmYXVsdC1iYWNrZ3JvdW5kICFpbXBvcnRhbnQ7IH1cbiAgICAudWstc3ZnLW11dGVkLWJhY2tncm91bmQgeyBjb2xvcjogQGludGVybmFsLWludmVyc2Utc3ZnLW11dGVkLWJhY2tncm91bmQgIWltcG9ydGFudDsgfVxuXG59XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIFV0aWxpdHlcbi8vIERlc2NyaXB0aW9uOiAgICAgVXRpbGl0aWVzIGNvbGxlY3Rpb25cbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1wYW5lbC0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstY2xlYXJmaXhgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1mbG9hdC0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstb3ZlcmZsb3ctKmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXJlc2l6ZS0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZGlzcGxheS0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstaW5saW5lLSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1yZXNwb25zaXZlLSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wcmVzZXJ2ZS13aWR0aGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW9iamVjdC0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstYm9yZGVyLSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ib3gtc2hhZG93LSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1ib3gtc2hhZG93LWJvdHRvbWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWRyb3BjYXBgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1sb2dvYFxuLy8gICAgICAgICAgICAgICAgICBgdWstYmxlbmQtKmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRyYW5zZm9ybS0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstdHJhbnNmb3JtLW9yaWdpbi0qYFxuLy9cbi8vIFN0YXRlczogICAgICAgICAgYHVrLWRpc2FibGVkYFxuLy8gICAgICAgICAgICAgICAgICBgdWstZHJhZ2Bcbi8vICAgICAgICAgICAgICAgICAgYHVrLWRyYWdvdmVyYFxuLy8gICAgICAgICAgICAgICAgICBgdWstcHJlc2VydmVgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQHBhbmVsLXNjcm9sbGFibGUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgMTcwcHg7XG5AcGFuZWwtc2Nyb2xsYWJsZS1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAxMHB4O1xuQHBhbmVsLXNjcm9sbGFibGUtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgQGdsb2JhbC1ib3JkZXItd2lkdGg7XG5AcGFuZWwtc2Nyb2xsYWJsZS1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWJvcmRlcjtcblxuQGJvcmRlci1yb3VuZGVkLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgNXB4O1xuXG5AYm94LXNoYWRvdy1kdXJhdGlvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAwLjFzO1xuXG5AYm94LXNoYWRvdy1ib3R0b20taGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAzMHB4O1xuQGJveC1zaGFkb3ctYm90dG9tLWJvdHRvbTogICAgICAgICAgICAgICAgICAgICAgLUBib3gtc2hhZG93LWJvdHRvbS1oZWlnaHQ7XG5AYm94LXNoYWRvdy1ib3R0b20tYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAxMDAlO1xuQGJveC1zaGFkb3ctYm90dG9tLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgIzQ0NDtcbkBib3gtc2hhZG93LWJvdHRvbS1ibHVyOiAgICAgICAgICAgICAgICAgICAgICAgIDIwcHg7XG5cbkBkcm9wY2FwLW1hcmdpbi1yaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgIDEwcHg7XG5AZHJvcGNhcC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKEBnbG9iYWwtbGluZS1oZWlnaHQgKiAzKSAqIDFlbSk7XG5cbkBsb2dvLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbGFyZ2UtZm9udC1zaXplO1xuQGxvZ28tZm9udC1mYW1pbHk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1mb250LWZhbWlseTtcbkBsb2dvLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AbG9nby1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWVtcGhhc2lzLWNvbG9yO1xuXG5AZHJhZ292ZXItYm94LXNoYWRvdzogICAgICAgICAgICAgICAgICAgICAgICAgICAwIDAgMjBweCByZ2JhKDEwMCwxMDAsMTAwLDAuMyk7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFV0aWxpdHlcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5cbi8qIFBhbmVsXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXBhbmVsIHtcbiAgICBkaXNwbGF5OiBmbG93LXJvb3Q7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi8qXG4gKiBSZW1vdmUgbWFyZ2luIGZyb20gdGhlIGxhc3QtY2hpbGRcbiAqL1xuXG4udWstcGFuZWwgPiA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cblxuXG4vKlxuICogU2Nyb2xsYWJsZVxuICovXG5cbi51ay1wYW5lbC1zY3JvbGxhYmxlIHtcbiAgICBoZWlnaHQ6IEBwYW5lbC1zY3JvbGxhYmxlLWhlaWdodDtcbiAgICBwYWRkaW5nOiBAcGFuZWwtc2Nyb2xsYWJsZS1wYWRkaW5nO1xuICAgIGJvcmRlcjogQHBhbmVsLXNjcm9sbGFibGUtYm9yZGVyLXdpZHRoIHNvbGlkIEBwYW5lbC1zY3JvbGxhYmxlLWJvcmRlcjtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgcmVzaXplOiBib3RoO1xuICAgIC5ob29rLXBhbmVsLXNjcm9sbGFibGUoKTtcbn1cblxuXG4vKiBDbGVhcmZpeFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBgdGFibGUtY2VsbGAgaXMgdXNlZCB3aXRoIGA6OmJlZm9yZWAgYmVjYXVzZSBgdGFibGVgIGNyZWF0ZXMgYSAxcHggZ2FwIHdoZW4gaXQgYmVjb21lcyBhIGZsZXggaXRlbSwgb25seSBpbiBXZWJraXRcbiAqIDIuIGB0YWJsZWAgaXMgdXNlZCBhZ2FpbiB3aXRoIGA6OmFmdGVyYCBiZWNhdXNlIGBjbGVhcmAgb25seSB3b3JrcyB3aXRoIGJsb2NrIGVsZW1lbnRzLlxuICogTm90ZTogYGRpc3BsYXk6IGJsb2NrYCB3aXRoIGBvdmVyZmxvdzogaGlkZGVuYCBpcyBjdXJyZW50bHkgbm90IHdvcmtpbmcgaW4gdGhlIGxhdGVzdCBTYWZhcmlcbiAqL1xuXG4vKiAxICovXG4udWstY2xlYXJmaXg6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuXG4vKiAyICovXG4udWstY2xlYXJmaXg6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoO1xufVxuXG5cbi8qIEZsb2F0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFByZXZlbnQgY29udGVudCBvdmVyZmxvd1xuICovXG5cbi51ay1mbG9hdC1sZWZ0IHsgZmxvYXQ6IGxlZnQ7IH1cbi51ay1mbG9hdC1yaWdodCB7IGZsb2F0OiByaWdodDsgfVxuXG4vKiAxICovXG5bY2xhc3MqPSd1ay1mbG9hdC0nXSB7IG1heC13aWR0aDogMTAwJTsgfVxuXG5cbi8qIE92ZXJmb3dcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstb3ZlcmZsb3ctaGlkZGVuIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKlxuICogRW5hYmxlIHNjcm9sbGJhcnMgaWYgY29udGVudCBpcyBjbGlwcGVkXG4gKi9cblxuLnVrLW92ZXJmbG93LWF1dG8ge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuLnVrLW92ZXJmbG93LWF1dG8gPiA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cblxuXG4vKiBCb3ggU2l6aW5nXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWJveC1zaXppbmctY29udGVudCB7IGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyB9XG4udWstYm94LXNpemluZy1ib3JkZXIgeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cblxuLyogUmVzaXplXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXJlc2l6ZSB7IHJlc2l6ZTogYm90aDsgfVxuLnVrLXJlc2l6ZS1ob3Jpem9udGFsIHsgcmVzaXplOiBob3Jpem9udGFsOyB9XG4udWstcmVzaXplLXZlcnRpY2FsIHsgcmVzaXplOiB2ZXJ0aWNhbDsgfVxuXG5cbi8qIERpc3BsYXlcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstZGlzcGxheS1ibG9jayB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbi51ay1kaXNwbGF5LWlubGluZSB7IGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyB9XG4udWstZGlzcGxheS1pbmxpbmUtYmxvY2sgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgfVxuXG5cbi8qIElubGluZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBDb250YWluZXIgZml0cyBpdHMgY29udGVudFxuICogMi4gQ3JlYXRlIHBvc2l0aW9uIGNvbnRleHRcbiAqIDMuIFByZXZlbnQgY29udGVudCBvdmVyZmxvd1xuICogNC4gQmVoYXZlIGxpa2UgbW9zdCBpbmxpbmUtYmxvY2sgZWxlbWVudHNcbiAqIDUuIEZvcmNlIG5ldyBsYXllciB3aXRob3V0IGNyZWF0aW5nIGEgbmV3IHN0YWNraW5nIGNvbnRleHRcbiAqICAgIHRvIGZpeCAxcHggZ2xpdGNoIHdoZW4gY29tYmluZWQgd2l0aCBvdmVybGF5cyBhbmQgdHJhbnNpdGlvbnMgaW4gV2Via2l0XG4gKiA2LiBDbGlwIGNoaWxkIGVsZW1lbnRzXG4gKi9cblxuW2NsYXNzKj0ndWstaW5saW5lJ10ge1xuICAgIC8qIDEgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgLyogMiAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvKiAzICovXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIC8qIDQgKi9cbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIC8qIDUgKi9cbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnVrLWlubGluZS1jbGlwIHtcbiAgICAvKiA2ICovXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuXG4vKiBSZXNwb25zaXZlIG9iamVjdHNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogUHJlc2VydmUgb3JpZ2luYWwgZGltZW5zaW9uc1xuICogQmVjYXVzZSBgaW1nLCBgdmlkZW9gLCBgY2FudmFzYCBhbmQgIGBhdWRpb2AgYXJlIGFscmVhZHkgcmVzcG9uc2l2ZSBieSBkZWZhdWx0LCBzZWUgQmFzZSBjb21wb25lbnRcbiAqL1xuXG4udWstcHJlc2VydmUtd2lkdGgsXG4udWstcHJlc2VydmUtd2lkdGggY2FudmFzLFxuLnVrLXByZXNlcnZlLXdpZHRoIGltZyxcbi51ay1wcmVzZXJ2ZS13aWR0aCBzdmcsXG4udWstcHJlc2VydmUtd2lkdGggdmlkZW8geyBtYXgtd2lkdGg6IG5vbmU7IH1cblxuLypcbiAqIFJlc3BvbnNpdmVuZXNzXG4gKiBDb3JyZWN0cyBgbWF4LXdpZHRoYCBhbmQgYG1heC1oZWlnaHRgIGJlaGF2aW9yIGlmIHBhZGRpbmcgYW5kIGJvcmRlciBhcmUgdXNlZFxuICovXG5cbi51ay1yZXNwb25zaXZlLXdpZHRoLFxuLnVrLXJlc3BvbnNpdmUtaGVpZ2h0IHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4vKlxuICogMS4gU2V0IGEgbWF4aW11bSB3aWR0aC4gYGltcG9ydGFudGAgbmVlZGVkIHRvIG92ZXJyaWRlIGB1ay1wcmVzZXJ2ZS13aWR0aCBpbWdgXG4gKiAyLiBBdXRvIHNjYWxlIHRoZSBoZWlnaHQuIE9ubHkgbmVlZGVkIGlmIGBoZWlnaHRgIGF0dHJpYnV0ZSBpcyBwcmVzZW50XG4gKi9cblxuLnVrLXJlc3BvbnNpdmUtd2lkdGgge1xuICAgIC8qIDEgKi9cbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAvKiAyICovXG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKlxuICogMS4gU2V0IGEgbWF4aW11bSBoZWlnaHQuIE9ubHkgd29ya3MgaWYgdGhlIHBhcmVudCBlbGVtZW50IGhhcyBhIGZpeGVkIGhlaWdodFxuICogMi4gQXV0byBzY2FsZSB0aGUgd2lkdGguIE9ubHkgbmVlZGVkIGlmIGB3aWR0aGAgYXR0cmlidXRlIGlzIHByZXNlbnRcbiAqIDMuIFJlc2V0IG1heC13aWR0aCwgd2hpY2ggYGltZywgYHZpZGVvYCwgYGNhbnZhc2AgYW5kICBgYXVkaW9gIGFscmVhZHkgaGF2ZSBieSBkZWZhdWx0XG4gKi9cblxuLnVrLXJlc3BvbnNpdmUtaGVpZ2h0IHtcbiAgICAvKiAxICovXG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAvKiAyICovXG4gICAgd2lkdGg6IGF1dG87XG4gICAgLyogMyAqL1xuICAgIG1heC13aWR0aDogbm9uZTtcbn1cblxuLypcbiAqIEZpeCBpbml0aWFsIGlmcmFtZSB3aWR0aC4gV2l0aG91dCB0aGUgdmlld3BvcnQgaXMgZXhwYW5kZWQgb24gaU9TIGRldmljZXNcbiAqL1xuXG5bdWstcmVzcG9uc2l2ZV0sXG5bZGF0YS11ay1yZXNwb25zaXZlXSB7IG1heC13aWR0aDogMTAwJTsgfVxuXG5cbi8qIE9iamVjdFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1vYmplY3QtY292ZXIgeyBvYmplY3QtZml0OiBjb3ZlcjsgfVxuLnVrLW9iamVjdC1jb250YWluIHsgb2JqZWN0LWZpdDogY29udGFpbjsgfVxuLnVrLW9iamVjdC1maWxsIHsgb2JqZWN0LWZpdDogZmlsbDsgfVxuLnVrLW9iamVjdC1ub25lIHsgb2JqZWN0LWZpdDogbm9uZTsgfVxuLnVrLW9iamVjdC1zY2FsZS1kb3duIHsgb2JqZWN0LWZpdDogc2NhbGUtZG93bjsgfVxuXG4vKiBcbiAqIFBvc2l0aW9uXG4gKi9cblxuLnVrLW9iamVjdC10b3AtbGVmdCB7IG9iamVjdC1wb3NpdGlvbjogMCAwOyB9XG4udWstb2JqZWN0LXRvcC1jZW50ZXIgeyBvYmplY3QtcG9zaXRpb246IDUwJSAwOyB9XG4udWstb2JqZWN0LXRvcC1yaWdodCB7IG9iamVjdC1wb3NpdGlvbjogMTAwJSAwOyB9XG4udWstb2JqZWN0LWNlbnRlci1sZWZ0IHsgb2JqZWN0LXBvc2l0aW9uOiAwIDUwJTsgfVxuLnVrLW9iamVjdC1jZW50ZXItY2VudGVyIHsgb2JqZWN0LXBvc2l0aW9uOiA1MCUgNTAlOyB9XG4udWstb2JqZWN0LWNlbnRlci1yaWdodCB7IG9iamVjdC1wb3NpdGlvbjogMTAwJSA1MCU7IH1cbi51ay1vYmplY3QtYm90dG9tLWxlZnQgeyBvYmplY3QtcG9zaXRpb246IDAgMTAwJTsgfVxuLnVrLW9iamVjdC1ib3R0b20tY2VudGVyIHsgb2JqZWN0LXBvc2l0aW9uOiA1MCUgMTAwJTsgfVxuLnVrLW9iamVjdC1ib3R0b20tcmlnaHQgeyBvYmplY3QtcG9zaXRpb246IDEwMCUgMTAwJTsgfVxuXG5cbi8qIEJvcmRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1ib3JkZXItY2lyY2xlIHsgYm9yZGVyLXJhZGl1czogNTAlOyB9XG4udWstYm9yZGVyLXBpbGwgeyBib3JkZXItcmFkaXVzOiA1MDBweDsgfVxuLnVrLWJvcmRlci1yb3VuZGVkIHsgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yb3VuZGVkLWJvcmRlci1yYWRpdXM7IH1cblxuLypcbiAqIEZpeCBgb3ZlcmZsb3c6IGhpZGRlbmAgdG8gYmUgaWdub3JlZCB3aXRoIGJvcmRlci1yYWRpdXMgYW5kIENTUyB0cmFuc2Zvcm1zIGluIFdlYmtpdFxuICovXG5cbi51ay1pbmxpbmUtY2xpcFtjbGFzcyo9J3VrLWJvcmRlci0nXSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApOyB9XG5cblxuLyogQm94LXNoYWRvd1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1ib3gtc2hhZG93LXNtYWxsIHsgYm94LXNoYWRvdzogQGdsb2JhbC1zbWFsbC1ib3gtc2hhZG93OyB9XG4udWstYm94LXNoYWRvdy1tZWRpdW0geyBib3gtc2hhZG93OiBAZ2xvYmFsLW1lZGl1bS1ib3gtc2hhZG93OyB9XG4udWstYm94LXNoYWRvdy1sYXJnZSB7IGJveC1zaGFkb3c6IEBnbG9iYWwtbGFyZ2UtYm94LXNoYWRvdzsgfVxuLnVrLWJveC1zaGFkb3cteGxhcmdlIHsgYm94LXNoYWRvdzogQGdsb2JhbC14bGFyZ2UtYm94LXNoYWRvdzsgfVxuXG4vKlxuICogSG92ZXJcbiAqL1xuXG5bY2xhc3MqPSd1ay1ib3gtc2hhZG93LWhvdmVyJ10geyB0cmFuc2l0aW9uOiBib3gtc2hhZG93IEBib3gtc2hhZG93LWR1cmF0aW9uIGVhc2UtaW4tb3V0OyB9XG5cbi51ay1ib3gtc2hhZG93LWhvdmVyLXNtYWxsOmhvdmVyIHsgYm94LXNoYWRvdzogQGdsb2JhbC1zbWFsbC1ib3gtc2hhZG93OyB9XG4udWstYm94LXNoYWRvdy1ob3Zlci1tZWRpdW06aG92ZXIgeyBib3gtc2hhZG93OiBAZ2xvYmFsLW1lZGl1bS1ib3gtc2hhZG93OyB9XG4udWstYm94LXNoYWRvdy1ob3Zlci1sYXJnZTpob3ZlciB7IGJveC1zaGFkb3c6IEBnbG9iYWwtbGFyZ2UtYm94LXNoYWRvdzsgfVxuLnVrLWJveC1zaGFkb3ctaG92ZXIteGxhcmdlOmhvdmVyIHsgYm94LXNoYWRvdzogQGdsb2JhbC14bGFyZ2UtYm94LXNoYWRvdzsgfVxuXG5cbi8qIEJveC1zaGFkb3cgYm90dG9tXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIFNldCBwb3NpdGlvbi5cbiAqIDIuIFNldCBzdHlsZVxuICogMy4gRml4IHNoYWRvdyBiZWluZyBjbGlwcGVkIGluIFNhZmFyaSBpZiBjb250YWluZXIgaXMgYW5pbWF0ZWRcbiAqL1xuXG5Ac3VwcG9ydHMgKGZpbHRlcjogYmx1cigwKSkge1xuXG4gICAgLnVrLWJveC1zaGFkb3ctYm90dG9tIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDA7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAudWstYm94LXNoYWRvdy1ib3R0b206OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgLyogMSAqL1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogQGJveC1zaGFkb3ctYm90dG9tLWJvdHRvbTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICAvKiAyICovXG4gICAgICAgIGhlaWdodDogQGJveC1zaGFkb3ctYm90dG9tLWhlaWdodDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogQGJveC1zaGFkb3ctYm90dG9tLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIGJhY2tncm91bmQ6IEBib3gtc2hhZG93LWJvdHRvbS1iYWNrZ3JvdW5kO1xuICAgICAgICBmaWx0ZXI6IGJsdXIoQGJveC1zaGFkb3ctYm90dG9tLWJsdXIpO1xuICAgICAgICAvKiAzICovXG4gICAgICAgIHdpbGwtY2hhbmdlOiBmaWx0ZXI7XG4gICAgICAgIC5ob29rLWJveC1zaGFkb3ctYm90dG9tKCk7XG4gICAgfVxuXG59XG5cblxuLyogRHJvcCBjYXBcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gRmlyZWZveCBkb2Vzbid0IGFwcGx5IGA6OmZpcnN0LWxldHRlcmAgaWYgdGhlIGZpcnN0IGxldHRlciBpcyBpbnNpZGUgY2hpbGQgZWxlbWVudHNcbiAqICAgIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDAwNFxuICogMi4gSW4gRmlyZWZveCwgYSBmbG9hdGluZyBgOjpmaXJzdC1sZXR0ZXJgIGRvZXNuJ3QgaGF2ZSBhIGxpbmUgYm94IGFuZCB0aGVyZSBmb3Igbm8gYGxpbmUtaGVpZ2h0YFxuICogICAgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE3OTMzXG4gKi9cblxuLnVrLWRyb3BjYXA6OmZpcnN0LWxldHRlcixcbi8qIDEgKi9cbi51ay1kcm9wY2FwID4gcDpmaXJzdC1vZi10eXBlOjpmaXJzdC1sZXR0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogQGRyb3BjYXAtbWFyZ2luLXJpZ2h0O1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogQGRyb3BjYXAtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIC5ob29rLWRyb3BjYXAoKTtcbn1cblxuLyogMiAqL1xuQC1tb3otZG9jdW1lbnQgdXJsLXByZWZpeCgpIHtcblxuICAudWstZHJvcGNhcDo6Zmlyc3QtbGV0dGVyLFxuICAudWstZHJvcGNhcCA+IHA6Zmlyc3Qtb2YtdHlwZTo6Zmlyc3QtbGV0dGVyIHsgbWFyZ2luLXRvcDogMS4xJTsgfVxuXG59XG5cblxuLyogTG9nb1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiAxLiBTdHlsZVxuICogMi4gUmVxdWlyZWQgZm9yIGBhYFxuICogMy4gQmVoYXZlIGxpa2UgaW1hZ2UgYnV0IGNhbiBiZSBvdmVycmlkZGVuIHRocm91Z2ggZmxleCB1dGlsaXR5IGNsYXNzZXNcbiAqL1xuXG4udWstbG9nbyB7XG4gICAgLyogMSAqL1xuICAgIGZvbnQtc2l6ZTogQGxvZ28tZm9udC1zaXplO1xuICAgIGZvbnQtZmFtaWx5OiBAbG9nby1mb250LWZhbWlseTtcbiAgICBjb2xvcjogQGxvZ28tY29sb3I7XG4gICAgLyogMiAqL1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAuaG9vay1sb2dvKCk7XG59XG5cbi8qIDMgKi9cbjp3aGVyZSgudWstbG9nbykge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vKiBIb3ZlciAqL1xuLnVrLWxvZ286aG92ZXIge1xuICAgIGNvbG9yOiBAbG9nby1ob3Zlci1jb2xvcjtcbiAgICAvKiAxICovXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIC5ob29rLWxvZ28taG92ZXIoKTtcbn1cblxuLnVrLWxvZ28gOndoZXJlKGltZywgc3ZnLCB2aWRlbykgeyBkaXNwbGF5OiBibG9jazsgfVxuXG4udWstbG9nby1pbnZlcnNlIHsgZGlzcGxheTogbm9uZTsgfVxuXG5cbi8qIERpc2FibGVkIFN0YXRlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLWRpc2FibGVkIHsgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuXG4vKiBEcmFnIFN0YXRlXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIDEuIE5lZWRlZCBpZiBtb3Zpbmcgb3ZlciBlbGVtZW50cyB3aXRoIGhhdmUgdGhlaXIgb3duIGN1cnNvciBvbiBob3ZlciwgZS5nLiBsaW5rcyBvciBidXR0b25zXG4gKiAyLiBGaXggZHJhZ2dpbmcgb3ZlciBpZnJhbWVzXG4gKi9cblxuLnVrLWRyYWcsXG4vKiAxICovXG4udWstZHJhZyAqIHsgY3Vyc29yOiBtb3ZlOyB9XG5cbi8qIDIgKi9cbi51ay1kcmFnIGlmcmFtZSB7IHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cblxuLyogRHJhZ292ZXIgU3RhdGVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQ3JlYXRlIGEgYm94LXNoYWRvdyB3aGVuIGRyYWdnaW5nIGEgZmlsZSBvdmVyIHRoZSB1cGxvYWQgYXJlYVxuICovXG5cbi51ay1kcmFnb3ZlciB7IGJveC1zaGFkb3c6IEBkcmFnb3Zlci1ib3gtc2hhZG93OyB9XG5cblxuLyogQmxlbmQgbW9kZXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstYmxlbmQtbXVsdGlwbHkgeyBtaXgtYmxlbmQtbW9kZTogbXVsdGlwbHk7IH1cbi51ay1ibGVuZC1zY3JlZW4geyBtaXgtYmxlbmQtbW9kZTogc2NyZWVuOyB9XG4udWstYmxlbmQtb3ZlcmxheSB7IG1peC1ibGVuZC1tb2RlOiBvdmVybGF5OyB9XG4udWstYmxlbmQtZGFya2VuIHsgbWl4LWJsZW5kLW1vZGU6IGRhcmtlbjsgfVxuLnVrLWJsZW5kLWxpZ2h0ZW4geyBtaXgtYmxlbmQtbW9kZTogbGlnaHRlbjsgfVxuLnVrLWJsZW5kLWNvbG9yLWRvZGdlIHsgbWl4LWJsZW5kLW1vZGU6IGNvbG9yLWRvZGdlOyB9XG4udWstYmxlbmQtY29sb3ItYnVybiB7IG1peC1ibGVuZC1tb2RlOiBjb2xvci1idXJuOyB9XG4udWstYmxlbmQtaGFyZC1saWdodCB7IG1peC1ibGVuZC1tb2RlOiBoYXJkLWxpZ2h0OyB9XG4udWstYmxlbmQtc29mdC1saWdodCB7IG1peC1ibGVuZC1tb2RlOiBzb2Z0LWxpZ2h0OyB9XG4udWstYmxlbmQtZGlmZmVyZW5jZSB7IG1peC1ibGVuZC1tb2RlOiBkaWZmZXJlbmNlOyB9XG4udWstYmxlbmQtZXhjbHVzaW9uIHsgbWl4LWJsZW5kLW1vZGU6IGV4Y2x1c2lvbjsgfVxuLnVrLWJsZW5kLWh1ZSB7IG1peC1ibGVuZC1tb2RlOiBodWU7IH1cbi51ay1ibGVuZC1zYXR1cmF0aW9uIHsgbWl4LWJsZW5kLW1vZGU6IHNhdHVyYXRpb247IH1cbi51ay1ibGVuZC1jb2xvciB7IG1peC1ibGVuZC1tb2RlOiBjb2xvcjsgfVxuLnVrLWJsZW5kLWx1bWlub3NpdHkgeyBtaXgtYmxlbmQtbW9kZTogbHVtaW5vc2l0eTsgfVxuXG5cbi8qIFRyYW5zZm9ybVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXRyYW5zZm9ybS1jZW50ZXIgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgfVxuXG5cbi8qIFRyYW5zZm9ybSBPcmlnaW5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay10cmFuc2Zvcm0tb3JpZ2luLXRvcC1sZWZ0IHsgdHJhbnNmb3JtLW9yaWdpbjogMCAwOyB9XG4udWstdHJhbnNmb3JtLW9yaWdpbi10b3AtY2VudGVyIHsgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDA7IH1cbi51ay10cmFuc2Zvcm0tb3JpZ2luLXRvcC1yaWdodCB7IHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDsgfVxuLnVrLXRyYW5zZm9ybS1vcmlnaW4tY2VudGVyLWxlZnQgeyB0cmFuc2Zvcm0tb3JpZ2luOiAwIDUwJTsgfVxuLnVrLXRyYW5zZm9ybS1vcmlnaW4tY2VudGVyLXJpZ2h0IHsgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSA1MCU7IH1cbi51ay10cmFuc2Zvcm0tb3JpZ2luLWJvdHRvbS1sZWZ0IHsgdHJhbnNmb3JtLW9yaWdpbjogMCAxMDAlOyB9XG4udWstdHJhbnNmb3JtLW9yaWdpbi1ib3R0b20tY2VudGVyIHsgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDEwMCU7IH1cbi51ay10cmFuc2Zvcm0tb3JpZ2luLWJvdHRvbS1yaWdodCB7IHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTsgfVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stdXRpbGl0eS1taXNjKCk7XG5cbi5ob29rLXBhbmVsLXNjcm9sbGFibGUoKSB7fVxuLmhvb2stYm94LXNoYWRvdy1ib3R0b20oKSB7fVxuLmhvb2stZHJvcGNhcCgpIHt9XG4uaG9vay1sb2dvKCkge31cbi5ob29rLWxvZ28taG92ZXIoKSB7fVxuLmhvb2stdXRpbGl0eS1taXNjKCkge31cblxuXG4vLyBJbnZlcnNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGludmVyc2UtbG9nby1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICBAaW52ZXJzZS1nbG9iYWwtZW1waGFzaXMtY29sb3I7XG5AaW52ZXJzZS1sb2dvLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1lbXBoYXNpcy1jb2xvcjtcblxuLmhvb2staW52ZXJzZSgpIHtcblxuICAgIC51ay1kcm9wY2FwOjpmaXJzdC1sZXR0ZXIsXG4gICAgLnVrLWRyb3BjYXAgcDpmaXJzdC1vZi10eXBlOjpmaXJzdC1sZXR0ZXIge1xuICAgICAgICAuaG9vay1pbnZlcnNlLWRyb3BjYXAoKTtcbiAgICB9XG5cbiAgICAudWstbG9nbyB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1sb2dvLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLWxvZ28oKTtcbiAgICB9XG5cbiAgICAudWstbG9nbzpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBAaW52ZXJzZS1sb2dvLWhvdmVyLWNvbG9yO1xuICAgICAgICAuaG9vay1pbnZlcnNlLWxvZ28taG92ZXIoKTtcbiAgICB9XG5cbiAgICAudWstbG9nbyA+IHBpY3R1cmU6bm90KDpvbmx5LW9mLXR5cGUpID4gOm5vdCgudWstbG9nby1pbnZlcnNlKSxcbiAgICAudWstbG9nbyA+IDpub3QocGljdHVyZSk6bm90KC51ay1sb2dvLWludmVyc2UpOm5vdCg6b25seS1vZi10eXBlKSB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICAudWstbG9nby1pbnZlcnNlIHsgZGlzcGxheTogYmxvY2s7IH1cblxufVxuXG4uaG9vay1pbnZlcnNlLWRyb3BjYXAoKSB7fVxuLmhvb2staW52ZXJzZS1sb2dvKCkge31cbi5ob29rLWludmVyc2UtbG9nby1ob3ZlcigpIHt9XG4iLCIvL1xuLy8gQ29tcG9uZW50OiBVdGlsaXR5XG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIE5ld1xuLy9cblxuQGRyb3BjYXAtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5oZXJpdDtcblxuXG4vLyBQYW5lbFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXBhbmVsLXNjcm9sbGFibGUoKSB7fVxuXG5cbi8vIEJveC1zaGFkb3cgYm90dG9tXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYm94LXNoYWRvdy1ib3R0b20oKSB7fVxuXG5cbi8vIERyb3AgY2FwXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stZHJvcGNhcCgpIHtcbiAgICBjb2xvcjogQGRyb3BjYXAtY29sb3I7XG4gICAgLy8gUHJldmVudCBsaW5lIHdyYXBcbiAgICBtYXJnaW4tYm90dG9tOiAtMnB4O1xufVxuXG5cbi8vIExvZ29cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1sb2dvKCkge31cblxuLmhvb2stbG9nby1ob3ZlcigpIHt9XG5cblxuLy8gTWlzY2VsbGFuZW91c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXV0aWxpdHktbWlzYygpIHt9XG5cblxuLy8gSW52ZXJzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpbnZlcnNlLWRyb3BjYXAtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGludmVyc2UtZ2xvYmFsLWNvbG9yO1xuXG4uaG9vay1pbnZlcnNlLWRyb3BjYXAoKSB7IGNvbG9yOiBAaW52ZXJzZS1kcm9wY2FwLWNvbG9yOyB9XG5cbi5ob29rLWludmVyc2UtbG9nbygpIHt9XG4uaG9vay1pbnZlcnNlLWxvZ28taG92ZXIoKSB7fVxuIiwiLy9cbi8vIENvbXBvbmVudDogVXRpbGl0eVxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBOZXdcbi8vXG5cbkBsb2dvLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaGVyaXQ7XG5AbG9nby10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgICAgICAgICAgICAgICAgICBpbmhlcml0O1xuQGxvZ28tbGV0dGVyLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5oZXJpdDtcblxuXG4vLyBQYW5lbFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXBhbmVsLXNjcm9sbGFibGUoKSB7fVxuXG5cbi8vIEJveC1zaGFkb3cgYm90dG9tXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stYm94LXNoYWRvdy1ib3R0b20oKSB7fVxuXG5cbi8vIERyb3AgY2FwXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stZHJvcGNhcCgpIHt9XG5cblxuLy8gTG9nb1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWxvZ28oKSB3aGVuIG5vdCAoQGxvZ28tZm9udC13ZWlnaHQgPSBpbmhlcml0KSB7XG4gICAgZm9udC13ZWlnaHQ6IEBsb2dvLWZvbnQtd2VpZ2h0O1xufVxuXG4uaG9vay1sb2dvKCkgd2hlbiBub3QgKEBsb2dvLXRleHQtdHJhbnNmb3JtID0gaW5oZXJpdCkge1xuICAgIHRleHQtdHJhbnNmb3JtOiBAbG9nby10ZXh0LXRyYW5zZm9ybTtcbn1cblxuLmhvb2stbG9nbygpIHdoZW4gbm90IChAbG9nby1sZXR0ZXItc3BhY2luZyA9IGluaGVyaXQpIHtcbiAgICBsZXR0ZXItc3BhY2luZzogQGxvZ28tbGV0dGVyLXNwYWNpbmc7XG59XG5cbi5ob29rLWxvZ28taG92ZXIoKSB7fVxuXG5cbi8vIE1pc2NlbGxhbmVvdXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay11dGlsaXR5LW1pc2MoKSB7fVxuXG5cbi8vIEludmVyc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1pbnZlcnNlLWRyb3BjYXAoKSB7fVxuXG4uaG9vay1pbnZlcnNlLWxvZ28oKSB7fVxuLmhvb2staW52ZXJzZS1sb2dvLWhvdmVyKCkge30iLCIvLyBOYW1lOiAgICAgICAgICAgIEZsZXhcbi8vIERlc2NyaXB0aW9uOiAgICAgVXRpbGl0aWVzIGZvciBsYXlvdXRzIGJhc2VkIG9uIGZsZXhib3hcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1mbGV4LSpgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEZsZXhcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstZmxleCB7IGRpc3BsYXk6IGZsZXg7IH1cbi51ay1mbGV4LWlubGluZSB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyB9XG5cblxuLyogQWxpZ25tZW50XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFsaWduIGl0ZW1zIGFsb25nIHRoZSBtYWluIGF4aXMgb2YgdGhlIGN1cnJlbnQgbGluZSBvZiB0aGUgZmxleCBjb250YWluZXJcbiAqIFJvdzogSG9yaXpvbnRhbFxuICovXG5cbi8vIERlZmF1bHRcbi51ay1mbGV4LWxlZnQgeyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbi51ay1mbGV4LWNlbnRlciB7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4udWstZmxleC1yaWdodCB7IGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbi51ay1mbGV4LWJldHdlZW4geyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbi51ay1mbGV4LWFyb3VuZCB7IGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG5cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1zbWFsbCkge1xuXG4gICAgLnVrLWZsZXgtbGVmdFxcQHMgeyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgICAudWstZmxleC1jZW50ZXJcXEBzIHsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAudWstZmxleC1yaWdodFxcQHMgeyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gICAgLnVrLWZsZXgtYmV0d2VlblxcQHMgeyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgICAudWstZmxleC1hcm91bmRcXEBzIHsganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cblxufVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1tZWRpdW0pIHtcblxuICAgIC51ay1mbGV4LWxlZnRcXEBtIHsganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gICAgLnVrLWZsZXgtY2VudGVyXFxAbSB7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgLnVrLWZsZXgtcmlnaHRcXEBtIHsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAgIC51ay1mbGV4LWJldHdlZW5cXEBtIHsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gICAgLnVrLWZsZXgtYXJvdW5kXFxAbSB7IGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG5cbn1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbGFyZ2UpIHtcblxuICAgIC51ay1mbGV4LWxlZnRcXEBsIHsganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gICAgLnVrLWZsZXgtY2VudGVyXFxAbCB7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgLnVrLWZsZXgtcmlnaHRcXEBsIHsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAgIC51ay1mbGV4LWJldHdlZW5cXEBsIHsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gICAgLnVrLWZsZXgtYXJvdW5kXFxAbCB7IGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG5cbn1cblxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC14bGFyZ2UpIHtcblxuICAgIC51ay1mbGV4LWxlZnRcXEB4bCB7IGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAgIC51ay1mbGV4LWNlbnRlclxcQHhsIHsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAudWstZmxleC1yaWdodFxcQHhsIHsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAgIC51ay1mbGV4LWJldHdlZW5cXEB4bCB7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgIC51ay1mbGV4LWFyb3VuZFxcQHhsIHsganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cblxufVxuXG4vKlxuICogQWxpZ24gaXRlbXMgaW4gdGhlIGNyb3NzIGF4aXMgb2YgdGhlIGN1cnJlbnQgbGluZSBvZiB0aGUgZmxleCBjb250YWluZXJcbiAqIFJvdzogVmVydGljYWxcbiAqL1xuXG4vLyBEZWZhdWx0XG4udWstZmxleC1zdHJldGNoIHsgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cbi51ay1mbGV4LXRvcCB7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG4udWstZmxleC1taWRkbGUgeyBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4udWstZmxleC1ib3R0b20geyBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cblxuXG4vKiBEaXJlY3Rpb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBEZWZhdWx0XG4udWstZmxleC1yb3cgeyBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4udWstZmxleC1yb3ctcmV2ZXJzZSB7IGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuLnVrLWZsZXgtY29sdW1uIHsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuLnVrLWZsZXgtY29sdW1uLXJldmVyc2UgeyBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH1cblxuXG4vKiBXcmFwXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLy8gRGVmYXVsdFxuLnVrLWZsZXgtbm93cmFwIHsgZmxleC13cmFwOiBub3dyYXA7IH1cbi51ay1mbGV4LXdyYXAgeyBmbGV4LXdyYXA6IHdyYXA7IH1cbi51ay1mbGV4LXdyYXAtcmV2ZXJzZSB7IGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlOyB9XG5cbi8qXG4gKiBBbGlnbnMgaXRlbXMgd2l0aGluIHRoZSBmbGV4IGNvbnRhaW5lciB3aGVuIHRoZXJlIGlzIGV4dHJhIHNwYWNlIGluIHRoZSBjcm9zcy1heGlzXG4gKiBPbmx5IHdvcmtzIGlmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgbGluZSBvZiBmbGV4IGl0ZW1zXG4gKi9cblxuLy8gRGVmYXVsdFxuLnVrLWZsZXgtd3JhcC1zdHJldGNoIHsgYWxpZ24tY29udGVudDogc3RyZXRjaDsgfVxuLnVrLWZsZXgtd3JhcC10b3AgeyBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4udWstZmxleC13cmFwLW1pZGRsZSB7IGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsgfVxuLnVrLWZsZXgtd3JhcC1ib3R0b20geyBhbGlnbi1jb250ZW50OiBmbGV4LWVuZDsgfVxuLnVrLWZsZXgtd3JhcC1iZXR3ZWVuIHsgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuLnVrLWZsZXgtd3JhcC1hcm91bmQgeyBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cblxuXG4vKiBJdGVtIG9yZGVyaW5nXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIERlZmF1bHQgaXMgMFxuICovXG5cbi51ay1mbGV4LWZpcnN0IHsgb3JkZXI6IC0xO31cbi51ay1mbGV4LWxhc3QgeyBvcmRlcjogOTk7fVxuXG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtc21hbGwpIHtcblxuICAgIC51ay1mbGV4LWZpcnN0XFxAcyB7IG9yZGVyOiAtMTsgfVxuICAgIC51ay1mbGV4LWxhc3RcXEBzIHsgb3JkZXI6IDk5OyB9XG5cbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAudWstZmxleC1maXJzdFxcQG0geyBvcmRlcjogLTE7IH1cbiAgICAudWstZmxleC1sYXN0XFxAbSB7IG9yZGVyOiA5OTsgfVxuXG59XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LWxhcmdlKSB7XG5cbiAgICAudWstZmxleC1maXJzdFxcQGwgeyBvcmRlcjogLTE7IH1cbiAgICAudWstZmxleC1sYXN0XFxAbCB7IG9yZGVyOiA5OTsgfVxuXG59XG5cbi8qIExhcmdlIHNjcmVlbiBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQteGxhcmdlKSB7XG5cbiAgICAudWstZmxleC1maXJzdFxcQHhsIHsgb3JkZXI6IC0xOyB9XG4gICAgLnVrLWZsZXgtbGFzdFxcQHhsIHsgb3JkZXI6IDk5OyB9XG5cbn1cblxuXG4vKiBJdGVtIGRpbWVuc2lvbnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogSW5pdGlhbDogMCAxIGF1dG9cbiAqIENvbnRlbnQgZGltZW5zaW9ucywgYnV0IHNocmlua3NcbiAqL1xuXG4vKlxuICogTm8gRmxleDogMCAwIGF1dG9cbiAqIENvbnRlbnQgZGltZW5zaW9uc1xuICovXG5cbi51ay1mbGV4LW5vbmUgeyBmbGV4OiBub25lOyB9XG5cbi8qXG4gKiBSZWxhdGl2ZSBGbGV4OiAxIDEgYXV0b1xuICogU3BhY2UgaXMgYWxsb2NhdGVkIGNvbnNpZGVyaW5nIGNvbnRlbnRcbiAqL1xuXG4udWstZmxleC1hdXRvIHsgZmxleDogYXV0bzsgfVxuXG4vKlxuICogQWJzb2x1dGUgRmxleDogMSAxIDAlXG4gKiBTcGFjZSBpcyBhbGxvY2F0ZWQgc29sZWx5IGJhc2VkIG9uIGZsZXhcbiAqL1xuXG4udWstZmxleC0xIHsgZmxleDogMTsgfVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stZmxleC1taXNjKCk7XG5cbi5ob29rLWZsZXgtbWlzYygpIHt9XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIE1hcmdpblxuLy8gRGVzY3JpcHRpb246ICAgICBVdGlsaXRpZXMgZm9yIG1hcmdpbnNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1tYXJnaW4tKmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLW1hcmdpbi1zbWFsbC0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbWFyZ2luLW1lZGl1bS0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstbWFyZ2luLWxhcmdlLSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1tYXJnaW4teGxhcmdlLSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1tYXJnaW4tcmVtb3ZlLSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1tYXJnaW4tYXV0by0qYFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBtYXJnaW4tbWFyZ2luOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW1hcmdpbjtcblxuQG1hcmdpbi1zbWFsbC1tYXJnaW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc21hbGwtbWFyZ2luO1xuXG5AbWFyZ2luLW1lZGl1bS1tYXJnaW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tZWRpdW0tbWFyZ2luO1xuXG5AbWFyZ2luLWxhcmdlLW1hcmdpbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tZWRpdW0tbWFyZ2luO1xuQG1hcmdpbi1sYXJnZS1tYXJnaW4tbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtbGFyZ2UtbWFyZ2luO1xuXG5AbWFyZ2luLXhsYXJnZS1tYXJnaW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1sYXJnZS1tYXJnaW47XG5AbWFyZ2luLXhsYXJnZS1tYXJnaW4tbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC14bGFyZ2UtbWFyZ2luO1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBNYXJnaW5cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogRGVmYXVsdFxuICovXG5cbi51ay1tYXJnaW4geyBtYXJnaW4tYm90dG9tOiBAbWFyZ2luLW1hcmdpbjsgfVxuKiArIC51ay1tYXJnaW4geyBtYXJnaW4tdG9wOiBAbWFyZ2luLW1hcmdpbiAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tdG9wIHsgbWFyZ2luLXRvcDogQG1hcmdpbi1tYXJnaW4gIWltcG9ydGFudDsgfVxuLnVrLW1hcmdpbi1ib3R0b20geyBtYXJnaW4tYm90dG9tOiBAbWFyZ2luLW1hcmdpbiAhaW1wb3J0YW50OyB9XG4udWstbWFyZ2luLWxlZnQgeyBtYXJnaW4tbGVmdDogQG1hcmdpbi1tYXJnaW4gIWltcG9ydGFudDsgfVxuLnVrLW1hcmdpbi1yaWdodCB7IG1hcmdpbi1yaWdodDogQG1hcmdpbi1tYXJnaW4gIWltcG9ydGFudDsgfVxuXG5cbi8qIFNtYWxsXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLW1hcmdpbi1zbWFsbCB7IG1hcmdpbi1ib3R0b206IEBtYXJnaW4tc21hbGwtbWFyZ2luOyB9XG4qICsgLnVrLW1hcmdpbi1zbWFsbCB7IG1hcmdpbi10b3A6IEBtYXJnaW4tc21hbGwtbWFyZ2luICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1zbWFsbC10b3AgeyBtYXJnaW4tdG9wOiBAbWFyZ2luLXNtYWxsLW1hcmdpbiAhaW1wb3J0YW50OyB9XG4udWstbWFyZ2luLXNtYWxsLWJvdHRvbSB7IG1hcmdpbi1ib3R0b206IEBtYXJnaW4tc21hbGwtbWFyZ2luICFpbXBvcnRhbnQ7IH1cbi51ay1tYXJnaW4tc21hbGwtbGVmdCB7IG1hcmdpbi1sZWZ0OiBAbWFyZ2luLXNtYWxsLW1hcmdpbiAhaW1wb3J0YW50OyB9XG4udWstbWFyZ2luLXNtYWxsLXJpZ2h0IHsgbWFyZ2luLXJpZ2h0OiBAbWFyZ2luLXNtYWxsLW1hcmdpbiAhaW1wb3J0YW50OyB9XG5cblxuLyogTWVkaXVtXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLW1hcmdpbi1tZWRpdW0geyBtYXJnaW4tYm90dG9tOiBAbWFyZ2luLW1lZGl1bS1tYXJnaW47IH1cbiogKyAudWstbWFyZ2luLW1lZGl1bSB7IG1hcmdpbi10b3A6IEBtYXJnaW4tbWVkaXVtLW1hcmdpbiAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tbWVkaXVtLXRvcCB7IG1hcmdpbi10b3A6IEBtYXJnaW4tbWVkaXVtLW1hcmdpbiAhaW1wb3J0YW50OyB9XG4udWstbWFyZ2luLW1lZGl1bS1ib3R0b20geyBtYXJnaW4tYm90dG9tOiBAbWFyZ2luLW1lZGl1bS1tYXJnaW4gIWltcG9ydGFudDsgfVxuLnVrLW1hcmdpbi1tZWRpdW0tbGVmdCB7IG1hcmdpbi1sZWZ0OiBAbWFyZ2luLW1lZGl1bS1tYXJnaW4gIWltcG9ydGFudDsgfVxuLnVrLW1hcmdpbi1tZWRpdW0tcmlnaHQgeyBtYXJnaW4tcmlnaHQ6IEBtYXJnaW4tbWVkaXVtLW1hcmdpbiAhaW1wb3J0YW50OyB9XG5cblxuLyogTGFyZ2VcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbWFyZ2luLWxhcmdlIHsgbWFyZ2luLWJvdHRvbTogQG1hcmdpbi1sYXJnZS1tYXJnaW47IH1cbiogKyAudWstbWFyZ2luLWxhcmdlIHsgbWFyZ2luLXRvcDogQG1hcmdpbi1sYXJnZS1tYXJnaW4gIWltcG9ydGFudDsgfVxuXG4udWstbWFyZ2luLWxhcmdlLXRvcCB7IG1hcmdpbi10b3A6IEBtYXJnaW4tbGFyZ2UtbWFyZ2luICFpbXBvcnRhbnQ7IH1cbi51ay1tYXJnaW4tbGFyZ2UtYm90dG9tIHsgbWFyZ2luLWJvdHRvbTogQG1hcmdpbi1sYXJnZS1tYXJnaW4gIWltcG9ydGFudDsgfVxuLnVrLW1hcmdpbi1sYXJnZS1sZWZ0IHsgbWFyZ2luLWxlZnQ6IEBtYXJnaW4tbGFyZ2UtbWFyZ2luICFpbXBvcnRhbnQ7IH1cbi51ay1tYXJnaW4tbGFyZ2UtcmlnaHQgeyBtYXJnaW4tcmlnaHQ6IEBtYXJnaW4tbGFyZ2UtbWFyZ2luICFpbXBvcnRhbnQ7IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbGFyZ2UpIHtcblxuICAgIC51ay1tYXJnaW4tbGFyZ2UgeyBtYXJnaW4tYm90dG9tOiBAbWFyZ2luLWxhcmdlLW1hcmdpbi1sOyB9XG4gICAgKiArIC51ay1tYXJnaW4tbGFyZ2UgeyBtYXJnaW4tdG9wOiBAbWFyZ2luLWxhcmdlLW1hcmdpbi1sICFpbXBvcnRhbnQ7IH1cblxuICAgIC51ay1tYXJnaW4tbGFyZ2UtdG9wIHsgbWFyZ2luLXRvcDogQG1hcmdpbi1sYXJnZS1tYXJnaW4tbCAhaW1wb3J0YW50OyB9XG4gICAgLnVrLW1hcmdpbi1sYXJnZS1ib3R0b20geyBtYXJnaW4tYm90dG9tOiBAbWFyZ2luLWxhcmdlLW1hcmdpbi1sICFpbXBvcnRhbnQ7IH1cbiAgICAudWstbWFyZ2luLWxhcmdlLWxlZnQgeyBtYXJnaW4tbGVmdDogQG1hcmdpbi1sYXJnZS1tYXJnaW4tbCAhaW1wb3J0YW50OyB9XG4gICAgLnVrLW1hcmdpbi1sYXJnZS1yaWdodCB7IG1hcmdpbi1yaWdodDogQG1hcmdpbi1sYXJnZS1tYXJnaW4tbCAhaW1wb3J0YW50OyB9XG5cbn1cblxuXG4vKiBYTGFyZ2VcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbWFyZ2luLXhsYXJnZSB7IG1hcmdpbi1ib3R0b206IEBtYXJnaW4teGxhcmdlLW1hcmdpbjsgfVxuKiArIC51ay1tYXJnaW4teGxhcmdlIHsgbWFyZ2luLXRvcDogQG1hcmdpbi14bGFyZ2UtbWFyZ2luICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi14bGFyZ2UtdG9wIHsgbWFyZ2luLXRvcDogQG1hcmdpbi14bGFyZ2UtbWFyZ2luICFpbXBvcnRhbnQ7IH1cbi51ay1tYXJnaW4teGxhcmdlLWJvdHRvbSB7IG1hcmdpbi1ib3R0b206IEBtYXJnaW4teGxhcmdlLW1hcmdpbiAhaW1wb3J0YW50OyB9XG4udWstbWFyZ2luLXhsYXJnZS1sZWZ0IHsgbWFyZ2luLWxlZnQ6IEBtYXJnaW4teGxhcmdlLW1hcmdpbiAhaW1wb3J0YW50OyB9XG4udWstbWFyZ2luLXhsYXJnZS1yaWdodCB7IG1hcmdpbi1yaWdodDogQG1hcmdpbi14bGFyZ2UtbWFyZ2luICFpbXBvcnRhbnQ7IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbGFyZ2UpIHtcblxuICAgIC51ay1tYXJnaW4teGxhcmdlIHsgbWFyZ2luLWJvdHRvbTogQG1hcmdpbi14bGFyZ2UtbWFyZ2luLWw7IH1cbiAgICAqICsgLnVrLW1hcmdpbi14bGFyZ2UgeyBtYXJnaW4tdG9wOiBAbWFyZ2luLXhsYXJnZS1tYXJnaW4tbCAhaW1wb3J0YW50OyB9XG5cbiAgICAudWstbWFyZ2luLXhsYXJnZS10b3AgeyBtYXJnaW4tdG9wOiBAbWFyZ2luLXhsYXJnZS1tYXJnaW4tbCAhaW1wb3J0YW50OyB9XG4gICAgLnVrLW1hcmdpbi14bGFyZ2UtYm90dG9tIHsgbWFyZ2luLWJvdHRvbTogQG1hcmdpbi14bGFyZ2UtbWFyZ2luLWwgIWltcG9ydGFudDsgfVxuICAgIC51ay1tYXJnaW4teGxhcmdlLWxlZnQgeyBtYXJnaW4tbGVmdDogQG1hcmdpbi14bGFyZ2UtbWFyZ2luLWwgIWltcG9ydGFudDsgfVxuICAgIC51ay1tYXJnaW4teGxhcmdlLXJpZ2h0IHsgbWFyZ2luLXJpZ2h0OiBAbWFyZ2luLXhsYXJnZS1tYXJnaW4tbCAhaW1wb3J0YW50OyB9XG5cbn1cblxuXG4vKiBBdXRvXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLW1hcmdpbi1hdXRvIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuXG4udWstbWFyZ2luLWF1dG8tdG9wIHsgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50OyB9XG4udWstbWFyZ2luLWF1dG8tYm90dG9tIHsgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50OyB9XG4udWstbWFyZ2luLWF1dG8tbGVmdCB7IG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IH1cbi51ay1tYXJnaW4tYXV0by1yaWdodCB7IG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OyB9XG5cbi51ay1tYXJnaW4tYXV0by12ZXJ0aWNhbCB7XG4gICAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1zbWFsbCkge1xuXG4gICAgLnVrLW1hcmdpbi1hdXRvXFxAcyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51ay1tYXJnaW4tYXV0by1sZWZ0XFxAcyB7IG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgICAudWstbWFyZ2luLWF1dG8tcmlnaHRcXEBzIHsgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cblxufVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1tZWRpdW0pIHtcblxuICAgIC51ay1tYXJnaW4tYXV0b1xcQG0ge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAudWstbWFyZ2luLWF1dG8tbGVmdFxcQG0geyBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50OyB9XG4gICAgLnVrLW1hcmdpbi1hdXRvLXJpZ2h0XFxAbSB7IG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OyB9XG5cbn1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbGFyZ2UpIHtcblxuICAgIC51ay1tYXJnaW4tYXV0b1xcQGwge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAudWstbWFyZ2luLWF1dG8tbGVmdFxcQGwgeyBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50OyB9XG4gICAgLnVrLW1hcmdpbi1hdXRvLXJpZ2h0XFxAbCB7IG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OyB9XG5cbn1cblxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC14bGFyZ2UpIHtcblxuICAgIC51ay1tYXJnaW4tYXV0b1xcQHhsIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnVrLW1hcmdpbi1hdXRvLWxlZnRcXEB4bCB7IG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgICAudWstbWFyZ2luLWF1dG8tcmlnaHRcXEB4bCB7IG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OyB9XG5cbn1cblxuXG4vKiBSZW1vdmVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstbWFyZ2luLXJlbW92ZSB7IG1hcmdpbjogMCAhaW1wb3J0YW50OyB9XG4udWstbWFyZ2luLXJlbW92ZS10b3AgeyBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IH1cbi51ay1tYXJnaW4tcmVtb3ZlLWJvdHRvbSB7IG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsgfVxuLnVrLW1hcmdpbi1yZW1vdmUtbGVmdCB7IG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cbi51ay1tYXJnaW4tcmVtb3ZlLXJpZ2h0IHsgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cblxuLnVrLW1hcmdpbi1yZW1vdmUtdmVydGljYWwge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG59XG5cbi51ay1tYXJnaW4tcmVtb3ZlLWFkamFjZW50ICsgKixcbi51ay1tYXJnaW4tcmVtb3ZlLWZpcnN0LWNoaWxkID4gOmZpcnN0LWNoaWxkIHsgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OyB9XG4udWstbWFyZ2luLXJlbW92ZS1sYXN0LWNoaWxkID4gOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1zbWFsbCkge1xuXG4gICAgLnVrLW1hcmdpbi1yZW1vdmUtbGVmdFxcQHMgeyBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OyB9XG4gICAgLnVrLW1hcmdpbi1yZW1vdmUtcmlnaHRcXEBzIHsgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cblxufVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1tZWRpdW0pIHtcblxuICAgIC51ay1tYXJnaW4tcmVtb3ZlLWxlZnRcXEBtIHsgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxuICAgIC51ay1tYXJnaW4tcmVtb3ZlLXJpZ2h0XFxAbSB7IG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50OyB9XG5cbn1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbGFyZ2UpIHtcblxuICAgIC51ay1tYXJnaW4tcmVtb3ZlLWxlZnRcXEBsIHsgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxuICAgIC51ay1tYXJnaW4tcmVtb3ZlLXJpZ2h0XFxAbCB7IG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50OyB9XG5cbn1cblxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC14bGFyZ2UpIHtcblxuICAgIC51ay1tYXJnaW4tcmVtb3ZlLWxlZnRcXEB4bCB7IG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cbiAgICAudWstbWFyZ2luLXJlbW92ZS1yaWdodFxcQHhsIHsgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cblxufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stbWFyZ2luLW1pc2MoKTtcblxuLmhvb2stbWFyZ2luLW1pc2MoKSB7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBQYWRkaW5nXG4vLyBEZXNjcmlwdGlvbjogICAgIFV0aWxpdGllcyBmb3IgcGFkZGluZ1xuLy9cbi8vIENvbXBvbmVudDogICAgICAgYHVrLXBhZGRpbmdgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wYWRkaW5nLWxhcmdlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstcGFkZGluZy1yZW1vdmUtKmBcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBWYXJpYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AcGFkZGluZy1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZ3V0dGVyO1xuQHBhZGRpbmctcGFkZGluZy1sOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLW1lZGl1bS1ndXR0ZXI7XG5cbkBwYWRkaW5nLXNtYWxsLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zbWFsbC1ndXR0ZXI7XG5cbkBwYWRkaW5nLWxhcmdlLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tZWRpdW0tZ3V0dGVyO1xuQHBhZGRpbmctbGFyZ2UtcGFkZGluZy1sOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLWxhcmdlLWd1dHRlcjtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogUGFkZGluZ1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1wYWRkaW5nIHsgcGFkZGluZzogQHBhZGRpbmctcGFkZGluZzsgfVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1sYXJnZSkge1xuXG4gICAgLnVrLXBhZGRpbmcgeyBwYWRkaW5nOiBAcGFkZGluZy1wYWRkaW5nLWw7IH1cblxufVxuXG5cbi8qIFNtYWxsXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXBhZGRpbmctc21hbGwgeyBwYWRkaW5nOiBAcGFkZGluZy1zbWFsbC1wYWRkaW5nOyB9XG5cblxuLyogTGFyZ2VcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstcGFkZGluZy1sYXJnZSB7IHBhZGRpbmc6IEBwYWRkaW5nLWxhcmdlLXBhZGRpbmc7IH1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbGFyZ2UpIHtcblxuICAgIC51ay1wYWRkaW5nLWxhcmdlIHsgcGFkZGluZzogQHBhZGRpbmctbGFyZ2UtcGFkZGluZy1sOyB9XG5cbn1cblxuXG4vKiBSZW1vdmVcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstcGFkZGluZy1yZW1vdmUgeyBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IH1cbi51ay1wYWRkaW5nLXJlbW92ZS10b3AgeyBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50OyB9XG4udWstcGFkZGluZy1yZW1vdmUtYm90dG9tIHsgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDsgfVxuLnVrLXBhZGRpbmctcmVtb3ZlLWxlZnQgeyBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxuLnVrLXBhZGRpbmctcmVtb3ZlLXJpZ2h0IHsgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OyB9XG5cbi51ay1wYWRkaW5nLXJlbW92ZS12ZXJ0aWNhbCB7XG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuXG4udWstcGFkZGluZy1yZW1vdmUtaG9yaXpvbnRhbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stcGFkZGluZy1taXNjKCk7XG5cbi5ob29rLXBhZGRpbmctbWlzYygpIHt9XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIFBvc2l0aW9uXG4vLyBEZXNjcmlwdGlvbjogICAgIFV0aWxpdGllcyB0byBwb3NpdGlvbiBjb250ZW50XG4vL1xuLy8gQ29tcG9uZW50OiAgICAgICBgdWstcG9zaXRpb24tYWJzb2x1dGVgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wb3NpdGlvbi1yZWxhdGl2ZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBvc2l0aW9uLXotaW5kZXhgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wb3NpdGlvbi10b3BgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wb3NpdGlvbi1ib3R0b21gXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wb3NpdGlvbi1sZWZ0YFxuLy8gICAgICAgICAgICAgICAgICBgdWstcG9zaXRpb24tcmlnaHRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wb3NpdGlvbi10b3AtbGVmdGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBvc2l0aW9uLXRvcC1jZW50ZXJgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wb3NpdGlvbi10b3AtcmlnaHRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wb3NpdGlvbi1ib3R0b20tbGVmdGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBvc2l0aW9uLWJvdHRvbS1jZW50ZXJgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wb3NpdGlvbi1ib3R0b20tcmlnaHRgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wb3NpdGlvbi1jZW50ZXJgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay1wb3NpdGlvbi1jZW50ZXItbGVmdGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBvc2l0aW9uLWNlbnRlci1yaWdodGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXBvc2l0aW9uLWNvdmVyYFxuLy9cbi8vIE1vZGlmaWVyczogICAgICAgYHVrLXBvc2l0aW9uLXNtYWxsYFxuLy8gICAgICAgICAgICAgICAgICBgdWstcG9zaXRpb24tbWVkaXVtYFxuLy8gICAgICAgICAgICAgICAgICBgdWstcG9zaXRpb24tbGFyZ2VgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQHBvc2l0aW9uLXNtYWxsLW1hcmdpbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc21hbGwtZ3V0dGVyO1xuQHBvc2l0aW9uLW1lZGl1bS1tYXJnaW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZ3V0dGVyO1xuQHBvc2l0aW9uLWxhcmdlLW1hcmdpbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtZ3V0dGVyO1xuQHBvc2l0aW9uLWxhcmdlLW1hcmdpbi1sOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwcHg7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFBvc2l0aW9uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuOnJvb3QgeyAtLXVrLXBvc2l0aW9uLW1hcmdpbi1vZmZzZXQ6IDBweDsgfVxuXG5cbi8qIERpcmVjdGlvbnNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogMS4gUHJldmVudCBjb250ZW50IG92ZXJmbG93LlxuICovXG5cbltjbGFzcyo9J3VrLXBvc2l0aW9uLXRvcCddLFxuW2NsYXNzKj0ndWstcG9zaXRpb24tYm90dG9tJ10sXG5bY2xhc3MqPSd1ay1wb3NpdGlvbi1sZWZ0J10sXG5bY2xhc3MqPSd1ay1wb3NpdGlvbi1yaWdodCddLFxuW2NsYXNzKj0ndWstcG9zaXRpb24tY2VudGVyJ10ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIC8qIDEgKi9cbiAgICBtYXgtd2lkdGg6IH4nY2FsYygxMDAlIC0gKHZhcigtLXVrLXBvc2l0aW9uLW1hcmdpbi1vZmZzZXQpICogMikpJztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4vKlxuICogRWRnZXNcbiAqIERvbid0IHVzZSBgd2lkdGg6IDEwMCVgIGJlY2F1c2UgaXQncyB3cm9uZyBpZiB0aGUgcGFyZW50IGhhcyBwYWRkaW5nLlxuICovXG5cbi51ay1wb3NpdGlvbi10b3Age1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xufVxuXG4udWstcG9zaXRpb24tYm90dG9tIHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbn1cblxuLnVrLXBvc2l0aW9uLWxlZnQge1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbn1cblxuLnVrLXBvc2l0aW9uLXJpZ2h0IHtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAwO1xufVxuXG4vKlxuICogQ29ybmVyc1xuICovXG5cbi51ay1wb3NpdGlvbi10b3AtbGVmdCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG59XG5cbi51ay1wb3NpdGlvbi10b3AtcmlnaHQge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbn1cblxuLnVrLXBvc2l0aW9uLWJvdHRvbS1sZWZ0IHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbn1cblxuLnVrLXBvc2l0aW9uLWJvdHRvbS1yaWdodCB7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAwO1xufVxuXG4vKlxuICogQ2VudGVyXG4gKiAxLiBGaXggdGV4dCB3cmFwcGluZyBpZiBjb250ZW50IGlzIGxhcmdlciB0aGFuIDUwJSBvZiB0aGUgY29udGFpbmVyLlxuICogICAgVXNpbmcgYG1heC1jb250ZW50YCByZXF1aXJlcyBgbWF4LXdpZHRoYCBvZiAxMDAlIHdoaWNoIGlzIHNldCBnZW5lcmFsbHkuXG4gKi9cblxuLnVrLXBvc2l0aW9uLWNlbnRlciB7XG4gICAgdG9wOiB+J2NhbGMoNTAlIC0gdmFyKC0tdWstcG9zaXRpb24tbWFyZ2luLW9mZnNldCkpJztcbiAgICBsZWZ0OiB+J2NhbGMoNTAlIC0gdmFyKC0tdWstcG9zaXRpb24tbWFyZ2luLW9mZnNldCkpJztcbiAgICAtLXVrLXBvc2l0aW9uLXRyYW5zbGF0ZS14OiAtNTAlO1xuICAgIC0tdWstcG9zaXRpb24tdHJhbnNsYXRlLXk6IC01MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdWstcG9zaXRpb24tdHJhbnNsYXRlLXgpLCB2YXIoLS11ay1wb3NpdGlvbi10cmFuc2xhdGUteSkpO1xuICAgIC8qIDEgKi9cbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG59XG5cbi8qIFZlcnRpY2FsICovXG5bY2xhc3MqPSd1ay1wb3NpdGlvbi1jZW50ZXItbGVmdCddLFxuW2NsYXNzKj0ndWstcG9zaXRpb24tY2VudGVyLXJpZ2h0J10ge1xuICAgIHRvcDogfidjYWxjKDUwJSAtIHZhcigtLXVrLXBvc2l0aW9uLW1hcmdpbi1vZmZzZXQpKSc7XG4gICAgLS11ay1wb3NpdGlvbi10cmFuc2xhdGUteTogLTUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCB2YXIoLS11ay1wb3NpdGlvbi10cmFuc2xhdGUteSkpO1xufVxuXG4udWstcG9zaXRpb24tY2VudGVyLWxlZnQgeyBsZWZ0OiAwOyB9XG4udWstcG9zaXRpb24tY2VudGVyLXJpZ2h0IHsgcmlnaHQ6IDA7IH1cblxuLnVrLXBvc2l0aW9uLWNlbnRlci1sZWZ0LW91dCB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xufVxuXG4udWstcG9zaXRpb24tY2VudGVyLXJpZ2h0LW91dCB7XG4gICAgbGVmdDogMTAwJTtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG59XG5cbi8qIEhvcml6b250YWwgKi9cbi51ay1wb3NpdGlvbi10b3AtY2VudGVyLFxuLnVrLXBvc2l0aW9uLWJvdHRvbS1jZW50ZXIge1xuICAgIGxlZnQ6IH4nY2FsYyg1MCUgLSB2YXIoLS11ay1wb3NpdGlvbi1tYXJnaW4tb2Zmc2V0KSknO1xuICAgIC0tdWstcG9zaXRpb24tdHJhbnNsYXRlLXg6IC01MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdWstcG9zaXRpb24tdHJhbnNsYXRlLXgpLCAwKTtcbiAgICAvKiAxICovXG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xufVxuXG4udWstcG9zaXRpb24tdG9wLWNlbnRlciB7IHRvcDogMDsgfVxuLnVrLXBvc2l0aW9uLWJvdHRvbS1jZW50ZXIgeyBib3R0b206IDA7IH1cblxuLypcbiAqIENvdmVyXG4gKi9cblxuLnVrLXBvc2l0aW9uLWNvdmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xufVxuXG5cbi8qIE1hcmdpblxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1wb3NpdGlvbi1zbWFsbCB7XG4gICAgbWFyZ2luOiBAcG9zaXRpb24tc21hbGwtbWFyZ2luO1xuICAgIC0tdWstcG9zaXRpb24tbWFyZ2luLW9mZnNldDogQHBvc2l0aW9uLXNtYWxsLW1hcmdpbjtcbn1cblxuLnVrLXBvc2l0aW9uLW1lZGl1bSB7XG4gICAgbWFyZ2luOiBAcG9zaXRpb24tbWVkaXVtLW1hcmdpbjtcbiAgICAtLXVrLXBvc2l0aW9uLW1hcmdpbi1vZmZzZXQ6IEBwb3NpdGlvbi1tZWRpdW0tbWFyZ2luO1xufVxuXG4udWstcG9zaXRpb24tbGFyZ2Uge1xuICAgIG1hcmdpbjogQHBvc2l0aW9uLWxhcmdlLW1hcmdpbjtcbiAgICAtLXVrLXBvc2l0aW9uLW1hcmdpbi1vZmZzZXQ6IEBwb3NpdGlvbi1sYXJnZS1tYXJnaW47XG59XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LWxhcmdlKSB7XG5cbiAgICAudWstcG9zaXRpb24tbGFyZ2Uge1xuICAgICAgICBtYXJnaW46IEBwb3NpdGlvbi1sYXJnZS1tYXJnaW4tbDtcbiAgICAgICAgLS11ay1wb3NpdGlvbi1tYXJnaW4tb2Zmc2V0OiBAcG9zaXRpb24tbGFyZ2UtbWFyZ2luLWw7XG4gICAgfVxuXG59XG5cblxuLyogU2NoZW1lc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1wb3NpdGlvbi1yZWxhdGl2ZSB7IHBvc2l0aW9uOiByZWxhdGl2ZSAgIWltcG9ydGFudDsgfVxuLnVrLXBvc2l0aW9uLWFic29sdXRlIHsgcG9zaXRpb246IGFic29sdXRlICAhaW1wb3J0YW50OyB9XG4udWstcG9zaXRpb24tZml4ZWQgeyBwb3NpdGlvbjogZml4ZWQgICFpbXBvcnRhbnQ7IH1cbi51ay1wb3NpdGlvbi1zdGlja3kgeyBwb3NpdGlvbjogc3RpY2t5ICAhaW1wb3J0YW50OyB9XG5cblxuLyogTGF5ZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstcG9zaXRpb24tei1pbmRleCB7IHotaW5kZXg6IDE7IH1cbi51ay1wb3NpdGlvbi16LWluZGV4LXplcm8geyB6LWluZGV4OiAwOyB9XG4udWstcG9zaXRpb24tei1pbmRleC1uZWdhdGl2ZSB7IHotaW5kZXg6IC0xOyB9XG5cblxuLy8gSG9va3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaG9vay1wb3NpdGlvbi1taXNjKCk7XG5cbi5ob29rLXBvc2l0aW9uLW1pc2MoKSB7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBUcmFuc2l0aW9uXG4vLyBEZXNjcmlwdGlvbjogICAgIFV0aWxpdGllcyBmb3IgdHJhbnNpdGlvbnNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay10cmFuc2l0aW9uLSpgXG4vL1xuLy8gTW9kaWZpZXJzOiAgICAgICBgdWstdHJhbnNpdGlvbi1mYWRlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstdHJhbnNpdGlvbi1zY2FsZS11cGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRyYW5zaXRpb24tc2NhbGUtZG93bmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRyYW5zaXRpb24tc2xpZGUtdG9wLSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10cmFuc2l0aW9uLXNsaWRlLWJvdHRvbS0qYFxuLy8gICAgICAgICAgICAgICAgICBgdWstdHJhbnNpdGlvbi1zbGlkZS1sZWZ0LSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10cmFuc2l0aW9uLXNsaWRlLXJpZ2h0LSpgXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10cmFuc2l0aW9uLW9wYXF1ZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXRyYW5zaXRpb24tc2xvd2Bcbi8vXG4vLyBTdWItb2JqZWN0czogICAgIGB1ay10cmFuc2l0aW9uLXRvZ2dsZWAsXG4vLyAgICAgICAgICAgICAgICAgIGB1ay10cmFuc2l0aW9uLWFjdGl2ZWBcbi8vXG4vLyBTdGF0ZXM6ICAgICAgICAgIGB1ay1hY3RpdmVgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQHRyYW5zaXRpb24tZHVyYXRpb246ICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4zcztcblxuQHRyYW5zaXRpb24tc2NhbGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4wMztcblxuQHRyYW5zaXRpb24tc2xpZGUtc21hbGwtdHJhbnNsYXRlOiAgICAgICAgICAgICAgMTBweDtcbkB0cmFuc2l0aW9uLXNsaWRlLW1lZGl1bS10cmFuc2xhdGU6ICAgICAgICAgICAgIDUwcHg7XG5cbkB0cmFuc2l0aW9uLXNsb3ctZHVyYXRpb246ICAgICAgICAgICAgICAgICAgICAgIDAuN3M7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFRyYW5zaXRpb25cbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiBUcmFuc2l0aW9uc1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBUaGUgdG9nZ2xlIGlzIHRyaWdnZXJlZCBvbiB0b3VjaCBkZXZpY2VzIGJ5IHR3byBtZXRob2RzOlxuICogMS4gVXNpbmcgYDpmb2N1c2AgYW5kIHRhYmluZGV4XG4gKiAyLiBVc2luZyBgOmhvdmVyYCBhbmQgYSBgdG91Y2hzdGFydGAgZXZlbnQgbGlzdGVuZXIgcmVnaXN0ZXJlZCBvbiB0aGUgZG9jdW1lbnRcbiAqICAgIChEb2Vzbid0IHdvcmsgb24gU3VyZmFjZSB0b3VjaCBkZXZpY2VzKVxuICovXG5cbjp3aGVyZSgudWstdHJhbnNpdGlvbi1mYWRlKSxcbjp3aGVyZShbY2xhc3MqPSd1ay10cmFuc2l0aW9uLXNjYWxlJ10pLFxuOndoZXJlKFtjbGFzcyo9J3VrLXRyYW5zaXRpb24tc2xpZGUnXSkge1xuICAgIC0tdWstcG9zaXRpb24tdHJhbnNsYXRlLXg6IDA7XG4gICAgLS11ay1wb3NpdGlvbi10cmFuc2xhdGUteTogMDtcbn1cblxuLnVrLXRyYW5zaXRpb24tZmFkZSxcbltjbGFzcyo9J3VrLXRyYW5zaXRpb24tc2NhbGUnXSxcbltjbGFzcyo9J3VrLXRyYW5zaXRpb24tc2xpZGUnXSB7XG4gICAgLS11ay10cmFuc2xhdGUteDogMDtcbiAgICAtLXVrLXRyYW5zbGF0ZS15OiAwO1xuICAgIC0tdWstc2NhbGUteDogMTtcbiAgICAtLXVrLXNjYWxlLXk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tdWstcG9zaXRpb24tdHJhbnNsYXRlLXgpLCB2YXIoLS11ay1wb3NpdGlvbi10cmFuc2xhdGUteSkpXG4gICAgICAgICAgICAgICB0cmFuc2xhdGUodmFyKC0tdWstdHJhbnNsYXRlLXgpLCB2YXIoLS11ay10cmFuc2xhdGUteSkpXG4gICAgICAgICAgICAgICBzY2FsZSh2YXIoLS11ay1zY2FsZS14KSwgdmFyKC0tdWstc2NhbGUteSkpO1xuICAgIHRyYW5zaXRpb246IEB0cmFuc2l0aW9uLWR1cmF0aW9uIGVhc2Utb3V0O1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIHRyYW5zZm9ybSwgZmlsdGVyO1xuICAgIG9wYWNpdHk6IDA7XG59XG5cbi8qXG4gKiBGYWRlXG4gKi9cblxuLnVrLXRyYW5zaXRpb24tdG9nZ2xlOmhvdmVyIC51ay10cmFuc2l0aW9uLWZhZGUsXG4udWstdHJhbnNpdGlvbi10b2dnbGU6Zm9jdXMgLnVrLXRyYW5zaXRpb24tZmFkZSxcbi51ay10cmFuc2l0aW9uLXRvZ2dsZSAudWstdHJhbnNpdGlvbi1mYWRlOmZvY3VzLXdpdGhpbixcbi51ay10cmFuc2l0aW9uLWFjdGl2ZS51ay1hY3RpdmUgLnVrLXRyYW5zaXRpb24tZmFkZSB7IG9wYWNpdHk6IDE7IH1cblxuLypcbiAqIFNjYWxlXG4gKiAxLiBNYWtlIGltYWdlIHJlbmRlcmluZyB0aGUgc2FtZSBkdXJpbmcgdGhlIHRyYW5zaXRpb24gYXMgYmVmb3JlIGFuZCBhZnRlci4gUHJlZml4ZWQgYmVjYXVzZSBvZiBTYWZhcmkuXG4gKi9cblxuLyogMSAqL1xuW2NsYXNzKj0ndWstdHJhbnNpdGlvbi1zY2FsZSddIHsgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnVrLXRyYW5zaXRpb24tc2NhbGUtdXAge1xuICAgIC0tdWstc2NhbGUteDogMTtcbiAgICAtLXVrLXNjYWxlLXk6IDE7XG59XG4udWstdHJhbnNpdGlvbi1zY2FsZS1kb3duIHtcbiAgICAtLXVrLXNjYWxlLXg6IEB0cmFuc2l0aW9uLXNjYWxlO1xuICAgIC0tdWstc2NhbGUteTogQHRyYW5zaXRpb24tc2NhbGU7XG59XG5cbi8qIFNob3cgKi9cbi51ay10cmFuc2l0aW9uLXRvZ2dsZTpob3ZlciAudWstdHJhbnNpdGlvbi1zY2FsZS11cCxcbi51ay10cmFuc2l0aW9uLXRvZ2dsZTpmb2N1cyAudWstdHJhbnNpdGlvbi1zY2FsZS11cCxcbi51ay10cmFuc2l0aW9uLXRvZ2dsZSAudWstdHJhbnNpdGlvbi1zY2FsZS11cDpmb2N1cy13aXRoaW4sXG4udWstdHJhbnNpdGlvbi1hY3RpdmUudWstYWN0aXZlIC51ay10cmFuc2l0aW9uLXNjYWxlLXVwIHtcbiAgICAtLXVrLXNjYWxlLXg6IEB0cmFuc2l0aW9uLXNjYWxlO1xuICAgIC0tdWstc2NhbGUteTogQHRyYW5zaXRpb24tc2NhbGU7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLnVrLXRyYW5zaXRpb24tdG9nZ2xlOmhvdmVyIC51ay10cmFuc2l0aW9uLXNjYWxlLWRvd24sXG4udWstdHJhbnNpdGlvbi10b2dnbGU6Zm9jdXMgLnVrLXRyYW5zaXRpb24tc2NhbGUtZG93bixcbi51ay10cmFuc2l0aW9uLXRvZ2dsZSAudWstdHJhbnNpdGlvbi1zY2FsZS1kb3duOmZvY3VzLXdpdGhpbixcbi51ay10cmFuc2l0aW9uLWFjdGl2ZS51ay1hY3RpdmUgLnVrLXRyYW5zaXRpb24tc2NhbGUtZG93biB7XG4gICAgLS11ay1zY2FsZS14OiAxO1xuICAgIC0tdWstc2NhbGUteTogMTtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4vKlxuICogU2xpZGVcbiAqL1xuXG4udWstdHJhbnNpdGlvbi1zbGlkZS10b3AgeyAtLXVrLXRyYW5zbGF0ZS15OiAtMTAwJTsgfVxuLnVrLXRyYW5zaXRpb24tc2xpZGUtYm90dG9tIHsgLS11ay10cmFuc2xhdGUteTogMTAwJTsgfVxuLnVrLXRyYW5zaXRpb24tc2xpZGUtbGVmdCB7IC0tdWstdHJhbnNsYXRlLXg6IC0xMDAlOyB9XG4udWstdHJhbnNpdGlvbi1zbGlkZS1yaWdodCB7IC0tdWstdHJhbnNsYXRlLXg6IDEwMCU7IH1cblxuLnVrLXRyYW5zaXRpb24tc2xpZGUtdG9wLXNtYWxsIHsgLS11ay10cmFuc2xhdGUteTogfidjYWxjKC0xICogQHt0cmFuc2l0aW9uLXNsaWRlLXNtYWxsLXRyYW5zbGF0ZX0pJzsgfVxuLnVrLXRyYW5zaXRpb24tc2xpZGUtYm90dG9tLXNtYWxsIHsgLS11ay10cmFuc2xhdGUteTogQHRyYW5zaXRpb24tc2xpZGUtc21hbGwtdHJhbnNsYXRlOyB9XG4udWstdHJhbnNpdGlvbi1zbGlkZS1sZWZ0LXNtYWxsIHsgLS11ay10cmFuc2xhdGUteDogfidjYWxjKC0xICogQHt0cmFuc2l0aW9uLXNsaWRlLXNtYWxsLXRyYW5zbGF0ZX0pJzsgfVxuLnVrLXRyYW5zaXRpb24tc2xpZGUtcmlnaHQtc21hbGwgeyAtLXVrLXRyYW5zbGF0ZS14OiBAdHJhbnNpdGlvbi1zbGlkZS1zbWFsbC10cmFuc2xhdGU7IH1cblxuLnVrLXRyYW5zaXRpb24tc2xpZGUtdG9wLW1lZGl1bSB7IC0tdWstdHJhbnNsYXRlLXk6IH4nY2FsYygtMSAqIEB7dHJhbnNpdGlvbi1zbGlkZS1tZWRpdW0tdHJhbnNsYXRlfSknOyB9XG4udWstdHJhbnNpdGlvbi1zbGlkZS1ib3R0b20tbWVkaXVtIHsgLS11ay10cmFuc2xhdGUteTogQHRyYW5zaXRpb24tc2xpZGUtbWVkaXVtLXRyYW5zbGF0ZTsgfVxuLnVrLXRyYW5zaXRpb24tc2xpZGUtbGVmdC1tZWRpdW0geyAtLXVrLXRyYW5zbGF0ZS14OiB+J2NhbGMoLTEgKiBAe3RyYW5zaXRpb24tc2xpZGUtbWVkaXVtLXRyYW5zbGF0ZX0pJzsgfVxuLnVrLXRyYW5zaXRpb24tc2xpZGUtcmlnaHQtbWVkaXVtIHsgLS11ay10cmFuc2xhdGUteDogQHRyYW5zaXRpb24tc2xpZGUtbWVkaXVtLXRyYW5zbGF0ZTsgfVxuXG4vKiBTaG93ICovXG4udWstdHJhbnNpdGlvbi10b2dnbGU6aG92ZXIgW2NsYXNzKj0ndWstdHJhbnNpdGlvbi1zbGlkZSddLFxuLnVrLXRyYW5zaXRpb24tdG9nZ2xlOmZvY3VzIFtjbGFzcyo9J3VrLXRyYW5zaXRpb24tc2xpZGUnXSxcbi51ay10cmFuc2l0aW9uLXRvZ2dsZSBbY2xhc3MqPSd1ay10cmFuc2l0aW9uLXNsaWRlJ106Zm9jdXMtd2l0aGluLFxuLnVrLXRyYW5zaXRpb24tYWN0aXZlLnVrLWFjdGl2ZSBbY2xhc3MqPSd1ay10cmFuc2l0aW9uLXNsaWRlJ10ge1xuICAgIC0tdWstdHJhbnNsYXRlLXg6IDA7XG4gICAgLS11ay10cmFuc2xhdGUteTogMDtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG5cbi8qIE9wYWNpdHkgbW9kaWZpZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udWstdHJhbnNpdGlvbi1vcGFxdWUgeyBvcGFjaXR5OiAxOyB9XG5cblxuLyogRHVyYXRpb24gbW9kaWZpZXJzXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnVrLXRyYW5zaXRpb24tc2xvdyB7IHRyYW5zaXRpb24tZHVyYXRpb246IEB0cmFuc2l0aW9uLXNsb3ctZHVyYXRpb247IH1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLXRyYW5zaXRpb24tbWlzYygpO1xuXG4uaG9vay10cmFuc2l0aW9uLW1pc2MoKSB7fVxuIiwiLy8gTmFtZTogICAgICAgICAgICBWaXNpYmlsaXR5XG4vLyBEZXNjcmlwdGlvbjogICAgIFV0aWxpdGllcyB0byBzaG93IG9yIGhpZGUgY29udGVudCBvbiBicmVha3BvaW50cywgaG92ZXIgb3IgdG91Y2hcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1oaWRkZW4tKmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXZpc2libGUtKmBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWludmlzaWJsZWBcbi8vICAgICAgICAgICAgICAgICAgYHVrLXZpc2libGUtdG9nZ2xlYFxuLy8gICAgICAgICAgICAgICAgICBgdWstaGlkZGVuLWhvdmVyYFxuLy8gICAgICAgICAgICAgICAgICBgdWstaW52aXNpYmxlLWhvdmVyYFxuLy8gICAgICAgICAgICAgICAgICBgdWstaGlkZGVuLXRvdWNoYFxuLy8gICAgICAgICAgICAgICAgICBgdWstaGlkZGVuLW5vdG91Y2hgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IFZpc2liaWxpdHlcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogSGlkZGVuXG4gKiBgaGlkZGVuYCBhdHRyaWJ1dGUgYWxzbyBzZXQgaGVyZSB0byBtYWtlIGl0IHN0cm9uZ2VyXG4gKi9cblxuW2hpZGRlbl0sXG4udWstaGlkZGVuIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi8qIFBob25lIGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtc21hbGwpIHtcblxuICAgIC51ay1oaWRkZW5cXEBzIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbn1cblxuLyogVGFibGV0IGxhbmRzY2FwZSBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbWVkaXVtKSB7XG5cbiAgICAudWstaGlkZGVuXFxAbSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG59XG5cbi8qIERlc2t0b3AgYW5kIGJpZ2dlciAqL1xuQG1lZGlhIChtaW4td2lkdGg6IEBicmVha3BvaW50LWxhcmdlKSB7XG5cbiAgICAudWstaGlkZGVuXFxAbCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG59XG5cbi8qIExhcmdlIHNjcmVlbiBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQteGxhcmdlKSB7XG5cbiAgICAudWstaGlkZGVuXFxAeGwgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxufVxuXG4vKlxuICogVmlzaWJsZVxuICovXG5cbi8qIFBob25lIHBvcnRyYWl0IGFuZCBzbWFsbGVyICovXG5AbWVkaWEgKG1heC13aWR0aDogQGJyZWFrcG9pbnQteHNtYWxsLW1heCkge1xuXG4gICAgLnVrLXZpc2libGVcXEBzIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbn1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBzbWFsbGVyICovXG5AbWVkaWEgKG1heC13aWR0aDogQGJyZWFrcG9pbnQtc21hbGwtbWF4KSB7XG5cbiAgICAudWstdmlzaWJsZVxcQG0geyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxufVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBzbWFsbGVyICovXG5AbWVkaWEgKG1heC13aWR0aDogQGJyZWFrcG9pbnQtbWVkaXVtLW1heCkge1xuXG4gICAgLnVrLXZpc2libGVcXEBsIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbn1cblxuLyogRGVza3RvcCBhbmQgc21hbGxlciAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IEBicmVha3BvaW50LWxhcmdlLW1heCkge1xuXG4gICAgLnVrLXZpc2libGVcXEB4bCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG59XG5cblxuLyogVmlzaWJpbGl0eVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1pbnZpc2libGUgeyB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgfVxuXG5cbi8qIEJhc2VkIG9uIHRoZSBTdGF0ZSBvZiB0aGUgUGFyZW50IEVsZW1lbnRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQ2FuJ3QgdXNlIGBkaXNwbGF5OiBub25lYCBub3IgYHZpc2liaWxpdHk6IGhpZGRlbmAgYmVjYXVzZSBib3RoIGFyZSBub3QgZm9jdXNhYmxlLlxuICogVGhlIHRhcmdldCBzdGF5cyB2aXNpYmxlIGlmIGFueSBlbGVtZW50IHdpdGhpbiByZWNlaXZlcyBmb2N1cyB0aHJvdWdoIGtleWJvYXJkLlxuICovXG5cbi8qXG4gKiBEaXNjYXJkIHNwYWNlIHdoZW4gaGlkZGVuLlxuICovXG5cbi51ay12aXNpYmxlLXRvZ2dsZTpub3QoOmhvdmVyKTpub3QoOmZvY3VzKSAudWstaGlkZGVuLWhvdmVyOm5vdCg6Zm9jdXMtd2l0aGluKSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4vKlxuICogS2VlcCBzcGFjZSB3aGVuIGhpZGRlbi5cbiAqL1xuXG4udWstdmlzaWJsZS10b2dnbGU6bm90KDpob3Zlcik6bm90KDpmb2N1cykgLnVrLWludmlzaWJsZS1ob3Zlcjpub3QoOmZvY3VzLXdpdGhpbikgeyBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7IH1cblxuXG4vKiBCYXNlZCBvbiBIb3ZlciBDYXBhYmlsaXR5IG9mIHRoZSBQb2ludGluZyBEZXZpY2VcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogSG92ZXJcbiAqL1xuXG4vKiBIaWRlIGlmIHByaW1hcnkgcG9pbnRpbmcgZGV2aWNlIGRvZXNuJ3Qgc3VwcG9ydCBob3ZlciwgZS5nLiB0b3VjaCBzY3JlZW5zLiAqL1xuQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAgIC51ay1oaWRkZW4tdG91Y2ggeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbn1cblxuLyogSGlkZSBpZiBwcmltYXJ5IHBvaW50aW5nIGRldmljZSBzdXBwb3J0cyBob3ZlciwgZS5nLiBtaWNlLiAqL1xuQG1lZGlhIChob3Zlcikge1xuICAgIC51ay1oaWRkZW4tbm90b3VjaCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxufVxuXG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stdmlzaWJpbGl0eS1taXNjKCk7XG5cbi5ob29rLXZpc2liaWxpdHktbWlzYygpIHt9XG4iLCIvLyBOYW1lOiAgICAgICAgICAgIEludmVyc2Vcbi8vIERlc2NyaXB0aW9uOiAgICAgSW52ZXJzZSBjb21wb25lbnQgc3R5bGUgZm9yIGxpZ2h0IG9yIGRhcmsgYmFja2dyb3VuZHNcbi8vXG4vLyBDb21wb25lbnQ6ICAgICAgIGB1ay1saWdodGBcbi8vICAgICAgICAgICAgICAgICAgYHVrLWRhcmtgXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGludmVyc2UtZ2xvYmFsLWNvbG9yLW1vZGU6ICAgICAgICAgICAgICAgICAgICAgbGlnaHQ7XG5cbkBpbnZlcnNlLWdsb2JhbC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgIGZhZGUoQGdsb2JhbC1pbnZlcnNlLWNvbG9yLCA3MCUpO1xuQGludmVyc2UtZ2xvYmFsLWVtcGhhc2lzLWNvbG9yOiAgICAgICAgICAgICAgICAgQGdsb2JhbC1pbnZlcnNlLWNvbG9yO1xuQGludmVyc2UtZ2xvYmFsLW11dGVkLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgZmFkZShAZ2xvYmFsLWludmVyc2UtY29sb3IsIDUwJSk7XG5AaW52ZXJzZS1nbG9iYWwtaW52ZXJzZS1jb2xvcjogICAgICAgICAgICAgICAgICBAZ2xvYmFsLWNvbG9yO1xuXG5AaW52ZXJzZS1nbG9iYWwtcHJpbWFyeS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICBAZ2xvYmFsLWludmVyc2UtY29sb3I7XG5AaW52ZXJzZS1nbG9iYWwtbXV0ZWQtYmFja2dyb3VuZDogICAgICAgICAgICAgICBmYWRlKEBnbG9iYWwtaW52ZXJzZS1jb2xvciwgMTAlKTtcblxuQGludmVyc2UtZ2xvYmFsLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgZmFkZShAZ2xvYmFsLWludmVyc2UtY29sb3IsIDIwJSk7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IEludmVyc2VcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogSW1wbGVtZW50ZWQgY2xhc3MgZGVwZW5kcyBvbiB0aGUgZ2VuZXJhbCB0aGVtZSBjb2xvclxuICogYHVrLWxpZ2h0YCBpcyBmb3IgbGlnaHQgY29sb3JzIG9uIGRhcmsgYmFja2dyb3VuZHNcbiAqIGB1ay1kYXJrYCBpcyBvciBkYXJrIGNvbG9ycyBvbiBsaWdodCBiYWNrZ3JvdW5kc1xuICovXG5cbi51ay1saWdodCB3aGVuIChAaW52ZXJzZS1nbG9iYWwtY29sb3ItbW9kZSA9IGxpZ2h0KSB7XG5cbiAgICAuaG9vay1pbnZlcnNlKCk7XG5cbn1cblxuLnVrLWRhcmsgd2hlbiAoQGludmVyc2UtZ2xvYmFsLWNvbG9yLW1vZGUgPSBkYXJrKSB7XG5cbiAgICAuaG9vay1pbnZlcnNlKCk7XG5cbn1cblxuXG4vLyBIb29rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ob29rLWludmVyc2UoKSB7fVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBUaGVtZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBQYWdlXG4vL1xuXG5AdGhlbWUtcGFnZS1ib3JkZXItbW9kZTogICAgICAgICAgICAgICAgICAgICAgICB+Jyc7XG5AdGhlbWUtcGFnZS1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAwO1xuQHRoZW1lLXBhZ2UtYm9yZGVyLXdpZHRoLWw6ICAgICAgICAgICAgICAgICAgICAgQHRoZW1lLXBhZ2UtYm9yZGVyLXdpZHRoO1xuQHRoZW1lLXBhZ2UtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XG5cbkBpbnRlcm5hbC10aGVtZS1wYWdlLWJvcmRlci1ncmFkaWVudDogICAgICAgICAgIH4nJztcblxuLy9cbi8vIFBhZ2UgQ29udGFpbmVyXG4vL1xuXG5AdGhlbWUtcGFnZS1jb250YWluZXItd2lkdGg6ICAgICAgICAgICAgICAgICAgICAxNTAwcHg7XG5AdGhlbWUtcGFnZS1jb250YWluZXItbWFyZ2luLXRvcDogICAgICAgICAgICAgICBAZ2xvYmFsLWxhcmdlLW1hcmdpbjtcbkB0aGVtZS1wYWdlLWNvbnRhaW5lci1tYXJnaW4tYm90dG9tOiAgICAgICAgICAgIEB0aGVtZS1wYWdlLWNvbnRhaW5lci1tYXJnaW4tdG9wO1xuQHRoZW1lLXBhZ2UtY29udGFpbmVyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgZGFya2VuKEBnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCwgMyUpO1xuXG4vL1xuLy8gVG9vbGJhclxuLy9cblxuQHRoZW1lLXRvb2xiYXItY29sb3ItbW9kZTogICAgICAgICAgICAgICAgICAgICAgbGlnaHQ7XG5AdGhlbWUtdG9vbGJhci1wYWRkaW5nLXRvcDogICAgICAgICAgICAgICAgICAgICAxMHB4O1xuQHRoZW1lLXRvb2xiYXItcGFkZGluZy1ib3R0b206ICAgICAgICAgICAgICAgICAgMTBweDtcbkB0aGVtZS10b29sYmFyLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWJhY2tncm91bmQ7XG5AdGhlbWUtdG9vbGJhci1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNtYWxsLWZvbnQtc2l6ZTtcbkB0aGVtZS10b29sYmFyLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgIGluaGVyaXQ7XG5cbi8vXG4vLyBIZWFkZXJcbi8vXG5cbkB0aGVtZS1oZWFkZXJiYXItY29sb3ItbW9kZTogICAgICAgICAgICAgICAgICAgIG5vbmU7XG5cbkB0aGVtZS1oZWFkZXJiYXItdG9wLXBhZGRpbmctdG9wOiAgICAgICAgICAgICAgIDIwcHg7XG5AdGhlbWUtaGVhZGVyYmFyLXRvcC1wYWRkaW5nLWJvdHRvbTogICAgICAgICAgICAyMHB4O1xuQHRoZW1lLWhlYWRlcmJhci10b3AtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgQG5hdmJhci1iYWNrZ3JvdW5kO1xuQHRoZW1lLWhlYWRlcmJhci10b3AtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgMDtcbkB0aGVtZS1oZWFkZXJiYXItdG9wLWJvcmRlcjogICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuXG5AdGhlbWUtaGVhZGVyYmFyLWJvdHRvbS1wYWRkaW5nLXRvcDogICAgICAgICAgICAyMHB4O1xuQHRoZW1lLWhlYWRlcmJhci1ib3R0b20tcGFkZGluZy1ib3R0b206ICAgICAgICAgMjBweDtcbkB0aGVtZS1oZWFkZXJiYXItYm90dG9tLWJhY2tncm91bmQ6ICAgICAgICAgICAgIEBuYXZiYXItYmFja2dyb3VuZDtcblxuQHRoZW1lLWhlYWRlcmJhci1zdGFja2VkLW1hcmdpbi10b3A6ICAgICAgICAgICAgMjBweDtcblxuQHRoZW1lLWhlYWRlcmJhci1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgaW5oZXJpdDtcblxuLy9cbi8vIFNpZGViYXJcbi8vXG5cbkB0aGVtZS1zaWRlYmFyLW1pbi13aWR0aDogICAgICAgICAgICAgICAgICAgICAgIDIwMHB4O1xuXG5cbi8qIEhUTUxcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogRm9yY2UgdmVydGljYWwgc2Nyb2xsYmFyXG4gKiAxLiBgb3ZlcmZsb3cteGAgaGFzIHRvIGJlIG9uIHRoZSBgYm9keWAgZWxlbWVudCBmb3IgU2FmYXJpIHRvIHByZXZlbnQgaG9yaXpvbnRhbCBzY3JvbGxpbmcgb24gdG91Y2hcbiAgICAgIFRoaXMgY2F1c2VzIGEgcmFuZG9tIGJ1ZyBzaG93aW5nIGEgdmVydGljYWwgc2Nyb2xsYmFyIGluIGNvbWJpbmF0aW9uIHdpdGggc29tZSBmb250cyBsaWtlIGBQb3BwaW5zYFxuICAgICAgVGhpcyBpcyB3aHkgYG92ZXJmbG93LXlgIG11c3QgYWxzbyBiZSBzZXQgdG8gYGhpZGRlbmBcbiAqL1xuXG5odG1sIHsgb3ZlcmZsb3cteTogc2Nyb2xsOyB9XG5cbi8qIDEgKi9cbmJvZHkgeyBvdmVyZmxvdzogaGlkZGVuOyB9XG5cblxuLyogUGFnZVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBQYWdlXG4gKiBQb3NpdGlvbiBjb250ZXh0IG5lZWRlZCBmb3IgYHRtLWhlYWRlci1vdmVybGF5YC5cbiAqL1xuXG4udG0tcGFnZSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4vKlxuICogQm9yZGVyXG4gKiAxLiBOZWVkIHRvIHJlbW92ZSBkZWZhdWx0IGBib3JkZXItd2lkdGhgIG9mIDRweCBpZiBgYm9yZGVyLWltYWdlYCBpcyB1c2VkIGluIFNhZmFyaSBhbmQgRWRnZVxuICogICAgT25seSBuZWVkZWQgaWYgYm9yZGVyIG1vZGUgaXMgbm90IGZ1bGwsIGUuZy4gYGxlZnRgXG4gKiAyLiBJbXBvcnRhbnQ6IEdyYW5kaWVudCB3b24ndCB3b3JrIGlmIHRoZSBib3JkZXItY29sb3IgaXMgYHRyYW5zcGFyZW50YCBpbiBTYWZhcmlcbiAqL1xuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1tZWRpdW0pIHtcblxuICAgIC8qIDEgKi9cbiAgICAudG0tcGFnZSB3aGVuIG5vdCAoQHRoZW1lLXBhZ2UtYm9yZGVyLXdpZHRoID0gMCkgYW5kIG5vdCAoQGludGVybmFsLXRoZW1lLXBhZ2UtYm9yZGVyLWdyYWRpZW50ID0gficnKSBhbmQgbm90IChAdGhlbWUtcGFnZS1ib3JkZXItbW9kZSA9IH4nJykge1xuICAgICAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgfVxuXG4gICAgLyogMiAqL1xuICAgIC50bS1wYWdlIHdoZW4gbm90IChAdGhlbWUtcGFnZS1ib3JkZXItd2lkdGggPSAwKSB7XG4gICAgICAgIGJvcmRlckB7dGhlbWUtcGFnZS1ib3JkZXItbW9kZX06IEB0aGVtZS1wYWdlLWJvcmRlci13aWR0aCBzb2xpZCBAdGhlbWUtcGFnZS1ib3JkZXI7XG4gICAgfVxuXG4gICAgLnRtLXBhZ2Ugd2hlbiBub3QgKEB0aGVtZS1wYWdlLWJvcmRlci13aWR0aCA9IDApIGFuZCBub3QgKEBpbnRlcm5hbC10aGVtZS1wYWdlLWJvcmRlci1ncmFkaWVudCA9IH4nJykge1xuICAgICAgICBib3JkZXItaW1hZ2U6IEBpbnRlcm5hbC10aGVtZS1wYWdlLWJvcmRlci1ncmFkaWVudCAxO1xuICAgIH1cblxufVxuXG4vKiBEZXNrdG9wIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1sYXJnZSkge1xuXG4gICAgLnRtLXBhZ2Ugd2hlbiBub3QgKEB0aGVtZS1wYWdlLWJvcmRlci13aWR0aCA9IDApIHtcbiAgICAgICAgYm9yZGVyQHt0aGVtZS1wYWdlLWJvcmRlci1tb2RlfS13aWR0aDogQHRoZW1lLXBhZ2UtYm9yZGVyLXdpZHRoLWw7XG4gICAgfVxuXG59XG5cbi8qXG4gKiBQYWdlIENvbnRhaW5lclxuICovXG5cbkBtZWRpYSAobWluLXdpZHRoOiBAdGhlbWUtcGFnZS1jb250YWluZXItd2lkdGgpIHtcblxuICAgIC50bS1wYWdlLWNvbnRhaW5lciB7IGJhY2tncm91bmQtY29sb3I6IEB0aGVtZS1wYWdlLWNvbnRhaW5lci1iYWNrZ3JvdW5kOyB9XG5cbiAgICAudG0tcGFnZS1jb250YWluZXIgLnRtLXBhZ2Uge1xuICAgICAgICBtYXgtd2lkdGg6IEB0aGVtZS1wYWdlLWNvbnRhaW5lci13aWR0aDtcbiAgICAgICAgYmFja2dyb3VuZDogQGJhc2UtYm9keS1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIC8vIE5lZWRlZCBmb3IgbmF2YmFyIGFuZCB0b29sYmFyXG4gICAgLnRtLXBhZ2Utd2lkdGggeyBtYXgtd2lkdGg6IEB0aGVtZS1wYWdlLWNvbnRhaW5lci13aWR0aDsgfVxuXG4gICAgLnRtLXBhZ2UtbWFyZ2luLXRvcCB7IG1hcmdpbi10b3A6IEB0aGVtZS1wYWdlLWNvbnRhaW5lci1tYXJnaW4tdG9wOyB9XG4gICAgLnRtLXBhZ2UtbWFyZ2luLWJvdHRvbSB7IG1hcmdpbi1ib3R0b206IEB0aGVtZS1wYWdlLWNvbnRhaW5lci1tYXJnaW4tYm90dG9tOyB9XG5cbn1cblxuXG4vKiBDb29raWUgQmFubmVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIExldCBjb29raWUgbm90aWZpY2F0aW9uIGFwcGVhciBhYm92ZSBhbnkgcGFnZSBjb250ZW50LlxuICovXG5cbi50bS1jb29raWUtYmFubmVyIHsgei1pbmRleDogQG5vdGlmaWNhdGlvbi16LWluZGV4OyB9XG5cblxuLyogVG9vbGJhclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi50bS10b29sYmFyIHtcbiAgICBwYWRkaW5nLXRvcDogQHRoZW1lLXRvb2xiYXItcGFkZGluZy10b3A7XG4gICAgcGFkZGluZy1ib3R0b206IEB0aGVtZS10b29sYmFyLXBhZGRpbmctYm90dG9tO1xuICAgIGZvbnQtc2l6ZTogQHRoZW1lLXRvb2xiYXItZm9udC1zaXplO1xuICAgIC8vIE1ha2Ugc3VyZSBtZWRpYSBvdmVybGF5IGlzIGFsd2F5cyBiZWxvd1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnRtLXRvb2xiYXIgLnVrLXN1Ym5hdiA+ICogPiA6Zmlyc3QtY2hpbGQgeyBmb250LXNpemU6IEB0aGVtZS10b29sYmFyLWZvbnQtc2l6ZTsgfVxuXG4vLyBOb3QgdHJhbnNwYXJlbnRcbi50bS10b29sYmFyLWRlZmF1bHQgeyBiYWNrZ3JvdW5kOiBAdGhlbWUtdG9vbGJhci1iYWNrZ3JvdW5kOyB9XG5cbi50bS10b29sYmFyLWRlZmF1bHQ6ZXh0ZW5kKC51ay1saWdodCBhbGwpIHdoZW4gKEB0aGVtZS10b29sYmFyLWNvbG9yLW1vZGUgPSBsaWdodCkge31cbi50bS10b29sYmFyLWRlZmF1bHQ6ZXh0ZW5kKC51ay1kYXJrIGFsbCkgd2hlbiAoQHRoZW1lLXRvb2xiYXItY29sb3ItbW9kZSA9IGRhcmspIHt9XG5cblxuLyogSGVhZGVyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEhlYWRlclxuICovXG5cbi50bS1oZWFkZXIsXG4udG0taGVhZGVyLW1vYmlsZSB7XG4gICAgLy8gTWFrZSBzdXJlIG1lZGlhIG92ZXJsYXkgaXMgYWx3YXlzIGJlbG93XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vKlxuICogSGVhZGVyYmFyc1xuICovXG5cbi50bS1oZWFkZXJiYXItdG9wIHtcbiAgICBwYWRkaW5nLXRvcDogQHRoZW1lLWhlYWRlcmJhci10b3AtcGFkZGluZy10b3A7XG4gICAgcGFkZGluZy1ib3R0b206IEB0aGVtZS1oZWFkZXJiYXItdG9wLXBhZGRpbmctYm90dG9tO1xufVxuXG4udG0taGVhZGVyYmFyLWJvdHRvbSB7XG4gICAgcGFkZGluZy10b3A6IEB0aGVtZS1oZWFkZXJiYXItYm90dG9tLXBhZGRpbmctdG9wO1xuICAgIHBhZGRpbmctYm90dG9tOiBAdGhlbWUtaGVhZGVyYmFyLWJvdHRvbS1wYWRkaW5nLWJvdHRvbTtcbn1cblxuLnRtLWhlYWRlcmJhci1zdGFja2VkIHsgbWFyZ2luLXRvcDogQHRoZW1lLWhlYWRlcmJhci1zdGFja2VkLW1hcmdpbi10b3A7IH1cblxuLy8gVHlwb1xuLnRtLWhlYWRlcmJhciB3aGVuIG5vdCAoQHRoZW1lLWhlYWRlcmJhci1mb250LXNpemUgPSBpbmhlcml0KSB7XG4gICAgZm9udC1zaXplOiBAdGhlbWUtaGVhZGVyYmFyLWZvbnQtc2l6ZTtcbn1cblxuLnRtLWhlYWRlcmJhciAudWstc3VibmF2ID4gKiA+IDpmaXJzdC1jaGlsZCB3aGVuIG5vdCAoQHRoZW1lLWhlYWRlcmJhci1mb250LXNpemUgPSBpbmhlcml0KSB7IGZvbnQtc2l6ZTogQHRoZW1lLWhlYWRlcmJhci1mb250LXNpemU7IH1cblxuLy8gTm90IHRyYW5zcGFyZW50XG4udG0taGVhZGVyYmFyLXRvcC50bS1oZWFkZXJiYXItZGVmYXVsdCB7IGJhY2tncm91bmQ6IEB0aGVtZS1oZWFkZXJiYXItdG9wLWJhY2tncm91bmQ7IH1cbi50bS1oZWFkZXJiYXItdG9wLnRtLWhlYWRlcmJhci1kZWZhdWx0IHdoZW4gbm90IChAdGhlbWUtaGVhZGVyYmFyLXRvcC1ib3JkZXItd2lkdGggPSAwKSB7IGJvcmRlci1ib3R0b206IEB0aGVtZS1oZWFkZXJiYXItdG9wLWJvcmRlci13aWR0aCBzb2xpZCBAdGhlbWUtaGVhZGVyYmFyLXRvcC1ib3JkZXI7IH1cbi50bS1oZWFkZXJiYXItYm90dG9tLnRtLWhlYWRlcmJhci1kZWZhdWx0IHsgYmFja2dyb3VuZDogQHRoZW1lLWhlYWRlcmJhci1ib3R0b20tYmFja2dyb3VuZDsgfVxuXG4udG0taGVhZGVyYmFyLWRlZmF1bHQ6ZXh0ZW5kKC51ay1saWdodCBhbGwpIHdoZW4gKEB0aGVtZS1oZWFkZXJiYXItY29sb3ItbW9kZSA9IGxpZ2h0KSB7fVxuLnRtLWhlYWRlcmJhci1kZWZhdWx0OmV4dGVuZCgudWstZGFyayBhbGwpIHdoZW4gKEB0aGVtZS1oZWFkZXJiYXItY29sb3ItbW9kZSA9IGRhcmspIHt9XG5cbi8qXG4gKiBPdmVybGF5ICsgVHJhbnNwYXJlbnQgSGVhZGVyXG4gKiAxLiBQb3NpdGlvbiBhYm92ZSBmb2xsb3dpbmcgc2VjdGlvblxuICogMi4gQ3JlYXRlIHN0YWNraW5nIGNvbnRleHQgYmVjYXVzZSBmb2xsb3dpbmcgc2VjdGlvbiBtaWdodCBjcmVhdGUgb25lXG4gKiAzLiBUYWtlIHRoZSBmdWxsIHdpZHRoLiBEb2Vzbid0IHVzZSB3aWR0aCBiZWNhdXNlIGBodG1sYCBlbGVtZW50IG1heSBoYXZlIGEgYGJvcmRlcmAgb3IgYHBhZGRpbmdgXG4gKi9cblxuLnRtLWhlYWRlci1vdmVybGF5IHtcbiAgICAvKiAxICovXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8qIDIgKi9cbiAgICB6LWluZGV4OiBAc3RpY2t5LXotaW5kZXg7XG4gICAgLyogMyAqL1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG59XG5cbi8qXG4gKiBIZWFkZXIgTW9iaWxlXG4gKi9cblxuLnRtLWhlYWRlci1tb2JpbGUge31cblxuLnRtLWhlYWRlci1tb2JpbGUtc2xpZGUgeyB6LWluZGV4OiBAZHJvcGRvd24tei1pbmRleDsgfVxuXG4vKlxuICogU3VibmF2IGluIE5hdmJhclxuICovXG5cbi51ay1uYXZiYXItaXRlbSAudWstc3VibmF2ID4gKiA+IDpmaXJzdC1jaGlsZCB7IGZvbnQtc2l6ZTogQG5hdmJhci1uYXYtaXRlbS1mb250LXNpemU7IH1cblxuXG4vKiBTaWRlYmFyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1zbWFsbCkge1xuXG4gICAgLnRtLXNpZGViYXIgeyBtaW4td2lkdGg6IEB0aGVtZS1zaWRlYmFyLW1pbi13aWR0aDsgfVxuXG59XG5cblxuLyogRHJvcGRvd24gc3RhY2tcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogUmVzZXQgd2lkdGggaWYgY29sdW1uIHdpZHRoIGlzIHNldFxuICovXG5cbi51ay1kcm9wZG93bi1uYXZiYXIudWstZHJvcGRvd24tc3RhY2sge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5cbi8qIEVycm9yXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnRtLWVycm9yLWljb24geyBmb250LXNpemU6IDI1MHB4OyB9XG5cbi50bS1lcnJvci1oZWFkbGluZSB7IGZvbnQtc2l6ZTogMTAwcHg7IH1cblxuXG4vKiBPZmZsaW5lXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnRtLW9mZmxpbmUgeyB3aWR0aDogMzAwcHg7IH1cblxuXG4vKiBDaGlsZCBVdGlsaXRpZXNcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vL1xuLy8gTGlzdFxuLy9cblxuLnRtLWNoaWxkLWxpc3QgPiB1bDpleHRlbmQoLnVrLWxpc3QgYWxsKSB7fVxuLnRtLWNoaWxkLWxpc3QtZGl2aWRlciA+IHVsOmV4dGVuZCgudWstbGlzdC1kaXZpZGVyIGFsbCkge31cblxuLypcbiAqIE1hbnVhbGx5IHJlcGVhdCBsaXN0IGRpdmlkZXIgc2VsZWN0b3IgYmVjYXVzZVxuICogYDpleHRlbmRgIHdvbid0IGV4dGVuZCBhIHNlbGVjdG9yIHdoaWNoIGlzIGNyZWF0ZWQgYnkgYW5vdGhlciBgOmV4dGVuZGBcbiAqIEd1YXJkcyBhcmUgb25seSBhbGxvd2VkIG9uIHNpbmdsZSBzZWxlY3RvcnNcbiAqL1xuXG4udWstY2FyZC1wcmltYXJ5LnVrLWNhcmQtYm9keSAudWstbGlzdC1kaXZpZGVyID4gbGk6bnRoLWNoaWxkKG4rMikgd2hlbiAoQGNhcmQtcHJpbWFyeS1jb2xvci1tb2RlID0gQGludmVyc2UtZ2xvYmFsLWNvbG9yLW1vZGUpIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBAaW52ZXJzZS1saXN0LWRpdmlkZXItYm9yZGVyO1xuICAgIC5ob29rLWludmVyc2UtbGlzdC1kaXZpZGVyKCk7XG59XG5cbi51ay1jYXJkLXByaW1hcnkgLnVrLWNhcmQtYm9keSAudWstbGlzdC1kaXZpZGVyID4gbGk6bnRoLWNoaWxkKG4rMikgd2hlbiAoQGNhcmQtcHJpbWFyeS1jb2xvci1tb2RlID0gQGludmVyc2UtZ2xvYmFsLWNvbG9yLW1vZGUpIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBAaW52ZXJzZS1saXN0LWRpdmlkZXItYm9yZGVyO1xuICAgIC5ob29rLWludmVyc2UtbGlzdC1kaXZpZGVyKCk7XG59XG5cbi51ay1jYXJkLXNlY29uZGFyeS51ay1jYXJkLWJvZHkgLnVrLWxpc3QtZGl2aWRlciA+IGxpOm50aC1jaGlsZChuKzIpIHdoZW4gKEBjYXJkLXNlY29uZGFyeS1jb2xvci1tb2RlID0gQGludmVyc2UtZ2xvYmFsLWNvbG9yLW1vZGUpIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBAaW52ZXJzZS1saXN0LWRpdmlkZXItYm9yZGVyO1xuICAgIC5ob29rLWludmVyc2UtbGlzdC1kaXZpZGVyKCk7XG59XG5cbi51ay1jYXJkLXNlY29uZGFyeSAudWstY2FyZC1ib2R5IC51ay1saXN0LWRpdmlkZXIgPiBsaTpudGgtY2hpbGQobisyKSB3aGVuIChAY2FyZC1zZWNvbmRhcnktY29sb3ItbW9kZSA9IEBpbnZlcnNlLWdsb2JhbC1jb2xvci1tb2RlKSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogQGludmVyc2UtbGlzdC1kaXZpZGVyLWJvcmRlcjtcbiAgICAuaG9vay1pbnZlcnNlLWxpc3QtZGl2aWRlcigpO1xufVxuXG4udWstc2VjdGlvbi1wcmltYXJ5Om5vdCgudWstcHJlc2VydmUtY29sb3IpIC51ay1saXN0LWRpdmlkZXIgPiBsaTpudGgtY2hpbGQobisyKSB3aGVuIChAc2VjdGlvbi1wcmltYXJ5LWNvbG9yLW1vZGUgPSBAaW52ZXJzZS1nbG9iYWwtY29sb3ItbW9kZSkge1xuICAgIGJvcmRlci10b3AtY29sb3I6IEBpbnZlcnNlLWxpc3QtZGl2aWRlci1ib3JkZXI7XG4gICAgLmhvb2staW52ZXJzZS1saXN0LWRpdmlkZXIoKTtcbn1cblxuLnVrLXNlY3Rpb24tc2Vjb25kYXJ5Om5vdCgudWstcHJlc2VydmUtY29sb3IpIC51ay1saXN0LWRpdmlkZXIgPiBsaTpudGgtY2hpbGQobisyKSB3aGVuIChAc2VjdGlvbi1zZWNvbmRhcnktY29sb3ItbW9kZSA9IEBpbnZlcnNlLWdsb2JhbC1jb2xvci1tb2RlKSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogQGludmVyc2UtbGlzdC1kaXZpZGVyLWJvcmRlcjtcbiAgICAuaG9vay1pbnZlcnNlLWxpc3QtZGl2aWRlcigpO1xufVxuXG5cbi8qIFN5bnRheCBIaWdobGlnaHRlclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBSZXNldCBoaWdobGlnaHQuanNcbiAqL1xuXG4uaGxqcyB7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuXG4vKiBTZWN0aW9uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQHNlY3Rpb24tdGl0bGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1tdXRlZC1jb2xvcjtcbkBzZWN0aW9uLXRpdGxlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc21hbGwtZm9udC1zaXplO1xuQHNlY3Rpb24tdGl0bGUtbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1saW5lLWhlaWdodDtcbkBzZWN0aW9uLXRpdGxlLWZvbnQtZmFtaWx5OiAgICAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtZmFtaWx5O1xuQHNlY3Rpb24tdGl0bGUtZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktZm9udC13ZWlnaHQ7XG5Ac2VjdGlvbi10aXRsZS10ZXh0LXRyYW5zZm9ybTogICAgICAgICAgICAgICAgICBAZ2xvYmFsLXNlY29uZGFyeS10ZXh0LXRyYW5zZm9ybTtcbkBzZWN0aW9uLXRpdGxlLWxldHRlci1zcGFjaW5nOiAgICAgICAgICAgICAgICAgIEBnbG9iYWwtc2Vjb25kYXJ5LWxldHRlci1zcGFjaW5nO1xuQHNlY3Rpb24tdGl0bGUtZm9udC1zdHlsZTogICAgICAgICAgICAgICAgICAgICAgQGdsb2JhbC1zZWNvbmRhcnktZm9udC1zdHlsZTtcblxuLnRtLXNlY3Rpb24tdGl0bGUge1xuICAgIGNvbG9yOiBAc2VjdGlvbi10aXRsZS1jb2xvcjtcbiAgICBmb250LXNpemU6IEBzZWN0aW9uLXRpdGxlLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogQHNlY3Rpb24tdGl0bGUtbGluZS1oZWlnaHQ7XG4gICAgLy8gYHdyaXRpbmctbW9kZWAgaGFzIHRvIGJlIG9uIHRoZSBwYXJlbnQgZWxlbWVudCB0byBmaXggdGhlIHdpZHRoIGluIFNhZmFyaVxuICAgIC13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjtcbiAgICB3cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyO1xuICAgIC5ob29rLXNlY3Rpb24tdGl0bGUoKTtcbn1cblxuLnRtLXNlY3Rpb24tdGl0bGUgPiAqIHtcbiAgICAvLyBgd3JpdGluZy1tb2RlYCBoYXMgdG8gYmUgb24gdGhlIGVsZW1lbnQgd2hpY2ggaXMgcm90YXRlZCBpbiBJRSAxMVxuICAgIC1tcy13cml0aW5nLW1vZGU6IHRiLWxyO1xuICAgIC8vIEZpeCBoZWlnaHQgaW4gRWRnZSBhbmQgSUUgMTFcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8vIGB3cml0aW5nLW1vZGVgIGhhcyB0byBiZSBvbiB0aGUgZWxlbWVudCB3aGljaCBpcyByb3RhdGVkIGluIEVkZ2VcbkBzdXBwb3J0cyAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuXG4gICAgLnRtLXNlY3Rpb24tdGl0bGUgeyB3cml0aW5nLW1vZGU6IGluaGVyaXQ7IH1cbiAgICAudG0tc2VjdGlvbi10aXRsZSA+ICogeyB3cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyOyB9XG5cbn1cblxuLmhvb2stc2VjdGlvbi10aXRsZSgpIHdoZW4gbm90IChAc2VjdGlvbi10aXRsZS1mb250LWZhbWlseSA9IGluaGVyaXQpIHtcbiAgICBmb250LWZhbWlseTogQHNlY3Rpb24tdGl0bGUtZm9udC1mYW1pbHk7XG59XG5cbi5ob29rLXNlY3Rpb24tdGl0bGUoKSB3aGVuIG5vdCAoQHNlY3Rpb24tdGl0bGUtZm9udC13ZWlnaHQgPSBpbmhlcml0KSB7XG4gICAgZm9udC13ZWlnaHQ6IEBzZWN0aW9uLXRpdGxlLWZvbnQtd2VpZ2h0O1xufVxuXG4uaG9vay1zZWN0aW9uLXRpdGxlKCkgd2hlbiBub3QgKEBzZWN0aW9uLXRpdGxlLXRleHQtdHJhbnNmb3JtID0gaW5oZXJpdCkge1xuICAgIHRleHQtdHJhbnNmb3JtOiBAc2VjdGlvbi10aXRsZS10ZXh0LXRyYW5zZm9ybTtcbn1cblxuLmhvb2stc2VjdGlvbi10aXRsZSgpIHdoZW4gbm90IChAc2VjdGlvbi10aXRsZS1sZXR0ZXItc3BhY2luZyA9IGluaGVyaXQpIHtcbiAgICBsZXR0ZXItc3BhY2luZzogQHNlY3Rpb24tdGl0bGUtbGV0dGVyLXNwYWNpbmc7XG59XG5cbi5ob29rLXNlY3Rpb24tdGl0bGUoKSB3aGVuIG5vdCAoQHNlY3Rpb24tdGl0bGUtZm9udC1zdHlsZSA9IGluaGVyaXQpIHtcbiAgICBmb250LXN0eWxlOiBAc2VjdGlvbi10aXRsZS1mb250LXN0eWxlO1xufVxuXG5AaW50ZXJuYWwtc2VjdGlvbi10aXRsZS1tb2RlOiAgICAgICAgICAgICAgICAgICB+Jyc7IC8vIGRhc2hcbkBpbnRlcm5hbC1zZWN0aW9uLXRpdGxlLWRhc2gtYm9yZGVyLWhlaWdodDogICAgIDE1cHg7XG5AaW50ZXJuYWwtc2VjdGlvbi10aXRsZS1kYXNoLWJvcmRlci13aWR0aDogICAgICBAZ2xvYmFsLWJvcmRlci13aWR0aDtcbkBpbnRlcm5hbC1zZWN0aW9uLXRpdGxlLWRhc2gtYm9yZGVyLW1hcmdpbjogICAgIDE1cHg7XG5AaW50ZXJuYWwtc2VjdGlvbi10aXRsZS1kYXNoLWNvbG9yOiAgICAgICAgICAgICBjdXJyZW50Q29sb3I7XG5AaW50ZXJuYWwtc2VjdGlvbi10aXRsZS1kYXNoLWJhY2tncm91bmQtaW1hZ2U6ICB+Jyc7XG5cbi8qXG4gKiBEYXNoXG4gKi9cblxuQGludGVybmFsLXNlY3Rpb24tdGl0bGUtbW9kZTogICAgICAgICAgICAgICAgICAgZGFzaDtcblxuLmhvb2stc2VjdGlvbi10aXRsZSgpIHdoZW4gKEBpbnRlcm5hbC1zZWN0aW9uLXRpdGxlLW1vZGUgPSBkYXNoKSB7XG5cbiAgICA+IDo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC0oQGludGVybmFsLXNlY3Rpb24tdGl0bGUtZGFzaC1ib3JkZXItaGVpZ2h0ICsgQGludGVybmFsLXNlY3Rpb24tdGl0bGUtZGFzaC1ib3JkZXItbWFyZ2luKTtcbiAgICAgICAgbGVmdDogfidjYWxjKDUwJSAtIChAe2ludGVybmFsLXNlY3Rpb24tdGl0bGUtZGFzaC1ib3JkZXItd2lkdGh9IC8gMikpJztcbiAgICAgICAgaGVpZ2h0OiBAaW50ZXJuYWwtc2VjdGlvbi10aXRsZS1kYXNoLWJvcmRlci1oZWlnaHQ7XG4gICAgICAgIHdpZHRoOiBAaW50ZXJuYWwtc2VjdGlvbi10aXRsZS1kYXNoLWJvcmRlci13aWR0aDtcbiAgICB9XG5cbn1cblxuLy8gQ29sb3Jcbi5ob29rLXNlY3Rpb24tdGl0bGUoKSB3aGVuIChAaW50ZXJuYWwtc2VjdGlvbi10aXRsZS1tb2RlID0gZGFzaCkgYW5kIChAaW50ZXJuYWwtc2VjdGlvbi10aXRsZS1kYXNoLWJhY2tncm91bmQtaW1hZ2UgPSB+JycpIHtcblxuICAgID4gOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW50ZXJuYWwtc2VjdGlvbi10aXRsZS1kYXNoLWNvbG9yO1xuICAgIH1cblxufVxuXG4vLyBJbWFnZVxuLmhvb2stc2VjdGlvbi10aXRsZSgpIHdoZW4gKEBpbnRlcm5hbC1zZWN0aW9uLXRpdGxlLW1vZGUgPSBkYXNoKSBhbmQgbm90IChAaW50ZXJuYWwtc2VjdGlvbi10aXRsZS1kYXNoLWJhY2tncm91bmQtaW1hZ2UgPSB+JycpIGFuZCBub3QgKEBpbnRlcm5hbC1zZWN0aW9uLXRpdGxlLWRhc2gtY29sb3IgPSBjdXJyZW50Q29sb3IpIHtcblxuICAgID4gOjpiZWZvcmUge1xuICAgICAgICAuc3ZnLWZpbGwoQGludGVybmFsLXNlY3Rpb24tdGl0bGUtZGFzaC1iYWNrZ3JvdW5kLWltYWdlLCBcIiMwMDBcIiwgQGludGVybmFsLXNlY3Rpb24tdGl0bGUtZGFzaC1jb2xvcik7XG4gICAgfVxuXG59XG5cbi8vXG4vLyBJbnZlcnNlXG4vL1xuXG5AaW52ZXJzZS1zZWN0aW9uLXRpdGxlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgIEBpbnZlcnNlLWdsb2JhbC1jb2xvcjtcblxuLmhvb2staW52ZXJzZSgpIHtcblxuICAgIC50bS1zZWN0aW9uLXRpdGxlIHsgY29sb3I6IEBpbnZlcnNlLXNlY3Rpb24tdGl0bGUtY29sb3I7IH1cblxufVxuXG5AaW50ZXJuYWwtaW52ZXJzZS1zZWN0aW9uLXRpdGxlLWRhc2gtY29sb3I6ICAgICAgIEBpbnZlcnNlLWdsb2JhbC1jb2xvcjtcblxuLmhvb2staW52ZXJzZSgpIHdoZW4gKEBpbnRlcm5hbC1zZWN0aW9uLXRpdGxlLW1vZGUgPSBkYXNoKSBhbmQgbm90IChAaW50ZXJuYWwtc2VjdGlvbi10aXRsZS1kYXNoLWJhY2tncm91bmQtaW1hZ2UgPSB+JycpIGFuZCBub3QgKEBpbnRlcm5hbC1zZWN0aW9uLXRpdGxlLWRhc2gtY29sb3IgPSBjdXJyZW50Q29sb3IpIHtcblxuICAgIC50bS1zZWN0aW9uLXRpdGxlID4gOjpiZWZvcmUge1xuICAgICAgICAuc3ZnLWZpbGwoQGludGVybmFsLXNlY3Rpb24tdGl0bGUtZGFzaC1iYWNrZ3JvdW5kLWltYWdlLCBcIiMwMDBcIiwgQGludGVybmFsLWludmVyc2Utc2VjdGlvbi10aXRsZS1kYXNoLWNvbG9yKTtcbiAgICB9XG5cbn1cblxuXG4vKiBVdGlsaXR5XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnRtLXJvdGF0ZS0xODAge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuXG4vKlxuICogQ29sbGFwc2luZyBHcmlkXG4gKi9cblxuLnRtLWdyaWQtZXhwYW5kID4gKiB7IGZsZXgtZ3JvdzogMTsgfVxuXG4vKiBGaXggZXhwYW5kICovXG4udG0tZ3JpZC1leHBhbmQgPiAudWstd2lkdGgtZXhwYW5kIHsgZmxleC1ncm93OiA5OTk7IH1cblxuLyogUGhvbmUgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1zbWFsbCkgeyAudG0tZ3JpZC1leHBhbmQgPiAudWstd2lkdGgtZXhwYW5kXFxAcyB7IGZsZXgtZ3JvdzogOTk5OyB9fVxuXG4vKiBUYWJsZXQgbGFuZHNjYXBlIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC1tZWRpdW0pIHsgLnRtLWdyaWQtZXhwYW5kID4gLnVrLXdpZHRoLWV4cGFuZFxcQG0geyBmbGV4LWdyb3c6IDk5OTsgfX1cblxuLyogRGVza3RvcCBhbmQgYmlnZ2VyICovXG5AbWVkaWEgKG1pbi13aWR0aDogQGJyZWFrcG9pbnQtbGFyZ2UpIHsgLnRtLWdyaWQtZXhwYW5kID4gLnVrLXdpZHRoLWV4cGFuZFxcQGwgeyBmbGV4LWdyb3c6IDk5OTsgfX1cblxuLyogTGFyZ2Ugc2NyZWVuIGFuZCBiaWdnZXIgKi9cbkBtZWRpYSAobWluLXdpZHRoOiBAYnJlYWtwb2ludC14bGFyZ2UpIHsgLnRtLWdyaWQtZXhwYW5kID4gLnVrLXdpZHRoLWV4cGFuZFxcQHhsIHsgZmxleC1ncm93OiA5OTk7IH19XG5cblxuLyogTWFza1xuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBpbnRlcm5hbC10aGVtZS1tYXNrLWRlZmF1bHQtYm9yZGVyLWltYWdlOiAgICAgICAgICAgICAgIH4nJztcbkBpbnRlcm5hbC10aGVtZS1tYXNrLWRlZmF1bHQtYm9yZGVyLWltYWdlLXNsaWNlOiAgICAgICAgIDMwO1xuQGludGVybmFsLXRoZW1lLW1hc2stZGVmYXVsdC1ib3JkZXItaW1hZ2UtcmVwZWF0OiAgICAgICAgcm91bmQ7XG5cbkBpbnRlcm5hbC10aGVtZS1tYXNrLWRlZmF1bHQtaW1hZ2U6ICAgICAgICAgICAgICAgICAgICAgIFwidWlraXQtdGhlbWVzL21hc3Rlci9pbWFnZXMvbWFzay1kZWZhdWx0LWltYWdlLnN2Z1wiO1xuXG4udG0tbWFzay1kZWZhdWx0IHtcbiAgICAuaG9vay1tYXNrLWRlZmF1bHQoKTtcbn1cblxuLmhvb2stbWFzay1kZWZhdWx0KCkgd2hlbiBub3QgKEBpbnRlcm5hbC10aGVtZS1tYXNrLWRlZmF1bHQtYm9yZGVyLWltYWdlID0gficnKSB7XG4gICAgLXdlYmtpdC1tYXNrLWJveC1pbWFnZS1zb3VyY2U6IHVybChAaW50ZXJuYWwtdGhlbWUtbWFzay1kZWZhdWx0LWJvcmRlci1pbWFnZSk7XG4gICAgbWFzay1ib3JkZXI6IHVybChAaW50ZXJuYWwtdGhlbWUtbWFzay1kZWZhdWx0LWJvcmRlci1pbWFnZSk7XG4gICAgLXdlYmtpdC1tYXNrLWJveC1pbWFnZS1zbGljZTogQGludGVybmFsLXRoZW1lLW1hc2stZGVmYXVsdC1ib3JkZXItaW1hZ2Utc2xpY2UgZmlsbDtcbiAgICBtYXNrLWJvcmRlci1zbGljZTogQGludGVybmFsLXRoZW1lLW1hc2stZGVmYXVsdC1ib3JkZXItaW1hZ2Utc2xpY2U7XG4gICAgLXdlYmtpdC1tYXNrLWJveC1pbWFnZS1yZXBlYXQ6IEBpbnRlcm5hbC10aGVtZS1tYXNrLWRlZmF1bHQtYm9yZGVyLWltYWdlLXJlcGVhdDtcbiAgICBtYXNrLWJvcmRlci1yZXBlYXQ6IEBpbnRlcm5hbC10aGVtZS1tYXNrLWRlZmF1bHQtYm9yZGVyLWltYWdlLXJlcGVhdDtcbiAgICAvLyBGaXJlZm94IEZhbGxiYWNrXG4gICAgbWFzay1pbWFnZTogdXJsKEBpbnRlcm5hbC10aGVtZS1tYXNrLWRlZmF1bHQtYm9yZGVyLWltYWdlKTtcbiAgICBtYXNrLXNpemU6IDEwMCUgMTAwJTtcbn1cblxuLmhvb2stbWFzay1kZWZhdWx0KCkgd2hlbiBub3QgKEBpbnRlcm5hbC10aGVtZS1tYXNrLWRlZmF1bHQtaW1hZ2UgPSB+JycpIGFuZCAoQGludGVybmFsLXRoZW1lLW1hc2stZGVmYXVsdC1ib3JkZXItaW1hZ2UgPSB+JycpIHtcbiAgICAtd2Via2l0LW1hc2staW1hZ2U6IHVybChAaW50ZXJuYWwtdGhlbWUtbWFzay1kZWZhdWx0LWltYWdlKTtcbiAgICBtYXNrLWltYWdlOiB1cmwoQGludGVybmFsLXRoZW1lLW1hc2stZGVmYXVsdC1pbWFnZSk7XG4gICAgLXdlYmtpdC1tYXNrLXNpemU6IDEwMCUgMTAwJTtcbiAgICBtYXNrLXNpemU6IDEwMCUgMTAwJTtcbn1cblxuLmhvb2stbWFzay1kZWZhdWx0KCkge31cblxuXG4vKiBCb3ggRGVjb3JhdGlvblxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkB0aGVtZS1ib3gtZGVjb3JhdGlvbi10b3A6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDA7XG5AdGhlbWUtYm94LWRlY29yYXRpb24tYm90dG9tOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAwO1xuQHRoZW1lLWJveC1kZWNvcmF0aW9uLWxlZnQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMDtcbkB0aGVtZS1ib3gtZGVjb3JhdGlvbi1yaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDA7XG5AdGhlbWUtYm94LWRlY29yYXRpb24tei1pbmRleDogICAgICAgICAgICAgICAgICAgICAgICAgICAtMTtcblxuQHRoZW1lLWJveC1kZWNvcmF0aW9uLWRlZmF1bHQtdHJhbnNmb3JtLWhvcml6b250YWw6ICAgICAgLTIwcHg7XG5AdGhlbWUtYm94LWRlY29yYXRpb24tZGVmYXVsdC10cmFuc2Zvcm0tdmVydGljYWw6ICAgICAgICAyMHB4O1xuQHRoZW1lLWJveC1kZWNvcmF0aW9uLWRlZmF1bHQtYmFja2dyb3VuZDogICAgICAgICAgICAgICAgZGFya2VuKEBnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCwgMyUpO1xuQHRoZW1lLWJveC1kZWNvcmF0aW9uLWRlZmF1bHQtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgMDtcbkB0aGVtZS1ib3gtZGVjb3JhdGlvbi1kZWZhdWx0LWJvcmRlcjogICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuXG5AdGhlbWUtYm94LWRlY29yYXRpb24tcHJpbWFyeS10cmFuc2Zvcm0taG9yaXpvbnRhbDogICAgICAyMHB4O1xuQHRoZW1lLWJveC1kZWNvcmF0aW9uLXByaW1hcnktdHJhbnNmb3JtLXZlcnRpY2FsOiAgICAgICAgMjBweDtcbkB0aGVtZS1ib3gtZGVjb3JhdGlvbi1wcmltYXJ5LWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgIGRhcmtlbihAZ2xvYmFsLW11dGVkLWJhY2tncm91bmQsIDMlKTtcbkB0aGVtZS1ib3gtZGVjb3JhdGlvbi1wcmltYXJ5LWJvcmRlci13aWR0aDogICAgICAgICAgICAgIDA7XG5AdGhlbWUtYm94LWRlY29yYXRpb24tcHJpbWFyeS1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcblxuQHRoZW1lLWJveC1kZWNvcmF0aW9uLXNlY29uZGFyeS10cmFuc2Zvcm0taG9yaXpvbnRhbDogICAgMjBweDtcbkB0aGVtZS1ib3gtZGVjb3JhdGlvbi1zZWNvbmRhcnktdHJhbnNmb3JtLXZlcnRpY2FsOiAgICAgIC0yMHB4O1xuQHRoZW1lLWJveC1kZWNvcmF0aW9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kOiAgICAgICAgICAgICAgZGFya2VuKEBnbG9iYWwtbXV0ZWQtYmFja2dyb3VuZCwgMyUpO1xuQHRoZW1lLWJveC1kZWNvcmF0aW9uLXNlY29uZGFyeS1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgMDtcbkB0aGVtZS1ib3gtZGVjb3JhdGlvbi1zZWNvbmRhcnktYm9yZGVyOiAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuXG4udG0tYm94LWRlY29yYXRpb24tZGVmYXVsdCxcbi50bS1ib3gtZGVjb3JhdGlvbi1wcmltYXJ5LFxuLnRtLWJveC1kZWNvcmF0aW9uLXNlY29uZGFyeSB7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMDtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogQHRoZW1lLWJveC1kZWNvcmF0aW9uLXRvcDtcbiAgICAgICAgYm90dG9tOiBAdGhlbWUtYm94LWRlY29yYXRpb24tYm90dG9tO1xuICAgICAgICBsZWZ0OiBAdGhlbWUtYm94LWRlY29yYXRpb24tbGVmdDtcbiAgICAgICAgcmlnaHQ6IEB0aGVtZS1ib3gtZGVjb3JhdGlvbi1yaWdodDtcbiAgICAgICAgei1pbmRleDogQHRoZW1lLWJveC1kZWNvcmF0aW9uLXotaW5kZXg7XG4gICAgICAgIC8vIFByZXZlbnQgY2xpY2thYmxlIGFyZWEgaWYgYm94LWRlY29yYXRpb24gaXMgYWJvdmUgbGlua3NcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICAgIC5ob29rLWJveC1kZWNvcmF0aW9uKCk7XG5cbn1cblxuLnRtLWJveC1kZWNvcmF0aW9uLWRlZmF1bHQge1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHRoZW1lLWJveC1kZWNvcmF0aW9uLWRlZmF1bHQtdHJhbnNmb3JtLWhvcml6b250YWwsIEB0aGVtZS1ib3gtZGVjb3JhdGlvbi1kZWZhdWx0LXRyYW5zZm9ybS12ZXJ0aWNhbCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEB0aGVtZS1ib3gtZGVjb3JhdGlvbi1kZWZhdWx0LWJhY2tncm91bmQ7XG4gICAgfVxuICAgIC5ob29rLWJveC1kZWNvcmF0aW9uLWRlZmF1bHQoKTtcblxufVxuXG4uaG9vay1ib3gtZGVjb3JhdGlvbi1kZWZhdWx0KCkgd2hlbiBub3QgKEB0aGVtZS1ib3gtZGVjb3JhdGlvbi1kZWZhdWx0LWJvcmRlci13aWR0aCA9IDApIHtcbiAgICAmOjpiZWZvcmUgeyBib3JkZXI6IEB0aGVtZS1ib3gtZGVjb3JhdGlvbi1kZWZhdWx0LWJvcmRlci13aWR0aCBzb2xpZCBAdGhlbWUtYm94LWRlY29yYXRpb24tZGVmYXVsdC1ib3JkZXI7IH1cbn1cblxuLnRtLWJveC1kZWNvcmF0aW9uLXByaW1hcnkge1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHRoZW1lLWJveC1kZWNvcmF0aW9uLXByaW1hcnktdHJhbnNmb3JtLWhvcml6b250YWwsIEB0aGVtZS1ib3gtZGVjb3JhdGlvbi1wcmltYXJ5LXRyYW5zZm9ybS12ZXJ0aWNhbCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEB0aGVtZS1ib3gtZGVjb3JhdGlvbi1wcmltYXJ5LWJhY2tncm91bmQ7XG4gICAgfVxuICAgIC5ob29rLWJveC1kZWNvcmF0aW9uLXByaW1hcnkoKTtcblxufVxuXG4uaG9vay1ib3gtZGVjb3JhdGlvbi1wcmltYXJ5KCkgd2hlbiBub3QgKEB0aGVtZS1ib3gtZGVjb3JhdGlvbi1wcmltYXJ5LWJvcmRlci13aWR0aCA9IDApIHtcbiAgICAmOjpiZWZvcmUgeyBib3JkZXI6IEB0aGVtZS1ib3gtZGVjb3JhdGlvbi1wcmltYXJ5LWJvcmRlci13aWR0aCBzb2xpZCBAdGhlbWUtYm94LWRlY29yYXRpb24tcHJpbWFyeS1ib3JkZXI7IH1cbn1cblxuLnRtLWJveC1kZWNvcmF0aW9uLXNlY29uZGFyeSB7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShAdGhlbWUtYm94LWRlY29yYXRpb24tc2Vjb25kYXJ5LXRyYW5zZm9ybS1ob3Jpem9udGFsLCBAdGhlbWUtYm94LWRlY29yYXRpb24tc2Vjb25kYXJ5LXRyYW5zZm9ybS12ZXJ0aWNhbCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEB0aGVtZS1ib3gtZGVjb3JhdGlvbi1zZWNvbmRhcnktYmFja2dyb3VuZDtcbiAgICB9XG4gICAgLmhvb2stYm94LWRlY29yYXRpb24tc2Vjb25kYXJ5KCk7XG5cbn1cblxuLmhvb2stYm94LWRlY29yYXRpb24tc2Vjb25kYXJ5KCkgd2hlbiBub3QgKEB0aGVtZS1ib3gtZGVjb3JhdGlvbi1zZWNvbmRhcnktYm9yZGVyLXdpZHRoID0gMCkge1xuICAgICY6OmJlZm9yZSB7IGJvcmRlcjogQHRoZW1lLWJveC1kZWNvcmF0aW9uLXNlY29uZGFyeS1ib3JkZXItd2lkdGggc29saWQgQHRoZW1lLWJveC1kZWNvcmF0aW9uLXNlY29uZGFyeS1ib3JkZXI7IH1cbn1cblxuLmhvb2stYm94LWRlY29yYXRpb24oKSB7fVxuLmhvb2stYm94LWRlY29yYXRpb24tZGVmYXVsdCgpIHt9XG4uaG9vay1ib3gtZGVjb3JhdGlvbi1wcmltYXJ5KCkge31cbi5ob29rLWJveC1kZWNvcmF0aW9uLXNlY29uZGFyeSgpIHt9XG5cbi8vXG4vLyBJbnZlcnNlXG4vL1xuXG5AaW52ZXJzZS10aGVtZS1ib3gtZGVjb3JhdGlvbi1kZWZhdWx0LWJhY2tncm91bmQ6ICAgQGludmVyc2UtZ2xvYmFsLW11dGVkLWJhY2tncm91bmQ7XG5AaW52ZXJzZS10aGVtZS1ib3gtZGVjb3JhdGlvbi1wcmltYXJ5LWJhY2tncm91bmQ6ICAgQGludmVyc2UtZ2xvYmFsLW11dGVkLWJhY2tncm91bmQ7XG5AaW52ZXJzZS10aGVtZS1ib3gtZGVjb3JhdGlvbi1zZWNvbmRhcnktYmFja2dyb3VuZDogQGludmVyc2UtZ2xvYmFsLW11dGVkLWJhY2tncm91bmQ7XG5cbkBpbnZlcnNlLXRoZW1lLWJveC1kZWNvcmF0aW9uLWRlZmF1bHQtYm9yZGVyOiAgICAgICB0cmFuc3BhcmVudDtcbkBpbnZlcnNlLXRoZW1lLWJveC1kZWNvcmF0aW9uLXByaW1hcnktYm9yZGVyOiAgICAgICB0cmFuc3BhcmVudDtcbkBpbnZlcnNlLXRoZW1lLWJveC1kZWNvcmF0aW9uLXNlY29uZGFyeS1ib3JkZXI6ICAgICB0cmFuc3BhcmVudDtcblxuLnRtLWJveC1kZWNvcmF0aW9uLWludmVyc2UudG0tYm94LWRlY29yYXRpb24tZGVmYXVsdCB7IC5ob29rLWludmVyc2UtYm94LWRlY29yYXRpb24tZGVmYXVsdCgpOyB9XG4udG0tYm94LWRlY29yYXRpb24taW52ZXJzZS50bS1ib3gtZGVjb3JhdGlvbi1wcmltYXJ5IHsgLmhvb2staW52ZXJzZS1ib3gtZGVjb3JhdGlvbi1wcmltYXJ5KCk7IH1cbi50bS1ib3gtZGVjb3JhdGlvbi1pbnZlcnNlLnRtLWJveC1kZWNvcmF0aW9uLXNlY29uZGFyeSB7IC5ob29rLWludmVyc2UtYm94LWRlY29yYXRpb24tc2Vjb25kYXJ5KCk7IH1cblxuLmhvb2staW52ZXJzZS1ib3gtZGVjb3JhdGlvbi1kZWZhdWx0KCkgd2hlbiBub3QgKEB0aGVtZS1ib3gtZGVjb3JhdGlvbi1kZWZhdWx0LWJhY2tncm91bmQgPSB0cmFuc3BhcmVudCkge1xuICAgICY6OmJlZm9yZSB7IGJhY2tncm91bmQtY29sb3I6IEBpbnZlcnNlLXRoZW1lLWJveC1kZWNvcmF0aW9uLWRlZmF1bHQtYmFja2dyb3VuZDsgfVxufVxuXG4uaG9vay1pbnZlcnNlLWJveC1kZWNvcmF0aW9uLXByaW1hcnkoKSB3aGVuIG5vdCAoQHRoZW1lLWJveC1kZWNvcmF0aW9uLXByaW1hcnktYmFja2dyb3VuZCA9IHRyYW5zcGFyZW50KSB7XG4gICAgJjo6YmVmb3JlIHsgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtdGhlbWUtYm94LWRlY29yYXRpb24tcHJpbWFyeS1iYWNrZ3JvdW5kOyB9XG59XG5cbi5ob29rLWludmVyc2UtYm94LWRlY29yYXRpb24tc2Vjb25kYXJ5KCkgd2hlbiBub3QgKEB0aGVtZS1ib3gtZGVjb3JhdGlvbi1zZWNvbmRhcnktYmFja2dyb3VuZCA9IHRyYW5zcGFyZW50KSB7XG4gICAgJjo6YmVmb3JlIHsgYmFja2dyb3VuZC1jb2xvcjogQGludmVyc2UtdGhlbWUtYm94LWRlY29yYXRpb24tc2Vjb25kYXJ5LWJhY2tncm91bmQ7IH1cbn1cblxuLmhvb2staW52ZXJzZS1ib3gtZGVjb3JhdGlvbi1kZWZhdWx0KCkgd2hlbiBub3QgKEB0aGVtZS1ib3gtZGVjb3JhdGlvbi1kZWZhdWx0LWJvcmRlci13aWR0aCA9IDApIHtcbiAgICAmOjpiZWZvcmUgeyBib3JkZXItY29sb3I6IEBpbnZlcnNlLXRoZW1lLWJveC1kZWNvcmF0aW9uLWRlZmF1bHQtYm9yZGVyOyB9XG59XG5cbi5ob29rLWludmVyc2UtYm94LWRlY29yYXRpb24tcHJpbWFyeSgpIHdoZW4gbm90IChAdGhlbWUtYm94LWRlY29yYXRpb24tcHJpbWFyeS1ib3JkZXItd2lkdGggPSAwKSB7XG4gICAgJjo6YmVmb3JlIHsgYm9yZGVyLWNvbG9yOiBAaW52ZXJzZS10aGVtZS1ib3gtZGVjb3JhdGlvbi1wcmltYXJ5LWJvcmRlcjsgfVxufVxuXG4uaG9vay1pbnZlcnNlLWJveC1kZWNvcmF0aW9uLXNlY29uZGFyeSgpIHdoZW4gbm90IChAdGhlbWUtYm94LWRlY29yYXRpb24tc2Vjb25kYXJ5LWJvcmRlci13aWR0aCA9IDApIHtcbiAgICAmOjpiZWZvcmUgeyBib3JkZXItY29sb3I6IEBpbnZlcnNlLXRoZW1lLWJveC1kZWNvcmF0aW9uLXNlY29uZGFyeS1ib3JkZXI7IH1cbn1cblxuXG4vKiBGb250IEZhbWlseVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi51ay1mb250LWRlZmF1bHQge1xuICAgIGZvbnQtZmFtaWx5OiBAZ2xvYmFsLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiBAYmFzZS1ib2R5LWZvbnQtd2VpZ2h0O1xufVxuXG4udWstZm9udC1wcmltYXJ5IHtcbiAgICBmb250LWZhbWlseTogQGdsb2JhbC1wcmltYXJ5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiBAZ2xvYmFsLXByaW1hcnktZm9udC13ZWlnaHQ7XG59XG5cbi51ay1mb250LXNlY29uZGFyeSB7XG4gICAgZm9udC1mYW1pbHk6IEBnbG9iYWwtc2Vjb25kYXJ5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiBAZ2xvYmFsLXNlY29uZGFyeS1mb250LXdlaWdodDtcbn1cblxuLnVrLWZvbnQtdGVydGlhcnkge1xuICAgIGZvbnQtZmFtaWx5OiBAZ2xvYmFsLXRlcnRpYXJ5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiBAZ2xvYmFsLXRlcnRpYXJ5LWZvbnQtd2VpZ2h0O1xufVxuXG5cbi8qIFBvc2l0aW9uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLy8gTmF2YmFyIENlbnRlclxuLnRtLXBvc2l0aW9uLXotaW5kZXgtaGlnaCB7IHotaW5kZXg6IEBnbG9iYWwtei1pbmRleCAtIDEwOyB9XG5cblxuLyogRml4IERyb3AgQ2FwIHdpdGggUGFnZSBCcmVhayAoKyBwbGF0Zm9ybS5sZXNzKVxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIFJlc2V0ICovXG4udG0tcGFnZS1icmVhazo6Zmlyc3QtbGV0dGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xufVxuIiwiLy8gTmFtZTogICAgICAgICAgICBQcmludFxuLy8gRGVzY3JpcHRpb246ICAgICBPcHRpbWl6ZSBwYWdlIGZvciBwcmludGluZ1xuLy9cbi8vIEFkYXB0ZWQgZnJvbSBodHRwOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlXG4vL1xuLy8gTW9kaWZpY2F0aW9uczogICBSZW1vdmVkIGxpbmsgYGhyZWZgIGFuZCBgdGl0bGVgIHJlbGF0ZWQgcnVsZXNcbi8vXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogUHJpbnRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AbWVkaWEgcHJpbnQge1xuXG4gICAgKixcbiAgICAqOjpiZWZvcmUsXG4gICAgKjo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGEsXG4gICAgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuICAgIHByZSxcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzk5OTtcbiAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG5cbiAgICB0cixcbiAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cblxuICAgIGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbiAgICBAcGFnZSB7IG1hcmdpbjogMC41Y207IH1cblxuICAgIHAsXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgICBvcnBoYW5zOiAzO1xuICAgICAgICB3aWRvd3M6IDM7XG4gICAgfVxuXG4gICAgaDIsXG4gICAgaDMgeyBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuXG4gICAuaG9vay1wcmludCgpO1xuXG59XG5cbi8vIEhvb2tzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmhvb2stcHJpbnQoKSB7fVxuIiwiXG4udmVudHJ5LXJldmlld3Mge1xuICAvKlxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAudWstZm9ybS1ob3Jpem9udGFsIC51ay1mb3JtLWxhYmVsIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiA0MnB4O1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cbiAgbWFyZ2luLXRvcDogODBweDtcbiAgLnVrLWgyLFxuICBiIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICB9XG4gIC51ay10YWIge1xuICAgICYgPiBsaSB7XG4gICAgICAmID4gYSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlYmViZWI7XG4gICAgICAgIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI3cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJi51ay1hY3RpdmUge1xuICAgICAgICAmID4gYSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5lcnJvciB7XG4gICAgY29sb3I6ICNiZDAwMDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIH1cblxuICAubG9hZC1tb3JlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWJlYmViO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBtYXJnaW4tdG9wOiA3NXB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjtcbiAgICB9XG4gIH1cblxuICAudWstaWNvbi1jaGVjay1jaXJjbGUge1xuICAgIGZvbnQtc2l6ZTogNTJweDtcbiAgICBjb2xvcjogIzAwOTgzMjtcbiAgfVxuXG4gIC51ay1wYWRkaW5nLWxhcmdlIHtcbiAgICBwYWRkaW5nOiA0MHB4O1xuICB9XG4gICovXG59XG4iLCJcbi5jb250YWN0LWZvcm0ge1xuICB0ZXh0YXJlYSB7XG4gICAgbWluLWhlaWdodDogMTUwcHg7XG4gICAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgfVxuICAudWstaW5wdXQge1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMCwgMTE1LCA1OSwgMC4zKTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIH1cbiAgLnVrLWljb24tYnV0dG9uIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICB3aWR0aDogNjBweDtcbiAgICBoZWlnaHQ6IDU0cHg7XG4gICAgLy8gd2lkdGg6IGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDc2LCAyMDcsIDk0LCAxKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgc3ZnIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoNDUsIDEyNiwgNTYsIDEpO1xuICAgIH1cbiAgfVxuICAvKlxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAudWstZm9ybS1ob3Jpem9udGFsIC51ay1mb3JtLWxhYmVsIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiA0MnB4O1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cbiAgbWFyZ2luLXRvcDogODBweDtcbiAgLnVrLWgyLFxuICBiIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICB9XG4gIC51ay10YWIge1xuICAgICYgPiBsaSB7XG4gICAgICAmID4gYSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlYmViZWI7XG4gICAgICAgIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI3cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJi51ay1hY3RpdmUge1xuICAgICAgICAmID4gYSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5lcnJvciB7XG4gICAgY29sb3I6ICNiZDAwMDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIH1cblxuICAubG9hZC1tb3JlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWJlYmViO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBtYXJnaW4tdG9wOiA3NXB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjtcbiAgICB9XG4gIH1cblxuICAudWstaWNvbi1jaGVjay1jaXJjbGUge1xuICAgIGZvbnQtc2l6ZTogNTJweDtcbiAgICBjb2xvcjogIzAwOTgzMjtcbiAgfVxuXG4gIC51ay1wYWRkaW5nLWxhcmdlIHtcbiAgICBwYWRkaW5nOiA0MHB4O1xuICB9XG4gICovXG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/