@charset "UTF-8";
/*
#dadada // Light gray (nav)
#5d5d5d // Gray (header)
#3c3c3c // Dark gray (body)

#cecece // Gray (border)
#ececeb // Gray (footer)
#e2e2e2 // Gray (button)
#909090 // Gray (breadcrumb)
#767676 // Gray (carousel button)
#3e3e3e // Gray (help icon color)
#4f4f4f // Gray (menu)
*/
/**
* 1. Set default font family to sans-serif.
* 2. Prevent iOS text size adjust after orientation change, without disabling
*    user zoom.
*/
@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,600,800");
@import url(/scripts/libs/owlCarousel/owl.carousel.css);
@import url(/scripts/libs/owlCarousel/owl.transitions.css);
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/**
* Remove default margin.
*/
body {
  margin: 0; }

/* HTML5 display definitions
   ========================================================================== */
/**
* Correct `block` display not defined for any HTML5 element in IE 8/9.
* Correct `block` display not defined for `details` or `summary` in IE 10/11
* and Firefox.
* Correct `block` display not defined for `main` in IE 11.
*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block; }

/**
* 1. Correct `inline-block` display not defined in IE 8/9.
* 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
*/
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

/**
* Prevent modern browsers from displaying `audio` without controls.
* Remove excess height in iOS 5 devices.
*/
audio:not([controls]) {
  display: none;
  height: 0; }

/**
     * Address `[hidden]` styling not present in IE 8/9/10.
     */
[hidden] {
  display: none; }

/**
* Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
*/
template {
  display: none; }

/* Links
   ========================================================================== */
/**
     * Remove the gray background color from active links in IE 10.
     */
a {
  background-color: transparent; }

/**
* Improve readability when focused and also mouse hovered in all browsers.
*/
a:active,
a:hover {
  outline: 0; }

/* Text-level semantics
   ========================================================================== */
/**
* Address styling not present in IE 8/9/10/11, Safari, and Chrome.
*/
abbr[title] {
  border-bottom: 1px dotted; }

/**
* Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
*/
b,
strong {
  font-weight: bold; }

/**
* Address styling not present in Safari and Chrome.
*/
dfn {
  font-style: italic; }

/**
* Address variable `h1` font-size and margin within `section` and `article`
* contexts in Firefox 4+, Safari, and Chrome.
*/
h1 {
  font-size: 3em;
  margin: 11.20448pxem 0; }

/**
     * Address styling not present in IE 8/9.
     */
mark {
  background: #ff0;
  color: #000; }

/**
* Address inconsistent and variable font size in all browsers.
*/
small {
  font-size: 80%; }

/**
* Prevent `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 border when inside `a` element in IE 8/9/10.
     */
img {
  border: 0; }

/**
     * Correct overflow not hidden in IE 9/10/11.
     */
svg:not(:root) {
  overflow: hidden; }

/* Grouping content
   ========================================================================== */
/**
     * Address margin not present in IE 8/9 and Safari.
     */
figure {
  margin: 1em 40px; }

/**
* Address differences between Firefox and other browsers.
*/
hr {
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  height: 0; }

/**
* Contain overflow in all browsers.
*/
pre {
  overflow: auto; }

/**
* Address odd `em`-unit font size rendering in all browsers.
*/
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

/* Forms
   ========================================================================== */
/**
* Known limitation: by default, Chrome and Safari on OS X allow very limited
* styling of `select`, unless a `border` property is set.
*/
/**
* 1. Correct color not being inherited.
*    Known issue: affects color of disabled elements.
* 2. Correct font properties not being inherited.
* 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
*/
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */ }

/**
     * Address `overflow` set to `hidden` in IE 8/9/10/11.
     */
button {
  overflow: visible; }

/**
* Address inconsistent `text-transform` inheritance for `button` and `select`.
* All other form control elements do not inherit `text-transform` values.
* Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
* Correct `select` style inheritance in Firefox.
*/
button,
select {
  text-transform: none; }

/**
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
*    and `video` controls.
* 2. Correct inability to style clickable `input` types in iOS.
* 3. Improve usability and consistency of cursor style between image-type
*    `input` and others.
*/
button,
html input[type='button'],
input[type='reset'],
input[type='submit'] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

/**
* Re-set default cursor for disabled elements.
*/
button[disabled],
html input[disabled] {
  cursor: default; }

/**
* Remove inner padding and border in Firefox 4+.
*/
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

/**
* Address Firefox 4+ setting `line-height` on `input` using `!important` in
* the UA stylesheet.
*/
input {
  line-height: normal; }

/**
     * It's recommended that you don't attempt to style these elements.
     * Firefox's implementation doesn't respect box-sizing, padding, or width.
     *
     * 1. Address box sizing set to `content-box` in IE 8/9/10.
     * 2. Remove excess padding in IE 8/9/10.
     */
input[type='checkbox'],
input[type='radio'] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
* Fix the cursor style for Chrome's increment/decrement buttons. For certain
* `font-size` values of the `input`, it causes the cursor style of the
* decrement button to change from `default` to `text`.
*/
input[type='number']::-webkit-inner-spin-button,
input[type='number']::-webkit-outer-spin-button {
  height: auto; }

/**
* 1. Address `appearance` set to `searchfield` in Safari and Chrome.
* 2. Address `box-sizing` set to `border-box` in Safari and Chrome
*    (include `-moz` to future-proof).
*/
input[type='search'] {
  -webkit-appearance: textfield;
  /* 1 */
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box;
  /* 2 */
  box-sizing: content-box; }

/**
* Remove inner padding and search cancel button in Safari and Chrome on OS X.
* Safari (but not Chrome) clips the cancel button when the search input has
* padding (and `textfield` appearance).
*/
input[type='search']::-webkit-search-cancel-button,
input[type='search']::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
* Define consistent border, margin, and padding.
*/
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/**
* 1. Correct `color` not being inherited in IE 8/9/10/11.
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
*/
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
     * Remove default vertical scrollbar in IE 8/9/10/11.
     */
textarea {
  overflow: auto; }

/**
* Don't inherit the `font-weight` (applied by a rule above).
* NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
*/
optgroup {
  font-weight: bold; }

/* Tables
   ========================================================================== */
/**
* Remove most spacing between table cells.
*/
table {
  border-collapse: collapse;
  border-spacing: 0; }

td,
th {
  padding: 0; }

[class^="icon-"], [class*=" icon-"] {
  font-family: 'Magi-cut';
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.icon-swipe:before {
  content: "\41"; }

.icon-youtube:before {
  content: "\79"; }

.icon-question:before, .faq-block .head:before {
  content: "\71"; }

.icon-answer:before, .faq-block .body:before {
  content: "\61"; }

.icon-next:before, .btn.btn-arrowed:before, .btn.btn-cloud:before, ul.arrowed li:before {
  content: "\52"; }

.icon-prev:before {
  content: "\4c"; }

.icon-checkmark:before {
  content: "\63"; }

.icon-arrow-left:before {
  content: "\6c"; }

.icon-arrow-down:before {
  content: "\64"; }

.icon-arrow-up:before {
  content: "\75"; }

.icon-arrow-right:before {
  content: "\72"; }

.icon-twitter:before {
  content: "\74"; }

.icon-facebook:before {
  content: "\66"; }

.icon-search:before {
  content: "\73"; }

/*.icon-twitter:before {
    content: "\74";
}

.icon-facebook:before {
    content: "\66";
}*/
.icon-search:before {
  content: "\73"; }

.icon-close:before, .videopicker-block .picker .toggleplaylist:before {
  content: "\78"; }

.icon-bars:before, .videopicker-block .picker .toggleplaylist.collapsed:before {
  content: "\6e"; }

.icon-file-pdf-o:before {
  content: "\46"; }

.icon-close:before, .videopicker-block .picker .toggleplaylist:before {
  content: "\78"; }

.icon-bars:before, .videopicker-block .picker .toggleplaylist.collapsed:before {
  content: "\6e"; }

.icon-file-pdf-o:before {
  content: "\46"; }

.icon-display:before {
  content: "\e956"; }

.icon-video-camera:before {
  content: "\e900"; }

.icon-credit-card:before {
  content: "\e902"; }

@media (min-width: 1px) {
  .hidden-mobile {
    display: none; } }

@media (min-width: 480px) {
  .hidden-mobile {
    display: block; }
  .hidden-tween {
    display: none; } }

@media (min-width: 768px) {
  .hidden-tween {
    display: block; }
  .hidden-tablet {
    display: none; } }

@media (min-width: 960px) {
  .hidden-tablet {
    display: block; }
  .hidden-desktop {
    display: none; } }

@media (min-width: 1200px) {
  .hidden-desktop {
    display: block; }
  .hidden-desktop-l {
    display: none; } }

.front-end * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

.front-end *:before,
.front-end *:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

.front-end a:hover, .front-end a:active, .front-end a:focus {
  outline: 0; }

#canvas * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

html {
  -webkit-tap-highlight-color: transparent;
  color: #d74f4f; }

body {
  font-family: "museo-sans", Tahoma, Segoe, sans-serif;
  line-height: 1.428;
  font-size: 16px;
  color: #3c3c3c;
  font-weight: 300;
  background-color: #DADADA; }
  body .front-end {
    position: relative;
    overflow-x: hidden;
    background-color: white; }
  body.mce-content-body {
    font-size: 14px;
    font-family: "museo-sans", Tahoma, Segoe, sans-serif; }

img {
  vertical-align: middle;
  width: auto;
  max-width: 100%; }

blockquote .quote-wrapped {
  position: relative; }

blockquote p {
  font-size: 1.125em;
  font-weight: 300; }
  blockquote p:before, blockquote p:after {
    font-size: 60px;
    line-height: 1em;
    font-weight: 500;
    position: absolute; }
    @media (min-width: 768px) {
      blockquote p:before, blockquote p:after {
        font-size: 90px; } }
  blockquote p:before {
    content: "“";
    left: -25px;
    top: 0;
    margin-top: -10px; }
    @media (min-width: 768px) {
      blockquote p:before {
        left: -40px; } }
  blockquote p:after {
    content: "“";
    position: relative;
    bottom: -35px;
    line-height: 0; }
    @media (min-width: 768px) {
      blockquote p:after {
        right: 0px;
        bottom: -52px;
        margin-top: 0px; } }
  @media (min-width: 768px) {
    blockquote p {
      font-size: 1.625em; } }

blockquote cite {
  font-size: 1em;
  font-style: normal;
  font-weight: 500;
  display: block; }
  @media (min-width: 768px) {
    blockquote cite {
      font-size: 1.125em; } }

.page-content {
  max-width: 1200px;
  margin: auto;
  margin-top: 30px; }
  @media (min-width: 1240px) {
    .page-content {
      width: 1200px; } }

.background-wrapper {
  max-width: 1240px;
  background-color: white;
  margin: auto;
  overflow-y: hidden;
  position: relative; }
  .background-wrapper:after {
    content: "";
    display: table;
    clear: both; }

.marginned {
  margin-left: 10px;
  margin-right: 10px; }

@media (min-width: 768px) {
  .marginned {
    width: 98.33333%;
    float: left;
    margin-left: 0.83333%;
    margin-right: 0.83333%; } }

.marginned.fill {
  margin-left: 0;
  margin-right: 0; }

@media (min-width: 768px) {
  .marginned.fill {
    width: 100%; } }

@media (min-width: 1200px) {
  .marginned.fill {
    width: 98.33333%;
    float: left;
    margin-left: 0.83333%;
    margin-right: 0.83333%; } }

.block {
  margin-bottom: 25px; }
  @media (min-width: 768px) {
    .block {
      margin-bottom: 50px; } }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0; }

video {
  width: 100% !important; }

span.skype_pnh_container {
  display: none !important; }

span.skype_pnh_print_container {
  display: inline !important; }

.uppercase {
  text-transform: uppercase; }

.tablefy {
  display: table;
  width: 100%; }
  .tablefy > * {
    display: table-cell;
    padding: 0 10px;
    width: 1%;
    vertical-align: middle; }
    @media (min-width: 1px) {
      .tablefy > *.hidden-mobile {
        display: none; } }
    @media (min-width: 480px) {
      .tablefy > *.hidden-mobile {
        display: table-cell; }
      .tablefy > *.hidden-tween {
        display: none; } }
    @media (min-width: 768px) {
      .tablefy > *.hidden-tween {
        display: table-cell; }
      .tablefy > *.hidden-tablet {
        display: none; } }
    @media (min-width: 960px) {
      .tablefy > *.hidden-tablet {
        display: table-cell; }
      .tablefy > *.hidden-desktop {
        display: none; } }
    @media (min-width: 1200px) {
      .tablefy > *.hidden-desktop {
        display: table-cell; }
      .tablefy > *.hidden-desktop-l {
        display: none; } }

.boldest {
  font-weight: 700; }

.fill-width {
  width: 100%; }

.backgrounded {
  position: relative;
  z-index: 1; }
  .backgrounded:before, .backgrounded:after, .backgrounded .image {
    content: " ";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: -1; }
  .backgrounded:before, .backgrounded .image {
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center; }
  .backgrounded.background-light:after {
    background: url(../images/background-light.png);
    background: rgba(255, 255, 255, 0.8); }
  .backgrounded.background-dark:after {
    /*background:rgb(255,0,0);
        background: transparent\9;
        background:rgba(255,0,0,0.3);
        filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4cFF0000,endColorstr=#4cFF0000);
        zoom: 1;*/
    background: url(../images/background-dark.png);
    background: rgba(0, 0, 0, 0.45); }
  .backgrounded.background-dark {
    color: white; }

@media (min-width: 768px) {
  .clear {
    clear: both; }
    .clear:after {
      content: " ";
      display: block;
      clear: both; } }

.bordered {
  border: 1px solid #dadada; }

.link-iconned {
  color: #3c3c3c;
  font-weight: 500; }
  .link-iconned .icon {
    display: inline-block;
    font-size: 30px;
    vertical-align: middle;
    margin-top: -1px;
    width: 30px;
    color: #d74f4f; }
  .link-iconned:hover .icon {
    text-decoration: none; }

.spacing-bottom {
  margin-bottom: 12.5px; }
  @media (min-width: 768px) {
    .spacing-bottom {
      margin-bottom: 25px; } }

.breadcrumb {
  visibility: hidden; }
  @media (min-width: 480px) {
    .breadcrumb {
      visibility: visible; } }

#heading ol li, .wysiwyg ol li {
  list-style-type: decimal;
  margin-left: 50px; }
  #heading ol li:before, .wysiwyg ol li:before {
    display: none; }

/**/
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  color: #5d5d5d;
  font-family: "museo-sans", Tahoma, Segoe, sans-serif;
  font-weight: 100;
  margin: 0;
  line-height: normal;
  margin-bottom: 12.5px; }
  @media (min-width: 768px) {
    h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
      margin-bottom: 25px; } }

h1, .h1 {
  font-size: 2em; }
  @media (min-width: 768px) {
    h1, .h1 {
      font-size: 2.8125em; } }

h2, .h2 {
  font-size: 1.75em; }
  @media (min-width: 768px) {
    h2, .h2 {
      font-size: 2.1875em; } }

h3, .h3 {
  font-size: 1.5em; }
  @media (min-width: 768px) {
    h3, .h3 {
      font-size: 1.875em; } }

h4, .h4 {
  font-size: 1.125em; }
  @media (min-width: 768px) {
    h4, .h4 {
      font-size: 1.25em; } }

h5, .h5 {
  font-size: 1em; }
  @media (min-width: 768px) {
    h5, .h5 {
      font-size: 1em; } }

h6, .h6 {
  font-size: 0.875em; }
  @media (min-width: 768px) {
    h6, .h6 {
      font-size: 0.875em; } }

a {
  color: #d74f4f;
  text-decoration: none; }
  a:hover, a:focus {
    color: #b12828;
    text-decoration: underline; }
  a:focus {
    outline: thin dotted;
    outline: 5px auto -webkit-focus-ring-color;
    outline-offset: -2px; }

p {
  margin-top: 0;
  margin-bottom: 12.5px; }
  @media (min-width: 768px) {
    p {
      margin-bottom: 25px; } }
  p a {
    text-decoration: underline; }

.subbed {
  margin-bottom: 0; }

.sub {
  margin-bottom: 12.5px; }
  @media (min-width: 768px) {
    .sub {
      margin-bottom: 25px; } }

.highlight {
  color: #d74f4f; }
  .feature-block .highlight {
    color: #5d5d5d; }

.brief {
  font-size: 1.25em;
  font-weight: 300; }
  @media (min-width: 768px) {
    .brief {
      font-size: 1.375em; } }

b, .bold {
  font-weight: 500; }

.btn {
  padding: 0.5em 1.3em;
  display: inline-block;
  border: none;
  font-size: 17.6px;
  -webkit-transition-duration: 0.3s;
  transition-duration: 0.3s;
  margin-bottom: 12.5px; }
  .btn:hover {
    -webkit-box-shadow: 0 0 3px 0px rgba(0, 0, 0, 0.5) inset;
    -moz-box-shadow: 0 0 3px 0px rgba(0, 0, 0, 0.5) inset;
    box-shadow: 0 0 3px 0px rgba(0, 0, 0, 0.5) inset;
    text-decoration: none; }
  .no-csstransforms .btn:hover {
    background-color: #e58d8d; }
  @media (min-width: 768px) {
    .btn {
      margin-bottom: 25px; } }
  .btn:last-child {
    margin-bottom: 0; }

.btn.btn-primary {
  background-color: #d74f4f;
  color: white; }

.btn.btn-gray {
  background-color: #dadada;
  color: #3c3c3c; }

.btn.btn-blue {
  background: #417cb7;
  color: white; }

.btn.btn-gray-dark {
  background-color: #bdbdbd;
  color: #3c3c3c; }

.btn.btn.primary {
  background-color: #bdbdbd;
  color: #3c3c3c;
  width: inherit; }

.btn.btn-arrowed {
  padding-right: 40px; }

.btn.btn-cloud {
  background-color: #3dabff;
  color: white; }

.btn.btn-co {
  background-color: #3dabff;
  color: white; }

.btn.btn-v11 {
  background-color: #934a49;
  color: white; }

.btn .icon-next, .btn .btn.btn-arrowed, .btn .btn.btn-cloud, .btn ul.arrowed li, ul.arrowed .btn li {
  font-size: 42px;
  vertical-align: middle;
  margin-top: -8px;
  margin-bottom: -10px;
  margin-right: -6px;
  margin-left: 7px;
  display: inline-block; }

ul {
  margin: 0;
  margin-bottom: 25px;
  padding: 0;
  list-style: none; }
  ul li {
    position: relative;
    padding-left: 25px; }
    ul li:before {
      position: absolute;
      content: "•";
      color: #d74f4f;
      /* or whatever color you prefer */
      left: 0; }
  ul.no-bullets {
    list-style: none; }
    ul.no-bullets li {
      list-style-image: none;
      list-style-type: none;
      margin-left: 0;
      padding-left: 0; }
      ul.no-bullets li:before {
        content: none;
        display: none; }
  ul.inline li {
    display: inline-block; }
    ul.inline li:first-child {
      padding-left: 0; }
      ul.inline li:first-child:before {
        content: none;
        display: none; }
    ul.inline li:before {
      margin-left: 6px;
      margin-right: 10px; }
  ul.arrowed li {
    padding-left: 40px; }
    ul.arrowed li:before {
      font-family: 'Magi-cut';
      speak: none;
      font-style: normal;
      font-weight: normal;
      font-variant: normal;
      text-transform: none;
      line-height: 1;
      /* Better Font Rendering =========== */
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      font-size: 35px;
      margin-top: -8px; }

ol {
  margin: 0;
  margin-bottom: 25px;
  padding: 0;
  list-style: none; }
  ol li {
    counter-increment: step-counter; }
    ol li:before {
      content: counter(step-counter);
      color: #d74f4f;
      margin-right: 25px;
      width: 7px;
      display: inline-block; }

/*.styled-select select {
   background: transparent;
   width: 268px;
   padding: 5px;
   font-size: 16px;
   line-height: 1;
   border: 0;
   border-radius: 0;
   height: 34px;
   -webkit-appearance: none;
}

.styled-select {
   width: 240px;
   height: 34px;
   overflow: hidden;
   background: url(new_arrow.png) no-repeat right #ddd;
   border: 1px solid #ccc;
}*/
input, select, textarea {
  border: none;
  padding: 10px;
  display: inline-block;
  width: 100%;
  margin: 0.5em 0; }
  input::-moz-placeholder, input:-moz-placeholder, select::-moz-placeholder, select:-moz-placeholder, textarea::-moz-placeholder, textarea:-moz-placeholder {
    color: #9b9b9b;
    opacity: 1; }
  input:-ms-input-placeholder, select:-ms-input-placeholder, textarea:-ms-input-placeholder {
    color: #9b9b9b; }
  input::-webkit-input-placeholder, select::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
    color: #9b9b9b; }
  input.placeholdered, select.placeholdered, textarea.placeholdered {
    color: #9b9b9b; }
    input.placeholdered:focus, input.placeholdered:active, select.placeholdered:focus, select.placeholdered:active, textarea.placeholdered:focus, textarea.placeholdered:active {
      color: #3c3c3c; }

input[type="text"], select {
  height: 40px; }

textarea {
  height: 9em; }

input[type="checkbox"], input[type="file"] {
  display: inline-block;
  width: auto; }

select {
  padding-top: 8px;
  padding-bottom: 7px;
  background-image: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: white; }

.styled-select {
  position: relative; }
  .styled-select:before, .styled-select:after {
    content: " ";
    position: absolute;
    pointer-events: none; }
  .styled-select:before {
    top: 0;
    right: 0;
    bottom: 0;
    width: 30px;
    background-color: white; }
  .styled-select:after {
    top: 30px;
    margin-left: -25px;
    margin-top: -4px;
    border: solid transparent;
    border-color: rgba(136, 183, 213, 0);
    border-top-color: #c7c7c7;
    border-width: 8px;
    border-left-width: 4px;
    border-right-width: 4px; }
  .styled-select select:focus {
    outline: 0; }

.styled-upload {
  display: inline-block; }
  .styled-upload .btn {
    position: relative;
    overflow: hidden;
    margin-bottom: 0;
    vertical-align: middle;
    margin-left: 5px;
    margin-right: 2px;
    margin-bottom: 6px; }
  .styled-upload input[type="file"] {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    margin: 0;
    padding: 0;
    font-size: 20px;
    cursor: pointer;
    opacity: 0;
    filter: alpha(opacity=0); }

.input-inline {
  margin-bottom: 0; }
  .input-inline:after {
    content: "";
    display: table;
    clear: both; }
  @media (min-width: 480px) {
    .input-inline {
      -webkit-box-sizing: content-box;
      -moz-box-sizing: content-box;
      box-sizing: content-box;
      margin: -0.83333%;
      padding: 0.83333%;
      padding: 0;
      margin-bottom: 25px; } }
  .input-inline > div {
    width: 98.33333%;
    float: left;
    margin-left: 0.83333%;
    margin-right: 0.83333%;
    margin-bottom: 10px; }
    .input-inline > div input, .input-inline > div select {
      width: 100%;
      float: left; }
    @media (min-width: 480px) {
      .input-inline > div {
        width: 48.33333%;
        float: left;
        margin-left: 0.83333%;
        margin-right: 0.83333%;
        margin-bottom: 0; } }

.form-block .input-inline > div {
  width: 100%;
  float: left;
  margin-left: 0px;
  margin-right: 0px; }

.form-block .umbraco-forms-field {
  clear: none; }

.form-block #contour input.text, .form-block #contour input.title, .form-block #contour textarea, .form-block #contour select, .form-block .contour input.text, .form-block .contour input.title, .form-block .contour textarea, .form-block .contour select {
  border: 0px; }

.form-block #contour fieldset, .form-block .contour fieldset {
  margin: 0px;
  padding: 0px; }

.form-block .two-col-form input[type="file"] {
  width: 100%; }

.form-block .two-col-form .input-inline {
  margin-bottom: 0px; }

.form-block .two-col-form select {
  margin-left: 0px;
  margin-right: 0px;
  margin-bottom: 0px; }

.form-block .two-col-form .umbraco-forms-field {
  margin-bottom: 20px;
  margin-left: 0px;
  margin-right: 0px; }
  .form-block .two-col-form .umbraco-forms-field .field-validation-error {
    padding-left: 0px;
    padding-top: 10px;
    display: block; }
  @media (min-width: 480px) {
    .form-block .two-col-form .umbraco-forms-field {
      width: 48.33333%;
      float: left;
      margin-left: 0.83333%;
      margin-right: 0.83333%; }
      .form-block .two-col-form .umbraco-forms-field div > .text {
        max-width: 100% !important;
        width: 100%;
        margin-left: 0px;
        margin-right: 0px; }
      .form-block .two-col-form .umbraco-forms-field.titleanddescription {
        margin-bottom: 0;
        width: 98.33333%;
        float: left;
        margin-left: 0.83333%;
        margin-right: 0.83333%; } }

.form-block .two-col-form .textfield input {
  width: 100%;
  max-width: 100% !important; }

.form-block .two-col-form .textarea {
  width: 98.33333%;
  float: left;
  margin-left: 0.83333%;
  margin-right: 0.83333%;
  margin-bottom: 20px; }
  .form-block .two-col-form .textarea textarea {
    width: 100%;
    max-width: 100% !important; }

@media (min-width: 480px) {
  .form-block .two-col-form .input-inline {
    margin: 0px; }
  .form-block .two-col-form .checkbox {
    width: 98.33333%;
    float: left;
    margin-left: 0.83333%;
    margin-right: 0.83333%;
    margin-bottom: 20px; }
    .form-block .two-col-form .checkbox div {
      margin-bottom: 20px;
      min-height: 20px; }
  .form-block .two-col-form .text {
    margin-bottom: 0px; }
  .form-block .two-col-form .dropdownlist.platform {
    width: 98.33333%;
    float: left;
    margin-left: 0.83333%;
    margin-right: 0.83333%; }
    .form-block .two-col-form .dropdownlist.platform select {
      width: 50%;
      float: left; }
  .form-block .two-col-form .dropdownlist select {
    width: 100%; }
  .form-block .two-col-form .fileupload {
    margin-bottom: 20px;
    width: 98.33333%;
    float: left;
    margin-left: 0.83333%;
    margin-right: 0.83333%; }
    .form-block .two-col-form .fileupload input {
      padding-left: 0px;
      padding-right: 0px; }
  .form-block .two-col-form .textfield.serialno {
    width: 98.33333%;
    float: left;
    margin-left: 0.83333%;
    margin-right: 0.83333%; }
    .form-block .two-col-form .textfield.serialno input {
      width: 50%;
      float: left; } }

@media (min-width: 480px) {
  .support-request .umbraco-forms-field.title {
    width: 98.33333%;
    float: left;
    margin-left: 0.83333%;
    margin-right: 0.83333%; }
  .support-request .umbraco-forms-field.title select {
    width: 50%;
    float: left; } }

.trialversiondownload .btn.btn.primary {
  background: #d74f4f;
  color: white; }

.trialversiondownload .contourNavigation .col-md-12::after {
  margin-left: 90px;
  position: relative;
  top: 30px;
  content: "";
  display: inline-block;
  width: 80px;
  height: 100px;
  background-repeat: no-repeat;
  background-image: url("/images/trial-version-download-small.png"); }

.cutritetrialversiondownload .btn.btn.primary {
  background: #417cb7;
  color: white; }

html, body {
  width: 100%;
  height: 100%; }
  html.menu-down, body.menu-down {
    overflow: hidden; }
    @media (min-width: 768px) {
      html.menu-down, body.menu-down {
        overflow: auto; } }

@media (min-width: 768px) {
  header {
    padding: 0; } }

@media (min-width: 768px) {
  header .contain {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto; }
    header .contain:after {
      content: " ";
      display: block;
      clear: both; } }

header .header-main-info {
  display: table;
  width: 100%;
  padding: 20px 0; }
  header .header-main-info > * {
    display: table-cell;
    padding: 0 10px;
    width: 1%;
    vertical-align: middle; }
    @media (min-width: 1px) {
      header .header-main-info > *.hidden-mobile {
        display: none; } }
    @media (min-width: 480px) {
      header .header-main-info > *.hidden-mobile {
        display: table-cell; }
      header .header-main-info > *.hidden-tween {
        display: none; } }
    @media (min-width: 768px) {
      header .header-main-info > *.hidden-tween {
        display: table-cell; }
      header .header-main-info > *.hidden-tablet {
        display: none; } }
    @media (min-width: 960px) {
      header .header-main-info > *.hidden-tablet {
        display: table-cell; }
      header .header-main-info > *.hidden-desktop {
        display: none; } }
    @media (min-width: 1200px) {
      header .header-main-info > *.hidden-desktop {
        display: table-cell; }
      header .header-main-info > *.hidden-desktop-l {
        display: none; } }
  @media (min-width: 768px) {
    header .header-main-info {
      padding: 25px 0; } }
  header .header-main-info > * {
    vertical-align: middle; }
  header .header-main-info .logo img {
    width: 200px;
    max-width: none; }
    @media (min-width: 768px) {
      header .header-main-info .logo img {
        width: 230px; } }
    @media (min-width: 960px) {
      header .header-main-info .logo img {
        width: auto; } }
  header .header-main-info .points, header .header-main-info .contact {
    display: none;
    white-space: nowrap; }
    @media (min-width: 768px) {
      header .header-main-info .points, header .header-main-info .contact {
        display: table-cell; } }
  header .header-main-info .points {
    width: 100%; }
  header .header-main-info .contact {
    text-align: right; }

header .header-main-nav {
  z-index: 999; }
  @media (min-width: 768px) {
    header .header-main-nav .sf-menu {
      display: table;
      width: 100%; }
      header .header-main-nav .sf-menu > * {
        display: table-cell;
        padding: 0 0;
        width: 1%;
        vertical-align: middle; } }
    @media (min-width: 768px) and (min-width: 1px) {
      header .header-main-nav .sf-menu > *.hidden-mobile {
        display: none; } }
    @media (min-width: 768px) and (min-width: 480px) {
      header .header-main-nav .sf-menu > *.hidden-mobile {
        display: table-cell; }
      header .header-main-nav .sf-menu > *.hidden-tween {
        display: none; } }
    @media (min-width: 768px) and (min-width: 768px) {
      header .header-main-nav .sf-menu > *.hidden-tween {
        display: table-cell; }
      header .header-main-nav .sf-menu > *.hidden-tablet {
        display: none; } }
    @media (min-width: 768px) and (min-width: 960px) {
      header .header-main-nav .sf-menu > *.hidden-tablet {
        display: table-cell; }
      header .header-main-nav .sf-menu > *.hidden-desktop {
        display: none; } }
    @media (min-width: 768px) and (min-width: 1200px) {
      header .header-main-nav .sf-menu > *.hidden-desktop {
        display: table-cell; }
      header .header-main-nav .sf-menu > *.hidden-desktop-l {
        display: none; } }
  @media (min-width: 1200px) {
    header .header-main-nav {
      width: 98.33333%;
      float: left;
      margin-left: 0.83333%;
      margin-right: 0.83333%; } }

footer {
  width: 100%;
  float: left; }
  footer .contain {
    position: relative;
    padding: 40px 0;
    padding-top: 0;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    /*.footer-nav {
            padding: 0 10px;
        }*/ }
    @media (min-width: 768px) {
      footer .contain {
        padding-top: 40px; } }
    footer .contain:after {
      content: " ";
      display: block;
      clear: both; }
  footer .footer-main-site {
    display: none;
    width: 100%;
    float: left; }
    @media (min-width: 768px) {
      footer .footer-main-site {
        display: block; } }
    @media (min-width: 960px) {
      footer .footer-main-site {
        width: 75%;
        float: left; } }
    footer .footer-main-site .footer-links {
      width: 98.33333%;
      float: left;
      margin-left: 0.83333%;
      margin-right: 0.83333%; }
      @media (min-width: 768px) {
        footer .footer-main-site .footer-links {
          width: 31.11111%;
          float: left;
          margin-left: 1.11111%;
          margin-right: 1.11111%; } }
      footer .footer-main-site .footer-links .list .item {
        margin-bottom: 15px;
        line-height: 26px; }
        footer .footer-main-site .footer-links .list .item a {
          display: table;
          width: 100%; }
        footer .footer-main-site .footer-links .list .item span {
          display: table-cell;
          text-align: left; }
      footer .footer-main-site .footer-links .list .icon-holder {
        padding-right: 20px;
        width: 25px; }
        footer .footer-main-site .footer-links .list .icon-holder img {
          width: 25px;
          max-width: 25px; }
  footer .footer-main-footnote {
    width: 100%;
    float: left;
    text-align: center; }
    @media (min-width: 768px) {
      footer .footer-main-footnote {
        text-align: left; } }
    @media (min-width: 960px) {
      footer .footer-main-footnote {
        width: 23.33333%;
        float: left;
        margin-left: 0.83333%;
        margin-right: 0.83333%; } }
    footer .footer-main-footnote .footer-social {
      width: 98.33333%;
      float: left;
      margin-left: 0.83333%;
      margin-right: 0.83333%; }
      footer .footer-main-footnote .footer-social .head {
        display: none; }
        @media (min-width: 768px) {
          footer .footer-main-footnote .footer-social .head {
            display: block;
            margin-top: 0px;
            font-size: 1.25em;
            font-weight: 500;
            color: #3c3c3c;
            margin-bottom: 20px; } }
      @media (min-width: 768px) {
        footer .footer-main-footnote .footer-social {
          width: 65%;
          float: left;
          margin-left: 0.83333%;
          margin-right: 0.83333%; } }
      @media (min-width: 960px) {
        footer .footer-main-footnote .footer-social {
          width: 98.33333%;
          float: left;
          margin-left: 0.83333%;
          margin-right: 0.83333%; } }
      footer .footer-main-footnote .footer-social.below {
        display: none; }
        @media (min-width: 768px) {
          footer .footer-main-footnote .footer-social.below {
            display: block; } }
        @media (min-width: 960px) {
          footer .footer-main-footnote .footer-social.below {
            display: none; } }
      footer .footer-main-footnote .footer-social.above {
        display: block; }
        @media (min-width: 768px) {
          footer .footer-main-footnote .footer-social.above {
            display: none; } }
        @media (min-width: 960px) {
          footer .footer-main-footnote .footer-social.above {
            display: block; } }
      footer .footer-main-footnote .footer-social .list {
        margin-bottom: 10px;
        margin-top: 20px; }
        @media (min-width: 960px) {
          footer .footer-main-footnote .footer-social .list {
            margin-top: 0px;
            margin-bottom: 40px; } }
        footer .footer-main-footnote .footer-social .list .item {
          margin: 0 5px;
          margin-bottom: 5px;
          display: inline-block; }
          @media (min-width: 768px) {
            footer .footer-main-footnote .footer-social .list .item {
              margin-right: 25px; } }
          @media (min-width: 960px) {
            footer .footer-main-footnote .footer-social .list .item {
              display: block;
              margin: 0;
              margin-bottom: 10px; } }
        footer .footer-main-footnote .footer-social .list .icon {
          margin-right: 4px; }
          @media (min-width: 768px) {
            footer .footer-main-footnote .footer-social .list .icon {
              margin-right: 15px; } }
        footer .footer-main-footnote .footer-social .list .label, footer .footer-main-footnote .footer-social .list .icon {
          vertical-align: middle;
          display: inline-block; }
    footer .footer-main-footnote .footer-info {
      width: 98.33333%;
      float: left;
      margin-left: 0.83333%;
      margin-right: 0.83333%; }
      @media (min-width: 768px) {
        footer .footer-main-footnote .footer-info {
          width: 31.66667%;
          float: left;
          margin-left: 0.83333%;
          margin-right: 0.83333%; } }
      @media (min-width: 960px) {
        footer .footer-main-footnote .footer-info {
          width: 98.33333%;
          float: left;
          margin-left: 0.83333%;
          margin-right: 0.83333%; } }
      footer .footer-main-footnote .footer-info .footer-logo {
        margin-bottom: 8px; }
        footer .footer-main-footnote .footer-info .footer-logo img {
          width: 200px; }

header .header-main-nav {
  background-color: #dadada; }

header .points ul {
  font-weight: 700;
  margin-bottom: 0; }

header .h4 {
  font-size: 16px; }
  @media (min-width: 960px) {
    header .h4 {
      font-size: 18px; } }

footer {
  background-color: #ececeb; }
  footer a {
    color: #3c3c3c;
    font-weight: 500; }
    footer a:hover, footer a:active, footer a:focus {
      outline: 0;
      border: 0; }
  footer .footer-main-site .footer-links .head {
    font-size: 1.25em;
    font-weight: 500;
    color: #3c3c3c;
    margin-bottom: 20px; }
  footer .footer-main-site .footer-links .list {
    list-style: none; }
    footer .footer-main-site .footer-links .list li {
      list-style-image: none;
      list-style-type: none;
      margin-left: 0;
      padding-left: 0; }
      footer .footer-main-site .footer-links .list li:before {
        content: none;
        display: none; }
  footer .footer-main-footnote .footer-social .list {
    list-style: none; }
    footer .footer-main-footnote .footer-social .list li {
      list-style-image: none;
      list-style-type: none;
      margin-left: 0;
      padding-left: 0; }
      footer .footer-main-footnote .footer-social .list li:before {
        content: none;
        display: none; }
    footer .footer-main-footnote .footer-social .list .icon {
      font-size: 24px; }
      @media (min-width: 768px) {
        footer .footer-main-footnote .footer-social .list .icon {
          font-size: 28px; } }
      footer .footer-main-footnote .footer-social .list .icon.icon-twitter {
        color: #48a2d7; }
      footer .footer-main-footnote .footer-social .list .icon.icon-facebook {
        color: #385591; }
      footer .footer-main-footnote .footer-social .list .icon.icon-youtube {
        color: #f04847; }
    footer .footer-main-footnote .footer-social .list .label {
      font-size: 14px; }
      @media (min-width: 768px) {
        footer .footer-main-footnote .footer-social .list .label {
          font-size: 16px; } }
  footer .footer-main-footnote .footer-copyright, footer .footer-main-footnote .footer-terms {
    font-size: 0.75em;
    margin-bottom: 3px;
    font-weight: 500; }

@media (min-width: 480px) {
  .features-block {
    width: 100%;
    float: left;
    margin-left: 0;
    margin-right: 0; } }

@media (min-width: 480px) {
  .features-block .feature-block {
    width: 81.66667%;
    float: left;
    margin-left: 0.83333%;
    margin-right: 0.83333%;
    margin-left: 9.16667%; } }

@media (min-width: 769px) {
  .features-block .feature-block {
    width: 48.33333%;
    float: left;
    margin-left: 0.83333%;
    margin-right: 0.83333%; } }

.feature-block {
  margin-bottom: 40px;
  text-align: center; }
  @media (min-width: 480px) {
    .feature-block {
      text-align: left; } }
  @media (min-width: 480px) {
    .feature-block {
      display: table;
      width: 100%; }
      .feature-block > * {
        display: table-cell;
        padding: 0 10px;
        width: 1%;
        vertical-align: top; } }
    @media (min-width: 480px) and (min-width: 1px) {
      .feature-block > *.hidden-mobile {
        display: none; } }
    @media (min-width: 480px) and (min-width: 480px) {
      .feature-block > *.hidden-mobile {
        display: table-cell; }
      .feature-block > *.hidden-tween {
        display: none; } }
    @media (min-width: 480px) and (min-width: 768px) {
      .feature-block > *.hidden-tween {
        display: table-cell; }
      .feature-block > *.hidden-tablet {
        display: none; } }
    @media (min-width: 480px) and (min-width: 960px) {
      .feature-block > *.hidden-tablet {
        display: table-cell; }
      .feature-block > *.hidden-desktop {
        display: none; } }
    @media (min-width: 480px) and (min-width: 1200px) {
      .feature-block > *.hidden-desktop {
        display: table-cell; }
      .feature-block > *.hidden-desktop-l {
        display: none; } }
  .feature-block .image {
    min-width: 110px;
    margin-bottom: 10px; }
    @media (min-width: 480px) {
      .feature-block .image {
        text-align: right; } }
  .feature-block .body {
    width: 100%; }
    .feature-block .body p {
      font-weight: 500; }

.related-links-block {
  clear: both;
  text-align: center;
  width: 100%;
  float: left;
  margin-left: 0; }
  .related-links-block ul {
    margin-top: 10px;
    font-size: 1em; }
    .related-links-block ul li {
      display: inline-block;
      margin-left: 10px; }
    @media (min-width: 480px) {
      .related-links-block ul li {
        display: block;
        margin-left: 0px; } }
  @media (min-width: 480px) {
    .related-links-block {
      text-align: left;
      display: table;
      width: 100%; }
      .related-links-block > * {
        display: table-cell;
        padding: 0 5px;
        width: 1%;
        vertical-align: top; }
        .related-links-block > *:first-child {
          padding-left: 0; }
        .related-links-block > *:last-child {
          padding-right: 0; } }
    @media (min-width: 480px) and (min-width: 1px) {
      .related-links-block > *.hidden-mobile {
        display: none; } }
    @media (min-width: 480px) and (min-width: 480px) {
      .related-links-block > *.hidden-mobile {
        display: table-cell; }
      .related-links-block > *.hidden-tween {
        display: none; } }
    @media (min-width: 480px) and (min-width: 768px) {
      .related-links-block > *.hidden-tween {
        display: table-cell; }
      .related-links-block > *.hidden-tablet {
        display: none; } }
    @media (min-width: 480px) and (min-width: 960px) {
      .related-links-block > *.hidden-tablet {
        display: table-cell; }
      .related-links-block > *.hidden-desktop {
        display: none; } }
    @media (min-width: 480px) and (min-width: 1200px) {
      .related-links-block > *.hidden-desktop {
        display: table-cell; }
      .related-links-block > *.hidden-desktop-l {
        display: none; } }

.sub-navigation-block {
  margin-bottom: 20px;
  background-color: #ededed; }
  .sub-navigation-block .block-title {
    margin: 0;
    padding: 10px;
    background-color: #d74f4f;
    color: white; }
    .sub-navigation-block .block-title a {
      color: white; }
  .sub-navigation-block ul {
    margin: 0;
    padding: 0;
    margin-top: 0;
    list-style: none; }
    .sub-navigation-block ul li {
      list-style-image: none;
      list-style-type: none;
      margin-left: 0;
      padding-left: 0; }
      .sub-navigation-block ul li:before {
        content: none;
        display: none; }
    .sub-navigation-block ul li a {
      border-bottom: 1px solid #ececeb;
      padding: 5px 10px;
      display: block; }

.heading-block {
  text-align: center; }
  @media (min-width: 480px) {
    .heading-block {
      text-align: left; } }
  @media (min-width: 768px) {
    .heading-block {
      padding: 0;
      display: table;
      width: 100%;
      width: auto; }
      .heading-block > * {
        display: table-cell;
        padding: 0 10px;
        width: 1%;
        vertical-align: top; }
        .heading-block > *:first-child {
          padding-left: 0; }
        .heading-block > *:last-child {
          padding-right: 0; } }
    @media (min-width: 768px) and (min-width: 1px) {
      .heading-block > *.hidden-mobile {
        display: none; } }
    @media (min-width: 768px) and (min-width: 480px) {
      .heading-block > *.hidden-mobile {
        display: table-cell; }
      .heading-block > *.hidden-tween {
        display: none; } }
    @media (min-width: 768px) and (min-width: 768px) {
      .heading-block > *.hidden-tween {
        display: table-cell; }
      .heading-block > *.hidden-tablet {
        display: none; } }
    @media (min-width: 768px) and (min-width: 960px) {
      .heading-block > *.hidden-tablet {
        display: table-cell; }
      .heading-block > *.hidden-desktop {
        display: none; } }
    @media (min-width: 768px) and (min-width: 1200px) {
      .heading-block > *.hidden-desktop {
        display: table-cell; }
      .heading-block > *.hidden-desktop-l {
        display: none; } }
  .heading-block .toggle-hidden {
    display: block;
    margin-bottom: 20px; }
  .heading-block .hidden-content {
    display: none; }
  .heading-block .promo-text {
    text-align: center;
    display: inline-block;
    padding-top: 10px; }
    @media (min-width: 768px) {
      .heading-block .promo-text {
        font-size: 1.5em;
        text-align: right;
        line-height: 1em;
        float: right;
        width: 70%; } }
  .heading-block .body {
    width: 100%; }
    .heading-block .body p {
      font-size: 1.125em; }
      @media (min-width: 768px) {
        .heading-block .body p {
          font-size: 1.25em; } }
  @media (min-width: 768px) {
    .heading-block .image {
      margin-top: 70px;
      min-width: 300px; } }
  @media (min-width: 769px) {
    .heading-block .image {
      min-width: 490px; } }
  @media (min-width: 960px) {
    .heading-block .image {
      margin-top: 0; } }
  .heading-block .image img, .heading-block .image object {
    display: block;
    width: 100%; }
  .heading-block .image img {
    margin-top: 25px; }
  .heading-block .icons a:focus {
    outline: 0; }
  .heading-block .icons li {
    margin-right: 5px; }
  .heading-block .icons img {
    height: 22px; }
  .heading-block .actions, .heading-block .moreinfo, .heading-block .pdfs {
    margin-bottom: 15px; }
    .heading-block .actions:last-child, .heading-block .moreinfo:last-child, .heading-block .pdfs:last-child {
      margin-bottom: 0; }
  .heading-block .link-iconned {
    margin-right: 25px; }
  .heading-block .btn {
    margin-right: 10px; }
  .heading-block .moreinfo a, .heading-block .pdfs a {
    display: inline-block;
    width: 48%;
    margin-right: 0px;
    padding-right: 25px;
    position: relative;
    padding-left: 35px;
    text-align: left;
    vertical-align: top; }
    .heading-block .moreinfo a .icon, .heading-block .pdfs a .icon {
      position: absolute;
      left: 0px;
      top: 0px; }
    @media (min-width: 769px) {
      .heading-block .moreinfo a, .heading-block .pdfs a {
        display: block;
        width: 100%;
        padding-left: 0px;
        margin-bottom: 10px; }
        .heading-block .moreinfo a .icon, .heading-block .pdfs a .icon {
          position: relative; } }
    @media (min-width: 960px) {
      .heading-block .moreinfo a, .heading-block .pdfs a {
        width: auto;
        display: inline;
        margin-right: 25px;
        text-align: center;
        padding-left: 35px;
        padding-right: 0px; }
        .heading-block .moreinfo a:last-child, .heading-block .pdfs a:last-child {
          margin-right: 0px; }
        .heading-block .moreinfo a .icon, .heading-block .pdfs a .icon {
          position: absolute;
          left: 0px;
          top: -3px; } }
  .heading-block .vimeo-video {
    position: relative;
    padding-bottom: 56.25%;
    /* 16:9 */
    padding-top: 25px;
    height: 0;
    margin-top: 20px; }
    @media (min-width: 769px) {
      .heading-block .vimeo-video {
        margin-top: 0px; } }
    .heading-block .vimeo-video iframe {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%; }

.headingalt-block {
  text-align: center; }
  @media (min-width: 480px) {
    .headingalt-block {
      text-align: left; } }
  @media (min-width: 960px) {
    .headingalt-block {
      width: 100%;
      float: left;
      margin-left: 0;
      margin-right: 0; } }
  .headingalt-block.block {
    margin-bottom: 10px; }
  .headingalt-block .body {
    margin-bottom: 25px; }
    @media (min-width: 960px) {
      .headingalt-block .body {
        width: 48.33333%;
        float: left;
        margin-left: 0.83333%;
        margin-right: 0.83333%; } }
    .headingalt-block .body p {
      font-size: 1.125em; }
      @media (min-width: 768px) {
        .headingalt-block .body p {
          font-size: 1.25em; } }
  .headingalt-block .image {
    margin-top: -30px; }
    @media (min-width: 960px) {
      .headingalt-block .image {
        width: 48.33333%;
        float: left;
        margin-left: 0.83333%;
        margin-right: 0.83333%; } }
    .headingalt-block .image img {
      display: block;
      width: 100%; }

.headingsolo-block .sub {
  margin-bottom: 0; }

.banner-block .banner-block-inner {
  padding: 15px 25px;
  border: 4px solid #dadada;
  background-color: white;
  text-align: center; }
  @media (min-width: 480px) {
    .banner-block .banner-block-inner {
      text-align: left; } }
  @media (min-width: 768px) {
    .banner-block .banner-block-inner {
      display: table;
      width: 100%; }
      .banner-block .banner-block-inner > * {
        display: table-cell;
        padding: 0 10px;
        width: 1%;
        vertical-align: middle; }
        .banner-block .banner-block-inner > *:first-child {
          padding-left: 0; }
        .banner-block .banner-block-inner > *:last-child {
          padding-right: 0; } }
    @media (min-width: 768px) and (min-width: 1px) {
      .banner-block .banner-block-inner > *.hidden-mobile {
        display: none; } }
    @media (min-width: 768px) and (min-width: 480px) {
      .banner-block .banner-block-inner > *.hidden-mobile {
        display: table-cell; }
      .banner-block .banner-block-inner > *.hidden-tween {
        display: none; } }
    @media (min-width: 768px) and (min-width: 768px) {
      .banner-block .banner-block-inner > *.hidden-tween {
        display: table-cell; }
      .banner-block .banner-block-inner > *.hidden-tablet {
        display: none; } }
    @media (min-width: 768px) and (min-width: 960px) {
      .banner-block .banner-block-inner > *.hidden-tablet {
        display: table-cell; }
      .banner-block .banner-block-inner > *.hidden-desktop {
        display: none; } }
    @media (min-width: 768px) and (min-width: 1200px) {
      .banner-block .banner-block-inner > *.hidden-desktop {
        display: table-cell; }
      .banner-block .banner-block-inner > *.hidden-desktop-l {
        display: none; } }

.banner-block .banner-image img {
  min-width: 65px; }

.banner-block .banner-body {
  width: 100%; }
  .banner-block .banner-body p {
    margin-bottom: 5px; }

.banner-block .banner-button {
  white-space: nowrap; }

.bodyimage-block .body {
  text-align: center; }
  @media (min-width: 480px) {
    .bodyimage-block .body {
      text-align: left; } }

.bodyimage-block .image {
  text-align: center; }
  @media (min-width: 480px) {
    .bodyimage-block .image {
      text-align: left; } }

@media (min-width: 768px) {
  .bodyimage-block {
    width: 100%;
    float: left;
    margin-left: 0;
    margin-right: 0; } }

@media (min-width: 768px) {
  .bodyimage-block .body {
    width: 56.66667%;
    float: left;
    margin-left: 0.83333%;
    margin-right: 0.83333%; } }

@media (min-width: 768px) {
  .bodyimage-block .image {
    width: 40%;
    float: left;
    margin-left: 0.83333%;
    margin-right: 0.83333%; } }

.bodyimagesplit-block {
  text-align: center;
  margin-bottom: 0; }
  @media (min-width: 480px) {
    .bodyimagesplit-block {
      text-align: left; } }
  .bodyimagesplit-block .body.above {
    margin-left: 10px;
    margin-right: 10px; }
  @media (min-width: 768px) {
    .bodyimagesplit-block .bodyimagesplit-block-inner {
      width: 100%;
      float: left;
      margin-left: 0;
      margin-right: 0;
      display: table;
      width: 100%; } }
    @media (min-width: 768px) and (min-width: 1px) {
      .bodyimagesplit-block .bodyimagesplit-block-inner > *.hidden-mobile {
        display: none; } }
    @media (min-width: 768px) and (min-width: 480px) {
      .bodyimagesplit-block .bodyimagesplit-block-inner > *.hidden-mobile {
        display: table-cell; }
      .bodyimagesplit-block .bodyimagesplit-block-inner > *.hidden-tween {
        display: none; } }
    @media (min-width: 768px) and (min-width: 768px) {
      .bodyimagesplit-block .bodyimagesplit-block-inner > *.hidden-tween {
        display: table-cell; }
      .bodyimagesplit-block .bodyimagesplit-block-inner > *.hidden-tablet {
        display: none; } }
    @media (min-width: 768px) and (min-width: 960px) {
      .bodyimagesplit-block .bodyimagesplit-block-inner > *.hidden-tablet {
        display: table-cell; }
      .bodyimagesplit-block .bodyimagesplit-block-inner > *.hidden-desktop {
        display: none; } }
    @media (min-width: 768px) and (min-width: 1200px) {
      .bodyimagesplit-block .bodyimagesplit-block-inner > *.hidden-desktop {
        display: table-cell; }
      .bodyimagesplit-block .bodyimagesplit-block-inner > *.hidden-desktop-l {
        display: none; } }
  .bodyimagesplit-block .bodyimagesplit-block-inner .body {
    padding-bottom: 25px;
    padding-left: 10px; }
    @media (min-width: 768px) {
      .bodyimagesplit-block .bodyimagesplit-block-inner .body {
        width: 56.66667%;
        float: left; } }
  @media (min-width: 768px) {
    .bodyimagesplit-block .bodyimagesplit-block-inner .image {
      width: 40%;
      float: right; } }

.imagequote-block {
  margin-bottom: 0; }
  @media (min-width: 768px) {
    .imagequote-block {
      margin-bottom: 50px !important; } }
  .imagequote-block .image {
    text-align: center; }
    @media (min-width: 768px) {
      .imagequote-block .image {
        width: 40%;
        float: left;
        margin-left: 0.83333%;
        margin-right: 0.83333%;
        margin-top: 40px; } }
  .imagequote-block .quote {
    text-align: center; }
    @media (min-width: 480px) {
      .imagequote-block .quote {
        text-align: left; } }
    @media (min-width: 768px) {
      .imagequote-block .quote {
        width: 48.33333%;
        float: left;
        margin-left: 0.83333%;
        margin-right: 0.83333%;
        margin-left: 9.16667%; } }

table {
  background-color: transparent; }

th {
  text-align: left; }

.table {
  width: 100%;
  max-width: 100%;
  margin-bottom: 22px; }
  .table > thead > tr > th,
  .table > thead > tr > td,
  .table > tbody > tr > th,
  .table > tbody > tr > td,
  .table > tfoot > tr > th,
  .table > tfoot > tr > td {
    padding: 8px;
    line-height: 1.42857;
    vertical-align: top;
    border-top: 1px solid #636363; }
  .table > thead > tr > th {
    vertical-align: bottom;
    border-bottom: 2px solid #636363; }
  .table > caption + thead > tr:first-child > th,
  .table > caption + thead > tr:first-child > td,
  .table > colgroup + thead > tr:first-child > th,
  .table > colgroup + thead > tr:first-child > td,
  .table > thead:first-child > tr:first-child > th,
  .table > thead:first-child > tr:first-child > td {
    border-top: 0; }
  .table > tbody + tbody {
    border-top: 2px solid #636363; }
  .table .table {
    background-color: #ededed; }

.table-condensed > thead > tr > th,
.table-condensed > thead > tr > td,
.table-condensed > tbody > tr > th,
.table-condensed > tbody > tr > td,
.table-condensed > tfoot > tr > th,
.table-condensed > tfoot > tr > td {
  padding: 5px; }

.table-bordered {
  border: 1px solid #636363; }
  .table-bordered > thead > tr > th,
  .table-bordered > thead > tr > td,
  .table-bordered > tbody > tr > th,
  .table-bordered > tbody > tr > td,
  .table-bordered > tfoot > tr > th,
  .table-bordered > tfoot > tr > td {
    border: 1px solid #636363; }
  .table-bordered > thead > tr > th,
  .table-bordered > thead > tr > td {
    border-bottom-width: 2px; }

.table-striped > tbody > tr:nth-child(odd) > td,
.table-striped > tbody > tr:nth-child(odd) > th {
  background-color: #f9f9f9; }

.table-hover > tbody > tr:hover > td,
.table-hover > tbody > tr:hover > th {
  background-color: #f5f5f5; }

table col[class*="col-"] {
  position: static;
  float: none;
  display: table-column; }

table td[class*="col-"],
table th[class*="col-"] {
  position: static;
  float: none;
  display: table-cell; }

.table > thead > tr > td.active,
.table > thead > tr > th.active,
.table > thead > tr.active > td,
.table > thead > tr.active > th,
.table > tbody > tr > td.active,
.table > tbody > tr > th.active,
.table > tbody > tr.active > td,
.table > tbody > tr.active > th,
.table > tfoot > tr > td.active,
.table > tfoot > tr > th.active,
.table > tfoot > tr.active > td,
.table > tfoot > tr.active > th {
  background-color: #f5f5f5; }

.table-hover > tbody > tr > td.active:hover,
.table-hover > tbody > tr > th.active:hover,
.table-hover > tbody > tr.active:hover > td,
.table-hover > tbody > tr:hover > .active,
.table-hover > tbody > tr.active:hover > th {
  background-color: #e8e8e8; }

.table > thead > tr > td.success,
.table > thead > tr > th.success,
.table > thead > tr.success > td,
.table > thead > tr.success > th,
.table > tbody > tr > td.success,
.table > tbody > tr > th.success,
.table > tbody > tr.success > td,
.table > tbody > tr.success > th,
.table > tfoot > tr > td.success,
.table > tfoot > tr > th.success,
.table > tfoot > tr.success > td,
.table > tfoot > tr.success > th {
  background-color: #dff0d8; }

.table-hover > tbody > tr > td.success:hover,
.table-hover > tbody > tr > th.success:hover,
.table-hover > tbody > tr.success:hover > td,
.table-hover > tbody > tr:hover > .success,
.table-hover > tbody > tr.success:hover > th {
  background-color: #d0e9c6; }

.table > thead > tr > td.info,
.table > thead > tr > th.info,
.table > thead > tr.info > td,
.table > thead > tr.info > th,
.table > tbody > tr > td.info,
.table > tbody > tr > th.info,
.table > tbody > tr.info > td,
.table > tbody > tr.info > th,
.table > tfoot > tr > td.info,
.table > tfoot > tr > th.info,
.table > tfoot > tr.info > td,
.table > tfoot > tr.info > th {
  background-color: #d9edf7; }

.table-hover > tbody > tr > td.info:hover,
.table-hover > tbody > tr > th.info:hover,
.table-hover > tbody > tr.info:hover > td,
.table-hover > tbody > tr:hover > .info,
.table-hover > tbody > tr.info:hover > th {
  background-color: #c4e3f3; }

.table > thead > tr > td.warning,
.table > thead > tr > th.warning,
.table > thead > tr.warning > td,
.table > thead > tr.warning > th,
.table > tbody > tr > td.warning,
.table > tbody > tr > th.warning,
.table > tbody > tr.warning > td,
.table > tbody > tr.warning > th,
.table > tfoot > tr > td.warning,
.table > tfoot > tr > th.warning,
.table > tfoot > tr.warning > td,
.table > tfoot > tr.warning > th {
  background-color: #fcf8e3; }

.table-hover > tbody > tr > td.warning:hover,
.table-hover > tbody > tr > th.warning:hover,
.table-hover > tbody > tr.warning:hover > td,
.table-hover > tbody > tr:hover > .warning,
.table-hover > tbody > tr.warning:hover > th {
  background-color: #faf2cc; }

.table > thead > tr > td.danger,
.table > thead > tr > th.danger,
.table > thead > tr.danger > td,
.table > thead > tr.danger > th,
.table > tbody > tr > td.danger,
.table > tbody > tr > th.danger,
.table > tbody > tr.danger > td,
.table > tbody > tr.danger > th,
.table > tfoot > tr > td.danger,
.table > tfoot > tr > th.danger,
.table > tfoot > tr.danger > td,
.table > tfoot > tr.danger > th {
  background-color: #f2dede; }

.table-hover > tbody > tr > td.danger:hover,
.table-hover > tbody > tr > th.danger:hover,
.table-hover > tbody > tr.danger:hover > td,
.table-hover > tbody > tr:hover > .danger,
.table-hover > tbody > tr.danger:hover > th {
  background-color: #ebcccc; }

@media screen and (max-width: 767px) {
  .table-responsive {
    width: 100%;
    margin-bottom: 16.5px;
    overflow-y: hidden;
    overflow-x: auto;
    -ms-overflow-style: -ms-autohiding-scrollbar;
    border: 1px solid #636363;
    -webkit-overflow-scrolling: touch; }
    .table-responsive > .table {
      margin-bottom: 0; }
      .table-responsive > .table > thead > tr > th,
      .table-responsive > .table > thead > tr > td,
      .table-responsive > .table > tbody > tr > th,
      .table-responsive > .table > tbody > tr > td,
      .table-responsive > .table > tfoot > tr > th,
      .table-responsive > .table > tfoot > tr > td {
        white-space: nowrap; }
    .table-responsive > .table-bordered {
      border: 0; }
      .table-responsive > .table-bordered > thead > tr > th:first-child,
      .table-responsive > .table-bordered > thead > tr > td:first-child,
      .table-responsive > .table-bordered > tbody > tr > th:first-child,
      .table-responsive > .table-bordered > tbody > tr > td:first-child,
      .table-responsive > .table-bordered > tfoot > tr > th:first-child,
      .table-responsive > .table-bordered > tfoot > tr > td:first-child {
        border-left: 0; }
      .table-responsive > .table-bordered > thead > tr > th:last-child,
      .table-responsive > .table-bordered > thead > tr > td:last-child,
      .table-responsive > .table-bordered > tbody > tr > th:last-child,
      .table-responsive > .table-bordered > tbody > tr > td:last-child,
      .table-responsive > .table-bordered > tfoot > tr > th:last-child,
      .table-responsive > .table-bordered > tfoot > tr > td:last-child {
        border-right: 0; }
      .table-responsive > .table-bordered > tbody > tr:last-child > th,
      .table-responsive > .table-bordered > tbody > tr:last-child > td,
      .table-responsive > .table-bordered > tfoot > tr:last-child > th,
      .table-responsive > .table-bordered > tfoot > tr:last-child > td {
        border-bottom: 0; } }

.block.table-block:before {
  background-image: url("/images/background-features.jpg");
  bottom: 16.5px; }
  @media (min-width: 768px) {
    .block.table-block:before {
      bottom: 50%; } }

.block.table-block .table-responsive {
  width: 100%;
  margin-bottom: 16.5px;
  overflow-y: hidden;
  overflow-x: auto;
  -ms-overflow-style: -ms-autohiding-scrollbar;
  border: none;
  -webkit-overflow-scrolling: touch;
  position: relative; }
  @media (min-width: 768px) {
    .block.table-block .table-responsive {
      overflow-y: auto;
      overflow-x: auto;
      overflow: auto;
      border: none;
      -ms-overflow-style: -ms-autohiding-scrollbar;
      -webkit-overflow-scrolling: touch; } }
  .block.table-block .table-responsive.notify .swipenotify {
    display: block; }
  .block.table-block .table-responsive.notify .table {
    visibility: hidden; }
  .block.table-block .table-responsive .swipenotify {
    display: none;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    pointer-events: none;
    font-size: 1.5625em;
    text-align: center;
    padding-top: 25px;
    font-weight: 500; }
    .block.table-block .table-responsive .swipenotify .icon {
      display: inline-block;
      margin-top: 10px;
      font-size: 35px; }

.block.table-block h1 {
  margin-top: 20px;
  margin-right: 25px; }

.block.table-block h1, .block.table-block h3 {
  margin-left: 25px;
  text-align: center; }
  @media (min-width: 480px) {
    .block.table-block h1, .block.table-block h3 {
      text-align: left; } }

.block.table-block table {
  border-top: none; }
  @media (min-width: 768px) {
    .block.table-block table {
      margin-top: 65px; } }

.block.table-block th, .block.table-block td {
  text-align: center;
  min-width: 90px;
  max-width: 150px; }
  .block.table-block th:last-child, .block.table-block td:last-child {
    border-right: none; }

.block.table-block thead th {
  font-size: 14px;
  vertical-align: top;
  border-bottom: none;
  border-color: white;
  border-top: 1px solid transparent; }
  @media (min-width: 960px) {
    .block.table-block thead th {
      font-size: 20px; } }
  .block.table-block thead th img {
    margin: auto;
    display: none;
    border: 1px solid white;
    margin-top: -40px;
    margin-bottom: 5px; }
    @media (min-width: 768px) {
      .block.table-block thead th img {
        display: block; } }
  .block.table-block thead th .head {
    color: white;
    font-weight: 300;
    margin-bottom: 10px;
    margin-top: 10px; }
    @media (min-width: 960px) {
      .block.table-block thead th .head {
        font-weight: 500; } }
  .block.table-block thead th.corner {
    vertical-align: bottom; }
    .block.table-block thead th.corner h3 {
      margin-bottom: 12px; }
      @media (min-width: 768px) {
        .block.table-block thead th.corner h3 {
          margin-bottom: 25px; } }

.block.table-block tbody th, .block.table-block tbody td {
  border-color: white;
  border-bottom-color: #636363; }

.block.table-block tbody th {
  text-align: left;
  background-color: #dadada;
  color: #3c3c3c;
  font-weight: 500;
  max-width: none;
  padding-left: 10px;
  font-size: 12px;
  white-space: nowrap;
  padding-right: 20px;
  vertical-align: middle; }
  @media (min-width: 768px) {
    .block.table-block tbody th {
      padding-right: 5px; } }
  @media (min-width: 960px) {
    .block.table-block tbody th {
      font-size: 14px;
      padding-left: 15px; } }

.block.table-block tbody td {
  color: white;
  white-space: nowrap; }
  .block.table-block tbody td .shrink {
    font-size: 14px; }
    @media (min-width: 960px) {
      .block.table-block tbody td .shrink {
        font-size: 16px; } }
  .block.table-block tbody td .shrink-more {
    font-size: 12px; }
    @media (min-width: 960px) {
      .block.table-block tbody td .shrink-more {
        font-size: 16px; } }

.block.table-block tbody tr:first-child td, .block.table-block tbody tr:first-child th {
  border-top: none; }

.block.table-block tbody tr:last-child td, .block.table-block tbody tr:last-child th {
  border-bottom: 1px solid white; }

.block.table-block .optimiser-express {
  background-color: #e90000; }
  .block.table-block .optimiser-express img {
    border-color: #e90000; }

.block.table-block .optimiser-express-plus {
  background-color: #c7c935; }
  .block.table-block .optimiser-express-plus img {
    border-color: #c7c935; }

.block.table-block .optimiser-lite {
  background-color: #6400c7; }

.block.table-block .optimiser-intro {
  background-color: #4343fd; }

.block.table-block .optimiser-standard {
  background-color: #633495; }

.block.table-block .optimiser-professional {
  background-color: #5238c6; }

.block.table-block .optimiser-cloud {
  background-color: #3dabff; }

.block.table-block .optimiser-nesting {
  background-color: #FE6809; }

@media (min-width: 768px) {
  .quote-block blockquote {
    width: 81.66667%;
    float: left;
    margin-left: 0.83333%;
    margin-right: 0.83333%;
    margin-left: 9.16667%; } }

@media (min-width: 960px) {
  .quote-block blockquote {
    width: 48.33333%;
    float: left;
    margin-left: 0.83333%;
    margin-right: 0.83333%;
    margin-left: 40.83333%; } }

.imagequote-block .btn-pdf {
  margin-bottom: 20px;
  display: block;
  text-align: center; }
  @media (min-width: 768px) {
    .imagequote-block .btn-pdf {
      display: inline-block;
      text-align: left;
      margin-top: 30px;
      margin-left: 40px;
      margin-bottom: 0px; } }

.products-container {
  margin-bottom: 50px !important; }
  .products-container:after {
    content: "";
    display: table;
    clear: both; }

.product-block {
  margin-bottom: 0; }
  .product-block + .product-block {
    margin-top: -50px; }
    @media (min-width: 480px) {
      .product-block + .product-block {
        margin-top: -79px; } }
    @media (min-width: 768px) {
      .product-block + .product-block {
        margin-top: -125.4px; } }
  .product-block .mask-bottom-left:after, .product-block .mask-bottom-left:before, .product-block .mask-top-left:after, .product-block .mask-top-left:before {
    border-left-color: #ececec; }
  .product-block .product-content {
    background: #ececec; }
  .product-block.alt .mask-bottom-right:after, .product-block.alt .mask-bottom-right:before, .product-block.alt .mask-top-right:after, .product-block.alt .mask-top-right:before {
    border-right-color: #dedede; }
  .product-block.alt .product-content {
    background: #dedede; }
  @media (min-width: 768px) {
    .product-block .product-content {
      display: table;
      width: 100%; }
      .product-block .product-content > * {
        display: table-cell;
        padding: 0 10px;
        width: 1%;
        vertical-align: middle; } }
    @media (min-width: 768px) and (min-width: 1px) {
      .product-block .product-content > *.hidden-mobile {
        display: none; } }
    @media (min-width: 768px) and (min-width: 480px) {
      .product-block .product-content > *.hidden-mobile {
        display: table-cell; }
      .product-block .product-content > *.hidden-tween {
        display: none; } }
    @media (min-width: 768px) and (min-width: 768px) {
      .product-block .product-content > *.hidden-tween {
        display: table-cell; }
      .product-block .product-content > *.hidden-tablet {
        display: none; } }
    @media (min-width: 768px) and (min-width: 960px) {
      .product-block .product-content > *.hidden-tablet {
        display: table-cell; }
      .product-block .product-content > *.hidden-desktop {
        display: none; } }
    @media (min-width: 768px) and (min-width: 1200px) {
      .product-block .product-content > *.hidden-desktop {
        display: table-cell; }
      .product-block .product-content > *.hidden-desktop-l {
        display: none; } }
  .product-block .body {
    padding-top: 20px;
    padding-bottom: 20px; }
    @media (min-width: 768px) {
      .product-block .body {
        width: 56.66667%;
        padding-top: 0;
        padding-bottom: 0; } }
    .product-block .body .body-inner {
      display: table;
      width: 100%; }
      .product-block .body .body-inner > * {
        display: table-cell;
        padding: 0 10px;
        width: 1%;
        vertical-align: top; }
        @media (min-width: 1px) {
          .product-block .body .body-inner > *.hidden-mobile {
            display: none; } }
        @media (min-width: 480px) {
          .product-block .body .body-inner > *.hidden-mobile {
            display: table-cell; }
          .product-block .body .body-inner > *.hidden-tween {
            display: none; } }
        @media (min-width: 768px) {
          .product-block .body .body-inner > *.hidden-tween {
            display: table-cell; }
          .product-block .body .body-inner > *.hidden-tablet {
            display: none; } }
        @media (min-width: 960px) {
          .product-block .body .body-inner > *.hidden-tablet {
            display: table-cell; }
          .product-block .body .body-inner > *.hidden-desktop {
            display: none; } }
        @media (min-width: 1200px) {
          .product-block .body .body-inner > *.hidden-desktop {
            display: table-cell; }
          .product-block .body .body-inner > *.hidden-desktop-l {
            display: none; } }
      .product-block .body .body-inner > .icon {
        min-width: 50px; }
        @media (min-width: 768px) {
          .product-block .body .body-inner > .icon {
            min-width: 90px; } }
    .product-block .body .text {
      width: 100%; }
    .product-block .body p, .product-block .body h2 {
      margin-bottom: 5px; }
    .product-block .body .btn {
      margin-top: 25px; }
  .product-block .image {
    text-align: center;
    padding-bottom: 10px; }
    @media (min-width: 768px) {
      .product-block .image {
        width: 40%; } }
    .product-block .image img {
      margin-top: 20px; }

.lists-block {
  padding-left: 10px;
  padding-right: 10px; }
  @media (min-width: 768px) {
    .lists-block {
      padding-left: 25px;
      padding-right: 25px; } }
  .lists-block .lists ul {
    margin-bottom: 0; }
    @media (min-width: 768px) {
      .lists-block .lists ul {
        width: 48.33333%;
        float: left;
        margin-left: 0.83333%;
        margin-right: 0.83333%; } }
    .lists-block .lists ul li {
      margin-bottom: 20px; }

@media (min-width: 960px) {
  .bodylist-block {
    width: 100%;
    float: left;
    margin-left: 0;
    margin-right: 0; } }

@media (min-width: 960px) {
  .bodylist-block .body {
    width: 48.33333%;
    float: left;
    margin-left: 0.83333%;
    margin-right: 0.83333%; } }

@media (min-width: 960px) {
  .bodylist-block .list {
    width: 48.33333%;
    float: left;
    margin-left: 0.83333%;
    margin-right: 0.83333%; } }

.listbackgrounded-block {
  background-repeat: no-repeat;
  background-position: bottom right;
  background-size: 41%; }
  @media (min-width: 480px) {
    .listbackgrounded-block {
      background-size: contain; } }

.listimage-block {
  text-align: center; }
  .listimage-block:after {
    content: "";
    display: table;
    clear: both; }
  @media (min-width: 480px) {
    .listimage-block {
      text-align: left; } }
  @media (min-width: 480px) {
    .listimage-block .list {
      width: 48.33333%;
      float: left;
      margin-left: 0.83333%;
      margin-right: 0.83333%; } }
  .listimage-block .list ul {
    display: inline-block;
    text-align: left; }
  .listimage-block .image {
    text-align: right; }
    @media (min-width: 480px) {
      .listimage-block .image {
        width: 48.33333%;
        float: left;
        margin-left: 0.83333%;
        margin-right: 0.83333%; } }

.herocarousel-block {
  margin-bottom: 20px; }
  .herocarousel-block .owl-theme .owl-controls {
    position: absolute;
    text-align: center;
    left: 0;
    right: 0;
    margin-top: -80px; }
    @media (min-width: 480px) {
      .herocarousel-block .owl-theme .owl-controls {
        margin-top: -109px; } }
    @media (min-width: 768px) {
      .herocarousel-block .owl-theme .owl-controls {
        margin-top: -155.4px; } }
  .herocarousel-block .owl-item {
    position: relative;
    overflow: hidden; }
  .herocarousel-block .item {
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat; }
    .herocarousel-block .item .caption-container {
      position: relative;
      padding-top: 50px;
      padding-bottom: 110px;
      padding-left: 10px;
      padding-right: 10px;
      text-align: center; }
      @media (min-width: 960px) {
        .herocarousel-block .item .caption-container {
          padding-top: 170px; } }
      .herocarousel-block .item .caption-container .caption {
        position: relative;
        display: inline-block;
        max-width: 610px; }
        .herocarousel-block .item .caption-container .caption .mask-top-left:before {
          position: absolute;
          content: " ";
          width: 0;
          height: 0;
          border-style: solid;
          -moz-transform: scale(0.9999);
          top: auto;
          bottom: auto;
          pointer-events: none;
          border-top-color: transparent;
          border-right-color: transparent;
          border-bottom-color: transparent;
          border-left-color: transparent;
          border-top-color: rgba(255, 255, 255, 0);
          border-right-color: rgba(255, 255, 255, 0);
          border-bottom-color: rgba(255, 255, 255, 0);
          border-left-color: rgba(255, 255, 255, 0);
          border-top-width: 0;
          border-right-width: 0;
          border-bottom-width: 0;
          border-left-width: 0;
          border-left-color: white;
          top: 0;
          left: 50%;
          margin-left: -315px;
          border-left-width: 630px;
          border-bottom-width: 55px;
          /*
    @if $mode == 'extend' {
        bottom: 100%;
        border-top-width: $angle;
    }*/ }
        .herocarousel-block .item .caption-container .caption .mask-bottom-left:after {
          position: absolute;
          content: " ";
          width: 0;
          height: 0;
          border-style: solid;
          -moz-transform: scale(0.9999);
          top: auto;
          bottom: auto;
          pointer-events: none;
          border-top-color: transparent;
          border-right-color: transparent;
          border-bottom-color: transparent;
          border-left-color: transparent;
          border-top-color: rgba(255, 255, 255, 0);
          border-right-color: rgba(255, 255, 255, 0);
          border-bottom-color: rgba(255, 255, 255, 0);
          border-left-color: rgba(255, 255, 255, 0);
          border-top-width: 0;
          border-right-width: 0;
          border-bottom-width: 0;
          border-left-width: 0;
          border-left-color: white;
          bottom: 0;
          left: 50%;
          margin-left: -315px;
          border-left-width: 630px;
          border-top-width: 55px;
          /*
    @if $mode == 'extend' {
        top: 100%;
        border-bottom-width: $angle;
    }*/ }
        .herocarousel-block .item .caption-container .caption .underlayer {
          position: absolute;
          left: -10px;
          right: -10px; }
          .herocarousel-block .item .caption-container .caption .underlayer.mask-bottom-left {
            border-bottom: 10px solid #fff;
            border-bottom: 10px solid rgba(255, 255, 255, 0.6);
            margin-top: -10px; }
          .herocarousel-block .item .caption-container .caption .underlayer.mask-top-left {
            border-top: 10px solid #fff;
            border-top: 10px solid rgba(255, 255, 255, 0.6);
            margin-bottom: -10px; }
          .herocarousel-block .item .caption-container .caption .underlayer:after, .herocarousel-block .item .caption-container .caption .underlayer:before {
            border-left-color: rgba(255, 255, 255, 0.6); }
        .herocarousel-block .item .caption-container .caption .caption-content {
          background-color: white;
          text-align: left;
          padding: 0 20px;
          position: relative;
          display: table;
          width: 100%; }
          .herocarousel-block .item .caption-container .caption .caption-content > * {
            display: table-cell;
            padding: 0 0;
            width: 1%;
            vertical-align: middle; }
            @media (min-width: 1px) {
              .herocarousel-block .item .caption-container .caption .caption-content > *.hidden-mobile {
                display: none; } }
            @media (min-width: 480px) {
              .herocarousel-block .item .caption-container .caption .caption-content > *.hidden-mobile {
                display: table-cell; }
              .herocarousel-block .item .caption-container .caption .caption-content > *.hidden-tween {
                display: none; } }
            @media (min-width: 768px) {
              .herocarousel-block .item .caption-container .caption .caption-content > *.hidden-tween {
                display: table-cell; }
              .herocarousel-block .item .caption-container .caption .caption-content > *.hidden-tablet {
                display: none; } }
            @media (min-width: 960px) {
              .herocarousel-block .item .caption-container .caption .caption-content > *.hidden-tablet {
                display: table-cell; }
              .herocarousel-block .item .caption-container .caption .caption-content > *.hidden-desktop {
                display: none; } }
            @media (min-width: 1200px) {
              .herocarousel-block .item .caption-container .caption .caption-content > *.hidden-desktop {
                display: table-cell; }
              .herocarousel-block .item .caption-container .caption .caption-content > *.hidden-desktop-l {
                display: none; } }
          .herocarousel-block .item .caption-container .caption .caption-content:before {
            content: " ";
            position: absolute;
            top: 0;
            right: -10px;
            bottom: 0;
            left: -10px;
            background-color: #fff;
            background-color: rgba(255, 255, 255, 0.6); }
          .herocarousel-block .item .caption-container .caption .caption-content .heading {
            padding-bottom: 10px;
            display: table;
            width: 100%; }
            .herocarousel-block .item .caption-container .caption .caption-content .heading > * {
              display: table-cell;
              padding: 0 0;
              width: 1%;
              vertical-align: middle; }
              @media (min-width: 1px) {
                .herocarousel-block .item .caption-container .caption .caption-content .heading > *.hidden-mobile {
                  display: none; } }
              @media (min-width: 480px) {
                .herocarousel-block .item .caption-container .caption .caption-content .heading > *.hidden-mobile {
                  display: table-cell; }
                .herocarousel-block .item .caption-container .caption .caption-content .heading > *.hidden-tween {
                  display: none; } }
              @media (min-width: 768px) {
                .herocarousel-block .item .caption-container .caption .caption-content .heading > *.hidden-tween {
                  display: table-cell; }
                .herocarousel-block .item .caption-container .caption .caption-content .heading > *.hidden-tablet {
                  display: none; } }
              @media (min-width: 960px) {
                .herocarousel-block .item .caption-container .caption .caption-content .heading > *.hidden-tablet {
                  display: table-cell; }
                .herocarousel-block .item .caption-container .caption .caption-content .heading > *.hidden-desktop {
                  display: none; } }
              @media (min-width: 1200px) {
                .herocarousel-block .item .caption-container .caption .caption-content .heading > *.hidden-desktop {
                  display: table-cell; }
                .herocarousel-block .item .caption-container .caption .caption-content .heading > *.hidden-desktop-l {
                  display: none; } }
            @media (min-width: 480px) {
              .herocarousel-block .item .caption-container .caption .caption-content .heading {
                padding-bottom: 0; } }
          .herocarousel-block .item .caption-container .caption .caption-content .content-image, .herocarousel-block .item .caption-container .caption .caption-content .content-text {
            position: relative;
            z-index: 1; }
          .herocarousel-block .item .caption-container .caption .caption-content .content-image {
            min-width: 60px; }
            @media (min-width: 768px) {
              .herocarousel-block .item .caption-container .caption .caption-content .content-image {
                min-width: 120px; } }
          .herocarousel-block .item .caption-container .caption .caption-content .content-text {
            width: 100%; }
          .herocarousel-block .item .caption-container .caption .caption-content .head {
            margin-bottom: 0;
            font-weight: 300;
            color: #3c3c3c;
            width: 100%;
            font-size: 1.875em; }
          .herocarousel-block .item .caption-container .caption .caption-content .body {
            font-weight: 500; }
          .herocarousel-block .item .caption-container .caption .caption-content p:last-child {
            margin-bottom: 0; }

.modalcarousel-block .caption {
  padding: 40px;
  padding-bottom: 0;
  min-height: 120px;
  text-align: center; }

.modalcarousel-block .owl-controls {
  height: 0; }
  .modalcarousel-block .owl-controls .owl-pagination {
    display: none; }
  .modalcarousel-block .owl-controls .owl-buttons .owl-prev, .modalcarousel-block .owl-controls .owl-buttons .owl-next {
    position: absolute;
    bottom: 50px;
    text-align: center; }
  .modalcarousel-block .owl-controls .owl-buttons .owl-prev {
    left: 0;
    margin-left: 0; }
  .modalcarousel-block .owl-controls .owl-buttons .owl-next {
    right: 0;
    margin-right: 0; }

.playlistcarousel-block .tab-content {
  background-color: #ececeb; }
  .playlistcarousel-block .tab-content .tab-pane {
    position: relative; }

.playlistcarousel-block .owl-carousel {
  padding: 10px 60px; }
  .playlistcarousel-block .owl-carousel .item a {
    display: block;
    padding: 10px 10px;
    color: #3c3c3c; }
    .playlistcarousel-block .owl-carousel .item a:hover, .playlistcarousel-block .owl-carousel .item a:active, .playlistcarousel-block .owl-carousel .item a:focus, .playlistcarousel-block .owl-carousel .item a:visited {
      text-decoration: none;
      outline: 0; }
    .playlistcarousel-block .owl-carousel .item a:hover {
      color: #d74f4f; }
    .playlistcarousel-block .owl-carousel .item a.active {
      background-color: #d74f4f;
      color: white; }
  .playlistcarousel-block .owl-carousel .item .caption {
    text-align: center;
    margin: 5px;
    font-size: 1.25em; }
  .playlistcarousel-block .owl-carousel .owl-controls {
    height: 0; }
    .playlistcarousel-block .owl-carousel .owl-controls .owl-prev, .playlistcarousel-block .owl-carousel .owl-controls .owl-next {
      position: absolute;
      top: 50%;
      margin-top: -15px;
      text-align: center; }
    .playlistcarousel-block .owl-carousel .owl-controls .owl-prev {
      left: 10px; }
    .playlistcarousel-block .owl-carousel .owl-controls .owl-next {
      right: 10px; }

.fade {
  opacity: 0;
  -webkit-transition: opacity 0.15s linear;
  transition: opacity 0.15s linear; }
  .fade.in {
    opacity: 1; }

.collapse {
  display: none; }
  .collapse.in {
    display: block; }

tr.collapse.in {
  display: table-row; }

tbody.collapse.in {
  display: table-row-group; }

.collapsing {
  position: relative;
  height: 0;
  overflow: hidden;
  -webkit-transition: height 0.35s ease;
  transition: height 0.35s ease; }

.faq-block {
  margin-bottom: 3px;
  background-color: #ececeb; }
  .faq-block .head, .faq-block .body {
    position: relative;
    font-size: 1.125em; }
    @media (min-width: 768px) {
      .faq-block .head, .faq-block .body {
        font-size: 1.25em; } }
    .faq-block .head:before, .faq-block .body:before {
      display: block;
      position: absolute;
      top: 0;
      left: 10px;
      font-family: 'Magi-cut';
      speak: none;
      font-style: normal;
      font-weight: normal;
      font-variant: normal;
      text-transform: none;
      line-height: 1;
      /* Better Font Rendering =========== */
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      pointer-events: none;
      font-size: 55px; }
  .faq-block .body:before {
    color: #d74f4f; }
  .faq-block .head-inner, .faq-block .body-inner {
    padding: 14px 14px 14px 60px; }
  .faq-block .head-inner {
    display: block;
    color: #3c3c3c; }
    .faq-block .head-inner, .faq-block .head-inner:active, .faq-block .head-inner:hover {
      text-decoration: none; }

.nav {
  margin-bottom: 0;
  padding-left: 0;
  list-style: none; }
  .nav:after {
    content: "";
    display: table;
    clear: both; }
  .nav > li {
    position: relative;
    display: block; }
    .nav > li > a {
      position: relative;
      display: block;
      padding: 10px 15px; }
      .nav > li > a:hover, .nav > li > a:focus {
        text-decoration: none;
        background-color: #ececeb; }
    .nav > li.disabled > a {
      color: #dadada; }
      .nav > li.disabled > a:hover, .nav > li.disabled > a:focus {
        color: #dadada;
        text-decoration: none;
        background-color: transparent;
        cursor: not-allowed; }
  .nav .open > a, .nav .open > a:hover, .nav .open > a:focus {
    background-color: #ececeb;
    border-color: #d74f4f; }
  .nav .nav-divider {
    height: 1px;
    margin: 10px 0;
    overflow: hidden;
    background-color: #ededed; }
  .nav > li > a > img {
    max-width: none; }

.nav-tabs {
  border-bottom: 1px solid #ddd; }
  .nav-tabs > li {
    float: left;
    margin-bottom: -1px; }
    .nav-tabs > li > a {
      margin-right: 2px;
      line-height: 1.42857;
      border: 1px solid transparent;
      border-radius: 5px 5px 0 0; }
      .nav-tabs > li > a:hover {
        border-color: #ececeb #ececeb #ddd; }
    .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
      color: #5d5d5d;
      background-color: #ededed;
      border: 1px solid #ddd;
      border-bottom-color: transparent;
      cursor: default; }

.nav-pills > li {
  float: left; }
  .nav-pills > li > a {
    border-radius: 5px; }
  .nav-pills > li + li {
    margin-left: 2px; }
  .nav-pills > li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus {
    color: #fff;
    background-color: #d74f4f; }

.nav-stacked > li {
  float: none; }
  .nav-stacked > li + li {
    margin-top: 2px;
    margin-left: 0; }

.nav-justified, .nav-tabs.nav-justified {
  width: 100%; }
  .nav-justified > li, .nav-tabs.nav-justified > li {
    float: none; }
    .nav-justified > li > a, .nav-tabs.nav-justified > li > a {
      text-align: center;
      margin-bottom: 5px; }
  .nav-justified > .dropdown .dropdown-menu {
    top: auto;
    left: auto; }
  @media (min-width: 768px) {
    .nav-justified > li, .nav-tabs.nav-justified > li {
      display: table-cell;
      width: 1%; }
      .nav-justified > li > a, .nav-tabs.nav-justified > li > a {
        margin-bottom: 0; } }

.nav-tabs-justified, .nav-tabs.nav-justified {
  border-bottom: 0; }
  .nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a {
    margin-right: 0;
    border-radius: 5px; }
  .nav-tabs-justified > .active > a, .nav-tabs.nav-justified > .active > a,
  .nav-tabs-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:hover,
  .nav-tabs-justified > .active > a:focus, .nav-tabs.nav-justified > .active > a:focus {
    border: 1px solid #ddd; }
  @media (min-width: 768px) {
    .nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a {
      border-bottom: 1px solid #ddd;
      border-radius: 5px 5px 0 0; }
    .nav-tabs-justified > .active > a, .nav-tabs.nav-justified > .active > a,
    .nav-tabs-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:hover,
    .nav-tabs-justified > .active > a:focus, .nav-tabs.nav-justified > .active > a:focus {
      border-bottom-color: #ededed; } }

.tab-content > .tab-pane {
  display: none; }

.tab-content > .active {
  display: block; }

.nav-tabs .dropdown-menu {
  margin-top: -1px;
  border-top-right-radius: 0;
  border-top-left-radius: 0; }

@media (min-width: 960px) {
  .videopicker-block {
    width: 100%;
    float: left;
    margin-left: 0;
    margin-right: 0; } }

.videopicker-block .video {
  margin-bottom: 25px; }
  @media (min-width: 960px) {
    .videopicker-block .video {
      width: 65%;
      float: left;
      margin-left: 0.83333%;
      margin-right: 0.83333%;
      margin-bottom: 0; } }
  .videopicker-block .video iframe {
    width: 100%; }

@media (min-width: 960px) {
  .videopicker-block .picker {
    width: 31.66667%;
    float: left;
    margin-left: 0.83333%;
    margin-right: 0.83333%; } }

.videopicker-block .picker .toggleplaylist {
  cursor: pointer;
  padding: 5px;
  position: relative; }
  .videopicker-block .picker .toggleplaylist:before {
    font-family: 'Magi-cut';
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    display: inline-block;
    width: 35px;
    margin-top: -5px;
    vertical-align: middle; }

.videopicker-block .picker li a {
  display: block;
  padding: 10px;
  color: #3c3c3c;
  font-size: 1.5em; }

.videopicker-block .picker li img {
  display: inline-block;
  margin-right: 15px;
  width: 30px; }

.videopicker-block .picker li.active a {
  background-color: #ececeb; }

.videopicker-block .picker li.active a, .videopicker-block .picker li:hover a {
  color: #d74f4f;
  text-decoration: none; }

.download-block {
  background-color: #ececeb;
  padding: 25px;
  text-align: center; }
  @media (min-width: 480px) {
    .download-block {
      text-align: left; } }
  .download-block p {
    font-size: 1.125em; }
    @media (min-width: 768px) {
      .download-block p {
        font-size: 1.25em; } }

.recentnews-block li {
  margin-bottom: 8px;
  font-size: 14px; }
  .recentnews-block li .article-link {
    display: table;
    width: 100%;
    color: #3c3c3c; }
    .recentnews-block li .article-link > * {
      display: table-cell;
      padding: 0 0;
      width: 1%;
      vertical-align: top; }
      @media (min-width: 1px) {
        .recentnews-block li .article-link > *.hidden-mobile {
          display: none; } }
      @media (min-width: 480px) {
        .recentnews-block li .article-link > *.hidden-mobile {
          display: table-cell; }
        .recentnews-block li .article-link > *.hidden-tween {
          display: none; } }
      @media (min-width: 768px) {
        .recentnews-block li .article-link > *.hidden-tween {
          display: table-cell; }
        .recentnews-block li .article-link > *.hidden-tablet {
          display: none; } }
      @media (min-width: 960px) {
        .recentnews-block li .article-link > *.hidden-tablet {
          display: table-cell; }
        .recentnews-block li .article-link > *.hidden-desktop {
          display: none; } }
      @media (min-width: 1200px) {
        .recentnews-block li .article-link > *.hidden-desktop {
          display: table-cell; }
        .recentnews-block li .article-link > *.hidden-desktop-l {
          display: none; } }
    .recentnews-block li .article-link:hover {
      text-decoration: none; }
    .recentnews-block li .article-link .date {
      color: #939393;
      white-space: nowrap; }
    .recentnews-block li .article-link .title {
      width: 100%;
      font-weight: 500; }

.article-block {
  display: table;
  width: 100%;
  width: 100%;
  float: left;
  margin-left: 0;
  margin-right: 0;
  padding-bottom: 25px;
  border-bottom: 1px solid #ececeb; }
  .article-block > * {
    display: table-cell;
    padding: 0 10px;
    width: 1%;
    vertical-align: top; }
    .article-block > *:first-child {
      padding-left: 0; }
    .article-block > *:last-child {
      padding-right: 0; }
    @media (min-width: 1px) {
      .article-block > *.hidden-mobile {
        display: none; } }
    @media (min-width: 480px) {
      .article-block > *.hidden-mobile {
        display: table-cell; }
      .article-block > *.hidden-tween {
        display: none; } }
    @media (min-width: 768px) {
      .article-block > *.hidden-tween {
        display: table-cell; }
      .article-block > *.hidden-tablet {
        display: none; } }
    @media (min-width: 960px) {
      .article-block > *.hidden-tablet {
        display: table-cell; }
      .article-block > *.hidden-desktop {
        display: none; } }
    @media (min-width: 1200px) {
      .article-block > *.hidden-desktop {
        display: table-cell; }
      .article-block > *.hidden-desktop-l {
        display: none; } }
  .article-block.block {
    margin-bottom: 35px; }
  .article-block .body {
    width: 100%;
    text-align: center; }
    @media (min-width: 480px) {
      .article-block .body {
        text-align: left; } }
    .article-block .body h2, .article-block .body p {
      margin-bottom: 5px; }
    .article-block .body .link-iconned {
      margin-top: 5px;
      display: inline-block; }
    .article-block .body h2 a {
      color: #3c3c3c; }
      .article-block .body h2 a:hover {
        text-decoration: none;
        color: #d74f4f; }
  .article-block .image {
    min-width: 310px; }
    @media (min-width: 960px) {
      .article-block .image {
        padding-right: 30px; } }
    .article-block .image img {
      width: 100%;
      border: 1px solid #dadada; }

.articlesnav-block {
  margin-bottom: 50px; }
  .articlesnav-block:after {
    content: "";
    display: table;
    clear: both; }
  .articlesnav-block .prev-container, .articlesnav-block .next-container {
    width: 50%;
    float: left;
    margin-top: -10px;
    padding: 0 10px; }
    @media (min-width: 1200px) {
      .articlesnav-block .prev-container, .articlesnav-block .next-container {
        padding: 0; } }
  .articlesnav-block .prev-container {
    padding-left: 0;
    text-align: right; }
    @media (min-width: 768px) {
      .articlesnav-block .prev-container {
        text-align: left; } }
    .articlesnav-block .prev-container .icon-prev {
      padding-left: 10px; }
  .articlesnav-block .next-container {
    padding-right: 0;
    text-align: left; }
    @media (min-width: 768px) {
      .articlesnav-block .next-container {
        text-align: right; } }
    .articlesnav-block .next-container .icon-next, .articlesnav-block .next-container .btn.btn-arrowed, .articlesnav-block .next-container .btn.btn-cloud, .articlesnav-block .next-container ul.arrowed li, ul.arrowed .articlesnav-block .next-container li {
      padding-right: 10px; }
  .articlesnav-block .back-container .icon-prev {
    padding-right: 10px; }
  .articlesnav-block .icon {
    width: auto;
    font-size: 40px; }

.articlecontent-block p, .articlecontent-block li, .articlecontent-block span {
  font-size: 1.125em; }
  @media (min-width: 768px) {
    .articlecontent-block p, .articlecontent-block li, .articlecontent-block span {
      font-size: 1.25em; } }

.contact-block {
  background-color: #ececeb;
  padding: 25px; }
  .contact-block .detail {
    margin-bottom: 25px;
    font-size: 1.25em; }
    @media (min-width: 768px) {
      .contact-block .detail {
        display: table;
        width: 100%; }
        .contact-block .detail > * {
          display: table-cell;
          padding: 0 10px;
          width: 1%;
          vertical-align: top; }
          .contact-block .detail > *:first-child {
            padding-left: 0; }
          .contact-block .detail > *:last-child {
            padding-right: 0; } }
    @media (min-width: 768px) and (min-width: 1px) {
      .contact-block .detail > *.hidden-mobile {
        display: none; } }
    @media (min-width: 768px) and (min-width: 480px) {
      .contact-block .detail > *.hidden-mobile {
        display: table-cell; }
      .contact-block .detail > *.hidden-tween {
        display: none; } }
    @media (min-width: 768px) and (min-width: 768px) {
      .contact-block .detail > *.hidden-tween {
        display: table-cell; }
      .contact-block .detail > *.hidden-tablet {
        display: none; } }
    @media (min-width: 768px) and (min-width: 960px) {
      .contact-block .detail > *.hidden-tablet {
        display: table-cell; }
      .contact-block .detail > *.hidden-desktop {
        display: none; } }
    @media (min-width: 768px) and (min-width: 1200px) {
      .contact-block .detail > *.hidden-desktop {
        display: table-cell; }
      .contact-block .detail > *.hidden-desktop-l {
        display: none; } }
    .contact-block .detail .label {
      color: #d74f4f; }
      @media (min-width: 768px) {
        .contact-block .detail .label {
          min-width: 160px; } }
    .contact-block .detail .value {
      width: 100%; }

.support-block {
  padding: 10px;
  background-color: #ececeb;
  margin-bottom: 25px;
  display: table;
  width: 100%; }
  .support-block > * {
    display: table-cell;
    padding: 0 10px;
    width: 1%;
    vertical-align: top; }
    .support-block > *:first-child {
      padding-left: 0; }
    .support-block > *:last-child {
      padding-right: 0; }
    @media (min-width: 1px) {
      .support-block > *.hidden-mobile {
        display: none; } }
    @media (min-width: 480px) {
      .support-block > *.hidden-mobile {
        display: table-cell; }
      .support-block > *.hidden-tween {
        display: none; } }
    @media (min-width: 768px) {
      .support-block > *.hidden-tween {
        display: table-cell; }
      .support-block > *.hidden-tablet {
        display: none; } }
    @media (min-width: 960px) {
      .support-block > *.hidden-tablet {
        display: table-cell; }
      .support-block > *.hidden-desktop {
        display: none; } }
    @media (min-width: 1200px) {
      .support-block > *.hidden-desktop {
        display: table-cell; }
      .support-block > *.hidden-desktop-l {
        display: none; } }
  @media (min-width: 480px) {
    .support-block {
      padding: 25px; } }
  .support-block .software-details li {
    display: inline-block;
    padding-left: 0px; }
    .support-block .software-details li:last-child:after {
      display: none; }
    .support-block .software-details li:before {
      display: none; }
    .support-block .software-details li:after {
      content: "|";
      color: #d74f4f;
      display: inline-block; }
  .support-block .custom-button {
    display: inline-block; }
  .support-block .image {
    min-width: 60px;
    margin-bottom: 10px; }
    @media (min-width: 480px) {
      .support-block .image {
        text-align: right; } }
  .support-block .body {
    width: 100%; }
    .support-block .body .body-inner {
      max-width: 600px; }
    .support-block .body p {
      font-weight: 500; }

.supportrequest-block {
  padding: 10px;
  background-color: #ececeb;
  margin-bottom: 25px; }
  @media (min-width: 480px) {
    .supportrequest-block {
      padding: 25px; } }

.purchasesupport-block {
  padding: 10px;
  background-color: #ececeb;
  margin-bottom: 25px;
  width: 100%; }
  .purchasesupport-block form {
    display: none; }
    @media (min-width: 769px) {
      .purchasesupport-block form {
        display: block; } }
  .purchasesupport-block .mob-message {
    display: block;
    padding: 10px; }
    .purchasesupport-block .mob-message h3 {
      margin-bottom: 0px; }
    @media (min-width: 769px) {
      .purchasesupport-block .mob-message {
        display: none; } }
  .purchasesupport-block #DetailsForm table {
    margin-bottom: 30px; }
    .purchasesupport-block #DetailsForm table td {
      padding-right: 30px; }
  .purchasesupport-block .styled-select {
    position: relative; }
    .purchasesupport-block .styled-select:before, .purchasesupport-block .styled-select:after {
      content: " ";
      position: absolute;
      pointer-events: none; }
    .purchasesupport-block .styled-select:before {
      top: 0;
      right: 0;
      bottom: 0;
      width: 30px;
      background-color: white; }
    .purchasesupport-block .styled-select:after {
      margin-left: -25px;
      margin-top: -4px;
      border: solid transparent;
      border-color: rgba(136, 183, 213, 0);
      border-top-color: #c7c7c7;
      border-width: 8px;
      border-left-width: 4px;
      border-right-width: 4px; }
    .purchasesupport-block .styled-select select:focus {
      outline: 0; }
  @media (min-width: 480px) {
    .purchasesupport-block {
      padding: 25px; } }
  .purchasesupport-block .versions {
    margin-bottom: 40px; }
    .purchasesupport-block .versions .version h4 {
      margin-bottom: 10px; }
    .purchasesupport-block .versions .version .table th, .purchasesupport-block .versions .version .table td {
      padding: 8px 5px; }
      @media (min-width: 480px) {
        .purchasesupport-block .versions .version .table th, .purchasesupport-block .versions .version .table td {
          padding: 8px 20px; } }
      .purchasesupport-block .versions .version .table th:first-child, .purchasesupport-block .versions .version .table td:first-child {
        padding-left: 0;
        width: 60%; }
      .purchasesupport-block .versions .version .table th:last-child, .purchasesupport-block .versions .version .table td:last-child {
        padding-right: 0; }
    .purchasesupport-block .versions .version .table th {
      border-bottom: none;
      white-space: nowrap;
      color: #d74f4f; }
    .purchasesupport-block .versions .version .table td {
      border-color: white; }
    .purchasesupport-block .versions .version .table tr:last-child td {
      border-bottom: 1px solid white; }
    .purchasesupport-block .versions .version .table input {
      margin-left: 5px; }
    .purchasesupport-block .versions .version .table .code {
      color: #d74f4f;
      min-width: 35px;
      display: inline-block; }
    .purchasesupport-block .versions .version .table .cost {
      text-align: right; }
  .purchasesupport-block .summary {
    margin-bottom: 12.5px; }
    @media (min-width: 768px) {
      .purchasesupport-block .summary {
        margin-bottom: 25px; } }
    .purchasesupport-block .summary .cost {
      display: table;
      width: 100%;
      font-size: 1.25em;
      margin-bottom: 12.5px; }
      .purchasesupport-block .summary .cost > * {
        display: table-cell;
        padding: 0 10px;
        width: 1%;
        vertical-align: top; }
        .purchasesupport-block .summary .cost > *:first-child {
          padding-left: 0; }
        .purchasesupport-block .summary .cost > *:last-child {
          padding-right: 0; }
        @media (min-width: 1px) {
          .purchasesupport-block .summary .cost > *.hidden-mobile {
            display: none; } }
        @media (min-width: 480px) {
          .purchasesupport-block .summary .cost > *.hidden-mobile {
            display: table-cell; }
          .purchasesupport-block .summary .cost > *.hidden-tween {
            display: none; } }
        @media (min-width: 768px) {
          .purchasesupport-block .summary .cost > *.hidden-tween {
            display: table-cell; }
          .purchasesupport-block .summary .cost > *.hidden-tablet {
            display: none; } }
        @media (min-width: 960px) {
          .purchasesupport-block .summary .cost > *.hidden-tablet {
            display: table-cell; }
          .purchasesupport-block .summary .cost > *.hidden-desktop {
            display: none; } }
        @media (min-width: 1200px) {
          .purchasesupport-block .summary .cost > *.hidden-desktop {
            display: table-cell; }
          .purchasesupport-block .summary .cost > *.hidden-desktop-l {
            display: none; } }
      @media (min-width: 768px) {
        .purchasesupport-block .summary .cost {
          margin-bottom: 25px; } }
      .purchasesupport-block .summary .cost .label {
        min-width: 170px;
        color: #d74f4f; }
      .purchasesupport-block .summary .cost .value {
        width: 100%; }

.form-block .contourPage {
  padding: 10px;
  background-color: #ececeb;
  margin-bottom: 25px; }
  @media (min-width: 480px) {
    .form-block .contourPage {
      padding: 25px; } }
  .form-block .contourPage .span6.col-md-6 {
    /*width: 50%;
            float: left;*/ }
    .form-block .contourPage .span6.col-md-6 .styled-select::before {
      width: initial; }
  .form-block .contourPage .span12.col-md-12 .fieldLabel {
    font-weight: inherit; }
  .form-block .contourPage .checkbox input {
    float: left;
    margin-top: 5px; }
  .form-block .contourPage .umbraco-forms-field.checkbox div {
    width: 5%; }
  .form-block .contourPage .umbraco-forms-field.checkbox label {
    float: right;
    width: 95%; }

.button-block {
  width: 98.33333%;
  float: left;
  margin-left: 0.83333%;
  margin-right: 0.83333%;
  margin-bottom: 20px; }

#cookie-policy {
  background: none repeat scroll 0 0 white;
  bottom: 0;
  box-shadow: 0 1px 5px 0px rgba(0, 0, 0, 0.66);
  padding: 20px;
  position: fixed;
  right: 0;
  width: 100%;
  display: none;
  z-index: 9999; }
  #cookie-policy .contain {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto; }
    #cookie-policy .contain:after {
      content: " ";
      display: block;
      clear: both; }
  @media (min-width: tablet-horizontal) {
    #cookie-policy {
      width: 425px;
      margin: 10px 20px; } }
  #cookie-policy span.title {
    margin: 5px 0 5px 0;
    font-size: 1.5625em;
    line-height: 30px;
    color: #d74f4f;
    display: block; }

.header-main-nav .btn-menu, .header-main-nav .btn-close {
  position: absolute;
  display: inline-block;
  font-size: 1.875em;
  padding: 23px 19px 23px 24px;
  right: 0px;
  top: 0px;
  bottom: 0;
  line-height: 0;
  -webkit-transition: background-color 0.5s;
  transition: background-color 0.5s; }
  .header-main-nav .btn-menu:hover, .header-main-nav .btn-menu:active, .header-main-nav .btn-menu:focus, .header-main-nav .btn-close:hover, .header-main-nav .btn-close:active, .header-main-nav .btn-close:focus {
    text-decoration: none; }
  @media (min-width: 768px) {
    .header-main-nav .btn-menu, .header-main-nav .btn-close {
      display: none !important; } }
  .header-main-nav .btn-menu .icon-menu, .header-main-nav .btn-menu .icon-close, .header-main-nav .btn-menu .videopicker-block .picker .toggleplaylist, .videopicker-block .picker .header-main-nav .btn-menu .toggleplaylist, .header-main-nav .btn-close .icon-menu, .header-main-nav .btn-close .icon-close, .header-main-nav .btn-close .videopicker-block .picker .toggleplaylist, .videopicker-block .picker .header-main-nav .btn-close .toggleplaylist {
    line-height: 25px; }

.header-main-nav .btn-menu {
  color: #504f57;
  background-color: #dadada; }

.header-main-nav .btn-close {
  color: white;
  z-index: 999;
  display: none; }
  .header-main-nav .btn-close.menu-down {
    display: block; }
  .header-main-nav .btn-close:hover {
    background-color: white;
    color: black; }

.menu {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  height: 100%;
  display: none;
  z-index: 100;
  padding-top: 80px;
  padding-bottom: 80px;
  overflow-y: auto;
  background-color: #1a1a1a;
  background-color: rgba(0, 0, 0, 0.9); }
  @media (min-width: 768px) {
    .menu {
      position: static;
      width: auto;
      height: auto;
      display: block;
      background-color: transparent;
      padding: 0;
      overflow-y: visible; } }

@media (min-width: 768px) {
  .main-nav.sticky {
    position: fixed;
    top: 0;
    left: -1px;
    right: 0;
    height: 0;
    /* center all inline content */
    text-align: center;
    z-index: 999; }
    .main-nav.sticky > .header-main-nav {
      border-bottom: 1px solid #9f9b96;
      /* The Fallback */
      border-bottom: 1px solid rgba(159, 155, 150, 0.7);
      display: inline-block;
      text-align: left;
      max-width: 1180px;
      float: none;
      width: 100%;
      margin-left: 0px;
      margin-right: 0px; } }

.header-main {
  position: relative;
  border-bottom: 1px solid #dadada; }
  @media (min-width: 768px) {
    .header-main {
      border-bottom: none; } }
  .header-main .header-main-nav {
    font-family: "museo-sans", Tahoma, Segoe, sans-serif; }
    @media (min-width: 768px) {
      .header-main .header-main-nav {
        position: relative;
        text-align: left; } }
    .header-main .header-main-nav a {
      text-decoration: none; }
    .header-main .header-main-nav ul {
      padding: 15px 0 0;
      margin: 0px;
      list-style: none; }
      .header-main .header-main-nav ul li {
        list-style-image: none;
        list-style-type: none;
        margin-left: 0;
        padding-left: 0; }
        .header-main .header-main-nav ul li:before {
          content: none;
          display: none; }
      @media (min-width: 768px) {
        .header-main .header-main-nav ul {
          padding-top: 0px;
          border-top: 0px; } }
      .header-main .header-main-nav ul li.sfHover {
        color: #d74f4f; }
        .header-main .header-main-nav ul li.sfHover .sf-with-ul {
          position: relative;
          border-bottom: 3px solid #ececeb;
          margin-bottom: -3px;
          background-color: #ececeb;
          z-index: 1; }
      .header-main .header-main-nav ul li {
        white-space: nowrap;
        text-align: center;
        padding: 0; }
        .header-main .header-main-nav ul li.selected {
          position: relative; }
          .header-main .header-main-nav ul li.selected > a {
            color: #d74f4f; }
            @media (min-width: 768px) {
              .header-main .header-main-nav ul li.selected > a {
                text-decoration: none;
                color: inherit; } }
          .header-main .header-main-nav ul li.selected:after {
            content: none;
            position: absolute;
            top: 0;
            left: 50%;
            margin-left: -10px;
            pointer-events: none;
            border: solid transparent;
            border-color: rgba(255, 255, 255, 0);
            border-top-color: #ffffff;
            border-width: 10px; }
            @media (min-width: 768px) {
              .header-main .header-main-nav ul li.selected:after {
                content: " "; } }
        .header-main .header-main-nav ul li.mobile-link {
          display: block; }
          .header-main .header-main-nav ul li.mobile-link a {
            font-weight: normal;
            font-size: 0.875em; }
          @media (min-width: 768px) {
            .header-main .header-main-nav ul li.mobile-link {
              display: none; } }
        .header-main .header-main-nav ul li > a {
          padding: 15px 10px;
          display: block;
          font-weight: 300;
          font-size: 24px;
          color: white; }
          .header-main .header-main-nav ul li > a:hover {
            color: #d74f4f; }
          @media (min-width: 768px) {
            .header-main .header-main-nav ul li > a {
              color: #3c3c3c;
              font-size: 18px;
              font-weight: 500; } }
        .header-main .header-main-nav ul li ul {
          display: none; }
          @media (min-width: 768px) {
            .header-main .header-main-nav ul li ul {
              display: none;
              position: absolute;
              overflow: hidden;
              border: 3px solid #dadada;
              margin-left: -3px;
              background-color: #ececeb;
              padding: 20px; }
              .header-main .header-main-nav ul li ul li {
                text-align: left;
                float: none;
                padding: 0px;
                width: 100%; }
                .header-main .header-main-nav ul li ul li span {
                  display: table-cell;
                  vertical-align: top; }
                  .header-main .header-main-nav ul li ul li span.icon-container {
                    width: 25px;
                    padding-right: 15px; }
                .header-main .header-main-nav ul li ul li .icon {
                  width: 25px;
                  max-width: 25px;
                  display: inline-block;
                  margin-top: -2px; }
                .header-main .header-main-nav ul li ul li a {
                  min-width: 200px;
                  width: 200px;
                  display: table;
                  text-decoration: none;
                  padding: 7px;
                  font-weight: 300; }
                .header-main .header-main-nav ul li ul li:last-child a {
                  border-bottom: 0px; } }

.foot-nav {
  width: 50%;
  margin: 5px 10px 20px 10px;
  float: left; }
  .foot-nav a {
    display: block;
    text-align: left;
    margin-bottom: 10px; }
  @media (min-width: 769px) {
    .foot-nav {
      position: absolute;
      left: 10px;
      bottom: 20px;
      margin: 0; }
      .foot-nav a {
        display: inline-block;
        margin-right: 20px; } }

/*
*   Owl Carousel Owl Demo Theme 
*   v1.3.3
*/
.owl-controls .owl-buttons {
  display: inline-block; }
  .owl-controls .owl-buttons .owl-next, .owl-controls .owl-buttons .owl-prev {
    color: white;
    display: inline-block;
    zoom: 1;
    *display: inline;
    margin: 0 10px;
    width: 30px;
    line-height: 30px;
    font-size: 19px;
    -webkit-border-radius: 30px;
    -moz-border-radius: 30px;
    border-radius: 30px;
    background: #5d5d5d; }
    .owl-controls .owl-buttons .owl-next .icon, .owl-controls .owl-buttons .owl-prev .icon {
      display: inline-block;
      vertical-align: middle;
      margin-top: -1px; }
  .owl-controls .owl-buttons .owl-next .icon {
    margin-left: 2px; }

.owl-controls.clickable .owl-buttons div:hover {
  text-decoration: none; }

.owl-controls .owl-pagination {
  display: inline-block;
  vertical-align: middle;
  margin-bottom: -2px; }
  .owl-controls .owl-pagination .owl-page {
    display: inline-block;
    zoom: 1;
    *display: inline; }
    .owl-controls .owl-pagination .owl-page span {
      display: block;
      width: 14px;
      height: 14px;
      margin: 5px 4px;
      -webkit-border-radius: 20px;
      -moz-border-radius: 20px;
      border-radius: 20px;
      background: white; }
    .owl-controls .owl-pagination .owl-page.active span {
      background: #d74f4f; }

.owl-controls .owl-page span.owl-numbers {
  height: auto;
  width: auto;
  color: #FFF;
  padding: 2px 10px;
  font-size: 12px;
  -webkit-border-radius: 30px;
  -moz-border-radius: 30px;
  border-radius: 30px; }

.owl-item.loading {
  min-height: 150px;
  background: url(/scripts/libs/owlCarousel/AjaxLoader.gif) no-repeat center center; }

.wysiwyg {
  margin-bottom: 20px;
  font-family: "museo-sans", Tahoma, Segoe, sans-serif;
  line-height: 1.428;
  font-size: 16px; }

.masked, .masked-top, .masked-bottom {
  position: relative;
  overflow: hidden;
  z-index: 1; }

.mask-overlay {
  pointer-events: none; }

.masked-top {
  padding-top: 50px; }
  @media (min-width: 480px) {
    .masked-top {
      padding-top: 79px; } }
  @media (min-width: 768px) {
    .masked-top {
      padding-top: 125.4px; } }

.masked-top-overlay {
  margin-top: -50px; }
  @media (min-width: 480px) {
    .masked-top-overlay {
      margin-top: -79px; } }
  @media (min-width: 768px) {
    .masked-top-overlay {
      margin-top: -125.4px; } }

.masked-bottom {
  padding-bottom: 50px; }
  @media (min-width: 480px) {
    .masked-bottom {
      padding-bottom: 79px; } }
  @media (min-width: 768px) {
    .masked-bottom {
      padding-bottom: 125.4px; } }

.masked-bottom-overlay {
  margin-bottom: -50px; }
  @media (min-width: 480px) {
    .masked-bottom-overlay {
      margin-bottom: -79px; } }
  @media (min-width: 768px) {
    .masked-bottom-overlay {
      margin-bottom: -125.4px; } }

.mask-top-left.mask-invert:before, .mask-top-left:before {
  position: absolute;
  content: " ";
  width: 0;
  height: 0;
  border-style: solid;
  -moz-transform: scale(0.9999);
  top: auto;
  bottom: auto;
  pointer-events: none;
  border-top-color: transparent;
  border-right-color: transparent;
  border-bottom-color: transparent;
  border-left-color: transparent;
  border-top-color: rgba(255, 255, 255, 0);
  border-right-color: rgba(255, 255, 255, 0);
  border-bottom-color: rgba(255, 255, 255, 0);
  border-left-color: rgba(255, 255, 255, 0);
  border-top-width: 0;
  border-right-width: 0;
  border-bottom-width: 0;
  border-left-width: 0;
  border-left-color: white;
  top: 0;
  left: 50%;
  margin-left: -240px;
  border-left-width: 480px;
  border-bottom-width: 50px;
  /*
    @if $mode == 'extend' {
        bottom: 100%;
        border-top-width: $angle;
    }*/ }
  @media (min-width: 480px) {
    .mask-top-left.mask-invert:before, .mask-top-left:before {
      margin-left: -384px;
      border-left-width: 768px;
      border-bottom-width: 80px; } }
  @media (min-width: 768px) {
    .mask-top-left.mask-invert:before, .mask-top-left:before {
      margin-left: -614.4px;
      border-left-width: 1228.8px;
      border-bottom-width: 128px; } }

.mask-top-left.mask-gray:before {
  border-left-color: #dadada; }

.mask-top-right.mask-invert:before, .mask-top-right:before {
  position: absolute;
  content: " ";
  width: 0;
  height: 0;
  border-style: solid;
  -moz-transform: scale(0.9999);
  top: auto;
  bottom: auto;
  pointer-events: none;
  border-top-color: transparent;
  border-right-color: transparent;
  border-bottom-color: transparent;
  border-left-color: transparent;
  border-top-color: rgba(255, 255, 255, 0);
  border-right-color: rgba(255, 255, 255, 0);
  border-bottom-color: rgba(255, 255, 255, 0);
  border-left-color: rgba(255, 255, 255, 0);
  border-top-width: 0;
  border-right-width: 0;
  border-bottom-width: 0;
  border-left-width: 0;
  border-right-color: white;
  top: 0;
  right: 50%;
  margin-right: -240px;
  border-right-width: 480px;
  border-bottom-width: 50px;
  /*
    @if $mode == 'extend' {
        bottom: 100%;
        border-top-width: $angle;
    }*/ }
  @media (min-width: 480px) {
    .mask-top-right.mask-invert:before, .mask-top-right:before {
      margin-right: -384px;
      border-right-width: 768px;
      border-bottom-width: 80px; } }
  @media (min-width: 768px) {
    .mask-top-right.mask-invert:before, .mask-top-right:before {
      margin-right: -614.4px;
      border-right-width: 1228.8px;
      border-bottom-width: 128px; } }

.mask-top-right.mask-gray:before {
  border-right-color: #dadada; }

.mask-bottom-left.mask-invert:after, .mask-bottom-left:after {
  position: absolute;
  content: " ";
  width: 0;
  height: 0;
  border-style: solid;
  -moz-transform: scale(0.9999);
  top: auto;
  bottom: auto;
  pointer-events: none;
  border-top-color: transparent;
  border-right-color: transparent;
  border-bottom-color: transparent;
  border-left-color: transparent;
  border-top-color: rgba(255, 255, 255, 0);
  border-right-color: rgba(255, 255, 255, 0);
  border-bottom-color: rgba(255, 255, 255, 0);
  border-left-color: rgba(255, 255, 255, 0);
  border-top-width: 0;
  border-right-width: 0;
  border-bottom-width: 0;
  border-left-width: 0;
  border-left-color: white;
  bottom: 0;
  left: 50%;
  margin-left: -240px;
  border-left-width: 480px;
  border-top-width: 50px;
  /*
    @if $mode == 'extend' {
        top: 100%;
        border-bottom-width: $angle;
    }*/ }
  @media (min-width: 480px) {
    .mask-bottom-left.mask-invert:after, .mask-bottom-left:after {
      margin-left: -384px;
      border-left-width: 768px;
      border-top-width: 80px; } }
  @media (min-width: 768px) {
    .mask-bottom-left.mask-invert:after, .mask-bottom-left:after {
      margin-left: -614.4px;
      border-left-width: 1228.8px;
      border-top-width: 128px; } }

.mask-bottom-left.mask-gray:after {
  border-left-color: #dadada; }

.mask-bottom-right.mask-invert:after, .mask-bottom-right:after {
  position: absolute;
  content: " ";
  width: 0;
  height: 0;
  border-style: solid;
  -moz-transform: scale(0.9999);
  top: auto;
  bottom: auto;
  pointer-events: none;
  border-top-color: transparent;
  border-right-color: transparent;
  border-bottom-color: transparent;
  border-left-color: transparent;
  border-top-color: rgba(255, 255, 255, 0);
  border-right-color: rgba(255, 255, 255, 0);
  border-bottom-color: rgba(255, 255, 255, 0);
  border-left-color: rgba(255, 255, 255, 0);
  border-top-width: 0;
  border-right-width: 0;
  border-bottom-width: 0;
  border-left-width: 0;
  border-right-color: white;
  bottom: 0;
  right: 50%;
  margin-right: -240px;
  border-right-width: 480px;
  border-top-width: 50px;
  /*
    @if $mode == 'extend' {
        top: 100%;
        border-bottom-width: $angle;
    }*/ }
  @media (min-width: 480px) {
    .mask-bottom-right.mask-invert:after, .mask-bottom-right:after {
      margin-right: -384px;
      border-right-width: 768px;
      border-top-width: 80px; } }
  @media (min-width: 768px) {
    .mask-bottom-right.mask-invert:after, .mask-bottom-right:after {
      margin-right: -614.4px;
      border-right-width: 1228.8px;
      border-top-width: 128px; } }

.mask-bottom-right.mask-gray:after {
  border-right-color: #dadada; }

/*

// For all the angles used...

.mask-tr {
	&:before {
		content: " ";
		position: absolute;
		top: 0;
		right: 0;
		left: 0;
		height: 50px;
		background-image: url('../images/mask-top-right.png');
		background-size: 100% 100%;
		background-position: center center;
		//image-rendering: crisp-edges;
		//image-rendering: -webkit-optimize-contrast;
		image-rendering: crisp-edges;
	}
}


// Basically, work out ratio of degree to a circle (so, 36 degrees then 10% of a circle)
// Then, calc the circumference
// Then combine to get the height the mask should be by the degrees of a circle it has moved...
@function pi-distance($degree, $width: 1200px) {
	@return ($width * $pi) * (($degree * 2) / 360) + 1; // +1 for rounding purposes
}

%skew {
	content: " ";
	position: absolute;
	left: 0;
	right: 0;
	width: 100%;
	background: $white;
	overflow: visible;
}


.masked-white {
	&:after {
		background-color: $white;
	}

	&:before {
		background-color: $white;
	}
}

.mask-top-right {
	&:before {
		@extend %skew;
		top: 0;
		height: pi-distance($degree-desktop);
		//margin-top: - pi-distance($degree-desktop) / 2;
		-webkit-transform: skewY(3deg);
		-moz-transform: skewY(3deg);
		-ms-transform: skewY(3deg);
		-o-transform: skewY(3deg);
		transform: skewY(3deg);
		-webkit-transform-origin: 100% 0%;
		-ms-transform-origin: 100% 0%;
		transform-origin: 100% 0%;
	}
}

.mask-top-left {
	&:before {
		@extend %skew;
		top: 0;
		height: pi-distance($degree-desktop);
		//margin-top: - pi-distance($degree-desktop) / 2;
		-webkit-transform: skewY(-3deg);
		-moz-transform: skewY(-3deg);
		-ms-transform: skewY(-3deg);
		-o-transform: skewY(-3deg);
		transform: skewY(-3deg);
		-webkit-transform-origin: 0% 0%;
		-ms-transform-origin: 0% 0%;
		transform-origin: 0% 0%;
	}
}

.mask-bottom-right {
	&:after {
		@extend %skew;
		bottom: 0;
		height: pi-distance($degree-desktop);
		//margin-bottom: - pi-distance($degree-desktop) / 2;
		-webkit-transform: skewY(-3deg);
		-moz-transform: skewY(-3deg);
		-ms-transform: skewY(-3deg);
		-o-transform: skewY(-3deg);
		transform: skewY(-3deg);
		-webkit-transform-origin: 100% 100%;
		-ms-transform-origin: 100% 100%;
		transform-origin: 100% 100%;
	}
}

.mask-bottom-left {
	&:after {
		@extend %skew;
		bottom: 0;
		height: pi-distance($degree-desktop);
		//margin-bottom: - pi-distance($degree-desktop) / 2;
		-webkit-transform: skewY(3deg);
		-moz-transform: skewY(3deg);
		-ms-transform: skewY(3deg);
		-o-transform: skewY(3deg);
		transform: skewY(3deg);
		-webkit-transform-origin: 0% 100%;
		-ms-transform-origin: 0% 100%;
		transform-origin: 0% 100%;
	}
}

*/
.product-type-highlight h1, .product-type-highlight h2, .product-type-highlight h3, .product-type-highlight h4, .product-type-highlight h5, .product-type-highlight h5, .product-type-highlight h6 {
  color: #d74f4f; }

.product-type-highlight a {
  color: #d74f4f; }

.product-type-highlight .icon {
  color: #d74f4f; }

.product-type-highlight .btn {
  background-color: #d74f4f;
  color: white; }
  .product-type-highlight .btn .icon {
    color: white; }

.product-type-highlight .quote-wrapped:before, .product-type-highlight .quote-wrapped:after {
  color: #d74f4f; }

.product-type-highlight ul li:before {
  color: #d74f4f; }

.product-type-highlight .background-type {
  background-color: #d74f4f;
  color: white; }
  .product-type-highlight .background-type h1, .product-type-highlight .background-type h2, .product-type-highlight .background-type h3, .product-type-highlight .background-type h4, .product-type-highlight .background-type h5, .product-type-highlight .background-type h5, .product-type-highlight .background-type h6 {
    color: white; }
  .product-type-highlight .background-type ul li:before {
    color: white; }

.product-type-xp h1, .product-type-xp h2, .product-type-xp h3, .product-type-xp h4, .product-type-xp h5, .product-type-xp h5, .product-type-xp h6 {
  color: #e90000; }

.product-type-xp a {
  color: #e90000; }

.product-type-xp .icon {
  color: #e90000; }

.product-type-xp .btn {
  background-color: #e90000;
  color: white; }
  .product-type-xp .btn .icon {
    color: white; }

.product-type-xp .quote-wrapped:before, .product-type-xp .quote-wrapped:after {
  color: #e90000; }

.product-type-xp ul li:before {
  color: #e90000; }

.product-type-xp .background-type {
  background-color: #e90000;
  color: white; }
  .product-type-xp .background-type h1, .product-type-xp .background-type h2, .product-type-xp .background-type h3, .product-type-xp .background-type h4, .product-type-xp .background-type h5, .product-type-xp .background-type h5, .product-type-xp .background-type h6 {
    color: white; }
  .product-type-xp .background-type ul li:before {
    color: white; }

.product-type-xp-plus h1, .product-type-xp-plus h2, .product-type-xp-plus h3, .product-type-xp-plus h4, .product-type-xp-plus h5, .product-type-xp-plus h5, .product-type-xp-plus h6 {
  color: #c7c935; }

.product-type-xp-plus a {
  color: #c7c935; }

.product-type-xp-plus .icon {
  color: #c7c935; }

.product-type-xp-plus .btn {
  background-color: #c7c935;
  color: white; }
  .product-type-xp-plus .btn .icon {
    color: white; }

.product-type-xp-plus .quote-wrapped:before, .product-type-xp-plus .quote-wrapped:after {
  color: #c7c935; }

.product-type-xp-plus ul li:before {
  color: #c7c935; }

.product-type-xp-plus .background-type {
  background-color: #c7c935;
  color: white; }
  .product-type-xp-plus .background-type h1, .product-type-xp-plus .background-type h2, .product-type-xp-plus .background-type h3, .product-type-xp-plus .background-type h4, .product-type-xp-plus .background-type h5, .product-type-xp-plus .background-type h5, .product-type-xp-plus .background-type h6 {
    color: white; }
  .product-type-xp-plus .background-type ul li:before {
    color: white; }

.product-type-ca h1, .product-type-ca h2, .product-type-ca h3, .product-type-ca h4, .product-type-ca h5, .product-type-ca h5, .product-type-ca h6 {
  color: #99cc00; }

.product-type-ca a {
  color: #99cc00; }

.product-type-ca .icon {
  color: #99cc00; }

.product-type-ca .btn {
  background-color: #99cc00;
  color: white; }
  .product-type-ca .btn .icon {
    color: white; }

.product-type-ca .quote-wrapped:before, .product-type-ca .quote-wrapped:after {
  color: #99cc00; }

.product-type-ca ul li:before {
  color: #99cc00; }

.product-type-ca .background-type {
  background-color: #99cc00;
  color: white; }
  .product-type-ca .background-type h1, .product-type-ca .background-type h2, .product-type-ca .background-type h3, .product-type-ca .background-type h4, .product-type-ca .background-type h5, .product-type-ca .background-type h5, .product-type-ca .background-type h6 {
    color: white; }
  .product-type-ca .background-type ul li:before {
    color: white; }

.product-type-pq h1, .product-type-pq h2, .product-type-pq h3, .product-type-pq h4, .product-type-pq h5, .product-type-pq h5, .product-type-pq h6 {
  color: #e05a00; }

.product-type-pq a {
  color: #e05a00; }

.product-type-pq .icon {
  color: #e05a00; }

.product-type-pq .btn {
  background-color: #e05a00;
  color: white; }
  .product-type-pq .btn .icon {
    color: white; }

.product-type-pq .quote-wrapped:before, .product-type-pq .quote-wrapped:after {
  color: #e05a00; }

.product-type-pq ul li:before {
  color: #e05a00; }

.product-type-pq .background-type {
  background-color: #e05a00;
  color: white; }
  .product-type-pq .background-type h1, .product-type-pq .background-type h2, .product-type-pq .background-type h3, .product-type-pq .background-type h4, .product-type-pq .background-type h5, .product-type-pq .background-type h5, .product-type-pq .background-type h6 {
    color: white; }
  .product-type-pq .background-type ul li:before {
    color: white; }

.product-type-pl h1, .product-type-pl h2, .product-type-pl h3, .product-type-pl h4, .product-type-pl h5, .product-type-pl h5, .product-type-pl h6 {
  color: #c80000; }

.product-type-pl a {
  color: #c80000; }

.product-type-pl .icon {
  color: #c80000; }

.product-type-pl .btn {
  background-color: #c80000;
  color: white; }
  .product-type-pl .btn .icon {
    color: white; }

.product-type-pl .quote-wrapped:before, .product-type-pl .quote-wrapped:after {
  color: #c80000; }

.product-type-pl ul li:before {
  color: #c80000; }

.product-type-pl .background-type {
  background-color: #c80000;
  color: white; }
  .product-type-pl .background-type h1, .product-type-pl .background-type h2, .product-type-pl .background-type h3, .product-type-pl .background-type h4, .product-type-pl .background-type h5, .product-type-pl .background-type h5, .product-type-pl .background-type h6 {
    color: white; }
  .product-type-pl .background-type ul li:before {
    color: white; }

.product-type-ds h1, .product-type-ds h2, .product-type-ds h3, .product-type-ds h4, .product-type-ds h5, .product-type-ds h5, .product-type-ds h6 {
  color: #3366cb; }

.product-type-ds a {
  color: #3366cb; }

.product-type-ds .icon {
  color: #3366cb; }

.product-type-ds .btn {
  background-color: #3366cb;
  color: white; }
  .product-type-ds .btn .icon {
    color: white; }

.product-type-ds .quote-wrapped:before, .product-type-ds .quote-wrapped:after {
  color: #3366cb; }

.product-type-ds ul li:before {
  color: #3366cb; }

.product-type-ds .background-type {
  background-color: #3366cb;
  color: white; }
  .product-type-ds .background-type h1, .product-type-ds .background-type h2, .product-type-ds .background-type h3, .product-type-ds .background-type h4, .product-type-ds .background-type h5, .product-type-ds .background-type h5, .product-type-ds .background-type h6 {
    color: white; }
  .product-type-ds .background-type ul li:before {
    color: white; }

.product-type-sc h1, .product-type-sc h2, .product-type-sc h3, .product-type-sc h4, .product-type-sc h5, .product-type-sc h5, .product-type-sc h6 {
  color: #006496; }

.product-type-sc a {
  color: #006496; }

.product-type-sc .icon {
  color: #006496; }

.product-type-sc .btn {
  background-color: #006496;
  color: white; }
  .product-type-sc .btn .icon {
    color: white; }

.product-type-sc .quote-wrapped:before, .product-type-sc .quote-wrapped:after {
  color: #006496; }

.product-type-sc ul li:before {
  color: #006496; }

.product-type-sc .background-type {
  background-color: #006496;
  color: white; }
  .product-type-sc .background-type h1, .product-type-sc .background-type h2, .product-type-sc .background-type h3, .product-type-sc .background-type h4, .product-type-sc .background-type h5, .product-type-sc .background-type h5, .product-type-sc .background-type h6 {
    color: white; }
  .product-type-sc .background-type ul li:before {
    color: white; }

.product-type-el h1, .product-type-el h2, .product-type-el h3, .product-type-el h4, .product-type-el h5, .product-type-el h5, .product-type-el h6 {
  color: #006565; }

.product-type-el a {
  color: #006565; }

.product-type-el .icon {
  color: #006565; }

.product-type-el .btn {
  background-color: #006565;
  color: white; }
  .product-type-el .btn .icon {
    color: white; }

.product-type-el .quote-wrapped:before, .product-type-el .quote-wrapped:after {
  color: #006565; }

.product-type-el ul li:before {
  color: #006565; }

.product-type-el .background-type {
  background-color: #006565;
  color: white; }
  .product-type-el .background-type h1, .product-type-el .background-type h2, .product-type-el .background-type h3, .product-type-el .background-type h4, .product-type-el .background-type h5, .product-type-el .background-type h5, .product-type-el .background-type h6 {
    color: white; }
  .product-type-el .background-type ul li:before {
    color: white; }

.product-type-mi h1, .product-type-mi h2, .product-type-mi h3, .product-type-mi h4, .product-type-mi h5, .product-type-mi h5, .product-type-mi h6 {
  color: #00bb00; }

.product-type-mi a {
  color: #00bb00; }

.product-type-mi .icon {
  color: #00bb00; }

.product-type-mi .btn {
  background-color: #00bb00;
  color: white; }
  .product-type-mi .btn .icon {
    color: white; }

.product-type-mi .quote-wrapped:before, .product-type-mi .quote-wrapped:after {
  color: #00bb00; }

.product-type-mi ul li:before {
  color: #00bb00; }

.product-type-mi .background-type {
  background-color: #00bb00;
  color: white; }
  .product-type-mi .background-type h1, .product-type-mi .background-type h2, .product-type-mi .background-type h3, .product-type-mi .background-type h4, .product-type-mi .background-type h5, .product-type-mi .background-type h5, .product-type-mi .background-type h6 {
    color: white; }
  .product-type-mi .background-type ul li:before {
    color: white; }

.product-type-lo h1, .product-type-lo h2, .product-type-lo h3, .product-type-lo h4, .product-type-lo h5, .product-type-lo h5, .product-type-lo h6 {
  color: #6400c7; }

.product-type-lo a {
  color: #6400c7; }

.product-type-lo .icon {
  color: #6400c7; }

.product-type-lo .btn {
  background-color: #6400c7;
  color: white; }
  .product-type-lo .btn .icon {
    color: white; }

.product-type-lo .quote-wrapped:before, .product-type-lo .quote-wrapped:after {
  color: #6400c7; }

.product-type-lo ul li:before {
  color: #6400c7; }

.product-type-lo .background-type {
  background-color: #6400c7;
  color: white; }
  .product-type-lo .background-type h1, .product-type-lo .background-type h2, .product-type-lo .background-type h3, .product-type-lo .background-type h4, .product-type-lo .background-type h5, .product-type-lo .background-type h5, .product-type-lo .background-type h6 {
    color: white; }
  .product-type-lo .background-type ul li:before {
    color: white; }

.product-type-so h1, .product-type-so h2, .product-type-so h3, .product-type-so h4, .product-type-so h5, .product-type-so h5, .product-type-so h6 {
  color: #633495; }

.product-type-so a {
  color: #633495; }

.product-type-so .icon {
  color: #633495; }

.product-type-so .btn {
  background-color: #633495;
  color: white; }
  .product-type-so .btn .icon {
    color: white; }

.product-type-so .quote-wrapped:before, .product-type-so .quote-wrapped:after {
  color: #633495; }

.product-type-so ul li:before {
  color: #633495; }

.product-type-so .background-type {
  background-color: #633495;
  color: white; }
  .product-type-so .background-type h1, .product-type-so .background-type h2, .product-type-so .background-type h3, .product-type-so .background-type h4, .product-type-so .background-type h5, .product-type-so .background-type h5, .product-type-so .background-type h6 {
    color: white; }
  .product-type-so .background-type ul li:before {
    color: white; }

.product-type-po h1, .product-type-po h2, .product-type-po h3, .product-type-po h4, .product-type-po h5, .product-type-po h5, .product-type-po h6 {
  color: #5238c6; }

.product-type-po a {
  color: #5238c6; }

.product-type-po .icon {
  color: #5238c6; }

.product-type-po .btn {
  background-color: #5238c6;
  color: white; }
  .product-type-po .btn .icon {
    color: white; }

.product-type-po .quote-wrapped:before, .product-type-po .quote-wrapped:after {
  color: #5238c6; }

.product-type-po ul li:before {
  color: #5238c6; }

.product-type-po .background-type {
  background-color: #5238c6;
  color: white; }
  .product-type-po .background-type h1, .product-type-po .background-type h2, .product-type-po .background-type h3, .product-type-po .background-type h4, .product-type-po .background-type h5, .product-type-po .background-type h5, .product-type-po .background-type h6 {
    color: white; }
  .product-type-po .background-type ul li:before {
    color: white; }

.product-type-ne h1, .product-type-ne h2, .product-type-ne h3, .product-type-ne h4, .product-type-ne h5, .product-type-ne h5, .product-type-ne h6 {
  color: #f96400; }

.product-type-ne a {
  color: #f96400; }

.product-type-ne .icon {
  color: #f96400; }

.product-type-ne .btn {
  background-color: #f96400;
  color: white; }
  .product-type-ne .btn .icon {
    color: white; }

.product-type-ne .quote-wrapped:before, .product-type-ne .quote-wrapped:after {
  color: #f96400; }

.product-type-ne ul li:before {
  color: #f96400; }

.product-type-ne .background-type {
  background-color: #f96400;
  color: white; }
  .product-type-ne .background-type h1, .product-type-ne .background-type h2, .product-type-ne .background-type h3, .product-type-ne .background-type h4, .product-type-ne .background-type h5, .product-type-ne .background-type h5, .product-type-ne .background-type h6 {
    color: white; }
  .product-type-ne .background-type ul li:before {
    color: white; }

.product-type-v9 h1, .product-type-v9 h2, .product-type-v9 h3, .product-type-v9 h4, .product-type-v9 h5, .product-type-v9 h5, .product-type-v9 h6 {
  color: #417cb7; }

.product-type-v9 a {
  color: #417cb7; }

.product-type-v9 .icon {
  color: #417cb7; }

.product-type-v9 .btn {
  background-color: #417cb7;
  color: white; }
  .product-type-v9 .btn .icon {
    color: white; }

.product-type-v9 .quote-wrapped:before, .product-type-v9 .quote-wrapped:after {
  color: #417cb7; }

.product-type-v9 ul li:before {
  color: #417cb7; }

.product-type-v9 .background-type {
  background-color: #417cb7;
  color: white; }
  .product-type-v9 .background-type h1, .product-type-v9 .background-type h2, .product-type-v9 .background-type h3, .product-type-v9 .background-type h4, .product-type-v9 .background-type h5, .product-type-v9 .background-type h5, .product-type-v9 .background-type h6 {
    color: white; }
  .product-type-v9 .background-type ul li:before {
    color: white; }

.product-type-in h1, .product-type-in h2, .product-type-in h3, .product-type-in h4, .product-type-in h5, .product-type-in h5, .product-type-in h6 {
  color: #4343fd; }

.product-type-in a {
  color: #4343fd; }

.product-type-in .icon {
  color: #4343fd; }

.product-type-in .btn {
  background-color: #4343fd;
  color: white; }
  .product-type-in .btn .icon {
    color: white; }

.product-type-in .quote-wrapped:before, .product-type-in .quote-wrapped:after {
  color: #4343fd; }

.product-type-in ul li:before {
  color: #4343fd; }

.product-type-in .background-type {
  background-color: #4343fd;
  color: white; }
  .product-type-in .background-type h1, .product-type-in .background-type h2, .product-type-in .background-type h3, .product-type-in .background-type h4, .product-type-in .background-type h5, .product-type-in .background-type h5, .product-type-in .background-type h6 {
    color: white; }
  .product-type-in .background-type ul li:before {
    color: white; }

.product-type-wb h1, .product-type-wb h2, .product-type-wb h3, .product-type-wb h4, .product-type-wb h5, .product-type-wb h5, .product-type-wb h6 {
  color: #0e8d33; }

.product-type-wb a {
  color: #0e8d33; }

.product-type-wb .icon {
  color: #0e8d33; }

.product-type-wb .btn {
  background-color: #0e8d33;
  color: white; }
  .product-type-wb .btn .icon {
    color: white; }

.product-type-wb .quote-wrapped:before, .product-type-wb .quote-wrapped:after {
  color: #0e8d33; }

.product-type-wb ul li:before {
  color: #0e8d33; }

.product-type-wb .background-type {
  background-color: #0e8d33;
  color: white; }
  .product-type-wb .background-type h1, .product-type-wb .background-type h2, .product-type-wb .background-type h3, .product-type-wb .background-type h4, .product-type-wb .background-type h5, .product-type-wb .background-type h5, .product-type-wb .background-type h6 {
    color: white; }
  .product-type-wb .background-type ul li:before {
    color: white; }

.product-type-pa .btn {
  background-color: #800000;
  color: white; }

.modal {
  position: fixed;
  display: none;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.7);
  z-index: 999;
  cursor: pointer;
  overflow-y: auto; }
  .modal a.modal-close {
    position: absolute;
    top: -30px;
    color: white;
    right: 0px;
    font-size: 23px;
    display: block; }
    .modal a.modal-close:hover, .modal a.modal-close:active {
      text-decoration: none;
      cursor: pointer; }
  .modal .modal-inner {
    position: absolute;
    top: 20%;
    left: 10px;
    right: 10px;
    cursor: pointer;
    margin-bottom: 20px; }
  .modal .modal-content {
    background-color: white;
    position: relative;
    margin: auto;
    max-width: 100%;
    padding: 10px;
    cursor: auto; }
    @media (min-width: 480px) {
      .modal .modal-content {
        padding: 25px;
        max-width: 80%; } }
    @media (min-width: 769px) {
      .modal .modal-content {
        max-width: 700px; } }

.modal-open {
  overflow: hidden; }

/*!
Animate.css - http://daneden.me/animate
Licensed under the MIT license - http://opensource.org/licenses/MIT

Copyright (c) 2015 Daniel Eden
*/
.animated {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both; }

.animated.infinite {
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite; }

.animated.hinge {
  -webkit-animation-duration: 2s;
  animation-duration: 2s; }

.animated.bounceIn,
.animated.bounceOut {
  -webkit-animation-duration: .75s;
  animation-duration: .75s; }

.animated.flipOutX,
.animated.flipOutY {
  -webkit-animation-duration: .75s;
  animation-duration: .75s; }

@-webkit-keyframes bounce {
  0%, 20%, 53%, 80%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  40%, 43% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -30px, 0);
    transform: translate3d(0, -30px, 0); }
  70% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -15px, 0);
    transform: translate3d(0, -15px, 0); }
  90% {
    -webkit-transform: translate3d(0, -4px, 0);
    transform: translate3d(0, -4px, 0); } }

@keyframes bounce {
  0%, 20%, 53%, 80%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  40%, 43% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -30px, 0);
    transform: translate3d(0, -30px, 0); }
  70% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -15px, 0);
    transform: translate3d(0, -15px, 0); }
  90% {
    -webkit-transform: translate3d(0, -4px, 0);
    transform: translate3d(0, -4px, 0); } }

.bounce {
  -webkit-animation-name: bounce;
  animation-name: bounce;
  -webkit-transform-origin: center bottom;
  transform-origin: center bottom; }

@-webkit-keyframes flash {
  0%, 50%, 100% {
    opacity: 1; }
  25%, 75% {
    opacity: 0; } }

@keyframes flash {
  0%, 50%, 100% {
    opacity: 1; }
  25%, 75% {
    opacity: 0; } }

.flash {
  -webkit-animation-name: flash;
  animation-name: flash; }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes pulse {
  0% {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  50% {
    -webkit-transform: scale3d(1.05, 1.05, 1.05);
    transform: scale3d(1.05, 1.05, 1.05); }
  100% {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }

@keyframes pulse {
  0% {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  50% {
    -webkit-transform: scale3d(1.05, 1.05, 1.05);
    transform: scale3d(1.05, 1.05, 1.05); }
  100% {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }

.pulse {
  -webkit-animation-name: pulse;
  animation-name: pulse; }

@-webkit-keyframes rubberBand {
  0% {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  30% {
    -webkit-transform: scale3d(1.25, 0.75, 1);
    transform: scale3d(1.25, 0.75, 1); }
  40% {
    -webkit-transform: scale3d(0.75, 1.25, 1);
    transform: scale3d(0.75, 1.25, 1); }
  50% {
    -webkit-transform: scale3d(1.15, 0.85, 1);
    transform: scale3d(1.15, 0.85, 1); }
  65% {
    -webkit-transform: scale3d(0.95, 1.05, 1);
    transform: scale3d(0.95, 1.05, 1); }
  75% {
    -webkit-transform: scale3d(1.05, 0.95, 1);
    transform: scale3d(1.05, 0.95, 1); }
  100% {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }

@keyframes rubberBand {
  0% {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  30% {
    -webkit-transform: scale3d(1.25, 0.75, 1);
    transform: scale3d(1.25, 0.75, 1); }
  40% {
    -webkit-transform: scale3d(0.75, 1.25, 1);
    transform: scale3d(0.75, 1.25, 1); }
  50% {
    -webkit-transform: scale3d(1.15, 0.85, 1);
    transform: scale3d(1.15, 0.85, 1); }
  65% {
    -webkit-transform: scale3d(0.95, 1.05, 1);
    transform: scale3d(0.95, 1.05, 1); }
  75% {
    -webkit-transform: scale3d(1.05, 0.95, 1);
    transform: scale3d(1.05, 0.95, 1); }
  100% {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }

.rubberBand {
  -webkit-animation-name: rubberBand;
  animation-name: rubberBand; }

@-webkit-keyframes shake {
  0%, 100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0); }
  20%, 40%, 60%, 80% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0); } }

@keyframes shake {
  0%, 100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0); }
  20%, 40%, 60%, 80% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0); } }

.shake {
  -webkit-animation-name: shake;
  animation-name: shake; }

@-webkit-keyframes swing {
  20% {
    -webkit-transform: rotate3d(0, 0, 1, 15deg);
    transform: rotate3d(0, 0, 1, 15deg); }
  40% {
    -webkit-transform: rotate3d(0, 0, 1, -10deg);
    transform: rotate3d(0, 0, 1, -10deg); }
  60% {
    -webkit-transform: rotate3d(0, 0, 1, 5deg);
    transform: rotate3d(0, 0, 1, 5deg); }
  80% {
    -webkit-transform: rotate3d(0, 0, 1, -5deg);
    transform: rotate3d(0, 0, 1, -5deg); }
  100% {
    -webkit-transform: rotate3d(0, 0, 1, 0deg);
    transform: rotate3d(0, 0, 1, 0deg); } }

@keyframes swing {
  20% {
    -webkit-transform: rotate3d(0, 0, 1, 15deg);
    transform: rotate3d(0, 0, 1, 15deg); }
  40% {
    -webkit-transform: rotate3d(0, 0, 1, -10deg);
    transform: rotate3d(0, 0, 1, -10deg); }
  60% {
    -webkit-transform: rotate3d(0, 0, 1, 5deg);
    transform: rotate3d(0, 0, 1, 5deg); }
  80% {
    -webkit-transform: rotate3d(0, 0, 1, -5deg);
    transform: rotate3d(0, 0, 1, -5deg); }
  100% {
    -webkit-transform: rotate3d(0, 0, 1, 0deg);
    transform: rotate3d(0, 0, 1, 0deg); } }

.swing {
  -webkit-transform-origin: top center;
  transform-origin: top center;
  -webkit-animation-name: swing;
  animation-name: swing; }

@-webkit-keyframes tada {
  0% {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  10%, 20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); }
  30%, 50%, 70%, 90% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); }
  40%, 60%, 80% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); }
  100% {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }

@keyframes tada {
  0% {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  10%, 20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); }
  30%, 50%, 70%, 90% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); }
  40%, 60%, 80% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); }
  100% {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }

.tada {
  -webkit-animation-name: tada;
  animation-name: tada; }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes wobble {
  0% {
    -webkit-transform: none;
    transform: none; }
  15% {
    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); }
  30% {
    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); }
  45% {
    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); }
  60% {
    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); }
  75% {
    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); }
  100% {
    -webkit-transform: none;
    transform: none; } }

@keyframes wobble {
  0% {
    -webkit-transform: none;
    transform: none; }
  15% {
    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); }
  30% {
    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); }
  45% {
    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); }
  60% {
    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); }
  75% {
    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); }
  100% {
    -webkit-transform: none;
    transform: none; } }

.wobble {
  -webkit-animation-name: wobble;
  animation-name: wobble; }

@-webkit-keyframes jello {
  11.1% {
    -webkit-transform: none;
    transform: none; }
  22.2% {
    -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
    transform: skewX(-12.5deg) skewY(-12.5deg); }
  33.3% {
    -webkit-transform: skewX(6.25deg) skewY(6.25deg);
    transform: skewX(6.25deg) skewY(6.25deg); }
  44.4% {
    -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
    transform: skewX(-3.125deg) skewY(-3.125deg); }
  55.5% {
    -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
    transform: skewX(1.5625deg) skewY(1.5625deg); }
  66.6% {
    -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
    transform: skewX(-0.78125deg) skewY(-0.78125deg); }
  77.7% {
    -webkit-transform: skewX(0.39063deg) skewY(0.39063deg);
    transform: skewX(0.39063deg) skewY(0.39063deg); }
  88.8% {
    -webkit-transform: skewX(-0.19531deg) skewY(-0.19531deg);
    transform: skewX(-0.19531deg) skewY(-0.19531deg); }
  100% {
    -webkit-transform: none;
    transform: none; } }

@keyframes jello {
  11.1% {
    -webkit-transform: none;
    transform: none; }
  22.2% {
    -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
    transform: skewX(-12.5deg) skewY(-12.5deg); }
  33.3% {
    -webkit-transform: skewX(6.25deg) skewY(6.25deg);
    transform: skewX(6.25deg) skewY(6.25deg); }
  44.4% {
    -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
    transform: skewX(-3.125deg) skewY(-3.125deg); }
  55.5% {
    -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
    transform: skewX(1.5625deg) skewY(1.5625deg); }
  66.6% {
    -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
    transform: skewX(-0.78125deg) skewY(-0.78125deg); }
  77.7% {
    -webkit-transform: skewX(0.39063deg) skewY(0.39063deg);
    transform: skewX(0.39063deg) skewY(0.39063deg); }
  88.8% {
    -webkit-transform: skewX(-0.19531deg) skewY(-0.19531deg);
    transform: skewX(-0.19531deg) skewY(-0.19531deg); }
  100% {
    -webkit-transform: none;
    transform: none; } }

.jello {
  -webkit-animation-name: jello;
  animation-name: jello;
  -webkit-transform-origin: center;
  transform-origin: center; }

@-webkit-keyframes bounceIn {
  0%, 20%, 40%, 60%, 80%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  20% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1); }
  40% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03, 1.03, 1.03);
    transform: scale3d(1.03, 1.03, 1.03); }
  80% {
    -webkit-transform: scale3d(0.97, 0.97, 0.97);
    transform: scale3d(0.97, 0.97, 0.97); }
  100% {
    opacity: 1;
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }

@keyframes bounceIn {
  0%, 20%, 40%, 60%, 80%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  20% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1); }
  40% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03, 1.03, 1.03);
    transform: scale3d(1.03, 1.03, 1.03); }
  80% {
    -webkit-transform: scale3d(0.97, 0.97, 0.97);
    transform: scale3d(0.97, 0.97, 0.97); }
  100% {
    opacity: 1;
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }

.bounceIn {
  -webkit-animation-name: bounceIn;
  animation-name: bounceIn; }

@-webkit-keyframes bounceInDown {
  0%, 60%, 75%, 90%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -3000px, 0);
    transform: translate3d(0, -3000px, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, 25px, 0);
    transform: translate3d(0, 25px, 0); }
  75% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0); }
  90% {
    -webkit-transform: translate3d(0, 5px, 0);
    transform: translate3d(0, 5px, 0); }
  100% {
    -webkit-transform: none;
    transform: none; } }

@keyframes bounceInDown {
  0%, 60%, 75%, 90%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -3000px, 0);
    transform: translate3d(0, -3000px, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, 25px, 0);
    transform: translate3d(0, 25px, 0); }
  75% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0); }
  90% {
    -webkit-transform: translate3d(0, 5px, 0);
    transform: translate3d(0, 5px, 0); }
  100% {
    -webkit-transform: none;
    transform: none; } }

.bounceInDown {
  -webkit-animation-name: bounceInDown;
  animation-name: bounceInDown; }

@-webkit-keyframes bounceInLeft {
  0%, 60%, 75%, 90%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-3000px, 0, 0);
    transform: translate3d(-3000px, 0, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(25px, 0, 0);
    transform: translate3d(25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(5px, 0, 0);
    transform: translate3d(5px, 0, 0); }
  100% {
    -webkit-transform: none;
    transform: none; } }

@keyframes bounceInLeft {
  0%, 60%, 75%, 90%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-3000px, 0, 0);
    transform: translate3d(-3000px, 0, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(25px, 0, 0);
    transform: translate3d(25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(5px, 0, 0);
    transform: translate3d(5px, 0, 0); }
  100% {
    -webkit-transform: none;
    transform: none; } }

.bounceInLeft {
  -webkit-animation-name: bounceInLeft;
  animation-name: bounceInLeft; }

@-webkit-keyframes bounceInRight {
  0%, 60%, 75%, 90%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(3000px, 0, 0);
    transform: translate3d(3000px, 0, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(-25px, 0, 0);
    transform: translate3d(-25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(-5px, 0, 0);
    transform: translate3d(-5px, 0, 0); }
  100% {
    -webkit-transform: none;
    transform: none; } }

@keyframes bounceInRight {
  0%, 60%, 75%, 90%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(3000px, 0, 0);
    transform: translate3d(3000px, 0, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(-25px, 0, 0);
    transform: translate3d(-25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(-5px, 0, 0);
    transform: translate3d(-5px, 0, 0); }
  100% {
    -webkit-transform: none;
    transform: none; } }

.bounceInRight {
  -webkit-animation-name: bounceInRight;
  animation-name: bounceInRight; }

@-webkit-keyframes bounceInUp {
  0%, 60%, 75%, 90%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 3000px, 0);
    transform: translate3d(0, 3000px, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0); }
  75% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0); }
  90% {
    -webkit-transform: translate3d(0, -5px, 0);
    transform: translate3d(0, -5px, 0); }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

@keyframes bounceInUp {
  0%, 60%, 75%, 90%, 100% {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 3000px, 0);
    transform: translate3d(0, 3000px, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0); }
  75% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0); }
  90% {
    -webkit-transform: translate3d(0, -5px, 0);
    transform: translate3d(0, -5px, 0); }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

.bounceInUp {
  -webkit-animation-name: bounceInUp;
  animation-name: bounceInUp; }

@-webkit-keyframes bounceOut {
  20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9); }
  50%, 55% {
    opacity: 1;
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1); }
  100% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); } }

@keyframes bounceOut {
  20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9); }
  50%, 55% {
    opacity: 1;
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1); }
  100% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); } }

.bounceOut {
  -webkit-animation-name: bounceOut;
  animation-name: bounceOut; }

@-webkit-keyframes bounceOutDown {
  20% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0); }
  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0); }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); } }

@keyframes bounceOutDown {
  20% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0); }
  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0); }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); } }

.bounceOutDown {
  -webkit-animation-name: bounceOutDown;
  animation-name: bounceOutDown; }

@-webkit-keyframes bounceOutLeft {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(20px, 0, 0);
    transform: translate3d(20px, 0, 0); }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); } }

@keyframes bounceOutLeft {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(20px, 0, 0);
    transform: translate3d(20px, 0, 0); }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); } }

.bounceOutLeft {
  -webkit-animation-name: bounceOutLeft;
  animation-name: bounceOutLeft; }

@-webkit-keyframes bounceOutRight {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(-20px, 0, 0);
    transform: translate3d(-20px, 0, 0); }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); } }

@keyframes bounceOutRight {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(-20px, 0, 0);
    transform: translate3d(-20px, 0, 0); }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); } }

.bounceOutRight {
  -webkit-animation-name: bounceOutRight;
  animation-name: bounceOutRight; }

@-webkit-keyframes bounceOutUp {
  20% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0); }
  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, 20px, 0);
    transform: translate3d(0, 20px, 0); }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); } }

@keyframes bounceOutUp {
  20% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0); }
  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, 20px, 0);
    transform: translate3d(0, 20px, 0); }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); } }

.bounceOutUp {
  -webkit-animation-name: bounceOutUp;
  animation-name: bounceOutUp; }

@-webkit-keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

.fadeIn {
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn; }

@-webkit-keyframes fadeInDown {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInDown {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInDown {
  -webkit-animation-name: fadeInDown;
  animation-name: fadeInDown; }

@-webkit-keyframes fadeInDownBig {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInDownBig {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInDownBig {
  -webkit-animation-name: fadeInDownBig;
  animation-name: fadeInDownBig; }

@-webkit-keyframes fadeInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInLeft {
  -webkit-animation-name: fadeInLeft;
  animation-name: fadeInLeft; }

@-webkit-keyframes fadeInLeftBig {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInLeftBig {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInLeftBig {
  -webkit-animation-name: fadeInLeftBig;
  animation-name: fadeInLeftBig; }

@-webkit-keyframes fadeInRight {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInRight {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInRight {
  -webkit-animation-name: fadeInRight;
  animation-name: fadeInRight; }

@-webkit-keyframes fadeInRightBig {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInRightBig {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInRightBig {
  -webkit-animation-name: fadeInRightBig;
  animation-name: fadeInRightBig; }

@-webkit-keyframes fadeInUp {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInUp {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInUp {
  -webkit-animation-name: fadeInUp;
  animation-name: fadeInUp; }

@-webkit-keyframes fadeInUpBig {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInUpBig {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInUpBig {
  -webkit-animation-name: fadeInUpBig;
  animation-name: fadeInUpBig; }

@-webkit-keyframes fadeOut {
  0% {
    opacity: 1; }
  100% {
    opacity: 0; } }

@keyframes fadeOut {
  0% {
    opacity: 1; }
  100% {
    opacity: 0; } }

.fadeOut {
  -webkit-animation-name: fadeOut;
  animation-name: fadeOut; }

@-webkit-keyframes fadeOutDown {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); } }

@keyframes fadeOutDown {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); } }

.fadeOutDown {
  -webkit-animation-name: fadeOutDown;
  animation-name: fadeOutDown; }

@-webkit-keyframes fadeOutDownBig {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); } }

@keyframes fadeOutDownBig {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); } }

.fadeOutDownBig {
  -webkit-animation-name: fadeOutDownBig;
  animation-name: fadeOutDownBig; }

@-webkit-keyframes fadeOutLeft {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); } }

@keyframes fadeOutLeft {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); } }

.fadeOutLeft {
  -webkit-animation-name: fadeOutLeft;
  animation-name: fadeOutLeft; }

@-webkit-keyframes fadeOutLeftBig {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); } }

@keyframes fadeOutLeftBig {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); } }

.fadeOutLeftBig {
  -webkit-animation-name: fadeOutLeftBig;
  animation-name: fadeOutLeftBig; }

@-webkit-keyframes fadeOutRight {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); } }

@keyframes fadeOutRight {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); } }

.fadeOutRight {
  -webkit-animation-name: fadeOutRight;
  animation-name: fadeOutRight; }

@-webkit-keyframes fadeOutRightBig {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); } }

@keyframes fadeOutRightBig {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); } }

.fadeOutRightBig {
  -webkit-animation-name: fadeOutRightBig;
  animation-name: fadeOutRightBig; }

@-webkit-keyframes fadeOutUp {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }

@keyframes fadeOutUp {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }

.fadeOutUp {
  -webkit-animation-name: fadeOutUp;
  animation-name: fadeOutUp; }

@-webkit-keyframes fadeOutUpBig {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); } }

@keyframes fadeOutUpBig {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); } }

.fadeOutUpBig {
  -webkit-animation-name: fadeOutUpBig;
  animation-name: fadeOutUpBig; }

@-webkit-keyframes flip {
  0% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  40% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  50% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  80% {
    -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
    transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  100% {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; } }

@keyframes flip {
  0% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  40% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  50% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  80% {
    -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
    transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  100% {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; } }

.animated.flip {
  -webkit-backface-visibility: visible;
  backface-visibility: visible;
  -webkit-animation-name: flip;
  animation-name: flip; }

@-webkit-keyframes flipInX {
  0% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  60% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1; }
  80% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg); }
  100% {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); } }

@keyframes flipInX {
  0% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  60% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1; }
  80% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg); }
  100% {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); } }

.flipInX {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipInX;
  animation-name: flipInX; }

@-webkit-keyframes flipInY {
  0% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  60% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    opacity: 1; }
  80% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -5deg); }
  100% {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); } }

@keyframes flipInY {
  0% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  60% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    opacity: 1; }
  80% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -5deg); }
  100% {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); } }

.flipInY {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipInY;
  animation-name: flipInY; }

@-webkit-keyframes flipOutX {
  0% {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); }
  30% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1; }
  100% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0; } }

@keyframes flipOutX {
  0% {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); }
  30% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1; }
  100% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0; } }

.flipOutX {
  -webkit-animation-name: flipOutX;
  animation-name: flipOutX;
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important; }

@-webkit-keyframes flipOutY {
  0% {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); }
  30% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    opacity: 1; }
  100% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    opacity: 0; } }

@keyframes flipOutY {
  0% {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); }
  30% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    opacity: 1; }
  100% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    opacity: 0; } }

.flipOutY {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipOutY;
  animation-name: flipOutY; }

@-webkit-keyframes lightSpeedIn {
  0% {
    -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
    transform: translate3d(100%, 0, 0) skewX(-30deg);
    opacity: 0; }
  60% {
    -webkit-transform: skewX(20deg);
    transform: skewX(20deg);
    opacity: 1; }
  80% {
    -webkit-transform: skewX(-5deg);
    transform: skewX(-5deg);
    opacity: 1; }
  100% {
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

@keyframes lightSpeedIn {
  0% {
    -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
    transform: translate3d(100%, 0, 0) skewX(-30deg);
    opacity: 0; }
  60% {
    -webkit-transform: skewX(20deg);
    transform: skewX(20deg);
    opacity: 1; }
  80% {
    -webkit-transform: skewX(-5deg);
    transform: skewX(-5deg);
    opacity: 1; }
  100% {
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

.lightSpeedIn {
  -webkit-animation-name: lightSpeedIn;
  animation-name: lightSpeedIn;
  -webkit-animation-timing-function: ease-out;
  animation-timing-function: ease-out; }

@-webkit-keyframes lightSpeedOut {
  0% {
    opacity: 1; }
  100% {
    -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
    transform: translate3d(100%, 0, 0) skewX(30deg);
    opacity: 0; } }

@keyframes lightSpeedOut {
  0% {
    opacity: 1; }
  100% {
    -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
    transform: translate3d(100%, 0, 0) skewX(30deg);
    opacity: 0; } }

.lightSpeedOut {
  -webkit-animation-name: lightSpeedOut;
  animation-name: lightSpeedOut;
  -webkit-animation-timing-function: ease-in;
  animation-timing-function: ease-in; }

@-webkit-keyframes rotateIn {
  0% {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, -200deg);
    transform: rotate3d(0, 0, 1, -200deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

@keyframes rotateIn {
  0% {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, -200deg);
    transform: rotate3d(0, 0, 1, -200deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

.rotateIn {
  -webkit-animation-name: rotateIn;
  animation-name: rotateIn; }

@-webkit-keyframes rotateInDownLeft {
  0% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

@keyframes rotateInDownLeft {
  0% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

.rotateInDownLeft {
  -webkit-animation-name: rotateInDownLeft;
  animation-name: rotateInDownLeft; }

@-webkit-keyframes rotateInDownRight {
  0% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

@keyframes rotateInDownRight {
  0% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

.rotateInDownRight {
  -webkit-animation-name: rotateInDownRight;
  animation-name: rotateInDownRight; }

@-webkit-keyframes rotateInUpLeft {
  0% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

@keyframes rotateInUpLeft {
  0% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

.rotateInUpLeft {
  -webkit-animation-name: rotateInUpLeft;
  animation-name: rotateInUpLeft; }

@-webkit-keyframes rotateInUpRight {
  0% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -90deg);
    transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

@keyframes rotateInUpRight {
  0% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -90deg);
    transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0; }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

.rotateInUpRight {
  -webkit-animation-name: rotateInUpRight;
  animation-name: rotateInUpRight; }

@-webkit-keyframes rotateOut {
  0% {
    -webkit-transform-origin: center;
    transform-origin: center;
    opacity: 1; }
  100% {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, 200deg);
    transform: rotate3d(0, 0, 1, 200deg);
    opacity: 0; } }

@keyframes rotateOut {
  0% {
    -webkit-transform-origin: center;
    transform-origin: center;
    opacity: 1; }
  100% {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, 200deg);
    transform: rotate3d(0, 0, 1, 200deg);
    opacity: 0; } }

.rotateOut {
  -webkit-animation-name: rotateOut;
  animation-name: rotateOut; }

@-webkit-keyframes rotateOutDownLeft {
  0% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1; }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; } }

@keyframes rotateOutDownLeft {
  0% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1; }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; } }

.rotateOutDownLeft {
  -webkit-animation-name: rotateOutDownLeft;
  animation-name: rotateOutDownLeft; }

@-webkit-keyframes rotateOutDownRight {
  0% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1; }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; } }

@keyframes rotateOutDownRight {
  0% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1; }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; } }

.rotateOutDownRight {
  -webkit-animation-name: rotateOutDownRight;
  animation-name: rotateOutDownRight; }

@-webkit-keyframes rotateOutUpLeft {
  0% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1; }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; } }

@keyframes rotateOutUpLeft {
  0% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1; }
  100% {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; } }

.rotateOutUpLeft {
  -webkit-animation-name: rotateOutUpLeft;
  animation-name: rotateOutUpLeft; }

@-webkit-keyframes rotateOutUpRight {
  0% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1; }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 90deg);
    transform: rotate3d(0, 0, 1, 90deg);
    opacity: 0; } }

@keyframes rotateOutUpRight {
  0% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1; }
  100% {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 90deg);
    transform: rotate3d(0, 0, 1, 90deg);
    opacity: 0; } }

.rotateOutUpRight {
  -webkit-animation-name: rotateOutUpRight;
  animation-name: rotateOutUpRight; }

@-webkit-keyframes hinge {
  0% {
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out; }
  20%, 60% {
    -webkit-transform: rotate3d(0, 0, 1, 80deg);
    transform: rotate3d(0, 0, 1, 80deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out; }
  40%, 80% {
    -webkit-transform: rotate3d(0, 0, 1, 60deg);
    transform: rotate3d(0, 0, 1, 60deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    opacity: 1; }
  100% {
    -webkit-transform: translate3d(0, 700px, 0);
    transform: translate3d(0, 700px, 0);
    opacity: 0; } }

@keyframes hinge {
  0% {
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out; }
  20%, 60% {
    -webkit-transform: rotate3d(0, 0, 1, 80deg);
    transform: rotate3d(0, 0, 1, 80deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out; }
  40%, 80% {
    -webkit-transform: rotate3d(0, 0, 1, 60deg);
    transform: rotate3d(0, 0, 1, 60deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    opacity: 1; }
  100% {
    -webkit-transform: translate3d(0, 700px, 0);
    transform: translate3d(0, 700px, 0);
    opacity: 0; } }

.hinge {
  -webkit-animation-name: hinge;
  animation-name: hinge; }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes rollIn {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes rollIn {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.rollIn {
  -webkit-animation-name: rollIn;
  animation-name: rollIn; }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes rollOut {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } }

@keyframes rollOut {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } }

.rollOut {
  -webkit-animation-name: rollOut;
  animation-name: rollOut; }

@-webkit-keyframes zoomIn {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  50% {
    opacity: 1; } }

@keyframes zoomIn {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  50% {
    opacity: 1; } }

.zoomIn {
  -webkit-animation-name: zoomIn;
  animation-name: zoomIn; }

@-webkit-keyframes zoomInDown {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomInDown {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

.zoomInDown {
  -webkit-animation-name: zoomInDown;
  animation-name: zoomInDown; }

@-webkit-keyframes zoomInLeft {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomInLeft {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

.zoomInLeft {
  -webkit-animation-name: zoomInLeft;
  animation-name: zoomInLeft; }

@-webkit-keyframes zoomInRight {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomInRight {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

.zoomInRight {
  -webkit-animation-name: zoomInRight;
  animation-name: zoomInRight; }

@-webkit-keyframes zoomInUp {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomInUp {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

.zoomInUp {
  -webkit-animation-name: zoomInUp;
  animation-name: zoomInUp; }

@-webkit-keyframes zoomOut {
  0% {
    opacity: 1; }
  50% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  100% {
    opacity: 0; } }

@keyframes zoomOut {
  0% {
    opacity: 1; }
  50% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  100% {
    opacity: 0; } }

.zoomOut {
  -webkit-animation-name: zoomOut;
  animation-name: zoomOut; }

@-webkit-keyframes zoomOutDown {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  100% {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomOutDown {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  100% {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

.zoomOutDown {
  -webkit-animation-name: zoomOutDown;
  animation-name: zoomOutDown; }

@-webkit-keyframes zoomOutLeft {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); }
  100% {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
    transform: scale(0.1) translate3d(-2000px, 0, 0);
    -webkit-transform-origin: left center;
    transform-origin: left center; } }

@keyframes zoomOutLeft {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); }
  100% {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
    transform: scale(0.1) translate3d(-2000px, 0, 0);
    -webkit-transform-origin: left center;
    transform-origin: left center; } }

.zoomOutLeft {
  -webkit-animation-name: zoomOutLeft;
  animation-name: zoomOutLeft; }

@-webkit-keyframes zoomOutRight {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); }
  100% {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
    transform: scale(0.1) translate3d(2000px, 0, 0);
    -webkit-transform-origin: right center;
    transform-origin: right center; } }

@keyframes zoomOutRight {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); }
  100% {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
    transform: scale(0.1) translate3d(2000px, 0, 0);
    -webkit-transform-origin: right center;
    transform-origin: right center; } }

.zoomOutRight {
  -webkit-animation-name: zoomOutRight;
  animation-name: zoomOutRight; }

@-webkit-keyframes zoomOutUp {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  100% {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomOutUp {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  100% {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

.zoomOutUp {
  -webkit-animation-name: zoomOutUp;
  animation-name: zoomOutUp; }

@-webkit-keyframes slideInDown {
  0% {
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
    visibility: visible; }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

@keyframes slideInDown {
  0% {
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
    visibility: visible; }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

.slideInDown {
  -webkit-animation-name: slideInDown;
  animation-name: slideInDown; }

@-webkit-keyframes slideInLeft {
  0% {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    visibility: visible; }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

@keyframes slideInLeft {
  0% {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    visibility: visible; }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

.slideInLeft {
  -webkit-animation-name: slideInLeft;
  animation-name: slideInLeft; }

@-webkit-keyframes slideInRight {
  0% {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    visibility: visible; }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

@keyframes slideInRight {
  0% {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    visibility: visible; }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

.slideInRight {
  -webkit-animation-name: slideInRight;
  animation-name: slideInRight; }

@-webkit-keyframes slideInUp {
  0% {
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
    visibility: visible; }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

@keyframes slideInUp {
  0% {
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
    visibility: visible; }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

.slideInUp {
  -webkit-animation-name: slideInUp;
  animation-name: slideInUp; }

@-webkit-keyframes slideOutDown {
  0% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  100% {
    visibility: hidden;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); } }

@keyframes slideOutDown {
  0% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  100% {
    visibility: hidden;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); } }

.slideOutDown {
  -webkit-animation-name: slideOutDown;
  animation-name: slideOutDown; }

@-webkit-keyframes slideOutLeft {
  0% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  100% {
    visibility: hidden;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); } }

@keyframes slideOutLeft {
  0% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  100% {
    visibility: hidden;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); } }

.slideOutLeft {
  -webkit-animation-name: slideOutLeft;
  animation-name: slideOutLeft; }

@-webkit-keyframes slideOutRight {
  0% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  100% {
    visibility: hidden;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); } }

@keyframes slideOutRight {
  0% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  100% {
    visibility: hidden;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); } }

.slideOutRight {
  -webkit-animation-name: slideOutRight;
  animation-name: slideOutRight; }

@-webkit-keyframes slideOutUp {
  0% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  100% {
    visibility: hidden;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }

@keyframes slideOutUp {
  0% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  100% {
    visibility: hidden;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }

.slideOutUp {
  -webkit-animation-name: slideOutUp;
  animation-name: slideOutUp; }

html, body {
  width: 100%;
  height: 100%; }
  html.menu-down, body.menu-down {
    overflow: hidden; }
    @media (min-width: 768px) {
      html.menu-down, body.menu-down {
        overflow: auto; } }

@media (min-width: 768px) {
  header {
    padding: 0; } }

@media (min-width: 768px) {
  header .contain {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto; }
    header .contain:after {
      content: " ";
      display: block;
      clear: both; } }

header .header-main-info {
  display: table;
  width: 100%;
  padding: 20px 0; }
  header .header-main-info > * {
    display: table-cell;
    padding: 0 10px;
    width: 1%;
    vertical-align: middle; }
    @media (min-width: 1px) {
      header .header-main-info > *.hidden-mobile {
        display: none; } }
    @media (min-width: 480px) {
      header .header-main-info > *.hidden-mobile {
        display: table-cell; }
      header .header-main-info > *.hidden-tween {
        display: none; } }
    @media (min-width: 768px) {
      header .header-main-info > *.hidden-tween {
        display: table-cell; }
      header .header-main-info > *.hidden-tablet {
        display: none; } }
    @media (min-width: 960px) {
      header .header-main-info > *.hidden-tablet {
        display: table-cell; }
      header .header-main-info > *.hidden-desktop {
        display: none; } }
    @media (min-width: 1200px) {
      header .header-main-info > *.hidden-desktop {
        display: table-cell; }
      header .header-main-info > *.hidden-desktop-l {
        display: none; } }
  @media (min-width: 768px) {
    header .header-main-info {
      padding: 25px 0; } }
  header .header-main-info > * {
    vertical-align: middle; }
  header .header-main-info .logo img {
    width: 200px;
    max-width: none; }
    @media (min-width: 768px) {
      header .header-main-info .logo img {
        width: 230px; } }
    @media (min-width: 960px) {
      header .header-main-info .logo img {
        width: auto; } }
  header .header-main-info .points, header .header-main-info .contact {
    display: none;
    white-space: nowrap; }
    @media (min-width: 768px) {
      header .header-main-info .points, header .header-main-info .contact {
        display: table-cell; } }
  header .header-main-info .points {
    width: 100%; }
  header .header-main-info .contact {
    text-align: right; }

header .header-main-nav {
  z-index: 999; }
  @media (min-width: 768px) {
    header .header-main-nav .sf-menu {
      display: table;
      width: 100%; }
      header .header-main-nav .sf-menu > * {
        display: table-cell;
        padding: 0 0;
        width: 1%;
        vertical-align: middle; } }
    @media (min-width: 768px) and (min-width: 1px) {
      header .header-main-nav .sf-menu > *.hidden-mobile {
        display: none; } }
    @media (min-width: 768px) and (min-width: 480px) {
      header .header-main-nav .sf-menu > *.hidden-mobile {
        display: table-cell; }
      header .header-main-nav .sf-menu > *.hidden-tween {
        display: none; } }
    @media (min-width: 768px) and (min-width: 768px) {
      header .header-main-nav .sf-menu > *.hidden-tween {
        display: table-cell; }
      header .header-main-nav .sf-menu > *.hidden-tablet {
        display: none; } }
    @media (min-width: 768px) and (min-width: 960px) {
      header .header-main-nav .sf-menu > *.hidden-tablet {
        display: table-cell; }
      header .header-main-nav .sf-menu > *.hidden-desktop {
        display: none; } }
    @media (min-width: 768px) and (min-width: 1200px) {
      header .header-main-nav .sf-menu > *.hidden-desktop {
        display: table-cell; }
      header .header-main-nav .sf-menu > *.hidden-desktop-l {
        display: none; } }
  @media (min-width: 1200px) {
    header .header-main-nav {
      width: 98.33333%;
      float: left;
      margin-left: 0.83333%;
      margin-right: 0.83333%; } }

footer {
  width: 100%;
  float: left; }
  footer .contain {
    position: relative;
    padding: 40px 0;
    padding-top: 0;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    /*.footer-nav {
            padding: 0 10px;
        }*/ }
    @media (min-width: 768px) {
      footer .contain {
        padding-top: 40px; } }
    footer .contain:after {
      content: " ";
      display: block;
      clear: both; }
  footer .footer-main-site {
    display: none;
    width: 100%;
    float: left; }
    @media (min-width: 768px) {
      footer .footer-main-site {
        display: block; } }
    @media (min-width: 960px) {
      footer .footer-main-site {
        width: 75%;
        float: left; } }
    footer .footer-main-site .footer-links {
      width: 98.33333%;
      float: left;
      margin-left: 0.83333%;
      margin-right: 0.83333%; }
      @media (min-width: 768px) {
        footer .footer-main-site .footer-links {
          width: 31.11111%;
          float: left;
          margin-left: 1.11111%;
          margin-right: 1.11111%; } }
      footer .footer-main-site .footer-links .list .item {
        margin-bottom: 15px;
        line-height: 26px; }
        footer .footer-main-site .footer-links .list .item a {
          display: table;
          width: 100%; }
        footer .footer-main-site .footer-links .list .item span {
          display: table-cell;
          text-align: left; }
      footer .footer-main-site .footer-links .list .icon-holder {
        padding-right: 20px;
        width: 25px; }
        footer .footer-main-site .footer-links .list .icon-holder img {
          width: 25px;
          max-width: 25px; }
  footer .footer-main-footnote {
    width: 100%;
    float: left;
    text-align: center; }
    @media (min-width: 768px) {
      footer .footer-main-footnote {
        text-align: left; } }
    @media (min-width: 960px) {
      footer .footer-main-footnote {
        width: 23.33333%;
        float: left;
        margin-left: 0.83333%;
        margin-right: 0.83333%; } }
    footer .footer-main-footnote .footer-social {
      width: 98.33333%;
      float: left;
      margin-left: 0.83333%;
      margin-right: 0.83333%; }
      footer .footer-main-footnote .footer-social .head {
        display: none; }
        @media (min-width: 768px) {
          footer .footer-main-footnote .footer-social .head {
            display: block;
            margin-top: 0px;
            font-size: 1.25em;
            font-weight: 500;
            color: #3c3c3c;
            margin-bottom: 20px; } }
      @media (min-width: 768px) {
        footer .footer-main-footnote .footer-social {
          width: 65%;
          float: left;
          margin-left: 0.83333%;
          margin-right: 0.83333%; } }
      @media (min-width: 960px) {
        footer .footer-main-footnote .footer-social {
          width: 98.33333%;
          float: left;
          margin-left: 0.83333%;
          margin-right: 0.83333%; } }
      footer .footer-main-footnote .footer-social.below {
        display: none; }
        @media (min-width: 768px) {
          footer .footer-main-footnote .footer-social.below {
            display: block; } }
        @media (min-width: 960px) {
          footer .footer-main-footnote .footer-social.below {
            display: none; } }
      footer .footer-main-footnote .footer-social.above {
        display: block; }
        @media (min-width: 768px) {
          footer .footer-main-footnote .footer-social.above {
            display: none; } }
        @media (min-width: 960px) {
          footer .footer-main-footnote .footer-social.above {
            display: block; } }
      footer .footer-main-footnote .footer-social .list {
        margin-bottom: 10px;
        margin-top: 20px; }
        @media (min-width: 960px) {
          footer .footer-main-footnote .footer-social .list {
            margin-top: 0px;
            margin-bottom: 40px; } }
        footer .footer-main-footnote .footer-social .list .item {
          margin: 0 5px;
          margin-bottom: 5px;
          display: inline-block; }
          @media (min-width: 768px) {
            footer .footer-main-footnote .footer-social .list .item {
              margin-right: 25px; } }
          @media (min-width: 960px) {
            footer .footer-main-footnote .footer-social .list .item {
              display: block;
              margin: 0;
              margin-bottom: 10px; } }
        footer .footer-main-footnote .footer-social .list .icon {
          margin-right: 4px; }
          @media (min-width: 768px) {
            footer .footer-main-footnote .footer-social .list .icon {
              margin-right: 15px; } }
        footer .footer-main-footnote .footer-social .list .label, footer .footer-main-footnote .footer-social .list .icon {
          vertical-align: middle;
          display: inline-block; }
    footer .footer-main-footnote .footer-info {
      width: 98.33333%;
      float: left;
      margin-left: 0.83333%;
      margin-right: 0.83333%; }
      @media (min-width: 768px) {
        footer .footer-main-footnote .footer-info {
          width: 31.66667%;
          float: left;
          margin-left: 0.83333%;
          margin-right: 0.83333%; } }
      @media (min-width: 960px) {
        footer .footer-main-footnote .footer-info {
          width: 98.33333%;
          float: left;
          margin-left: 0.83333%;
          margin-right: 0.83333%; } }
      footer .footer-main-footnote .footer-info .footer-logo {
        margin-bottom: 8px; }
        footer .footer-main-footnote .footer-info .footer-logo img {
          width: 200px; }

header .header-main-nav {
  background-color: #dadada; }

header .points ul {
  font-weight: 700;
  margin-bottom: 0; }

header .h4 {
  font-size: 16px; }
  @media (min-width: 960px) {
    header .h4 {
      font-size: 18px; } }

footer {
  background-color: #ececeb; }
  footer a {
    color: #3c3c3c;
    font-weight: 500; }
    footer a:hover, footer a:active, footer a:focus {
      outline: 0;
      border: 0; }
  footer .footer-main-site .footer-links .head {
    font-size: 1.25em;
    font-weight: 500;
    color: #3c3c3c;
    margin-bottom: 20px; }
  footer .footer-main-site .footer-links .list {
    list-style: none; }
    footer .footer-main-site .footer-links .list li {
      list-style-image: none;
      list-style-type: none;
      margin-left: 0;
      padding-left: 0; }
      footer .footer-main-site .footer-links .list li:before {
        content: none;
        display: none; }
  footer .footer-main-footnote .footer-social .list {
    list-style: none; }
    footer .footer-main-footnote .footer-social .list li {
      list-style-image: none;
      list-style-type: none;
      margin-left: 0;
      padding-left: 0; }
      footer .footer-main-footnote .footer-social .list li:before {
        content: none;
        display: none; }
    footer .footer-main-footnote .footer-social .list .icon {
      font-size: 24px; }
      @media (min-width: 768px) {
        footer .footer-main-footnote .footer-social .list .icon {
          font-size: 28px; } }
      footer .footer-main-footnote .footer-social .list .icon.icon-twitter {
        color: #48a2d7; }
      footer .footer-main-footnote .footer-social .list .icon.icon-facebook {
        color: #385591; }
      footer .footer-main-footnote .footer-social .list .icon.icon-youtube {
        color: #f04847; }
    footer .footer-main-footnote .footer-social .list .label {
      font-size: 14px; }
      @media (min-width: 768px) {
        footer .footer-main-footnote .footer-social .list .label {
          font-size: 16px; } }
  footer .footer-main-footnote .footer-copyright, footer .footer-main-footnote .footer-terms {
    font-size: 0.75em;
    margin-bottom: 3px;
    font-weight: 500; }

#trial {
  display: none;
  position: absolute;
  left: 25px;
  right: 25px;
  top: 25px;
  z-index: 1;
  width: auto; }
  #trial .banner-block-inner {
    border: none;
    width: auto; }
  #trial .banner-body {
    padding-right: 30px;
    font-size: 14px; }
  @media (min-width: 960px) {
    #trial {
      display: block; } }

.home-page {
  position: relative;
  margin-top: 0; }
  .home-page:after {
    content: "";
    display: table;
    clear: both; }

.home-page .quote-block:before {
  background-image: url("/images/background-quote.jpg"); }

.home-page #about .toggle-hidden {
  display: block;
  margin-bottom: 20px; }

.home-page #about .hidden-content {
  display: none; }

.bodylist-block p, .bodylist-block li {
  font-size: 1.125em; }
  @media (min-width: 768px) {
    .bodylist-block p, .bodylist-block li {
      font-size: 1.25em; } }

.about-page .quote-block:before {
  background-image: url("../images/background-quote.jpg"); }

.news-article-page .headingsolo-block {
  width: 100%;
  float: left;
  margin-left: 0;
  margin-right: 0; }

@media (min-width: 960px) {
  .news-article-page #main-container {
    width: 48.33333%;
    float: left;
    margin-left: 0.83333%;
    margin-right: 0.83333%; } }

@media (min-width: 960px) {
  .news-article-page #features {
    width: 48.33333%;
    float: left;
    margin-left: 0.83333%;
    margin-right: 0.83333%; } }

.news-landing-page .headingalt-block .body {
  margin-bottom: 50px; }

.purchase-support .image {
  float: right;
  margin-left: 10px; }

.purchase-support .wysiwyg {
  width: 98.33333%;
  float: left;
  margin-left: 0.83333%;
  margin-right: 0.83333%;
  margin-bottom: 0px; }

.purchase-support #heading {
  margin-bottom: 0px; }

.purchase-support .sidebar-page {
  clear: both; }

.purchase-support #main-container {
  clear: both; }

@media (min-width: 960px) {
  .sidebar-page .content {
    width: 65%;
    float: left;
    margin-left: 0.83333%;
    margin-right: 0.83333%; } }

@media (min-width: 960px) {
  .sidebar-page aside {
    width: 31.66667%;
    float: left;
    margin-left: 0.83333%;
    margin-right: 0.83333%; } }

.sidebar-page aside .recentnews-block, .sidebar-page aside .feature-block, .sidebar-page aside .related-links-block {
  width: 100%;
  float: left;
  margin-left: 0; }
  @media (min-width: 768px) {
    .sidebar-page aside .recentnews-block, .sidebar-page aside .feature-block, .sidebar-page aside .related-links-block {
      width: 48.33333%;
      float: left;
      margin-left: 0.83333%;
      margin-right: 0.83333%; } }
  @media (min-width: 960px) {
    .sidebar-page aside .recentnews-block, .sidebar-page aside .feature-block, .sidebar-page aside .related-links-block {
      width: 100%;
      float: left;
      width: 100%;
      float: left;
      margin-left: 0;
      margin-right: 0;
      display: table;
      width: 100%; } }
    @media (min-width: 960px) and (min-width: 1px) {
      .sidebar-page aside .recentnews-block > *.hidden-mobile, .sidebar-page aside .feature-block > *.hidden-mobile, .sidebar-page aside .related-links-block > *.hidden-mobile {
        display: none; } }
    @media (min-width: 960px) and (min-width: 480px) {
      .sidebar-page aside .recentnews-block > *.hidden-mobile, .sidebar-page aside .feature-block > *.hidden-mobile, .sidebar-page aside .related-links-block > *.hidden-mobile {
        display: table-cell; }
      .sidebar-page aside .recentnews-block > *.hidden-tween, .sidebar-page aside .feature-block > *.hidden-tween, .sidebar-page aside .related-links-block > *.hidden-tween {
        display: none; } }
    @media (min-width: 960px) and (min-width: 768px) {
      .sidebar-page aside .recentnews-block > *.hidden-tween, .sidebar-page aside .feature-block > *.hidden-tween, .sidebar-page aside .related-links-block > *.hidden-tween {
        display: table-cell; }
      .sidebar-page aside .recentnews-block > *.hidden-tablet, .sidebar-page aside .feature-block > *.hidden-tablet, .sidebar-page aside .related-links-block > *.hidden-tablet {
        display: none; } }
    @media (min-width: 960px) and (min-width: 960px) {
      .sidebar-page aside .recentnews-block > *.hidden-tablet, .sidebar-page aside .feature-block > *.hidden-tablet, .sidebar-page aside .related-links-block > *.hidden-tablet {
        display: table-cell; }
      .sidebar-page aside .recentnews-block > *.hidden-desktop, .sidebar-page aside .feature-block > *.hidden-desktop, .sidebar-page aside .related-links-block > *.hidden-desktop {
        display: none; } }
    @media (min-width: 960px) and (min-width: 1200px) {
      .sidebar-page aside .recentnews-block > *.hidden-desktop, .sidebar-page aside .feature-block > *.hidden-desktop, .sidebar-page aside .related-links-block > *.hidden-desktop {
        display: table-cell; }
      .sidebar-page aside .recentnews-block > *.hidden-desktop-l, .sidebar-page aside .feature-block > *.hidden-desktop-l, .sidebar-page aside .related-links-block > *.hidden-desktop-l {
        display: none; } }
  .sidebar-page aside .recentnews-block .image, .sidebar-page aside .feature-block .image, .sidebar-page aside .related-links-block .image {
    min-width: 50px; }
    @media (min-width: 480px) {
      .sidebar-page aside .recentnews-block .image, .sidebar-page aside .feature-block .image, .sidebar-page aside .related-links-block .image {
        min-width: 70px; } }
    @media (min-width: 960px) {
      .sidebar-page aside .recentnews-block .image, .sidebar-page aside .feature-block .image, .sidebar-page aside .related-links-block .image {
        min-width: 50px; } }
  .sidebar-page aside .recentnews-block .body, .sidebar-page aside .feature-block .body, .sidebar-page aside .related-links-block .body {
    width: 100%; }
    .sidebar-page aside .recentnews-block .body .sub, .sidebar-page aside .recentnews-block .body p, .sidebar-page aside .feature-block .body .sub, .sidebar-page aside .feature-block .body p, .sidebar-page aside .related-links-block .body .sub, .sidebar-page aside .related-links-block .body p {
      margin-bottom: 10px;
      font-size: 16px; }
    .sidebar-page aside .recentnews-block .body .subbed, .sidebar-page aside .feature-block .body .subbed, .sidebar-page aside .related-links-block .body .subbed {
      font-size: 1.375em; }
      @media (min-width: 768px) {
        .sidebar-page aside .recentnews-block .body .subbed, .sidebar-page aside .feature-block .body .subbed, .sidebar-page aside .related-links-block .body .subbed {
          font-size: 1.625em; } }

.sidebar-page aside .recentnews-block {
  padding: 20px 0;
  border-top: 1px solid #ececeb;
  border-bottom: 1px solid #ececeb;
  display: none; }
  @media (min-width: 960px) {
    .sidebar-page aside .recentnews-block {
      display: block; } }

.purchase-support .image {
  float: right;
  margin-left: 10px; }

.purchase-support .wysiwyg {
  width: 98.33333%;
  float: left;
  margin-left: 0.83333%;
  margin-right: 0.83333%;
  margin-bottom: 0px; }

.purchase-support #heading {
  margin-bottom: 0px; }

.purchase-support .sidebar-page {
  clear: both; }

.purchase-support #main-container {
  clear: both; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlcyI6WyJzdHlsZS5zY3NzIiwiLi4vX2J1aWxkZXZlbnRzL1Nhc3Mvbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9fc3VzeS5zY3NzIiwiLi4vX2J1aWxkZXZlbnRzL1Nhc3Mvbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL19zdXN5LnNjc3MiLCIuLi9fYnVpbGRldmVudHMvU2Fzcy9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvX3N1LnNjc3MiLCIuLi9fYnVpbGRldmVudHMvU2Fzcy9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvc3UvX3V0aWxpdGllcy5zY3NzIiwiLi4vX2J1aWxkZXZlbnRzL1Nhc3Mvbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L3N1L19zZXR0aW5ncy5zY3NzIiwiLi4vX2J1aWxkZXZlbnRzL1Nhc3Mvbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L3N1L192YWxpZGF0aW9uLnNjc3MiLCIuLi9fYnVpbGRldmVudHMvU2Fzcy9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvc3UvX2dyaWQuc2NzcyIsIi4uL19idWlsZGV2ZW50cy9TYXNzL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvX2Zsb2F0LnNjc3MiLCIuLi9fYnVpbGRldmVudHMvU2Fzcy9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L19zaGFyZWQuc2NzcyIsIi4uL19idWlsZGV2ZW50cy9TYXNzL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvX3N1cHBvcnQuc2NzcyIsIi4uL19idWlsZGV2ZW50cy9TYXNzL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc3VwcG9ydC9fc3VwcG9ydC5zY3NzIiwiLi4vX2J1aWxkZXZlbnRzL1Nhc3Mvbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9zdXBwb3J0L19wcmVmaXguc2NzcyIsIi4uL19idWlsZGV2ZW50cy9TYXNzL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc3VwcG9ydC9fYmFja2dyb3VuZC5zY3NzIiwiLi4vX2J1aWxkZXZlbnRzL1Nhc3Mvbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9zdXBwb3J0L19ib3gtc2l6aW5nLnNjc3MiLCIuLi9fYnVpbGRldmVudHMvU2Fzcy9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3N1cHBvcnQvX3JlbS5zY3NzIiwiLi4vX2J1aWxkZXZlbnRzL1Nhc3Mvbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9zdXBwb3J0L19jbGVhcmZpeC5zY3NzIiwiLi4vX2J1aWxkZXZlbnRzL1Nhc3Mvbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9zaGFyZWQvX2luc3BlY3Quc2NzcyIsIi4uL19idWlsZGV2ZW50cy9TYXNzL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc2hhcmVkL19vdXRwdXQuc2NzcyIsIi4uL19idWlsZGV2ZW50cy9TYXNzL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc2hhcmVkL19kaXJlY3Rpb24uc2NzcyIsIi4uL19idWlsZGV2ZW50cy9TYXNzL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc2hhcmVkL19iYWNrZ3JvdW5kLnNjc3MiLCIuLi9fYnVpbGRldmVudHMvU2Fzcy9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3NoYXJlZC9fY29udGFpbmVyLnNjc3MiLCIuLi9fYnVpbGRldmVudHMvU2Fzcy9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3NoYXJlZC9fbWFyZ2lucy5zY3NzIiwiLi4vX2J1aWxkZXZlbnRzL1Nhc3Mvbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9zaGFyZWQvX3BhZGRpbmcuc2NzcyIsIi4uL19idWlsZGV2ZW50cy9TYXNzL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvZmxvYXQvX2NvbnRhaW5lci5zY3NzIiwiLi4vX2J1aWxkZXZlbnRzL1Nhc3Mvbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9mbG9hdC9fc3Bhbi5zY3NzIiwiLi4vX2J1aWxkZXZlbnRzL1Nhc3Mvbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9mbG9hdC9fZW5kLnNjc3MiLCIuLi9fYnVpbGRldmVudHMvU2Fzcy9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L2Zsb2F0L19pc29sYXRlLnNjc3MiLCIuLi9fYnVpbGRldmVudHMvU2Fzcy9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fc2V0dGluZ3Muc2NzcyIsIi4uL19idWlsZGV2ZW50cy9TYXNzL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L192YWxpZGF0aW9uLnNjc3MiLCIuLi9fYnVpbGRldmVudHMvU2Fzcy9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fZ3JpZHMuc2NzcyIsIi4uL19idWlsZGV2ZW50cy9TYXNzL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19ib3gtc2l6aW5nLnNjc3MiLCIuLi9fYnVpbGRldmVudHMvU2Fzcy9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fY29udGV4dC5zY3NzIiwiLi4vX2J1aWxkZXZlbnRzL1Nhc3Mvbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX2JhY2tncm91bmQuc2NzcyIsIi4uL19idWlsZGV2ZW50cy9TYXNzL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19jb250YWluZXIuc2NzcyIsIi4uL19idWlsZGV2ZW50cy9TYXNzL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19zcGFuLnNjc3MiLCIuLi9fYnVpbGRldmVudHMvU2Fzcy9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fZ3V0dGVycy5zY3NzIiwiLi4vX2J1aWxkZXZlbnRzL1Nhc3Mvbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX2lzb2xhdGUuc2NzcyIsIi4uL19idWlsZGV2ZW50cy9TYXNzL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19nYWxsZXJ5LnNjc3MiLCIuLi9fYnVpbGRldmVudHMvU2Fzcy9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fcm93cy5zY3NzIiwiLi4vX2J1aWxkZXZlbnRzL1Nhc3Mvbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX21hcmdpbnMuc2NzcyIsIi4uL19idWlsZGV2ZW50cy9TYXNzL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19wYWRkaW5nLnNjc3MiLCIuLi9fYnVpbGRldmVudHMvU2Fzcy9ub2RlX21vZHVsZXMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fYmxlZWQuc2NzcyIsIi4uL19idWlsZGV2ZW50cy9TYXNzL25vZGVfbW9kdWxlcy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19icmVha3BvaW50LXBsdWdpbi5zY3NzIiwiLi4vX2J1aWxkZXZlbnRzL1Nhc3Mvbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9fYnJlYWtwb2ludC5zY3NzIiwiLi4vX2J1aWxkZXZlbnRzL1Nhc3Mvbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19zZXR0aW5ncy5zY3NzIiwiLi4vX2J1aWxkZXZlbnRzL1Nhc3Mvbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19jb250ZXh0LnNjc3MiLCIuLi9fYnVpbGRldmVudHMvU2Fzcy9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX2hlbHBlcnMuc2NzcyIsIi4uL19idWlsZGV2ZW50cy9TYXNzL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fcGFyc2Vycy5zY3NzIiwiLi4vX2J1aWxkZXZlbnRzL1Nhc3Mvbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3F1ZXJ5LnNjc3MiLCIuLi9fYnVpbGRldmVudHMvU2Fzcy9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fc2luZ2xlLnNjc3MiLCIuLi9fYnVpbGRldmVudHMvU2Fzcy9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9zaW5nbGUvX2RlZmF1bHQuc2NzcyIsIi4uL19idWlsZGV2ZW50cy9TYXNzL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL19kb3VibGUuc2NzcyIsIi4uL19idWlsZGV2ZW50cy9TYXNzL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL2RvdWJsZS9fZGVmYXVsdC1wYWlyLnNjc3MiLCIuLi9fYnVpbGRldmVudHMvU2Fzcy9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9kb3VibGUvX2RvdWJsZS1zdHJpbmcuc2NzcyIsIi4uL19idWlsZGV2ZW50cy9TYXNzL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL2RvdWJsZS9fZGVmYXVsdC5zY3NzIiwiLi4vX2J1aWxkZXZlbnRzL1Nhc3Mvbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3RyaXBsZS5zY3NzIiwiLi4vX2J1aWxkZXZlbnRzL1Nhc3Mvbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvdHJpcGxlL19kZWZhdWx0LnNjc3MiLCIuLi9fYnVpbGRldmVudHMvU2Fzcy9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fcmVzb2x1dGlvbi5zY3NzIiwiLi4vX2J1aWxkZXZlbnRzL1Nhc3Mvbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvcmVzb2x1dGlvbi9fcmVzb2x1dGlvbi5zY3NzIiwiLi4vX2J1aWxkZXZlbnRzL1Nhc3Mvbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19uby1xdWVyeS5zY3NzIiwiLi4vX2J1aWxkZXZlbnRzL1Nhc3Mvbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19yZXNwb25kLXRvLnNjc3MiLCIuLi9fYnVpbGRldmVudHMvU2Fzcy9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX2xlZ2FjeS1zZXR0aW5ncy5zY3NzIiwiYmFzZS9fdmFyaWFibGVzLnNjc3MiLCJoZWxwZXJzL21peGlucy9fbWl4aW5zLnNjc3MiLCJoZWxwZXJzL2Z1bmN0aW9ucy9fcHhUb0VtLnNjc3MiLCJiYXNlL19ub3JtYWxpemUuc2NzcyIsImJhc2UvX2ZvbnRzLnNjc3MiLCJoZWxwZXJzL21peGlucy9fY3NzM1RyYW5zaXRpb25zQW5pbWF0aW9ucy5zY3NzIiwiaGVscGVycy9fdmlzaWJpbGl0eS5zY3NzIiwiYmFzZS9fc2NhZmZvbGRpbmcuc2NzcyIsImJhc2UvX3R5cGUuc2NzcyIsImJhc2UvX2J0bnMuc2NzcyIsImJhc2UvX2xpc3RzLnNjc3MiLCJiYXNlL19pbnB1dC5zY3NzIiwidGVtcGxhdGVzL0dsb2JhbC9fR2xvYmFsLnNjc3MiLCJ0ZW1wbGF0ZXMvR2xvYmFsL19sYXlvdXQuc2NzcyIsInRlbXBsYXRlcy9HbG9iYWwvX2hlYWRlci5zY3NzIiwidGVtcGxhdGVzL0dsb2JhbC9fZm9vdGVyLnNjc3MiLCJoZWxwZXJzL3BsYWNlaG9sZGVycy9fcGxhY2Vob2xkZXJzLnNjc3MiLCJoZWxwZXJzL21peGlucy9faW1hZ2VzLnNjc3MiLCJibG9ja3MvX0ZlYXR1cmVzQmxvY2suc2NzcyIsImJsb2Nrcy9fRmVhdHVyZUJsb2NrLnNjc3MiLCJibG9ja3MvX1JlbGF0ZWRMaW5rc0Jsb2NrLnNjc3MiLCJibG9ja3MvX1N1Yk5hdmlnYXRpb25CbG9jay5zY3NzIiwiaGVscGVycy9fTmF2aWdhdGlvbkJsb2NrLnNjc3MiLCJibG9ja3MvX0hlYWRpbmdCbG9jay5zY3NzIiwiYmxvY2tzL19IZWFkaW5nQWx0QmxvY2suc2NzcyIsImJsb2Nrcy9fSGVhZGluZ1NvbG9CbG9jay5zY3NzIiwiYmxvY2tzL19CYW5uZXJCbG9jay5zY3NzIiwiYmxvY2tzL19Cb2R5SW1hZ2VCbG9jay5zY3NzIiwiYmxvY2tzL19Cb2R5SW1hZ2VTcGxpdEJsb2NrLnNjc3MiLCJibG9ja3MvX0ltYWdlUXVvdGVCbG9jay5zY3NzIiwiYmxvY2tzL19UYWJsZUJsb2NrLnNjc3MiLCJoZWxwZXJzL2Jvb3RzdHJhcCBzYXNzIGFuZCBtaXhpbnMvX3ZhcmlhYmxlcy5zY3NzIiwiaGVscGVycy9ib290c3RyYXAgc2FzcyBhbmQgbWl4aW5zL21peGlucy9fdGFibGUtcm93LnNjc3MiLCJoZWxwZXJzL2Jvb3RzdHJhcCBzYXNzIGFuZCBtaXhpbnMvX3RhYmxlcy5zY3NzIiwiYmxvY2tzL19RdW90ZUJsb2NrLnNjc3MiLCJibG9ja3MvX1Byb2R1Y3RCbG9jay5zY3NzIiwiYmxvY2tzL19MaXN0c0Jsb2NrLnNjc3MiLCJibG9ja3MvX0JvZHlMaXN0QmxvY2suc2NzcyIsImJsb2Nrcy9fTGlzdEJhY2tncm91bmRlZEJsb2NrLnNjc3MiLCJibG9ja3MvX0xpc3RJbWFnZUJsb2NrLnNjc3MiLCJibG9ja3MvX0hlcm9DYXJvdXNlbEJsb2NrLnNjc3MiLCJibG9ja3MvX01vZGFsQ2Fyb3VzZWxCbG9jay5zY3NzIiwiYmxvY2tzL19QbGF5bGlzdENhcm91c2VsQmxvY2suc2NzcyIsImJsb2Nrcy9fRmFxc0Jsb2NrLnNjc3MiLCJoZWxwZXJzL2Jvb3RzdHJhcCBzYXNzIGFuZCBtaXhpbnMvX2NvbXBvbmVudC1hbmltYXRpb25zLnNjc3MiLCJibG9ja3MvX0ZhcUJsb2NrLnNjc3MiLCJibG9ja3MvX1ZpZGVvUGlja2VyQmxvY2suc2NzcyIsImhlbHBlcnMvYm9vdHN0cmFwIHNhc3MgYW5kIG1peGlucy9fbmF2cy5zY3NzIiwiaGVscGVycy9ib290c3RyYXAgc2FzcyBhbmQgbWl4aW5zL21peGlucy9fdGFiLWZvY3VzLnNjc3MiLCJibG9ja3MvX0Rvd25sb2FkQmxvY2suc2NzcyIsImJsb2Nrcy9fUmVjZW50TmV3c0Jsb2NrLnNjc3MiLCJibG9ja3MvX0FydGljbGVCbG9jay5zY3NzIiwiYmxvY2tzL19BcnRpY2xlc05hdkJsb2NrLnNjc3MiLCJibG9ja3MvX0FydGljbGVDb250ZW50QmxvY2suc2NzcyIsImJsb2Nrcy9fQ29udGFjdEJsb2NrLnNjc3MiLCJibG9ja3MvX1N1cHBvcnRCbG9jay5zY3NzIiwiYmxvY2tzL19TdXBwb3J0UmVxdWVzdEJsb2NrLnNjc3MiLCJibG9ja3MvX1B1cmNoYXNlU3VwcG9ydEJsb2NrLnNjc3MiLCJibG9ja3MvX0Zvcm1CbG9jay5zY3NzIiwiYmxvY2tzL19CdXR0b25CbG9jay5zY3NzIiwiYmxvY2tzL19Db29raWVQb2xpY3kuc2NzcyIsImZlYXR1cmVzL19NYWluTmF2aWdhdGlvbi5zY3NzIiwiZmVhdHVyZXMvX0Zvb3Rlck5hdmlnYXRpb24uc2NzcyIsImZlYXR1cmVzL19Pd2xTbGlkZXIuc2NzcyIsImZlYXR1cmVzL19XeXNpd3lnLnNjc3MiLCJmZWF0dXJlcy9fTWFza2luZy5zY3NzIiwiZmVhdHVyZXMvX1Byb2R1Y3RUeXBlcy5zY3NzIiwiZmVhdHVyZXMvX01vZGFsLnNjc3MiLCJmZWF0dXJlcy9fYW5pbWF0ZS5zY3NzIiwidGVtcGxhdGVzL0hvbWVQYWdlL19QYWdlLnNjc3MiLCJ0ZW1wbGF0ZXMvSG9tZVBhZ2UvX2xheW91dC5zY3NzIiwidGVtcGxhdGVzL0hvbWVQYWdlL19zdHlsZXMuc2NzcyIsInRlbXBsYXRlcy9Qcm9kdWN0TGFuZGluZy9fUGFnZS5zY3NzIiwidGVtcGxhdGVzL1Byb2R1Y3RMYW5kaW5nL19sYXlvdXQuc2NzcyIsInRlbXBsYXRlcy9Qcm9kdWN0TGFuZGluZy9fc3R5bGVzLnNjc3MiLCJ0ZW1wbGF0ZXMvUHJvZHVjdEFydGljbGUvX1BhZ2Uuc2NzcyIsInRlbXBsYXRlcy9Qcm9kdWN0QXJ0aWNsZS9fbGF5b3V0LnNjc3MiLCJ0ZW1wbGF0ZXMvUHJvZHVjdEFydGljbGUvX3N0eWxlcy5zY3NzIiwidGVtcGxhdGVzL0Fib3V0L19QYWdlLnNjc3MiLCJ0ZW1wbGF0ZXMvQWJvdXQvX2xheW91dC5zY3NzIiwidGVtcGxhdGVzL0Fib3V0L19zdHlsZXMuc2NzcyIsInRlbXBsYXRlcy9GQVEvX1BhZ2Uuc2NzcyIsInRlbXBsYXRlcy9GQVEvX2xheW91dC5zY3NzIiwidGVtcGxhdGVzL0ZBUS9fc3R5bGVzLnNjc3MiLCJ0ZW1wbGF0ZXMvVmlkZW9MaWJyYXJ5L19QYWdlLnNjc3MiLCJ0ZW1wbGF0ZXMvVmlkZW9MaWJyYXJ5L19sYXlvdXQuc2NzcyIsInRlbXBsYXRlcy9WaWRlb0xpYnJhcnkvX3N0eWxlcy5zY3NzIiwidGVtcGxhdGVzL0NvbnRhY3RVcy9fUGFnZS5zY3NzIiwidGVtcGxhdGVzL0NvbnRhY3RVcy9fbGF5b3V0LnNjc3MiLCJ0ZW1wbGF0ZXMvQ29udGFjdFVzL19zdHlsZXMuc2NzcyIsInRlbXBsYXRlcy9Eb3dubG9hZC9fUGFnZS5zY3NzIiwidGVtcGxhdGVzL0Rvd25sb2FkL19sYXlvdXQuc2NzcyIsInRlbXBsYXRlcy9Eb3dubG9hZC9fc3R5bGVzLnNjc3MiLCJ0ZW1wbGF0ZXMvTmV3c0FydGljbGUvX1BhZ2Uuc2NzcyIsInRlbXBsYXRlcy9OZXdzQXJ0aWNsZS9fbGF5b3V0LnNjc3MiLCJ0ZW1wbGF0ZXMvTmV3c0FydGljbGUvX3N0eWxlcy5zY3NzIiwidGVtcGxhdGVzL05ld3NMYW5kaW5nL19QYWdlLnNjc3MiLCJ0ZW1wbGF0ZXMvTmV3c0xhbmRpbmcvX2xheW91dC5zY3NzIiwidGVtcGxhdGVzL05ld3NMYW5kaW5nL19zdHlsZXMuc2NzcyIsInRlbXBsYXRlcy9TdXBwb3J0TGFuZGluZy9fUGFnZS5zY3NzIiwidGVtcGxhdGVzL1N1cHBvcnRMYW5kaW5nL19sYXlvdXQuc2NzcyIsInRlbXBsYXRlcy9TdXBwb3J0TGFuZGluZy9fc3R5bGVzLnNjc3MiLCJ0ZW1wbGF0ZXMvUHVyY2hhc2VTdXBwb3J0L19QYWdlLnNjc3MiLCJ0ZW1wbGF0ZXMvUHVyY2hhc2VTdXBwb3J0L19sYXlvdXQuc2NzcyIsInRlbXBsYXRlcy9QdXJjaGFzZVN1cHBvcnQvX3N0eWxlcy5zY3NzIiwidGVtcGxhdGVzL1N1cHBvcnRSZXF1ZXN0L19QYWdlLnNjc3MiLCJ0ZW1wbGF0ZXMvU3VwcG9ydFJlcXVlc3QvX2xheW91dC5zY3NzIiwidGVtcGxhdGVzL1N1cHBvcnRSZXF1ZXN0L19zdHlsZXMuc2NzcyIsInRlbXBsYXRlcy9TaWRlYmFyL19QYWdlLnNjc3MiLCJ0ZW1wbGF0ZXMvU2lkZWJhci9fbGF5b3V0LnNjc3MiLCJ0ZW1wbGF0ZXMvU2lkZWJhci9fc3R5bGVzLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcInN1c3lcIjtcbkBpbXBvcnQgXCJicmVha3BvaW50XCI7XG5cbi8vIGhlbHBlcnMgYW5kIHJlc2V0c1xuQGltcG9ydCBcImJhc2UvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9taXhpbnMvbWl4aW5zXCI7XG5AaW1wb3J0IFwiaGVscGVycy9mdW5jdGlvbnMvcHhUb0VtXCI7XG5AaW1wb3J0IFwiYmFzZS9ub3JtYWxpemVcIjtcbkBpbXBvcnQgXCJiYXNlL2ZvbnRzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9taXhpbnMvY3NzM1RyYW5zaXRpb25zQW5pbWF0aW9uc1wiO1xuQGltcG9ydCBcImhlbHBlcnMvdmlzaWJpbGl0eVwiO1xuXG4vLyBCYXNlIHN0eWxlc1xuQGltcG9ydCBcImJhc2Uvc2NhZmZvbGRpbmdcIjtcbkBpbXBvcnQgXCJiYXNlL3R5cGVcIjtcbkBpbXBvcnQgXCJiYXNlL2J0bnNcIjtcbkBpbXBvcnQgXCJiYXNlL2xpc3RzXCI7XG5AaW1wb3J0IFwiYmFzZS9pbnB1dFwiO1xuXG4vLyB0ZW1wbGF0ZXNcbkBpbXBvcnQgXCJ0ZW1wbGF0ZXMvR2xvYmFsL0dsb2JhbFwiO1xuXG4vLyBoZWxwZXJzLlxuQGltcG9ydCBcImhlbHBlcnMvcGxhY2Vob2xkZXJzL3BsYWNlaG9sZGVyc1wiO1xuQGltcG9ydCBcImhlbHBlcnMvbWl4aW5zL2ltYWdlc1wiO1xuXG4vLyBibG9ja3NcbkBpbXBvcnQgXCJibG9ja3MvRmVhdHVyZXNCbG9ja1wiO1xuQGltcG9ydCBcImJsb2Nrcy9GZWF0dXJlQmxvY2tcIjtcbkBpbXBvcnQgXCJibG9ja3MvUmVsYXRlZExpbmtzQmxvY2tcIjtcbkBpbXBvcnQgXCJibG9ja3MvU3ViTmF2aWdhdGlvbkJsb2NrXCI7XG5AaW1wb3J0IFwiYmxvY2tzL0hlYWRpbmdCbG9ja1wiO1xuQGltcG9ydCBcImJsb2Nrcy9IZWFkaW5nQWx0QmxvY2tcIjtcbkBpbXBvcnQgXCJibG9ja3MvSGVhZGluZ1NvbG9CbG9ja1wiO1xuQGltcG9ydCBcImJsb2Nrcy9CYW5uZXJCbG9ja1wiO1xuQGltcG9ydCBcImJsb2Nrcy9Cb2R5SW1hZ2VCbG9ja1wiO1xuQGltcG9ydCBcImJsb2Nrcy9Cb2R5SW1hZ2VTcGxpdEJsb2NrXCI7XG5AaW1wb3J0IFwiYmxvY2tzL0ltYWdlUXVvdGVCbG9ja1wiO1xuQGltcG9ydCBcImJsb2Nrcy9UYWJsZUJsb2NrXCI7XG5AaW1wb3J0IFwiYmxvY2tzL1F1b3RlQmxvY2tcIjtcbkBpbXBvcnQgXCJibG9ja3MvUHJvZHVjdEJsb2NrXCI7XG5AaW1wb3J0IFwiYmxvY2tzL0xpc3RzQmxvY2tcIjtcbkBpbXBvcnQgXCJibG9ja3MvQm9keUxpc3RCbG9ja1wiO1xuQGltcG9ydCBcImJsb2Nrcy9MaXN0QmFja2dyb3VuZGVkQmxvY2tcIjtcbkBpbXBvcnQgXCJibG9ja3MvTGlzdEltYWdlQmxvY2tcIjtcbkBpbXBvcnQgXCJibG9ja3MvSGVyb0Nhcm91c2VsQmxvY2tcIjtcbkBpbXBvcnQgXCJibG9ja3MvTW9kYWxDYXJvdXNlbEJsb2NrXCI7XG5AaW1wb3J0IFwiYmxvY2tzL1BsYXlsaXN0Q2Fyb3VzZWxCbG9ja1wiO1xuQGltcG9ydCBcImJsb2Nrcy9GYXFzQmxvY2tcIjtcbkBpbXBvcnQgXCJibG9ja3MvRmFxQmxvY2tcIjtcbkBpbXBvcnQgXCJibG9ja3MvVmlkZW9QaWNrZXJCbG9ja1wiO1xuQGltcG9ydCBcImJsb2Nrcy9Eb3dubG9hZEJsb2NrXCI7XG5AaW1wb3J0IFwiYmxvY2tzL1JlY2VudE5ld3NCbG9ja1wiO1xuQGltcG9ydCBcImJsb2Nrcy9BcnRpY2xlQmxvY2tcIjtcbkBpbXBvcnQgXCJibG9ja3MvQXJ0aWNsZXNOYXZCbG9ja1wiO1xuQGltcG9ydCBcImJsb2Nrcy9BcnRpY2xlQ29udGVudEJsb2NrXCI7XG5AaW1wb3J0IFwiYmxvY2tzL0NvbnRhY3RCbG9ja1wiO1xuQGltcG9ydCBcImJsb2Nrcy9TdXBwb3J0QmxvY2tcIjtcbkBpbXBvcnQgXCJibG9ja3MvU3VwcG9ydFJlcXVlc3RCbG9ja1wiO1xuQGltcG9ydCBcImJsb2Nrcy9QdXJjaGFzZVN1cHBvcnRCbG9ja1wiO1xuQGltcG9ydCBcImJsb2Nrcy9fRm9ybUJsb2NrLnNjc3NcIjtcbkBpbXBvcnQgXCJibG9ja3MvX0J1dHRvbkJsb2NrLnNjc3NcIjtcbkBpbXBvcnQgXCJibG9ja3MvX0Nvb2tpZVBvbGljeS5zY3NzXCI7XG5cblxuLy8gZmVhdHVyZXNcbkBpbXBvcnQgXCJmZWF0dXJlcy9NYWluTmF2aWdhdGlvblwiO1xuQGltcG9ydCBcImZlYXR1cmVzL0Zvb3Rlck5hdmlnYXRpb25cIjtcbkBpbXBvcnQgXCJmZWF0dXJlcy9Pd2xTbGlkZXJcIjtcbkBpbXBvcnQgXCJmZWF0dXJlcy9XeXNpd3lnXCI7XG5AaW1wb3J0IFwiZmVhdHVyZXMvTWFza2luZ1wiO1xuQGltcG9ydCBcImZlYXR1cmVzL1Byb2R1Y3RUeXBlc1wiO1xuQGltcG9ydCBcImZlYXR1cmVzL01vZGFsXCI7XG5AaW1wb3J0IFwiZmVhdHVyZXMvYW5pbWF0ZVwiO1xuXG4vLyB0ZW1wbGF0ZXNcbkBpbXBvcnQgXCJ0ZW1wbGF0ZXMvR2xvYmFsL0dsb2JhbFwiOy8vXG5AaW1wb3J0IFwidGVtcGxhdGVzL0hvbWVQYWdlL1BhZ2VcIjsvL1xuQGltcG9ydCBcInRlbXBsYXRlcy9Qcm9kdWN0TGFuZGluZy9QYWdlXCI7Ly9cbkBpbXBvcnQgXCJ0ZW1wbGF0ZXMvUHJvZHVjdEFydGljbGUvUGFnZVwiOy8vXG5AaW1wb3J0IFwidGVtcGxhdGVzL0Fib3V0L1BhZ2VcIjtcbkBpbXBvcnQgXCJ0ZW1wbGF0ZXMvRkFRL1BhZ2VcIjtcbkBpbXBvcnQgXCJ0ZW1wbGF0ZXMvVmlkZW9MaWJyYXJ5L1BhZ2VcIjtcbkBpbXBvcnQgXCJ0ZW1wbGF0ZXMvQ29udGFjdFVzL1BhZ2VcIjtcbkBpbXBvcnQgXCJ0ZW1wbGF0ZXMvRG93bmxvYWQvUGFnZVwiO1xuQGltcG9ydCBcInRlbXBsYXRlcy9OZXdzQXJ0aWNsZS9QYWdlXCI7XG5AaW1wb3J0IFwidGVtcGxhdGVzL05ld3NMYW5kaW5nL1BhZ2VcIjtcbkBpbXBvcnQgXCJ0ZW1wbGF0ZXMvU3VwcG9ydExhbmRpbmcvUGFnZVwiO1xuQGltcG9ydCBcInRlbXBsYXRlcy9QdXJjaGFzZVN1cHBvcnQvUGFnZVwiO1xuQGltcG9ydCBcInRlbXBsYXRlcy9TdXBwb3J0UmVxdWVzdC9QYWdlXCI7XG5AaW1wb3J0IFwidGVtcGxhdGVzL1NpZGViYXIvUGFnZVwiO1xuQGltcG9ydCBcInRlbXBsYXRlcy9QdXJjaGFzZVN1cHBvcnQvUGFnZVwiOyIsIi8vIFN1c3lcbi8vID09PT1cblxuQGltcG9ydCAnc3VzeS9sYW5ndWFnZS9zdXN5JztcbiIsIi8vIFN1c3kgTmV4dCBTeW50YXhcbi8vID09PT09PT09PT09PT09PT1cblxuJHN1c3ktdmVyc2lvbjogMi4xO1xuXG5AaW1wb3J0IFwiLi4vc3VcIjtcbkBpbXBvcnQgXCIuLi9vdXRwdXQvZmxvYXRcIjtcblxuQGltcG9ydCBcInN1c3kvc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJzdXN5L3ZhbGlkYXRpb25cIjtcbkBpbXBvcnQgXCJzdXN5L2dyaWRzXCI7XG5AaW1wb3J0IFwic3VzeS9ib3gtc2l6aW5nXCI7XG5AaW1wb3J0IFwic3VzeS9jb250ZXh0XCI7XG5AaW1wb3J0IFwic3VzeS9iYWNrZ3JvdW5kXCI7XG5AaW1wb3J0IFwic3VzeS9jb250YWluZXJcIjtcbkBpbXBvcnQgXCJzdXN5L3NwYW5cIjtcbkBpbXBvcnQgXCJzdXN5L2d1dHRlcnNcIjtcbkBpbXBvcnQgXCJzdXN5L2lzb2xhdGVcIjtcbkBpbXBvcnQgXCJzdXN5L2dhbGxlcnlcIjtcbkBpbXBvcnQgXCJzdXN5L3Jvd3NcIjtcbkBpbXBvcnQgXCJzdXN5L21hcmdpbnNcIjtcbkBpbXBvcnQgXCJzdXN5L3BhZGRpbmdcIjtcbkBpbXBvcnQgXCJzdXN5L2JsZWVkXCI7XG5AaW1wb3J0IFwic3VzeS9icmVha3BvaW50LXBsdWdpblwiO1xuIiwiLy8gU3Vcbi8vID09XG5cbkBpbXBvcnQgXCJzdS91dGlsaXRpZXNcIjtcbkBpbXBvcnQgXCJzdS9zZXR0aW5nc1wiO1xuQGltcG9ydCBcInN1L3ZhbGlkYXRpb25cIjtcbkBpbXBvcnQgXCJzdS9ncmlkXCI7XG4iLCIvLyBNYXAgRnVuY3Rpb25zXG4vLyA9PT09PT09PT09PT09XG5cblxuLy8gVHJ1bmNhdGUgTGlzdFxuLy8gLS0tLS0tLS0tLS0tLVxuLy8gLSBSZXR1cm4gYSBsaXN0LCB0cnVuY2F0ZWQgdG8gYSBnaXZlbiBsZW5ndGhcbkBmdW5jdGlvbiBfc3VzeS10cnVuY2F0ZS1saXN0KFxuICAkbGlzdCxcbiAgJGxlbmd0aFxuKSB7XG4gICRfcmV0dXJuOiAoKTtcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkbGlzdCkge1xuICAgICRfcmV0dXJuOiBpZigkaSA8PSAkbGVuZ3RoLCBhcHBlbmQoJF9yZXR1cm4sIG50aCgkbGlzdCwgJGkpKSwgJF9yZXR1cm4pO1xuICB9XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cblxuXG4vLyBEZWVwIEdldFxuLy8gLS0tLS0tLS1cbi8vIC0gUmV0dXJuIGEgdmFsdWUgZGVlcCBpbiBuZXN0ZWQgbWFwc1xuQGZ1bmN0aW9uIF9zdXN5LWRlZXAtZ2V0KFxuICAkbWFwLFxuICAka2V5cy4uLlxuKSB7XG4gICRfcmV0dXJuOiAkbWFwO1xuXG4gIEBlYWNoICRrZXkgaW4gJGtleXMge1xuICAgIEBpZiB0eXBlLW9mKCRfcmV0dXJuKSA9PSBtYXAge1xuICAgICAgJF9yZXR1cm46IG1hcC1nZXQoJF9yZXR1cm4sICRrZXkpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG5cblxuLy8gRGVlcCBTZXRcbi8vIC0tLS0tLS0tXG4vLyAtIFNldCBhIHZhbHVlIGRlZXAgaW4gbmVzdGVkIG1hcHNcbkBmdW5jdGlvbiBfc3VzeS1kZWVwLXNldChcbiAgJG1hcCxcbiAgJGtleXMtdmFsdWUuLi5cbikge1xuICAkX3ZhbHVlOiBudGgoJGtleXMtdmFsdWUsIC0xKTtcbiAgJF9rZXlzOiBfc3VzeS10cnVuY2F0ZS1saXN0KCRrZXlzLXZhbHVlLCBsZW5ndGgoJGtleXMtdmFsdWUpIC0gMSk7XG4gICRfbGVuZ3RoOiBsZW5ndGgoJF9rZXlzKTtcbiAgJF9yZXR1cm46ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJF9sZW5ndGgge1xuICAgICRfbjogMCAtICRpO1xuICAgICRfbGV2ZWw6IF9zdXN5LXRydW5jYXRlLWxpc3QoJF9rZXlzLCAkX2xlbmd0aCArICRfbik7XG4gICAgJF9sZXZlbDogX3N1c3ktZGVlcC1nZXQoJG1hcCwgJF9sZXZlbC4uLik7XG4gICAgJF9tZXJnZTogbnRoKCRfa2V5cywgJF9uKTtcbiAgICAkX21lcmdlOiAoJF9tZXJnZTogJF92YWx1ZSk7XG4gICAgJF9yZXR1cm46IGlmKCRfbGV2ZWwsIG1hcC1tZXJnZSgkX2xldmVsLCAkX21lcmdlKSwgJF9tZXJnZSk7XG4gICAgJF92YWx1ZTogJF9yZXR1cm47XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuXG5cbi8vIERlZXAgTWVyZ2Vcbi8vIC0tLS0tLS0tLS1cbi8vIFJldHVybiAyIG9iamVjdHMgb2YgYW55IGRlcHRoLCBtZXJnZWRcbkBmdW5jdGlvbiBfc3VzeS1kZWVwLW1lcmdlKFxuICAkbWFwMSxcbiAgJG1hcDJcbikge1xuXG4gIEBpZiB0eXBlLW9mKCRtYXAxKSAhPSBtYXAgb3IgdHlwZS1vZigkbWFwMikgIT0gbWFwIHtcbiAgICAkbWFwMTogJG1hcDI7XG4gIH0gQGVsc2Uge1xuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwMiB7XG4gICAgICAkX25ldzogKCRrZXk6IF9zdXN5X2RlZXAtbWVyZ2UobWFwLWdldCgkbWFwMSwgJGtleSksICR2YWx1ZSkpO1xuICAgICAgJG1hcDE6IG1hcC1tZXJnZSgkbWFwMSwgJF9uZXcpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG1hcDE7XG59XG5cblxuLy8gRGVlcCBIYXMtS2V5XG4vLyAtLS0tLS0tLS0tLS1cbi8vIC0gUmV0dXJuIHRydWUgaWYgYSBkZWVwIGtleSBleGlzdHNcbkBmdW5jdGlvbiBfc3VzeS1kZWVwLWhhcy1rZXkoXG4gICRtYXAsXG4gICRrZXlzLi4uXG4pIHtcbiAgJF9yZXR1cm46IG51bGw7XG4gICRfc3RvcDogZmFsc2U7XG5cbiAgQGVhY2ggJGtleSBpbiAka2V5cyB7XG4gICAgQGlmIG5vdCgkX3N0b3ApIHtcbiAgICAgICRfcmV0dXJuOiBtYXAtaGFzLWtleSgkbWFwLCAka2V5KTtcbiAgICB9XG5cbiAgICBAaWYgJF9yZXR1cm4ge1xuICAgICAgJG1hcDogbWFwLWdldCgkbWFwLCAka2V5KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRfc3RvcDogdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuIiwiLy8gU2V0dGluZ3Ncbi8vID09PT09PT09XG5cbi8vIFZlcnNpb25cbi8vIC0tLS0tLS1cbiRzdS12ZXJzaW9uOiAxLjE7XG5cblxuLy8gRGVmYXVsdCBTZXR0aW5nc1xuLy8gLS0tLS0tLS0tLS0tLS0tLVxuLy8gUFJJVkFURTogVGhlIGJhc2ljIHNldHRpbmdzXG4kc3VzeS1kZWZhdWx0czogKFxuICBjb2x1bW5zOiA0LFxuICBndXR0ZXJzOiAuMjUsXG4pO1xuXG5cbi8vIFVzZXIgU2V0dGluZ3Ncbi8vIC0tLS0tLS0tLS0tLS1cbi8vIC0gRGVmaW5lIHRoZSAkc3VzeSB2YXJpYWJsZSB3aXRoIGEgbWFwIG9mIHlvdXIgb3duIHNldHRpbmdzLlxuLy8gLSBTZXQgRUlUSEVSICRjb2x1bW4td2lkdGggT1IgJGNvbnRhaW5lclxuLy8gLSBVc2UgJGNvbHVtbi13aWR0aCBmb3Igc3RhdGljIGxheW91dHNcbiRzdXN5OiAoKSAhZGVmYXVsdDtcblxuXG4vLyBTdXN5IERlZmF1bHRzXG4vLyAtLS0tLS0tLS0tLS0tXG4vLyBQUklWQVRFOiBBZGQgZGVmYXVsdHMgdG8gU3VzeVxuQG1peGluIHN1c3ktZGVmYXVsdHMoXG4gICRkZWZhdWx0c1xuKSB7XG4gICRzdXN5LWRlZmF1bHRzOiBtYXAtbWVyZ2UoJHN1c3ktZGVmYXVsdHMsICRkZWZhdWx0cykgIWdsb2JhbDtcbn1cblxuXG4vLyBTdXN5IFNldFxuLy8gLS0tLS0tLS1cbi8vIENoYW5nZSBvbmUgc2V0dGluZ1xuLy8gLSAka2V5ICAgOiBzZXR0aW5nIG5hbWVcbi8vIC0gJHZhbHVlIDogc2V0dGluZyB2YWx1ZVxuQG1peGluIHN1c3ktc2V0KFxuICAka2V5LXZhbHVlLi4uXG4pIHtcbiAgJHN1c3k6IF9zdXN5LWRlZXAtc2V0KCRzdXN5LCAka2V5LXZhbHVlLi4uKSAhZ2xvYmFsO1xufVxuXG5cbi8vIFN1c3kgR2V0XG4vLyAtLS0tLS0tLVxuLy8gUmV0dXJuIG9uZSBzZXR0aW5nIGZyb20gYSBncmlkXG4vLyAtICRrZXkgICAgIDogPGtleXdvcmQ+XG4vLyAtICRsYXlvdXQgIDogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIHN1c3ktZ2V0KFxuICAka2V5LFxuICAkbGF5b3V0OiBtYXAtbWVyZ2UoJHN1c3ktZGVmYXVsdHMsICRzdXN5KVxuKSB7XG4gICRsYXlvdXQ6IHBhcnNlLWdyaWQoJGxheW91dCk7XG4gICRfb3B0aW9uczogJGxheW91dCAkc3VzeSAkc3VzeS1kZWZhdWx0cztcbiAgJF9icmVhazogZmFsc2U7XG4gICRfcmV0dXJuOiBudWxsO1xuXG4gIEBlYWNoICRvcHQgaW4gJF9vcHRpb25zIHtcbiAgICBAaWYgdHlwZS1vZigkb3B0KSA9PSBtYXAgYW5kIG5vdCgkX2JyZWFrKSB7XG4gICAgICAkX2tleXNldDogX3N1c3ktZGVlcC1oYXMta2V5KCRvcHQsICRrZXkuLi4pO1xuICAgICAgQGlmICRfa2V5c2V0IHtcbiAgICAgICAgJF9yZXR1cm46IF9zdXN5LWRlZXAtZ2V0KCRvcHQsICRrZXkuLi4pO1xuICAgICAgICAkX2JyZWFrOiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG4iLCIvLyBNYXRoIFZhbGlkYXRpb25cbi8vID09PT09PT09PT09PT09PVxuXG5cbi8vIFZhbGlkIENvbHVtbnNcbi8vIC0tLS0tLS0tLS0tLS1cbi8vIENoZWNrIHRoYXQgYSBjb2x1bW4gc2V0dGluZyBpcyB2YWxpZC5cbkBmdW5jdGlvbiB2YWxpZC1jb2x1bW5zKFxuICAkY29sdW1ucyxcbiAgJHNpbGVudDogZmFsc2Vcbikge1xuICAkdHlwZTogdHlwZS1vZigkY29sdW1ucyk7XG4gICRyZXR1cm46IG51bGw7XG5cbiAgQGlmICR0eXBlID09IG51bWJlciBhbmQgdW5pdGxlc3MoJGNvbHVtbnMpIHtcbiAgICAkcmV0dXJuOiAkY29sdW1ucztcbiAgfSBAZWxzZSBpZiAkdHlwZSA9PSBsaXN0IHtcbiAgICAkZmFpbDogbnVsbDtcbiAgICBAZWFjaCAkY29sIGluICRjb2x1bW5zIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRjb2wpID09IG51bWJlciB7XG4gICAgICAgICRmYWlsOiAkZmFpbCBvciBpZih1bml0bGVzcygkY29sKSwgbnVsbCwgdHJ1ZSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJGZhaWw6IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgICRyZXR1cm46IGlmKCRmYWlsLCAkcmV0dXJuLCAkY29sdW1ucyk7XG4gIH1cblxuICBAaWYgJHJldHVybiAhPSAkY29sdW1ucyBhbmQgbm90KCRzaWxlbnQpIHtcbiAgICAkcmV0dXJuOiBudWxsO1xuICAgICR3YXJuOiAnJGNvbHVtbnMgbXVzdCBiZSBhIHVuaXRsZXNzIG51bWJlciBvciBsaXN0IG9mIHVuaXRsZXNzIG51bWJlcnMuJztcbiAgICBAd2FybiAkd2FybiArICcgQ3VycmVudCB2YWx1ZSBbI3skdHlwZX1dOiAjeyRjb2x1bW5zfSc7XG4gIH1cblxuICBAcmV0dXJuICRyZXR1cm47XG59XG5cblxuLy8gVmFsaWQgR3V0dGVyc1xuLy8gLS0tLS0tLS0tLS0tLVxuLy8gQ2hlY2sgdGhhdCBhIGd1dHRlciBzZXR0aW5nIGlzIHZhbGlkLlxuQGZ1bmN0aW9uIHZhbGlkLWd1dHRlcnMoXG4gICRndXR0ZXJzLFxuICAkc2lsZW50OiBmYWxzZVxuKSB7XG4gICR0eXBlOiB0eXBlLW9mKCRndXR0ZXJzKTtcbiAgJHJldHVybjogbnVsbDtcblxuICBAaWYgJHR5cGUgPT0gbnVtYmVyIGFuZCB1bml0bGVzcygkZ3V0dGVycykge1xuICAgICRyZXR1cm46ICRndXR0ZXJzO1xuICB9IEBlbHNlIGlmIG5vdCgkc2lsZW50KSB7XG4gICAgJHdhcm46ICckZ3V0dGVycyBtdXN0IGJlIGEgdW5pdGxlc3MgbnVtYmVyLic7XG4gICAgQHdhcm4gJHdhcm4gKyAnIEN1cnJlbnQgdmFsdWUgWyN7JHR5cGV9XTogI3skZ3V0dGVyc30nO1xuICB9XG5cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuIiwiLy8gQ29sdW1uIG1hdGhcbi8vID09PT09PT09PT09XG5cblxuLy8gSXMgU3ltbWV0cmljYWxcbi8vIC0tLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm5zIHRydWUgaWYgYSBncmlkIGlzIHN5bW1ldHJpY2FsLlxuLy8gLSBbJGNvbHVtbnNdICAgOiA8bnVtYmVyPiB8IDxsaXN0PlxuQGZ1bmN0aW9uIGlzLXN5bW1ldHJpY2FsKFxuICAkY29sdW1uczogc3VzeS1nZXQoY29sdW1ucylcbikge1xuICAkY29sdW1uczogdmFsaWQtY29sdW1ucygkY29sdW1ucyk7XG4gIEByZXR1cm4gaWYodHlwZS1vZigkY29sdW1ucykgPT0gbnVtYmVyLCAkY29sdW1ucywgbnVsbCk7XG59XG5cblxuLy8gU3VzeSBDb3VudFxuLy8gLS0tLS0tLS0tLVxuLy8gRmluZCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgaW4gYSBnaXZlbiBsYXlvdXRcbi8vIC0gWyRjb2x1bW5zXSAgIDogPG51bWJlcj4gfCA8bGlzdD5cbkBmdW5jdGlvbiBzdXN5LWNvdW50KFxuICAkY29sdW1uczogc3VzeS1nZXQoY29sdW1ucylcbikge1xuICAkY29sdW1uczogdmFsaWQtY29sdW1ucygkY29sdW1ucyk7XG4gIEByZXR1cm4gaXMtc3ltbWV0cmljYWwoJGNvbHVtbnMpIG9yIGxlbmd0aCgkY29sdW1ucyk7XG59XG5cblxuLy8gU3VzeSBTdW1cbi8vIC0tLS0tLS0tXG4vLyBGaW5kIHRoZSB0b3RhbCBzdW0gb2YgY29sdW1uLXVuaXRzIGluIGEgbGF5b3V0XG4vLyAtIFskY29sdW1uc10gICA6IDxudW1iZXI+IHwgPGxpc3Q+XG4vLyAtIFskZ3V0dGVyc10gICA6IDxyYXRpbz5cbi8vIC0gWyRzcHJlYWRdICAgIDogZmFsc2UvbmFycm93IHwgd2lkZSB8IHdpZGVyXG5AZnVuY3Rpb24gc3VzeS1zdW0oXG4gICRjb2x1bW5zICA6IHN1c3ktZ2V0KGNvbHVtbnMpLFxuICAkZ3V0dGVycyAgOiBzdXN5LWdldChndXR0ZXJzKSxcbiAgJHNwcmVhZCAgIDogZmFsc2Vcbikge1xuICAkY29sdW1uczogdmFsaWQtY29sdW1ucygkY29sdW1ucyk7XG4gICRndXR0ZXJzOiB2YWxpZC1ndXR0ZXJzKCRndXR0ZXJzKTtcblxuICAkc3ByZWFkOiBpZigkc3ByZWFkID09IHdpZGUsIDAsIGlmKCRzcHJlYWQgPT0gd2lkZXIsIDEsIC0xKSk7XG4gICRndXR0ZXItc3VtOiAoc3VzeS1jb3VudCgkY29sdW1ucykgKyAkc3ByZWFkKSAqICRndXR0ZXJzO1xuICAkY29sdW1uLXN1bTogaXMtc3ltbWV0cmljYWwoJGNvbHVtbnMpO1xuXG4gIEBpZiBub3QoJGNvbHVtbi1zdW0pIHtcbiAgICBAZWFjaCAkY29sdW1uIGluICRjb2x1bW5zIHtcbiAgICAgICRjb2x1bW4tc3VtOiAoJGNvbHVtbi1zdW0gb3IgMCkgKyAkY29sdW1uO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGNvbHVtbi1zdW0gKyAkZ3V0dGVyLXN1bTtcbn1cblxuXG4vLyBTdXN5IFNsaWNlXG4vLyAtLS0tLS0tLS0tXG4vLyBSZXR1cm4gYSBzdWJzZXQgb2YgY29sdW1ucyBhdCBhIGdpdmVuIGxvY2F0aW9uLlxuLy8gLSAkc3BhbiAgICAgICAgOiA8bnVtYmVyPlxuLy8gLSAkbG9jYXRpb24gICAgOiA8bnVtYmVyPlxuLy8gLSBbJGNvbHVtbnNdICAgOiA8bnVtYmVyPiB8IDxsaXN0PlxuQGZ1bmN0aW9uIHN1c3ktc2xpY2UoXG4gICRzcGFuLFxuICAkbG9jYXRpb24sXG4gICRjb2x1bW5zOiBzdXN5LWdldChjb2x1bW5zKVxuKSB7XG4gICRjb2x1bW5zOiB2YWxpZC1jb2x1bW5zKCRjb2x1bW5zKTtcbiAgJHN1Yi1jb2x1bW5zOiAkc3BhbjtcblxuICBAaWYgbm90KGlzLXN5bW1ldHJpY2FsKCRjb2x1bW5zKSkge1xuICAgICRsb2NhdGlvbjogJGxvY2F0aW9uIG9yIDE7XG4gICAgJHN1Yi1jb2x1bW5zOiAoKTtcbiAgICBAZm9yICRpIGZyb20gJGxvY2F0aW9uIHRvICgkbG9jYXRpb24gKyAkc3Bhbikge1xuICAgICAgJHN1Yi1jb2x1bW5zOiBhcHBlbmQoJHN1Yi1jb2x1bW5zLCBudGgoJGNvbHVtbnMsICRpKSk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3ViLWNvbHVtbnM7XG59XG5cblxuLy8gU3VzeVxuLy8gLS0tLVxuLy8gRmluZCB0aGUgc3VtIG9mIGEgY29sdW1uLXNwYW4uXG4vLyAtICRzcGFuICAgICAgICA6IDxudW1iZXI+XG4vLyAtICRsb2NhdGlvbiAgICA6IDxudW1iZXI+XG4vLyAtIFskY29sdW1uc10gICA6IDxudW1iZXI+IHwgPGxpc3Q+XG4vLyAtIFskZ3V0dGVyc10gICA6IDxyYXRpbz5cbi8vIC0gWyRzcHJlYWRdICAgIDogZmFsc2UvbmFycm93IHwgd2lkZSB8IHdpZGVyXG5AZnVuY3Rpb24gc3VzeShcbiAgJHNwYW4sXG4gICRsb2NhdGlvbiAgICAgOiBmYWxzZSxcbiAgJGNvbHVtbnMgICAgICA6IHN1c3ktZ2V0KGNvbHVtbnMpLFxuICAkZ3V0dGVycyAgICAgIDogc3VzeS1nZXQoZ3V0dGVycyksXG4gICRzcHJlYWQgICAgICAgOiBmYWxzZVxuKSB7XG4gICRjb2x1bW5zOiB2YWxpZC1jb2x1bW5zKCRjb2x1bW5zKTtcbiAgJGd1dHRlcnM6IHZhbGlkLWd1dHRlcnMoJGd1dHRlcnMpO1xuICAkc3Bhbjogc3VzeS1zbGljZSgkc3BhbiwgJGxvY2F0aW9uLCAkY29sdW1ucyk7XG5cbiAgQHJldHVybiBzdXN5LXN1bSgkc3BhbiwgJGd1dHRlcnMsICRzcHJlYWQpO1xufVxuIiwiLy8gRmxvYXQgQVBJXG4vLyA9PT09PT09PT1cblxuQGltcG9ydCBcInNoYXJlZFwiO1xuXG5AaW1wb3J0IFwiZmxvYXQvY29udGFpbmVyXCI7XG5AaW1wb3J0IFwiZmxvYXQvc3BhblwiO1xuQGltcG9ydCBcImZsb2F0L2VuZFwiO1xuQGltcG9ydCBcImZsb2F0L2lzb2xhdGVcIjtcbiIsIi8vIFNoYXJlZCBBUElcbi8vID09PT09PT09PT1cblxuQGltcG9ydCBcInN1cHBvcnRcIjtcblxuQGltcG9ydCBcInNoYXJlZC9pbnNwZWN0XCI7XG5AaW1wb3J0IFwic2hhcmVkL291dHB1dFwiO1xuQGltcG9ydCBcInNoYXJlZC9kaXJlY3Rpb25cIjtcbkBpbXBvcnQgXCJzaGFyZWQvYmFja2dyb3VuZFwiO1xuQGltcG9ydCBcInNoYXJlZC9jb250YWluZXJcIjtcbkBpbXBvcnQgXCJzaGFyZWQvbWFyZ2luc1wiO1xuQGltcG9ydCBcInNoYXJlZC9wYWRkaW5nXCI7XG5cblxuXG4iLCIvLyBTdXN5IEJyb3dzZXIgU3VwcG9ydFxuLy8gPT09PT09PT09PT09PT09PT09PT1cblxuQGltcG9ydCBcInN1cHBvcnQvc3VwcG9ydFwiO1xuQGltcG9ydCBcInN1cHBvcnQvcHJlZml4XCI7XG5AaW1wb3J0IFwic3VwcG9ydC9iYWNrZ3JvdW5kXCI7XG5AaW1wb3J0IFwic3VwcG9ydC9ib3gtc2l6aW5nXCI7XG5AaW1wb3J0IFwic3VwcG9ydC9yZW1cIjtcbkBpbXBvcnQgXCJzdXBwb3J0L2NsZWFyZml4XCI7XG4iLCIvLyBCcm93c2VyIFN1cHBvcnRcbi8vID09PT09PT09PT09PT09PVxuXG4vLyBTdXN5IFN1cHBvcnQgRGVmYXVsdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGluY2x1ZGUgc3VzeS1kZWZhdWx0cygoXG4gIHVzZS1jdXN0b206IChcbiAgICBjbGVhcmZpeDogZmFsc2UsXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdHJ1ZSxcbiAgICBiYWNrZ3JvdW5kLW9wdGlvbnM6IGZhbHNlLFxuICAgIGJyZWFrcG9pbnQ6IHRydWUsXG4gICAgYm94LXNpemluZzogdHJ1ZSxcbiAgICByZW06IHRydWUsXG4gICksXG4pKTtcblxuXG4vLyBTdXN5IFN1cHBvcnQgW21peGluXVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNlbmQgcHJvcGVydHktdmFsdWUgcGFpcnMgdG8gdGhlIHByb3BlciBzdXBwb3J0IG1vZHVsZXMuXG4vLyAtICRwcm9wICA6IDxjc3MgcHJvcGVydHk+XG4vLyAtICR2YWwgICA6IDxjc3MgdmFsdWU+XG5AbWl4aW4gc3VzeS1zdXBwb3J0KFxuICAkcHJvcCxcbiAgJHZhbFxuKSB7XG4gIC8vIEJhY2tncm91bmQgU3VwcG9ydFxuICBAaWYgJHByb3AgPT0gYmFja2dyb3VuZC1pbWFnZSB7XG4gICAgQGluY2x1ZGUgc3VzeS1iYWNrZ3JvdW5kLWltYWdlKCR2YWwpO1xuICB9IEBlbHNlIGlmICRwcm9wID09IGJhY2tncm91bmQtc2l6ZSB7XG4gICAgQGluY2x1ZGUgc3VzeS1iYWNrZ3JvdW5kLXNpemUoJHZhbCk7XG4gIH0gQGVsc2UgaWYgJHByb3AgPT0gYmFja2dyb3VuZC1vcmlnaW4ge1xuICAgIEBpbmNsdWRlIHN1c3ktYmFja2dyb3VuZC1vcmlnaW4oJHZhbCk7XG4gIH0gQGVsc2UgaWYgJHByb3AgPT0gYmFja2dyb3VuZC1jbGlwIHtcbiAgICBAaW5jbHVkZSBzdXN5LWJhY2tncm91bmQtY2xpcCgkdmFsKTtcbiAgfVxuXG4gIC8vIEJveC1TaXppbmcgU3VwcG9ydFxuICBAZWxzZSBpZiAkcHJvcCA9PSBib3gtc2l6aW5nIHtcbiAgICBAaW5jbHVkZSBzdXN5LWJveC1zaXppbmcoJHZhbCk7XG4gIH1cblxuICAvLyBSZW0gU3VwcG9ydFxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgc3VzeS1yZW0oJHByb3AsICR2YWwpO1xuICB9XG59XG5cblxuLy8gU3VzeSBTdXBwb3J0IFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDaGVjayBmb3Igc3VwcG9ydCBvZiBhIGZlYXR1cmUuXG4vLyAtICRmZWF0dXJlICAgICAgIDogPHN0cmluZz5cbi8vICAgICAgICAgICAgICAgICAgICAtIGUuZyBcInJlbVwiIG9yIFwiYm94LXNpemluZ1wiXG4vLyAtICRyZXF1aXJlbWVudHMgIDogPG1hcD5cbi8vICAgICAgICAgICAgICAgICAgICAtIGUuZyAodmFyaWFibGU6IHJlbS13aXRoLXB4LWZhbGxiYWNrLCBtaXhpbjogcmVtKVxuLy8gLSAkd2FybiAgICAgICAgICA6IDxib29sPlxuQGZ1bmN0aW9uIHN1c3ktc3VwcG9ydChcbiAgJGZlYXR1cmUsXG4gICRyZXF1aXJlbWVudHM6ICgpLFxuICAkd2FybjogdHJ1ZVxuKSB7XG4gICRfc3VwcG9ydDogc3VzeS1nZXQodXNlLWN1c3RvbSAkZmVhdHVyZSk7XG5cbiAgQGlmICRfc3VwcG9ydCB7XG4gICAgJF9mYWlsOiBmYWxzZTtcblxuICAgIEBlYWNoICRfdHlwZSwgJF9yZXEgaW4gJHJlcXVpcmVtZW50cyB7XG4gICAgICBAZWFjaCAkX2kgaW4gJF9yZXEge1xuXG4gICAgICAgICRfcGFzcyA6IG51bGw7XG5cbiAgICAgICAgLy8gc2FzcyAzLjUgb3IgZ3JlYXRlclxuICAgICAgICBAaWYgZnVuY3Rpb24tZXhpc3RzKCdnZXQtZnVuY3Rpb24nKSB7XG4gICAgICAgICAgJF9wYXNzOiBjYWxsKGdldC1mdW5jdGlvbih1bnF1b3RlKFwiI3skX3R5cGV9LWV4aXN0c1wiKSksICRfaSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gc2FzcyAzLjQgb3IgbGVzc1xuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgJF9wYXNzOiBjYWxsKHVucXVvdGUoXCIjeyRfdHlwZX0tZXhpc3RzXCIpLCAkX2kpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmIG5vdCgkX3Bhc3MpIHtcbiAgICAgICAgICAkX2ZhaWw6IHRydWU7XG4gICAgICAgICAgQGlmICR3YXJuIHtcbiAgICAgICAgICAgIEB3YXJuIFwiWW91IHJlcXVlc3RlZCBjdXN0b20gc3VwcG9ydCBvZiAjeyRmZWF0dXJlfSwgYnV0IHRoZSAjeyRfaX0gI3skX3R5cGV9IGlzIG5vdCBhdmFpbGFibGUuXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJF9zdXBwb3J0OiBpZigkX2ZhaWwsIGZhbHNlLCAkX3N1cHBvcnQpO1xuICB9XG5cbiAgQHJldHVybiAkX3N1cHBvcnQ7XG59XG4iLCIvLyBTdXN5IFByZWZpeFxuLy8gPT09PT09PT09PT1cblxuLy8gUHJlZml4XG4vLyAtLS0tLS1cbi8vIE91dHB1dCBzaW1wbGUgcHJlZml4ZWQgcHJvcGVydGllcy5cbi8vIC0gJHByb3AgICAgICA6IDxjc3MgcHJvcGVydHk+XG4vLyAtICR2YWwgICAgICAgOiA8Y3NzIHZhbHVlPlxuLy8gLSBbJHByZWZpeF0gIDogPGJyb3dzZXIgcHJlZml4IGxpc3Q+XG5AbWl4aW4gc3VzeS1wcmVmaXgoXG4gICRwcm9wLFxuICAkdmFsLFxuICAkcHJlZml4OiBvZmZpY2lhbFxuKSB7XG4gIEBlYWNoICRmaXggaW4gJHByZWZpeCB7XG4gICAgJGZpeDogaWYoJGZpeCA9PSBvZmZpY2lhbCBvciBub3QoJGZpeCksICRwcm9wLCAnLSN7JGZpeH0tI3skcHJvcH0nKTtcbiAgICBAaW5jbHVkZSBzdXN5LXJlbSgkZml4LCAkdmFsKTtcbiAgfVxufVxuIiwiLy8gQmFja2dyb3VuZCBQcm9wZXJ0aWVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT1cblxuLy8gU3VzeSBCYWNrZ3JvdW5kIEltYWdlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENoZWNrIGZvciBhbiBleGlzdGluZyBzdXBwb3J0IG1peGluLCBvciBwcm92aWRlIGEgc2ltcGxlIGZhbGxiYWNrLlxuLy8gLSAkaW1hZ2U6IDxiYWNrZ3JvdW5kLWltYWdlPlxuQG1peGluIHN1c3ktYmFja2dyb3VuZC1pbWFnZShcbiAgJGltYWdlXG4pIHtcbiAgQGlmIHN1c3ktc3VwcG9ydChiYWNrZ3JvdW5kLWltYWdlLCAobWl4aW46IGJhY2tncm91bmQtaW1hZ2UpLCAkd2FybjogZmFsc2UpIHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWltYWdlKCRpbWFnZS4uLik7XG4gIH0gQGVsc2Uge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICRpbWFnZTtcbiAgfVxufVxuXG4vLyBTdXN5IEJhY2tncm91bmQgU2l6ZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDaGVjayBmb3IgYW4gZXhpc3Rpbmcgc3VwcG9ydCBtaXhpbiwgb3IgcHJvdmlkZSBhIHNpbXBsZSBmYWxsYmFjay5cbi8vIC0gJGltYWdlOiA8YmFja2dyb3VuZC1zaXplPlxuQG1peGluIHN1c3ktYmFja2dyb3VuZC1zaXplKFxuICAkc2l6ZVxuKSB7XG4gIEBpZiBzdXN5LXN1cHBvcnQoYmFja2dyb3VuZC1vcHRpb25zLCAobWl4aW46IGJhY2tncm91bmQtc2l6ZSkpIHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLXNpemUoJHNpemUpO1xuICB9IEBlbHNlIHtcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRzaXplO1xuICB9XG59XG5cbi8vIFN1c3kgQmFja2dyb3VuZCBPcmlnaW5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENoZWNrIGZvciBhbiBleGlzdGluZyBzdXBwb3J0IG1peGluLCBvciBwcm92aWRlIGEgc2ltcGxlIGZhbGxiYWNrLlxuLy8gLSAkaW1hZ2U6IDxiYWNrZ3JvdW5kLW9yaWdpbj5cbkBtaXhpbiBzdXN5LWJhY2tncm91bmQtb3JpZ2luKFxuICAkb3JpZ2luXG4pIHtcbiAgQGlmIHN1c3ktc3VwcG9ydChiYWNrZ3JvdW5kLW9wdGlvbnMsIChtaXhpbjogYmFja2dyb3VuZC1vcmlnaW4pKSB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC1vcmlnaW4oJG9yaWdpbik7XG4gIH0gQGVsc2Uge1xuICAgIGJhY2tncm91bmQtb3JpZ2luOiAkb3JpZ2luO1xuICB9XG59XG5cbi8vIFN1c3kgQmFja2dyb3VuZCBDbGlwXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ2hlY2sgZm9yIGFuIGV4aXN0aW5nIHN1cHBvcnQgbWl4aW4sIG9yIHByb3ZpZGUgYSBzaW1wbGUgZmFsbGJhY2suXG4vLyAtICRpbWFnZTogPGJhY2tncm91bmQtY2xpcD5cbkBtaXhpbiBzdXN5LWJhY2tncm91bmQtY2xpcChcbiAgJGNsaXBcbikge1xuICBAaWYgc3VzeS1zdXBwb3J0KGJhY2tncm91bmQtb3B0aW9ucywgKG1peGluOiBiYWNrZ3JvdW5kLWNsaXApKSB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC1jbGlwKCRjbGlwKTtcbiAgfSBAZWxzZSB7XG4gICAgYmFja2dyb3VuZC1jbGlwOiAkY2xpcDtcbiAgfVxufVxuIiwiLy8gQm94IFNpemluZ1xuLy8gPT09PT09PT09PVxuXG4vLyBCb3ggU2l6aW5nXG4vLyAtLS0tLS0tLS0tXG4vLyBDaGVjayBmb3IgYW4gZXhpc3Rpbmcgc3VwcG9ydCBtaXhpbiwgb3IgcHJvdmlkZSBhIHNpbXBsZSBmYWxsYmFjay5cbi8vIC0gJG1vZGVsOiA8Ym94LXNpemluZz5cbkBtaXhpbiBzdXN5LWJveC1zaXppbmcoXG4gICRtb2RlbDogY29udGVudC1ib3hcbikge1xuICBAaWYgJG1vZGVsIHtcbiAgICBAaWYgc3VzeS1zdXBwb3J0KGJveC1zaXppbmcsIChtaXhpbjogYm94LXNpemluZyksICR3YXJuOiBmYWxzZSkge1xuICAgICAgQGluY2x1ZGUgYm94LXNpemluZygkbW9kZWwpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHByZWZpeDogKG1veiwgd2Via2l0LCBvZmZpY2lhbCk7XG4gICAgICBAaW5jbHVkZSBzdXN5LXByZWZpeChib3gtc2l6aW5nLCAkbW9kZWwsICRwcmVmaXgpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gcmVtIFN1cHBvcnRcbi8vID09PT09PT09PT09XG5cbi8vIHJlbVxuLy8gLS0tXG4vLyBDaGVjayBmb3IgYW4gZXhpc3Rpbmcgc3VwcG9ydCBtaXhpbiwgb3Igb3V0cHV0IGRpcmVjdGx5LlxuLy8gLSAkcHJvcCAgOiA8Y3NzIHByb3BlcnR5PlxuLy8gLSAkdmFsICAgOiA8Y3NzIHZhbHVlPlxuQG1peGluIHN1c3ktcmVtKFxuICAkcHJvcCxcbiAgJHZhbFxuKSB7XG4gICRfcmVxczogKFxuICAgIHZhcmlhYmxlOiByaHl0aG0tdW5pdCByZW0td2l0aC1weC1mYWxsYmFjayxcbiAgICBtaXhpbjogcmVtLFxuICApO1xuICBAaWYgc3VzeS1zdXBwb3J0KHJlbSwgJF9yZXFzLCAkd2FybjogZmFsc2UpIGFuZCAkcmh5dGhtLXVuaXQgPT0gcmVtIHtcbiAgICBAaW5jbHVkZSByZW0oJHByb3AsICR2YWwpO1xuICB9IEBlbHNlIHtcbiAgICAjeyRwcm9wfTogJHZhbDtcbiAgfVxufVxuIiwiLy8gU3VzeSBGYWxsYmFjayBDbGVhcmZpeFxuLy8gPT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIENsZWFyZml4XG4vLyAtLS0tLS0tLVxuLy8gQ2hlY2sgZm9yIGFuIGV4aXN0aW5nIHN1cHBvcnQgbWl4aW4sIG9yIHByb3ZpZGUgYSBzaW1wbGUgZmFsbGJhY2suXG5AbWl4aW4gc3VzeS1jbGVhcmZpeCB7XG4gIEBpZiBzdXN5LXN1cHBvcnQoY2xlYXJmaXgsIChtaXhpbjogY2xlYXJmaXgpKSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH0gQGVsc2Uge1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRGVidWdnaW5nXG4vLyA9PT09PT09PT1cblxuLy8gU3VzeSBJbnNwZWN0XG4vLyAtLS0tLS0tLS0tLS1cbi8vIE91dHB1dCBhcmd1bWVudHMgcGFzc2VkIHRvIGEgaW5zcGVjdC5cbi8vIC0gJG1peGluICA6IDxzdXN5IG1peGluPlxuLy8gLSAkaW5zcGVjICAgOiA8bWl4aW4gYXJndW1lbnRzPlxuXG5AbWl4aW4gc3VzeS1pbnNwZWN0KFxuICAkbWl4aW4sXG4gICRpbnNwZWN0XG4pIHtcbiAgJHNob3c6IGZhbHNlO1xuXG4gIEBlYWNoICRpdGVtIGluICRpbnNwZWN0IHtcbiAgICBAaWYgaW5kZXgoJGl0ZW0sIGluc3BlY3QpIHtcbiAgICAgICRzaG93OiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkc2hvdyBvciBzdXN5LWdldChkZWJ1ZyBpbnNwZWN0KSB7XG4gICAgLXN1c3ktI3skbWl4aW59OiBpbnNwZWN0KCRpbnNwZWN0KTtcbiAgfVxufVxuIiwiLy8gT3V0cHV0XG4vLyA9PT09PT1cblxuLy8gT3V0cHV0XG4vLyAtLS0tLS1cbi8vIE91dHB1dCBDU1Mgd2l0aCBwcm9wZXIgYnJvd3NlciBzdXBwb3J0LlxuLy8gLSAkc3R5bGVzICA6IDxtYXAgb2YgY3NzIHByb3BlcnR5LXZhbHVlIHBhaXJzPlxuQG1peGluIG91dHB1dChcbiAgJHN0eWxlc1xuKSB7XG4gIEBlYWNoICRwcm9wLCAkdmFsIGluICRzdHlsZXMge1xuICAgIEBpbmNsdWRlIHN1c3ktc3VwcG9ydCgkcHJvcCwgJHZhbCk7XG4gIH1cbn1cbiIsIi8vIERpcmVjdGlvbiBIZWxwZXJzXG4vLyA9PT09PT09PT09PT09PT09PVxuXG4vLyBTdXN5IEZsb3cgRGVmYXVsdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSBQUklWQVRFXG5AaW5jbHVkZSBzdXN5LWRlZmF1bHRzKChcbiAgZmxvdzogbHRyLFxuKSk7XG5cbi8vIEdldCBEaXJlY3Rpb25cbi8vIC0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgJ2Zyb20nIG9yICd0bycgZGlyZWN0aW9uIG9mIGEgbHRyIG9yIHJ0bCBmbG93LlxuLy8gLSBbJGZsb3ddICA6IGx0ciB8IHJ0bFxuLy8gLSBbJGtleV0gICA6IGZyb20gfCB0b1xuQGZ1bmN0aW9uIGdldC1kaXJlY3Rpb24oXG4gICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KSxcbiAgJGtleTogZnJvbVxuKSB7XG4gICRyZXR1cm46IGlmKCRmbG93ID09IHJ0bCwgKGZyb206IHJpZ2h0LCB0bzogbGVmdCksIChmcm9tOiBsZWZ0LCB0bzogcmlnaHQpKTtcbiAgQHJldHVybiBtYXAtZ2V0KCRyZXR1cm4sICRrZXkpO1xufVxuXG4vLyBUb1xuLy8gLS1cbi8vIFJldHVybiB0aGUgJ3RvJyBkaXJlY3Rpb24gb2YgYSBmbG93XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AZnVuY3Rpb24gdG8oXG4gICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KVxuKSB7XG4gIEByZXR1cm4gZ2V0LWRpcmVjdGlvbigkZmxvdywgdG8pO1xufVxuXG4vLyBGcm9tXG4vLyAtLS0tXG4vLyBSZXR1cm4gdGhlICdmcm9tJyBkaXJlY3Rpb24gb2YgYSBmbG93XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AZnVuY3Rpb24gZnJvbShcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgQHJldHVybiBnZXQtZGlyZWN0aW9uKCRmbG93LCBmcm9tKTtcbn1cbiIsIi8vIEdyaWQgQmFja2dyb3VuZCBBUElcbi8vID09PT09PT09PT09PT09PT09PT1cbi8vIC0gU3ViLXBpeGVsIHJvdW5kaW5nIGNhbiBsZWFkIHRvIHNldmVyYWwgcGl4ZWxzIHZhcmlhdGlvbiBiZXR3ZWVuIGJyb3dzZXJzLlxuXG4vLyBHcmlkIEJhY2tncm91bmQgT3V0cHV0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtICRpbWFnZTogYmFja2dyb3VuZC1pbWFnZVxuLy8gLSAkc2l6ZTogYmFja2dyb3VuZC1zaXplXG4vLyAtICRjbGlwOiBiYWNrZ3JvdW5kLWNsaXBcbi8vIC0gWyRmbG93XTogbHRyIHwgcnRsXG5AbWl4aW4gYmFja2dyb3VuZC1ncmlkLW91dHB1dCAoXG4gICRpbWFnZSxcbiAgJHNpemU6IG51bGwsXG4gICRjbGlwOiBudWxsLFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdylcbikge1xuICAkb3V0cHV0OiAoXG4gICAgYmFja2dyb3VuZC1pbWFnZTogJGltYWdlLFxuICAgIGJhY2tncm91bmQtc2l6ZTogJHNpemUsXG4gICAgYmFja2dyb3VuZC1vcmlnaW46ICRjbGlwLFxuICAgIGJhY2tncm91bmQtY2xpcDogJGNsaXAsXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogZnJvbSgkZmxvdykgdG9wLFxuICApO1xuXG4gIEBpbmNsdWRlIG91dHB1dCgkb3V0cHV0KTtcbn1cbiIsIi8vIFNoYXJlZCBDb250YWluZXIgQVBJXG4vLyA9PT09PT09PT09PT09PT09PT09PVxuXG4vLyBDb250YWluZXIgT3V0cHV0XG4vLyAtLS0tLS0tLS0tLS0tLS0tXG4vLyAtIFskd2lkdGhdICAgICAgICAgOiA8bGVuZ3RoPlxuLy8gLSBbJGp1c3RpZnldICAgICAgIDogbGVmdCB8IGNlbnRlciB8IHJpZ2h0XG4vLyAtIFskbWF0aF0gICAgICAgICAgOiBmbHVpZCB8IHN0YXRpY1xuQG1peGluIGNvbnRhaW5lci1vdXRwdXQoXG4gICR3aWR0aCxcbiAgJGp1c3RpZnk6IGF1dG8gYXV0byxcbiAgJHByb3BlcnR5OiBtYXgtd2lkdGhcbikge1xuICAkb3V0cHV0OiAoXG4gICAgI3skcHJvcGVydHl9OiAkd2lkdGggb3IgMTAwJSxcbiAgICBtYXJnaW4tbGVmdDogbnRoKCRqdXN0aWZ5LCAxKSxcbiAgICBtYXJnaW4tcmlnaHQ6IG50aCgkanVzdGlmeSwgMiksXG4gICk7XG5cbiAgQGluY2x1ZGUgb3V0cHV0KCRvdXRwdXQpO1xufVxuIiwiLy8gTWFyZ2lucyBBUElcbi8vID09PT09PT09PT09XG5cbi8vIE1hcmdpbiBPdXRwdXRcbi8vIC0tLS0tLS0tLS0tLS1cbi8vIC0gJGJlZm9yZSAgOiA8bGVuZ3RoPlxuLy8gLSAkYWZ0ZXIgICA6IDxsZW5ndGg+XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AbWl4aW4gbWFyZ2luLW91dHB1dChcbiAgJGJlZm9yZSxcbiAgJGFmdGVyLFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdylcbikge1xuICAkdG86IHRvKCRmbG93KTtcbiAgJGZyb206IGZyb20oJGZsb3cpO1xuXG4gICRvdXRwdXQ6IChcbiAgICBtYXJnaW4tI3skZnJvbX06ICRiZWZvcmUsXG4gICAgbWFyZ2luLSN7JHRvfTogJGFmdGVyLFxuICApO1xuXG4gIEBpbmNsdWRlIG91dHB1dCgkb3V0cHV0KTtcbn1cbiIsIi8vIFBhZGRpbmcgQVBJXG4vLyA9PT09PT09PT09PVxuXG4vLyBQYWRkaW5nIE91dHB1dFxuLy8gLS0tLS0tLS0tLS0tLS1cbi8vIC0gJGJlZm9yZSAgOiA8bGVuZ3RoPlxuLy8gLSAkYWZ0ZXIgICA6IDxsZW5ndGg+XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AbWl4aW4gcGFkZGluZy1vdXRwdXQoXG4gICRiZWZvcmUsXG4gICRhZnRlcixcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgJHRvOiB0bygkZmxvdyk7XG4gICRmcm9tOiBmcm9tKCRmbG93KTtcblxuICAkb3V0cHV0OiAoXG4gICAgcGFkZGluZy0jeyRmcm9tfTogJGJlZm9yZSxcbiAgICBwYWRkaW5nLSN7JHRvfTogJGFmdGVyLFxuICApO1xuXG4gIEBpbmNsdWRlIG91dHB1dCgkb3V0cHV0KTtcbn1cbiIsIi8vIEZsb2F0IENvbnRhaW5lciBBUElcbi8vID09PT09PT09PT09PT09PT09PT1cblxuLy8gRmxvYXQgQ29udGFpbmVyXG4vLyAtLS0tLS0tLS0tLS0tLS1cbi8vIC0gWyR3aWR0aF0gICAgICAgICA6IDxsZW5ndGg+XG4vLyAtIFskanVzdGlmeV0gICAgICAgOiBsZWZ0IHwgY2VudGVyIHwgcmlnaHRcbi8vIC0gWyRtYXRoXSAgIDogZmx1aWQgfCBzdGF0aWNcbkBtaXhpbiBmbG9hdC1jb250YWluZXIoXG4gICR3aWR0aCxcbiAgJGp1c3RpZnk6IGF1dG8gYXV0byxcbiAgJHByb3BlcnR5OiBtYXgtd2lkdGhcbikge1xuICBAaW5jbHVkZSBzdXN5LWNsZWFyZml4O1xuICBAaW5jbHVkZSBjb250YWluZXItb3V0cHV0KCR3aWR0aCwgJGp1c3RpZnksICRwcm9wZXJ0eSk7XG59XG4iLCIvLyBGbG9hdCBTcGFuIEFQSVxuLy8gPT09PT09PT09PT09PT1cblxuLy8gRmxvYXQgU3BhbiBPdXRwdXRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtICR3aWR0aCAgICAgICAgICAgICA6IDxsZW5ndGg+XG4vLyAtIFskZmxvYXRdICAgICAgICAgICA6IGZyb20gfCB0b1xuLy8gLSBbJG1hcmdpbi1iZWZvcmVdICAgOiA8bGVuZ3RoPlxuLy8gLSBbJG1hcmdpbi1hZnRlcl0gICAgOiA8bGVuZ3RoPlxuLy8gLSBbJHBhZGRpbmctYmVmb3JlXSAgOiA8bGVuZ3RoPlxuLy8gLSBbJHBhZGRpbmctYWZ0ZXJdICAgOiA8bGVuZ3RoPlxuLy8gLSBbJGZsb3ddICAgICAgICAgICAgOiBsdHIgfCBydGxcbkBtaXhpbiBmbG9hdC1zcGFuLW91dHB1dChcbiAgJHdpZHRoLFxuICAkZmxvYXQgICAgICAgICAgICA6IGZyb20sXG4gICRtYXJnaW4tYmVmb3JlICAgIDogbnVsbCxcbiAgJG1hcmdpbi1hZnRlciAgICAgOiBudWxsLFxuICAkcGFkZGluZy1iZWZvcmUgICA6IG51bGwsXG4gICRwYWRkaW5nLWFmdGVyICAgIDogbnVsbCxcbiAgJGZsb3cgICAgICAgICAgICAgOiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KVxuKSB7XG4gICR0byAgICAgOiB0bygkZmxvdyk7XG4gICRmcm9tICAgOiBmcm9tKCRmbG93KTtcblxuICAkb3V0cHV0OiAoXG4gICAgd2lkdGg6ICR3aWR0aCxcbiAgICBmbG9hdDogaWYoJGZsb2F0ID09IHRvLCAkdG8sIG51bGwpIG9yIGlmKCRmbG9hdCA9PSBmcm9tLCAkZnJvbSwgbnVsbCksXG4gICAgbWFyZ2luLSN7JGZyb219OiAkbWFyZ2luLWJlZm9yZSxcbiAgICBtYXJnaW4tI3skdG99OiAkbWFyZ2luLWFmdGVyLFxuICAgIHBhZGRpbmctI3skZnJvbX06ICRwYWRkaW5nLWJlZm9yZSxcbiAgICBwYWRkaW5nLSN7JHRvfTogJHBhZGRpbmctYWZ0ZXIsXG4gICk7XG5cbiAgQGluY2x1ZGUgb3V0cHV0KCRvdXRwdXQpO1xufVxuIiwiLy8gRmxvYXQgRW5kcyBBUElcbi8vID09PT09PT09PT09PT09XG5cbi8vIFN1c3kgRW5kIERlZmF1bHRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSBQUklWQVRFXG5AaW5jbHVkZSBzdXN5LWRlZmF1bHRzKChcbiAgbGFzdC1mbG93OiB0byxcbikpO1xuXG4vLyBGbG9hdCBMYXN0XG4vLyAtLS0tLS0tLS0tXG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AbWl4aW4gZmxvYXQtbGFzdChcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpLFxuICAkbGFzdC1mbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBsYXN0LWZsb3cpLFxuICAkbWFyZ2luOiAwXG4pIHtcbiAgJHRvOiB0bygkZmxvdyk7XG5cbiAgJG91dHB1dDogKFxuICAgIGZsb2F0OiBpZigkbGFzdC1mbG93ID09IHRvLCAkdG8sIG51bGwpLFxuICAgIG1hcmdpbi0jeyR0b306ICRtYXJnaW4sXG4gICk7XG5cbiAgQGluY2x1ZGUgb3V0cHV0KCRvdXRwdXQpO1xufVxuXG4vLyBGbG9hdCBGaXJzdFxuLy8gLS0tLS0tLS0tLS1cbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbkBtaXhpbiBmbG9hdC1maXJzdChcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgJG91dHB1dDogKFxuICAgIG1hcmdpbi0je2Zyb20oJGZsb3cpfTogMCxcbiAgKTtcblxuICBAaW5jbHVkZSBvdXRwdXQoJG91dHB1dCk7XG59XG4iLCIvLyBGbG9hdCBJc29sYXRpb24gQVBJXG4vLyA9PT09PT09PT09PT09PT09PT09XG5cbi8vIElzb2xhdGUgT3V0cHV0XG4vLyAtLS0tLS0tLS0tLS0tLVxuLy8gLSAkcHVzaCAgICA6IDxsZW5ndGg+XG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AbWl4aW4gaXNvbGF0ZS1vdXRwdXQoXG4gICRwdXNoLFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdylcbikge1xuICAkdG86IHRvKCRmbG93KTtcbiAgJGZyb206IGZyb20oJGZsb3cpO1xuXG4gICRvdXRwdXQ6IChcbiAgICBmbG9hdDogJGZyb20sXG4gICAgbWFyZ2luLSN7JGZyb219OiAkcHVzaCxcbiAgICBtYXJnaW4tI3skdG99OiAtMTAwJSxcbiAgKTtcblxuICBAaW5jbHVkZSBvdXRwdXQoJG91dHB1dCk7XG59XG4iLCIvLyBTdXN5IFNldHRpbmdzXG4vLyA9PT09PT09PT09PT09XG5cbi8vIFN1c3kgTGFuZ3VhZ2UgRGVmYXVsdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gUFJJVkFURVxuQGluY2x1ZGUgc3VzeS1kZWZhdWx0cygoXG4gIGNvbnRhaW5lcjogYXV0byxcbiAgbWF0aDogZmx1aWQsXG4gIG91dHB1dDogZmxvYXQsXG4gIGNvbnRhaW5lci1wb3NpdGlvbjogY2VudGVyLFxuICBndXR0ZXItcG9zaXRpb246IGFmdGVyLFxuICBnbG9iYWwtYm94LXNpemluZzogY29udGVudC1ib3gsXG4gIGRlYnVnOiAoXG4gICAgaW1hZ2U6IGhpZGUsXG4gICAgY29sb3I6IHJnYmEoIzY2ZiwgLjI1KSxcbiAgICBvdXRwdXQ6IGJhY2tncm91bmQsXG4gICAgdG9nZ2xlOiB0b3AgcmlnaHQsXG4gICksXG4pKTtcblxuXG4vLyBWYWxpZCBLZXl3b3JkIFZhbHVlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gUFJJVkFURTogRE9OVCdUIFRPVUNIXG4kc3VzeS1rZXl3b3JkczogKFxuICBjb250YWluZXI6IGF1dG8sXG4gIG1hdGg6IHN0YXRpYyBmbHVpZCxcbiAgb3V0cHV0OiBpc29sYXRlIGZsb2F0LFxuICBjb250YWluZXItcG9zaXRpb246IGxlZnQgY2VudGVyIHJpZ2h0LFxuICBmbG93OiBsdHIgcnRsLFxuICBndXR0ZXItcG9zaXRpb246IGJlZm9yZSBhZnRlciBzcGxpdCBpbnNpZGUgaW5zaWRlLXN0YXRpYyxcbiAgYm94LXNpemluZzogYm9yZGVyLWJveCBjb250ZW50LWJveCxcbiAgc3BhbjogZnVsbCxcbiAgZWRnZTogZmlyc3QgYWxwaGEgbGFzdCBvbWVnYSBmdWxsLFxuICBzcHJlYWQ6IG5hcnJvdyB3aWRlIHdpZGVyLFxuICBndXR0ZXItb3ZlcnJpZGU6IG5vLWd1dHRlcnMgbm8tZ3V0dGVyLFxuICByb2xlOiBuZXN0LFxuICBjbGVhcjogYnJlYWsgbm9icmVhayxcbiAgZGVidWcgaW1hZ2U6IHNob3cgaGlkZSBzaG93LWNvbHVtbnMgc2hvdy1iYXNlbGluZSxcbiAgZGVidWcgb3V0cHV0OiBiYWNrZ3JvdW5kIG92ZXJsYXksXG4pO1xuXG5cbi8vIFBhcnNlIFN1c3kgS2V5d29yZHMgYW5kIE1hcHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBwYXJzZS1zZXR0aW5ncyhcbiAgJHNob3J0OiAkc3VzeVxuKSB7XG4gICRfcmV0dXJuOiAoKTtcblxuICBAaWYgdHlwZS1vZigkc2hvcnQpID09IG1hcCB7XG4gICAgJF9yZXR1cm46ICRzaG9ydDtcbiAgfSBAZWxzZSB7XG4gICAgQGVhY2ggJGl0ZW0gaW4gJHNob3J0IHtcbiAgICAgIC8vIHN0cmluZ3NcbiAgICAgIEBpZiB0eXBlLW9mKCRpdGVtKSA9PSBzdHJpbmcge1xuICAgICAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJHN1c3kta2V5d29yZHMge1xuICAgICAgICAgIEBpZiBpbmRleCgkdmFsdWUsICRpdGVtKSB7XG4gICAgICAgICAgICAkX2tleS12YWx1ZTogYXBwZW5kKCRrZXksICRpdGVtKTtcbiAgICAgICAgICAgICRfcmV0dXJuOiBfc3VzeS1kZWVwLXNldCgkX3JldHVybiwgJF9rZXktdmFsdWUuLi4pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgLy8gbWFwc1xuICAgICAgfSBAZWxzZSBpZiB0eXBlLW9mKCRpdGVtKSA9PSBtYXAge1xuICAgICAgICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAkaXRlbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cblxuXG4vLyBQYXJzZSBDb2x1bW5zICYgR3V0dGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBwYXJzZS1sYXlvdXQoXG4gICRzaG9ydFxuKSB7XG4gICRfcmV0dXJuOiAoKTtcbiAgJF9jb2x1bW5zOiAoKTtcbiAgJF9ndXR0ZXJzOiBudWxsO1xuXG4gIEBpZiBub3QodW5pdGxlc3MobnRoKG50aCgkc2hvcnQsIDEpLCAxKSkpIHtcbiAgICAkX2d1dHRlcnM6IG50aCgkc2hvcnQsIDEpO1xuICB9IEBlbHNlIHtcbiAgICAkX2NvbHVtbnM6IChjb2x1bW5zOiBudGgoJHNob3J0LCAxKSk7XG4gICAgJF9ndXR0ZXJzOiBpZihsZW5ndGgoJHNob3J0KSA+IDEsIG50aCgkc2hvcnQsIDIpLCAkX2d1dHRlcnMpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJF9ndXR0ZXJzKSA9PSBsaXN0IGFuZCBsZW5ndGgoJF9ndXR0ZXJzKSA+IDAge1xuICAgICRfZ3V0dGVyczogKFxuICAgICAgZ3V0dGVyczogbnRoKCRfZ3V0dGVycywgMikgLyBudGgoJF9ndXR0ZXJzLCAxKSxcbiAgICAgIGNvbHVtbi13aWR0aDogbnRoKCRfZ3V0dGVycywgMSksXG4gICAgKTtcbiAgfSBAZWxzZSB7XG4gICAgJF9ndXR0ZXJzOiBpZigkX2d1dHRlcnMsIChndXR0ZXJzOiAkX2d1dHRlcnMpLCAoKSk7XG4gIH1cblxuICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAkX2NvbHVtbnMpO1xuICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAkX2d1dHRlcnMpO1xuXG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG5cblxuLy8gUGFyc2UgR3JpZC9Db250ZXh0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBwYXJzZS1ncmlkKFxuICAkc2hvcnQ6ICRzdXN5XG4pIHtcbiAgJF9yZXR1cm46IHBhcnNlLXNldHRpbmdzKCRzaG9ydCk7XG4gICRfbGF5b3V0OiAoKTtcblxuICBAaWYgdHlwZS1vZigkc2hvcnQpID09IG1hcCB7XG4gICAgJF9yZXR1cm46ICRzaG9ydDtcbiAgfSBAZWxzZSB7XG4gICAgQGVhY2ggJGl0ZW0gaW4gJHNob3J0IHtcbiAgICAgIC8vIG51bWJlciBvciBsaXN0XG4gICAgICBAaWYgdHlwZS1vZigkaXRlbSkgPT0gbnVtYmVyIG9yIHR5cGUtb2YoJGl0ZW0pID09IGxpc3Qge1xuICAgICAgICBAaWYgdHlwZS1vZigkaXRlbSkgPT0gbGlzdCBvciB1bml0bGVzcygkaXRlbSkge1xuICAgICAgICAgICRfbGF5b3V0OiBhcHBlbmQoJF9sYXlvdXQsICRpdGVtKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKGNvbnRhaW5lcjogJGl0ZW0pKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICRfbGF5b3V0OiBpZihsZW5ndGgoJF9sYXlvdXQpID4gMCwgcGFyc2UtbGF5b3V0KCRfbGF5b3V0KSwgJF9sYXlvdXQpO1xuICB9XG5cbiAgQHJldHVybiBtYXAtbWVyZ2UoJF9yZXR1cm4sICRfbGF5b3V0KTtcbn1cblxuXG4vLyBQYXJzZSBTcGFuXG4vLyAtLS0tLS0tLS0tXG5AZnVuY3Rpb24gcGFyc2Utc3BhbihcbiAgJHNob3J0LFxuICAka2V5OiBzcGFuXG4pIHtcbiAgJF9yZXR1cm46ICgpO1xuXG4gIEBpZiB0eXBlLW9mKCRzaG9ydCkgPT0gbWFwIHtcbiAgICAkX3JldHVybjogJHNob3J0O1xuICB9IEBlbHNlIHtcbiAgICAkX2F0OiBpbmRleCgkc2hvcnQsIGF0KTtcblxuICAgIEBpZiAkX2F0IHtcbiAgICAgICRfbG9jaTogJF9hdCArIDE7XG4gICAgICAkX2xvY2F0aW9uOiBudGgoJHNob3J0LCAkX2xvY2kpO1xuICAgICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKGxvY2F0aW9uOiAkX2xvY2F0aW9uKSk7XG4gICAgICAkc2hvcnQ6IHNldC1udGgoJHNob3J0LCAkX2F0LCBudWxsKTtcbiAgICAgICRzaG9ydDogc2V0LW50aCgkc2hvcnQsICRfbG9jaSwgbnVsbCk7XG4gICAgfVxuXG4gICAgJF9pOiAxO1xuICAgICRfc3BhbjogKCk7XG5cbiAgICBAd2hpbGUgJF9pIDw9IGxlbmd0aCgkc2hvcnQpIHtcbiAgICAgICRfdGhpczogbnRoKCRzaG9ydCwgJF9pKTtcblxuICAgICAgQGlmIHR5cGUtb2YoJF90aGlzKSA9PSBudW1iZXIge1xuICAgICAgICAkX3NwYW46IGFwcGVuZCgkX3NwYW4sICRfdGhpcyk7XG4gICAgICAgICRzaG9ydDogc2V0LW50aCgkc2hvcnQsICRfaSwgbnVsbCk7XG4gICAgICB9IEBlbHNlIGlmICRfdGhpcyA9PSBvZiB7XG4gICAgICAgICRzaG9ydDogc2V0LW50aCgkc2hvcnQsICRfaSwgbnVsbCk7XG4gICAgICAgICRfaTogbGVuZ3RoKCRzaG9ydCkgKyAxO1xuICAgICAgfVxuXG4gICAgICAkX2k6ICRfaSArIDE7XG4gICAgfVxuXG4gICAgQGlmIGxlbmd0aCgkX3NwYW4pID4gMCB7XG4gICAgICAkX3NwYW46IGlmKGxlbmd0aCgkX3NwYW4pID09IDEsIG50aCgkX3NwYW4sIDEpLCAkX3NwYW4pO1xuICAgICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKCRrZXk6ICRfc3BhbikpO1xuICAgIH1cblxuICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sIHBhcnNlLWdyaWQoJHNob3J0KSk7XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuXG5cbi8vIFBhcnNlIEd1dHRlcnNcbi8vIC0tLS0tLS0tLS0tLS1cbkBmdW5jdGlvbiBwYXJzZS1ndXR0ZXJzKFxuICAkc2hvcnQ6ICRzdXN5XG4pIHtcbiAgJF9ndXR0ZXJzOiBwYXJzZS1zcGFuKCRzaG9ydCwgZ3V0dGVyLW92ZXJyaWRlKTtcbiAgJF9zcGFuOiBzdXN5LWdldChndXR0ZXItb3ZlcnJpZGUsICRfZ3V0dGVycyk7XG5cbiAgQGlmICRfc3BhbiBhbmQgbm90KG1hcC1nZXQoJF9ndXR0ZXJzLCBjb2x1bW5zKSkge1xuICAgICRfY29udGV4dDogKCk7XG4gICAgJF9uZXc6ICgpO1xuXG4gICAgQGVhY2ggJGl0ZW0gaW4gJF9zcGFuIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRpdGVtKSA9PSBudW1iZXIgYW5kIHVuaXRsZXNzKCRpdGVtKSB7XG4gICAgICAgICRfY29udGV4dDogYXBwZW5kKCRfY29udGV4dCwgJGl0ZW0pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRfbmV3OiBhcHBlbmQoJF9uZXcsICRpdGVtKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkX2NvbnRleHQ6IHBhcnNlLWdyaWQoJF9jb250ZXh0KTtcbiAgICAkX25ldzogaWYobGVuZ3RoKCRfbmV3KSA9PSAwLCBudWxsLCAkX25ldyk7XG4gICAgJF9uZXc6IGlmKGxlbmd0aCgkX25ldykgPT0gMSwgbnRoKCRfbmV3LCAxKSwgJF9uZXcpO1xuICAgICRfbmV3OiAoZ3V0dGVyLW92ZXJyaWRlOiBpZigkX25ldyAhPSAkX3NwYW4sICRfbmV3LCAkX3NwYW4pKTtcblxuICAgICRfZ3V0dGVyczogbWFwLW1lcmdlKCRfZ3V0dGVycywgJF9uZXcpO1xuICAgICRfZ3V0dGVyczogbWFwLW1lcmdlKCRfZ3V0dGVycywgJF9jb250ZXh0KTtcbiAgfVxuXG4gIEByZXR1cm4gJF9ndXR0ZXJzO1xufVxuIiwiLy8gVmFsaWRhdGlvblxuLy8gPT09PT09PT09PVxuXG5cbi8vIFZhbGlkYXRlIENvbHVtbiBNYXRoXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGZ1bmN0aW9uIHZhbGlkLWNvbHVtbi1tYXRoKFxuICAkbWF0aCxcbiAgJGNvbHVtbi13aWR0aFxuKSB7XG4gIEBpZiAkbWF0aCA9PSBzdGF0aWMgYW5kIG5vdCgkY29sdW1uLXdpZHRoKSB7XG4gICAgQGVycm9yICdTdGF0aWMgbWF0aCByZXF1aXJlcyBhIHZhbGlkIGNvbHVtbi13aWR0aCBzZXR0aW5nLic7XG4gIH1cblxuICBAcmV0dXJuICRjb2x1bW4td2lkdGg7XG59XG4iLCIvLyBHcmlkIFN5bnRheFxuLy8gPT09PT09PT09PT1cblxuXG4vLyBMYXlvdXRcbi8vIC0tLS0tLVxuLy8gU2V0IGEgbmV3IGxheW91dCB1c2luZyBhIHNob3J0aGFuZFxuLy8gLSAkbGF5b3V0OiA8c2V0dGluZ3M+XG4vLyAtICRjbGVhbjogYm9vbGVhblxuQG1peGluIGxheW91dChcbiAgJGxheW91dCxcbiAgJGNsZWFuOiBmYWxzZVxuKSB7XG4gICRpbnNwZWN0ICA6ICRsYXlvdXQ7XG4gICRzdXN5ICAgICA6IF9nZXQtbGF5b3V0KCRsYXlvdXQsICRjbGVhbikgIWdsb2JhbDtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QobGF5b3V0LCAkaW5zcGVjdCk7XG59XG5cblxuLy8gVXNlIEdyaWRcbi8vIC0tLS0tLS0tXG4vLyBVc2UgYW4gYXJiaXRyYXJ5IGxheW91dCBmb3IgYSBzZWN0aW9uIG9mIGNvZGVcbi8vIC0gJGxheW91dDogPHNldHRpbmdzPlxuLy8gLSAkY2xlYW46IGJvb2xlYW5cbkBtaXhpbiB3aXRoLWxheW91dChcbiAgJGxheW91dCxcbiAgJGNsZWFuOiBmYWxzZVxuKSB7XG4gICRpbnNwZWN0ICA6ICRsYXlvdXQ7XG4gICRvbGQgICAgICA6ICRzdXN5O1xuICAkc3VzeSAgICAgOiBfZ2V0LWxheW91dCgkbGF5b3V0LCAkY2xlYW4pICFnbG9iYWw7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KHdpdGgtbGF5b3V0LCAkaW5zcGVjdCk7XG5cbiAgQGNvbnRlbnQ7XG5cbiAgJHN1c3k6ICRvbGQgIWdsb2JhbDtcbn1cblxuXG4vLyBMYXlvdXRcbi8vIC0tLS0tLVxuLy8gUmV0dXJuIGEgcGFyc2VkIGxheW91dCBtYXAgYmFzZWQgb24gc2hvcnRoYW5kIHN5bnRheFxuLy8gLSAkbGF5b3V0OiA8c2V0dGluZ3M+XG5AZnVuY3Rpb24gbGF5b3V0KFxuICAkbGF5b3V0OiAkc3VzeVxuKSB7XG4gIEByZXR1cm4gcGFyc2UtZ3JpZCgkbGF5b3V0KTtcbn1cblxuXG4vLyBHZXQgTGF5b3V0XG4vLyAtLS0tLS0tLS0tXG4vLyBSZXR1cm4gYSBuZXcgbGF5b3V0IGJhc2VkIG9uIGN1cnJlbnQgYW5kIGdpdmVuIHNldHRpbmdzXG4vLyAtICRsYXlvdXQ6IDxzZXR0aW5ncz5cbi8vIC0gJGNsZWFuOiBib29sZWFuXG5AZnVuY3Rpb24gX2dldC1sYXlvdXQoXG4gICRsYXlvdXQsXG4gICRjbGVhbjogZmFsc2Vcbikge1xuICAkbGF5b3V0OiBsYXlvdXQoJGxheW91dCk7XG4gIEByZXR1cm4gaWYoJGNsZWFuLCAkbGF5b3V0LCBfc3VzeS1kZWVwLW1lcmdlKCRzdXN5LCAkbGF5b3V0KSk7XG59XG4iLCIvLyBTdXN5IEJveCBTaXppbmdcbi8vID09PT09PT09PT09PT09PT09XG5cbi8vIEdsb2JhbCBCb3ggU2l6aW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2V0IGEgYm94IG1vZGVsIGdsb2JhbGx5IG9uIGFsbCBlbGVtZW50cy5cbi8vIC0gWyRib3hdOiBib3JkZXItYm94IHwgY29udGVudC1ib3hcbi8vIC0gWyRpbmhlcml0XTogdHJ1ZSB8IGZhbHNlXG5AbWl4aW4gZ2xvYmFsLWJveC1zaXppbmcoXG4gICRib3g6IHN1c3ktZ2V0KGdsb2JhbC1ib3gtc2l6aW5nKSxcbiAgJGluaGVyaXQ6IGZhbHNlXG4pIHtcbiAgJGluc3BlY3Q6ICRib3g7XG5cbiAgQGlmICRpbmhlcml0IHtcbiAgICBAYXQtcm9vdCB7XG4gICAgICAgaHRtbCB7IEBpbmNsdWRlIG91dHB1dCgoYm94LXNpemluZzogJGJveCkpOyB9XG4gICAgICAgKiwgKjpiZWZvcmUsICo6YWZ0ZXIgeyBib3gtc2l6aW5nOiBpbmhlcml0OyB9XG4gICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgKiwgKjpiZWZvcmUsICo6YWZ0ZXIgeyBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6ICRib3gpKTsgfVxuICB9XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGdsb2JhbC1ib3gtc2l6aW5nLCAkaW5zcGVjdCk7XG4gIEBpbmNsdWRlIHVwZGF0ZS1ib3gtbW9kZWwoJGJveCk7XG59XG5cbi8vIEJvcmRlciBCb3ggU2l6aW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gQSBsZWdhY3kgc2hvcnRjdXQuLi5cbi8vIC0gWyRpbmhlcml0XTogdHJ1ZSB8IGZhbHNlXG5AbWl4aW4gYm9yZGVyLWJveC1zaXppbmcoXG4gICRpbmhlcml0OiBmYWxzZVxuKSB7XG4gIEBpbmNsdWRlIGdsb2JhbC1ib3gtc2l6aW5nKGJvcmRlci1ib3gsICRpbmhlcml0KTtcbn1cblxuLy8gVXBkYXRlIEJveCBNb2RlbFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuLy8gUFJJVkFURTogVXBkYXRlcyBnbG9iYWwgYm94IG1vZGVsIHNldHRpbmdcbkBtaXhpbiB1cGRhdGUtYm94LW1vZGVsKFxuICAkYm94XG4pIHtcbiAgQGlmICRib3ggIT0gc3VzeS1nZXQoZ2xvYmFsLWJveC1zaXppbmcpIHtcbiAgQGluY2x1ZGUgc3VzeS1zZXQoZ2xvYmFsLWJveC1zaXppbmcsICRib3gpO1xuICB9XG59XG4iLCIvLyBDb250ZXh0IFN5bnRheFxuLy8gPT09PT09PT09PT09PT1cblxuLy8gTmVzdGVkIFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gYSBzdWJzZXQgZ3JpZCBmb3IgbmVzdGVkIGNvbnRleHQuXG4vLyAtICRjb250ZXh0ICAgOiA8c3Bhbj5cbkBmdW5jdGlvbiBuZXN0ZWQoXG4gICRjb250ZXh0XG4pIHtcbiAgJGNvbnRleHQgICAgOiBwYXJzZS1zcGFuKCRjb250ZXh0KTtcbiAgJHNwYW4gICAgICAgOiBzdXN5LWdldChzcGFuLCAkY29udGV4dCk7XG4gICRsb2NhdGlvbiAgIDogZ2V0LWxvY2F0aW9uKCRjb250ZXh0KTtcbiAgJGNvbHVtbnMgICAgOiBzdXN5LWdldChjb2x1bW5zLCAkY29udGV4dCk7XG5cbiAgQHJldHVybiBzdXN5LXNsaWNlKCRzcGFuLCAkbG9jYXRpb24sICRjb2x1bW5zKTtcbn1cblxuLy8gTmVzdGVkIFttaXhpbl1cbi8vIC0tLS0tLS0tLS0tLS0tXG4vLyBVc2UgYSBzdWJzZXQgZ3JpZCBmb3IgYSBuZXN0ZWQgY29udGV4dFxuLy8gLSAkY29udGV4dCAgIDogPHNwYW4+XG4vLyAtIEBjb250ZW50ICAgOiA8Y29udGVudD5cbkBtaXhpbiBuZXN0ZWQoXG4gICRjb250ZXh0XG4pIHtcbiAgJGluc3BlY3QgIDogJGNvbnRleHQ7XG4gICRjb250ZXh0ICA6IHBhcnNlLXNwYW4oJGNvbnRleHQpO1xuICAkb2xkICAgICAgOiBzdXN5LWdldChjb2x1bW5zKTtcbiAgJHN1c3kgICAgIDogbWFwLW1lcmdlKCRzdXN5LCAoY29sdW1uczogbmVzdGVkKCRjb250ZXh0KSkpICFnbG9iYWw7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KG5lc3RlZCwgJGluc3BlY3QpO1xuICBAY29udGVudDtcblxuICAkc3VzeSAgICAgOiBtYXAtbWVyZ2UoJHN1c3ksIChjb2x1bW5zOiAkb2xkKSkgIWdsb2JhbDtcbn1cbiIsIi8vIEJhY2tncm91bmQgR3JpZCBTeW50YXhcbi8vID09PT09PT09PT09PT09PT09PT09PT1cblxuJHN1c3ktb3ZlcmxheS1ncmlkLWhlYWQtZXhpc3RzOiBmYWxzZTtcblxuXG4vLyBTaG93IEdyaWQvc1xuLy8gLS0tLS0tLS0tLS1cbi8vIFNob3cgZ3JpZCBvbiBhbnkgZWxlbWVudCB1c2luZyBlaXRoZXIgYmFja2dyb3VuZCBvciBvdmVybGF5LlxuLy8gLSBbJGdyaWRdICA6IDxzZXR0aW5ncz5cbkBtaXhpbiBzaG93LWdyaWQoXG4gICRncmlkOiAkc3VzeVxuKSB7XG4gICRpbnNwZWN0OiAkZ3JpZDtcbiAgJF9vdXRwdXQ6IGRlYnVnLWdldChvdXRwdXQsICRncmlkKTtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3Qoc2hvdy1ncmlkLCAkaW5zcGVjdCk7XG4gIEBpZiAkX291dHB1dCA9PSBvdmVybGF5IGFuZCBzdXN5LWdldChkZWJ1ZyBpbWFnZSwgJGdyaWQpICE9IGhpZGUge1xuICAgIEBpbmNsdWRlIG92ZXJsYXktZ3JpZCgkZ3JpZCk7XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtZ3JpZCgkZ3JpZCk7XG4gIH1cbn1cblxuQG1peGluIHNob3ctZ3JpZHMoXG4gICRncmlkOiAkc3VzeVxuKSB7XG4gIEBpbmNsdWRlIHNob3ctZ3JpZCgkZ3JpZCk7XG59XG5cbi8vIEJhY2tncm91bmQgR3JpZFxuLy8gLS0tLS0tLS0tLS0tLS0tXG4vLyBTaG93IGEgZ3JpZCBiYWNrZ3JvdW5kIG9uIGFueSBlbGVtZW50LlxuLy8gLSBbJGdyaWRdICA6IDxzZXR0aW5ncz5cbkBtaXhpbiBiYWNrZ3JvdW5kLWdyaWQoXG4gICRncmlkOiAkc3VzeVxuKSB7XG4gICRpbnNwZWN0ICA6ICRncmlkO1xuICAkX291dHB1dCAgOiBnZXQtYmFja2dyb3VuZCgkZ3JpZCk7XG5cbiAgQGlmIGxlbmd0aCgkX291dHB1dCkgPiAwIHtcbiAgICAkX2Zsb3c6IHN1c3ktZ2V0KGZsb3csICRncmlkKTtcblxuICAgICRfaW1hZ2U6ICgpO1xuICAgIEBlYWNoICRuYW1lLCAkbGF5ZXIgaW4gbWFwLWdldCgkX291dHB1dCwgaW1hZ2UpIHtcbiAgICAgICRfZGlyZWN0aW9uOiBpZigkbmFtZSA9PSBiYXNlbGluZSwgdG8gYm90dG9tLCB0byB0bygkX2Zsb3cpKTtcbiAgICAgICRfaW1hZ2U6IGFwcGVuZCgkX2ltYWdlLCBsaW5lYXItZ3JhZGllbnQoJF9kaXJlY3Rpb24sICRsYXllciksIGNvbW1hKTtcbiAgICB9XG4gICAgJF9vdXRwdXQ6IG1hcC1tZXJnZSgkX291dHB1dCwgKGltYWdlOiAkX2ltYWdlKSk7XG5cbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWdyaWQtb3V0cHV0KCRfb3V0cHV0Li4uKTtcbiAgICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoYmFja2dyb3VuZC1ncmlkLCAkaW5zcGVjdCk7XG4gIH1cbn1cblxuXG4vLyBPdmVybGF5IEdyaWRcbi8vIC0tLS0tLS0tLS0tLVxuLy8gR2VuZXJhdGUgYW4gaWNvbiB0byB0cmlnZ2VyIGdyaWQtb3ZlcmxheXMgb24gYW55IGdpdmVuIGVsZW1lbnRzLlxuLy8gJGdyaWRzLi4uICA6IDxzZWxlY3Rvcj4gWzxzZXR0aW5ncz5dIFssIDxzZWxlY3Rvcj5dKlxuQG1peGluIG92ZXJsYXktZ3JpZCAoXG4gICRncmlkOiAkc3VzeVxuKSB7XG4gIEBpZiBub3QoJHN1c3ktb3ZlcmxheS1ncmlkLWhlYWQtZXhpc3RzKSB7XG4gICAgQGF0LXJvb3QgaGVhZCB7IEBpbmNsdWRlIG92ZXJsYXktaGVhZCgkZ3JpZCk7IH1cbiAgICBAYXQtcm9vdCBoZWFkOmJlZm9yZSB7IEBpbmNsdWRlIG92ZXJsYXktdHJpZ2dlcjsgfVxuICAgIEBhdC1yb290IGhlYWQ6aG92ZXIgeyBAaW5jbHVkZSBvdmVybGF5LXRyaWdnZXItaG92ZXI7IH1cbiAgICAkc3VzeS1vdmVybGF5LWdyaWQtaGVhZC1leGlzdHM6IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIGhlYWQ6aG92ZXIgfiAmLFxuICBoZWFkOmhvdmVyIH4gYm9keSAmIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgJjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1vdmVybGF5LWJhc2U7XG4gICAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWdyaWQoJGdyaWQpO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFtQcml2YXRlXSBPdmVybGF5IFRyaWdnZXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBvdmVybGF5LXRyaWdnZXIge1xuICBjb250ZW50OiBcInx8fFwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQ6IHtcbiAgICBmYW1pbHk6IHNhbnMtc2VyaWY7XG4gICAgc2l6ZTogMTZweDtcbiAgICB3ZWlnaHQ6IGJvbGQ7XG4gIH1cbn1cblxuXG4vLyBbUHJpdmF0ZV0gT3ZlcmxheSBUcmlnZ2VyIEhvdmVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gb3ZlcmxheS10cmlnZ2VyLWhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSh3aGl0ZSwgLjUpO1xuICBjb2xvcjogcmVkO1xufVxuXG5cbi8vIFtQcml2YXRlXSBPdmVybGF5IEhlYWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIDxoZWFkPiBzdHlsZXMgdG8gY3JlYXRlIGdyaWQgb3ZlcmxheSB0b2dnbGVcbkBtaXhpbiBvdmVybGF5LWhlYWQgKFxuICAkZ3JpZDogJHN1c3lcbikge1xuICAkX3RvZ2dsZTogZGVidWctZ2V0KHRvZ2dsZSwgJGdyaWQpO1xuICAkX2hvcno6IG51bGw7XG4gICRfdmVydDogbnVsbDtcblxuICBAZWFjaCAkc2lkZSBpbiAkX3RvZ2dsZSB7XG4gICAgJF9ob3J6OiBpZigkc2lkZSA9PSBsZWZ0IG9yICRzaWRlID09IHJpZ2h0LCAkc2lkZSwgJF9ob3J6KTtcbiAgICAkX3ZlcnQ6IGlmKCRzaWRlID09IHRvcCBvciAkc2lkZSA9PSBib3R0b20sICRzaWRlLCAkX3ZlcnQpO1xuICB9XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgI3skX2hvcnp9OiAxMHB4O1xuICAjeyRfdmVydH06IDEwcHg7XG4gIHotaW5kZXg6IDk5OTtcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQ6IHJnYmEod2hpdGUsIC4yNSk7XG59XG5cblxuLy8gW1ByaXZhdGVdIEdyaWQgT3ZlcmxheSBCYXNlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEJhc2Ugc3R5bGVzIGZvciBnZW5lcmF0aW5nIGEgZ3JpZCBvdmVybGF5XG5AbWl4aW4gZ3JpZC1vdmVybGF5LWJhc2UoKSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBjb250ZW50OiBcIiBcIjtcbiAgei1pbmRleDogOTk4O1xufVxuXG5cbi8vIEdldCBTeW1tZXRyaWNhbCBCYWNrZ3JvdW5kXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSAkZ3JpZDogPG1hcD5cbkBmdW5jdGlvbiBnZXQtYmFja2dyb3VuZC1zeW0oXG4gICRncmlkXG4pIHtcbiAgJGdyaWQgICAgICAgICAgIDogcGFyc2UtZ3JpZCgkZ3JpZCk7XG4gICRfZ3V0dGVycyAgICAgICA6IHN1c3ktZ2V0KGd1dHRlcnMsICRncmlkKTtcbiAgJF9jb2x1bW4td2lkdGggIDogc3VzeS1nZXQoY29sdW1uLXdpZHRoLCAkZ3JpZCk7XG4gICRfbWF0aCAgICAgICAgICA6IHN1c3ktZ2V0KG1hdGgsICRncmlkKTtcblxuICAkX2NvbG9yICAgICAgICAgOiBkZWJ1Zy1nZXQoY29sb3IpO1xuICAkX3RyYW5zICAgICAgICAgOiB0cmFuc3BhcmVudDtcbiAgJF9saWdodCAgICAgICAgIDogbGlnaHRlbigkX2NvbG9yLCAxNSUpO1xuXG4gICRfZW5kICAgICAgICAgICA6IDEgKyAkX2d1dHRlcnM7XG4gICRfYWZ0ZXIgICAgICAgICA6IHBlcmNlbnRhZ2UoMS8kX2VuZCk7XG4gICRfc3RvcHMgICAgICAgICA6ICgpO1xuICAkX3NpemUgICAgICAgICAgOiBzcGFuKDEgJGdyaWQgd2lkZSk7XG5cbiAgQGlmIGlzLWluc2lkZSgkZ3JpZCkge1xuICAgICRfc3RvcHM6ICRfY29sb3IsICRfbGlnaHQ7XG4gIH0gQGVsc2UgaWYgaXMtc3BsaXQoJGdyaWQpIHtcbiAgICAkX3NwbGl0OiAkX2d1dHRlcnMvMjtcbiAgICAkX2JlZm9yZTogcGVyY2VudGFnZSgkX3NwbGl0LyRfZW5kKTtcbiAgICAkX2FmdGVyOiBwZXJjZW50YWdlKCgxICsgJF9zcGxpdCkvJF9lbmQpO1xuICAgICRfc3RvcHM6ICRfdHJhbnMgJF9iZWZvcmUsICRfY29sb3IgJF9iZWZvcmUsICRfbGlnaHQgJF9hZnRlciwgJF90cmFucyAkX2FmdGVyO1xuICB9IEBlbHNlIHtcbiAgICAkX3N0b3BzOiAkX2NvbG9yLCAkX2xpZ2h0ICRfYWZ0ZXIsICRfdHJhbnMgJF9hZnRlcjtcbiAgfVxuXG4gIEBpZiAkX21hdGggPT0gc3RhdGljIHtcbiAgICAkX3NpemU6IHZhbGlkLWNvbHVtbi1tYXRoKCRfbWF0aCwgJF9jb2x1bW4td2lkdGgpICogJF9lbmQ7XG4gIH1cblxuICAkX291dHB1dDogKFxuICAgIGltYWdlOiAoY29sdW1uczogJF9zdG9wcyksXG4gICAgc2l6ZTogJF9zaXplLFxuICApO1xuXG4gIEByZXR1cm4gJF9vdXRwdXQ7XG59XG5cblxuLy8gR2V0IEFzeW1tZXRyaWNhbCBJbnNpZGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtICRncmlkOiA8c2V0dGluZ3M+XG5AZnVuY3Rpb24gZ2V0LWFzeW0taW5zaWRlKFxuICAkZ3JpZFxuKSB7XG4gICRncmlkICAgICA6IHBhcnNlLWdyaWQoJGdyaWQpO1xuICAkX2NvbHVtbnMgOiBzdXN5LWdldChjb2x1bW5zLCAkZ3JpZCk7XG5cbiAgJF9jb2xvciAgIDogZGVidWctZ2V0KGNvbG9yKTtcbiAgJF9saWdodCAgIDogbGlnaHRlbigkX2NvbG9yLCAxNSUpO1xuICAkX3N0b3BzICAgOiAoKTtcblxuICBAZm9yICRsb2NhdGlvbiBmcm9tIDEgdGhyb3VnaCBzdXN5LWNvdW50KCRfY29sdW1ucykge1xuICAgICR0aGlzLXN0b3A6ICgpO1xuXG4gICAgQGlmICRsb2NhdGlvbiA9PSAxIHtcbiAgICAgICR0aGlzLXN0b3A6IGFwcGVuZCgkdGhpcy1zdG9wLCAkX2NvbG9yLCBjb21tYSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkc3RhcnQ6IHBhcnNlLXNwYW4oMSBhdCAkbG9jYXRpb24gJGdyaWQpO1xuICAgICAgJHN0YXJ0OiBnZXQtaXNvbGF0aW9uKCRzdGFydCk7XG4gICAgICAkdGhpcy1zdG9wOiBhcHBlbmQoJHRoaXMtc3RvcCwgJF9jb2xvciAkc3RhcnQsIGNvbW1hKTtcbiAgICB9XG5cbiAgICBAaWYgJGxvY2F0aW9uID09IHN1c3ktY291bnQoJF9jb2x1bW5zKSB7XG4gICAgICAkdGhpcy1zdG9wOiBhcHBlbmQoJHRoaXMtc3RvcCwgJF9saWdodCwgY29tbWEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJF9lbmQ6IHBhcnNlLXNwYW4oMSBhdCAoJGxvY2F0aW9uICsgMSkgJGdyaWQpO1xuICAgICAgJF9lbmQ6IGdldC1pc29sYXRpb24oJF9lbmQpO1xuICAgICAgJHRoaXMtc3RvcDogYXBwZW5kKCR0aGlzLXN0b3AsICRfbGlnaHQgJF9lbmQsIGNvbW1hKTtcbiAgICB9XG5cbiAgICAkX3N0b3BzOiBqb2luKCRfc3RvcHMsICR0aGlzLXN0b3AsIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJF9zdG9wcztcbn1cblxuXG4vLyBHZXQgQXN5bW1ldHJpY2FsIFNwbGl0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtICRncmlkOiA8c2V0dGluZ3M+XG5AZnVuY3Rpb24gZ2V0LWFzeW0tc3BsaXQoXG4gICRncmlkXG4pIHtcbiAgJGdyaWQgICAgIDogcGFyc2UtZ3JpZCgkZ3JpZCk7XG4gICRfY29sdW1ucyA6IHN1c3ktZ2V0KGNvbHVtbnMsICRncmlkKTtcblxuICAkX2NvbG9yICAgOiBkZWJ1Zy1nZXQoY29sb3IpO1xuICAkX2xpZ2h0ICAgOiBsaWdodGVuKCRfY29sb3IsIDE1JSk7XG4gICRfc3RvcHMgICA6ICgpO1xuXG4gIEBmb3IgJGxvY2F0aW9uIGZyb20gMSB0aHJvdWdoIHN1c3ktY291bnQoJF9jb2x1bW5zKSB7XG4gICAgJHRoaXMtc3RvcDogKCk7XG5cbiAgICAkc3RhcnQ6IHBhcnNlLXNwYW4oMSBhdCAkbG9jYXRpb24gJGdyaWQpO1xuICAgICRzdGFydDogZ2V0LWlzb2xhdGlvbigkc3RhcnQpO1xuICAgICR0aGlzLXN0b3A6IGFwcGVuZCgkdGhpcy1zdG9wLCB0cmFuc3BhcmVudCAkc3RhcnQsIGNvbW1hKTtcbiAgICAkdGhpcy1zdG9wOiBhcHBlbmQoJHRoaXMtc3RvcCwgJF9jb2xvciAkc3RhcnQsIGNvbW1hKTtcblxuICAgICRfZW5kOiAkc3RhcnQgKyBzcGFuKDEgYXQgJGxvY2F0aW9uICRncmlkKTtcbiAgICAkdGhpcy1zdG9wOiBhcHBlbmQoJHRoaXMtc3RvcCwgJF9saWdodCAkX2VuZCwgY29tbWEpO1xuICAgICR0aGlzLXN0b3A6IGFwcGVuZCgkdGhpcy1zdG9wLCB0cmFuc3BhcmVudCAkX2VuZCwgY29tbWEpO1xuXG4gICAgJF9zdG9wczogam9pbigkX3N0b3BzLCAkdGhpcy1zdG9wLCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRfc3RvcHM7XG59XG5cblxuLy8gR2V0IEFzeW1tZXRyaWNhbCBPdXRzaWRlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gJGdyaWQ6IDxzZXR0aW5ncz5cbkBmdW5jdGlvbiBnZXQtYXN5bS1vdXRzaWRlKFxuICAkZ3JpZFxuKSB7XG4gICRncmlkICAgICA6IHBhcnNlLWdyaWQoJGdyaWQpO1xuICAkX2NvbHVtbnMgOiBzdXN5LWdldChjb2x1bW5zLCAkZ3JpZCk7XG5cbiAgJF9jb2xvciAgIDogZGVidWctZ2V0KGNvbG9yKTtcbiAgJF9saWdodCAgIDogbGlnaHRlbigkX2NvbG9yLCAxNSUpO1xuICAkX3RyYW5zICAgOiB0cmFuc3BhcmVudDtcbiAgJF9zdG9wcyAgIDogKCk7XG5cbiAgQGZvciAkbG9jYXRpb24gZnJvbSAxIHRocm91Z2ggc3VzeS1jb3VudCgkX2NvbHVtbnMpIHtcbiAgICAkdGhpcy1zdG9wOiAoKTtcblxuICAgIEBpZiAkbG9jYXRpb24gPT0gMSB7XG4gICAgICAkdGhpcy1zdG9wOiBhcHBlbmQoJHRoaXMtc3RvcCwgJF9jb2xvciwgY29tbWEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHN0YXJ0OiBwYXJzZS1zcGFuKDEgYXQgJGxvY2F0aW9uICRncmlkKTtcbiAgICAgICRzdGFydDogZ2V0LWlzb2xhdGlvbigkc3RhcnQpO1xuICAgICAgJHRoaXMtc3RvcDogYXBwZW5kKCR0aGlzLXN0b3AsICRfY29sb3IgJHN0YXJ0LCBjb21tYSk7XG4gICAgfVxuXG4gICAgQGlmICRsb2NhdGlvbiA9PSBzdXN5LWNvdW50KCRfY29sdW1ucykge1xuICAgICAgJHRoaXMtc3RvcDogYXBwZW5kKCR0aGlzLXN0b3AsICRfbGlnaHQsIGNvbW1hKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRndXR0ZXI6IGdldC1zcGFuLXdpZHRoKGZpcnN0ICRsb2NhdGlvbiAkZ3JpZCk7XG5cbiAgICAgICRfZW5kOiBwYXJzZS1zcGFuKDEgYXQgKCRsb2NhdGlvbiArIDEpICRncmlkKTtcbiAgICAgICRfZW5kOiBnZXQtaXNvbGF0aW9uKCRfZW5kKTtcblxuICAgICAgJGd1dHRlcjogJF9saWdodCAkZ3V0dGVyLCAkX3RyYW5zICRndXR0ZXIsICRfdHJhbnMgJF9lbmQ7XG4gICAgICAkdGhpcy1zdG9wOiBqb2luKCR0aGlzLXN0b3AsICRndXR0ZXIsIGNvbW1hKTtcbiAgICB9XG5cbiAgICAkX3N0b3BzOiBqb2luKCRfc3RvcHMsICR0aGlzLXN0b3AsIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJF9zdG9wcztcbn1cblxuXG4vLyBHZXQgQXN5bW1ldHJpY2FsIEJhY2tncm91bmRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSAkZ3JpZDogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIGdldC1iYWNrZ3JvdW5kLWFzeW0oXG4gICRncmlkXG4pIHtcbiAgJF9zdG9wczogKCk7XG5cbiAgQGlmIGlzLWluc2lkZSgkZ3JpZCkge1xuICAgICRfc3RvcHM6IGdldC1hc3ltLWluc2lkZSgkZ3JpZCk7XG4gIH0gQGVsc2UgaWYgaXMtc3BsaXQoJGdyaWQpIHtcbiAgICAkX3N0b3BzOiBnZXQtYXN5bS1zcGxpdCgkZ3JpZCk7XG4gIH0gQGVsc2Uge1xuICAgICRfc3RvcHM6IGdldC1hc3ltLW91dHNpZGUoJGdyaWQpO1xuICB9XG5cbiAgQHJldHVybiAoaW1hZ2U6IChjb2x1bW5zOiAkX3N0b3BzKSk7XG59XG5cblxuLy8gR2V0IEJhY2tncm91bmRcbi8vIC0tLS0tLS0tLS0tLS0tXG4vLyAtICRncmlkOiA8c2V0dGluZ3M+XG5AZnVuY3Rpb24gZ2V0LWJhY2tncm91bmQoXG4gICRncmlkXG4pIHtcbiAgJGdyaWQgICAgIDogcGFyc2UtZ3JpZCgkZ3JpZCk7XG4gICRfc2hvdyAgICA6IHN1c3ktZ2V0KGRlYnVnIGltYWdlLCAkZ3JpZCk7XG4gICRfcmV0dXJuICA6ICgpO1xuXG4gIEBpZiAkX3Nob3cgYW5kICRfc2hvdyAhPSAnaGlkZScge1xuICAgICRfY29sdW1uczogc3VzeS1nZXQoY29sdW1ucywgJGdyaWQpO1xuXG4gICAgQGlmICRfc2hvdyAhPSAnc2hvdy1iYXNlbGluZScge1xuICAgICAgJF9zeW06IGlzLXN5bW1ldHJpY2FsKCRfY29sdW1ucyk7XG4gICAgICAkX3JldHVybjogaWYoJF9zeW0sIGdldC1iYWNrZ3JvdW5kLXN5bSgkZ3JpZCksIGdldC1iYWNrZ3JvdW5kLWFzeW0oJGdyaWQpKTtcbiAgICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sIChjbGlwOiBjb250ZW50LWJveCkpO1xuICAgIH1cblxuICAgIEBpZiAkX3Nob3cgIT0gJ3Nob3ctY29sdW1ucydcbiAgICAgIGFuZCBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKGJhc2UtbGluZS1oZWlnaHQpXG4gICAgICBhbmQgdHlwZS1vZigkYmFzZS1saW5lLWhlaWdodCkgPT0gJ251bWJlcidcbiAgICAgIGFuZCBub3QgdW5pdGxlc3MoJGJhc2UtbGluZS1oZWlnaHQpIHtcbiAgICAgICRfY29sb3I6IHZhcmlhYmxlLWV4aXN0cygnZ3JpZC1iYWNrZ3JvdW5kLWJhc2VsaW5lLWNvbG9yJyk7XG4gICAgICAkX2NvbG9yOiBpZigkX2NvbG9yLCAkZ3JpZC1iYWNrZ3JvdW5kLWJhc2VsaW5lLWNvbG9yLCAjMDAwKTtcblxuICAgICAgJF9pbWFnZTogbWFwLWdldCgkX3JldHVybiwgaW1hZ2UpO1xuICAgICAgJF9zaXplOiBtYXAtZ2V0KCRfcmV0dXJuLCBzaXplKTtcbiAgICAgICRfYmFzZWxpbmU6IChiYXNlbGluZTogKCRfY29sb3IgMXB4LCB0cmFuc3BhcmVudCAxcHgpKTtcbiAgICAgICRfYmFzZWxpbmUtc2l6ZTogMTAwJSAkYmFzZS1saW5lLWhlaWdodDtcblxuICAgICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKFxuICAgICAgICBpbWFnZTogaWYoJF9pbWFnZSwgbWFwLW1lcmdlKCRfaW1hZ2UsICRfYmFzZWxpbmUpLCAkX2Jhc2VsaW5lKSxcbiAgICAgICAgc2l6ZTogaWYoJF9zaXplLCAoJF9zaXplLCAkX2Jhc2VsaW5lLXNpemUpLCAkX2Jhc2VsaW5lLXNpemUpLFxuICAgICAgKSk7XG5cbiAgICAgIEBpZiAkX3Nob3cgPT0gJ3Nob3cnIHtcbiAgICAgICAgJF9jbGlwOiBtYXAtZ2V0KCRfcmV0dXJuLCBjbGlwKTtcbiAgICAgICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKGNsaXA6IGpvaW4oJF9jbGlwLCBib3JkZXItYm94LCBjb21tYSkpKTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRfc2hvdyA9PSAnc2hvdy1iYXNlbGluZScge1xuICAgICAgQHdhcm4gJ1BsZWFzZSBwcm92aWRlIGEgJGJhc2UtbGluZS1oZWlnaHQgd2l0aCB0aGUgZGVzaXJlZCBoZWlnaHQgYW5kIHVuaXRzJztcbiAgICB9XG4gIH1cblxuICBAaWYgbWFwLWdldCgkX3JldHVybiwgaW1hZ2UpIHtcbiAgICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAoZmxvdzogc3VzeS1nZXQoZmxvdywgJGdyaWQpKSk7XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuXG5cbi8vIEdldCBEZWJ1Z1xuLy8gLS0tLS0tLS0tXG4vLyBSZXR1cm4gdGhlIHZhbHVlIG9mIGEgZGVidWcgc2V0dGluZ1xuLy8gLSAka2V5OiA8c2V0dGluZz5cbkBmdW5jdGlvbiBkZWJ1Zy1nZXQoXG4gICRrZXksXG4gICRncmlkOiAkc3VzeVxuKSB7XG4gICRrZXk6IGpvaW4oZGVidWcsICRrZXksIHNwYWNlKTtcbiAgQHJldHVybiBzdXN5LWdldCgka2V5LCAkZ3JpZCk7XG59XG4iLCIvLyBDb250YWluZXIgU3ludGF4XG4vLyA9PT09PT09PT09PT09PT09XG5cbi8vIENvbnRhaW5lciBbbWl4aW5dXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2V0IGEgY29udGFpbmVyIGVsZW1lbnRcbi8vIC0gWyRsYXlvdXRdICA6IDxzZXR0aW5ncz5cbkBtaXhpbiBjb250YWluZXIoXG4gICRsYXlvdXQ6ICRzdXN5XG4pIHtcbiAgJGluc3BlY3QgICAgOiAkbGF5b3V0O1xuICAkbGF5b3V0ICAgICA6IHBhcnNlLWdyaWQoJGxheW91dCk7XG5cbiAgJF93aWR0aCAgICAgOiBnZXQtY29udGFpbmVyLXdpZHRoKCRsYXlvdXQpO1xuICAkX2p1c3RpZnkgICA6IHBhcnNlLWNvbnRhaW5lci1wb3NpdGlvbihzdXN5LWdldChjb250YWluZXItcG9zaXRpb24sICRsYXlvdXQpKTtcbiAgJF9wcm9wZXJ0eSAgOiBpZihzdXN5LWdldChtYXRoLCAkbGF5b3V0KSA9PSBzdGF0aWMsIHdpZHRoLCBtYXgtd2lkdGgpO1xuXG4gICRfYm94ICAgICAgIDogc3VzeS1nZXQoYm94LXNpemluZywgJGxheW91dCk7XG5cbiAgQGlmICRfYm94IHtcbiAgICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6ICRfYm94KSk7XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoY29udGFpbmVyLCAkaW5zcGVjdCk7XG4gIEBpbmNsdWRlIGZsb2F0LWNvbnRhaW5lcigkX3dpZHRoLCAkX2p1c3RpZnksICRfcHJvcGVydHkpO1xuICBAaW5jbHVkZSBzaG93LWdyaWQoJGxheW91dCk7XG59XG5cbi8vIENvbnRhaW5lciBbZnVuY3Rpb25dXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIGNvbnRhaW5lciB3aWR0aFxuLy8gLSBbJGxheW91dF0gIDogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIGNvbnRhaW5lcihcbiAgJGxheW91dDogJHN1c3lcbikge1xuICAkbGF5b3V0OiBwYXJzZS1ncmlkKCRsYXlvdXQpO1xuICBAcmV0dXJuIGdldC1jb250YWluZXItd2lkdGgoJGxheW91dCk7XG59XG5cbi8vIEdldCBDb250YWluZXIgV2lkdGhcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENhbGN1bGF0ZSB0aGUgY29udGFpbmVyIHdpZHRoXG4vLyAtIFskbGF5b3V0XTogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIGdldC1jb250YWluZXItd2lkdGgoXG4gICRsYXlvdXQ6ICRzdXN5XG4pIHtcbiAgJGxheW91dCAgICAgICAgIDogcGFyc2UtZ3JpZCgkbGF5b3V0KTtcbiAgJF93aWR0aCAgICAgICAgIDogc3VzeS1nZXQoY29udGFpbmVyLCAkbGF5b3V0KTtcbiAgJF9jb2x1bW4td2lkdGggIDogc3VzeS1nZXQoY29sdW1uLXdpZHRoLCAkbGF5b3V0KTtcbiAgJF9tYXRoICAgICAgICAgIDogc3VzeS1nZXQobWF0aCwgJGxheW91dCk7XG5cbiAgQGlmIG5vdCgkX3dpZHRoKSBvciAkX3dpZHRoID09IGF1dG8ge1xuICAgIEBpZiB2YWxpZC1jb2x1bW4tbWF0aCgkX21hdGgsICRfY29sdW1uLXdpZHRoKSB7XG4gICAgICAkX2NvbHVtbnMgICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRsYXlvdXQpO1xuICAgICAgJF9ndXR0ZXJzICAgOiBzdXN5LWdldChndXR0ZXJzLCAkbGF5b3V0KTtcbiAgICAgICRfc3ByZWFkICAgIDogaWYoaXMtc3BsaXQoJGxheW91dCksIHdpZGUsIG5hcnJvdyk7XG4gICAgICAkX3dpZHRoICAgICA6IHN1c3ktc3VtKCRfY29sdW1ucywgJF9ndXR0ZXJzLCAkX3NwcmVhZCkgKiAkX2NvbHVtbi13aWR0aDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRfd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkX3dpZHRoO1xufVxuXG4vLyBQYXJzZSBDb250YWluZXIgUG9zaXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUGFyc2UgdGhlICRjb250YWluZXItcG9zaXRpb24gaW50byBtYXJnaW4gdmFsdWVzLlxuLy8gLSBbJGp1c3RpZnldICAgOiBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgfCA8bGVuZ3RoPiBbPGxlbmd0aD5dXG5AZnVuY3Rpb24gcGFyc2UtY29udGFpbmVyLXBvc2l0aW9uKFxuICAkanVzdGlmeTogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgY29udGFpbmVyLXBvc2l0aW9uKVxuKSB7XG4gICRfcmV0dXJuOiBpZigkanVzdGlmeSA9PSBsZWZ0LCAwLCBhdXRvKSBpZigkanVzdGlmeSA9PSByaWdodCwgMCwgYXV0byk7XG5cbiAgQGlmIG5vdChpbmRleChsZWZ0IHJpZ2h0IGNlbnRlciwgJGp1c3RpZnkpKSB7XG4gICAgJF9yZXR1cm46IG50aCgkanVzdGlmeSwgMSk7XG4gICAgJF9yZXR1cm46ICRfcmV0dXJuIGlmKGxlbmd0aCgkanVzdGlmeSkgPiAxLCBudGgoJGp1c3RpZnksIDIpLCAkX3JldHVybik7XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuIiwiLy8gU3BhbiBTeW50YXhcbi8vID09PT09PT09PT09XG5cbi8vIFNwYW4gW21peGluXVxuLy8gLS0tLS0tLS0tLS0tXG4vLyBTZXQgYSBzcGFubmluZyBlbGVtZW50IHVzaW5nIHNob3J0aGFuZCBzeW50YXguXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQG1peGluIHNwYW4oXG4gICRzcGFuXG4pIHtcbiAgJGluc3BlY3Q6ICRzcGFuO1xuICAkc3BhbjogcGFyc2Utc3Bhbigkc3Bhbik7XG4gICRvdXRwdXQ6IHNwYW4tbWF0aCgkc3Bhbik7XG4gICRuZXN0aW5nOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRjbGVhcjogc3VzeS1nZXQoY2xlYXIsICRzcGFuKTtcblxuICAkYm94OiBzdXN5LWdldChib3gtc2l6aW5nLCAkc3Bhbik7XG4gICRjb250ZW50LWJveDogaWYoc3VzeS1nZXQoZ2xvYmFsLWJveC1zaXppbmcpICE9ICdib3JkZXItYm94JywgdHJ1ZSwgZmFsc2UpO1xuICAkYm94OiAkYm94IG9yIGlmKGlzLWluc2lkZSgkc3BhbikgYW5kICRjb250ZW50LWJveCwgYm9yZGVyLWJveCwgbnVsbCk7XG5cbiAgQGlmICRjbGVhciA9PSBicmVhayB7XG4gICAgQGluY2x1ZGUgYnJlYWs7XG4gIH0gQGVsc2UgaWYgJGNsZWFyID09IG5vYnJlYWsge1xuICAgIEBpbmNsdWRlIG5vYnJlYWs7XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3Qoc3BhbiwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6ICRib3gpKTtcbiAgQGluY2x1ZGUgZmxvYXQtc3Bhbi1vdXRwdXQoJG91dHB1dC4uLik7XG5cbiAgQGlmIHZhbGlkLWNvbHVtbnMoJG5lc3RpbmcsIHNpbGVudCkge1xuICAgIEBpbmNsdWRlIG5lc3RlZCgkc3BhbikgeyBAY29udGVudDsgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBTcGFuIFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSB3aWR0aCBvZiBhIHNwYW4uXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQGZ1bmN0aW9uIHNwYW4oXG4gICRzcGFuXG4pIHtcbiAgQHJldHVybiBnZXQtc3Bhbi13aWR0aCgkc3Bhbik7XG59XG5cbi8vIFNwYW4gTWF0aFxuLy8gLS0tLS0tLS0tXG4vLyBHZXQgYWxsIHRoZSBzcGFuIHJlc3VsdHMuXG4vLyAtICRzcGFuOiA8bWFwPlxuQGZ1bmN0aW9uIHNwYW4tbWF0aChcbiAgJHNwYW5cbikge1xuICAkbmVzdCAgICAgICAgICAgICA6IGlmKHN1c3ktZ2V0KHJvbGUsICRzcGFuKSA9PSBuZXN0LCB0cnVlLCBmYWxzZSk7XG4gICRzcGxpdC1uZXN0ICAgICAgIDogaWYoaXMtc3BsaXQoJHNwYW4pIGFuZCAkbmVzdCwgdHJ1ZSwgZmFsc2UpO1xuICAkZWRnZSAgICAgICAgICAgICA6IGdldC1lZGdlKCRzcGFuKTtcbiAgJGxvY2F0aW9uICAgICAgICAgOiBnZXQtbG9jYXRpb24oJHNwYW4pO1xuXG4gICRmbG9hdCAgICAgICAgICAgIDogZnJvbTtcbiAgJHBhZGRpbmctYmVmb3JlICAgOiBudWxsO1xuICAkcGFkZGluZy1hZnRlciAgICA6IG51bGw7XG4gICRtYXJnaW4tYmVmb3JlICAgIDogbnVsbDtcbiAgJG1hcmdpbi1hZnRlciAgICAgOiBudWxsO1xuXG4gIC8vIGNhbGN1bGF0ZSB3aWR0aHNcbiAgJHNwcmVhZDogaW5kZXgobWFwLXZhbHVlcygkc3BhbiksIHNwcmVhZCk7XG4gICRzcGFuOiBpZigkc3BsaXQtbmVzdCBhbmQgbm90KCRzcHJlYWQpLCBtYXAtbWVyZ2UoJHNwYW4sIChzcHJlYWQ6IHdpZGUpKSwgJHNwYW4pO1xuICAkd2lkdGg6IGdldC1zcGFuLXdpZHRoKCRzcGFuKTtcbiAgJGd1dHRlcnM6IGdldC1ndXR0ZXJzKCRzcGFuKTtcblxuICAvLyBhcHBseSBndXR0ZXJzXG4gIEBpZiBpcy1pbnNpZGUoJHNwYW4pIHtcbiAgICBAaWYgbm90KHN1c3ktZ2V0KHJvbGUsICRzcGFuKSkge1xuICAgICAgJHBhZGRpbmctYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpO1xuICAgICAgJHBhZGRpbmctYWZ0ZXI6IG1hcC1nZXQoJGd1dHRlcnMsIGFmdGVyKTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBub3QoJHNwbGl0LW5lc3QpIHtcbiAgICAgICRtYXJnaW4tYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpO1xuICAgICAgJG1hcmdpbi1hZnRlcjogbWFwLWdldCgkZ3V0dGVycywgYWZ0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHNwZWNpYWwgbWFyZ2luIGhhbmRsaW5nXG4gIEBpZiBzdXN5LWdldChvdXRwdXQsICRzcGFuKSA9PSBpc29sYXRlIGFuZCAkbG9jYXRpb24ge1xuICAgICRtYXJnaW4tYmVmb3JlOiBnZXQtaXNvbGF0aW9uKCRzcGFuKTtcbiAgICAkbWFyZ2luLWFmdGVyOiAtMTAwJTtcbiAgfSBAZWxzZSBpZiAkZWRnZSB7XG4gICAgJGlzLXNwbGl0OiBpcy1zcGxpdCgkc3Bhbik7XG4gICAgJHBvczogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkc3Bhbik7XG5cbiAgICBAaWYgJGVkZ2UgPT0gbGFzdCB7XG4gICAgICAkZmxvYXQ6IHN1c3ktZ2V0KGxhc3QtZmxvdywgJHNwYW4pO1xuICAgIH1cblxuICAgIEBpZiBub3QoJGlzLXNwbGl0KSB7XG4gICAgICBAaWYgJGVkZ2UgPT0gZnVsbCBvciAoJGVkZ2UgPT0gZmlyc3QgYW5kICRwb3MgPT0gYmVmb3JlKSB7XG4gICAgICAgICRtYXJnaW4tYmVmb3JlOiAwO1xuICAgICAgfVxuICAgICAgQGlmICRlZGdlID09IGZ1bGwgb3IgKCRlZGdlID09IGxhc3QgYW5kICRwb3MgPT0gYWZ0ZXIpIHtcbiAgICAgICAgJG1hcmdpbi1hZnRlcjogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIEByZXR1cm4gKFxuICAgIHdpZHRoICAgICAgICAgICA6ICR3aWR0aCxcbiAgICBmbG9hdCAgICAgICAgICAgOiAkZmxvYXQsXG4gICAgbWFyZ2luLWJlZm9yZSAgIDogJG1hcmdpbi1iZWZvcmUsXG4gICAgbWFyZ2luLWFmdGVyICAgIDogJG1hcmdpbi1hZnRlcixcbiAgICBwYWRkaW5nLWJlZm9yZSAgOiAkcGFkZGluZy1iZWZvcmUsXG4gICAgcGFkZGluZy1hZnRlciAgIDogJHBhZGRpbmctYWZ0ZXIsXG4gICAgZmxvdyAgICAgICAgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pLFxuICApO1xufVxuXG4vLyBHZXQgU3BhbiBXaWR0aFxuLy8gLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBzcGFuIHdpZHRoLlxuLy8gLSAkc3BhbjogPG1hcD5cbkBmdW5jdGlvbiBnZXQtc3Bhbi13aWR0aChcbiAgJHNwYW5cbikge1xuICAkc3BhbiAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcblxuICAkbiAgICAgICAgOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRsb2NhdGlvbiA6IGdldC1sb2NhdGlvbigkc3Bhbik7XG4gICRjb2x1bW5zICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRzcGFuKTtcbiAgJGd1dHRlcnMgIDogc3VzeS1nZXQoZ3V0dGVycywgJHNwYW4pO1xuICAkc3ByZWFkICAgOiBzdXN5LWdldChzcHJlYWQsICRzcGFuKTtcblxuICAkY29udGV4dCAgOiBudWxsO1xuICAkc3Bhbi1zdW0gOiBudWxsO1xuICAkd2lkdGggICAgOiBudWxsO1xuXG4gIEBpZiAkbiA9PSAnZnVsbCcge1xuICAgICRwb3M6IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJHNwYW4pO1xuICAgICRyb2xlOiBzdXN5LWdldChyb2xlLCAkc3Bhbik7XG4gICAgJG46IGlmKCRwb3MgPT0gc3BsaXQgYW5kICRyb2xlICE9IG5lc3QsIHN1c3ktY291bnQoJGNvbHVtbnMpLCAxMDAlKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRuKSAhPSBudW1iZXIge1xuICAgIEB3YXJuIFwiKCN7dHlwZS1vZigkbil9KSAjeyRufSBpcyBub3QgYSB2YWxpZCBzcGFuLlwiO1xuICB9IEBlbHNlIGlmIHVuaXRsZXNzKCRuKSB7XG4gICAgJGNvbnRleHQ6IHN1c3ktc3VtKCRjb2x1bW5zLCAkZ3V0dGVycywgaWYoaXMtc3BsaXQoJHNwYW4pLCB3aWRlLCBuYXJyb3cpKTtcbiAgICAkc3ByZWFkOiBpZihpcy1pbnNpZGUoJHNwYW4pLCAkc3ByZWFkIG9yIHdpZGUsICRzcHJlYWQpO1xuICAgICRzcGFuLXN1bTogc3VzeSgkbiwgJGxvY2F0aW9uLCAkY29sdW1ucywgJGd1dHRlcnMsICRzcHJlYWQpO1xuXG4gICAgJF9tYXRoOiBzdXN5LWdldChtYXRoLCAkc3Bhbik7XG4gICAgJF9jb2x1bW4td2lkdGg6IHN1c3ktZ2V0KGNvbHVtbi13aWR0aCwgJHNwYW4pO1xuICAgIEBpZiAkX21hdGggPT0gc3RhdGljIHtcbiAgICAgICR3aWR0aDogJHNwYW4tc3VtICogdmFsaWQtY29sdW1uLW1hdGgoJF9tYXRoLCAkX2NvbHVtbi13aWR0aCk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJHNwYW4tc3VtIC8gJGNvbnRleHQpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJHdpZHRoOiAkbjtcbiAgfVxuXG4gIEByZXR1cm4gJHdpZHRoO1xufVxuIiwiLy8gR3V0dGVyIFN5bnRheFxuLy8gPT09PT09PT09PT09PVxuXG5cbi8vIEd1dHRlcnNcbi8vIC0tLS0tLS1cbi8vIFNldCBndXR0ZXJzIG9uIGFuIGVsZW1lbnQuXG4vLyAtIFskc3Bhbl0gICA6IDxzZXR0aW5ncz5cbkBtaXhpbiBndXR0ZXJzKFxuICAkc3BhbjogJHN1c3lcbikge1xuICAkaW5zcGVjdCAgOiAkc3BhbjtcbiAgJHNwYW4gICAgIDogcGFyc2UtZ3V0dGVycygkc3Bhbik7XG4gICRfZ3V0dGVycyA6IGdldC1ndXR0ZXJzKCRzcGFuKTtcblxuICAkX291dHB1dDogKFxuICAgIGJlZm9yZTogbWFwLWdldCgkX2d1dHRlcnMsIGJlZm9yZSksXG4gICAgYWZ0ZXI6IG1hcC1nZXQoJF9ndXR0ZXJzLCBhZnRlciksXG4gICAgZmxvdzogc3VzeS1nZXQoZmxvdywgJHNwYW4pLFxuICApO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChndXR0ZXJzLCAkaW5zcGVjdCk7XG5cbiAgQGlmIGlzLWluc2lkZSgkc3Bhbikge1xuICAgIEBpbmNsdWRlIHBhZGRpbmctb3V0cHV0KCRfb3V0cHV0Li4uKTtcbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgbWFyZ2luLW91dHB1dCgkX291dHB1dC4uLik7XG4gIH1cbn1cblxuQG1peGluIGd1dHRlcihcbiAgJHNwYW46ICRzdXN5XG4pIHtcbiAgQGluY2x1ZGUgZ3V0dGVycygkc3Bhbik7XG59XG5cblxuLy8gR3V0dGVyXG4vLyAtLS0tLS1cbi8vIFJldHVybiB0aGUgd2lkdGggb2YgYSBndXR0ZXIuXG4vLyAtIFskc3Bhbl0gICA6IDxzZXR0aW5ncz5cbkBmdW5jdGlvbiBndXR0ZXIoXG4gICRzcGFuOiAkc3VzeVxuKSB7XG4gICRzcGFuOiBwYXJzZS1ndXR0ZXJzKCRzcGFuKTtcblxuICAkX2d1dHRlcnM6IGdldC1ndXR0ZXJzKCRzcGFuKTtcbiAgJF9ndXR0ZXJzOiBtYXAtZ2V0KCRfZ3V0dGVycywgYmVmb3JlKSBvciBtYXAtZ2V0KCRfZ3V0dGVycywgYWZ0ZXIpO1xuXG4gIEByZXR1cm4gJF9ndXR0ZXJzO1xufVxuXG5AZnVuY3Rpb24gZ3V0dGVycyhcbiAgJHNwYW46ICRzdXN5XG4pIHtcbiAgQHJldHVybiBndXR0ZXIoJHNwYW4pO1xufVxuXG5cbi8vIEdldCBHdXR0ZXIgV2lkdGhcbi8vIC0tLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBndXR0ZXIgd2lkdGguXG4vLyAtIFskY29udGV4dF06IDxjb250ZXh0PlxuQGZ1bmN0aW9uIGdldC1ndXR0ZXItd2lkdGgoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRjb250ZXh0ICA6IHBhcnNlLWd1dHRlcnMoJGNvbnRleHQpO1xuXG4gICRfZ3V0dGVycyA6IHN1c3ktZ2V0KGd1dHRlcnMsICRjb250ZXh0KTtcbiAgJF9ndXR0ZXIgIDogc3VzeS1nZXQoZ3V0dGVyLW92ZXJyaWRlLCAkY29udGV4dCk7XG5cbiAgQGlmICRfZ3V0dGVycyBhbmQgKCRfZ3V0dGVycyA+IDApIGFuZCBub3QoJF9ndXR0ZXIpIHtcbiAgICAkX2NvbHVtbi13aWR0aDogc3VzeS1nZXQoY29sdW1uLXdpZHRoLCAkY29udGV4dCk7XG4gICAgJF9tYXRoOiBndXR0ZXItbWF0aCgkY29udGV4dCk7XG4gICAgQGlmICRfbWF0aCA9PSBzdGF0aWMge1xuICAgICAgJF9ndXR0ZXI6ICRfZ3V0dGVycyAqIHZhbGlkLWNvbHVtbi1tYXRoKCRfbWF0aCwgJF9jb2x1bW4td2lkdGgpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJF9jb2x1bW5zIDogc3VzeS1nZXQoY29sdW1ucywgJGNvbnRleHQpO1xuICAgICAgJF9zcHJlYWQgIDogaWYoaXMtc3BsaXQoJGNvbnRleHQpLCB3aWRlLCBzdXN5LWdldChzcHJlYWQsICRjb250ZXh0KSk7XG4gICAgICAkX2d1dHRlciAgOiBwZXJjZW50YWdlKCRfZ3V0dGVycyAvIHN1c3ktc3VtKCRfY29sdW1ucywgJF9ndXR0ZXJzLCAkX3NwcmVhZCkpO1xuICAgIH1cbiAgfVxuXG4gICRfZ3V0dGVyOiBpZigkX2d1dHRlciA9PSAnbm8tZ3V0dGVycycgb3IgJF9ndXR0ZXIgPT0gJ25vLWd1dHRlcicsIG51bGwsICRfZ3V0dGVyKTtcblxuICBAcmV0dXJuICRfZ3V0dGVyO1xufVxuXG5cbi8vIEdldCBHdXR0ZXJzXG4vLyAtLS0tLS0tLS0tLVxuLy8gUmV0dXJuIGJlZm9yZSBhbmQgYWZ0ZXIgZ3V0dGVyIHZhbHVlcy5cbi8vIC0gWyRjb250ZXh0XTogPGNvbnRleHQ+XG5AZnVuY3Rpb24gZ2V0LWd1dHRlcnMoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRjb250ZXh0ICAgICAgICAgICAgOiBwYXJzZS1ndXR0ZXJzKCRjb250ZXh0KTtcblxuICAkX2d1dHRlci1wb3NpdGlvbiAgIDogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkY29udGV4dCk7XG4gICRfZ3V0dGVyICAgICAgICAgICAgOiBnZXQtZ3V0dGVyLXdpZHRoKCRjb250ZXh0KTtcblxuICAkX3JldHVybiAgICAgICAgICAgIDogKGJlZm9yZTogbnVsbCwgYWZ0ZXI6IG51bGwpO1xuXG4gIEBpZiBpcy1zcGxpdCgkY29udGV4dCkgYW5kICRfZ3V0dGVyIHtcbiAgICAkX2d1dHRlcjogJF9ndXR0ZXIgLyAyO1xuICAgICRfcmV0dXJuOiBtYXAtbWVyZ2UoJF9yZXR1cm4sIChiZWZvcmU6ICRfZ3V0dGVyLCBhZnRlcjogJF9ndXR0ZXIpKTtcbiAgfSBAZWxzZSB7XG4gICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKCRfZ3V0dGVyLXBvc2l0aW9uOiAkX2d1dHRlcikpO1xuICB9XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cblxuXG4vLyBJcyBJbnNpZGVcbi8vIC0tLS0tLS0tLVxuLy8gUmV0dXJucyB0cnVlIGlmIGd1dHRlcnMgYXJlIGluc2lkZS5cbi8vICRjb250ZXh0OiA8Y29udGV4dD5cbkBmdW5jdGlvbiBpcy1pbnNpZGUoXG4gICRjb250ZXh0XG4pIHtcbiAgJF9pbnNpZGU6IGluc2lkZSBpbnNpZGUtc3RhdGljO1xuICAkX2d1dHRlci1wb3NpdGlvbjogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkY29udGV4dCk7XG5cbiAgQHJldHVybiBpZihpbmRleCgkX2luc2lkZSwgJF9ndXR0ZXItcG9zaXRpb24pLCB0cnVlLCBmYWxzZSk7XG59XG5cblxuLy8gSXMgU3BsaXRcbi8vIC0tLS0tLS0tXG4vLyBSZXR1cm5zIHRydWUgaWYgZ3V0dGVycyBhcmUgc3BsaXQuXG4vLyAkY29udGV4dDogPGNvbnRleHQ+XG5AZnVuY3Rpb24gaXMtc3BsaXQoXG4gICRjb250ZXh0XG4pIHtcbiAgJF9zcGxpdDogc3BsaXQgaW5zaWRlIGluc2lkZS1zdGF0aWM7XG4gICRfZ3V0dGVyLXBvc2l0aW9uOiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRjb250ZXh0KTtcblxuICBAcmV0dXJuIGlmKGluZGV4KCRfc3BsaXQsICRfZ3V0dGVyLXBvc2l0aW9uKSwgdHJ1ZSwgZmFsc2UpO1xufVxuXG5cbi8vIEd1dHRlciBNYXRoXG4vLyAtLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSBtYXRoIHRvIHVzZSBmb3IgZ3V0dGVyIGNhbGN1bGF0aW9uc1xuLy8gJGNvbnRleHQ6IDxjb250ZXh0PlxuQGZ1bmN0aW9uIGd1dHRlci1tYXRoKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkX3JldHVybiAgOiBzdXN5LWdldChtYXRoLCAkY29udGV4dCk7XG4gICRfcmV0dXJuICA6IGlmKHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJGNvbnRleHQpID09IGluc2lkZS1zdGF0aWMsIHN0YXRpYywgJF9yZXR1cm4pO1xuXG4gIEByZXR1cm4gJF9yZXR1cm47XG59XG4iLCIvLyBJc29sYXRpb24gU3ludGF4XG4vLyA9PT09PT09PT09PT09PT09XG5cblxuLy8gSXNvbGF0ZSBbTWl4aW5dXG4vLyAtLS0tLS0tLS0tLS0tLS1cbi8vIFNldCBpc29sYXRpb24gYXMgYW4gb3ZlcnJpZGUuXG4vLyAtICRsb2NhdGlvbjogPHNwYW4+XG5AbWl4aW4gaXNvbGF0ZShcbiAgJGlzb2xhdGU6IDFcbikge1xuICAkaW5zcGVjdDogJGlzb2xhdGU7XG5cbiAgJG91dHB1dDogKFxuICAgIHB1c2g6IGlzb2xhdGUoJGlzb2xhdGUpLFxuICAgIGZsb3c6IHN1c3ktZ2V0KGZsb3csICRpc29sYXRlKSxcbiAgKTtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoaXNvbGF0ZSwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBpc29sYXRlLW91dHB1dCgkb3V0cHV0Li4uKTtcbn1cblxuXG4vLyBJc29sYXRlIFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIGFuIGlzb2xhdGlvbiBvZmZzZXQgd2lkdGguXG4vLyAtICRsb2NhdGlvbjogPHNwYW4+XG5AZnVuY3Rpb24gaXNvbGF0ZShcbiAgJGlzb2xhdGU6IDFcbikge1xuICAkaXNvbGF0ZTogcGFyc2Utc3BhbigkaXNvbGF0ZSk7XG4gICRpc29sYXRpb246IHN1c3ktZ2V0KHNwYW4sICRpc29sYXRlKTtcblxuICBAaWYgJGlzb2xhdGlvbiBhbmQgbm90KGdldC1sb2NhdGlvbigkaXNvbGF0ZSkpIHtcbiAgICAkbmV3OiAoXG4gICAgICBzcGFuOiBudWxsLFxuICAgICAgbG9jYXRpb246ICRpc29sYXRpb24sXG4gICAgKTtcbiAgICAkaXNvbGF0ZTogbWFwLW1lcmdlKCRpc29sYXRlLCAkbmV3KTtcbiAgfVxuXG4gIEByZXR1cm4gZ2V0LWlzb2xhdGlvbigkaXNvbGF0ZSk7XG59XG5cblxuLy8gR2V0IElzb2xhdGlvblxuLy8gLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSBpc29sYXRpb24gb2Zmc2V0IHdpZHRoXG4vLyAtICRpbnB1dDogPG1hcD5cbkBmdW5jdGlvbiBnZXQtaXNvbGF0aW9uKFxuICAkaW5wdXRcbikge1xuICAkbG9jYXRpb24gICA6IGdldC1sb2NhdGlvbigkaW5wdXQpO1xuICAkY29sdW1ucyAgICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRpbnB1dCk7XG4gICR3aWR0aCAgICAgIDogbnVsbDtcblxuICBAaWYgdHlwZS1vZigkbG9jYXRpb24pID09IG51bWJlciBhbmQgbm90KHVuaXRsZXNzKCRsb2NhdGlvbikpIHtcbiAgICAkd2lkdGg6ICRsb2NhdGlvbjtcbiAgfSBAZWxzZSBpZiAkbG9jYXRpb24ge1xuICAgICRwdXNoOiAkbG9jYXRpb24gLSAxO1xuICAgIEBpZiAkcHVzaCA+IDAge1xuICAgICAgJHB1c2g6IG1hcC1tZXJnZSgkaW5wdXQsIChcbiAgICAgICAgc3BhbjogJHB1c2gsXG4gICAgICAgIGxvY2F0aW9uOiAxLFxuICAgICAgICBzcHJlYWQ6IHdpZGUsXG4gICAgICApKTtcbiAgICAgICR3aWR0aDogZ2V0LXNwYW4td2lkdGgoJHB1c2gpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRpbnB1dCkgPT0gc3BsaXRcbiAgICAgIGFuZCBzdXN5LWdldChndXR0ZXJzLCAkaW5wdXQpID4gMCB7XG4gICAgJHdpZHRoOiBpZigkd2lkdGggPT0gbnVsbCwgZ3V0dGVycygkaW5wdXQpLCAkd2lkdGggKyBndXR0ZXJzKCRpbnB1dCkpO1xuICB9XG5cbiAgQHJldHVybiAkd2lkdGggb3IgMDtcbn1cbiIsIi8vIEdhbGxlcnkgU3ludGF4XG4vLyA9PT09PT09PT09PT09PVxuXG4vLyBHYWxsZXJ5XG4vLyAtLS0tLS0tXG4vLyBDcmVhdGUgYW4gaXNvbGF0ZWQgZ2FsbGVyeVxuLy8gLSAkc3BhbiAgICAgICAgOiA8c3Bhbj5cbi8vIC0gWyRzZWxlY3Rvcl0gIDogY2hpbGQgfCBvZi10eXBlXG5AbWl4aW4gZ2FsbGVyeShcbiAgJHNwYW4sXG4gICRzZWxlY3RvcjogY2hpbGRcbikge1xuICAkaW5zcGVjdCAgICA6ICRzcGFuO1xuICAkc3BhbiAgICAgICA6IHBhcnNlLXNwYW4oJHNwYW4pO1xuICAkc3BhbiAgICAgICA6IG1hcC1tZXJnZSgkc3BhbiwgKGxvY2F0aW9uOiAxKSk7XG5cbiAgJG4gICAgICAgICAgICA6IHN1c3ktZ2V0KHNwYW4sICRzcGFuKTtcbiAgJGNvbHVtbnMgICAgICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRzcGFuKTtcbiAgJGNvbnRleHQgICAgICA6IHN1c3ktY291bnQoJGNvbHVtbnMpO1xuICAkZmxvdyAgICAgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pO1xuXG4gICRpbnNpZGUgICAgICAgOiBpcy1pbnNpZGUoJHNwYW4pO1xuICAkZnJvbSAgICAgICAgIDogZnJvbSgkZmxvdyk7XG4gICRsaW5lICAgICAgICAgOiBmbG9vcigkY29udGV4dCAvICRuKTtcbiAgJHN5bW1ldHJpY2FsICA6IGlzLXN5bW1ldHJpY2FsKCRjb2x1bW5zKTtcblxuICAkb3V0cHV0OiAoXG4gICAgd2lkdGggICAgICAgICAgICAgOiBudWxsLFxuICAgIGZsb2F0ICAgICAgICAgICAgIDogZnJvbSxcbiAgICBtYXJnaW4tYmVmb3JlICAgICA6IG51bGwsXG4gICAgbWFyZ2luLWFmdGVyICAgICAgOiBudWxsLFxuICAgIHBhZGRpbmctYmVmb3JlICAgIDogbnVsbCxcbiAgICBwYWRkaW5nLWFmdGVyICAgICA6IG51bGwsXG4gICAgZmxvdyAgICAgICAgICAgICAgOiAkZmxvdyxcbiAgKTtcblxuICBAaWYgJGluc2lkZSB7XG4gICAgJGd1dHRlcnM6IGdldC1ndXR0ZXJzKCRzcGFuKTtcbiAgICAkb3V0cHV0OiBtYXAtbWVyZ2UoJG91dHB1dCwgKFxuICAgICAgcGFkZGluZy1iZWZvcmU6IG1hcC1nZXQoJGd1dHRlcnMsIGJlZm9yZSksXG4gICAgICBwYWRkaW5nLWFmdGVyOiBtYXAtZ2V0KCRndXR0ZXJzLCBhZnRlciksXG4gICAgKSk7XG4gIH1cblxuICBAaWYgJHN5bW1ldHJpY2FsIHtcbiAgICAkb3V0cHV0OiBtYXAtbWVyZ2UoJG91dHB1dCwgKHdpZHRoOiBnZXQtc3Bhbi13aWR0aCgkc3BhbikpKTtcbiAgfVxuXG4gICRib3ggICAgICAgICAgOiBzdXN5LWdldChib3gtc2l6aW5nLCAkc3Bhbik7XG4gICRnbG9iYWwtYm94ICAgOiBpZihzdXN5LWdldChnbG9iYWwtYm94LXNpemluZykgPT0gJ2JvcmRlci1ib3gnLCB0cnVlLCBmYWxzZSk7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGdhbGxlcnksICRpbnNwZWN0KTtcblxuICAvLyBDb2xsZWN0aXZlIE91dHB1dFxuICBAaWYgJGJveCA9PSBib3JkZXItYm94IG9yICgkaW5zaWRlIGFuZCBub3QoJGJveCkgYW5kIG5vdCgkZ2xvYmFsLWJveCkpIHtcbiAgICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6IGJvcmRlci1ib3gpKTtcbiAgfSBAZWxzZSBpZiAkYm94ID09IGNvbnRlbnQtYm94IHtcbiAgICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6IGNvbnRlbnQtYm94KSk7XG4gIH1cblxuICBAaW5jbHVkZSBmbG9hdC1zcGFuLW91dHB1dCgkb3V0cHV0Li4uKTtcblxuICAvLyBJbmRpdmlkdWFsIExvb3BcbiAgQGZvciAkaXRlbSBmcm9tIDEgdGhyb3VnaCAkbGluZSB7XG4gICAgJG50aDogJyN7JGxpbmV9biArICN7JGl0ZW19JztcbiAgICAmOm50aC0jeyRzZWxlY3Rvcn0oI3skbnRofSkge1xuICAgICAgLy8gSW5kaXZpZHVhbCBQcmVwXG4gICAgICAkb3V0cHV0OiAoXG4gICAgICAgIHdpZHRoICAgICAgICAgICAgIDogaWYoJHN5bW1ldHJpY2FsLCBudWxsLCBnZXQtc3Bhbi13aWR0aCgkc3BhbikpLFxuICAgICAgICBmbG9hdCAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgIG1hcmdpbi1iZWZvcmUgICAgIDogZ2V0LWlzb2xhdGlvbigkc3BhbiksXG4gICAgICAgIG1hcmdpbi1hZnRlciAgICAgIDogLTEwMCUsXG4gICAgICAgIHBhZGRpbmctYmVmb3JlICAgIDogbnVsbCxcbiAgICAgICAgcGFkZGluZy1hZnRlciAgICAgOiBudWxsLFxuICAgICAgICBmbG93ICAgICAgICAgICAgICA6ICRmbG93LFxuICAgICAgKTtcblxuICAgICAgLy8gSW5kaXZpZHVhbCBPdXRwdXRcbiAgICAgIEBpbmNsdWRlIGZsb2F0LXNwYW4tb3V0cHV0KCRvdXRwdXQuLi4pO1xuXG4gICAgICBAaWYgZ2V0LWVkZ2UoJHNwYW4pID09IGZpcnN0IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWs7XG4gICAgICAgIEBpbmNsdWRlIGZpcnN0KCRzcGFuKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBub2JyZWFrO1xuICAgICAgfVxuXG4gICAgICAvLyBJbmRpdmlkdWFsIExvY2F0aW9uIEluY3JlbWVudFxuICAgICAgJGxvY2F0aW9uOiBnZXQtbG9jYXRpb24oJHNwYW4pICsgJG47XG4gICAgICAkbG9jYXRpb246IGlmKCRsb2NhdGlvbiA+ICRjb250ZXh0LCAxLCAkbG9jYXRpb24pO1xuICAgICAgJHNwYW46IG1hcC1tZXJnZSgkc3BhbiwgKGxvY2F0aW9uOiAkbG9jYXRpb24pKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFJvdyBTdGFydCAmIEVuZFxuLy8gPT09PT09PT09PT09PT09XG5cbi8vIEJyZWFrXG4vLyAtLS0tLVxuLy8gQXBwbHkgdG8gYW55IGVsZW1lbnQgdGhhdCBzaG91bGQgZm9yY2UgYSBsaW5lIGJyZWFrLlxuQG1peGluIGJyZWFrIHtcbiAgQGluY2x1ZGUgb3V0cHV0KChjbGVhcjogYm90aCkpO1xufVxuXG5cbi8vIE5vQnJlYWtcbi8vIC0tLS0tLS1cbi8vIENhbmNlbCB0aGUgYnJlYWsoKSBlZmZlY3QsIGUuZy4gd2hlbiB1c2luZyBtZWRpYSBxdWVyaWVzLlxuQG1peGluIG5vYnJlYWsge1xuICBAaW5jbHVkZSBvdXRwdXQoKGNsZWFyOiBub25lKSk7XG59XG5cblxuLy8gRnVsbFxuLy8gLS0tLVxuLy8gLSBbJGNvbnRleHRdOiA8bGF5b3V0IHNob3J0aGFuZD5cbkBtaXhpbiBmdWxsKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkaW5zcGVjdCA6ICRjb250ZXh0O1xuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoZnVsbCwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBzcGFuKGZ1bGwgb2YgcGFyc2UtZ3JpZCgkY29udGV4dCkgYnJlYWspO1xufVxuXG5cbi8vIEZpcnN0XG4vLyAtLS0tLVxuLy8gLSBbJGNvbnRleHRdOiA8c2V0dGluZ3M+XG5AbWl4aW4gZmlyc3QoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRpbnNwZWN0ICA6ICRjb250ZXh0O1xuICAkY29udGV4dCAgOiBwYXJzZS1ncmlkKCRjb250ZXh0KTtcbiAgJGZsb3cgICAgIDogc3VzeS1nZXQoZmxvdywgJGNvbnRleHQpO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChmaXJzdCwgJGluc3BlY3QpO1xuICBAaWYgbm90KGlzLXNwbGl0KCRjb250ZXh0KSkge1xuICAgIEBpbmNsdWRlIGZsb2F0LWZpcnN0KCRmbG93KTtcbiAgfVxufVxuXG5AbWl4aW4gYWxwaGEoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gIEBpbmNsdWRlIGZpcnN0KCRjb250ZXh0KTtcbn1cblxuXG4vLyBMYXN0XG4vLyAtLS0tXG4vLyAtIFskY29udGV4dF06IDxzZXR0aW5ncz5cbkBtaXhpbiBsYXN0KFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkaW5zcGVjdCAgOiAkY29udGV4dDtcbiAgJGNvbnRleHQgIDogcGFyc2UtZ3JpZCgkY29udGV4dCk7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGxhc3QsICRpbnNwZWN0KTtcblxuICAkb3V0cHV0OiAoXG4gICAgZmxvdzogc3VzeS1nZXQoZmxvdywgJGNvbnRleHQpLFxuICAgIGxhc3QtZmxvdzogc3VzeS1nZXQobGFzdC1mbG93LCAkY29udGV4dCksXG4gICAgbWFyZ2luOiBpZihpcy1zcGxpdCgkY29udGV4dCksIG51bGwsIDApLFxuICApO1xuXG4gIEBpbmNsdWRlIGZsb2F0LWxhc3QoJG91dHB1dC4uLik7XG59XG5cbkBtaXhpbiBvbWVnYShcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgQGluY2x1ZGUgbGFzdCgkY29udGV4dCk7XG59XG5cblxuLy8gR2V0IEVkZ2Vcbi8vIC0tLS0tLS0tXG4vLyBDYWxjdWxhdGUgZWRnZSB2YWx1ZSBiYXNlZCBvbiBsb2NhdGlvbiwgaWYgcG9zc2libGVcbkBmdW5jdGlvbiBnZXQtZWRnZShcbiAgJHNwYW5cbikge1xuICAkc3BhbiAgICAgICA6IHBhcnNlLXNwYW4oJHNwYW4pO1xuICAkZWRnZSAgICAgICA6IHN1c3ktZ2V0KGVkZ2UsICRzcGFuKTtcblxuICBAaWYgbm90KCRlZGdlKSB7XG4gICAgJGNvdW50OiBzdXN5LWNvdW50KHN1c3ktZ2V0KGNvbHVtbnMsICRzcGFuKSk7XG4gICAgJGxvY2F0aW9uOiBzdXN5LWdldChsb2NhdGlvbiwgJHNwYW4pO1xuICAgICRuOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG5cbiAgICAkbnVtYmVyOiBpZih0eXBlLW9mKCRsb2NhdGlvbikgPT0gbnVtYmVyLCB0cnVlLCBmYWxzZSk7XG4gICAgJGluZGV4OiBpZigkbnVtYmVyIGFuZCB1bml0bGVzcygkbG9jYXRpb24pLCB0cnVlLCBmYWxzZSk7XG5cbiAgICBAaWYgJG4gPT0gJGNvdW50IHtcbiAgICAgICRlZGdlOiBmdWxsO1xuICAgIH0gQGVsc2UgaWYgJGxvY2F0aW9uIGFuZCAkbiBhbmQgJGluZGV4IHtcbiAgICAgIEBpZiAkbG9jYXRpb24gPT0gMSB7XG4gICAgICAgICRlZGdlOiBpZigkbiA9PSAkY291bnQsIGZ1bGwsIGZpcnN0KTtcbiAgICAgIH0gQGVsc2UgaWYgJGxvY2F0aW9uICsgJG4gLSAxID09ICRjb3VudCB7XG4gICAgICAgICRlZGdlOiBsYXN0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkZWRnZSA9PSBhbHBoYSBvciAkZWRnZSA9PSBvbWVnYSB7XG4gICAgJGVkZ2U6IGlmKCRlZGdlID09IGFscGhhLCBmaXJzdCwgbGFzdCk7XG4gIH1cblxuICBAcmV0dXJuICRlZGdlO1xufVxuXG5cbi8vIEdldCBMb2NhdGlvblxuLy8gLS0tLS0tLS0tLS0tXG4vLyBDYWxjdWxhdGUgbG9jYXRpb24gdmFsdWUgYmFzZWQgb24gZWRnZSwgaWYgcG9zc2libGVcbkBmdW5jdGlvbiBnZXQtbG9jYXRpb24oXG4gICRzcGFuXG4pIHtcbiAgJHNwYW4gICAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcbiAgJGxvY2F0aW9uICAgOiBzdXN5LWdldChsb2NhdGlvbiwgJHNwYW4pO1xuICAkZWRnZSAgICAgICA6IGdldC1lZGdlKCRzcGFuKTtcbiAgJG4gICAgICAgICAgOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG5cbiAgQGlmICRlZGdlIGFuZCBub3QoJGxvY2F0aW9uKSBhbmQgdHlwZS1vZigkbikgPT0gbnVtYmVyIGFuZCB1bml0bGVzcygkbikge1xuICAgIEBpZiAkZWRnZSA9PSBmaXJzdCB7XG4gICAgICAkbG9jYXRpb246IDE7XG4gICAgfSBAZWxzZSBpZiAkZWRnZSA9PSBsYXN0IHtcbiAgICAgICRsb2NhdGlvbjogc3VzeS1jb3VudChzdXN5LWdldChjb2x1bW5zLCAkc3BhbikpIC0gJG4gKyAxO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGxvY2F0aW9uXG59XG4iLCIvLyBNYXJnaW4gU3ludGF4XG4vLyA9PT09PT09PT09PT09XG5cbi8vIFByZVxuLy8gLS0tXG4vLyBBZGQgc3Bhbm5pbmctbWFyZ2lucyBiZWZvcmUgYW4gZWxlbWVudC5cbi8vIC0gJHNwYW4gIDogPHNwYW4+XG5AbWl4aW4gcHJlKFxuICAkc3BhblxuKSB7XG4gICRpbnNwZWN0OiAkc3BhbjtcbiAgJHNwYW4gICA6IG1hcC1tZXJnZSgoc3ByZWFkOiB3aWRlKSwgcGFyc2Utc3Bhbigkc3BhbikpO1xuICAkZmxvdyAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pO1xuICAkc3BsaXQgIDogaWYoc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkc3BhbikgPT0gc3BsaXQsIHRydWUsIGZhbHNlKTtcbiAgJGd1dHRlciA6IGd1dHRlcigkc3Bhbik7XG4gICRzcGFuICAgOiBzcGFuKCRzcGFuKTtcbiAgJHdpZHRoICA6IGlmKCRzcGxpdCBhbmQgJGd1dHRlciwgJHNwYW4gKyAkZ3V0dGVyLCAkc3Bhbik7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KHByZSwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBtYXJnaW4tb3V0cHV0KCR3aWR0aCwgbnVsbCwgJGZsb3cpO1xufVxuXG4vLyBQb3N0XG4vLyAtLS0tXG4vLyBBZGQgc3Bhbm5pbmctbWFyZ2lucyBhZnRlciBhbiBlbGVtZW50LlxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cbkBtaXhpbiBwb3N0KFxuICAkc3BhblxuKSB7XG4gICRpbnNwZWN0ICA6ICRzcGFuO1xuICAkc3BhbiAgICAgOiBtYXAtbWVyZ2UoKHNwcmVhZDogd2lkZSksIHBhcnNlLXNwYW4oJHNwYW4pKTtcbiAgJGZsb3cgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pO1xuICAkc3BsaXQgICAgOiBpZihzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRzcGFuKSA9PSBzcGxpdCwgdHJ1ZSwgZmFsc2UpO1xuICAkd2lkdGggICAgOiBpZigkc3BsaXQsIHNwYW4oJHNwYW4pICsgZ3V0dGVyKCRzcGFuKSwgc3Bhbigkc3BhbikpO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChwb3N0LCAkaW5zcGVjdCk7XG4gIEBpbmNsdWRlIG1hcmdpbi1vdXRwdXQobnVsbCwgJHdpZHRoLCAkZmxvdyk7XG59XG5cbi8vIFB1c2hcbi8vIC0tLS1cbi8vIFNpbXBsZSBzeW5vbnltbiBmb3IgcHJlLlxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cbkBtaXhpbiBwdXNoKFxuICAkc3BhblxuKSB7XG4gIEBpbmNsdWRlIHByZSgkc3Bhbik7XG59XG5cbi8vIFB1bGxcbi8vIC0tLS1cbi8vIEFkZCBuZWdhdGl2ZSBzcGFubmluZy1tYXJnaW5zIGJlZm9yZSBhbiBlbGVtZW50LlxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cbkBtaXhpbiBwdWxsKFxuICAkc3BhblxuKSB7XG4gICRpbnNwZWN0ICA6ICRzcGFuO1xuICAkc3BhbiAgICAgOiBtYXAtbWVyZ2UoKHNwcmVhZDogd2lkZSksIHBhcnNlLXNwYW4oJHNwYW4pKTtcbiAgJGZsb3cgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pO1xuICAkc3BsaXQgICAgOiBpZihzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRzcGFuKSA9PSBzcGxpdCwgdHJ1ZSwgZmFsc2UpO1xuICAkd2lkdGggICAgOiBpZigkc3BsaXQsIDAgLSBzcGFuKCRzcGFuKSArIGd1dHRlcigkc3BhbiksIDAgLSBzcGFuKCRzcGFuKSk7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KHB1bGwsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgbWFyZ2luLW91dHB1dCgkd2lkdGgsIG51bGwsICRmbG93KTtcbn1cblxuLy8gU3F1aXNoXG4vLyAtLS0tLS1cbi8vIEFkZCBzcGFubmluZy1tYXJnaW5zIGJlZm9yZSBhbmQgYWZ0ZXIgYW4gZWxlbWVudC5cbi8vIC0gJHByZSAgICAgOiA8c3Bhbj5cbi8vIC0gWyRwb3N0XSAgOiA8c3Bhbj5cbkBtaXhpbiBzcXVpc2goXG4gICRwcmUsXG4gICRwb3N0OiBmYWxzZVxuKSB7XG4gICRpbnNwZWN0ICAgICAgOiAoJHByZSwgJHBvc3QpO1xuICAkcHJlICAgICAgICAgIDogbWFwLW1lcmdlKChzcHJlYWQ6IHdpZGUpLCBwYXJzZS1zcGFuKCRwcmUpKTtcblxuICBAaWYgJHBvc3Qge1xuICAgICRwb3N0OiBtYXAtbWVyZ2UoKHNwcmVhZDogd2lkZSksIHBhcnNlLXNwYW4oJHBvc3QpKTtcbiAgfSBAZWxzZSB7XG4gICAgJHNwYW46IHN1c3ktZ2V0KHNwYW4sICRwcmUpO1xuICAgIEBpZiBsZW5ndGgoJHNwYW4pID4gMSB7XG4gICAgICAkcHJlOiBtYXAtbWVyZ2UoJHByZSwgKHNwYW46IG50aCgkc3BhbiwgMSkpKTtcbiAgICAgICRwb3N0OiBtYXAtbWVyZ2UoJHByZSwgKHNwYW46IG50aCgkc3BhbiwgMikpKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRwb3N0OiAkcHJlO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChzcXVpc2gsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgcHJlKCRwcmUpO1xuICBAaW5jbHVkZSBwb3N0KCRwb3N0KTtcbn1cbiIsIi8vIFBhZGRpbmcgU3ludGF4XG4vLyA9PT09PT09PT09PT09PVxuXG4vLyBQcmVmaXhcbi8vIC0tLS0tLVxuLy8gQWRkIHNwYW5uaW5nLXBhZGRpbmcgYmVmb3JlIGFuIGVsZW1lbnQuXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQG1peGluIHByZWZpeChcbiAgJHNwYW5cbikge1xuICAkaW5zcGVjdCAgOiAkc3BhbjtcbiAgJHNwYW4gICAgIDogbWFwLW1lcmdlKChzcHJlYWQ6IHdpZGUpLCBwYXJzZS1zcGFuKCRzcGFuKSk7XG4gICRmbG93ICAgICA6IHN1c3ktZ2V0KGZsb3csICRzcGFuKTtcbiAgJHdpZHRoICAgIDogc3Bhbigkc3Bhbik7XG5cbiAgQGlmIGlzLWluc2lkZSgkc3Bhbikge1xuICAgICRndXR0ZXI6IGd1dHRlcigkc3Bhbik7XG4gICAgJHdpZHRoOiBpZigkZ3V0dGVyIGFuZCBjb21wYXJhYmxlKCR3aWR0aCwgJGd1dHRlciksICR3aWR0aCArICRndXR0ZXIsICR3aWR0aCk7XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QocHJlZml4LCAkaW5zcGVjdCk7XG4gIEBpbmNsdWRlIHBhZGRpbmctb3V0cHV0KCR3aWR0aCwgbnVsbCwgJGZsb3cpO1xufVxuXG4vLyBTdWZmaXhcbi8vIC0tLS0tLVxuLy8gQWRkIHNwYW5uaW5nLXBhZGRpbmcgYWZ0ZXIgYW4gZWxlbWVudC5cbi8vIC0gJHNwYW4gIDogPHNwYW4+XG5AbWl4aW4gc3VmZml4KFxuICAkc3BhblxuKSB7XG4gICRpbnNwZWN0ICA6ICRzcGFuO1xuICAkc3BhbiAgICAgOiBtYXAtbWVyZ2UoKHNwcmVhZDogd2lkZSksIHBhcnNlLXNwYW4oJHNwYW4pKTtcbiAgJGZsb3cgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pO1xuICAkd2lkdGggICAgOiBzcGFuKCRzcGFuKTtcblxuICBAaWYgaXMtaW5zaWRlKCRzcGFuKSB7XG4gICAgJGd1dHRlcjogZ3V0dGVyKCRzcGFuKTtcbiAgICAkd2lkdGg6IGlmKCRndXR0ZXIgYW5kIGNvbXBhcmFibGUoJHdpZHRoLCAkZ3V0dGVyKSwgJHdpZHRoICsgJGd1dHRlciwgJHdpZHRoKTtcbiAgfVxuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChzdWZmaXgsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgcGFkZGluZy1vdXRwdXQobnVsbCwgJHdpZHRoLCAkZmxvdyk7XG59XG5cbi8vIFBhZFxuLy8gLS0tXG4vLyBBZGQgc3Bhbm5pbmctcGFkZGluZyBiZWZvcmUgYW5kIGFmdGVyIGFuIGVsZW1lbnQuXG4vLyAtICRwcmUgICAgIDogPHNwYW4+XG4vLyAtIFskcG9zdF0gIDogPHNwYW4+XG5AbWl4aW4gcGFkKFxuICAkcHJlLFxuICAkcG9zdDogZmFsc2Vcbikge1xuICAkaW5zcGVjdCAgOiAoJHByZSwgJHBvc3QpO1xuICAkcHJlICAgICAgOiBtYXAtbWVyZ2UoKHNwcmVhZDogd2lkZSksIHBhcnNlLXNwYW4oJHByZSkpO1xuXG4gIEBpZiAkcG9zdCB7XG4gICAgJHBvc3Q6IG1hcC1tZXJnZSgoc3ByZWFkOiB3aWRlKSwgcGFyc2Utc3BhbigkcG9zdCkpO1xuICB9IEBlbHNlIHtcbiAgICAkc3Bhbjogc3VzeS1nZXQoc3BhbiwgJHByZSk7XG4gICAgQGlmIGxlbmd0aCgkc3BhbikgPiAxIHtcbiAgICAgICRwcmU6IG1hcC1tZXJnZSgkcHJlLCAoc3BhbjogbnRoKCRzcGFuLCAxKSkpO1xuICAgICAgJHBvc3Q6IG1hcC1tZXJnZSgkcHJlLCAoc3BhbjogbnRoKCRzcGFuLCAyKSkpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHBvc3Q6ICRwcmU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KHBhZCwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBwcmVmaXgoJHByZSk7XG4gIEBpbmNsdWRlIHN1ZmZpeCgkcG9zdCk7XG5cbn1cbiIsIi8vIEJsZWVkIFN5bnRheFxuLy8gPT09PT09PT09PT09XG5cbi8vIEJsZWVkXG4vLyAtLS0tLVxuLy8gQWRkIG5lZ2F0aXZlIG1hcmdpbnMsIGFuZCBlcXVhbCBwb3NpdGl2ZSBwYWRkaW5nIHRvIGNyZWF0ZSBibGVlZC5cbi8vIC0gJGJsZWVkICA6IDxzcGFuPlxuQG1peGluIGJsZWVkKFxuICAkYmxlZWQ6IDAgZ3V0dGVyKClcbikge1xuICAkaW5zcGVjdCAgOiAkYmxlZWQ7XG4gICRvdXRwdXQgICA6IGdldC1ibGVlZCgkYmxlZWQpO1xuXG4gIEBpZiBzdXN5LWdldChnbG9iYWwtYm94LXNpemluZykgIT0gY29udGVudC1ib3gge1xuICAgICRvdXRwdXQ6IG1hcC1tZXJnZSgoYm94LXNpemluZzogY29udGVudC1ib3gpLCAkb3V0cHV0KTtcbiAgfVxuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChibGVlZCwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBvdXRwdXQoJG91dHB1dCk7XG59XG5cblxuLy8gQmxlZWQteFxuLy8gLS0tLS0tLVxuLy8gU2hvcnRjdXQgZm9yIGhvcml6b250YWwgYmxlZWQuXG4vLyAtICRibGVlZCAgOiA8c3Bhbj5cbkBtaXhpbiBibGVlZC14KFxuICAkYmxlZWQ6IGd1dHRlcigpXG4pIHtcbiAgJGJsZWVkICA6IHBhcnNlLXNwYW4oJGJsZWVkKTtcbiAgJHRyYmwgICA6IHN1c3ktZ2V0KHNwYW4sICRibGVlZCk7XG5cbiAgQGlmIGxlbmd0aCgkdHJibCkgPT0gMSB7XG4gICAgJGJsZWVkOiBtYXAtbWVyZ2UoJGJsZWVkLCAoc3BhbjogMCBudGgoJHRyYmwsIDEpKSk7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCR0cmJsKSA9PSAyIHtcbiAgICAkYmxlZWQ6IG1hcC1tZXJnZSgkYmxlZWQsIChzcGFuOiAwIG50aCgkdHJibCwgMikgMCBudGgoJHRyYmwsIDEpKSk7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICdibGVlZC14IG9ubHkgdGFrZXMgMiBsZW5ndGhzLCBidXQgI3tsZW5ndGgoJHRyYmwpfSB3ZXJlIHBhc3NlZC4nO1xuICB9XG5cbiAgQGluY2x1ZGUgYmxlZWQoJGJsZWVkKTtcbn1cblxuXG4vLyBCbGVlZC15XG4vLyAtLS0tLS0tXG4vLyBTaG9ydGN1dCBmb3IgdmVydGljYWwgYmxlZWQuXG4vLyAtICRibGVlZCAgOiA8c3Bhbj5cbkBtaXhpbiBibGVlZC15KFxuICAkYmxlZWQ6IGlmKGZ1bmN0aW9uLWV4aXN0cyhyaHl0aG0pLCByaHl0aG0oMSksIDFlbSlcbikge1xuICAkYmxlZWQgIDogcGFyc2Utc3BhbigkYmxlZWQpO1xuICAkdHJibCAgIDogc3VzeS1nZXQoc3BhbiwgJGJsZWVkKTtcblxuICBAaWYgbGVuZ3RoKCR0cmJsKSA9PSAxIHtcbiAgICAkYmxlZWQ6IG1hcC1tZXJnZSgkYmxlZWQsIChzcGFuOiBudGgoJHRyYmwsIDEpIDApKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHRyYmwpID09IDIge1xuICAgICRibGVlZDogbWFwLW1lcmdlKCRibGVlZCwgKHNwYW46IG50aCgkdHJibCwgMSkgMCBudGgoJHRyYmwsIDIpIDApKTtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gJ2JsZWVkLXkgb25seSB0YWtlcyAyIGxlbmd0aHMsIGJ1dCAje2xlbmd0aCgkdHJibCl9IHdlcmUgcGFzc2VkLic7XG4gIH1cblxuICBAaW5jbHVkZSBibGVlZCgkYmxlZWQpO1xufVxuXG5cbi8vIEdldCBCbGVlZFxuLy8gLS0tLS0tLS0tXG4vLyBSZXR1cm4gYmxlZWQgb3V0cHV0IHZhbHVlc1xuLy8gLSAkYmxlZWQ6IDxzcGFuPlxuQGZ1bmN0aW9uIGdldC1ibGVlZChcbiAgJGJsZWVkXG4pIHtcbiAgJGJsZWVkICAgIDogbWFwLW1lcmdlKChzcHJlYWQ6IHdpZGUpLCBwYXJzZS1zcGFuKCRibGVlZCkpO1xuICAkdHJibCAgICAgOiBzdXN5LWdldChzcGFuLCAkYmxlZWQpO1xuICAkc2hvcnQgICAgOiBudWxsO1xuICAkb3V0cHV0ICAgOiAoKTtcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkdHJibCkge1xuICAgICR0aGlzOiBudGgoJHRyYmwsICRpKTtcbiAgICAkbmV3OiAoKTtcbiAgICAkbWFyZ2luOiBudWxsO1xuICAgICRwYWRkaW5nOiBudWxsO1xuICAgICRwYWRkaW5nLXg6IG51bGw7XG5cbiAgICBAaWYgJHRoaXMgPiAwIHtcbiAgICAgICR0aGlzOiBtYXAtbWVyZ2UoJGJsZWVkLCAoc3BhbjogJHRoaXMpKTtcbiAgICAgICRtYXJnaW46IHNwYW4oJHRoaXMpO1xuICAgICAgJHBhZGRpbmc6ICRtYXJnaW47XG4gICAgICAkcGFkZGluZy14OiAkcGFkZGluZztcbiAgICB9XG5cbiAgICBAaWYgJG1hcmdpbiBhbmQgJG1hcmdpbiA+IDAge1xuICAgICAgJG1hcmdpbjogLSAkbWFyZ2luO1xuXG4gICAgICBAaWYgaXMtaW5zaWRlKCR0aGlzKSB7XG4gICAgICAgICRndXR0ZXI6IGd1dHRlcigkdGhpcyk7XG4gICAgICAgICRqb2luOiBpZigkZ3V0dGVyIGFuZCBjb21wYXJhYmxlKCRwYWRkaW5nLCAkZ3V0dGVyKSwgdHJ1ZSwgZmFsc2UpO1xuICAgICAgICAkcGFkZGluZy14OiBpZigkam9pbiBhbmQgJHBhZGRpbmcgPiAwLCAkcGFkZGluZyArICRndXR0ZXIsICRwYWRkaW5nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGkgPT0gMSB7XG4gICAgICAkbmV3OiAoXG4gICAgICAgIG1hcmdpbi10b3A6ICRtYXJnaW4sXG4gICAgICAgIHBhZGRpbmctdG9wOiAkcGFkZGluZyxcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luLFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZy14LFxuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmcsXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luLFxuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nLXgsXG4gICAgICApO1xuICAgIH0gQGVsc2UgaWYgJGkgPT0gMiB7XG4gICAgICAkbmV3OiAoXG4gICAgICAgIG1hcmdpbi1yaWdodDogJG1hcmdpbixcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmcteCxcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW4sXG4gICAgICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmcteCxcbiAgICAgICk7XG4gICAgfSBAZWxzZSBpZiAkaSA9PSAzIHtcbiAgICAgICRuZXc6IChcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbixcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRwYWRkaW5nLFxuICAgICAgKTtcbiAgICB9IEBlbHNlIGlmICRpID09IDQge1xuICAgICAgJG5ldzogKFxuICAgICAgICBtYXJnaW4tbGVmdDogJG1hcmdpbixcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZy14LFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAkb3V0cHV0OiBtYXAtbWVyZ2UoJG91dHB1dCwgJG5ldyk7XG4gIH1cblxuICBAZWFjaCAkcHJvcCwgJHZhbHVlIGluICRvdXRwdXQge1xuICAgICRvdXRwdXQ6IGlmKCR2YWx1ZSA9PSAwLCBtYXAtbWVyZ2UoJG91dHB1dCwgKCRwcm9wOiBudWxsKSksICRvdXRwdXQpO1xuICB9XG5cbiAgQHJldHVybiBibGVlZC1zaG9ydGhhbmQoJG91dHB1dCk7XG59XG5cbi8vIEJsZWVkIFNob3J0aGFuZFxuLy8gLS0tLS0tLS0tLS0tLS0tXG4vLyBDb252ZXJ0IGJsZWVkIG91dHB1dCBpbnRvIHNob3J0aGFuZCB3aGVuIHBvc3NpYmxlLlxuLy8gLSAkYmxlZWQ6IDxvdXRwdXQgbWFwPlxuQGZ1bmN0aW9uIGJsZWVkLXNob3J0aGFuZChcbiAgJGJsZWVkXG4pIHtcbiAgJG1hcmdpbjogKCk7XG4gICRwYWRkaW5nOiAoKTtcbiAgJHJldHVybjogKCk7XG5cbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRibGVlZCB7XG4gICAgQGlmIHN0ci1pbmRleCgka2V5LCBtYXJnaW4pIHtcbiAgICAgICRtYXJnaW46IG1hcC1tZXJnZSgkbWFyZ2luLCAoJGtleTogJHZhbHVlKSk7XG4gICAgfSBAZWxzZSBpZiBzdHItaW5kZXgoJGtleSwgcGFkZGluZykgPiAwIHtcbiAgICAgICRwYWRkaW5nOiBtYXAtbWVyZ2UoJHBhZGRpbmcsICgka2V5OiAkdmFsdWUpKTtcbiAgICB9XG4gIH1cblxuICAkcHJvcHM6IChcbiAgICBtYXJnaW46ICRtYXJnaW4sXG4gICAgcGFkZGluZzogJHBhZGRpbmcsXG4gICk7XG5cbiAgQGVhY2ggJG5hbWUsICRtYXAgaW4gJHByb3BzIHtcbiAgICAkZm91cjogaWYobGVuZ3RoKG1hcC1rZXlzKCRtYXApKSA9PSA0LCB0cnVlLCBmYWxzZSk7XG4gICAgJG51bGw6IGlmKGluZGV4KG1hcC12YWx1ZXMoJG1hcCksIG51bGwpLCB0cnVlLCBmYWxzZSk7XG5cbiAgICBAaWYgJGZvdXIgYW5kIG5vdCgkbnVsbCkge1xuICAgICAgJHRvcDogbWFwLWdldCgkbWFwLCAnI3skbmFtZX0tdG9wJyk7XG4gICAgICAkcmlnaHQ6IG1hcC1nZXQoJG1hcCwgJyN7JG5hbWV9LXJpZ2h0Jyk7XG4gICAgICAkYm90dG9tOiBtYXAtZ2V0KCRtYXAsICcjeyRuYW1lfS1ib3R0b20nKTtcbiAgICAgICRsZWZ0OiBtYXAtZ2V0KCRtYXAsICcjeyRuYW1lfS1sZWZ0Jyk7XG5cbiAgICAgICR0YjogaWYoJHRvcCA9PSAkYm90dG9tLCAkdG9wLCBudWxsKTtcbiAgICAgICRybDogaWYoJHJpZ2h0ID09ICRsZWZ0LCAkcmlnaHQsIG51bGwpO1xuICAgICAgJGFsbDogaWYoJHRiID09ICRybCwgJHRiLCBudWxsKTtcblxuICAgICAgJG5ldzogaWYoJGFsbCwgJGFsbCwgbnVsbCk7XG5cbiAgICAgIEBpZiBub3QoJG5ldykge1xuICAgICAgICBAaWYgJHRiIGFuZCAkcmwge1xuICAgICAgICAgICRuZXc6ICR0YiAkcmw7XG4gICAgICAgIH0gQGVsc2UgaWYgJHJsIHtcbiAgICAgICAgICAkbmV3OiAkdG9wICRybCAkYm90dG9tO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAkbmV3OiAkdG9wICRyaWdodCAkYm90dG9tICRsZWZ0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICRyZXR1cm46IG1hcC1tZXJnZSgkcmV0dXJuLCAoJG5hbWU6ICRuZXcpKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRyZXR1cm46IG1hcC1tZXJnZSgkcmV0dXJuLCAkbWFwKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRyZXR1cm47XG59XG4iLCIvLyBCcmVha3BvaW50IEludGVncmF0aW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09XG5cbiRzdXN5LW1lZGlhOiAoKSAhZGVmYXVsdDtcbiRzdXN5LW1lZGlhLWZhbGxiYWNrOiBmYWxzZSAhZGVmYXVsdDtcblxuJF9zdXN5LW1lZGlhLWNvbnRleHQ6ICgpO1xuXG5cbi8vIFN1c3kgQnJlYWtwb2ludFxuLy8gLS0tLS0tLS0tLS0tLS0tXG4vLyBDaGFuZ2UgZ3JpZHMgYXQgZGlmZmVyZW50IG1lZGlhIHF1ZXJ5IGJyZWFrcG9pbnRzLlxuLy8gLSAkcXVlcnkgICAgIDogPG1pbi13aWR0aD4gWzxtYXgtd2lkdGg+XSB8IDxwcm9wZXJ0eT4gPHZhbHVlPiB8IDxtYXA+XG4vLyAtICRsYXlvdXQgICAgOiA8c2V0dGluZ3M+XG4vLyAtICRuby1xdWVyeSAgOiA8Ym9vbGVhbj4gfCA8c2VsZWN0b3I+XG5AbWl4aW4gc3VzeS1icmVha3BvaW50KFxuICAkcXVlcnksXG4gICRsYXlvdXQ6IGZhbHNlLFxuICAkbm8tcXVlcnk6ICRzdXN5LW1lZGlhLWZhbGxiYWNrXG4pIHtcbiAgQGluY2x1ZGUgc3VzeS1tZWRpYS1yb3V0ZXIoJHF1ZXJ5LCAkbm8tcXVlcnkpIHtcbiAgICBAaWYgJGxheW91dCB7XG4gICAgICBAaW5jbHVkZSB3aXRoLWxheW91dCgkbGF5b3V0KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8gU3VzeSBNZWRpYVxuLy8gLS0tLS0tLS0tLVxuLy8gLSAkcXVlcnk6IDxtaW4td2lkdGg+IFs8bWF4LXdpZHRoPl0gfCA8cHJvcGVydHk+IDx2YWx1ZT5cbi8vIC0gJG5vLXF1ZXJ5OiA8Ym9vbGVhbj4gfCA8c2VsZWN0b3I+XG5AbWl4aW4gc3VzeS1tZWRpYShcbiAgJHF1ZXJ5LFxuICAkbm8tcXVlcnk6ICRzdXN5LW1lZGlhLWZhbGxiYWNrXG4pIHtcbiAgJG9sZC1jb250ZXh0OiAkX3N1c3ktbWVkaWEtY29udGV4dDtcbiAgJG5hbWU6IGlmKG1hcC1oYXMta2V5KCRzdXN5LW1lZGlhLCAkcXVlcnkpLCAkcXVlcnksIG51bGwpO1xuICAkcXVlcnk6IHN1c3ktZ2V0LW1lZGlhKCRxdWVyeSk7XG4gICRxdWVyeTogc3VzeS1wYXJzZS1tZWRpYSgkcXVlcnkpO1xuXG4gIEBpbmNsdWRlIHN1c3ktbWVkaWEtY29udGV4dCgkcXVlcnksICRuYW1lKTtcblxuICBAaWYgJG5vLXF1ZXJ5IGFuZCB0eXBlLW9mKCRuby1xdWVyeSkgIT0gc3RyaW5nIHtcbiAgICBAY29udGVudDtcbiAgfSBAZWxzZSB7XG4gICAgQG1lZGlhICN7c3VzeS1yZW5kZXItbWVkaWEoJHF1ZXJ5KX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgQGlmIHR5cGUtb2YoJG5vLXF1ZXJ5KSA9PSBzdHJpbmcge1xuICAgICAgI3skbm8tcXVlcnl9ICYge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LW1lZGlhLWNvbnRleHQoJG9sZC1jb250ZXh0LCAkY2xlYW46IHRydWUpO1xufVxuXG5cbi8vIE1lZGlhIFJvdXRlclxuLy8gLS0tLS0tLS0tLS0tXG4vLyBSb3V0IG1lZGlhIGFyZ3VtZW50cyB0byB0aGUgY29ycmVjdCBtaXhpbi5cbkBtaXhpbiBzdXN5LW1lZGlhLXJvdXRlcihcbiAgJHF1ZXJ5LFxuICAkbm8tcXVlcnk6ICRzdXN5LW1lZGlhLWZhbGxiYWNrXG4pIHtcbiAgQGlmIHN1c3ktc3VwcG9ydChicmVha3BvaW50LCAobWl4aW46IGJyZWFrcG9pbnQpLCAkd2FybjogZmFsc2UpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIHN1c3ktbWVkaWEoJHF1ZXJ5LCAkbm8tcXVlcnkpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFVwZGF0ZSBDb250ZXh0XG4vLyAtLS0tLS0tLS0tLS0tXG4vLyBTZXQgdGhlIG5ldyBtZWRpYSBjb250ZXh0XG5AbWl4aW4gc3VzeS1tZWRpYS1jb250ZXh0KFxuICAkcXVlcnksXG4gICRuYW1lOiBudWxsLFxuICAkY2xlYW46IGZhbHNlXG4pIHtcbiAgJHF1ZXJ5OiBtYXAtbWVyZ2UoKG5hbWU6ICRuYW1lKSwgJHF1ZXJ5KTtcblxuICBAaWYgJGNsZWFuIHtcbiAgICAkX3N1c3ktbWVkaWEtY29udGV4dDogJHF1ZXJ5ICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRfc3VzeS1tZWRpYS1jb250ZXh0OiBtYXAtbWVyZ2UoJF9zdXN5LW1lZGlhLWNvbnRleHQsICRxdWVyeSkgIWdsb2JhbDtcbiAgfVxufVxuXG5cbi8vIE1lZGlhIENvbnRleHRcbi8vIC0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgZnVsbCBtZWRpYSBjb250ZXh0LCBvciBhIHNpbmdsZSBtZWRpYSBwcm9wZXJ0eSAoZS5nLiBtaW4td2lkdGgpXG5AZnVuY3Rpb24gc3VzeS1tZWRpYS1jb250ZXh0KFxuICAkcHJvcGVydHk6IGZhbHNlXG4pIHtcbiAgQGlmICRwcm9wZXJ0eSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRfc3VzeS1tZWRpYS1jb250ZXh0LCAkcHJvcGVydHkpO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuICRfc3VzeS1tZWRpYS1jb250ZXh0O1xuICB9XG59XG5cblxuLy8gR2V0IE1lZGlhXG4vLyAtLS0tLS0tLS1cbi8vIFJldHVybiBhIG5hbWVkIG1lZGlhLXF1ZXJ5IGZyb20gJHN1c3ktbWVkaWEuXG4vLyAtICRuYW1lOiA8a2V5PlxuQGZ1bmN0aW9uIHN1c3ktZ2V0LW1lZGlhKFxuICAkbmFtZVxuKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkc3VzeS1tZWRpYSwgJG5hbWUpIHtcbiAgICAkbWFwLXZhbHVlOiBtYXAtZ2V0KCRzdXN5LW1lZGlhLCAkbmFtZSk7XG4gICAgQGlmICgkbmFtZSA9PSAkbWFwLXZhbHVlKSB7XG4gICAgICAkbmFtZTogJG1hcC12YWx1ZTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRuYW1lOiBzdXN5LWdldC1tZWRpYSgkbWFwLXZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRuYW1lO1xufVxuXG5cbi8vIFJlbmRlciBNZWRpYVxuLy8gLS0tLS0tLS0tLS0tXG4vLyBCdWlsZCBhIG1lZGlhLXF1ZXJ5IHN0cmluZyBmcm9tIHZhcmlvdXMgbWVkaWEgc2V0dGluZ3NcbkBmdW5jdGlvbiBzdXN5LXJlbmRlci1tZWRpYShcbiAgJHF1ZXJ5XG4pIHtcbiAgJG91dHB1dDogbnVsbDtcbiAgQGVhY2ggJHByb3BlcnR5LCAkdmFsdWUgaW4gJHF1ZXJ5IHtcbiAgICAkc3RyaW5nOiBudWxsO1xuXG4gICAgQGlmICRwcm9wZXJ0eSA9PSBtZWRpYSB7XG4gICAgICAkc3RyaW5nOiAkdmFsdWU7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkc3RyaW5nOiAnKCN7JHByb3BlcnR5fTogI3skdmFsdWV9KSc7XG4gICAgfVxuXG4gICAgJG91dHB1dDogaWYoJG91dHB1dCwgJyN7JG91dHB1dH0gYW5kICN7JHN0cmluZ30nLCAkc3RyaW5nKTtcbiAgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuXG4vLyBQYXJzZSBNZWRpYVxuLy8gLS0tLS0tLS0tLS1cbi8vIFJldHVybiBwYXJzZWQgbWVkaWEtcXVlcnkgc2V0dGluZ3MgYmFzZWQgb24gc2hvcnRoYW5kXG5AZnVuY3Rpb24gc3VzeS1wYXJzZS1tZWRpYShcbiAgJHF1ZXJ5XG4pIHtcbiAgJG1xOiBudWxsO1xuICBAaWYgdHlwZS1vZigkcXVlcnkpID09IG1hcCB7XG4gICAgJG1xOiAkcXVlcnk7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkcXVlcnkpID09IG51bWJlciB7XG4gICAgJG1xOiAobWluLXdpZHRoOiAkcXVlcnkpO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSBsaXN0IGFuZCBsZW5ndGgoJHF1ZXJ5KSA9PSAyIHtcbiAgICBAaWYgdHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gbnVtYmVyIHtcbiAgICAgICRtcTogKFxuICAgICAgICBtaW4td2lkdGg6IG1pbigkcXVlcnkuLi4pLFxuICAgICAgICBtYXgtd2lkdGg6IG1heCgkcXVlcnkuLi4pLFxuICAgICAgKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRtcTogKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSk7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAkbXE6IChtZWRpYTogJyN7JHF1ZXJ5fScpO1xuICB9XG5cbiAgQHJldHVybiAkbXE7XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIERlZmF1bHQgVmFyaWFibGVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRCcmVha3BvaW50LVNldHRpbmdzOiAoXG4gICdkZWZhdWx0IG1lZGlhJzogYWxsLFxuICAnZGVmYXVsdCBmZWF0dXJlJzogbWluLXdpZHRoLFxuICAnZGVmYXVsdCBwYWlyJzogd2lkdGgsXG5cbiAgJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJzogZmFsc2UsXG4gICd0byBlbXMnOiBmYWxzZSxcbiAgJ3RyYW5zZm9ybSByZXNvbHV0aW9ucyc6IHRydWUsXG5cbiAgJ25vIHF1ZXJpZXMnOiBmYWxzZSxcbiAgJ25vIHF1ZXJ5IGZhbGxiYWNrcyc6IGZhbHNlLFxuXG4gICdiYXNlIGZvbnQgc2l6ZSc6IDE2cHgsXG5cbiAgJ2xlZ2FjeSBzeW50YXgnOiBmYWxzZVxuKTtcblxuJGJyZWFrcG9pbnQ6ICgpICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImJyZWFrcG9pbnQvc2V0dGluZ3NcIjtcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvY29udGV4dCc7XG5AaW1wb3J0ICdicmVha3BvaW50L2hlbHBlcnMnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9wYXJzZXJzJztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvbm8tcXVlcnknO1xuXG5AaW1wb3J0ICdicmVha3BvaW50L3Jlc3BvbmQtdG8nO1xuXG5AaW1wb3J0IFwiYnJlYWtwb2ludC9sZWdhY3ktc2V0dGluZ3NcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IE1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIGxlZ2FjeS1zZXR0aW5ncy13YXJuaW5nO1xuXG4gIC8vIFJlc2V0IGNvbnRleHRzXG4gIEBpbmNsdWRlIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cygpO1xuXG4gICRicmVha3BvaW50OiBicmVha3BvaW50KCRxdWVyeSwgZmFsc2UpO1xuXG4gICRxdWVyeS1zdHJpbmc6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdxdWVyeScpO1xuICAkcXVlcnktZmFsbGJhY2s6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdmYWxsYmFjaycpO1xuXG4gICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdjb250ZXh0IGhvbGRlcicpICFnbG9iYWw7XG4gICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdxdWVyeSBjb3VudCcpICFnbG9iYWw7XG5cbiAgLy8gQWxsb3cgZm9yIGFuIGFzLW5lZWRlZCBvdmVycmlkZSBvciB1c2FnZSBvZiBubyBxdWVyeSBmYWxsYmFjay5cbiAgQGlmICRuby1xdWVyeSAhPSBmYWxzZSB7XG4gICAgJHF1ZXJ5LWZhbGxiYWNrOiAkbm8tcXVlcnk7XG4gIH1cblxuICBAaWYgJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlIHtcbiAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgnbm8tcXVlcnknLCAkcXVlcnktZmFsbGJhY2spO1xuICB9XG5cbiAgLy8gUHJpbnQgT3V0IFF1ZXJ5IFN0cmluZ1xuICBAaWYgbm90IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykge1xuICAgIEBtZWRpYSAjeyRxdWVyeS1zdHJpbmd9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykgIT0gZmFsc2Ugb3IgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJpZXMnKSA9PSB0cnVlIHtcblxuICAgICR0eXBlOiB0eXBlLW9mKGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSk7XG4gICAgJHByaW50OiBmYWxzZTtcblxuICAgIEBpZiAoJHR5cGUgPT0gJ2Jvb2wnKSB7XG4gICAgICAkcHJpbnQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIGlmICgkdHlwZSA9PSAnc3RyaW5nJykge1xuICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayA9PSBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xuICAgICAgICAkcHJpbnQ6IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICgkdHlwZSA9PSAnbGlzdCcpIHtcbiAgICAgIEBlYWNoICR3cmFwcGVyIGluIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSB7XG4gICAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgPT0gJHdyYXBwZXIge1xuICAgICAgICAgICRwcmludDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFdyaXRlIEZhbGxiYWNrXG4gICAgQGlmICgkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2UpIGFuZCAoJHByaW50ID09IHRydWUpIHtcbiAgICAgICR0eXBlLWZhbGxiYWNrOiB0eXBlLW9mKCRxdWVyeS1mYWxsYmFjayk7XG5cbiAgICAgIEBpZiAoJHR5cGUtZmFsbGJhY2sgIT0gJ2Jvb2wnKSB7XG4gICAgICAgICN7JHF1ZXJ5LWZhbGxiYWNrfSAmIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMoKTtcbn1cblxuXG5AbWl4aW4gbXEoJHF1ZXJ5LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkbm8tcXVlcnkpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBIYXMgU2V0dGluZ1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1oYXMoJHNldHRpbmcpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50LCAkc2V0dGluZykge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEdldCBTZXR0aW5nc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1nZXQoJHNldHRpbmcpIHtcbiAgQGlmIGJyZWFrcG9pbnQtaGFzKCRzZXR0aW5nKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRicmVha3BvaW50LCAkc2V0dGluZyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkQnJlYWtwb2ludC1TZXR0aW5ncywgJHNldHRpbmcpO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gU2V0IFNldHRpbmdzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LXNldCgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpZiAoc3RyLWluZGV4KCRzZXR0aW5nLCAnLScpIG9yIHN0ci1pbmRleCgkc2V0dGluZywgJ18nKSkgYW5kIHN0ci1pbmRleCgkc2V0dGluZywgJyAnKSA9PSBudWxsIHtcbiAgICBAd2FybiBcIldvcmRzIGluIEJyZWFrcG9pbnQgc2V0dGluZ3Mgc2hvdWxkIGJlIHNlcGFyYXRlZCBieSBzcGFjZXMsIG5vdCBkYXNoZXMgb3IgdW5kZXJzY29yZXMuIFBsZWFzZSByZXBsYWNlIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMgYmV0d2VlbiB3b3JkcyB3aXRoIHNwYWNlcy4gU2V0dGluZ3Mgd2lsbCBub3Qgd29yayBhcyBleHBlY3RlZCB1bnRpbCBjaGFuZ2VkLlwiO1xuICB9XG4gICRicmVha3BvaW50OiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnQsICgkc2V0dGluZzogJHZhbHVlKSkgIWdsb2JhbDtcbiAgQHJldHVybiB0cnVlO1xufVxuXG5AbWl4aW4gYnJlYWtwb2ludC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSkge1xuICAkYnJlYWtwb2ludC1jaGFuZ2U6IGJyZWFrcG9pbnQtc2V0KCRzZXR0aW5nLCAkdmFsdWUpO1xufVxuXG5AbWl4aW4gYnJlYWtwb2ludC1zZXQoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKTtcbn1cblxuQG1peGluIGJrcHQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5AbWl4aW4gYmtwdC1zZXQoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZW1vdmUgU2V0dGluZ1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1yZXNldCgkc2V0dGluZ3MuLi4pIHtcbiAgQGlmIGxlbmd0aCgkc2V0dGluZ3MpID09IDEge1xuICAgICRzZXR0aW5nczogbnRoKCRzZXR0aW5ncywgMSk7XG4gIH1cblxuICBAZWFjaCAkc2V0dGluZyBpbiAkc2V0dGluZ3Mge1xuICAgICRicmVha3BvaW50OiBtYXAtcmVtb3ZlKCRicmVha3BvaW50LCAkc2V0dGluZykgIWdsb2JhbDtcbiAgfVxuICBAcmV0dXJuIHRydWU7XG59XG5cbkBtaXhpbiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncy4uLikge1xuICAkYnJlYWtwb2ludC1yZXNldDogYnJlYWtwb2ludC1yZXNldCgkc2V0dGluZ3MpO1xufVxuXG5AbWl4aW4gYmtwdC1yZXNldCgkc2V0dGluZ3MuLi4pIHtcbiAgJGJyZWFrcG9pbnQtcmVzZXQ6IGJyZWFrcG9pbnQtcmVzZXQoJHNldHRpbmdzKTtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFByaXZhdGUgQnJlYWtwb2ludCBWYXJpYWJsZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCk7XG4kcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgSGFzIENvbnRleHRcbi8vIFJldHVybnMgd2hldGhlciBvciBub3QgeW91IGFyZSBpbnNpZGUgYSBCcmVha3BvaW50IHF1ZXJ5XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWhhcy1jb250ZXh0KCkge1xuICBAaWYgbGVuZ3RoKCRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IEdldCBDb250ZXh0XG4vLyAkZmVhdHVyZTogSW5wdXQgZmVhdHVyZSB0byBnZXQgaXQncyBjdXJyZW50IE1RIGNvbnRleHQuIFJldHVybnMgZmFsc2UgaWYgbm8gY29udGV4dFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1nZXQtY29udGV4dCgkZmVhdHVyZSkge1xuICBAaWYgbWFwLWhhcy1rZXkoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpIHtcbiAgICAkZ2V0OiBtYXAtZ2V0KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKTtcbiAgICAvLyBTcGVjaWFsIGhhbmRsaW5nIG9mIG5vLXF1ZXJ5IGZyb20gZ2V0IHNpZGUgc28gL2ZhbHNlLyBwcmVwZW5kcyBhcmVuJ3QgcmV0dXJuZWRcbiAgICBAaWYgJGZlYXR1cmUgPT0gJ25vLXF1ZXJ5JyB7XG4gICAgICBAaWYgdHlwZS1vZigkZ2V0KSA9PSAnbGlzdCcgYW5kIGxlbmd0aCgkZ2V0KSA+IDEgYW5kIG50aCgkZ2V0LCAxKSA9PSBmYWxzZSB7XG4gICAgICAgICRnZXQ6IG50aCgkZ2V0LCBsZW5ndGgoJGdldCkpO1xuICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuICRnZXQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBicmVha3BvaW50LWhhcy1jb250ZXh0KCkgYW5kICRmZWF0dXJlID09ICdtZWRpYScge1xuICAgICAgQHJldHVybiBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFByaXZhdGUgZnVuY3Rpb24gdG8gc2V0IGNvbnRleHRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJHZhbHVlKSB7XG4gIEBpZiAkdmFsdWUgPT0gJ21vbm9jaHJvbWUnIHtcbiAgICAkZmVhdHVyZTogJ21vbm9jaHJvbWUnO1xuICB9XG5cbiAgJGN1cnJlbnQ6IG1hcC1nZXQoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpO1xuICBAaWYgJGN1cnJlbnQgYW5kIGxlbmd0aCgkY3VycmVudCkgPT0gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgQHdhcm4gXCJZb3UgaGF2ZSBhbHJlYWR5IHF1ZXJpZWQgYWdhaW5zdCBgI3skZmVhdHVyZX1gLiBVbmV4cGVjdGVkIHRoaW5ncyBtYXkgaGFwcGVuIGlmIHlvdSBxdWVyeSBhZ2FpbnN0IHRoZSBzYW1lIGZlYXR1cmUgbW9yZSB0aGFuIG9uY2UgaW4gdGhlIHNhbWUgYGFuZGAgcXVlcnkuIEJyZWFrcG9pbnQgaXMgb3ZlcndyaXRpbmcgdGhlIGN1cnJlbnQgY29udGV4dCB3aXRoIGAjeyR2YWx1ZX1gXCI7XG4gIH1cblxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKSB7XG4gICAgJHYtaG9sZGVyOiAoKTtcbiAgICBAZm9yICRpIGZyb20gMSB0byAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICAgIEBpZiAkZmVhdHVyZSA9PSAnbWVkaWEnIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgJHZhbHVlKTtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtbWVyZ2UoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgKCRmZWF0dXJlOiAkdi1ob2xkZXIpKSAhZ2xvYmFsO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkdi1ob2xkZXI6IG1hcC1nZXQoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpO1xuICAgICRsZW5ndGg6IGxlbmd0aCgkdi1ob2xkZXIpO1xuICAgIEBmb3IgJGkgZnJvbSAkbGVuZ3RoIHRvICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQgLSAxIHtcbiAgICAgIEBpZiAkZmVhdHVyZSA9PSAnbWVkaWEnIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgJHZhbHVlKTtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtbWVyZ2UoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgKCRmZWF0dXJlOiAkdi1ob2xkZXIpKSAhZ2xvYmFsO1xuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFByaXZhdGUgZnVuY3Rpb24gdG8gcmVzZXQgY29udGV4dFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzIHtcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCkgIWdsb2JhbDtcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZ2xvYmFsO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ29udmVydHMgdGhlIGlucHV0IHZhbHVlIHRvIEJhc2UgRU1zXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LXRvLWJhc2UtZW0oJHZhbHVlKSB7XG4gICR2YWx1ZS11bml0OiB1bml0KCR2YWx1ZSk7XG5cbiAgLy8gV2lsbCBjb252ZXJ0IHJlbGF0aXZlIEVNcyBpbnRvIHJvb3QgRU1zLlxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykgYW5kIHR5cGUtb2YoYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykpID09ICdudW1iZXInIGFuZCAkdmFsdWUtdW5pdCA9PSAnZW0nIHtcbiAgICAkYmFzZS11bml0OiB1bml0KGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpKTtcblxuICAgIEBpZiAkYmFzZS11bml0ID09ICdweCcgb3IgJGJhc2UtdW5pdCA9PSAnJScgb3IgJGJhc2UtdW5pdCA9PSAnZW0nIG9yICRiYXNlLXVuaXQgPT0gJ3B0JyB7XG4gICAgICBAcmV0dXJuIGJhc2UtY29udmVyc2lvbigkdmFsdWUpIC8gYmFzZS1jb252ZXJzaW9uKGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpKSAqIDFlbTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJyN7YnJlYWtwb2ludC1nZXQoXFwnYmFzZSBmb250IHNpemVcXCcpfSBpcyBub3Qgc2V0IGluIHZhbGlkIHVuaXRzIGZvciBmb250IHNpemUhJztcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGJhc2UtY29udmVyc2lvbigkdmFsdWUpO1xuICB9XG59XG5cbkBmdW5jdGlvbiBiYXNlLWNvbnZlcnNpb24oJHZhbHVlKSB7XG4gICR1bml0OiB1bml0KCR2YWx1ZSk7XG5cbiAgQGlmICR1bml0ID09ICdweCcge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gMTZweCAqIDFlbTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSAnJScge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gMTAwJSAqIDFlbTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSAnZW0nIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuICBAZWxzZSBpZiAkdW5pdCA9PSAncHQnIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIDEycHQgKiAxZW07XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuLy8gICAgQHdhcm4gJ0V2ZXJ5dGhpbmcgaXMgdGVycmlibGUhIFdoYXQgaGF2ZSB5b3UgZG9uZT8hJztcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBjYW4gaGF2ZSBhIG1pbi9tYXggcGFpclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludC1taW4tbWF4LWZlYXR1cmVzOiAnY29sb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbG9yLWluZGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhc3BlY3QtcmF0aW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldmljZS1hc3BlY3QtcmF0aW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldmljZS1oZWlnaHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldmljZS13aWR0aCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVpZ2h0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtb25vY2hyb21lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXNvbHV0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aWR0aCc7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbi1tYXgoJGZlYXR1cmUpIHtcbiAgQGVhY2ggJGl0ZW0gaW4gJGJyZWFrcG9pbnQtbWluLW1heC1mZWF0dXJlcyB7XG4gICAgQGlmICRmZWF0dXJlID09ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgY2FuIGhhdmUgYSBzdHJpbmcgdmFsdWVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtc3RyaW5nLWZlYXR1cmVzOiAgJ29yaWVudGF0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzY2FuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb2xvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2UtYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwb2ludGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsdW1pbm9zaXR5JztcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtc3RyaW5nLXZhbHVlKCRmZWF0dXJlKSB7XG4gIEBlYWNoICRpdGVtIGluICRicmVha3BvaW50LXN0cmluZy1mZWF0dXJlcyB7XG4gICAgQGlmIGJyZWFrcG9pbnQtbWluLW1heCgkaXRlbSkge1xuICAgICAgQGlmICRmZWF0dXJlID09ICdtaW4tI3skaXRlbX0nIG9yICRmZWF0dXJlID09ICdtYXgtI3skaXRlbX0nIHtcbiAgICAgICAgQHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkZmVhdHVyZSA9PSAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGlzIGEgbWVkaWEgdHlwZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludC1tZWRpYS10eXBlczogICdhbGwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnYnJhaWxsZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdlbWJvc3NlZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdoYW5kaGVsZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdwcmludCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9qZWN0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NjcmVlbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdzcGVlY2gnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAndHR5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R2JztcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaXMtbWVkaWEoJGZlYXR1cmUpIHtcbiAgQGVhY2ggJG1lZGlhIGluICRicmVha3BvaW50LW1lZGlhLXR5cGVzIHtcbiAgICBAaWYgKCRmZWF0dXJlID09ICRtZWRpYSkgb3IgKCRmZWF0dXJlID09ICdub3QgI3skbWVkaWF9Jykgb3IgKCRmZWF0dXJlID09ICdvbmx5ICN7JG1lZGlhfScpIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBjYW4gc3RhbmQgYWxvbmVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZy1mZWF0dXJlczogJ2NvbG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb2xvci1pbmRleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ3JpZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9ub2Nocm9tZSc7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJGZlYXR1cmUpIHtcbiAgQGVhY2ggJGl0ZW0gaW4gJGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZy1mZWF0dXJlcyB7XG4gICAgQGlmICRmZWF0dXJlID09ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaXMtcmVzb2x1dGlvbigkZmVhdHVyZSkge1xuICAkcmVzb2x1dGlvbnM6ICdkZXZpY2UtcGl4ZWwtcmF0aW8nLCAnZHByJztcblxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycpIHtcbiAgICAkcmVzb2x1dGlvbnM6IGFwcGVuZCgkcmVzb2x1dGlvbnMsICdyZXNvbHV0aW9uJyk7XG4gIH1cblxuICBAZWFjaCAkcmVzbyBpbiAkcmVzb2x1dGlvbnMge1xuICAgIEBpZiBpbmRleCgkZmVhdHVyZSwgJHJlc28pIG9yIGluZGV4KCRmZWF0dXJlLCAnbWluLSN7JHJlc299Jykgb3IgaW5kZXgoJGZlYXR1cmUsICdtYXgtI3skcmVzb30nKSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBhcnNlciBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInBhcnNlcnMvcXVlcnlcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL3NpbmdsZVwiO1xuQGltcG9ydCBcInBhcnNlcnMvZG91YmxlXCI7XG5AaW1wb3J0IFwicGFyc2Vycy90cmlwbGVcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL3Jlc29sdXRpb25cIjtcblxuJE1lbW8tRXhpc3RzOiBmdW5jdGlvbi1leGlzdHMobWVtby1nZXQpIGFuZCBmdW5jdGlvbi1leGlzdHMobWVtby1zZXQpO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgRnVuY3Rpb25cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkY29udGV4dHMuLi4pIHtcbiAgJHJ1bjogdHJ1ZTtcbiAgJHJldHVybjogKCk7XG5cbiAgLy8gR3JhYiB0aGUgTWVtbyBPdXRwdXQgaWYgTWVtb2l6YXRpb24gY2FuIGJlIGEgdGhpbmdcbiAgQGlmICRNZW1vLUV4aXN0cyB7XG4gICAgJHJldHVybjogbWVtby1nZXQoYnJlYWtwb2ludCwgYnJlYWtwb2ludCAkcXVlcnkgJGNvbnRleHRzKTtcblxuICAgIEBpZiAkcmV0dXJuICE9IG51bGwge1xuICAgICAgJHJ1bjogZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQGlmIG5vdCAkTWVtby1FeGlzdHMgb3IgJHJ1biB7XG4gICAgLy8gSW50ZXJuYWwgVmFyaWFibGVzXG4gICAgJHF1ZXJ5LXN0cmluZzogJyc7XG4gICAgJHF1ZXJ5LWZhbGxiYWNrOiBmYWxzZTtcbiAgICAkcmV0dXJuOiAoKTtcblxuICAgIC8vIFJlc2VydmUgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XG4gICAgJGhvbGRlci1jb250ZXh0OiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyO1xuICAgICRob2xkZXItcXVlcnktY291bnQ6ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ7XG5cbiAgICAvLyBSZXNldCBHbG9iYWwgUHJpdmF0ZSBCcmVha3BvaW50IENvbnRleHRcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWdsb2JhbDtcblxuXG4gICAgLy8gVGVzdCB0byBzZWUgaWYgaXQncyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0XG4gICAgJG9yLWxpc3Q6IGlmKGxpc3Qtc2VwYXJhdG9yKCRxdWVyeSkgPT0gJ2NvbW1hJywgdHJ1ZSwgZmFsc2UpO1xuXG5cbiAgICBAaWYgKCRvci1saXN0ID09IGZhbHNlIGFuZCBicmVha3BvaW50LWdldCgnbGVnYWN5IHN5bnRheCcpID09IGZhbHNlKSB7XG4gICAgICAkcXVlcnktc3RyaW5nOiBicmVha3BvaW50LXBhcnNlKCRxdWVyeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRsZW5ndGg6IGxlbmd0aCgkcXVlcnkpO1xuXG4gICAgICAkbGFzdDogbnRoKCRxdWVyeSwgJGxlbmd0aCk7XG4gICAgICAkcXVlcnktZmFsbGJhY2s6IGJyZWFrcG9pbnQtbm8tcXVlcnkoJGxhc3QpO1xuXG4gICAgICBAaWYgKCRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSkge1xuICAgICAgICAkbGVuZ3RoOiAkbGVuZ3RoIC0gMTtcbiAgICAgIH1cblxuICAgICAgQGlmIChicmVha3BvaW50LWdldCgnbGVnYWN5IHN5bnRheCcpID09IHRydWUpIHtcbiAgICAgICAgJG1xOiAoKTtcblxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICRtcTogYXBwZW5kKCRtcSwgbnRoKCRxdWVyeSwgJGkpLCBjb21tYSk7XG4gICAgICAgIH1cblxuICAgICAgICAkcXVlcnktc3RyaW5nOiBicmVha3BvaW50LXBhcnNlKCRtcSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRxdWVyeS1zdHJpbmc6ICcnO1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICRxdWVyeS1zdHJpbmc6ICRxdWVyeS1zdHJpbmcgKyBpZigkaSA9PSAxLCAnJywgJywgJykgKyBicmVha3BvaW50LXBhcnNlKG50aCgkcXVlcnksICRpKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAkcmV0dXJuOiAoJ3F1ZXJ5JzogJHF1ZXJ5LXN0cmluZyxcbiAgICAgICAgJ2ZhbGxiYWNrJzogJHF1ZXJ5LWZhbGxiYWNrLFxuICAgICAgICAnY29udGV4dCBob2xkZXInOiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLFxuICAgICAgICAncXVlcnkgY291bnQnOiAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50XG4gICAgKTtcbiAgICBAaWYgbGVuZ3RoKCRjb250ZXh0cykgPiAwIGFuZCBudGgoJGNvbnRleHRzLCAxKSAhPSBmYWxzZSB7XG4gICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlIHtcbiAgICAgICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJ25vLXF1ZXJ5JywgJHF1ZXJ5LWZhbGxiYWNrKTtcbiAgICAgIH1cbiAgICAgICRjb250ZXh0LW1hcDogKCk7XG4gICAgICBAZWFjaCAkY29udGV4dCBpbiAkY29udGV4dHMge1xuICAgICAgICAkY29udGV4dC1tYXA6IG1hcC1tZXJnZSgkY29udGV4dC1tYXAsICgkY29udGV4dDogYnJlYWtwb2ludC1nZXQtY29udGV4dCgkY29udGV4dCkpKTtcbiAgICAgIH1cbiAgICAgICRyZXR1cm46IG1hcC1tZXJnZSgkcmV0dXJuLCAoY29udGV4dDogJGNvbnRleHQtbWFwKSk7XG4gICAgfVxuXG4gICAgLy8gUmVzZXQgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCkgIWdsb2JhbDtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFnbG9iYWw7XG5cbiAgICBAaWYgJE1lbW8tRXhpc3RzIHtcbiAgICAgICRob2xkZXI6IG1lbW8tc2V0KGJyZWFrcG9pbnQsIGJyZWFrcG9pbnQgJHF1ZXJ5ICRjb250ZXh0cywgJHJldHVybik7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEdlbmVyYWwgQnJlYWtwb2ludCBQYXJzZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UoJHF1ZXJ5KSB7XG4gIC8vIEluY3JlYXNlIG51bWJlciBvZiAnYW5kJyBxdWVyaWVzXG4gICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQgKyAxICFnbG9iYWw7XG5cbiAgLy8gU2V0IHVwIE1lZGlhIFR5cGVcbiAgJHF1ZXJ5LXByaW50OiAnJztcblxuICAkZm9yY2UtYWxsOiAoKGJyZWFrcG9pbnQtZ2V0KCdmb3JjZSBhbGwgbWVkaWEgdHlwZScpID09IHRydWUpIGFuZCAoYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSA9PSAnYWxsJykpO1xuICAkZW1wdHktbWVkaWE6IHRydWU7XG4gIEBpZiAoJGZvcmNlLWFsbCA9PSB0cnVlKSBvciAoYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSAhPSAnYWxsJykge1xuICAgIC8vIEZvcmNlIHRoZSBwcmludCBvZiB0aGUgZGVmYXVsdCBtZWRpYSB0eXBlIGlmIChmb3JjZSBhbGwgaXMgdHJ1ZSBhbmQgZGVmYXVsdCBtZWRpYSB0eXBlIGlzIGFsbCkgb3IgKGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBub3QgYWxsKVxuICAgICRxdWVyeS1wcmludDogYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKTtcbiAgICAkZW1wdHktbWVkaWE6IGZhbHNlO1xuICB9XG5cblxuICAkcXVlcnktcmVzb2x1dGlvbjogZmFsc2U7XG5cbiAgJHF1ZXJ5LWhvbGRlcjogYnJlYWtwb2ludC1wYXJzZS1xdWVyeSgkcXVlcnkpO1xuXG5cblxuICAvLyBMb29wIG92ZXIgZWFjaCBwYXJzZWQgb3V0IHF1ZXJ5IGFuZCB3cml0ZSBpdCB0byAkcXVlcnktcHJpbnRcbiAgJGZpcnN0OiB0cnVlO1xuXG4gIEBlYWNoICRmZWF0dXJlIGluICRxdWVyeS1ob2xkZXIge1xuICAgICRsZW5ndGg6IGxlbmd0aCgkZmVhdHVyZSk7XG5cbiAgICAvLyBQYXJzZSBhIHNpbmdsZSBmZWF0dXJlXG4gICAgQGlmICgkbGVuZ3RoID09IDEpIHtcbiAgICAgIC8vIEZlYXR1cmUgaXMgY3VycmVudGx5IGEgbGlzdCwgZ3JhYiB0aGUgYWN0dWFsIHZhbHVlXG4gICAgICAkZmVhdHVyZTogbnRoKCRmZWF0dXJlLCAxKTtcblxuICAgICAgLy8gTWVkaWEgVHlwZSBtdXN0IGJ5IGNvbnZlbnRpb24gYmUgdGhlIGZpcnN0IGl0ZW0sIHNvIGl0J3Mgc2FmZSB0byBmbGF0IG92ZXJyaWRlICRxdWVyeS1wcmludCwgd2hpY2ggcmlnaHQgbm93IHNob3VsZCBvbmx5IGJlIHRoZSBkZWZhdWx0IG1lZGlhIHR5cGVcbiAgICAgIEBpZiAoYnJlYWtwb2ludC1pcy1tZWRpYSgkZmVhdHVyZSkpIHtcbiAgICAgICAgQGlmICgkZm9yY2UtYWxsID09IHRydWUpIG9yICgkZmVhdHVyZSAhPSAnYWxsJykge1xuICAgICAgICAgIC8vIEZvcmNlIHRoZSBwcmludCBvZiB0aGUgZGVmYXVsdCBtZWRpYSB0eXBlIGlmIChmb3JjZSBhbGwgaXMgdHJ1ZSBhbmQgZGVmYXVsdCBtZWRpYSB0eXBlIGlzIGFsbCkgb3IgKGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBub3QgYWxsKVxuICAgICAgICAgICRxdWVyeS1wcmludDogJGZlYXR1cmU7XG4gICAgICAgICAgJGVtcHR5LW1lZGlhOiBmYWxzZTtcblxuICAgICAgICAgIC8vIFNldCBDb250ZXh0XG4gICAgICAgICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWVkaWEsICRxdWVyeS1wcmludCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBQYXJzZSBhIGRvdWJsZSBmZWF0dXJlXG4gICAgQGVsc2UgaWYgKCRsZW5ndGggPT0gMikge1xuICAgICAgQGlmIChicmVha3BvaW50LWlzLXJlc29sdXRpb24oJGZlYXR1cmUpICE9IGZhbHNlKSB7XG4gICAgICAgICRxdWVyeS1yZXNvbHV0aW9uOiAkZmVhdHVyZTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHBhcnNlZDogbnVsbDtcbiAgICAgICAgLy8gSWYgaXQncyBhIHN0cmluZy9udW1iZXIgcGFpcixcbiAgICAgICAgLy8gd2UgY2hlY2sgdG8gc2VlIGlmIG9uZSBpcyBhIHNpbmdsZS1zdHJpbmcgdmFsdWUsXG4gICAgICAgIC8vIHRoZW4gd2UgcGFyc2UgaXQgYXMgYSBub3JtYWwgZG91YmxlXG4gICAgICAgICRhbHBoYTogbnRoKCRmZWF0dXJlLCAxKTtcbiAgICAgICAgJGJldGE6IG50aCgkZmVhdHVyZSwgMik7XG4gICAgICAgIEBpZiBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJGFscGhhKSBvciBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJGJldGEpIHtcbiAgICAgICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXNpbmdsZSgkYWxwaGEsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICAgICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXNpbmdsZSgkYmV0YSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kb3VibGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBQYXJzZSBhIHRyaXBsZSBmZWF0dXJlXG4gICAgQGVsc2UgaWYgKCRsZW5ndGggPT0gMykge1xuICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS10cmlwbGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgfVxuXG4gIH1cblxuICBAaWYgKCRxdWVyeS1yZXNvbHV0aW9uICE9IGZhbHNlKSB7XG4gICAgJHF1ZXJ5LXByaW50OiBicmVha3BvaW50LWJ1aWxkLXJlc29sdXRpb24oJHF1ZXJ5LXByaW50LCAkcXVlcnktcmVzb2x1dGlvbiwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICB9XG5cbiAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZmVhdHVyZSB0aGF0J3MgYmVlbiBkZXRlY3RlZCBzbyBmYXIgYW5kIGFwcGVuZCAnZmFsc2UnIHRvIHRoZSB0aGUgdmFsdWUgbGlzdCB0byBpbmNyZW1lbnQgdGhlaXIgY291bnRlcnNcbiAgQGVhY2ggJGYsICR2IGluICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIge1xuICAgICR2LWhvbGRlcjogJHY7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCR2LWhvbGRlcik7XG4gICAgQGlmIGxlbmd0aCgkdi1ob2xkZXIpIDwgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgICBAZm9yICRpIGZyb20gJGxlbmd0aCB0byAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICAgICAgQGlmICRmID09ICdtZWRpYScge1xuICAgICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSk7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1tZXJnZSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAoJGY6ICR2LWhvbGRlcikpICFnbG9iYWw7XG4gIH1cblxuICBAcmV0dXJuICRxdWVyeS1wcmludDtcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXF1ZXJ5KCRxdWVyeSkge1xuICAvLyBQYXJzZSBmZWF0dXJlcyBvdXQgb2YgYW4gaW5kaXZpZHVhbCBxdWVyeVxuICAkZmVhdHVyZS1ob2xkZXI6ICgpO1xuICAkcXVlcnktaG9sZGVyOiAoKTtcbiAgJGxlbmd0aDogbGVuZ3RoKCRxdWVyeSk7XG5cbiAgQGlmICRsZW5ndGggPT0gMiB7XG4gICAgLy8gSWYgd2UndmUgZ290IGEgc3RyaW5nL251bWJlciwgbnVtYmVyL3N0cmluZywgY2hlY2sgdG8gc2VlIGlmIGl0J3MgYSB2YWxpZCBzdHJpbmcvbnVtYmVyIHBhaXIgb3IgdHdvIHNpbmdsZXNcbiAgICBAaWYgKHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdzdHJpbmcnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSA9PSAnbnVtYmVyJykgb3IgKHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdudW1iZXInIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSA9PSAnc3RyaW5nJykge1xuXG4gICAgICAkbnVtYmVyOiAnJztcbiAgICAgICR2YWx1ZTogJyc7XG5cbiAgICAgIEBpZiB0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnc3RyaW5nJyB7XG4gICAgICAgICRudW1iZXI6IG50aCgkcXVlcnksIDIpO1xuICAgICAgICAkdmFsdWU6IG50aCgkcXVlcnksIDEpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkbnVtYmVyOiBudGgoJHF1ZXJ5LCAxKTtcbiAgICAgICAgJHZhbHVlOiBudGgoJHF1ZXJ5LCAyKTtcbiAgICAgIH1cblxuICAgICAgLy8gSWYgdGhlIHN0cmluZyB2YWx1ZSBjYW4gYmUgYSBzaW5nbGUgdmFsdWUsIGNoZWNrIHRvIHNlZSBpZiB0aGUgbnVtYmVyIHBhc3NlZCBpbiBpcyBhIHZhbGlkIGlucHV0IGZvciBzYWlkIHNpbmdsZSB2YWx1ZS4gRm9ydHVuYXRlbHksIGFsbCBjdXJyZW50IHNpbmdsZS12YWx1ZSBvcHRpb25zIG9ubHkgYWNjZXB0IHVuaXRsZXNzIG51bWJlcnMsIHNvIHRoaXMgY2hlY2sgaXMgZWFzeS5cbiAgICAgIEBpZiBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJHZhbHVlKSB7XG4gICAgICAgIEBpZiB1bml0bGVzcygkbnVtYmVyKSB7XG4gICAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQoJHZhbHVlLCAkbnVtYmVyLCBzcGFjZSk7XG4gICAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gSWYgdGhlIHN0cmluZyBpcyBhIG1lZGlhIHR5cGUsIHNwbGl0IHRoZSBxdWVyeVxuICAgICAgQGlmIGJyZWFrcG9pbnQtaXMtbWVkaWEoJHZhbHVlKSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCBudGgoJHF1ZXJ5LCAxKSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCBudGgoJHF1ZXJ5LCAyKSk7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICAgIC8vIElmIGl0J3Mgbm90IGEgc2luZ2xlIGZlYXR1cmUsIHdlJ3JlIGp1c3QgZ29pbmcgdG8gYXNzdW1lIGl0J3MgYSBwcm9wZXIgc3RyaW5nL3ZhbHVlIHBhaXIsIGFuZCByb2xsIHdpdGggaXQuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKCR2YWx1ZSwgJG51bWJlciwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cblxuICAgIH1cbiAgICAvLyBJZiB0aGV5J3JlIGJvdGggbnVtYmVycywgd2UgYXNzdW1lIGl0J3MgYSBkb3VibGUgYW5kIHJvbGwgd2l0aCB0aGF0XG4gICAgQGVsc2UgaWYgKHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdudW1iZXInIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSA9PSAnbnVtYmVyJykge1xuICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMSksIG50aCgkcXVlcnksIDIpLCBzcGFjZSk7XG4gICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgfVxuICAgIC8vIElmIHRoZXkncmUgYm90aCBzdHJpbmdzIGFuZCBuZWl0aGVyIGFyZSBzaW5nbGVzLCB3ZSByb2xsIHdpdGggdGhhdC5cbiAgICBAZWxzZSBpZiAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ3N0cmluZycgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdzdHJpbmcnKSB7XG4gICAgICBAaWYgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAxKSkgYW5kIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMikpIHtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMSksIG50aCgkcXVlcnksIDIpLCBzcGFjZSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkbGVuZ3RoID09IDMge1xuICAgIC8vIElmIHdlJ3ZlIGdvdCB0aHJlZSBpdGVtcyBhbmQgbm9uZSBpcyBhIGxpc3QsIHdlIGNoZWNrIHRvIHNlZVxuICAgIEBpZiB0eXBlLW9mKG50aCgkcXVlcnksIDEpKSAhPSAnbGlzdCcgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpICE9ICdsaXN0JyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAzKSkgIT0gJ2xpc3QnIHtcbiAgICAgIC8vIElmIG5vbmUgb2YgdGhlIGl0ZW1zIGFyZSBzaW5nbGUgc3RyaW5nIHZhbHVlcyBhbmQgbm9uZSBvZiB0aGUgdmFsdWVzIGFyZSBtZWRpYSB2YWx1ZXMsIHdlJ3JlIGdvb2QuXG4gICAgICBAaWYgKG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMSkpIGFuZCBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDIpKSBhbmQgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAzKSkpIGFuZCAgKChub3QgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAxKSkgYW5kIG5vdCBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDIpKSBhbmQgbm90IGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMykpKSkge1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAxKSwgbnRoKCRxdWVyeSwgMiksIHNwYWNlKTtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQoJGZlYXR1cmUtaG9sZGVyLCBudGgoJHF1ZXJ5LCAzKSwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICAgIC8vIGxldCdzIGNoZWNrIHRvIHNlZSBpZiB0aGUgZmlyc3QgaXRlbSBpcyBhIG1lZGlhIHR5cGVcbiAgICAgIEBlbHNlIGlmIGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMSkpIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsIG50aCgkcXVlcnksIDEpKTtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMiksIG50aCgkcXVlcnksIDMpLCBzcGFjZSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgaXQncyBhIHNpbmdsZSBpdGVtLCBvciBpZiBpdCdzIG5vdCBhIHNwZWNpYWwgY2FzZSBkb3VibGUgb3IgdHJpcGxlLCB3ZSBjYW4gc2ltcGx5IHJldHVybiB0aGUgcXVlcnkuXG4gIEByZXR1cm4gJHF1ZXJ5O1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgUGllY2VzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJzaW5nbGUvZGVmYXVsdFwiO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KSB7XG4gICRwYXJzZWQ6ICcnO1xuICAkbGVhZGVyOiAnJztcbiAgLy8gSWYgd2UncmUgZm9yY2luZ1xuICBAaWYgbm90ICgkZW1wdHktbWVkaWEpIG9yIG5vdCAoJGZpcnN0KSB7XG4gICAgJGxlYWRlcjogJ2FuZCAnO1xuICB9XG5cbiAgLy8gSWYgaXQncyBhIHNpbmdsZSBmZWF0dXJlIHRoYXQgY2FuIHN0YW5kIGFsb25lLCB3ZSBsZXQgaXRcbiAgQGlmIChicmVha3BvaW50LXNpbmdsZS1zdHJpbmcoJGZlYXR1cmUpKSB7XG4gICAgJHBhcnNlZDogJGZlYXR1cmU7XG4gICAgLy8gU2V0IENvbnRleHRcbiAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJGZlYXR1cmUpO1xuICB9XG4gIC8vIElmIGl0J3Mgbm90IGEgc3RhbmQgYWxvbmUgZmVhdHVyZSwgd2UgcGFzcyBpdCBvZmYgdG8gdGhlIGRlZmF1bHQgaGFuZGxlci5cbiAgQGVsc2Uge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdCgkZmVhdHVyZSk7XG4gIH1cblxuICBAcmV0dXJuICRsZWFkZXIgKyAnKCcgKyAkcGFyc2VkICsgJyknO1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdCgkZmVhdHVyZSkge1xuICAkZGVmYXVsdDogYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgZmVhdHVyZScpO1xuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRkZWZhdWx0LCAkZmVhdHVyZSk7XG5cbiAgQGlmIChicmVha3BvaW50LWdldCgndG8gZW1zJykgPT0gdHJ1ZSkgYW5kICh0eXBlLW9mKCRmZWF0dXJlKSA9PSAnbnVtYmVyJykge1xuICAgIEByZXR1cm4gJyN7JGRlZmF1bHR9OiAje2JyZWFrcG9pbnQtdG8tYmFzZS1lbSgkZmVhdHVyZSl9JztcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAnI3skZGVmYXVsdH06ICN7JGZlYXR1cmV9JztcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgUGllY2VzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJkb3VibGUvZGVmYXVsdC1wYWlyXCI7XG5AaW1wb3J0IFwiZG91YmxlL2RvdWJsZS1zdHJpbmdcIjtcbkBpbXBvcnQgXCJkb3VibGUvZGVmYXVsdFwiO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kb3VibGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KSB7XG4gICRwYXJzZWQ6ICcnO1xuICAkbGVhZGVyOiAnJztcbiAgLy8gSWYgd2UncmUgZm9yY2luZ1xuICBAaWYgbm90ICgkZW1wdHktbWVkaWEpIG9yIG5vdCAoJGZpcnN0KSB7XG4gICAgJGxlYWRlcjogJ2FuZCAnO1xuICB9XG5cbiAgJGZpcnN0OiBudGgoJGZlYXR1cmUsIDEpO1xuICAkc2Vjb25kOiBudGgoJGZlYXR1cmUsIDIpO1xuXG4gIC8vIElmIHdlJ3ZlIGdvdCB0d28gbnVtYmVycywgd2Uga25vdyB3ZSBuZWVkIHRvIHVzZSB0aGUgZGVmYXVsdCBwYWlyIGJlY2F1c2UgdGhlcmUgYXJlIG5vIG1lZGlhIHF1ZXJpZXMgdGhhdCBoYXMgYSBtZWRpYSBmZWF0dXJlIHRoYXQgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJGZpcnN0KSA9PSAnbnVtYmVyJyBhbmQgdHlwZS1vZigkc2Vjb25kKSA9PSAnbnVtYmVyJyB7XG4gICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0LXBhaXIoJGZpcnN0LCAkc2Vjb25kKTtcbiAgfVxuICAvLyBJZiB0aGV5IGFyZSBib3RoIHN0cmluZ3MsIHdlIHNlbmQgaXQgdGhyb3VnaCB0aGUgc3RyaW5nIHBhcnNlclxuICBAZWxzZSBpZiB0eXBlLW9mKCRmaXJzdCkgPT0gJ3N0cmluZycgYW5kIHR5cGUtb2YoJHNlY29uZCkgPT0gJ3N0cmluZycge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLXN0cmluZygkZmlyc3QsICRzZWNvbmQpO1xuICB9XG4gIC8vIElmIGl0J3MgYSBzdHJpbmcvbnVtYmVyIHBhaXIsIHdlIHBhcnNlIGl0IGFzIGEgbm9ybWFsIGRvdWJsZVxuICBAZWxzZSB7XG4gICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kb3VibGUtZGVmYXVsdCgkZmlyc3QsICRzZWNvbmQpO1xuICB9XG5cbiAgQHJldHVybiAkbGVhZGVyICsgJHBhcnNlZDtcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQtcGFpcigkZmlyc3QsICRzZWNvbmQpIHtcbiAgJGRlZmF1bHQ6IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IHBhaXInKTtcbiAgJG1pbjogJyc7XG4gICRtYXg6ICcnO1xuXG4gIC8vIFNvcnQgaW50byBtaW4gYW5kIG1heFxuICAkbWluOiBtaW4oJGZpcnN0LCAkc2Vjb25kKTtcbiAgJG1heDogbWF4KCRmaXJzdCwgJHNlY29uZCk7XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWluLSN7JGRlZmF1bHR9LCAkbWluKTtcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWF4LSN7JGRlZmF1bHR9LCAkbWF4KTtcblxuICAvLyBNYWtlIHRoZW0gRU1zIGlmIG5lZWQgYmVcbiAgQGlmIChicmVha3BvaW50LWdldCgndG8gZW1zJykgPT0gdHJ1ZSkge1xuICAgICRtaW46IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWluKTtcbiAgICAkbWF4OiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1heCk7XG4gIH1cblxuICBAcmV0dXJuICcobWluLSN7JGRlZmF1bHR9OiAjeyRtaW59KSBhbmQgKG1heC0jeyRkZWZhdWx0fTogI3skbWF4fSknO1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLXN0cmluZygkZmlyc3QsICRzZWNvbmQpIHtcbiAgJGZlYXR1cmU6ICcnO1xuICAkdmFsdWU6ICcnO1xuXG4gIC8vIFRlc3QgdG8gc2VlIHdoaWNoIGlzIHRoZSBmZWF0dXJlIGFuZCB3aGljaCBpcyB0aGUgdmFsdWVcbiAgQGlmIChicmVha3BvaW50LXN0cmluZy12YWx1ZSgkZmlyc3QpID09IHRydWUpIHtcbiAgICAkZmVhdHVyZTogJGZpcnN0O1xuICAgICR2YWx1ZTogJHNlY29uZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgJGZlYXR1cmU6ICRzZWNvbmQ7XG4gICAgJHZhbHVlOiAkZmlyc3Q7XG4gIH1cblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJHZhbHVlKTtcblxuICBAcmV0dXJuICcoI3skZmVhdHVyZX06ICN7JHZhbHVlfSknO1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLWRlZmF1bHQoJGZpcnN0LCAkc2Vjb25kKSB7XG4gICRmZWF0dXJlOiAnJztcbiAgJHZhbHVlOiAnJztcblxuICBAaWYgdHlwZS1vZigkZmlyc3QpID09ICdzdHJpbmcnIHtcbiAgICAkZmVhdHVyZTogJGZpcnN0O1xuICAgICR2YWx1ZTogJHNlY29uZDtcbiAgfVxuICBAZWxzZSB7XG4gICAgJGZlYXR1cmU6ICRzZWNvbmQ7XG4gICAgJHZhbHVlOiAkZmlyc3Q7XG4gIH1cblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJHZhbHVlKTtcblxuICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSA9PSB0cnVlKSB7XG4gICAgJHZhbHVlOiBicmVha3BvaW50LXRvLWJhc2UtZW0oJHZhbHVlKTtcbiAgfVxuXG4gIEByZXR1cm4gJygjeyRmZWF0dXJlfTogI3skdmFsdWV9KSdcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwidHJpcGxlL2RlZmF1bHRcIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkcGFyc2VkOiAnJztcbiAgJGxlYWRlcjogJyc7XG5cbiAgLy8gSWYgd2UncmUgZm9yY2luZ1xuICBAaWYgbm90ICgkZW1wdHktbWVkaWEpIG9yIG5vdCAoJGZpcnN0KSB7XG4gICAgJGxlYWRlcjogJ2FuZCAnO1xuICB9XG5cbiAgLy8gc2VwYXJhdGUgdGhlIHN0cmluZyBmZWF0dXJlcyBmcm9tIHRoZSB2YWx1ZSBudW1iZXJzXG4gICRzdHJpbmc6IG51bGw7XG4gICRudW1iZXJzOiBudWxsO1xuICBAZWFjaCAkdmFsIGluICRmZWF0dXJlIHtcbiAgICBAaWYgdHlwZS1vZigkdmFsKSA9PSBzdHJpbmcge1xuICAgICAgJHN0cmluZzogJHZhbDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGlmIHR5cGUtb2YoJG51bWJlcnMpID09ICdudWxsJyB7XG4gICAgICAgICRudW1iZXJzOiAkdmFsO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkbnVtYmVyczogYXBwZW5kKCRudW1iZXJzLCAkdmFsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXRyaXBsZS1kZWZhdWx0KCRzdHJpbmcsIG50aCgkbnVtYmVycywgMSksIG50aCgkbnVtYmVycywgMikpO1xuXG4gIEByZXR1cm4gJGxlYWRlciArICRwYXJzZWQ7XG5cbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXRyaXBsZS1kZWZhdWx0KCRmZWF0dXJlLCAkZmlyc3QsICRzZWNvbmQpIHtcblxuICAvLyBTb3J0IGludG8gbWluIGFuZCBtYXhcbiAgJG1pbjogbWluKCRmaXJzdCwgJHNlY29uZCk7XG4gICRtYXg6IG1heCgkZmlyc3QsICRzZWNvbmQpO1xuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1pbi0jeyRmZWF0dXJlfSwgJG1pbik7XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1heC0jeyRmZWF0dXJlfSwgJG1heCk7XG5cbiAgLy8gTWFrZSB0aGVtIEVNcyBpZiBuZWVkIGJlXG4gIEBpZiAoYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpID09IHRydWUpIHtcbiAgICAkbWluOiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1pbik7XG4gICAgJG1heDogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtYXgpO1xuICB9XG5cbiAgQHJldHVybiAnKG1pbi0jeyRmZWF0dXJlfTogI3skbWlufSkgYW5kIChtYXgtI3skZmVhdHVyZX06ICN7JG1heH0pJztcbn1cbiIsIkBpbXBvcnQgXCJyZXNvbHV0aW9uL3Jlc29sdXRpb25cIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtYnVpbGQtcmVzb2x1dGlvbigkcXVlcnktcHJpbnQsICRxdWVyeS1yZXNvbHV0aW9uLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkbGVhZGVyOiAnJztcbiAgLy8gSWYgd2UncmUgZm9yY2luZ1xuICBAaWYgbm90ICgkZW1wdHktbWVkaWEpIG9yIG5vdCAoJGZpcnN0KSB7XG4gICAgJGxlYWRlcjogJ2FuZCAnO1xuICB9XG5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnKSBhbmQgJHF1ZXJ5LXJlc29sdXRpb24ge1xuICAgICRyZXNvbHV0aW9uczogYnJlYWtwb2ludC1tYWtlLXJlc29sdXRpb25zKCRxdWVyeS1yZXNvbHV0aW9uKTtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJHJlc29sdXRpb25zKTtcbiAgICAkcXVlcnktaG9sZGVyOiAnJztcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAkcXVlcnk6ICcjeyRxdWVyeS1wcmludH0gI3skbGVhZGVyfSN7bnRoKCRyZXNvbHV0aW9ucywgJGkpfSc7XG4gICAgICBAaWYgJGkgPT0gMSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6ICRxdWVyeTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogJyN7JHF1ZXJ5LWhvbGRlcn0sICN7JHF1ZXJ5fSc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBSZXR1cm4gd2l0aCBhdHRhY2hlZCByZXNvbHV0aW9uXG4gICAgQHJldHVybiAkcXVlcnktcHJpbnQ7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LW1ha2UtcmVzb2x1dGlvbnMoJHJlc29sdXRpb24pIHtcbiAgJGxlbmd0aDogbGVuZ3RoKCRyZXNvbHV0aW9uKTtcblxuICAkb3V0cHV0OiAoKTtcblxuICBAaWYgJGxlbmd0aCA9PSAyIHtcbiAgICAkZmVhdHVyZTogJyc7XG4gICAgJHZhbHVlOiAnJztcblxuICAgIC8vIEZpbmQgd2hpY2ggaXMgbnVtYmVyXG4gICAgQGlmIHR5cGUtb2YobnRoKCRyZXNvbHV0aW9uLCAxKSkgPT0gJ251bWJlcicge1xuICAgICAgJHZhbHVlOiBudGgoJHJlc29sdXRpb24sIDEpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkdmFsdWU6IG50aCgkcmVzb2x1dGlvbiwgMik7XG4gICAgfVxuXG4gICAgLy8gRGV0ZXJtaW5lIG1pbi9tYXgvc3RhbmRhcmRcbiAgICBAaWYgaW5kZXgoJHJlc29sdXRpb24sICdtaW4tcmVzb2x1dGlvbicpIHtcbiAgICAgICRmZWF0dXJlOiAnbWluLSc7XG4gICAgfVxuICAgIEBlbHNlIGlmIGluZGV4KCRyZXNvbHV0aW9uLCAnbWF4LXJlc29sdXRpb24nKSB7XG4gICAgICAkZmVhdHVyZTogJ21heC0nO1xuICAgIH1cblxuICAgICRzdGFuZGFyZDogJygjeyRmZWF0dXJlfXJlc29sdXRpb246ICN7JHZhbHVlfSknO1xuXG4gICAgLy8gSWYgd2UncmUgbm90IGRlYWxpbmcgd2l0aCBkcHB4LFxuICAgIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ2RwcHgnIHtcbiAgICAgICRiYXNlOiA5NmRwaTtcbiAgICAgIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2RwY20nIHtcbiAgICAgICAgJGJhc2U6IDI0My44NGRwY207XG4gICAgICB9XG4gICAgICAvLyBXcml0ZSBvdXQgZmVhdHVyZSB0ZXN0c1xuICAgICAgJHdlYmtpdDogJyc7XG4gICAgICAkbW96OiAnJztcbiAgICAgICR3ZWJraXQ6ICcoLXdlYmtpdC0jeyRmZWF0dXJlfWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAkYmFzZX0pJztcbiAgICAgICRtb3o6ICcoI3skZmVhdHVyZX0tbW96LWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAkYmFzZX0pJztcbiAgICAgIC8vIEFwcGVuZCB0byBvdXRwdXRcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkc3RhbmRhcmQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkd2Via2l0LCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJG1veiwgc3BhY2UpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0OiAnJztcbiAgICAgICRtb3o6ICcnO1xuICAgICAgJHdlYmtpdDogJygtd2Via2l0LSN7JGZlYXR1cmV9ZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvIDFkcHB4fSknO1xuICAgICAgJG1vejogJygjeyRmZWF0dXJlfS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvIDFkcHB4fSknO1xuICAgICAgJGZhbGxiYWNrOiAnKCN7JGZlYXR1cmV9cmVzb2x1dGlvbjogI3skdmFsdWUgLyAxZHBweCAqIDk2ZHBpfSknO1xuICAgICAgLy8gQXBwZW5kIHRvIG91dHB1dFxuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRzdGFuZGFyZCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICR3ZWJraXQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkbW96LCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJGZhbGxiYWNrLCBzcGFjZSk7XG4gICAgfVxuXG4gIH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1uby1xdWVyeSgkcXVlcnkpIHtcbiAgQGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSAnbGlzdCcge1xuICAgICRrZXl3b3JkOiBudGgoJHF1ZXJ5LCAxKTtcblxuICAgIEBpZiB0eXBlLW9mKCRrZXl3b3JkKSA9PSAnc3RyaW5nJyBhbmQgKCRrZXl3b3JkID09ICduby1xdWVyeScgb3IgJGtleXdvcmQgPT0gJ25vIHF1ZXJ5JyBvciAka2V5d29yZCA9PSAnZmFsbGJhY2snKSB7XG4gICAgICBAcmV0dXJuIG50aCgkcXVlcnksIDIpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IHRoZSBCcmVha3BvaW50cyB2YXJpYWJsZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludHM6ICgpICFkZWZhdWx0O1xuJEJSRUFLUE9JTlRTOiAoKSAhZGVmYXVsdDtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXNwb25kLXRvIEFQSSBNaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AbWl4aW4gcmVzcG9uZC10bygkY29udGV4dCwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaWYgbGVuZ3RoKCRicmVha3BvaW50cykgPiAwIGFuZCBsZW5ndGgoJEJSRUFLUE9JTlRTKSA9PSAwIHtcbiAgICBAd2FybiBcIkluIG9yZGVyIHRvIGF2b2lkIHZhcmlhYmxlIG5hbWVzcGFjZSBjb2xsaXNpb25zLCB3ZSBoYXZlIHVwZGF0ZWQgdGhlIHdheSB0byBhZGQgYnJlYWtwb2ludHMgZm9yIHJlc3BvbmQtdG8uIFBsZWFzZSBjaGFuZ2UgYWxsIGluc3RhbmNlcyBvZiBgJGJyZWFrcG9pbnRzOiBhZGQtYnJlYWtwb2ludCgpYCB0byBgQGluY2x1ZGUgYWRkLWJyZWFrcG9pbnQoKWAuIFRoZSBgYWRkLWJyZWFrcG9pbnQoKWAgZnVuY3Rpb24gd2lsbCBiZSBkZXByZWNhdGVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXCI7XG4gICAgJEJSRUFLUE9JTlRTOiAkYnJlYWtwb2ludHMgIWdsb2JhbDtcbiAgICAkYnJlYWtwb2ludHM6ICgpICFnbG9iYWw7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkQlJFQUtQT0lOVFMpICE9ICdtYXAnIHtcbiAgICAvLyBKdXN0IGluIGNhc2Ugc29tZW9uZSB3cml0ZXMgZ2liYmVyaXNoIHRvIHRoZSAkYnJlYWtwb2ludHMgdmFyaWFibGUuXG4gICAgQHdhcm4gXCJZb3VyIGJyZWFrcG9pbnRzIGFyZW4ndCBhIG1hcCEgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zbnVndWcvcmVzcG9uZC10byNhcGkgaWYgeW91J2QgbGlrZSBhIHJlbWluZGVyIG9uIGhvdyB0byB1c2UgUmVzcG9uZC10b1wiO1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRCUkVBS1BPSU5UUywgJGNvbnRleHQpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1hcC1nZXQoJEJSRUFLUE9JTlRTLCAkY29udGV4dCksICRuby1xdWVyeSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkQlJFQUtQT0lOVFMsICRjb250ZXh0KSB7XG4gICAgQHdhcm4gXCJgI3skY29udGV4dH1gIGlzbid0IGEgZGVmaW5lZCBicmVha3BvaW50ISBQbGVhc2UgYWRkIGl0IHVzaW5nIGAkYnJlYWtwb2ludHM6IGFkZC1icmVha3BvaW50KGAjeyRjb250ZXh0fWAsICR2YWx1ZSk7YFwiO1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiBcIllvdSBoYXZlbid0IGNyZWF0ZWQgYW55IGJyZWFrcG9pbnRzIHlldCEgTWFrZSBzb21lIGFscmVhZHkhIFNlZSBodHRwczovL2dpdGh1Yi5jb20vc251Z3VnL3Jlc3BvbmQtdG8jYXBpIGlmIHlvdSdkIGxpa2UgYSByZW1pbmRlciBvbiBob3cgdG8gdXNlIFJlc3BvbmQtdG9cIjtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEFkZCBCcmVha3BvaW50IHRvIEJyZWFrcG9pbnRzXG4vLyBUT0RPOiBSZW1vdmUgZnVuY3Rpb24gaW4gbmV4dCByZWxlYXNlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBhZGQtYnJlYWtwb2ludCgkbmFtZSwgJGJrcHQsICRvdmVyd3JpdGU6IGZhbHNlKSB7XG4gICRvdXRwdXQ6ICgkbmFtZTogJGJrcHQpO1xuXG4gIEBpZiBsZW5ndGgoJGJyZWFrcG9pbnRzKSA9PSAwIHtcbiAgICBAcmV0dXJuICRvdXRwdXQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSBhbmQgJG92ZXJ3cml0ZSAhPSB0cnVlIHtcbiAgICAgIEB3YXJuIFwiWW91IGFscmVhZHkgaGF2ZSBhIGJyZWFrcG9pbnQgbmFtZWQgYCN7JG5hbWV9YCwgcGxlYXNlIGNob29zZSBhbm90aGVyIGJyZWFrcG9pbnQgbmFtZSwgb3IgcGFzcyBpbiBgJG92ZXJ3cml0ZTogdHJ1ZWAgdG8gb3ZlcndyaXRlIHRoZSBwcmV2aW91cyBicmVha3BvaW50LlwiO1xuICAgICAgQHJldHVybiAkYnJlYWtwb2ludHM7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSBvciAkb3ZlcndyaXRlID09IHRydWUge1xuICAgICAgQHJldHVybiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkb3V0cHV0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGFkZC1icmVha3BvaW50KCRuYW1lLCAkYmtwdCwgJG92ZXJ3cml0ZTogZmFsc2UpIHtcbiAgJG91dHB1dDogKCRuYW1lOiAkYmtwdCk7XG5cbiAgQGlmIGxlbmd0aCgkQlJFQUtQT0lOVFMpID09IDAge1xuICAgICRCUkVBS1BPSU5UUzogJG91dHB1dCAhZ2xvYmFsO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJEJSRUFLUE9JTlRTLCAkbmFtZSkgYW5kICRvdmVyd3JpdGUgIT0gdHJ1ZSB7XG4gICAgICBAd2FybiBcIllvdSBhbHJlYWR5IGhhdmUgYSBicmVha3BvaW50IG5hbWVkIGAjeyRuYW1lfWAsIHBsZWFzZSBjaG9vc2UgYW5vdGhlciBicmVha3BvaW50IG5hbWUsIG9yIHBhc3MgaW4gYCRvdmVyd3JpdGU6IHRydWVgIHRvIG92ZXJ3cml0ZSB0aGUgcHJldmlvdXMgYnJlYWtwb2ludC5cIjtcbiAgICAgICRCUkVBS1BPSU5UUzogJEJSRUFLUE9JTlRTICFnbG9iYWw7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkQlJFQUtQT0lOVFMsICRuYW1lKSBvciAkb3ZlcndyaXRlID09IHRydWUge1xuICAgICAgJEJSRUFLUE9JTlRTOiBtYXAtbWVyZ2UoJEJSRUFLUE9JTlRTLCAkb3V0cHV0KSAhZ2xvYmFsO1xuICAgIH1cbiAgfVxufSIsIkBtaXhpbiBsZWdhY3ktc2V0dGluZ3Mtd2FybmluZyB7XG4gICRsZWdhY3lWYXJzOiAoXG4gICAgJ2RlZmF1bHQtbWVkaWEnOiAnZGVmYXVsdCBtZWRpYScsXG4gICAgJ2RlZmF1bHQtZmVhdHVyZSc6ICdkZWZhdWx0IGZlYXR1cmUnLFxuICAgICdmb3JjZS1tZWRpYS1hbGwnOiAnZm9yY2UgYWxsIG1lZGlhIHR5cGUnLFxuICAgICd0by1lbXMnOiAndG8gZW1zJyxcbiAgICAncmVzb2x1dGlvbnMnOiAndHJhbnNmb3JtIHJlc29sdXRpb25zJyxcbiAgICAnbm8tcXVlcmllcyc6ICdubyBxdWVyaWVzJyxcbiAgICAnbm8tcXVlcnktZmFsbGJhY2tzJzogJ25vIHF1ZXJ5IGZhbGxiYWNrcycsXG4gICAgJ2Jhc2UtZm9udC1zaXplJzogJ2Jhc2UgZm9udCBzaXplJyxcbiAgICAnbGVnYWN5LXN5bnRheCc6ICdsZWdhY3kgc3ludGF4J1xuICApO1xuXG4gIEBlYWNoICRsZWdhY3ksICRuZXcgaW4gJGxlZ2FjeVZhcnMge1xuICAgIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LScgKyAkbGVnYWN5KSB7XG4gICAgICBAd2FybiBcIkluIG9yZGVyIHRvIGF2b2lkIHZhcmlhYmxlIG5hbXNwYWNlIGNvbGxpc2lvbnMsIHdlIGhhdmUgdXBkYXRlZCB0aGUgd2F5IHRvIGNoYW5nZSBzZXR0aW5ncyBmb3IgQnJlYWtwb2ludC4gUGxlYXNlIGNoYW5nZSBhbGwgaW5zdGFuY2VzIG9mIGAkYnJlYWtwb2ludC0jeyRsZWdhY3l9OiB7e3NldHRpbmd9fWAgdG8gYEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCcjeyRuZXd9Jywge3tzZXR0aW5nfX0pYC4gVmFyaWFibGUgc2V0dGluZ3MsIGFzIHdlbGwgYXMgdGhpcyB3YXJuaW5nIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLlwiXG4gICAgfVxuICB9O1xuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyBIYW5kIGNvcnJlY3QgZWFjaCBzZXR0aW5nXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhJykgYW5kICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEgIT0gYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2RlZmF1bHQgbWVkaWEnLCAkYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1kZWZhdWx0LWZlYXR1cmUnKSBhbmQgJGJyZWFrcG9pbnQtZGVmYXVsdC1mZWF0dXJlICE9IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IGZlYXR1cmUnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2RlZmF1bHQgZmVhdHVyZScsICRicmVha3BvaW50LWRlZmF1bHQtZmVhdHVyZSk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtZm9yY2UtbWVkaWEtYWxsJykgYW5kICRicmVha3BvaW50LWZvcmNlLW1lZGlhLWFsbCAhPSBicmVha3BvaW50LWdldCgnZm9yY2UgYWxsIG1lZGlhIHR5cGUnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJywgJGJyZWFrcG9pbnQtZm9yY2UtbWVkaWEtYWxsKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC10by1lbXMnKSBhbmQgJGJyZWFrcG9pbnQtdG8tZW1zICE9IGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ3RvIGVtcycsICRicmVha3BvaW50LXRvLWVtcyk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtcmVzb2x1dGlvbnMnKSBhbmQgJGJyZWFrcG9pbnQtcmVzb2x1dGlvbnMgIT0gYnJlYWtwb2ludC1nZXQoJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJywgJGJyZWFrcG9pbnQtcmVzb2x1dGlvbnMpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LW5vLXF1ZXJpZXMnKSBhbmQgJGJyZWFrcG9pbnQtbm8tcXVlcmllcyAhPSBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnbm8gcXVlcmllcycsICRicmVha3BvaW50LW5vLXF1ZXJpZXMpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LW5vLXF1ZXJ5LWZhbGxiYWNrcycpIGFuZCAkYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3MgIT0gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnbm8gcXVlcnkgZmFsbGJhY2tzJywgJGJyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZScpIGFuZCAkYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZSAhPSBicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2Jhc2UgZm9udCBzaXplJywgJGJyZWFrcG9pbnQtYmFzZS1mb250LXNpemUpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWxlZ2FjeS1zeW50YXgnKSBhbmQgJGJyZWFrcG9pbnQtbGVnYWN5LXN5bnRheCAhPSBicmVha3BvaW50LWdldCgnbGVnYWN5IHN5bnRheCcpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnbGVnYWN5IHN5bnRheCcsICRicmVha3BvaW50LWxlZ2FjeS1zeW50YXgpO1xuICB9XG59IiwiJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTY6IGZhbHNlO1xuJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTc6IGZhbHNlO1xuJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTg6IHRydWU7XG5cbi8vICMgVmFyaWFibGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyAjIEdSSUQgOjogQSBGbHVpZCBHcmlkIGJhc2VkIG9uIDk2MGdzXG4vL1xuXG4vLyRncmlkOiAxMjAwcHg7XG5cbiRjb250YWluZXItd2lkdGg6IDEyMDBweDtcbiR0b3RhbC1jb2x1bW5zOiAxMjtcbiRjb2x1bW4td2lkdGg6IDgwcHg7XG4kZ3V0dGVyLXdpZHRoOiAxIC8gNDtcbiRnbG9iYWwtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiRndXR0ZXItcG9zaXRpb246IHNwbGl0O1xuJGNvbnRhaW5lci1zdHlsZTogZmx1aWQ7XG5cbiRzdXN5OiAoY29sdW1uczogJHRvdGFsLWNvbHVtbnMsIG1hdGg6ICRjb250YWluZXItc3R5bGUsIGd1dHRlcnM6ICRndXR0ZXItd2lkdGgsIGNvbnRhaW5lcjogJGNvbnRhaW5lci13aWR0aCwgY29sdW1uLXdpZHRoOiAkY29sdW1uLXdpZHRoLCBnbG9iYWwtYm94LXNpemluZzogJGdsb2JhbC1ib3gtc2l6aW5nLCBndXR0ZXItcG9zaXRpb246ICRndXR0ZXItcG9zaXRpb24pO1xuXG4kc2l6ZS0xOiAxcHgsIFwibm8tcXVlcnlcIiB0cnVlO1xuJHNpemUtNDgwOiA0ODBweCwgXCJuby1xdWVyeVwiIHRydWU7XG4kc2l6ZS01NTA6IDU1MHB4LCBcIm5vLXF1ZXJ5XCIgdHJ1ZTtcbiRzaXplLTc2ODogNzY4cHgsIFwibm8tcXVlcnlcIiB0cnVlOyAvLyBBcHBseWluZyBmb3IgdGFibGV0IGFuZCBhYm92ZSwgaW5zdGVhZCBvZiBhYm92ZSB0YWJsZXQuLi5cbiRzaXplLTc2OTogNzY5cHgsIFwibm8tcXVlcnlcIiB0cnVlO1xuJHNpemUtOTYwOiA5NjBweCwgXCJuby1xdWVyeVwiIHRydWU7XG4kc2l6ZS0xMjAwOiAxMjAwcHgsIFwibm8tcXVlcnlcIiB0cnVlO1xuXG4vLyAjIFR5cG9ncmFwaHlcbiRmb250LWZhbWlseS1iYXNlOiBcIm11c2VvLXNhbnNcIiwgVGFob21hLCBTZWdvZSwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRmb250LWZhbWlseS1oZWFkaW5nOiBcIm11c2VvLXNhbnNcIiwgVGFob21hLCBTZWdvZSwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8kZm9udC1pY29uczogXCJpY29uc1wiO1xuJGJhc2UtZm9udC1zaXplOiAxNnB4O1xuJGJhc2UtbGluZS1oZWlnaHQ6IDEuNDI4O1xuXG4vLyBUaGUgZm9udCBzaXplIHNldCBvbiB0aGUgcm9vdCBodG1sIGVsZW1lbnQuXG4vLyRiYXNlLWxpbmUtaGVpZ2h0OiAyNHB4O1xuXG4vLyAjIyMjIENvbXB1dGVkIFwibGluZS1oZWlnaHRcIiAoYGZvbnQtc2l6ZWAgKiBgbGluZS1oZWlnaHRgKSBmb3IgdXNlIHdpdGggYG1hcmdpbmAsIGBwYWRkaW5nYCwgZXRjLlxuJGxpbmUtaGVpZ2h0LWNvbXB1dGVkOiBmbG9vcigkYmFzZS1mb250LXNpemUgKiAkYmFzZS1saW5lLWhlaWdodCkgIWRlZmF1bHQ7XG5cbi8vIFRoaXMgbGluZS1oZWlnaHQgZGV0ZXJtaW5lcyB0aGUgYmFzaWMgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0uXG5cbiRoMS1mb250LXNpemU6IDMgKiAkYmFzZS1mb250LXNpemU7XG4kaDItZm9udC1zaXplOiAyLjUgKiAkYmFzZS1mb250LXNpemU7XG4kaDMtZm9udC1zaXplOiAyICogJGJhc2UtZm9udC1zaXplO1xuJGg0LWZvbnQtc2l6ZTogMSAqICRiYXNlLWZvbnQtc2l6ZTtcbiRoNS1mb250LXNpemU6IDAuODMgKiAkYmFzZS1mb250LXNpemU7XG4kaDYtZm9udC1zaXplOiAwLjY3ICogJGJhc2UtZm9udC1zaXplO1xuXG4vLyBXZWlnaHRzXG4kd2VpZ2h0LXRoaW46IDEwMDtcbiR3ZWlnaHQtbm9ybWFsOiAzMDA7XG4kd2VpZ2h0LWJvbGQ6IDUwMDtcbiR3ZWlnaHQtYm9sZGVzdDogNzAwO1xuXG4vLyAjIENvbG9yc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGJsYWNrOiBibGFjaztcbiR3aGl0ZTogd2hpdGU7XG5cbi8vICMjIyMjIyBHcmF5XG5cbi8vIyMjIyAjMjIyXG4kZ3JheS1kYXJrZXI6IGxpZ2h0ZW4oYmxhY2ssIDEzLjUlKSAhZGVmYXVsdDtcblxuLy8gIyMjIyAjMzMzXG4kZ3JheS1kYXJrOiAjM2MzYzNjICFkZWZhdWx0O1xuXG4vLyAjIyMjICM2NjZcbiRncmF5OiAjNWQ1ZDVkICFkZWZhdWx0O1xuXG4kZ3JheS1saWdodGlzaDogI2JkYmRiZDsgLy8gSnVzdCBmb3VuZCBhbm90aGVyIHNoYWRlIG9mIGdyYXkgd2hpY2ggc2FkbHkgY2FuJ3QgcmVhbGx5IGJlIHNraXBwZWQgOlBcblxuLy8gIyMjIyAjZDlkOWQ5XG4kZ3JheS1saWdodDogI2RhZGFkYSAhZGVmYXVsdDtcblxuLy8gIyMjIyAjYzJjMmMyXG4kZ3JheS1saWdodGVyOiAjZWNlY2ViICFkZWZhdWx0O1xuXG4vLyAjIyMjICNlZGVkZWRcbiRncmF5LWxpZ2h0ZXN0OiBsaWdodGVuKGJsYWNrLCA5MyUpICFkZWZhdWx0O1xuXG4vLyAjIyMjIyMgQnJhbmRcblxuJGJyYW5kLXByaW1hcnk6ICNkNzRmNGY7IC8vIERhcmsgcmVkXG4kYnJhbmQtbGlnaHRlc3QtZXh0cmVtZTogbGlnaHRlbigkYnJhbmQtcHJpbWFyeSwgNjAlKSAhZGVmYXVsdDtcblxuLypcbiNkYWRhZGEgLy8gTGlnaHQgZ3JheSAobmF2KVxuIzVkNWQ1ZCAvLyBHcmF5IChoZWFkZXIpXG4jM2MzYzNjIC8vIERhcmsgZ3JheSAoYm9keSlcblxuI2NlY2VjZSAvLyBHcmF5IChib3JkZXIpXG4jZWNlY2ViIC8vIEdyYXkgKGZvb3RlcilcbiNlMmUyZTIgLy8gR3JheSAoYnV0dG9uKVxuIzkwOTA5MCAvLyBHcmF5IChicmVhZGNydW1iKVxuIzc2NzY3NiAvLyBHcmF5IChjYXJvdXNlbCBidXR0b24pXG4jM2UzZTNlIC8vIEdyYXkgKGhlbHAgaWNvbiBjb2xvcilcbiM0ZjRmNGYgLy8gR3JheSAobWVudSlcbiovXG5cblxuLy8gIyMjIyMjIFN0YXRlc1xuJHN1Y2Nlc3M6ICM1Y2I4NWMgIWRlZmF1bHQ7XG4kaW5mbzogIzViYzBkZSAhZGVmYXVsdDtcbiR3YXJuaW5nOiAjYjEyMTQwICFkZWZhdWx0O1xuJGRhbmdlcjogI2Q5NTM0ZiAhZGVmYXVsdDtcblxuLy8gIyMjIyMjIFNvY2lhbFxuJHNvY2lhbC10d2l0dGVyOiAjNDhhMmQ3O1xuJHNvY2lhbC1mYWNlYm9vazogIzM4NTU5MTtcbiRzb2NpYWwteW91dHViZTogI2YwNDg0NztcblxuXG4vLz09IFNjYWZmb2xkaW5nXG4vL1xuLy8jIyBTZXR0aW5ncyBmb3Igc29tZSBvZiB0aGUgbW9zdCBnbG9iYWwgc3R5bGVzLlxuXG4vLyoqIEJhY2tncm91bmQgY29sb3IgZm9yIGA8Ym9keT5gLlxuJGJvZHktYmc6ICRncmF5LWxpZ2h0ZXN0ICFkZWZhdWx0O1xuXG4vLyoqIEdsb2JhbCB0ZXh0IGNvbG9yIG9uIGA8Ym9keT5gLlxuJGhlYWRlci1jb2xvcjogJGdyYXkgIWRlZmF1bHQ7XG5cbi8vKiogR2xvYmFsIHRleHQgY29sb3Igb24gYDxib2R5PmAuXG4kdGV4dC1jb2xvcjogJGdyYXktZGFyayAhZGVmYXVsdDtcblxuLy8qKiBHbG9iYWwgdGV4dHVhbCBsaW5rIGNvbG9yLlxuJGxpbmstY29sb3I6ICRicmFuZC1wcmltYXJ5ICFkZWZhdWx0O1xuXG4vLyoqIExpbmsgaG92ZXIgY29sb3Igc2V0IHZpYSBgZGFya2VuKClgIGZ1bmN0aW9uLlxuJGxpbmstaG92ZXItY29sb3I6IGRhcmtlbigkbGluay1jb2xvciwgMTUlKSAhZGVmYXVsdDtcblxuLy8gIyMjIyBIb3Jpem9udGFsIGxpbmUgY29sb3IuXG4kaHItYm9yZGVyOiAkZ3JheS1saWdodGVyICFkZWZhdWx0O1xuXG4vLyBQcm9kdWN0cyBhbmQgbW9kdWxlcy4uLlxuJHRhYmxlLWJvcmRlci1jb2xvcjogIzYzNjM2MztcblxuJHhwLWNvbG9yOiAjZTkwMDAwO1xuJHhwLXBsdXMtY29sb3I6ICNjN2M5MzU7XG4kY2EtY29sb3I6ICM5OWNjMDA7XG4kcHEtY29sb3I6ICNlMDVhMDA7XG4kcGwtY29sb3I6ICNjODAwMDA7XG4kZHMtY29sb3I6ICMzMzY2Y2I7XG4kc2MtY29sb3I6ICMwMDY0OTY7XG4kZWwtY29sb3I6ICMwMDY1NjU7XG4kbWktY29sb3I6ICMwMGJiMDA7XG4kbG8tY29sb3I6ICM2NDAwYzc7XG4kc28tY29sb3I6ICM2MzM0OTU7XG4kcG8tY29sb3I6ICM1MjM4YzY7XG4kbmUtY29sb3I6ICNmOTY0MDA7XG4kdjktY29sb3I6ICM0MTdjYjc7XG4kaW4tY29sb3I6ICM0MzQzZmQ7XG4kd2ItY29sb3I6ICMwZThkMzM7XG5cbiRwcm9kdWN0LWJhY2tncm91bmQ6ICNlY2VjZWM7XG4kcHJvZHVjdC1hbHQtYmFja2dyb3VuZDogI2RlZGVkZTtcbiRvdXRlcmJhY2tncm91bmQtY29sb3I6ICNEQURBREE7XG4kcmVjZW50bmV3cy1kYXRlLWNvbG9yOiAjOTM5MzkzOyAvLyBTaWdoLCBzbyBtYW55IGdyYXlzLi4uXG4kc2VsZWN0LWFycm93LWNvbG9yOiAjYzdjN2M3OyAvLyBKdXN0IGFub3RoZXIgZ3JheVxuJGlucHV0LWNvbG9yLXBsYWNlaG9sZGVyOiAjOWI5YjliOyAvLyBZYXkuLi5cblxuLy9cbi8vICMgR2VuZXJhbFxuLy9cblxuLy8gIyMjIyBib3JkZXIgcmFkaXVzXG4kYm9yZGVyLXJhZGl1cy1iYXNlOiA1cHggIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1cy1sYXJnZTogMTBweCAhZGVmYXVsdDtcbiRib3JkZXItcmFkaXVzLXNtYWxsOiAzcHggIWRlZmF1bHQ7XG5cbi8vICMjIyBTcGFjaW5nXG4kc3BhY2luZzogMjVweDtcbiRzcGFjaW5nLW1vYmlsZTogMTBweDtcbiRpbmRlbnQtYW1vdW50OiAzMHB4OyAvLyBUaGUgYW1vdW50IGxpc3RzLCBibG9ja3F1b3RlcyBhbmQgY29tbWVudHMgYXJlIGluZGVudGVkLlxuXG5cbi8vICMjIyBNYXNraW5nXG4kbWFzay1ncmFkaWVudC1tb2JpbGU6IDUwcHg7XG4kbWFzay13aWR0aC1tb2JpbGU6IDQ4MHB4OyIsIkBtaXhpbiBhbHBoYS1hdHRyaWJ1dGUoJGF0dHJpYnV0ZSwgJGNvbG9yLCAkYmFja2dyb3VuZCkge1xuICAgICRwZXJjZW50OiBhbHBoYSgkY29sb3IpICogMTAwJTtcbiAgICAkb3BhcXVlOiBvcGFjaWZ5KCRjb2xvciwgMSk7XG4gICAgJHNvbGlkLWNvbG9yOiBtaXgoJG9wYXF1ZSwgJGJhY2tncm91bmQsICRwZXJjZW50KTtcbiAgICAjeyRhdHRyaWJ1dGV9OiAkc29saWQtY29sb3I7XG4gICAgI3skYXR0cmlidXRlfTogJGNvbG9yO1xufVxuXG5AbWl4aW4gcmVwbGFjZS13aXRoLWltYWdlKCRpY29uKSB7XG4gICAgQGluY2x1ZGUgc3ByaXRlc2hlZXQtc3ByaXRlKCRpY29uKTtcbiAgICBoZWlnaHQ6IHNwcml0ZXNoZWV0LXNwcml0ZS1oZWlnaHQoJGljb24pO1xuICAgIHdpZHRoOiBzcHJpdGVzaGVldC1zcHJpdGUtd2lkdGgoJGljb24pO1xuICAgIEBpbmNsdWRlIGhpZGUtdGV4dDtcbn1cblxuQG1peGluIGFycm93cy1kb3VibGUoJHR5cGUpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwcHg7XG4gICAgICAgIHRvcDogNXB4O1xuICAgICAgICBAaW5jbHVkZSByZXBsYWNlLXdpdGgtaW1hZ2UoJHR5cGUpO1xuICAgIH1cbn1cblxuLy9UaGlzIG1peGluIHdpbGwgbmVlZCB0byBiZSB1cGF0ZWQgaWYgdXNlZCwgdG8gYWRkIHRoZSBjb3JyZWN0IHBhZGRpbmcgYW5kIHBvaXNpdGlvbmluZy4gXG4vL0N1cnJlbnRseSB0aGlzIGlzIGp1c3QgYSBkdXBsaWNhdGUgb2YgYXJyb3dzLWRvdWJsZSBtaXhpbi5cbkBtaXhpbiBhcnJvdygkdHlwZSkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICAgICY6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDBweDtcbiAgICAgICAgdG9wOiA1cHg7XG4gICAgICAgIEBpbmNsdWRlIHJlcGxhY2Utd2l0aC1pbWFnZSgkdHlwZSk7XG4gICAgfVxufVxuXG5AbWl4aW4gc2lkZS1wYWQge1xuICAgIHBhZGRpbmctbGVmdDogJGdyaWQtcGFkZGluZztcbiAgICBwYWRkaW5nLXJpZ2h0OiAkZ3JpZC1wYWRkaW5nO1xufVxuXG4vLyBTaXppbmcgc2hvcnRjdXRzXG5AbWl4aW4gc2l6ZSgkd2lkdGgsICRoZWlnaHQpIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICAgIGhlaWdodDogJGhlaWdodDtcbn1cblxuLy8gU2luZ2xlIHNpZGUgYm9yZGVyLXJhZGl1c1xuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpdXMpIHtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaXVzKSB7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaXVzKSB7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGl1cztcbn1cblxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaXVzKSB7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xufVxuXG4vLyBQbGFjZWhvbGRlciB0ZXh0XG5AbWl4aW4gcGxhY2Vob2xkZXIoJGNvbG9yOiAkaW5wdXQtY29sb3ItcGxhY2Vob2xkZXIpIHtcbiAgICAmOjotbW96LXBsYWNlaG9sZGVyLCAmOi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgICAvLyBGaXJlZm94XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvcHVsbC8xMTUyNlxuICAgICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICB9XG4gICAgLy8gSW50ZXJuZXQgRXhwbG9yZXIgMTArXG4gICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgfVxuICAgIC8vIFNhZmFyaSBhbmQgQ2hyb21lXG4gICAgJi5wbGFjZWhvbGRlcmVkIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAmOmZvY3VzLCAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIFRleHQgb3ZlcmZsb3dcbi8vIFJlcXVpcmVzIGlubGluZS1ibG9jayBvciBibG9jayBmb3IgcHJvcGVyIHN0eWxpbmdcbkBtaXhpbiB0ZXh0LW92ZXJmbG93IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8vIEJhY2tmYWNlIHZpc2liaWxpdHlcbi8vIFByZXZlbnQgYnJvd3NlcnMgZnJvbSBmbGlja2VyaW5nIHdoZW4gdXNpbmcgQ1NTIDNEIHRyYW5zZm9ybXMuXG4vLyBEZWZhdWx0IHZhbHVlIGlzIGB2aXNpYmxlYCwgYnV0IGNhbiBiZSBjaGFuZ2VkIHRvIGBoaWRkZW5gXG5AbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmlzaWJpbGl0eSkge1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogJHZpc2liaWxpdHk7XG4gICAgLW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiAkdmlzaWJpbGl0eTtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiAkdmlzaWJpbGl0eTtcbn1cblxuLy8gQm94IHNpemluZ1xuQG1peGluIGJveC1zaXppbmcoJGJveG1vZGVsKSB7XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkYm94bW9kZWw7XG4gICAgLW1vei1ib3gtc2l6aW5nOiAkYm94bW9kZWw7XG4gICAgYm94LXNpemluZzogJGJveG1vZGVsO1xufVxuXG4vLyBVc2VyIHNlbGVjdFxuLy8gRm9yIHNlbGVjdGluZyB0ZXh0IG9uIHRoZSBwYWdlXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdCkge1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgLy8gSUUxMCtcbiAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuLy8gRGl2aWRlcnMgKGJhc2ljYWxseSBhbiBocikgd2l0aGluIGRyb3Bkb3ducyBhbmQgbmF2IGxpc3RzXG5AbWl4aW4gbmF2LWRpdmlkZXIoJGNvbG9yOiAkZ3JheS1saWdodGVzdCkge1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogKCRsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIgLSAxKSAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xufVxuXG4vLyBXZWJLaXQtc3R5bGUgZm9jdXNcbkBtaXhpbiB0YWItZm9jdXMge1xuICAgIC8vIERlZmF1bHRcbiAgICBvdXRsaW5lOiB0aGluIGRvdHRlZDtcbiAgICAvLyBXZWJLaXRcbiAgICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG4gICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG5cbkBtaXhpbiBzdGF0aWMtZ3JpZCB7XG4gICAgd2lkdGg6ICRjb250YWluZXItd2lkdGg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxufVxuXG4vLyBpZSBGYWxsYmFjayBzdGF0aWMgZ3JpZCB3aWxsIHJlbmRlciBpbiBJRTggc3R5bGVzaGVldCBpZiAkZml4ZWQgY29udGFpbmVyIHZhcmlhYmxlIGV4aXN0c1xuQG1peGluIGNvbnRhaW5lci1yZW5kZXIge1xuICAgIEBpZiB2YXJpYWJsZS1leGlzdHMoZml4ZWQtY29udGFpbmVyKSB7XG4gICAgICAgIEBpbmNsdWRlIHN0YXRpYy1ncmlkO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAgIEBpbmNsdWRlIGNvbnRhaW5lcigkY29udGFpbmVyLXdpZHRoKTtcbiAgICB9XG59XG5cbi8vIG91dGxpbmUgaGVscGVyXG5AbWl4aW4gb3V0KCRjb2xvcjogcGluaywgJHdpZHRoOiAxcHgpIHtcbiAgICBvdXRsaW5lOiAkd2lkdGggc29saWQgJGNvbG9yO1xufVxuXG5AbWl4aW4gY2xlYXJmaXgge1xuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxufVxuXG5AbWl4aW4gZmxvYXQoJHNpZGU6IGxlZnQpIHtcbiAgICBmbG9hdDogdW5xdW90ZSgkc2lkZSk7XG59XG5cbi8vIEJveCBTaGFkb3dcbkBtaXhpbiBib3gtc2hhZG93KCRsZWZ0OiAwLCAkdG9wOiAycHgsICRibHVyOiAycHgsICRzcHJlYWQ6IDAsICRjb2xvcjogIzAwMCwgJGluc2V0OiBcIlwiKSB7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAkbGVmdCAkdG9wICRibHVyICRzcHJlYWQgJGNvbG9yICN7JGluc2V0fTtcbiAgICAtbW96LWJveC1zaGFkb3c6ICRsZWZ0ICR0b3AgJGJsdXIgJHNwcmVhZCAkY29sb3IgI3skaW5zZXR9O1xuICAgIGJveC1zaGFkb3c6ICRsZWZ0ICR0b3AgJGJsdXIgJHNwcmVhZCAkY29sb3IgI3skaW5zZXR9O1xufVxuXG4vLyBObyBCdWxsZXRzIG9uIGxpc3RzXG5AbWl4aW4gbm8tYnVsbGV0IHtcbiAgICBsaXN0LXN0eWxlLWltYWdlOiBub25lO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbn1cblxuQG1peGluIG5vLWJ1bGxldHMge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbGkge1xuICAgICAgICBAaW5jbHVkZSBuby1idWxsZXQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gc3F1aXNoLXRleHQge1xuICAgIGZvbnQ6IDAvMCBzZXJpZjtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbkBtaXhpbiB0YWJsZWZ5KCRndXR0ZXI6IDEwcHgsICR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlLCAkbmVzdGVkOiBmYWxzZSkge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJiA+ICoge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICBwYWRkaW5nOiAwICRndXR0ZXI7XG4gICAgICAgIHdpZHRoOiAxJTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246ICR2ZXJ0aWNhbC1hbGlnbjtcblxuICAgICAgICBAaWYgJG5lc3RlZCB7XG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBcbiAgICAgICAgLy8gVGhlIHZpc2liaWxpdHkgaGVscGVyIHNldHMgZGlzcGxheSBibG9jaywgd2hpY2ggY2FuIGJyZWFrIHRhYmxlZnksIHNvIHRoaXMgaXMgdGhlIGZpeC4uLlxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTEpIHtcbiAgICAgICAgICAgICYuaGlkZGVuLW1vYmlsZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNDgwKSB7XG4gICAgICAgICAgICAmLmhpZGRlbi1tb2JpbGUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmhpZGRlbi10d2VlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgICAgICAmLmhpZGRlbi10d2VlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuaGlkZGVuLXRhYmxldCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtOTYwKSB7XG4gICAgICAgICAgICAmLmhpZGRlbi10YWJsZXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmhpZGRlbi1kZXNrdG9wIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS0xMjAwKSB7XG4gICAgICAgICAgICAmLmhpZGRlbi1kZXNrdG9wIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5oaWRkZW4tZGVza3RvcC1sIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5cblxuXG4vL1xuLy8gQW5nbGVzXG4vL1xuQG1peGluIGFuZ2xlKCRzaWRlLXg6ICdsZWZ0JywgJHNpZGUteTogJ3RvcCcsICRhbmdsZTogJG1hc2stZ3JhZGllbnQtbW9iaWxlLCAkd2lkdGg6ICRtYXNrLXdpZHRoLW1vYmlsZSwgJHJlc3BvbnNpdmU6IHRydWUpIHtcbiAgICAkb3Bwb3NpdGUteTogJ2JvdHRvbSc7XG5cbiAgICAvLyBJZiBpdCBwYXNzZWQgYm90dG9tIGFzIHRoZSB5LCB0aGVuIHRoZSBvcHBvc2l0ZSB3b3VsZCBiZSB0b3AuLi5cbiAgICBAaWYgJHNpZGUteSA9PSAnYm90dG9tJyB7XG4gICAgICAgICRvcHBvc2l0ZS15OiAndG9wJztcbiAgICB9XG5cbiAgICAvLyBJbml0IGJvcmRlciBhcnJvd1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAtbW96LXRyYW5zZm9ybTogc2NhbGUoLjk5OTkpO1xuXG4gICAgdG9wOiBhdXRvO1xuICAgIGJvdHRvbTogYXV0bztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIC8vIEluaXQgYWxsIGNvbG9yc1xuICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIFxuICAgIC8vIEluaXQgcmdiYSBjb2xvcnMuLi4gQ2FuIGFwcGFyZW50bHkgbWFrZSBpdCBsb29rIHNtb290aGVyIGlmIHVzaW5nIHJnYmEgaW5zdGVhZCBvZiB0cmFuc3BhcmVudC4uLlxuICAgIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMCk7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDApO1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMCk7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMCk7XG4gICAgXG4gICAgLy8gSW5pdCBhbGwgd2lkdGhzXG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcblxuICAgIC8vIFNldHRpbmcgY29sb3JcbiAgICBib3JkZXItI3skc2lkZS14fS1jb2xvcjogJHdoaXRlO1xuXG4gICAgLy8gUG9zaXRpb25cbiAgICAjeyRzaWRlLXl9OiAwO1xuICAgICN7JHNpZGUteH06IDUwJTtcbiAgICBcbiAgICAvLyBTaXplIG1vYiB0byB0d2VlblxuICAgIG1hcmdpbi0jeyRzaWRlLXh9OiAtICgkd2lkdGggLyAyKTtcbiAgICBib3JkZXItI3skc2lkZS14fS13aWR0aDogJHdpZHRoO1xuICAgIGJvcmRlci0jeyRvcHBvc2l0ZS15fS13aWR0aDogJGFuZ2xlO1xuXG4gICAgQGlmICRyZXNwb25zaXZlIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS00ODApIHsgLy8gU2l6ZSB0d2VlbiB0byB0YWJcbiAgICAgICAgICAgICR3aWR0aDogJHdpZHRoICogMS42O1xuICAgICAgICAgICAgJGFuZ2xlOiAkYW5nbGUgKiAxLjY7XG4gICAgICAgICAgICBtYXJnaW4tI3skc2lkZS14fTogLSAoJHdpZHRoIC8gMik7XG4gICAgICAgICAgICBib3JkZXItI3skc2lkZS14fS13aWR0aDogJHdpZHRoO1xuICAgICAgICAgICAgYm9yZGVyLSN7JG9wcG9zaXRlLXl9LXdpZHRoOiAkYW5nbGU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkgeyAvLyBTaXplIHRhYiB0byBkZXNrdG9wIGFuZCBhYm92ZS4uLlxuICAgICAgICAgICAgJHdpZHRoOiAkd2lkdGggKiAxLjY7XG4gICAgICAgICAgICAkYW5nbGU6ICRhbmdsZSAqIDEuNjtcbiAgICAgICAgICAgIG1hcmdpbi0jeyRzaWRlLXh9OiAtICgkd2lkdGggLyAyKTtcbiAgICAgICAgICAgIGJvcmRlci0jeyRzaWRlLXh9LXdpZHRoOiAkd2lkdGg7XG4gICAgICAgICAgICBib3JkZXItI3skb3Bwb3NpdGUteX0td2lkdGg6ICRhbmdsZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHRpbmcgd2lkdGhzLi4uIHdpbGwgbGF0ZXIgbWFrZSBhZGFwdGl2ZVxuXG4gICAgLy8gSWYgd2UncmUgZXh0ZW5kaW5nIG91dHNpZGUgb2YgdGhlIGJveCwgdGhlbiB3ZSdsbCBuZWVkIHRvIHVzZSB0aGUgb3Bwb3NpdGUteVxuICAgIC8vQGlmICRtb2RlID09ICdpbnZlcnQnIHtcbiAgICAvL31cbiAgICAvKlxuICAgIEBpZiAkbW9kZSA9PSAnZXh0ZW5kJyB7XG4gICAgICAgICN7JG9wcG9zaXRlLXl9OiAxMDAlO1xuICAgICAgICBib3JkZXItI3skc2lkZS15fS13aWR0aDogJGFuZ2xlO1xuICAgIH0qL1xufVxuXG4vLyBGb3IgZXhwbGljaXRseSBzZXR0aW5nIHRoZSBjb2xvci4uLlxuQG1peGluIGFuZ2xlLWNvbG9yKCRzaWRlLXg6ICdsZWZ0JywgJGNvbG9yOiBmYWxzZSkge1xuICAgIC8vIFNldHRpbmcgY29sb3JcbiAgICBib3JkZXItI3skc2lkZS14fS1jb2xvcjogJGNvbG9yO1xufVxuXG4vLyBOb3QgdXNlZCBiZWNhdXNlIGl0IG92ZXJjb21wbGljYXRlcyB0aGluZ3MgcmVhbGx5XG5AbWl4aW4gYW5nbGUtY2FsYy1uZXcoJHNpemUtb2xkLCAkc2l6ZS1uZXcsICR2YWx1ZSkge1xuICAgIC8vIFBhc3MgaW4gb2xkIHNjcmVlbiwgbmV3IHNjcmVlbiwgYW5kIHZhbHVlLi4uIGJhc2ljYWxseSwgdGhlIGlkZWEgaXMgdG8gd29yayBvdXQgdGhlIHJhdGlvIGRpZmZlcmVuY2UgYW5kIHJldHVybiBhIHJlc3BlY3RpdmVseSBzY2FsZWQgdmFsdWUuLi5cbiAgICAvLyBcbn1cblxuQG1peGluIGFuZ2xlLXJlc3BvbnNpdmUtcGFkZGluZygkc2lkZSwgJGFuZ2xlOiAkbWFzay1ncmFkaWVudC1tb2JpbGUpIHtcbiAgICBwYWRkaW5nLSN7JHNpZGV9OiAkYW5nbGU7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTQ4MCkgeyAvLyBTaXplIHR3ZWVuIHRvIHRhYlxuICAgICAgICAkYW5nbGU6ICRhbmdsZSAqIDEuNiAtIDE7XG4gICAgICAgIHBhZGRpbmctI3skc2lkZX06ICRhbmdsZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkgeyAvLyBTaXplIHRhYiB0byBkZXNrdG9wIGFuZCBhYm92ZS4uLlxuICAgICAgICAkYW5nbGU6ICRhbmdsZSAqIDEuNiAtIDE7XG4gICAgICAgIHBhZGRpbmctI3skc2lkZX06ICRhbmdsZTtcbiAgICB9XG59XG5cbkBtaXhpbiBhbmdsZS1yZXNwb25zaXZlLW1hcmdpbigkc2lkZSwgJGFuZ2xlOiAkbWFzay1ncmFkaWVudC1tb2JpbGUsICRtb2Q6IDApIHsgLy8gTW9kIGRvZXNuJ3Qgc2NhbGVcbiAgICBtYXJnaW4tI3skc2lkZX06IC0gKCRhbmdsZSAtICRtb2QpO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS00ODApIHsgLy8gU2l6ZSB0d2VlbiB0byB0YWJcbiAgICAgICAgJGFuZ2xlOiAoJGFuZ2xlICogMS42KSAtIDE7XG4gICAgICAgIG1hcmdpbi0jeyRzaWRlfTogLSAoJGFuZ2xlIC0gJG1vZCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHsgLy8gU2l6ZSB0YWIgdG8gZGVza3RvcCBhbmQgYWJvdmUuLi5cbiAgICAgICAgJGFuZ2xlOiAoJGFuZ2xlICogMS42KSAtIDE7XG4gICAgICAgIG1hcmdpbi0jeyRzaWRlfTogLSAoJGFuZ2xlIC0gJG1vZCk7XG4gICAgfVxufVxuXG5AbWl4aW4gbmVzdCgpIHtcbiAgICBAaW5jbHVkZSBzcGFuKGZ1bGwgbmVzdCk7IC8vIEFubm95aW5nIGRyYXdiYWNrIHdpdGggY3VycmVudCBibG9jayBjbGFzcy4uLiBoYXZlIHRvIHNldCBtYXJnaW5zIHRvb1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtMTIwMCkge1xuICAgICAgICBcbiAgICB9XG59XG5cbkBtaXhpbiBwYXJhc3BhY2UoKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmcgLyAyO1xuICAgIFxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgIH1cbn1cblxuQG1peGluIGNlbnRyZWQtbW9iaWxlKCkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNDgwKSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gb3BhY2l0eSgkdmFsdWUpe1xuICAgICRJRVZhbHVlOiAkdmFsdWUqMTAwO1xuICAgIGZpbHRlcjogYWxwaGEob3BhY2l0eT0kSUVWYWx1ZSk7XG4gICAgLW1zLWZpbHRlcjogXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT1cIiskSUVWYWx1ZStcIilcIjtcbiAgICBvcGFjaXR5OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tKCRwaXhlbCwgJHR5cGUsICRjb2xvciwgJG9wYWNpdHk6IDAuMykge1xuICAgIGJvcmRlci1ib3R0b206ICRwaXhlbCAkdHlwZSAkY29sb3I7XG4gICAgLyogVGhlIEZhbGxiYWNrICovXG4gICAgYm9yZGVyLWJvdHRvbTogJHBpeGVsICR0eXBlIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSk7XG59IiwiLy8gRnVuY3Rpb24gZm9yIGNvbnZlcnRpbmcgcGl4ZWwgdG8gZW0gYmFzZWQgb24gdmFyaWFibGUgYmFzZSBmb250IHNpemUuXG5cbkBmdW5jdGlvbiBlbSgkcHgsICRiYXNlOiAkYmFzZS1mb250LXNpemUpIHtcbiAgICBAcmV0dXJuICRweCAvICRiYXNlICogMWVtO1xufSIsIi8vLy9cbi8vLyBub3JtYWxpemUtbGlic2FzcyAxLjAuMVxuLy8vIE1JVC9HUEx2MiBMaWNlbnNlXG4vLy8gbGIuY20vbm9ybWFsaXplLWxpYnNhc3Ncbi8vLy9cblxuLy8vIFN0cmljdCBub3JtYWxpemVcbi8vLyBAdHlwZSBCb29sZWFuIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSBmb3Igc3RyaWN0IG5vcm1hbGl6ZSBvdXRwdXQuXG4kc3RyaWN0LW5vcm1hbGl6ZTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBGb250LXNpemUgYmFzZWxpbmVcbi8vLyBAdHlwZSBMZW5ndGggWzE2cHhdXG4kYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XG5cbi8vLyBMaW5lLWhlaWdodCBiYXNlbGluZVxuLy8vIEB0eXBlIExlbmd0aCBbMjRweF1cbiRiYXNlLWxpbmUtaGVpZ2h0OiAyNHB4ICFkZWZhdWx0O1xuXG4vLy8gSDEgaGVhZGxpbmUgc2l6ZVxuLy8vIEB0eXBlIExlbmd0aCBbMiAqIDE2cHhdXG4kaDEtZm9udC1zaXplOiAyICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuXG4vLy8gUmh5dGhtIHVuaXRcbi8vLyBAdHlwZSBTdHJpbmcgW2VtXSAtIFN1cHBvcnRlZCB2YWx1ZXM6IHB4LCBlbSwgcmVtLlxuJHJoeXRobS11bml0OiBcImVtXCIgIWRlZmF1bHQ7XG5cbi8vLyBGb250LWZhbWlseSBiYXNlbGluZVxuLy8vIEB0eXBlIE1hcCBbc2Fucy1zZXJpZl1cbiRiYXNlLWZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG4vLy8gU3VwcG9ydGVkIEJyb3dzZXIgdmVyc2lvbnNcbi8vLyBAdHlwZSBNYXBcbiRicm93c2VyLW1pbi12ZXJzaW9uOiAoXCJjaHJvbWVcIjogbnVsbCwgXCJmaXJlZm94XCI6IG51bGwsIFwiaWVcIjogOCwgXCJzYWZhcmlcIjogNiwgXCJvcGVyYVwiOiBudWxsKSAhZGVmYXVsdDtcblxuLy8gQXNzdXJlIG5vIHZhcmlhYmxlcyBnZXQgb3ZlcnJpZGRlbiBpZiBzdHJpY3QgaXMgb25cbiRub3JtYWxpemUtYmFzZS1mb250LXNpemU6IGlmKCRzdHJpY3Qtbm9ybWFsaXplLCAxNnB4LCAkYmFzZS1mb250LXNpemUpO1xuJG5vcm1hbGl6ZS1iYXNlLWxpbmUtaGVpZ2h0OiBpZigkc3RyaWN0LW5vcm1hbGl6ZSwgMjRweCwgJGJhc2UtbGluZS1oZWlnaHQpO1xuJG5vcm1hbGl6ZS1oMS1mb250LXNpemU6IGlmKCRzdHJpY3Qtbm9ybWFsaXplLCAyICogJGJhc2UtZm9udC1zaXplLCAkaDEtZm9udC1zaXplKTtcbiRub3JtYWxpemUtcmh5dGhtLXVuaXQ6IGlmKCRzdHJpY3Qtbm9ybWFsaXplLCBcImVtXCIsICRyaHl0aG0tdW5pdCk7XG4kbm9ybWFsaXplLWJhc2UtZm9udC1mYW1pbHk6IGlmKCRzdHJpY3Qtbm9ybWFsaXplLCBzYW5zLXNlcmlmLCAkYmFzZS1mb250LWZhbWlseSk7XG5cbi8vLyBOb3JtYWxpemUgTGVnYWN5IEJyb3dzZXIgU3VwcG9ydCBmdW5jdGlvblxuLy8vXG4vLy8gQHJlcXVpcmVzIHt2YXJpYWJsZX0gYnJvd3NlclxuLy8vIEByZXF1aXJlcyB7dmFyaWFibGV9IHZlcnNpb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJvd3NlciAtIEEgdmFsaWQgYnJvd3NlciBuYW1lIGZyb20gJGJyb3dzZXItbWluaW11bS12ZXJzaW9ucy5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZlcnNpb24gLSBBIGJyb3dzZXIgdmVyc2lvbi5cbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9IC0gSWYgYnJvd3NlciBpcyBudWxsIG9yIHZhbGlkIHJldHVybnMgdHJ1ZS5cbkBmdW5jdGlvbiBub3JtYWxpemUtYnJvd3Nlci1zdXBwb3J0KCRicm93c2VyLCAkdmVyc2lvbikge1xuICAgIC8vIEFsbG93cyB0aGUgQ29tcGFzcyBmdW5jdGlvbiB0byB0YWtlIG92ZXIgaWYgaW5zdGFsbGVkLlxuICAgIEBpZiBtYXAtZ2V0KCRicm93c2VyLW1pbi12ZXJzaW9uLCAkYnJvd3Nlcikge1xuICAgICAgICAkc3VwcG9ydGVkLXZlcnNpb246IG1hcC1nZXQoJGJyb3dzZXItbWluLXZlcnNpb24sICRicm93c2VyKTtcbiAgICAgICAgLy8gUGFzcyBpZiBicm93c2VyIGlzIHN1cHBvcnRlZCBvciBzdHJpY3Qtbm9ybWFsaXplIGlzIG9uXG4gICAgICAgIEBpZiAkc3RyaWN0LW5vcm1hbGl6ZSBvciAkc3VwcG9ydGVkLXZlcnNpb24gPD0gJHZlcnNpb24ge1xuICAgICAgICAgICAgQHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIC8vIEZhaWwgaWYgYnJvd3NlciBpcyB1bnN1cHBvcnRlZFxuICAgICAgICAgICAgQHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFBhc3MgaWYgYnJvd3NlciBpcyBudWxsXG4gICAgQHJldHVybiB0cnVlO1xufVxuXG4vKipcbiogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiogMi4gUHJldmVudCBpT1MgdGV4dCBzaXplIGFkanVzdCBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nXG4qICAgIHVzZXIgem9vbS5cbiovXG5odG1sIHtcbiAgICBmb250LWZhbWlseTogJG5vcm1hbGl6ZS1iYXNlLWZvbnQtZmFtaWx5O1xuICAgIC8qIDEgKi9cbiAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgICAvKiAyICovXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAgIC8qIDIgKi9cbn1cblxuLyoqXG4qIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiovXG5cbmJvZHkge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4qIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4qIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4qIGFuZCBGaXJlZm94LlxuKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4qIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4qIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiovXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gICAgQGlmIG5vcm1hbGl6ZS1icm93c2VyLXN1cHBvcnQoXCJpZVwiLCA5KSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgLyogMSAqL1xuICAgIH1cbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgLyogMiAqL1xufVxuXG4vKipcbiogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBoZWlnaHQ6IDA7XG59XG5cbkBpZiBub3JtYWxpemUtYnJvd3Nlci1zdXBwb3J0KFwiaWVcIiwgMTApIHtcbiAgICAvKipcbiAgICAgKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gICAgICovXG4gICAgW2hpZGRlbl0ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLyoqXG4qIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiovXG5cbnRlbXBsYXRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQGlmIG5vcm1hbGl6ZS1icm93c2VyLXN1cHBvcnQoXCJpZVwiLCAxMCkge1xuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgICAqL1xuICAgIGEge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG59XG5cbi8qKlxuKiBJbXByb3ZlIHJlYWRhYmlsaXR5IHdoZW4gZm9jdXNlZCBhbmQgYWxzbyBtb3VzZSBob3ZlcmVkIGluIGFsbCBicm93c2Vycy5cbiovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gICAgb3V0bGluZTogMDtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4qL1xuXG5hYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLyoqXG4qIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiovXG5cbmIsXG5zdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKipcbiogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuKi9cblxuZGZuIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4qIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiovXG5cbmgxIHtcbiAgICBmb250LXNpemU6IGlmKCRub3JtYWxpemUtcmh5dGhtLXVuaXQgPT0gXCJweFwiLCAkaDEtZm9udC1zaXplLCAjeyRub3JtYWxpemUtaDEtZm9udC1zaXplIC8gJG5vcm1hbGl6ZS1iYXNlLWZvbnQtc2l6ZX0jeyRub3JtYWxpemUtcmh5dGhtLXVuaXR9KTtcbiAgICBtYXJnaW46IGlmKCRub3JtYWxpemUtcmh5dGhtLXVuaXQgPT0gXCJweFwiLCAkYmFzZS1saW5lLWhlaWdodCwgI3skbm9ybWFsaXplLWJhc2UtZm9udC1zaXplIC8gJG5vcm1hbGl6ZS1iYXNlLWxpbmUtaGVpZ2h0fSN7JG5vcm1hbGl6ZS1yaHl0aG0tdW5pdH0pIDA7XG59XG5cbkBpZiBub3JtYWxpemUtYnJvd3Nlci1zdXBwb3J0KFwiaWVcIiwgOSkge1xuICAgIC8qKlxuICAgICAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gICAgICovXG4gICAgbWFyayB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZjA7XG4gICAgICAgIGNvbG9yOiAjMDAwO1xuICAgIH1cbn1cblxuLyoqXG4qIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuKi9cblxuc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuKi9cblxuc3ViLFxuc3VwIHtcbiAgICBmb250LXNpemU6IDc1JTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICAgIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICAgIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQGlmIG5vcm1hbGl6ZS1icm93c2VyLXN1cHBvcnQoXCJpZVwiLCAxMCkge1xuICAgIC8qKlxuICAgICAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICAgICAqL1xuICAgIGltZyB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICB9XG59XG5cbkBpZiBub3JtYWxpemUtYnJvd3Nlci1zdXBwb3J0KFwiaWVcIiwgMTEpIHtcbiAgICAvKipcbiAgICAgKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAgICAgKi9cbiAgICBzdmc6bm90KDpyb290KSB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AaWYgbm9ybWFsaXplLWJyb3dzZXItc3VwcG9ydChcImllXCIsIDkpIG9yIG5vcm1hbGl6ZS1icm93c2VyLXN1cHBvcnQoXCJzYWZhcmlcIiwgNikge1xuICAgIC8qKlxuICAgICAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICAgICAqL1xuICAgIGZpZ3VyZSB7XG4gICAgICAgIG1hcmdpbjogMWVtIDQwcHg7XG4gICAgfVxufVxuXG4vKipcbiogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuKi9cblxuaHIge1xuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuXG5wcmUge1xuICAgIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4qL1xuXG4vKipcbiogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4qL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIC8qIDEgKi9cbiAgICBmb250OiBpbmhlcml0O1xuICAgIC8qIDIgKi9cbiAgICBtYXJnaW46IDA7XG4gICAgLyogMyAqL1xufVxuXG5AaWYgbm9ybWFsaXplLWJyb3dzZXItc3VwcG9ydChcImllXCIsIDExKSB7XG4gICAgLyoqXG4gICAgICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gICAgICovXG4gICAgYnV0dG9uIHtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxufVxuXG4vKipcbiogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4qL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4qIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPSdidXR0b24nXSxcbmlucHV0W3R5cGU9J3Jlc2V0J10sXG5pbnB1dFt0eXBlPSdzdWJtaXQnXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gICAgLyogMiAqL1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAvKiAzICovXG59XG5cbi8qKlxuKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuKi9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4qL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4qIHRoZSBVQSBzdHlsZXNoZWV0LlxuKi9cblxuaW5wdXQge1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbkBpZiBub3JtYWxpemUtYnJvd3Nlci1zdXBwb3J0KFwiaWVcIiwgMTApIHtcbiAgICAvKipcbiAgICAgKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gICAgICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAgICAgKlxuICAgICAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gICAgICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAgICAgKi9cbiAgICBpbnB1dFt0eXBlPSdjaGVja2JveCddLFxuICAgIGlucHV0W3R5cGU9J3JhZGlvJ10ge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAvKiAxICovXG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIC8qIDIgKi9cbiAgICB9XG59XG5cbi8qKlxuKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4qL1xuXG5pbnB1dFt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9J251bWJlciddOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZVxuKiAgICAoaW5jbHVkZSBgLW1vemAgdG8gZnV0dXJlLXByb29mKS5cbiovXG5cbmlucHV0W3R5cGU9J3NlYXJjaCddIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgICAvKiAxICovXG4gICAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIC8qIDIgKi9cbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLyoqXG4qIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4qIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiovXG5cbmlucHV0W3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4qIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiovXG5cbmZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICAgIG1hcmdpbjogMCAycHg7XG4gICAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuXG4vKipcbiogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4qL1xuXG5sZWdlbmQge1xuICAgIEBpZiBub3JtYWxpemUtYnJvd3Nlci1zdXBwb3J0KFwiaWVcIiwgMTEpIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAvKiAxICovXG4gICAgfVxuICAgIHBhZGRpbmc6IDA7XG4gICAgLyogMiAqL1xufVxuXG5AaWYgbm9ybWFsaXplLWJyb3dzZXItc3VwcG9ydChcImllXCIsIDExKSB7XG4gICAgLyoqXG4gICAgICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAgICAgKi9cbiAgICB0ZXh0YXJlYSB7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIH1cbn1cblxuLyoqXG4qIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4qL1xuXG5vcHRncm91cCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4qIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiovXG5cbnRhYmxlIHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgICBwYWRkaW5nOiAwO1xufSIsIltjbGFzc149XCJpY29uLVwiXSwgW2NsYXNzKj1cIiBpY29uLVwiXSB7XG4gICAgZm9udC1mYW1pbHk6ICdNYWdpLWN1dCc7XG4gICAgc3BlYWs6IG5vbmU7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuQG1peGluIGN1c3RvbS1pY29uIHtcbiAgICBmb250LWZhbWlseTogJ01hZ2ktY3V0JztcbiAgICBzcGVhazogbm9uZTtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5cbi5pY29uLXN3aXBlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXDQxXCI7XG59XG5cbi5pY29uLXlvdXR1YmU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcNzlcIjtcbn1cblxuLmljb24tcXVlc3Rpb246YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcNzFcIjtcbn1cblxuLmljb24tYW5zd2VyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXDYxXCI7XG59XG5cbi5pY29uLW5leHQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcNTJcIjtcbn1cblxuLmljb24tcHJldjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFw0Y1wiO1xufVxuXG4uaWNvbi1jaGVja21hcms6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcNjNcIjtcbn1cblxuLmljb24tYXJyb3ctbGVmdDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFw2Y1wiO1xufVxuXG4uaWNvbi1hcnJvdy1kb3duOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXDY0XCI7XG59XG5cbi5pY29uLWFycm93LXVwOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXDc1XCI7XG59XG5cbi5pY29uLWFycm93LXJpZ2h0OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXDcyXCI7XG59XG5cbi5pY29uLXR3aXR0ZXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcNzRcIjtcbn1cblxuLmljb24tZmFjZWJvb2s6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcNjZcIjtcbn1cblxuLmljb24tc2VhcmNoOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXDczXCI7XG59XG5cbi8qLmljb24tdHdpdHRlcjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFw3NFwiO1xufVxuXG4uaWNvbi1mYWNlYm9vazpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFw2NlwiO1xufSovXG5cbi5pY29uLXNlYXJjaDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFw3M1wiO1xufVxuXG4uaWNvbi1jbG9zZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFw3OFwiO1xufVxuXG4uaWNvbi1iYXJzOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXDZlXCI7XG59XG5cbi5pY29uLWZpbGUtcGRmLW86YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcNDZcIjtcbn1cblxuLmljb24tY2xvc2U6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcNzhcIjtcbn1cblxuLmljb24tYmFyczpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFw2ZVwiO1xufVxuXG4uaWNvbi1maWxlLXBkZi1vOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXDQ2XCI7XG59XG5cbi5pY29uLWRpc3BsYXk6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZTk1NlwiO1xufVxuXG4uaWNvbi12aWRlby1jYW1lcmE6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcZTkwMFwiO1xufVxuXG4uaWNvbi1jcmVkaXQtY2FyZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFxlOTAyXCI7XG59XG4iLCIvLyBUcmFuc2l0aW9uc1xuQG1peGluIHRyYW5zaXRpb24oJHRyYW5zaXRpb24uLi4pIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xuICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1wcm9wZXJ0eSgkdHJhbnNpdGlvbi1wcm9wZXJ0eS4uLikge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogJHRyYW5zaXRpb24tcHJvcGVydHk7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogJHRyYW5zaXRpb24tcHJvcGVydHk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCR0cmFuc2l0aW9uLWRlbGF5KSB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiAkdHJhbnNpdGlvbi1kZWxheTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAkdHJhbnNpdGlvbi1kZWxheTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZHVyYXRpb24oJHRyYW5zaXRpb24tZHVyYXRpb24uLi4pIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246ICR0cmFuc2l0aW9uLWR1cmF0aW9uO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246ICR0cmFuc2l0aW9uLWR1cmF0aW9uO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi10cmFuc2Zvcm0oJHRyYW5zaXRpb24uLi4pIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtICR0cmFuc2l0aW9uO1xuICAgIC1tb3otdHJhbnNpdGlvbjogLW1vei10cmFuc2Zvcm0gJHRyYW5zaXRpb247XG4gICAgLW8tdHJhbnNpdGlvbjogLW8tdHJhbnNmb3JtICR0cmFuc2l0aW9uO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbn1cblxuLy8gVHJhbnNmb3JtYXRpb25zXG5AbWl4aW4gc2NhbGUoJHJhdGlvLi4uKSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKCRyYXRpbyk7XG4gICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoJHJhdGlvKTtcbiAgICAvLyBJRTkgb25seVxuICAgIHRyYW5zZm9ybTogc2NhbGUoJHJhdGlvKTtcbn1cblxuQG1peGluIHNjYWxlKCRyYXRpb1gsICRyYXRpb1kuLi4pIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoJHJhdGlvWCwgJHJhdGlvWSk7XG4gICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoJHJhdGlvWCwgJHJhdGlvWSk7XG4gICAgLy8gSUU5IG9ubHlcbiAgICB0cmFuc2Zvcm06IHNjYWxlKCRyYXRpb1gsICRyYXRpb1kpO1xufVxuXG5AbWl4aW4gc2NhbGVYKCRyYXRpbykge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoJHJhdGlvKTtcbiAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZVgoJHJhdGlvKTtcbiAgICAvLyBJRTkgb25seVxuICAgIHRyYW5zZm9ybTogc2NhbGVYKCRyYXRpbyk7XG59XG5cbkBtaXhpbiBzY2FsZVkoJHJhdGlvKSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWSgkcmF0aW8pO1xuICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlWSgkcmF0aW8pO1xuICAgIC8vIElFOSBvbmx5XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoJHJhdGlvKTtcbn1cblxuQG1peGluIHNrZXcoJHgsICR5KSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXcoJHgsICR5KTtcbiAgICAtbXMtdHJhbnNmb3JtOiBza2V3WCgkeCkgc2tld1koJHkpO1xuICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzQ4ODU7IElFOStcbiAgICB0cmFuc2Zvcm06IHNrZXcoJHgsICR5KTtcbn1cblxuQG1peGluIHRyYW5zbGF0ZSgkeCwgJHkpIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKCR4LCAkeSk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKCR4LCAkeSk7XG4gICAgLy8gSUU5IG9ubHlcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgkeCwgJHkpO1xufVxuXG5AbWl4aW4gdHJhbnNsYXRlM2QoJHgsICR5LCAkeikge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgkeCwgJHksICR6KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCR4LCAkeSwgJHopO1xufVxuXG5AbWl4aW4gcm90YXRlKCRkZWdyZWVzKSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgkZGVncmVlcyk7XG4gICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTtcbiAgICAvLyBJRTkgb25seVxuICAgIHRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTtcbn1cblxuQG1peGluIHJvdGF0ZVgoJGRlZ3JlZXMpIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWCgkZGVncmVlcyk7XG4gICAgLW1zLXRyYW5zZm9ybTogcm90YXRlWCgkZGVncmVlcyk7XG4gICAgLy8gSUU5IG9ubHlcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoJGRlZ3JlZXMpO1xufVxuXG5AbWl4aW4gcm90YXRlWSgkZGVncmVlcykge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVZKCRkZWdyZWVzKTtcbiAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGVZKCRkZWdyZWVzKTtcbiAgICAvLyBJRTkgb25seVxuICAgIHRyYW5zZm9ybTogcm90YXRlWSgkZGVncmVlcyk7XG59XG5cbkBtaXhpbiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIHtcbiAgICAtd2Via2l0LXBlcnNwZWN0aXZlOiAkcGVyc3BlY3RpdmU7XG4gICAgLW1vei1wZXJzcGVjdGl2ZTogJHBlcnNwZWN0aXZlO1xuICAgIHBlcnNwZWN0aXZlOiAkcGVyc3BlY3RpdmU7XG59XG5cbkBtaXhpbiBwZXJzcGVjdGl2ZS1vcmlnaW4oJHBlcnNwZWN0aXZlKSB7XG4gICAgLXdlYmtpdC1wZXJzcGVjdGl2ZS1vcmlnaW46ICRwZXJzcGVjdGl2ZTtcbiAgICAtbW96LXBlcnNwZWN0aXZlLW9yaWdpbjogJHBlcnNwZWN0aXZlO1xuICAgIHBlcnNwZWN0aXZlLW9yaWdpbjogJHBlcnNwZWN0aXZlO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkb3JpZ2luKSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAkb3JpZ2luO1xuICAgIC1tb3otdHJhbnNmb3JtLW9yaWdpbjogJG9yaWdpbjtcbiAgICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogJG9yaWdpbjtcbiAgICAvLyBJRTkgb25seVxuICAgIHRyYW5zZm9ybS1vcmlnaW46ICRvcmlnaW47XG59XG5cbi8vIEFuaW1hdGlvbnNcbkBtaXhpbiBhbmltYXRpb24oJGFuaW1hdGlvbikge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uOiAkYW5pbWF0aW9uO1xuICAgIGFuaW1hdGlvbjogJGFuaW1hdGlvbjtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1uYW1lKCRuYW1lKSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogJG5hbWU7XG4gICAgYW5pbWF0aW9uLW5hbWU6ICRuYW1lO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWR1cmF0aW9uKCRkdXJhdGlvbikge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG59XG5cbkBtaXhpbiBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKCR0aW1pbmctZnVuY3Rpb24pIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICR0aW1pbmctZnVuY3Rpb247XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogJHRpbWluZy1mdW5jdGlvbjtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kZWxheSgkZGVsYXkpIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogJGRlbGF5O1xuICAgIGFuaW1hdGlvbi1kZWxheTogJGRlbGF5O1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCgkaXRlcmF0aW9uLWNvdW50KSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAkaXRlcmF0aW9uLWNvdW50O1xuICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6ICRpdGVyYXRpb24tY291bnQ7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZGlyZWN0aW9uKCRkaXJlY3Rpb24pIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG4gICAgYW5pbWF0aW9uLWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbn0iLCJcblxuXG4vLyBUcnlpbmcgdG8gbWFrZSBpdCB3b3JrIHdpdGggdGhlIGJyZWFrcG9pbnQgdGhpbmcuLi5cbkBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtMSkge1xuICAgIC5oaWRkZW4tbW9iaWxlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNDgwKSB7XG4gICAgLmhpZGRlbi1tb2JpbGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgLmhpZGRlbi10d2VlbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuICAgIC5oaWRkZW4tdHdlZW4ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgLmhpZGRlbi10YWJsZXQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS05NjApIHtcbiAgICAuaGlkZGVuLXRhYmxldCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICAuaGlkZGVuLWRlc2t0b3Age1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS0xMjAwKSB7XG4gICAgLmhpZGRlbi1kZXNrdG9wIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgIC5oaWRkZW4tZGVza3RvcC1sIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG4iLCIvLyAjIFNjYWZmb2xkaW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW1wb3J0IHVybChcImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1PcGVuK1NhbnM6NDAwLDYwMCw4MDBcIik7XG5cbi8vICMjIyMgUmVzZXQgdGhlIGJveC1zaXppbmdcbi5mcm9udC1lbmQge1xuICAgICoge1xuICAgICAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuICAgIH1cbiAgICAqOmJlZm9yZSxcbiAgICAqOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbiAgICB9XG4gICAgYTpob3ZlciwgYTphY3RpdmUsIGE6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiAwO1xuICAgIH1cbn1cblxuI2NhbnZhcyAqIHtcbiAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xufVxuXG5cbi8vICMgRWxlbWVudHNcbmh0bWwge1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgICAvLyBAaW5jbHVkZSBhZGp1c3QtbGVhZGluZy10bygyKTtcbiAgICBjb2xvcjogJGJyYW5kLXByaW1hcnk7XG59XG5cbmJvZHkge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmFzZTtcbiAgICBsaW5lLWhlaWdodDogJGJhc2UtbGluZS1oZWlnaHQ7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0LW5vcm1hbDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3V0ZXJiYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgLmZyb250LWVuZCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICB9XG4gICAgLy9PdmVycmlkZXMgZm9yIHRoZSBmb250IHJlbmRlcmluZyBpbiB0aGUgd3lzaXd5ZyBlZGl0b3JcbiAgICAmLm1jZS1jb250ZW50LWJvZHkge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmFzZTtcbiAgICB9XG59XG5cbmltZyB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbmJsb2NrcXVvdGUge1xuICAgIC5xdW90ZS13cmFwcGVkIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgICBmb250LXNpemU6IGVtKDE4cHgpO1xuICAgICAgICBmb250LXdlaWdodDogJHdlaWdodC1ub3JtYWw7XG4gICAgICAgICY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNjBweDsvL2VtKDYwcHgpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0LWJvbGQ7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiA5MHB4Oy8vZW0oOTBweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIuKAnFwiO1xuICAgICAgICAgICAgbGVmdDogLTI1cHg7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMTBweDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAtNDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCLigJxcIjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGJvdHRvbTogLTM1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDBweDtcbiAgICAgICAgICAgICAgICBib3R0b206IC01MnB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiBlbSgyNnB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNpdGUge1xuICAgICAgICBmb250LXNpemU6IGVtKDE2cHgpO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0LWJvbGQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgICAgICBmb250LXNpemU6IGVtKDE4cHgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi8vIEtleSBsYXlvdXQgY2xhc3Nlc1xuLnBhZ2UtY29udGVudCB7XG4gICAgbWF4LXdpZHRoOiAkY29udGFpbmVyLXdpZHRoO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgxMjQwcHgsIFwibm8tcXVlcnlcIiB0cnVlKSB7XG4gICAgICAgIHdpZHRoOiAkY29udGFpbmVyLXdpZHRoO1xuICAgIH1cbn1cblxuLmJhY2tncm91bmQtd3JhcHBlciB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgbWF4LXdpZHRoOiAkY29udGFpbmVyLXdpZHRoICsgNDA7IC8vICsgNDAgYmVjYXVzZSB3ZSBoYXZlIHRvIHdyYXAgbWFyZ2lucyB0b28gYW5kIGVuc3VyZSB0aGV5IGRvbid0IGdvIG91dCB0aGUgcGFnZS4uLlxuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuOyAvLyBUaGlzIGlzIG5vdCBleGFjdGx5IGEgbG92ZWx5IGZpeC4uLiBiYXNpY2FsbHksIHRoZSBkcm9wZG93biBwbHVnaW4gZmxvd3Mgb3V0IG9mIHRoZSBwYWdlIG9uIHRhYmxldC4uLiBzby4uLiB0aGlzIGlzIHRoZSBmaXggdG8gcHJldmVudCBob3Jpem9udGFsIHNjcm9sbGluZyBpbiBhbnkgc2l0dWF0aW9uLi4uXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vLyBCYXNpY2FsbHksIHdlIHdhbnQgdGhlIGVsZW1lbnQgdG8gYmUgaW5saW5lIHdpdGggYWxsIG90aGVyIG1hcmdpbm5lZCBlbGVtZW50cyBhdCBkZXNrdG9wLCB0aGVuIGlmIGl0IGhhcyBmaWxsIHdlJ2xsIG1ha2UgaXQgZmlsbCBiZWxvdyBkZXNrdG9wLi4uXG4ubWFyZ2lubmVkIHtcbiAgICAvLyBGb3IgbW9iaWxlLCBsZXQncyBhZGQgaW4gb3VyIG1hcmdpbnMgb24gYmxvY2tzXG4gICAgJiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkc3BhY2luZy1tb2JpbGU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHNwYWNpbmctbW9iaWxlO1xuICAgIH1cblxuICAgIC8vIDc2OCB0byAxMjAwLi4uIGdldCBlbGVtZW50cyB0byBiZSBmdWxsIChmbG9hdHMgYW5kIGFkZHMgaW4gbWFyZ2lucywgbWFrZXMgY29sdW1uaW5nIHdvcmsgbmljZWx5KVxuICAgICYge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3BhbihmdWxsKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAmLmZpbGwge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgIC8vIEJleW9uZCAxMjAwLCBtYWtlIGZpbGwgaXRlbXMgbGluZSB1cCB3aXRoIG90aGVyIGl0ZW1zXG4gICAgJi5maWxsIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS0xMjAwKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuKGZ1bGwpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBBbGwgYmxvY2tzLi4uIHdlJ3JlIGp1c3QgYXNzdW1pbmcgdGhleSdsbCBhbGwgaGF2ZSBzcGFjaW5nIG9uIHRoZSBib3R0b20sIGJ1dCBjYW4gb3ZlcnJpZGUgd2hlbiBlYXN5IGVub3VnaC4uLlxuLmJsb2NrIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nICogMjtcbiAgICB9XG59XG5cblxuLy8gIyMjIyBIaWRlcnNcblxuLy8gT25seSBkaXNwbGF5IGNvbnRlbnQgdG8gc2NyZWVuIHJlYWRlcnNcbi5zci1vbmx5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gICAgYm9yZGVyOiAwO1xufVxuXG4vLyAjIFVzZWZ1bCBnbG9iYWwgY2xhc3Nlc1xudmlkZW8ge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbnNwYW4uc2t5cGVfcG5oX2NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5zcGFuLnNreXBlX3BuaF9wcmludF9jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xufVxuXG4udXBwZXJjYXNlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4udGFibGVmeSB7XG4gICAgQGluY2x1ZGUgdGFibGVmeSgpO1xufVxuXG4uYm9sZGVzdCB7XG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQtYm9sZGVzdDtcbn1cblxuLmZpbGwtd2lkdGgge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4vLyBHdXR0ZXJzIGZvciBtb2JpbGUuLi5cbi5iYWNrZ3JvdW5kZWQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgJjpiZWZvcmUsICY6YWZ0ZXIsIC5pbWFnZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUsIC5pbWFnZSB7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICAgIC8vZmlsdGVyOiBhbHBoYShvcGFjaXR5PTgwKTtcbiAgICB9XG5cbiAgICAmLmJhY2tncm91bmQtbGlnaHQ6YWZ0ZXIge1xuICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAvL0BpbmNsdWRlIG9wYWNpdHkoMC44KTtcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9iYWNrZ3JvdW5kLWxpZ2h0LnBuZyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgICB9XG5cbiAgICAvLyBJIHdhcyB0cnlpbmcgdG8gZ2V0IGl0IHdvcmtpbmcgZm9yIElFOC4uLiByZWFsbHkgaXQgc2hvdWxkIGhhdmUgYWxyZWFkeSBiZWNhdXNlIEkgd2FzIHVzaW5nIG9wYWNpdHksIGJ1dCBwc2V1ZG8gZWxlbWVudHMuLi4gc28gZWgsIEkganVzdCBzaG92ZWQgaW4gYW4gaW1hZ2UgYXMgZmFsbGJhY2sgaW5zdGVhZFxuICAgICYuYmFja2dyb3VuZC1kYXJrOmFmdGVyIHtcbiAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgICAgICAgLy9AaW5jbHVkZSBvcGFjaXR5KDAuNDUpO1xuICAgICAgICAvL2JhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTsgLyogYnJvd3NlcnMgKi9cbiAgICAgICAgLy9maWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChHcmFkaWVudFR5cGU9MCxzdGFydENvbG9yc3RyPScjNGNmZmZmZmYnLCBlbmRDb2xvcnN0cj0nIzRjZmZmZmZmJyk7IC8qIElFICovXG4gICAgICAgIC8qYmFja2dyb3VuZDpyZ2IoMjU1LDAsMCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50XFw5O1xuICAgICAgICBiYWNrZ3JvdW5kOnJnYmEoMjU1LDAsMCwwLjMpO1xuICAgICAgICBmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9IzRjRkYwMDAwLGVuZENvbG9yc3RyPSM0Y0ZGMDAwMCk7XG4gICAgICAgIHpvb206IDE7Ki9cbiAgICAgICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDUpO1xuICAgICAgICAvLy1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9IzU1MDAwMEZGLCBlbmRDb2xvcnN0cj0jNTUwMDAwRkYpXCI7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvYmFja2dyb3VuZC1kYXJrLnBuZyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC40NSk7XG4gICAgfVxuXG4gICAgJi5iYWNrZ3JvdW5kLWRhcmsge1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxufVxuXG4uY2xlYXIge1xuICAgIC8vIEF0IHRhYmxldCBhbmQgYmV5b25kLCBjbGVhcmZpeCBiZWNhdXNlIHdlIGFyZSB1c2luZyBjb2x1bW5zLi4uXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYm9yZGVyZWQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmF5LWxpZ2h0O1xufVxuXG4ubGluay1pY29ubmVkIHtcbiAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQtYm9sZDtcblxuICAgIC5pY29uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICBjb2xvcjogJGJyYW5kLXByaW1hcnk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIC5pY29uIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNwYWNpbmctYm90dG9tIHtcbiAgICBAaW5jbHVkZSBwYXJhc3BhY2U7XG59XG5cbi5icmVhZGNydW1iIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTQ4MCkge1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbn1cblxuXG4jaGVhZGluZyBvbCBsaSwgLnd5c2l3eWcgb2wgbGkge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufSIsIi8qKi9cbi8vICMgSGVhZGluZ3NcblxuLy9IaWRlIGFsbCBIMVxuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2ICwgLmgxLCAuaDIsIC5oMywgLmg0LCAuaDUsIC5oNiB7XG4gICAgY29sb3I6ICRoZWFkZXItY29sb3I7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1oZWFkaW5nO1xuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0LXRoaW47XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmcgLyAyO1xuICAgIFxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgIH1cbn1cblxuaDEsIC5oMSB7XG4gICAgZm9udC1zaXplOiBlbSgzMnB4KTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oNDVweCk7XG4gICAgfVxufVxuXG5oMiwgLmgyIHtcbiAgICBmb250LXNpemU6IGVtKDI4cHgpO1xuICAgIFxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMzVweCk7XG4gICAgfVxufVxuXG5oMywgLmgzIHtcbiAgICBmb250LXNpemU6IGVtKDI0cHgpO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcbiAgICAgICAgZm9udC1zaXplOiBlbSgzMHB4KTtcbiAgICB9XG59XG5cbmg0LCAuaDQge1xuICAgIGZvbnQtc2l6ZTogZW0oMThweCk7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuICAgICAgICBmb250LXNpemU6IGVtKDIwcHgpO1xuICAgIH1cbn1cblxuaDUsIC5oNSB7XG4gICAgZm9udC1zaXplOiBlbSgxNnB4KTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMTZweCk7XG4gICAgfVxufVxuXG5oNiwgLmg2IHtcbiAgICBmb250LXNpemU6IGVtKDE0cHgpO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcbiAgICAgICAgZm9udC1zaXplOiBlbSgxNHB4KTtcbiAgICB9XG59XG5cbmEge1xuICAgIGNvbG9yOiAkbGluay1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRsaW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gICAgJjpmb2N1cyB7XG4gICAgICAgIEBpbmNsdWRlIHRhYi1mb2N1cztcbiAgICB9XG59XG5cbnAge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgQGluY2x1ZGUgcGFyYXNwYWNlO1xuXG4gICAgYSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbn1cblxuLnN1YmJlZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLnN1YiB7XG4gICAgQGluY2x1ZGUgcGFyYXNwYWNlO1xufVxuXG4uaGlnaGxpZ2h0IHtcbiAgICBjb2xvcjogJGJyYW5kLXByaW1hcnk7XG4gICAgLmZlYXR1cmUtYmxvY2sgJiB7XG4gICAgICAgIGNvbG9yOiAkaGVhZGVyLWNvbG9yO1xuICAgIH1cbn1cblxuLmJyaWVmIHtcbiAgICBmb250LXNpemU6IGVtKDIwcHgpO1xuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0LW5vcm1hbDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMjJweCk7XG4gICAgfVxufVxuXG5iLCAuYm9sZCB7XG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQtYm9sZDtcbn0iLCIlYnV0dG9uIHtcbiAgICBwYWRkaW5nOiAwLjVlbSAxLjNlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmQtcHJpbWFyeTtcbiAgICAvL2NvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUgKiAxLjE7XG4gICAgLy9tYXJnaW46IDEwcHggMDtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKDAuM3MpO1xuICAgICY6aG92ZXIgey8vJGxlZnQ6IDAsICR0b3A6IDJweCwgJGJsdXI6IDJweCwgJHNwcmVhZDogMC4yZW0sICRjb2xvcjogIzAwMCwgJGluc2V0OiBcIlwiXG4gICAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3coMCwgMCwgM3B4LCAwcHgsIHJnYmEoMCwgMCwgMCwgMC41KSwgaW5zZXQpO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICAgIC5uby1jc3N0cmFuc2Zvcm1zICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRicmFuZC1wcmltYXJ5LCAxNSUpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHBhcmFzcGFjZTtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG4uYnRuIHtcbiAgICBAZXh0ZW5kICVidXR0b247XG5cbiAgICAmLmJ0bi1wcmltYXJ5IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLXByaW1hcnk7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuXG4gICAgJi5idG4tZ3JheSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRncmF5LWxpZ2h0O1xuICAgICAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gICAgfVxuXG4gICAgJi5idG4tYmx1ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR2OS1jb2xvcjtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG5cbiAgICAmLmJ0bi1ncmF5LWRhcmsge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1saWdodGlzaDtcbiAgICAgICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICAgIH1cblxuICAgICYuYnRuLnByaW1hcnkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1saWdodGlzaDtcbiAgICAgICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICB9XG5cbiAgICAmLmJ0bi1hcnJvd2VkIHtcbiAgICAgICAgQGV4dGVuZCAuaWNvbi1uZXh0O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4O1xuICAgIH1cblxuICAgICYuYnRuLWNsb3VkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNkYWJmZjtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cblxuICAgICYuYnRuLXYxMSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5MzRhNDk7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG5cbiAgICAmLmJ0bi1jbG91ZCB7XG4gICAgICAgIEBleHRlbmQgLmljb24tbmV4dDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNDBweDtcbiAgICB9XG5cbiAgICAuaWNvbi1uZXh0IHtcbiAgICAgICAgZm9udC1zaXplOiA0MnB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtYXJnaW4tdG9wOiAtOHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMTBweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNnB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogN3B4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxufSIsIlxuXG51bCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgIGxpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwi4oCiXCI7XG4gICAgICAgICAgICBjb2xvcjogJGJyYW5kLXByaW1hcnk7IC8qIG9yIHdoYXRldmVyIGNvbG9yIHlvdSBwcmVmZXIgKi9cbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAvL21hcmdpbi1yaWdodDogJHNwYWNpbmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm5vLWJ1bGxldHMge1xuICAgICAgICBAaW5jbHVkZSBuby1idWxsZXRzO1xuICAgIH1cblxuICAgICYuaW5saW5lIHtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgICYuYXJyb3dlZCB7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIEBleHRlbmQgLmljb24tbmV4dDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNDBweDtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGN1c3RvbS1pY29uO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMzVweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtOHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5vbCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgIGxpIHtcbiAgICAgICAgY291bnRlci1pbmNyZW1lbnQ6IHN0ZXAtY291bnRlcjtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBjb3VudGVyKHN0ZXAtY291bnRlcik7XG4gICAgICAgICAgICBjb2xvcjogJGJyYW5kLXByaW1hcnk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nO1xuICAgICAgICAgICAgd2lkdGg6IDdweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKi5zdHlsZWQtc2VsZWN0IHNlbGVjdCB7XG4gICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgIHdpZHRoOiAyNjhweDtcbiAgIHBhZGRpbmc6IDVweDtcbiAgIGZvbnQtc2l6ZTogMTZweDtcbiAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgYm9yZGVyOiAwO1xuICAgYm9yZGVyLXJhZGl1czogMDtcbiAgIGhlaWdodDogMzRweDtcbiAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLnN0eWxlZC1zZWxlY3Qge1xuICAgd2lkdGg6IDI0MHB4O1xuICAgaGVpZ2h0OiAzNHB4O1xuICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgIGJhY2tncm91bmQ6IHVybChuZXdfYXJyb3cucG5nKSBuby1yZXBlYXQgcmlnaHQgI2RkZDtcbiAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG59Ki9cblxuaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAuNWVtIDA7XG4gICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIoKTtcbn1cblxuaW5wdXRbdHlwZT1cInRleHRcIl0sIHNlbGVjdCB7XG4gICAgaGVpZ2h0OiA0MHB4OyAvLyBXYXMgbWluLWhlaWdodCwgYnV0IElFOCBkZWNpZGVzIHRvIGlnbm9yZSBib3ggc2l6aW5nIGlmIHlvdSBzZXQgbWluLWhlaWdodD8gV3RmIElFLi4uIFd0Zi4uLlxufVxuXG50ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiA5ZW07XG59XG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSwgaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbn1cblxuc2VsZWN0IHtcbiAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA3cHg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xufVxuXG4uc3R5bGVkLXNlbGVjdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgdG9wOiAzMHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogLTI1cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC00cHg7XG4gICAgICAgIGJvcmRlcjogc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxMzYsIDE4MywgMjEzLCAwKTtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHNlbGVjdC1hcnJvdy1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiA4cHg7XG4gICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA0cHg7XG4gICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogNHB4O1xuICAgIH1cblxuICAgIHNlbGVjdCB7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnN0eWxlZC11cGxvYWQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIC5idG4ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApO1xuICAgIH1cbn1cblxuXG4uaW5wdXQtaW5saW5lIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAvL0BpbmNsdWRlIHBhcmFzcGFjZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS00ODApIHtcbiAgICAgICAgQGluY2x1ZGUgYmxlZWQoZ3V0dGVyKDEyKSk7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgIH1cblxuICAgID4gZGl2IHtcbiAgICAgICAgQGluY2x1ZGUgc3BhbigxMik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgICAgICAgaW5wdXQsIHNlbGVjdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuKDEyIG5lc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS00ODApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4oNik7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZm9ybS1ibG9jayB7XG4gICAgLmlucHV0LWlubGluZSA+IGRpdiB7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4oMTIgbmVzdCk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgIH1cblxuICAgIC51bWJyYWNvLWZvcm1zLWZpZWxkIHtcbiAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgfVxuXG4gICAgI2NvbnRvdXIgaW5wdXQudGV4dCwgI2NvbnRvdXIgaW5wdXQudGl0bGUsICNjb250b3VyIHRleHRhcmVhLCAjY29udG91ciBzZWxlY3QsIC5jb250b3VyIGlucHV0LnRleHQsIC5jb250b3VyIGlucHV0LnRpdGxlLCAuY29udG91ciB0ZXh0YXJlYSwgLmNvbnRvdXIgc2VsZWN0IHtcbiAgICAgICAgYm9yZGVyOiAwcHg7XG4gICAgfVxuXG4gICAgI2NvbnRvdXIgZmllbGRzZXQsIC5jb250b3VyIGZpZWxkc2V0IHtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICB9XG5cbiAgICAudHdvLWNvbC1mb3JtIHtcbiAgICAgICAgaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAuaW5wdXQtaW5saW5lIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAudW1icmFjby1mb3Jtcy1maWVsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuXG4gICAgICAgICAgICAuZmllbGQtdmFsaWRhdGlvbi1lcnJvciB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNDgwKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbig2KTtcblxuICAgICAgICAgICAgICAgIGRpdiA+IC50ZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYudGl0bGVhbmRkZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4oMTIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC50ZXh0ZmllbGQge1xuICAgICAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnRleHRhcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4oMTIpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuICAgICAgICAgICAgdGV4dGFyZWEge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS00ODApIHtcbiAgICAgICAgICAgIC5pbnB1dC1pbmxpbmUge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY2hlY2tib3gge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4oMTIpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgICAgICAgICAgZGl2IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgICAgICAgICAgICAgbWluLWhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC50ZXh0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5kcm9wZG93bmxpc3Qge1xuICAgICAgICAgICAgICAgICYucGxhdGZvcm0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBzcGFuKDEyKTtcblxuICAgICAgICAgICAgICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbig2IG5lc3QpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc2VsZWN0IHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuZmlsZXVwbG9hZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzcGFuKDEyKTtcblxuICAgICAgICAgICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC50ZXh0ZmllbGQge1xuICAgICAgICAgICAgICAgICYuc2VyaWFsbm8ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBzcGFuKDEyKTtcblxuICAgICAgICAgICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBzcGFuKDYgbmVzdCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zdXBwb3J0LXJlcXVlc3Qge1xuICAgIC51bWJyYWNvLWZvcm1zLWZpZWxkIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS00ODApIHtcbiAgICAgICAgICAgICYudGl0bGUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4oMTIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnRpdGxlIHtcbiAgICAgICAgICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBzcGFuKDYgbmVzdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4udHJpYWx2ZXJzaW9uZG93bmxvYWQge1xuICAgIC5idG4uYnRuLnByaW1hcnkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYnJhbmQtcHJpbWFyeTtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG59XG5cblxuLnRyaWFsdmVyc2lvbmRvd25sb2FkIC5jb250b3VyTmF2aWdhdGlvbiAuY29sLW1kLTEyOjphZnRlciB7XG4gICAgbWFyZ2luLWxlZnQ6IDkwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMzBweDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogODBweDtcbiAgICBoZWlnaHQ6IDEwMHB4O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltYWdlcy90cmlhbC12ZXJzaW9uLWRvd25sb2FkLXNtYWxsLnBuZ1wiKTtcbn1cblxuLmN1dHJpdGV0cmlhbHZlcnNpb25kb3dubG9hZCB7XG4gICAgLmJ0bi5idG4ucHJpbWFyeSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR2OS1jb2xvcjtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG59XG4iLCJAaW1wb3J0IFwibGF5b3V0LnNjc3NcIjtcbkBpbXBvcnQgXCJoZWFkZXIuc2Nzc1wiO1xuQGltcG9ydCBcImZvb3Rlci5zY3NzXCI7IiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vKiBIRUFERVIgKi8vXG5cbi8vICMjIyMgUGFnZSBhbmQgY29udGFpbmVyIGxheW91dCBwcm9wZXJ0aWVzXG5odG1sLCBib2R5IHsgLy8gU3RvcCBzY3JvbGxpbmcgd2hlbiBtb2JpbGUgbWVudSBhY3RpdmUuLi5cbiAgICB3aWR0aDogMTAwJTsgLy8gVGhpcyBpcyBuZWVkZWQgdG8gZ2V0IG92ZXJmbG93IGhpZGRlbiB3b3JraW5nIGZvciBtb2JpbGUgZGV2aWNlcy4uLiBob3dldmVyLCBpZiBJIGNoYW5nZSB0aGlzIGluIENTUywgc29tZSBkZXZpY2VzIGhpZGUgcmFuZG9tIGJpdHMgb2YgY29udGVudCwgdW50aWwgeW91IHJvdGF0ZSB0aGUgZGV2aWNlIG9yIHNvbWV0aGluZywgd2VpcmQhXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgICYubWVudS1kb3duIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmhlYWRlciB7XG4gICAgLy9wYWRkaW5nOiAxMHB4IDEwcHggMCAxMHB4O1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLmNvbnRhaW4ge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyLXJlbmRlcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuaGVhZGVyLW1haW4taW5mbyB7XG4gICAgICAgIEBpbmNsdWRlIHRhYmxlZnk7XG4gICAgICAgIHBhZGRpbmc6IDIwcHggMDtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuICAgICAgICAgICAgcGFkZGluZzogJHNwYWNpbmcgMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYgPiAqIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAubG9nbyB7XG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzMHB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtOTYwKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wb2ludHMsIC5jb250YWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucG9pbnRzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRhY3Qge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmhlYWRlci1tYWluLW5hdiB7XG4gICAgICAgIHotaW5kZXg6IDk5OTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuXG4gICAgICAgICAgICAuc2YtbWVudSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdGFibGVmeSgwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS0xMjAwKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuKGZ1bGwpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8qIEZPT1RFUiAqLy9cbmZvb3RlciB7XG4gICAgQGluY2x1ZGUgc3BhbihmdWxsIG5lc3QpO1xuXG4gICAgLmNvbnRhaW4ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmc6IDQwcHggMDtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA0MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLy9AaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyLXJlbmRlcjtcbiAgICAgICAgLy99XG5cbiAgICAgICAgLyouZm9vdGVyLW5hdiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgIH0qL1xuICAgIH1cblxuICAgIC5mb290ZXItbWFpbi1zaXRlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgQGluY2x1ZGUgc3BhbihmdWxsIG5lc3QpO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtOTYwKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuKDkgbmVzdCk7XG4gICAgICAgICAgICAvL0BpbmNsdWRlIGJsZWVkKGd1dHRlcigxMikpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvb3Rlci1saW5rcyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuKGZ1bGwpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4oMyBvZiA5KTtcbiAgICAgICAgICAgICAgICAvL0BpbmNsdWRlIGdhbGxlcnkoMyBvZiA5KTsgXG4gICAgICAgICAgICAgICAgLy9AaW5jbHVkZSBibGVlZChndXR0ZXIoOSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIC8vQGluY2x1ZGUgbGFzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmxpc3Qge1xuICAgICAgICAgICAgICAgIC5pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gICAgICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmljb24taG9sZGVyIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI1cHg7XG4gICAgICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjVweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mb290ZXItbWFpbi1mb290bm90ZSB7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4oZnVsbCBuZXN0KTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS05NjApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4oMyk7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9vdGVyLXNvY2lhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuKGZ1bGwpO1xuICAgICAgICAgICAgLmhlYWQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiBlbSgyMHB4KTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQtYm9sZDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbig4KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS05NjApIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzcGFuKGZ1bGwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmJlbG93IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS05NjApIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuYWJvdmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTk2MCkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS05NjApIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMHB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDVweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDI1cHg7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTk2MCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyAgICBcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5sYWJlbCwgLmljb24ge1xuICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmZvb3Rlci1pbmZvIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4oZnVsbCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbig0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS05NjApIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzcGFuKGZ1bGwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuZm9vdGVyLWxvZ28ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcblxuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vICMjIyMgSGVhZGVyIHN0eWxlcyB0aGF0IGFyZW4ndCBsYXlvdXQgcmVsYXRlZCAodGhlc2UgYXJlIHN0b3JlZCBpbiBfbGF5b3V0LnNjc3MpXG5oZWFkZXIge1xuICAgIC5oZWFkZXItbWFpbi1uYXYge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1saWdodDtcbiAgICB9XG5cbiAgICAucG9pbnRzIHtcbiAgICAgICAgdWwge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQtYm9sZGVzdDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaDQgeyAvLyBRdWljayBmaXgsIGZvbnQgc2l6ZSB3YXMgdG9vIGJpZyBmb3IgdGFibGV0Li4uXG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS05NjApIHtcblx0XHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHR9XG4gICAgfVxufSIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyAjIyMjIEZvb3RlciBzdHlsZXMgdGhhdCBhcmVuJ3QgbGF5b3V0IHJlbGF0ZWQgKHRoZXNlIGFyZSBzdG9yZWQgaW4gX2xheW91dC5zY3NzKVxuZm9vdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1saWdodGVyO1xuXG5cdGEge1xuXHRcdGNvbG9yOiAkdGV4dC1jb2xvcjtcblx0XHRmb250LXdlaWdodDogJHdlaWdodC1ib2xkO1xuXHRcdCY6aG92ZXIsICY6YWN0aXZlLCAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIH1cblx0fVxuXG5cdC5mb290ZXItbWFpbi1zaXRlIHtcblxuICAgICAgICAuZm9vdGVyLWxpbmtzIHtcblx0XHQgICAgLmhlYWQge1xuXHRcdCAgICAgICAgZm9udC1zaXplOiBlbSgyMHB4KTtcblx0XHQgICAgICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0LWJvbGQ7XG5cdFx0XHRcdGNvbG9yOiAkdGV4dC1jb2xvcjtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0XHQgICAgfVxuXG5cdFx0ICAgIC5saXN0IHtcblx0XHRcdFx0QGluY2x1ZGUgbm8tYnVsbGV0cztcblx0XHQgICAgfVxuXHRcdH1cblx0fVxuXG5cdC5mb290ZXItbWFpbi1mb290bm90ZSB7XG5cdFx0LmZvb3Rlci1zb2NpYWwge1xuXHRcdFx0Lmxpc3Qge1xuXHRcdFx0XHRAaW5jbHVkZSBuby1idWxsZXRzO1xuXG5cdFx0XHRcdC5pY29uIHtcblx0XHRcdFx0XHRmb250LXNpemU6IDI0cHg7XG5cblx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJi5pY29uLXR3aXR0ZXIge1xuXHRcdFx0XHRcdFx0Y29sb3I6ICRzb2NpYWwtdHdpdHRlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYuaWNvbi1mYWNlYm9vayB7XG5cdFx0XHRcdFx0XHRjb2xvcjogJHNvY2lhbC1mYWNlYm9vaztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYuaWNvbi15b3V0dWJlIHtcblx0XHRcdFx0XHRcdGNvbG9yOiAkc29jaWFsLXlvdXR1YmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC5sYWJlbCB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXG5cdFx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG4gICAgICAgIC5mb290ZXItY29weXJpZ2h0LCAuZm9vdGVyLXRlcm1zIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogZW0oMTJweCk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHdlaWdodC1ib2xkO1xuICAgICAgICB9XG5cdH1cbn0iLCIvLyAjIFBsYWNlaG9sZGVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG5cbiVoaWRlLXRleHQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gICAgYm9yZGVyOiAwO1xufVxuXG4lcmVhZC1tb3JlIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR3aGl0ZTtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcXGU4MDNcIjtcbiAgICAgICAgLy9mb250LWZhbWlseTogJGZvbnQtaWNvbnM7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIH1cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJyYW5kLXByaW1hcnk7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuICAgIHNwYW4ge1xuICAgICAgICBAZXh0ZW5kICVzci1vbmx5O1xuICAgIH1cbn1cblxuJXNyLW9ubHkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBib3JkZXI6IDA7XG59XG5cbiVyZW1vdmUtYmVmb3JlIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufSIsIi8vICMgSW1hZ2VzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyAjIEltYWdlIE1peGluc1xuXG4vLyAjIyMjIFJlc3BvbnNpdmUgaW1hZ2Vcbi8vXG4vLyBLZWVwIGltYWdlcyBmcm9tIHNjYWxpbmcgYmV5b25kIHRoZSB3aWR0aCBvZiB0aGVpciBwYXJlbnRzLlxuXG5AbWl4aW4gaW1nLXJlc3BvbnNpdmUoJGRpc3BsYXk6IGJsb2NrKSB7XG4gICAgZGlzcGxheTogJGRpc3BsYXk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIC8vIFBhcnQgMTogU2V0IGEgbWF4aW11bSByZWxhdGl2ZSB0byB0aGUgcGFyZW50XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC8vIFBhcnQgMjogU2NhbGUgdGhlIGhlaWdodCBhY2NvcmRpbmcgdG8gdGhlIHdpZHRoLCBvdGhlcndpc2UgeW91IGdldCBzdHJldGNoaW5nXG59XG5cbi8vICMjIyMgUGVyZmVjdCBjaXJjbGVcbi8vIEluY2x1ZGVzIFBJRSBmaXggZm9yIElFOFxuQG1peGluIGltZy1jaXJjbGUge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAvLyAubHQtMWU5ICYge1xuICAgIC8vICAgICBAaW5jbHVkZSBwaWU7XG4gICAgLy8gfVxufSIsIi5mZWF0dXJlcy1ibG9jayB7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNDgwKSB7XG5cdFx0QGluY2x1ZGUgbmVzdDtcblx0fVxuXG5cdC5mZWF0dXJlLWJsb2NrIHtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNDgwKSB7XG5cdFx0XHRAaW5jbHVkZSBzcGFuKDEwKTtcblx0XHRcdEBpbmNsdWRlIHB1c2goMSBvciAxMik7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjkpIHtcblx0XHRcdEBpbmNsdWRlIHNwYW4oNik7XG5cdFx0fVxuXHR9XG59IiwiLmZlYXR1cmUtYmxvY2sge1xuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgQGluY2x1ZGUgY2VudHJlZC1tb2JpbGU7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTQ4MCkge1xuICAgICAgICBAaW5jbHVkZSB0YWJsZWZ5KCRzcGFjaW5nLW1vYmlsZSwgdG9wKTtcbiAgICB9XG5cbiAgICAuaW1hZ2Uge1xuICAgICAgICBtaW4td2lkdGg6IDExMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNDgwKSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ib2R5IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHdlaWdodC1ib2xkO1xuICAgICAgICB9XG4gICAgfVxufSIsIi5yZWxhdGVkLWxpbmtzLWJsb2NrIHtcblx0Y2xlYXI6IGJvdGg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0QGluY2x1ZGUgc3BhbihmdWxsIG5lc3QpO1xuXHRtYXJnaW4tbGVmdDogMDtcblx0dWwge1xuXHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cdFx0Zm9udC1zaXplOiBlbSgxNnB4KTtcblx0XHRsaSB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRtYXJnaW4tbGVmdDogMTBweDtcblx0XHR9XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS00ODApIHtcblx0XHRcdGxpIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS00ODApIHtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdEBpbmNsdWRlIHRhYmxlZnkoNXB4LCB0b3AsIHRydWUpO1xuXHR9XG59IiwiQGltcG9ydCBcImhlbHBlcnMvTmF2aWdhdGlvbkJsb2NrXCI7XG5cbi5zdWItbmF2aWdhdGlvbi1ibG9jayB7XG4gICAgQGV4dGVuZCAlbmF2aWdhdGlvbi1ibG9jaztcbn0iLCIlbmF2aWdhdGlvbi1ibG9jayB7XG5cdG1hcmdpbi1ib3R0b206MjBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1saWdodGVzdDtcbiAgICAuYmxvY2stdGl0bGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1wcmltYXJ5O1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBhIHtcbiAgICAgICAgXHRjb2xvcjp3aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB1bCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgQGluY2x1ZGUgbm8tYnVsbGV0cztcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRncmF5LWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiLmhlYWRpbmctYmxvY2sge1xuXHRAaW5jbHVkZSBjZW50cmVkLW1vYmlsZTtcblx0Ly9wYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdC8vcGFkZGluZy1yaWdodDogMTBweDtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuXHRcdC8vQGluY2x1ZGUgbmVzdDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdEBpbmNsdWRlIHRhYmxlZnkoMTBweCwgdG9wLCB0cnVlKTtcblx0XHR3aWR0aDogYXV0bzsgLy8gRml4ZWQgYSBidWcgdGhhdCBqdXN0IGNhbWUgb3V0IG9mIG5vd2hlcmU/IHdlaXJkLi4uXG5cdH1cblxuXHQudG9nZ2xlLWhpZGRlbiB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0fVxuXG5cdC5oaWRkZW4tY29udGVudCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC5wcm9tby10ZXh0IHtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHBhZGRpbmctdG9wOiAxMHB4O1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG5cdFx0XHRmb250LXNpemU6IGVtKDI0cHgpO1xuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0XHRsaW5lLWhlaWdodDogMWVtO1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0d2lkdGg6IDcwJTtcblx0XHR9XG5cdH1cblxuICAgIC5ib2R5IHtcbiAgICBcdHdpZHRoOiAxMDAlO1xuXG4gICAgXHRAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuXHRcdFx0Ly9AaW5jbHVkZSBzcGFuKDcpO1xuXHRcdH1cblxuXHRcdHAge1xuXHRcdFx0Zm9udC1zaXplOiBlbSgxOHB4KTtcblxuXHRcdCAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuXHRcdCAgICAgICAgZm9udC1zaXplOiBlbSgyMHB4KTtcblx0XHQgICAgfVxuXHRcdH1cbiAgICB9XG5cbiAgICAuaW1hZ2Uge1xuICAgIFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcblx0XHRcdC8vQGluY2x1ZGUgc3Bhbig1KTtcblx0XHRcdG1hcmdpbi10b3A6IDcwcHg7XG4gICAgXHRcdG1pbi13aWR0aDogMzAwcHg7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjkpIHtcblx0XHRcdC8vQGluY2x1ZGUgc3Bhbig1KTtcbiAgICBcdFx0bWluLXdpZHRoOiA0OTBweDtcblx0XHR9XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTk2MCkge1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHR9XG5cbiAgICBcdGltZywgb2JqZWN0IHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG4gICAgXHR9XG5cbiAgICBcdGltZyB7XG5cdFx0XHRtYXJnaW4tdG9wOiAkc3BhY2luZztcbiAgICBcdH1cbiAgICB9XG5cbiAgICAuaWNvbnMge1xuICAgIFx0YSB7XG4gICAgXHRcdCY6Zm9jdXMge1xuICAgIFx0XHRcdG91dGxpbmU6IDA7XG4gICAgXHRcdH1cbiAgICBcdH1cbiAgICBcdGxpIHtcbiAgICBcdFx0bWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgXHR9XG5cdFx0aW1nIHtcblx0XHRcdC8vd2lkdGg6IDIycHg7IC8vIFdhcyBicmVha2luZyBJRT8gd2VpcmRcblx0XHRcdGhlaWdodDogMjJweDtcblx0XHR9XG4gICAgfVxuXG4gICAgLmFjdGlvbnMsIC5tb3JlaW5mbywgLnBkZnMge1xuXHRcdG1hcmdpbi1ib3R0b206IDE1cHg7XG5cblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHR9XG4gICAgfVxuXG5cdC5saW5rLWljb25uZWQge1xuXHRcdG1hcmdpbi1yaWdodDogMjVweDtcblx0fVxuXG5cdC5idG4ge1xuXHRcdG1hcmdpbi1yaWdodDogMTBweDtcblx0fVxuXG5cdC5tb3JlaW5mbywgLnBkZnMge1xuXHRcdGEge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0d2lkdGg6IDQ4JTtcblx0XHRcdG1hcmdpbi1yaWdodDogMHB4O1xuXHRcdFx0cGFkZGluZy1yaWdodDogMjVweDtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHBhZGRpbmctbGVmdDogMzVweDtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG5cdFx0XHQuaWNvbiB7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0bGVmdDogMHB4O1xuXHRcdFx0XHR0b3A6IDBweDtcblx0XHRcdH1cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY5KSB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAwcHg7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdFx0XHRcdC5pY29uIHtcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtOTYwKSB7IFxuXHRcdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lO1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDI1cHg7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAzNXB4O1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAwcHg7XG5cdFx0XHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwcHg7XG5cdFx0XHRcdH1cblx0XHRcdFx0Lmljb24ge1xuXHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHRsZWZ0OiAwcHg7XG5cdFx0XHRcdFx0dG9wOiAtM3B4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHR9XG5cdH1cblxuXHQudmltZW8tdmlkZW8ge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRwYWRkaW5nLWJvdHRvbTogNTYuMjUlOyAvKiAxNjo5ICovXG5cdFx0cGFkZGluZy10b3A6IDI1cHg7XG5cdFx0aGVpZ2h0OiAwO1xuXHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjkpIHtcblx0XHRcdG1hcmdpbi10b3A6IDBweDtcblx0XHR9XG5cdFx0aWZyYW1lIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHR9XG5cdH1cblxufSIsIi8vIFRoaXMgaXMgYSA1MC81MCBoZWFkaW5nIHdpdGggbm8gYnV0dG9ucyBhbG9uZyB0aGUgYm90dG9tLi4uXG4uaGVhZGluZ2FsdC1ibG9jayB7XG5cdEBpbmNsdWRlIGNlbnRyZWQtbW9iaWxlO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTk2MCkge1xuXHRcdEBpbmNsdWRlIG5lc3Q7XG5cdH1cblxuXHQmLmJsb2NrIHtcblx0XHRtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1tb2JpbGU7XG5cdH1cblxuICAgIC5ib2R5IHtcbiAgICBcdG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuXG4gICAgXHRAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTk2MCkge1xuXHRcdFx0QGluY2x1ZGUgc3Bhbig2KTtcblx0XHR9XG5cblx0XHRwIHtcblx0XHRcdGZvbnQtc2l6ZTogZW0oMThweCk7XG5cblx0XHQgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcblx0XHQgICAgICAgIGZvbnQtc2l6ZTogZW0oMjBweCk7XG5cdFx0ICAgIH1cblx0XHR9XG4gICAgfVxuXG4gICAgLmltYWdlIHtcblx0XHRtYXJnaW4tdG9wOiAtMzBweDtcblxuICAgIFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS05NjApIHtcblx0XHRcdEBpbmNsdWRlIHNwYW4oNik7XG5cdFx0fVxuXG4gICAgXHRpbWcge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR3aWR0aDogMTAwJTtcbiAgICBcdH1cbiAgICB9XG59IiwiLmhlYWRpbmdzb2xvLWJsb2NrIHtcblx0LnN1YiB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufSIsIi5iYW5uZXItYmxvY2sge1xuXG5cdC5iYW5uZXItYmxvY2staW5uZXIge1xuXHRcdHBhZGRpbmc6IDE1cHggJHNwYWNpbmc7XG5cdFx0Ym9yZGVyOiA0cHggc29saWQgJGdyYXktbGlnaHQ7XG4gICBcdFx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgXHRcdEBpbmNsdWRlIGNlbnRyZWQtbW9iaWxlO1xuXG4gICBcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcblx0XHRcdEBpbmNsdWRlIHRhYmxlZnkoJHNwYWNpbmctbW9iaWxlLCBtaWRkbGUsIHRydWUpO1xuICAgXHRcdH1cblx0fVxuXG5cdC5iYW5uZXItaW1hZ2Uge1xuXHRcdGltZyB7XG5cdFx0XHRtaW4td2lkdGg6IDY1cHg7XG5cdFx0fVxuXHR9XG5cblx0LmJhbm5lci1ib2R5IHtcblx0XHR3aWR0aDogMTAwJTtcblxuXHRcdHAge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXHRcdH1cblx0fVxuXG5cdC5iYW5uZXItYnV0dG9uIHtcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR9XG59IiwiLmJvZHlpbWFnZS1ibG9jayB7XG4gICAgLmJvZHkge1xuICAgICAgICBAaW5jbHVkZSBjZW50cmVkLW1vYmlsZTtcbiAgICB9XG5cbiAgICAuaW1hZ2Uge1xuICAgICAgICBAaW5jbHVkZSBjZW50cmVkLW1vYmlsZTtcbiAgICB9XG59XG5cbi5ib2R5aW1hZ2UtYmxvY2sge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgIEBpbmNsdWRlIG5lc3Q7XG4gICAgfVxuXG4gICAgLmJvZHkge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbig3IG9mIDEyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pbWFnZSB7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4oNSBvZiAxMik7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLmJvZHlpbWFnZXNwbGl0LWJsb2NrIHtcbiAgICBAaW5jbHVkZSBjZW50cmVkLW1vYmlsZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIC5ib2R5LmFib3ZlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLW1vYmlsZTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy1tb2JpbGU7XG4gICAgfVxuICAgIC5ib2R5aW1hZ2VzcGxpdC1ibG9jay1pbm5lciB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBuZXN0O1xuICAgICAgICAgICAgQGluY2x1ZGUgdGFibGVmeSgkc3BhY2luZy1tb2JpbGUsIGJvdHRvbSwgdHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAuYm9keSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzcGFjaW5nLW1vYmlsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHNwYW4oNyk7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmltYWdlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHNwYW4oNSk7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIi5pbWFnZXF1b3RlLWJsb2NrIHtcblx0bWFyZ2luLWJvdHRvbTogMDtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuXHRcdG1hcmdpbi1ib3R0b206ICRzcGFjaW5nICogMiAhaW1wb3J0YW50O1xuXHR9XG5cdFxuXHQuaW1hZ2Uge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG5cdFx0XHRAaW5jbHVkZSBzcGFuKDUpO1xuXHRcdFx0bWFyZ2luLXRvcDogNDBweDtcblx0XHR9XG5cdH1cblxuXHQucXVvdGUge1xuXHRcdEBpbmNsdWRlIGNlbnRyZWQtbW9iaWxlO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcblx0XHRcdEBpbmNsdWRlIHNwYW4oNik7XG5cdFx0XHRAaW5jbHVkZSBwdXNoKDEpO1xuXHRcdH1cblxuXHRcdGJsb2NrcXVvdGUge1xuXHRcdH1cblx0fVxufSIsIkBpbXBvcnQgXCJoZWxwZXJzL2Jvb3RzdHJhcCBzYXNzIGFuZCBtaXhpbnMvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9ib290c3RyYXAgc2FzcyBhbmQgbWl4aW5zL21peGlucy90YWJsZS1yb3dcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2Jvb3RzdHJhcCBzYXNzIGFuZCBtaXhpbnMvdGFibGVzXCI7XG5cbi5ibG9jay50YWJsZS1ibG9jayB7IC8vIDIgY2xhc3NlcyB0byBvdmVycmlkZSBCb290c3RyYXBzIGRlZmF1bHQgY2xhc3Nlcy4uLiBmb3Jnb3QgaG93IGhhY2t5IGl0IGNhbiBiZSB0byB3b3JrIHdpdGggQm9vdHN0cmFwXG5cdCY6YmVmb3JlIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9pbWFnZXMvYmFja2dyb3VuZC1mZWF0dXJlcy5qcGcnKTtcblx0XHQvL2JvdHRvbTogNTAlO1xuXHRcdGJvdHRvbTogMTYuNXB4O1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcblx0XHRcdGJvdHRvbTogNTAlO1xuXHRcdH1cblx0fVxuXG5cdC50YWJsZS1yZXNwb25zaXZlIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXJnaW4tYm90dG9tOiAxNi41cHg7XG5cdFx0b3ZlcmZsb3cteTogaGlkZGVuO1xuXHRcdG92ZXJmbG93LXg6IGF1dG87XG5cdFx0LW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XG5cdFx0Ly9ib3JkZXI6IDFweCBzb2xpZCAjNjM2MzYzO1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcblx0XHRcdG92ZXJmbG93LXk6IGF1dG87XG5cdFx0XHRvdmVyZmxvdy14OiBhdXRvO1xuXHRcdFx0b3ZlcmZsb3c6IGF1dG87XG5cdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHQtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcblx0XHRcdC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblx0XHR9XG5cblx0XHQmLm5vdGlmeSB7XG5cdFx0XHQvL292ZXJmbG93OiBoaWRkZW47XG5cblx0XHRcdC5zd2lwZW5vdGlmeSB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0fVxuXG5cdFx0XHQudGFibGUge1xuXHRcdFx0XHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnN3aXBlbm90aWZ5IHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRcdGZvbnQtc2l6ZTogZW0oMjVweCk7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRwYWRkaW5nLXRvcDogJHNwYWNpbmc7XG5cdFx0XHRmb250LXdlaWdodDogJHdlaWdodC1ib2xkO1xuXG5cdFx0XHQuaWNvbiB7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0bWFyZ2luLXRvcDogJHNwYWNpbmctbW9iaWxlO1xuXHRcdFx0XHRmb250LXNpemU6IDM1cHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0aDEge1xuXHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdFx0bWFyZ2luLXJpZ2h0OiAkc3BhY2luZztcblx0fVxuXG5cdGgxLCBoMyB7XG5cdFx0bWFyZ2luLWxlZnQ6ICRzcGFjaW5nO1xuXHRcdEBpbmNsdWRlIGNlbnRyZWQtbW9iaWxlO1xuXHR9XG5cblx0dGFibGUge1xuXHRcdGJvcmRlci10b3A6IG5vbmU7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkgeyBcblx0XHRcdG1hcmdpbi10b3A6IDQwICsgJHNwYWNpbmc7XG5cdFx0fVxuXHR9XG5cblx0dGgsIHRkIHtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0bWluLXdpZHRoOiA5MHB4O1xuXHRcdG1heC13aWR0aDogMTUwcHg7XG5cblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0Ym9yZGVyLXJpZ2h0OiBub25lO1xuXHRcdH1cblx0fVxuXG5cdHRoZWFkIHtcblx0XHR0aCB7XG5cdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblx0XHRcdGJvcmRlci1jb2xvcjogJHdoaXRlO1xuXHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTk2MCkge1xuXHRcdFx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0XHR9XG5cblx0XHRcdGltZyB7XG5cdFx0XHRcdG1hcmdpbjogYXV0bztcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgJHdoaXRlO1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAtNDBweDtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0LmhlYWQge1xuXHRcdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0XHRmb250LXdlaWdodDogJHdlaWdodC1ub3JtYWw7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS05NjApIHtcblx0XHRcdFx0XHRmb250LXdlaWdodDogJHdlaWdodC1ib2xkO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdCYuY29ybmVyIHtcblx0XHRcdFx0dmVydGljYWwtYWxpZ246IGJvdHRvbTtcblxuXHRcdFx0XHRoMyB7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMTJweDtcblxuXHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHR0Ym9keSB7XG5cdFx0dGgsIHRkIHtcblx0XHRcdGJvcmRlci1jb2xvcjogJHdoaXRlO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogJHRhYmxlLWJvcmRlci1jb2xvcjtcblx0XHR9XG5cblx0XHR0aCB7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGdyYXktbGlnaHQ7XG5cdFx0XHRjb2xvcjogJHRleHQtY29sb3I7XG5cdFx0XHRmb250LXdlaWdodDogJHdlaWdodC1ib2xkO1xuXHRcdFx0bWF4LXdpZHRoOiBub25lO1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAxMHB4O1xuXHRcdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDIwcHg7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiA1cHg7XG5cdFx0XHR9XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtOTYwKSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAxNXB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHRkIHtcblx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG5cdFx0XHQuc2hyaW5rIHtcblx0XHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtOTYwKSB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5zaHJpbmstbW9yZSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblxuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTk2MCkge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHRyOmZpcnN0LWNoaWxkIHtcblx0XHRcdHRkLCB0aCB7XG5cdFx0XHRcdGJvcmRlci10b3A6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dHI6bGFzdC1jaGlsZCB7XG5cdFx0XHR0ZCwgdGgge1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJHdoaXRlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIENvbG9yc1xuXHQub3B0aW1pc2VyLWV4cHJlc3Mge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICR4cC1jb2xvcjtcblxuXHRcdGltZyB7XG5cdFx0XHRib3JkZXItY29sb3I6ICR4cC1jb2xvcjtcblx0XHR9XG5cdH1cblx0Lm9wdGltaXNlci1leHByZXNzLXBsdXMge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICR4cC1wbHVzLWNvbG9yO1xuXG5cdFx0aW1nIHtcblx0XHRcdGJvcmRlci1jb2xvcjogJHhwLXBsdXMtY29sb3I7XG5cdFx0fVxuXHR9XG5cdC5vcHRpbWlzZXItbGl0ZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGxvLWNvbG9yO1xuXHR9XG5cbiAgICAub3B0aW1pc2VyLWludHJvIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkaW4tY29sb3I7XG5cdH1cblx0Lm9wdGltaXNlci1zdGFuZGFyZCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHNvLWNvbG9yO1xuXHR9XG5cdC5vcHRpbWlzZXItcHJvZmVzc2lvbmFsIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkcG8tY29sb3I7XG5cdH1cblx0Lm9wdGltaXNlci1jbG91ZCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzNkYWJmZjtcblx0fVxuXHQub3B0aW1pc2VyLW5lc3Rpbmcge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNGRTY4MDk7XG5cdH1cbn0iLCIvLyBhIGZsYWcgdG8gdG9nZ2xlIGFzc2V0IHBpcGVsaW5lIC8gY29tcGFzcyBpbnRlZ3JhdGlvblxuLy8gZGVmYXVsdHMgdG8gdHJ1ZSBpZiB0d2JzLWZvbnQtcGF0aCBmdW5jdGlvbiBpcyBwcmVzZW50IChubyBmdW5jdGlvbiA9PiB0d2JzLWZvbnQtcGF0aCgnJykgcGFyc2VkIGFzIHN0cmluZyA9PSByaWdodCBzaWRlKVxuLy8gaW4gU2FzcyAzLjMgdGhpcyBjYW4gYmUgaW1wcm92ZWQgd2l0aDogZnVuY3Rpb24tZXhpc3RzKHR3YnMtZm9udC1wYXRoKVxuJGJvb3RzdHJhcC1zYXNzLWFzc2V0LWhlbHBlcjogKHR3YnMtZm9udC1wYXRoKFwiXCIpICE9IHVucXVvdGUoJ3R3YnMtZm9udC1wYXRoKFwiXCIpJykpICFkZWZhdWx0O1xuLy9cbi8vIFZhcmlhYmxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLz09IENvbG9yc1xuLy9cbi8vIyMgR3JheSBhbmQgYnJhbmQgY29sb3JzIGZvciB1c2UgYWNyb3NzIEJvb3RzdHJhcC5cblxuJGdyYXktZGFya2VyOiAgICAgICAgICAgIGxpZ2h0ZW4oIzAwMCwgMTMuNSUpICFkZWZhdWx0OyAvLyAjMjIyXG4kZ3JheS1kYXJrOiAgICAgICAgICAgICAgbGlnaHRlbigjMDAwLCAyMCUpICFkZWZhdWx0OyAgIC8vICMzMzNcbiRncmF5OiAgICAgICAgICAgICAgICAgICBsaWdodGVuKCMwMDAsIDMzLjUlKSAhZGVmYXVsdDsgLy8gIzU1NVxuJGdyYXktbGlnaHQ6ICAgICAgICAgICAgIGxpZ2h0ZW4oIzAwMCwgNDYuNyUpICFkZWZhdWx0OyAvLyAjNzc3XG4kZ3JheS1saWdodGVyOiAgICAgICAgICAgbGlnaHRlbigjMDAwLCA5My41JSkgIWRlZmF1bHQ7IC8vICNlZWVcblxuJGJyYW5kLXByaW1hcnk6ICAgICAgICAgIzQyOGJjYSAhZGVmYXVsdDtcbiRicmFuZC1zdWNjZXNzOiAgICAgICAgICM1Y2I4NWMgIWRlZmF1bHQ7XG4kYnJhbmQtaW5mbzogICAgICAgICAgICAjNWJjMGRlICFkZWZhdWx0O1xuJGJyYW5kLXdhcm5pbmc6ICAgICAgICAgI2YwYWQ0ZSAhZGVmYXVsdDtcbiRicmFuZC1kYW5nZXI6ICAgICAgICAgICNkOTUzNGYgIWRlZmF1bHQ7XG5cblxuLy89PSBTY2FmZm9sZGluZ1xuLy9cbi8vIyMgU2V0dGluZ3MgZm9yIHNvbWUgb2YgdGhlIG1vc3QgZ2xvYmFsIHN0eWxlcy5cblxuLy8qKiBCYWNrZ3JvdW5kIGNvbG9yIGZvciBgPGJvZHk+YC5cbiRib2R5LWJnOiAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4vLyoqIEdsb2JhbCB0ZXh0IGNvbG9yIG9uIGA8Ym9keT5gLlxuJHRleHQtY29sb3I6ICAgICAgICAgICAgJGdyYXktZGFyayAhZGVmYXVsdDtcblxuLy8qKiBHbG9iYWwgdGV4dHVhbCBsaW5rIGNvbG9yLlxuJGxpbmstY29sb3I6ICAgICAgICAgICAgJGJyYW5kLXByaW1hcnkgIWRlZmF1bHQ7XG4vLyoqIExpbmsgaG92ZXIgY29sb3Igc2V0IHZpYSBgZGFya2VuKClgIGZ1bmN0aW9uLlxuJGxpbmstaG92ZXItY29sb3I6ICAgICAgZGFya2VuKCRsaW5rLWNvbG9yLCAxNSUpICFkZWZhdWx0O1xuXG5cbi8vPT0gVHlwb2dyYXBoeVxuLy9cbi8vIyMgRm9udCwgbGluZS1oZWlnaHQsIGFuZCBjb2xvciBmb3IgYm9keSB0ZXh0LCBoZWFkaW5ncywgYW5kIG1vcmUuXG5cbiRmb250LWZhbWlseS1zYW5zLXNlcmlmOiAgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuJGZvbnQtZmFtaWx5LXNlcmlmOiAgICAgICBHZW9yZ2lhLCBcIlRpbWVzIE5ldyBSb21hblwiLCBUaW1lcywgc2VyaWYgIWRlZmF1bHQ7XG4vLyoqIERlZmF1bHQgbW9ub3NwYWNlIGZvbnRzIGZvciBgPGNvZGU+YCwgYDxrYmQ+YCwgYW5kIGA8cHJlPmAuXG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiAgIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcbiRmb250LWZhbWlseS1iYXNlOiAgICAgICAgJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbiRmb250LXNpemUtYmFzZTogICAgICAgICAgMTRweCAhZGVmYXVsdDtcbiRmb250LXNpemUtbGFyZ2U6ICAgICAgICAgY2VpbCgoJGZvbnQtc2l6ZS1iYXNlICogMS4yNSkpICFkZWZhdWx0OyAvLyB+MThweFxuJGZvbnQtc2l6ZS1zbWFsbDogICAgICAgICBjZWlsKCgkZm9udC1zaXplLWJhc2UgKiAwLjg1KSkgIWRlZmF1bHQ7IC8vIH4xMnB4XG5cbiRmb250LXNpemUtaDE6ICAgICAgICAgICAgZmxvb3IoKCRmb250LXNpemUtYmFzZSAqIDIuNikpICFkZWZhdWx0OyAvLyB+MzZweFxuJGZvbnQtc2l6ZS1oMjogICAgICAgICAgICBmbG9vcigoJGZvbnQtc2l6ZS1iYXNlICogMi4xNSkpICFkZWZhdWx0OyAvLyB+MzBweFxuJGZvbnQtc2l6ZS1oMzogICAgICAgICAgICBjZWlsKCgkZm9udC1zaXplLWJhc2UgKiAxLjcpKSAhZGVmYXVsdDsgLy8gfjI0cHhcbiRmb250LXNpemUtaDQ6ICAgICAgICAgICAgY2VpbCgoJGZvbnQtc2l6ZS1iYXNlICogMS4yNSkpICFkZWZhdWx0OyAvLyB+MThweFxuJGZvbnQtc2l6ZS1oNTogICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgIWRlZmF1bHQ7XG4kZm9udC1zaXplLWg2OiAgICAgICAgICAgIGNlaWwoKCRmb250LXNpemUtYmFzZSAqIDAuODUpKSAhZGVmYXVsdDsgLy8gfjEycHhcblxuLy8qKiBVbml0LWxlc3MgYGxpbmUtaGVpZ2h0YCBmb3IgdXNlIGluIGNvbXBvbmVudHMgbGlrZSBidXR0b25zLlxuJGxpbmUtaGVpZ2h0LWJhc2U6ICAgICAgICAxLjQyODU3MTQyOSAhZGVmYXVsdDsgLy8gMjAvMTRcbi8vKiogQ29tcHV0ZWQgXCJsaW5lLWhlaWdodFwiIChgZm9udC1zaXplYCAqIGBsaW5lLWhlaWdodGApIGZvciB1c2Ugd2l0aCBgbWFyZ2luYCwgYHBhZGRpbmdgLCBldGMuXG4kbGluZS1oZWlnaHQtY29tcHV0ZWQ6ICAgIGZsb29yKCgkZm9udC1zaXplLWJhc2UgKiAkbGluZS1oZWlnaHQtYmFzZSkpICFkZWZhdWx0OyAvLyB+MjBweFxuXG4vLyoqIEJ5IGRlZmF1bHQsIHRoaXMgaW5oZXJpdHMgZnJvbSB0aGUgYDxib2R5PmAuXG4kaGVhZGluZ3MtZm9udC1mYW1pbHk6ICAgIGluaGVyaXQgIWRlZmF1bHQ7XG4kaGVhZGluZ3MtZm9udC13ZWlnaHQ6ICAgIDUwMCAhZGVmYXVsdDtcbiRoZWFkaW5ncy1saW5lLWhlaWdodDogICAgMS4xICFkZWZhdWx0O1xuJGhlYWRpbmdzLWNvbG9yOiAgICAgICAgICBpbmhlcml0ICFkZWZhdWx0O1xuXG5cbi8vPT0gSWNvbm9ncmFwaHlcbi8vXG4vLyMjIFNwZWNpZnkgY3VzdG9tIGxvY2F0aW9uIGFuZCBmaWxlbmFtZSBvZiB0aGUgaW5jbHVkZWQgR2x5cGhpY29ucyBpY29uIGZvbnQuIFVzZWZ1bCBmb3IgdGhvc2UgaW5jbHVkaW5nIEJvb3RzdHJhcCB2aWEgQm93ZXIuXG5cbi8vKiogTG9hZCBmb250cyBmcm9tIHRoaXMgZGlyZWN0b3J5LlxuJGljb24tZm9udC1wYXRoOiBcImJvb3RzdHJhcC9cIiAhZGVmYXVsdDtcbi8vKiogRmlsZSBuYW1lIGZvciBhbGwgZm9udCBmaWxlcy5cbiRpY29uLWZvbnQtbmFtZTogICAgICAgICAgXCJnbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyXCIgIWRlZmF1bHQ7XG4vLyoqIEVsZW1lbnQgSUQgd2l0aGluIFNWRyBpY29uIGZpbGUuXG4kaWNvbi1mb250LXN2Zy1pZDogICAgICAgIFwiZ2x5cGhpY29uc19oYWxmbGluZ3NyZWd1bGFyXCIgIWRlZmF1bHQ7XG5cblxuLy89PSBDb21wb25lbnRzXG4vL1xuLy8jIyBEZWZpbmUgY29tbW9uIHBhZGRpbmcgYW5kIGJvcmRlciByYWRpdXMgc2l6ZXMgYW5kIG1vcmUuIFZhbHVlcyBiYXNlZCBvbiAxNHB4IHRleHQgYW5kIDEuNDI4IGxpbmUtaGVpZ2h0ICh+MjBweCB0byBzdGFydCkuXG5cbiRwYWRkaW5nLWJhc2UtdmVydGljYWw6ICAgICA2cHggIWRlZmF1bHQ7XG4kcGFkZGluZy1iYXNlLWhvcml6b250YWw6ICAgMTJweCAhZGVmYXVsdDtcblxuJHBhZGRpbmctbGFyZ2UtdmVydGljYWw6ICAgIDEwcHggIWRlZmF1bHQ7XG4kcGFkZGluZy1sYXJnZS1ob3Jpem9udGFsOiAgMTZweCAhZGVmYXVsdDtcblxuJHBhZGRpbmctc21hbGwtdmVydGljYWw6ICAgIDVweCAhZGVmYXVsdDtcbiRwYWRkaW5nLXNtYWxsLWhvcml6b250YWw6ICAxMHB4ICFkZWZhdWx0O1xuXG4kcGFkZGluZy14cy12ZXJ0aWNhbDogICAgICAgMXB4ICFkZWZhdWx0O1xuJHBhZGRpbmcteHMtaG9yaXpvbnRhbDogICAgIDVweCAhZGVmYXVsdDtcblxuJGxpbmUtaGVpZ2h0LWxhcmdlOiAgICAgICAgIDEuMzMgIWRlZmF1bHQ7XG4kbGluZS1oZWlnaHQtc21hbGw6ICAgICAgICAgMS41ICFkZWZhdWx0O1xuXG4kYm9yZGVyLXJhZGl1cy1iYXNlOiAgICAgICAgNHB4ICFkZWZhdWx0O1xuJGJvcmRlci1yYWRpdXMtbGFyZ2U6ICAgICAgIDZweCAhZGVmYXVsdDtcbiRib3JkZXItcmFkaXVzLXNtYWxsOiAgICAgICAzcHggIWRlZmF1bHQ7XG5cbi8vKiogR2xvYmFsIGNvbG9yIGZvciBhY3RpdmUgaXRlbXMgKGUuZy4sIG5hdnMgb3IgZHJvcGRvd25zKS5cbiRjb21wb25lbnQtYWN0aXZlLWNvbG9yOiAgICAjZmZmICFkZWZhdWx0O1xuLy8qKiBHbG9iYWwgYmFja2dyb3VuZCBjb2xvciBmb3IgYWN0aXZlIGl0ZW1zIChlLmcuLCBuYXZzIG9yIGRyb3Bkb3ducykuXG4kY29tcG9uZW50LWFjdGl2ZS1iZzogICAgICAgJGJyYW5kLXByaW1hcnkgIWRlZmF1bHQ7XG5cbi8vKiogV2lkdGggb2YgdGhlIGBib3JkZXJgIGZvciBnZW5lcmF0aW5nIGNhcmV0cyB0aGF0IGluZGljYXRvciBkcm9wZG93bnMuXG4kY2FyZXQtd2lkdGgtYmFzZTogICAgICAgICAgNHB4ICFkZWZhdWx0O1xuLy8qKiBDYXJldHMgaW5jcmVhc2Ugc2xpZ2h0bHkgaW4gc2l6ZSBmb3IgbGFyZ2VyIGNvbXBvbmVudHMuXG4kY2FyZXQtd2lkdGgtbGFyZ2U6ICAgICAgICAgNXB4ICFkZWZhdWx0O1xuXG5cbi8vPT0gVGFibGVzXG4vL1xuLy8jIyBDdXN0b21pemVzIHRoZSBgLnRhYmxlYCBjb21wb25lbnQgd2l0aCBiYXNpYyB2YWx1ZXMsIGVhY2ggdXNlZCBhY3Jvc3MgYWxsIHRhYmxlIHZhcmlhdGlvbnMuXG5cbi8vKiogUGFkZGluZyBmb3IgYDx0aD5gcyBhbmQgYDx0ZD5gcy5cbiR0YWJsZS1jZWxsLXBhZGRpbmc6ICAgICAgICAgICAgOHB4ICFkZWZhdWx0O1xuLy8qKiBQYWRkaW5nIGZvciBjZWxscyBpbiBgLnRhYmxlLWNvbmRlbnNlZGAuXG4kdGFibGUtY29uZGVuc2VkLWNlbGwtcGFkZGluZzogIDVweCAhZGVmYXVsdDtcblxuLy8qKiBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgdXNlZCBmb3IgYWxsIHRhYmxlcy5cbiR0YWJsZS1iZzogICAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4vLyoqIEJhY2tncm91bmQgY29sb3IgdXNlZCBmb3IgYC50YWJsZS1zdHJpcGVkYC5cbiR0YWJsZS1iZy1hY2NlbnQ6ICAgICAgICAgICAgICAgI2Y5ZjlmOSAhZGVmYXVsdDtcbi8vKiogQmFja2dyb3VuZCBjb2xvciB1c2VkIGZvciBgLnRhYmxlLWhvdmVyYC5cbiR0YWJsZS1iZy1ob3ZlcjogICAgICAgICAgICAgICAgI2Y1ZjVmNSAhZGVmYXVsdDtcbiR0YWJsZS1iZy1hY3RpdmU6ICAgICAgICAgICAgICAgJHRhYmxlLWJnLWhvdmVyICFkZWZhdWx0O1xuXG4vLyoqIEJvcmRlciBjb2xvciBmb3IgdGFibGUgYW5kIGNlbGwgYm9yZGVycy5cbiR0YWJsZS1ib3JkZXItY29sb3I6ICAgICAgICAgICAgI2RkZCAhZGVmYXVsdDtcblxuXG4vLz09IEJ1dHRvbnNcbi8vXG4vLyMjIEZvciBlYWNoIG9mIEJvb3RzdHJhcCdzIGJ1dHRvbnMsIGRlZmluZSB0ZXh0LCBiYWNrZ3JvdW5kIGFuZCBib3JkZXIgY29sb3IuXG5cbiRidG4tZm9udC13ZWlnaHQ6ICAgICAgICAgICAgICAgIG5vcm1hbCAhZGVmYXVsdDtcblxuJGJ0bi1kZWZhdWx0LWNvbG9yOiAgICAgICAgICAgICAgIzMzMyAhZGVmYXVsdDtcbiRidG4tZGVmYXVsdC1iZzogICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kYnRuLWRlZmF1bHQtYm9yZGVyOiAgICAgICAgICAgICAjY2NjICFkZWZhdWx0O1xuXG4kYnRuLXByaW1hcnktY29sb3I6ICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJGJ0bi1wcmltYXJ5LWJnOiAgICAgICAgICAgICAgICAgJGJyYW5kLXByaW1hcnkgIWRlZmF1bHQ7XG4kYnRuLXByaW1hcnktYm9yZGVyOiAgICAgICAgICAgICBkYXJrZW4oJGJ0bi1wcmltYXJ5LWJnLCA1JSkgIWRlZmF1bHQ7XG5cbiRidG4tc3VjY2Vzcy1jb2xvcjogICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kYnRuLXN1Y2Nlc3MtYmc6ICAgICAgICAgICAgICAgICAkYnJhbmQtc3VjY2VzcyAhZGVmYXVsdDtcbiRidG4tc3VjY2Vzcy1ib3JkZXI6ICAgICAgICAgICAgIGRhcmtlbigkYnRuLXN1Y2Nlc3MtYmcsIDUlKSAhZGVmYXVsdDtcblxuJGJ0bi1pbmZvLWNvbG9yOiAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRidG4taW5mby1iZzogICAgICAgICAgICAgICAgICAgICRicmFuZC1pbmZvICFkZWZhdWx0O1xuJGJ0bi1pbmZvLWJvcmRlcjogICAgICAgICAgICAgICAgZGFya2VuKCRidG4taW5mby1iZywgNSUpICFkZWZhdWx0O1xuXG4kYnRuLXdhcm5pbmctY29sb3I6ICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJGJ0bi13YXJuaW5nLWJnOiAgICAgICAgICAgICAgICAgJGJyYW5kLXdhcm5pbmcgIWRlZmF1bHQ7XG4kYnRuLXdhcm5pbmctYm9yZGVyOiAgICAgICAgICAgICBkYXJrZW4oJGJ0bi13YXJuaW5nLWJnLCA1JSkgIWRlZmF1bHQ7XG5cbiRidG4tZGFuZ2VyLWNvbG9yOiAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kYnRuLWRhbmdlci1iZzogICAgICAgICAgICAgICAgICAkYnJhbmQtZGFuZ2VyICFkZWZhdWx0O1xuJGJ0bi1kYW5nZXItYm9yZGVyOiAgICAgICAgICAgICAgZGFya2VuKCRidG4tZGFuZ2VyLWJnLCA1JSkgIWRlZmF1bHQ7XG5cbiRidG4tbGluay1kaXNhYmxlZC1jb2xvcjogICAgICAgICRncmF5LWxpZ2h0ICFkZWZhdWx0O1xuXG5cbi8vPT0gRm9ybXNcbi8vXG4vLyMjXG5cbi8vKiogYDxpbnB1dD5gIGJhY2tncm91bmQgY29sb3JcbiRpbnB1dC1iZzogICAgICAgICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4vLyoqIGA8aW5wdXQgZGlzYWJsZWQ+YCBiYWNrZ3JvdW5kIGNvbG9yXG4kaW5wdXQtYmctZGlzYWJsZWQ6ICAgICAgICAgICAgICAkZ3JheS1saWdodGVyICFkZWZhdWx0O1xuXG4vLyoqIFRleHQgY29sb3IgZm9yIGA8aW5wdXQ+YHNcbiRpbnB1dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICRncmF5ICFkZWZhdWx0O1xuLy8qKiBgPGlucHV0PmAgYm9yZGVyIGNvbG9yXG4kaW5wdXQtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAjY2NjICFkZWZhdWx0O1xuLy8qKiBgPGlucHV0PmAgYm9yZGVyIHJhZGl1c1xuJGlucHV0LWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgJGJvcmRlci1yYWRpdXMtYmFzZSAhZGVmYXVsdDtcbi8vKiogQm9yZGVyIGNvbG9yIGZvciBpbnB1dHMgb24gZm9jdXNcbiRpbnB1dC1ib3JkZXItZm9jdXM6ICAgICAgICAgICAgICM2NmFmZTkgIWRlZmF1bHQ7XG5cbi8vKiogUGxhY2Vob2xkZXIgdGV4dCBjb2xvclxuJGlucHV0LWNvbG9yLXBsYWNlaG9sZGVyOiAgICAgICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG5cbi8vKiogRGVmYXVsdCBgLmZvcm0tY29udHJvbGAgaGVpZ2h0XG4kaW5wdXQtaGVpZ2h0LWJhc2U6ICAgICAgICAgICAgICAoJGxpbmUtaGVpZ2h0LWNvbXB1dGVkICsgKCRwYWRkaW5nLWJhc2UtdmVydGljYWwgKiAyKSArIDIpICFkZWZhdWx0O1xuLy8qKiBMYXJnZSBgLmZvcm0tY29udHJvbGAgaGVpZ2h0XG4kaW5wdXQtaGVpZ2h0LWxhcmdlOiAgICAgICAgICAgICAoY2VpbCgkZm9udC1zaXplLWxhcmdlICogJGxpbmUtaGVpZ2h0LWxhcmdlKSArICgkcGFkZGluZy1sYXJnZS12ZXJ0aWNhbCAqIDIpICsgMikgIWRlZmF1bHQ7XG4vLyoqIFNtYWxsIGAuZm9ybS1jb250cm9sYCBoZWlnaHRcbiRpbnB1dC1oZWlnaHQtc21hbGw6ICAgICAgICAgICAgIChmbG9vcigkZm9udC1zaXplLXNtYWxsICogJGxpbmUtaGVpZ2h0LXNtYWxsKSArICgkcGFkZGluZy1zbWFsbC12ZXJ0aWNhbCAqIDIpICsgMikgIWRlZmF1bHQ7XG5cbiRsZWdlbmQtY29sb3I6ICAgICAgICAgICAgICAgICAgICRncmF5LWRhcmsgIWRlZmF1bHQ7XG4kbGVnZW5kLWJvcmRlci1jb2xvcjogICAgICAgICAgICAjZTVlNWU1ICFkZWZhdWx0O1xuXG4vLyoqIEJhY2tncm91bmQgY29sb3IgZm9yIHRleHR1YWwgaW5wdXQgYWRkb25zXG4kaW5wdXQtZ3JvdXAtYWRkb24tYmc6ICAgICAgICAgICAkZ3JheS1saWdodGVyICFkZWZhdWx0O1xuLy8qKiBCb3JkZXIgY29sb3IgZm9yIHRleHR1YWwgaW5wdXQgYWRkb25zXG4kaW5wdXQtZ3JvdXAtYWRkb24tYm9yZGVyLWNvbG9yOiAkaW5wdXQtYm9yZGVyICFkZWZhdWx0O1xuXG5cbi8vPT0gRHJvcGRvd25zXG4vL1xuLy8jIyBEcm9wZG93biBtZW51IGNvbnRhaW5lciBhbmQgY29udGVudHMuXG5cbi8vKiogQmFja2dyb3VuZCBmb3IgdGhlIGRyb3Bkb3duIG1lbnUuXG4kZHJvcGRvd24tYmc6ICAgICAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuLy8qKiBEcm9wZG93biBtZW51IGBib3JkZXItY29sb3JgLlxuJGRyb3Bkb3duLWJvcmRlcjogICAgICAgICAgICAgICAgcmdiYSgwLDAsMCwuMTUpICFkZWZhdWx0O1xuLy8qKiBEcm9wZG93biBtZW51IGBib3JkZXItY29sb3JgICoqZm9yIElFOCoqLlxuJGRyb3Bkb3duLWZhbGxiYWNrLWJvcmRlcjogICAgICAgI2NjYyAhZGVmYXVsdDtcbi8vKiogRGl2aWRlciBjb2xvciBmb3IgYmV0d2VlbiBkcm9wZG93biBpdGVtcy5cbiRkcm9wZG93bi1kaXZpZGVyLWJnOiAgICAgICAgICAgICNlNWU1ZTUgIWRlZmF1bHQ7XG5cbi8vKiogRHJvcGRvd24gbGluayB0ZXh0IGNvbG9yLlxuJGRyb3Bkb3duLWxpbmstY29sb3I6ICAgICAgICAgICAgJGdyYXktZGFyayAhZGVmYXVsdDtcbi8vKiogSG92ZXIgY29sb3IgZm9yIGRyb3Bkb3duIGxpbmtzLlxuJGRyb3Bkb3duLWxpbmstaG92ZXItY29sb3I6ICAgICAgZGFya2VuKCRncmF5LWRhcmssIDUlKSAhZGVmYXVsdDtcbi8vKiogSG92ZXIgYmFja2dyb3VuZCBmb3IgZHJvcGRvd24gbGlua3MuXG4kZHJvcGRvd24tbGluay1ob3Zlci1iZzogICAgICAgICAjZjVmNWY1ICFkZWZhdWx0O1xuXG4vLyoqIEFjdGl2ZSBkcm9wZG93biBtZW51IGl0ZW0gdGV4dCBjb2xvci5cbiRkcm9wZG93bi1saW5rLWFjdGl2ZS1jb2xvcjogICAgICRjb21wb25lbnQtYWN0aXZlLWNvbG9yICFkZWZhdWx0O1xuLy8qKiBBY3RpdmUgZHJvcGRvd24gbWVudSBpdGVtIGJhY2tncm91bmQgY29sb3IuXG4kZHJvcGRvd24tbGluay1hY3RpdmUtYmc6ICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1iZyAhZGVmYXVsdDtcblxuLy8qKiBEaXNhYmxlZCBkcm9wZG93biBtZW51IGl0ZW0gYmFja2dyb3VuZCBjb2xvci5cbiRkcm9wZG93bi1saW5rLWRpc2FibGVkLWNvbG9yOiAgICRncmF5LWxpZ2h0ICFkZWZhdWx0O1xuXG4vLyoqIFRleHQgY29sb3IgZm9yIGhlYWRlcnMgd2l0aGluIGRyb3Bkb3duIG1lbnVzLlxuJGRyb3Bkb3duLWhlYWRlci1jb2xvcjogICAgICAgICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG5cbi8vKiogRGVwcmVjYXRlZCBgJGRyb3Bkb3duLWNhcmV0LWNvbG9yYCBhcyBvZiB2My4xLjBcbiRkcm9wZG93bi1jYXJldC1jb2xvcjogICAgICAgICAgICMwMDAgIWRlZmF1bHQ7XG5cblxuLy8tLSBaLWluZGV4IG1hc3RlciBsaXN0XG4vL1xuLy8gV2FybmluZzogQXZvaWQgY3VzdG9taXppbmcgdGhlc2UgdmFsdWVzLiBUaGV5J3JlIHVzZWQgZm9yIGEgYmlyZCdzIGV5ZSB2aWV3XG4vLyBvZiBjb21wb25lbnRzIGRlcGVuZGVudCBvbiB0aGUgei1heGlzIGFuZCBhcmUgZGVzaWduZWQgdG8gYWxsIHdvcmsgdG9nZXRoZXIuXG4vL1xuLy8gTm90ZTogVGhlc2UgdmFyaWFibGVzIGFyZSBub3QgZ2VuZXJhdGVkIGludG8gdGhlIEN1c3RvbWl6ZXIuXG5cbiR6aW5kZXgtbmF2YmFyOiAgICAgICAgICAgIDEwMDAgIWRlZmF1bHQ7XG4kemluZGV4LWRyb3Bkb3duOiAgICAgICAgICAxMDAwICFkZWZhdWx0O1xuJHppbmRleC1wb3BvdmVyOiAgICAgICAgICAgMTA2MCAhZGVmYXVsdDtcbiR6aW5kZXgtdG9vbHRpcDogICAgICAgICAgIDEwNzAgIWRlZmF1bHQ7XG4kemluZGV4LW5hdmJhci1maXhlZDogICAgICAxMDMwICFkZWZhdWx0O1xuJHppbmRleC1tb2RhbC1iYWNrZ3JvdW5kOiAgMTA0MCAhZGVmYXVsdDtcbiR6aW5kZXgtbW9kYWw6ICAgICAgICAgICAgIDEwNTAgIWRlZmF1bHQ7XG5cblxuLy89PSBNZWRpYSBxdWVyaWVzIGJyZWFrcG9pbnRzXG4vL1xuLy8jIyBEZWZpbmUgdGhlIGJyZWFrcG9pbnRzIGF0IHdoaWNoIHlvdXIgbGF5b3V0IHdpbGwgY2hhbmdlLCBhZGFwdGluZyB0byBkaWZmZXJlbnQgc2NyZWVuIHNpemVzLlxuXG4vLyBFeHRyYSBzbWFsbCBzY3JlZW4gLyBwaG9uZVxuLy8qKiBEZXByZWNhdGVkIGAkc2NyZWVuLXhzYCBhcyBvZiB2My4wLjFcbiRzY3JlZW4teHM6ICAgICAgICAgICAgICAgICAgNDgwcHggIWRlZmF1bHQ7XG4vLyoqIERlcHJlY2F0ZWQgYCRzY3JlZW4teHMtbWluYCBhcyBvZiB2My4yLjBcbiRzY3JlZW4teHMtbWluOiAgICAgICAgICAgICAgJHNjcmVlbi14cyAhZGVmYXVsdDtcbi8vKiogRGVwcmVjYXRlZCBgJHNjcmVlbi1waG9uZWAgYXMgb2YgdjMuMC4xXG4kc2NyZWVuLXBob25lOiAgICAgICAgICAgICAgICRzY3JlZW4teHMtbWluICFkZWZhdWx0O1xuXG4vLyBTbWFsbCBzY3JlZW4gLyB0YWJsZXRcbi8vKiogRGVwcmVjYXRlZCBgJHNjcmVlbi1zbWAgYXMgb2YgdjMuMC4xXG4kc2NyZWVuLXNtOiAgICAgICAgICAgICAgICAgIDc2OHB4ICFkZWZhdWx0O1xuJHNjcmVlbi1zbS1taW46ICAgICAgICAgICAgICAkc2NyZWVuLXNtICFkZWZhdWx0O1xuLy8qKiBEZXByZWNhdGVkIGAkc2NyZWVuLXRhYmxldGAgYXMgb2YgdjMuMC4xXG4kc2NyZWVuLXRhYmxldDogICAgICAgICAgICAgICRzY3JlZW4tc20tbWluICFkZWZhdWx0O1xuXG4vLyBNZWRpdW0gc2NyZWVuIC8gZGVza3RvcFxuLy8qKiBEZXByZWNhdGVkIGAkc2NyZWVuLW1kYCBhcyBvZiB2My4wLjFcbiRzY3JlZW4tbWQ6ICAgICAgICAgICAgICAgICAgOTkycHggIWRlZmF1bHQ7XG4kc2NyZWVuLW1kLW1pbjogICAgICAgICAgICAgICRzY3JlZW4tbWQgIWRlZmF1bHQ7XG4vLyoqIERlcHJlY2F0ZWQgYCRzY3JlZW4tZGVza3RvcGAgYXMgb2YgdjMuMC4xXG4kc2NyZWVuLWRlc2t0b3A6ICAgICAgICAgICAgICRzY3JlZW4tbWQtbWluICFkZWZhdWx0O1xuXG4vLyBMYXJnZSBzY3JlZW4gLyB3aWRlIGRlc2t0b3Bcbi8vKiogRGVwcmVjYXRlZCBgJHNjcmVlbi1sZ2AgYXMgb2YgdjMuMC4xXG4kc2NyZWVuLWxnOiAgICAgICAgICAgICAgICAgIDEyMDBweCAhZGVmYXVsdDtcbiRzY3JlZW4tbGctbWluOiAgICAgICAgICAgICAgJHNjcmVlbi1sZyAhZGVmYXVsdDtcbi8vKiogRGVwcmVjYXRlZCBgJHNjcmVlbi1sZy1kZXNrdG9wYCBhcyBvZiB2My4wLjFcbiRzY3JlZW4tbGctZGVza3RvcDogICAgICAgICAgJHNjcmVlbi1sZy1taW4gIWRlZmF1bHQ7XG5cbi8vIFNvIG1lZGlhIHF1ZXJpZXMgZG9uJ3Qgb3ZlcmxhcCB3aGVuIHJlcXVpcmVkLCBwcm92aWRlIGEgbWF4aW11bVxuJHNjcmVlbi14cy1tYXg6ICAgICAgICAgICAgICAoJHNjcmVlbi1zbS1taW4gLSAxKSAhZGVmYXVsdDtcbiRzY3JlZW4tc20tbWF4OiAgICAgICAgICAgICAgKCRzY3JlZW4tbWQtbWluIC0gMSkgIWRlZmF1bHQ7XG4kc2NyZWVuLW1kLW1heDogICAgICAgICAgICAgICgkc2NyZWVuLWxnLW1pbiAtIDEpICFkZWZhdWx0O1xuXG5cbi8vPT0gR3JpZCBzeXN0ZW1cbi8vXG4vLyMjIERlZmluZSB5b3VyIGN1c3RvbSByZXNwb25zaXZlIGdyaWQuXG5cbi8vKiogTnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGdyaWQuXG4kZ3JpZC1jb2x1bW5zOiAgICAgICAgICAgICAgMTIgIWRlZmF1bHQ7XG4vLyoqIFBhZGRpbmcgYmV0d2VlbiBjb2x1bW5zLiBHZXRzIGRpdmlkZWQgaW4gaGFsZiBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0LlxuJGdyaWQtZ3V0dGVyLXdpZHRoOiAgICAgICAgIDMwcHggIWRlZmF1bHQ7XG4vLyBOYXZiYXIgY29sbGFwc2Vcbi8vKiogUG9pbnQgYXQgd2hpY2ggdGhlIG5hdmJhciBiZWNvbWVzIHVuY29sbGFwc2VkLlxuJGdyaWQtZmxvYXQtYnJlYWtwb2ludDogICAgICRzY3JlZW4tc20tbWluICFkZWZhdWx0O1xuLy8qKiBQb2ludCBhdCB3aGljaCB0aGUgbmF2YmFyIGJlZ2lucyBjb2xsYXBzaW5nLlxuJGdyaWQtZmxvYXQtYnJlYWtwb2ludC1tYXg6ICgkZ3JpZC1mbG9hdC1icmVha3BvaW50IC0gMSkgIWRlZmF1bHQ7XG5cblxuLy89PSBDb250YWluZXIgc2l6ZXNcbi8vXG4vLyMjIERlZmluZSB0aGUgbWF4aW11bSB3aWR0aCBvZiBgLmNvbnRhaW5lcmAgZm9yIGRpZmZlcmVudCBzY3JlZW4gc2l6ZXMuXG5cbi8vIFNtYWxsIHNjcmVlbiAvIHRhYmxldFxuJGNvbnRhaW5lci10YWJsZXQ6ICAgICAgICAgICAgICgoNzIwcHggKyAkZ3JpZC1ndXR0ZXItd2lkdGgpKSAhZGVmYXVsdDtcbi8vKiogRm9yIGAkc2NyZWVuLXNtLW1pbmAgYW5kIHVwLlxuJGNvbnRhaW5lci1zbTogICAgICAgICAgICAgICAgICRjb250YWluZXItdGFibGV0ICFkZWZhdWx0O1xuXG4vLyBNZWRpdW0gc2NyZWVuIC8gZGVza3RvcFxuJGNvbnRhaW5lci1kZXNrdG9wOiAgICAgICAgICAgICgoOTQwcHggKyAkZ3JpZC1ndXR0ZXItd2lkdGgpKSAhZGVmYXVsdDtcbi8vKiogRm9yIGAkc2NyZWVuLW1kLW1pbmAgYW5kIHVwLlxuJGNvbnRhaW5lci1tZDogICAgICAgICAgICAgICAgICRjb250YWluZXItZGVza3RvcCAhZGVmYXVsdDtcblxuLy8gTGFyZ2Ugc2NyZWVuIC8gd2lkZSBkZXNrdG9wXG4kY29udGFpbmVyLWxhcmdlLWRlc2t0b3A6ICAgICAgKCgxMTQwcHggKyAkZ3JpZC1ndXR0ZXItd2lkdGgpKSAhZGVmYXVsdDtcbi8vKiogRm9yIGAkc2NyZWVuLWxnLW1pbmAgYW5kIHVwLlxuJGNvbnRhaW5lci1sZzogICAgICAgICAgICAgICAgICRjb250YWluZXItbGFyZ2UtZGVza3RvcCAhZGVmYXVsdDtcblxuXG4vLz09IE5hdmJhclxuLy9cbi8vIyNcblxuLy8gQmFzaWNzIG9mIGEgbmF2YmFyXG4kbmF2YmFyLWhlaWdodDogICAgICAgICAgICAgICAgICAgIDUwcHggIWRlZmF1bHQ7XG4kbmF2YmFyLW1hcmdpbi1ib3R0b206ICAgICAgICAgICAgICRsaW5lLWhlaWdodC1jb21wdXRlZCAhZGVmYXVsdDtcbiRuYXZiYXItYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgJGJvcmRlci1yYWRpdXMtYmFzZSAhZGVmYXVsdDtcbiRuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgZmxvb3IoKCRncmlkLWd1dHRlci13aWR0aCAvIDIpKSAhZGVmYXVsdDtcbiRuYXZiYXItcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgKCgkbmF2YmFyLWhlaWdodCAtICRsaW5lLWhlaWdodC1jb21wdXRlZCkgLyAyKSAhZGVmYXVsdDtcbiRuYXZiYXItY29sbGFwc2UtbWF4LWhlaWdodDogICAgICAgMzQwcHggIWRlZmF1bHQ7XG5cbiRuYXZiYXItZGVmYXVsdC1jb2xvcjogICAgICAgICAgICAgIzc3NyAhZGVmYXVsdDtcbiRuYXZiYXItZGVmYXVsdC1iZzogICAgICAgICAgICAgICAgI2Y4ZjhmOCAhZGVmYXVsdDtcbiRuYXZiYXItZGVmYXVsdC1ib3JkZXI6ICAgICAgICAgICAgZGFya2VuKCRuYXZiYXItZGVmYXVsdC1iZywgNi41JSkgIWRlZmF1bHQ7XG5cbi8vIE5hdmJhciBsaW5rc1xuJG5hdmJhci1kZWZhdWx0LWxpbmstY29sb3I6ICAgICAgICAgICAgICAgICM3NzcgIWRlZmF1bHQ7XG4kbmF2YmFyLWRlZmF1bHQtbGluay1ob3Zlci1jb2xvcjogICAgICAgICAgIzMzMyAhZGVmYXVsdDtcbiRuYXZiYXItZGVmYXVsdC1saW5rLWhvdmVyLWJnOiAgICAgICAgICAgICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRuYXZiYXItZGVmYXVsdC1saW5rLWFjdGl2ZS1jb2xvcjogICAgICAgICAjNTU1ICFkZWZhdWx0O1xuJG5hdmJhci1kZWZhdWx0LWxpbmstYWN0aXZlLWJnOiAgICAgICAgICAgIGRhcmtlbigkbmF2YmFyLWRlZmF1bHQtYmcsIDYuNSUpICFkZWZhdWx0O1xuJG5hdmJhci1kZWZhdWx0LWxpbmstZGlzYWJsZWQtY29sb3I6ICAgICAgICNjY2MgIWRlZmF1bHQ7XG4kbmF2YmFyLWRlZmF1bHQtbGluay1kaXNhYmxlZC1iZzogICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbi8vIE5hdmJhciBicmFuZCBsYWJlbFxuJG5hdmJhci1kZWZhdWx0LWJyYW5kLWNvbG9yOiAgICAgICAgICAgICAgICRuYXZiYXItZGVmYXVsdC1saW5rLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1kZWZhdWx0LWJyYW5kLWhvdmVyLWNvbG9yOiAgICAgICAgIGRhcmtlbigkbmF2YmFyLWRlZmF1bHQtYnJhbmQtY29sb3IsIDEwJSkgIWRlZmF1bHQ7XG4kbmF2YmFyLWRlZmF1bHQtYnJhbmQtaG92ZXItYmc6ICAgICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbi8vIE5hdmJhciB0b2dnbGVcbiRuYXZiYXItZGVmYXVsdC10b2dnbGUtaG92ZXItYmc6ICAgICAgICAgICAjZGRkICFkZWZhdWx0O1xuJG5hdmJhci1kZWZhdWx0LXRvZ2dsZS1pY29uLWJhci1iZzogICAgICAgICM4ODggIWRlZmF1bHQ7XG4kbmF2YmFyLWRlZmF1bHQtdG9nZ2xlLWJvcmRlci1jb2xvcjogICAgICAgI2RkZCAhZGVmYXVsdDtcblxuXG4vLyBJbnZlcnRlZCBuYXZiYXJcbi8vIFJlc2V0IGludmVydGVkIG5hdmJhciBiYXNpY3NcbiRuYXZiYXItaW52ZXJzZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtYmc6ICAgICAgICAgICAgICAgICAgICAgICAgICMyMjIgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtYm9yZGVyOiAgICAgICAgICAgICAgICAgICAgIGRhcmtlbigkbmF2YmFyLWludmVyc2UtYmcsIDEwJSkgIWRlZmF1bHQ7XG5cbi8vIEludmVydGVkIG5hdmJhciBsaW5rc1xuJG5hdmJhci1pbnZlcnNlLWxpbmstY29sb3I6ICAgICAgICAgICAgICAgICAkZ3JheS1saWdodCAhZGVmYXVsdDtcbiRuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWNvbG9yOiAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWJnOiAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtbGluay1hY3RpdmUtY29sb3I6ICAgICAgICAgICRuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1pbnZlcnNlLWxpbmstYWN0aXZlLWJnOiAgICAgICAgICAgICBkYXJrZW4oJG5hdmJhci1pbnZlcnNlLWJnLCAxMCUpICFkZWZhdWx0O1xuJG5hdmJhci1pbnZlcnNlLWxpbmstZGlzYWJsZWQtY29sb3I6ICAgICAgICAjNDQ0ICFkZWZhdWx0O1xuJG5hdmJhci1pbnZlcnNlLWxpbmstZGlzYWJsZWQtYmc6ICAgICAgICAgICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuLy8gSW52ZXJ0ZWQgbmF2YmFyIGJyYW5kIGxhYmVsXG4kbmF2YmFyLWludmVyc2UtYnJhbmQtY29sb3I6ICAgICAgICAgICAgICAgICRuYXZiYXItaW52ZXJzZS1saW5rLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1pbnZlcnNlLWJyYW5kLWhvdmVyLWNvbG9yOiAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJG5hdmJhci1pbnZlcnNlLWJyYW5kLWhvdmVyLWJnOiAgICAgICAgICAgICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuLy8gSW52ZXJ0ZWQgbmF2YmFyIHRvZ2dsZVxuJG5hdmJhci1pbnZlcnNlLXRvZ2dsZS1ob3Zlci1iZzogICAgICAgICAgICAjMzMzICFkZWZhdWx0O1xuJG5hdmJhci1pbnZlcnNlLXRvZ2dsZS1pY29uLWJhci1iZzogICAgICAgICAjZmZmICFkZWZhdWx0O1xuJG5hdmJhci1pbnZlcnNlLXRvZ2dsZS1ib3JkZXItY29sb3I6ICAgICAgICAjMzMzICFkZWZhdWx0O1xuXG5cbi8vPT0gTmF2c1xuLy9cbi8vIyNcblxuLy89PT0gU2hhcmVkIG5hdiBzdHlsZXNcbiRuYXYtbGluay1wYWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAgMTBweCAxNXB4ICFkZWZhdWx0O1xuJG5hdi1saW5rLWhvdmVyLWJnOiAgICAgICAgICAgICAgICAgICAgICAgICAkZ3JheS1saWdodGVyICFkZWZhdWx0O1xuXG4kbmF2LWRpc2FibGVkLWxpbmstY29sb3I6ICAgICAgICAgICAgICAgICAgICRncmF5LWxpZ2h0ICFkZWZhdWx0O1xuJG5hdi1kaXNhYmxlZC1saW5rLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAkZ3JheS1saWdodCAhZGVmYXVsdDtcblxuJG5hdi1vcGVuLWxpbmstaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuXG4vLz09IFRhYnNcbiRuYXYtdGFicy1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgI2RkZCAhZGVmYXVsdDtcblxuJG5hdi10YWJzLWxpbmstaG92ZXItYm9yZGVyLWNvbG9yOiAgICAgICAgICAkZ3JheS1saWdodGVyICFkZWZhdWx0O1xuXG4kbmF2LXRhYnMtYWN0aXZlLWxpbmstaG92ZXItYmc6ICAgICAgICAgICAgICRib2R5LWJnICFkZWZhdWx0O1xuJG5hdi10YWJzLWFjdGl2ZS1saW5rLWhvdmVyLWNvbG9yOiAgICAgICAgICAkZ3JheSAhZGVmYXVsdDtcbiRuYXYtdGFicy1hY3RpdmUtbGluay1ob3Zlci1ib3JkZXItY29sb3I6ICAgI2RkZCAhZGVmYXVsdDtcblxuJG5hdi10YWJzLWp1c3RpZmllZC1saW5rLWJvcmRlci1jb2xvcjogICAgICAgICAgICAjZGRkICFkZWZhdWx0O1xuJG5hdi10YWJzLWp1c3RpZmllZC1hY3RpdmUtbGluay1ib3JkZXItY29sb3I6ICAgICAkYm9keS1iZyAhZGVmYXVsdDtcblxuLy89PSBQaWxsc1xuJG5hdi1waWxscy1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cy1iYXNlICFkZWZhdWx0O1xuJG5hdi1waWxscy1hY3RpdmUtbGluay1ob3Zlci1iZzogICAgICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1iZyAhZGVmYXVsdDtcbiRuYXYtcGlsbHMtYWN0aXZlLWxpbmstaG92ZXItY29sb3I6ICAgICAgICAgJGNvbXBvbmVudC1hY3RpdmUtY29sb3IgIWRlZmF1bHQ7XG5cblxuLy89PSBQYWdpbmF0aW9uXG4vL1xuLy8jI1xuXG4kcGFnaW5hdGlvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAkbGluay1jb2xvciAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWJnOiAgICAgICAgICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAjZGRkICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAkbGluay1ob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWhvdmVyLWJnOiAgICAgICAgICAgICAgICAgICRncmF5LWxpZ2h0ZXIgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1ob3Zlci1ib3JkZXI6ICAgICAgICAgICAgICAjZGRkICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tYWN0aXZlLWJnOiAgICAgICAgICAgICAgICAgJGJyYW5kLXByaW1hcnkgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1hY3RpdmUtYm9yZGVyOiAgICAgICAgICAgICAkYnJhbmQtcHJpbWFyeSAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24tZGlzYWJsZWQtY29sb3I6ICAgICAgICAgICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1kaXNhYmxlZC1iZzogICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tZGlzYWJsZWQtYm9yZGVyOiAgICAgICAgICAgI2RkZCAhZGVmYXVsdDtcblxuXG4vLz09IFBhZ2VyXG4vL1xuLy8jI1xuXG4kcGFnZXItYmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFnaW5hdGlvbi1iZyAhZGVmYXVsdDtcbiRwYWdlci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICRwYWdpbmF0aW9uLWJvcmRlciAhZGVmYXVsdDtcbiRwYWdlci1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgIDE1cHggIWRlZmF1bHQ7XG5cbiRwYWdlci1ob3Zlci1iZzogICAgICAgICAgICAgICAgICAgICAgICRwYWdpbmF0aW9uLWhvdmVyLWJnICFkZWZhdWx0O1xuXG4kcGFnZXItYWN0aXZlLWJnOiAgICAgICAgICAgICAgICAgICAgICAkcGFnaW5hdGlvbi1hY3RpdmUtYmcgIWRlZmF1bHQ7XG4kcGFnZXItYWN0aXZlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAkcGFnaW5hdGlvbi1hY3RpdmUtY29sb3IgIWRlZmF1bHQ7XG5cbiRwYWdlci1kaXNhYmxlZC1jb2xvcjogICAgICAgICAgICAgICAgICRwYWdpbmF0aW9uLWRpc2FibGVkLWNvbG9yICFkZWZhdWx0O1xuXG5cbi8vPT0gSnVtYm90cm9uXG4vL1xuLy8jI1xuXG4kanVtYm90cm9uLXBhZGRpbmc6ICAgICAgICAgICAgICAzMHB4ICFkZWZhdWx0O1xuJGp1bWJvdHJvbi1jb2xvcjogICAgICAgICAgICAgICAgaW5oZXJpdCAhZGVmYXVsdDtcbiRqdW1ib3Ryb24tYmc6ICAgICAgICAgICAgICAgICAgICRncmF5LWxpZ2h0ZXIgIWRlZmF1bHQ7XG4kanVtYm90cm9uLWhlYWRpbmctY29sb3I6ICAgICAgICBpbmhlcml0ICFkZWZhdWx0O1xuJGp1bWJvdHJvbi1mb250LXNpemU6ICAgICAgICAgICAgY2VpbCgoJGZvbnQtc2l6ZS1iYXNlICogMS41KSkgIWRlZmF1bHQ7XG5cblxuLy89PSBGb3JtIHN0YXRlcyBhbmQgYWxlcnRzXG4vL1xuLy8jIyBEZWZpbmUgY29sb3JzIGZvciBmb3JtIGZlZWRiYWNrIHN0YXRlcyBhbmQsIGJ5IGRlZmF1bHQsIGFsZXJ0cy5cblxuJHN0YXRlLXN1Y2Nlc3MtdGV4dDogICAgICAgICAgICAgIzNjNzYzZCAhZGVmYXVsdDtcbiRzdGF0ZS1zdWNjZXNzLWJnOiAgICAgICAgICAgICAgICNkZmYwZDggIWRlZmF1bHQ7XG4kc3RhdGUtc3VjY2Vzcy1ib3JkZXI6ICAgICAgICAgICBkYXJrZW4oYWRqdXN0LWh1ZSgkc3RhdGUtc3VjY2Vzcy1iZywgLTEwKSwgNSUpICFkZWZhdWx0O1xuXG4kc3RhdGUtaW5mby10ZXh0OiAgICAgICAgICAgICAgICAjMzE3MDhmICFkZWZhdWx0O1xuJHN0YXRlLWluZm8tYmc6ICAgICAgICAgICAgICAgICAgI2Q5ZWRmNyAhZGVmYXVsdDtcbiRzdGF0ZS1pbmZvLWJvcmRlcjogICAgICAgICAgICAgIGRhcmtlbihhZGp1c3QtaHVlKCRzdGF0ZS1pbmZvLWJnLCAtMTApLCA3JSkgIWRlZmF1bHQ7XG5cbiRzdGF0ZS13YXJuaW5nLXRleHQ6ICAgICAgICAgICAgICM4YTZkM2IgIWRlZmF1bHQ7XG4kc3RhdGUtd2FybmluZy1iZzogICAgICAgICAgICAgICAjZmNmOGUzICFkZWZhdWx0O1xuJHN0YXRlLXdhcm5pbmctYm9yZGVyOiAgICAgICAgICAgZGFya2VuKGFkanVzdC1odWUoJHN0YXRlLXdhcm5pbmctYmcsIC0xMCksIDUlKSAhZGVmYXVsdDtcblxuJHN0YXRlLWRhbmdlci10ZXh0OiAgICAgICAgICAgICAgI2E5NDQ0MiAhZGVmYXVsdDtcbiRzdGF0ZS1kYW5nZXItYmc6ICAgICAgICAgICAgICAgICNmMmRlZGUgIWRlZmF1bHQ7XG4kc3RhdGUtZGFuZ2VyLWJvcmRlcjogICAgICAgICAgICBkYXJrZW4oYWRqdXN0LWh1ZSgkc3RhdGUtZGFuZ2VyLWJnLCAtMTApLCA1JSkgIWRlZmF1bHQ7XG5cblxuLy89PSBUb29sdGlwc1xuLy9cbi8vIyNcblxuLy8qKiBUb29sdGlwIG1heCB3aWR0aFxuJHRvb2x0aXAtbWF4LXdpZHRoOiAgICAgICAgICAgMjAwcHggIWRlZmF1bHQ7XG4vLyoqIFRvb2x0aXAgdGV4dCBjb2xvclxuJHRvb2x0aXAtY29sb3I6ICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbi8vKiogVG9vbHRpcCBiYWNrZ3JvdW5kIGNvbG9yXG4kdG9vbHRpcC1iZzogICAgICAgICAgICAgICAgICAjMDAwICFkZWZhdWx0O1xuJHRvb2x0aXAtb3BhY2l0eTogICAgICAgICAgICAgLjkgIWRlZmF1bHQ7XG5cbi8vKiogVG9vbHRpcCBhcnJvdyB3aWR0aFxuJHRvb2x0aXAtYXJyb3ctd2lkdGg6ICAgICAgICAgNXB4ICFkZWZhdWx0O1xuLy8qKiBUb29sdGlwIGFycm93IGNvbG9yXG4kdG9vbHRpcC1hcnJvdy1jb2xvcjogICAgICAgICAkdG9vbHRpcC1iZyAhZGVmYXVsdDtcblxuXG4vLz09IFBvcG92ZXJzXG4vL1xuLy8jI1xuXG4vLyoqIFBvcG92ZXIgYm9keSBiYWNrZ3JvdW5kIGNvbG9yXG4kcG9wb3Zlci1iZzogICAgICAgICAgICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4vLyoqIFBvcG92ZXIgbWF4aW11bSB3aWR0aFxuJHBvcG92ZXItbWF4LXdpZHRoOiAgICAgICAgICAgICAgICAgICAyNzZweCAhZGVmYXVsdDtcbi8vKiogUG9wb3ZlciBib3JkZXIgY29sb3JcbiRwb3BvdmVyLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgcmdiYSgwLDAsMCwuMikgIWRlZmF1bHQ7XG4vLyoqIFBvcG92ZXIgZmFsbGJhY2sgYm9yZGVyIGNvbG9yXG4kcG9wb3Zlci1mYWxsYmFjay1ib3JkZXItY29sb3I6ICAgICAgICNjY2MgIWRlZmF1bHQ7XG5cbi8vKiogUG9wb3ZlciB0aXRsZSBiYWNrZ3JvdW5kIGNvbG9yXG4kcG9wb3Zlci10aXRsZS1iZzogICAgICAgICAgICAgICAgICAgIGRhcmtlbigkcG9wb3Zlci1iZywgMyUpICFkZWZhdWx0O1xuXG4vLyoqIFBvcG92ZXIgYXJyb3cgd2lkdGhcbiRwb3BvdmVyLWFycm93LXdpZHRoOiAgICAgICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcbi8vKiogUG9wb3ZlciBhcnJvdyBjb2xvclxuJHBvcG92ZXItYXJyb3ctY29sb3I6ICAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuXG4vLyoqIFBvcG92ZXIgb3V0ZXIgYXJyb3cgd2lkdGhcbiRwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoOiAgICAgICAgICAgKCRwb3BvdmVyLWFycm93LXdpZHRoICsgMSkgIWRlZmF1bHQ7XG4vLyoqIFBvcG92ZXIgb3V0ZXIgYXJyb3cgY29sb3JcbiRwb3BvdmVyLWFycm93LW91dGVyLWNvbG9yOiAgICAgICAgICAgZmFkZV9pbigkcG9wb3Zlci1ib3JkZXItY29sb3IsIDAuMDUpICFkZWZhdWx0O1xuLy8qKiBQb3BvdmVyIG91dGVyIGFycm93IGZhbGxiYWNrIGNvbG9yXG4kcG9wb3Zlci1hcnJvdy1vdXRlci1mYWxsYmFjay1jb2xvcjogIGRhcmtlbigkcG9wb3Zlci1mYWxsYmFjay1ib3JkZXItY29sb3IsIDIwJSkgIWRlZmF1bHQ7XG5cblxuLy89PSBMYWJlbHNcbi8vXG4vLyMjXG5cbi8vKiogRGVmYXVsdCBsYWJlbCBiYWNrZ3JvdW5kIGNvbG9yXG4kbGFiZWwtZGVmYXVsdC1iZzogICAgICAgICAgICAkZ3JheS1saWdodCAhZGVmYXVsdDtcbi8vKiogUHJpbWFyeSBsYWJlbCBiYWNrZ3JvdW5kIGNvbG9yXG4kbGFiZWwtcHJpbWFyeS1iZzogICAgICAgICAgICAkYnJhbmQtcHJpbWFyeSAhZGVmYXVsdDtcbi8vKiogU3VjY2VzcyBsYWJlbCBiYWNrZ3JvdW5kIGNvbG9yXG4kbGFiZWwtc3VjY2Vzcy1iZzogICAgICAgICAgICAkYnJhbmQtc3VjY2VzcyAhZGVmYXVsdDtcbi8vKiogSW5mbyBsYWJlbCBiYWNrZ3JvdW5kIGNvbG9yXG4kbGFiZWwtaW5mby1iZzogICAgICAgICAgICAgICAkYnJhbmQtaW5mbyAhZGVmYXVsdDtcbi8vKiogV2FybmluZyBsYWJlbCBiYWNrZ3JvdW5kIGNvbG9yXG4kbGFiZWwtd2FybmluZy1iZzogICAgICAgICAgICAkYnJhbmQtd2FybmluZyAhZGVmYXVsdDtcbi8vKiogRGFuZ2VyIGxhYmVsIGJhY2tncm91bmQgY29sb3JcbiRsYWJlbC1kYW5nZXItYmc6ICAgICAgICAgICAgICRicmFuZC1kYW5nZXIgIWRlZmF1bHQ7XG5cbi8vKiogRGVmYXVsdCBsYWJlbCB0ZXh0IGNvbG9yXG4kbGFiZWwtY29sb3I6ICAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuLy8qKiBEZWZhdWx0IHRleHQgY29sb3Igb2YgYSBsaW5rZWQgbGFiZWxcbiRsYWJlbC1saW5rLWhvdmVyLWNvbG9yOiAgICAgICNmZmYgIWRlZmF1bHQ7XG5cblxuLy89PSBNb2RhbHNcbi8vXG4vLyMjXG5cbi8vKiogUGFkZGluZyBhcHBsaWVkIHRvIHRoZSBtb2RhbCBib2R5XG4kbW9kYWwtaW5uZXItcGFkZGluZzogICAgICAgICAxNXB4ICFkZWZhdWx0O1xuXG4vLyoqIFBhZGRpbmcgYXBwbGllZCB0byB0aGUgbW9kYWwgdGl0bGVcbiRtb2RhbC10aXRsZS1wYWRkaW5nOiAgICAgICAgIDE1cHggIWRlZmF1bHQ7XG4vLyoqIE1vZGFsIHRpdGxlIGxpbmUtaGVpZ2h0XG4kbW9kYWwtdGl0bGUtbGluZS1oZWlnaHQ6ICAgICAkbGluZS1oZWlnaHQtYmFzZSAhZGVmYXVsdDtcblxuLy8qKiBCYWNrZ3JvdW5kIGNvbG9yIG9mIG1vZGFsIGNvbnRlbnQgYXJlYVxuJG1vZGFsLWNvbnRlbnQtYmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuLy8qKiBNb2RhbCBjb250ZW50IGJvcmRlciBjb2xvclxuJG1vZGFsLWNvbnRlbnQtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICByZ2JhKDAsMCwwLC4yKSAhZGVmYXVsdDtcbi8vKiogTW9kYWwgY29udGVudCBib3JkZXIgY29sb3IgKipmb3IgSUU4KipcbiRtb2RhbC1jb250ZW50LWZhbGxiYWNrLWJvcmRlci1jb2xvcjogICAgICAgICAgIzk5OSAhZGVmYXVsdDtcblxuLy8qKiBNb2RhbCBiYWNrZHJvcCBiYWNrZ3JvdW5kIGNvbG9yXG4kbW9kYWwtYmFja2Ryb3AtYmc6ICAgICAgICAgICAjMDAwICFkZWZhdWx0O1xuLy8qKiBNb2RhbCBiYWNrZHJvcCBvcGFjaXR5XG4kbW9kYWwtYmFja2Ryb3Atb3BhY2l0eTogICAgICAuNSAhZGVmYXVsdDtcbi8vKiogTW9kYWwgaGVhZGVyIGJvcmRlciBjb2xvclxuJG1vZGFsLWhlYWRlci1ib3JkZXItY29sb3I6ICAgI2U1ZTVlNSAhZGVmYXVsdDtcbi8vKiogTW9kYWwgZm9vdGVyIGJvcmRlciBjb2xvclxuJG1vZGFsLWZvb3Rlci1ib3JkZXItY29sb3I6ICAgJG1vZGFsLWhlYWRlci1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG5cbiRtb2RhbC1sZzogICAgICAgICAgICAgICAgICAgIDkwMHB4ICFkZWZhdWx0O1xuJG1vZGFsLW1kOiAgICAgICAgICAgICAgICAgICAgNjAwcHggIWRlZmF1bHQ7XG4kbW9kYWwtc206ICAgICAgICAgICAgICAgICAgICAzMDBweCAhZGVmYXVsdDtcblxuXG4vLz09IEFsZXJ0c1xuLy9cbi8vIyMgRGVmaW5lIGFsZXJ0IGNvbG9ycywgYm9yZGVyIHJhZGl1cywgYW5kIHBhZGRpbmcuXG5cbiRhbGVydC1wYWRkaW5nOiAgICAgICAgICAgICAgIDE1cHggIWRlZmF1bHQ7XG4kYWxlcnQtYm9yZGVyLXJhZGl1czogICAgICAgICAkYm9yZGVyLXJhZGl1cy1iYXNlICFkZWZhdWx0O1xuJGFsZXJ0LWxpbmstZm9udC13ZWlnaHQ6ICAgICAgYm9sZCAhZGVmYXVsdDtcblxuJGFsZXJ0LXN1Y2Nlc3MtYmc6ICAgICAgICAgICAgJHN0YXRlLXN1Y2Nlc3MtYmcgIWRlZmF1bHQ7XG4kYWxlcnQtc3VjY2Vzcy10ZXh0OiAgICAgICAgICAkc3RhdGUtc3VjY2Vzcy10ZXh0ICFkZWZhdWx0O1xuJGFsZXJ0LXN1Y2Nlc3MtYm9yZGVyOiAgICAgICAgJHN0YXRlLXN1Y2Nlc3MtYm9yZGVyICFkZWZhdWx0O1xuXG4kYWxlcnQtaW5mby1iZzogICAgICAgICAgICAgICAkc3RhdGUtaW5mby1iZyAhZGVmYXVsdDtcbiRhbGVydC1pbmZvLXRleHQ6ICAgICAgICAgICAgICRzdGF0ZS1pbmZvLXRleHQgIWRlZmF1bHQ7XG4kYWxlcnQtaW5mby1ib3JkZXI6ICAgICAgICAgICAkc3RhdGUtaW5mby1ib3JkZXIgIWRlZmF1bHQ7XG5cbiRhbGVydC13YXJuaW5nLWJnOiAgICAgICAgICAgICRzdGF0ZS13YXJuaW5nLWJnICFkZWZhdWx0O1xuJGFsZXJ0LXdhcm5pbmctdGV4dDogICAgICAgICAgJHN0YXRlLXdhcm5pbmctdGV4dCAhZGVmYXVsdDtcbiRhbGVydC13YXJuaW5nLWJvcmRlcjogICAgICAgICRzdGF0ZS13YXJuaW5nLWJvcmRlciAhZGVmYXVsdDtcblxuJGFsZXJ0LWRhbmdlci1iZzogICAgICAgICAgICAgJHN0YXRlLWRhbmdlci1iZyAhZGVmYXVsdDtcbiRhbGVydC1kYW5nZXItdGV4dDogICAgICAgICAgICRzdGF0ZS1kYW5nZXItdGV4dCAhZGVmYXVsdDtcbiRhbGVydC1kYW5nZXItYm9yZGVyOiAgICAgICAgICRzdGF0ZS1kYW5nZXItYm9yZGVyICFkZWZhdWx0O1xuXG5cbi8vPT0gUHJvZ3Jlc3MgYmFyc1xuLy9cbi8vIyNcblxuLy8qKiBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSB3aG9sZSBwcm9ncmVzcyBjb21wb25lbnRcbiRwcm9ncmVzcy1iZzogICAgICAgICAgICAgICAgICNmNWY1ZjUgIWRlZmF1bHQ7XG4vLyoqIFByb2dyZXNzIGJhciB0ZXh0IGNvbG9yXG4kcHJvZ3Jlc3MtYmFyLWNvbG9yOiAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuXG4vLyoqIERlZmF1bHQgcHJvZ3Jlc3MgYmFyIGNvbG9yXG4kcHJvZ3Jlc3MtYmFyLWJnOiAgICAgICAgICAgICAkYnJhbmQtcHJpbWFyeSAhZGVmYXVsdDtcbi8vKiogU3VjY2VzcyBwcm9ncmVzcyBiYXIgY29sb3JcbiRwcm9ncmVzcy1iYXItc3VjY2Vzcy1iZzogICAgICRicmFuZC1zdWNjZXNzICFkZWZhdWx0O1xuLy8qKiBXYXJuaW5nIHByb2dyZXNzIGJhciBjb2xvclxuJHByb2dyZXNzLWJhci13YXJuaW5nLWJnOiAgICAgJGJyYW5kLXdhcm5pbmcgIWRlZmF1bHQ7XG4vLyoqIERhbmdlciBwcm9ncmVzcyBiYXIgY29sb3JcbiRwcm9ncmVzcy1iYXItZGFuZ2VyLWJnOiAgICAgICRicmFuZC1kYW5nZXIgIWRlZmF1bHQ7XG4vLyoqIEluZm8gcHJvZ3Jlc3MgYmFyIGNvbG9yXG4kcHJvZ3Jlc3MtYmFyLWluZm8tYmc6ICAgICAgICAkYnJhbmQtaW5mbyAhZGVmYXVsdDtcblxuXG4vLz09IExpc3QgZ3JvdXBcbi8vXG4vLyMjXG5cbi8vKiogQmFja2dyb3VuZCBjb2xvciBvbiBgLmxpc3QtZ3JvdXAtaXRlbWBcbiRsaXN0LWdyb3VwLWJnOiAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbi8vKiogYC5saXN0LWdyb3VwLWl0ZW1gIGJvcmRlciBjb2xvclxuJGxpc3QtZ3JvdXAtYm9yZGVyOiAgICAgICAgICAgICAjZGRkICFkZWZhdWx0O1xuLy8qKiBMaXN0IGdyb3VwIGJvcmRlciByYWRpdXNcbiRsaXN0LWdyb3VwLWJvcmRlci1yYWRpdXM6ICAgICAgJGJvcmRlci1yYWRpdXMtYmFzZSAhZGVmYXVsdDtcblxuLy8qKiBCYWNrZ3JvdW5kIGNvbG9yIG9mIHNpbmdsZSBsaXN0IGl0ZW1zIG9uIGhvdmVyXG4kbGlzdC1ncm91cC1ob3Zlci1iZzogICAgICAgICAgICNmNWY1ZjUgIWRlZmF1bHQ7XG4vLyoqIFRleHQgY29sb3Igb2YgYWN0aXZlIGxpc3QgaXRlbXNcbiRsaXN0LWdyb3VwLWFjdGl2ZS1jb2xvcjogICAgICAgJGNvbXBvbmVudC1hY3RpdmUtY29sb3IgIWRlZmF1bHQ7XG4vLyoqIEJhY2tncm91bmQgY29sb3Igb2YgYWN0aXZlIGxpc3QgaXRlbXNcbiRsaXN0LWdyb3VwLWFjdGl2ZS1iZzogICAgICAgICAgJGNvbXBvbmVudC1hY3RpdmUtYmcgIWRlZmF1bHQ7XG4vLyoqIEJvcmRlciBjb2xvciBvZiBhY3RpdmUgbGlzdCBlbGVtZW50c1xuJGxpc3QtZ3JvdXAtYWN0aXZlLWJvcmRlcjogICAgICAkbGlzdC1ncm91cC1hY3RpdmUtYmcgIWRlZmF1bHQ7XG4vLyoqIFRleHQgY29sb3IgZm9yIGNvbnRlbnQgd2l0aGluIGFjdGl2ZSBsaXN0IGl0ZW1zXG4kbGlzdC1ncm91cC1hY3RpdmUtdGV4dC1jb2xvcjogIGxpZ2h0ZW4oJGxpc3QtZ3JvdXAtYWN0aXZlLWJnLCA0MCUpICFkZWZhdWx0O1xuXG4vLyoqIFRleHQgY29sb3Igb2YgZGlzYWJsZWQgbGlzdCBpdGVtc1xuJGxpc3QtZ3JvdXAtZGlzYWJsZWQtY29sb3I6ICAgICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG4vLyoqIEJhY2tncm91bmQgY29sb3Igb2YgZGlzYWJsZWQgbGlzdCBpdGVtc1xuJGxpc3QtZ3JvdXAtZGlzYWJsZWQtYmc6ICAgICAgICAgJGdyYXktbGlnaHRlciAhZGVmYXVsdDtcbi8vKiogVGV4dCBjb2xvciBmb3IgY29udGVudCB3aXRoaW4gZGlzYWJsZWQgbGlzdCBpdGVtc1xuJGxpc3QtZ3JvdXAtZGlzYWJsZWQtdGV4dC1jb2xvcjogJGxpc3QtZ3JvdXAtZGlzYWJsZWQtY29sb3IgIWRlZmF1bHQ7XG5cbiRsaXN0LWdyb3VwLWxpbmstY29sb3I6ICAgICAgICAgIzU1NSAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWxpbmstaG92ZXItY29sb3I6ICAgJGxpc3QtZ3JvdXAtbGluay1jb2xvciAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWxpbmstaGVhZGluZy1jb2xvcjogIzMzMyAhZGVmYXVsdDtcblxuXG4vLz09IFBhbmVsc1xuLy9cbi8vIyNcblxuJHBhbmVsLWJnOiAgICAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRwYW5lbC1ib2R5LXBhZGRpbmc6ICAgICAgICAgIDE1cHggIWRlZmF1bHQ7XG4kcGFuZWwtaGVhZGluZy1wYWRkaW5nOiAgICAgICAxMHB4IDE1cHggIWRlZmF1bHQ7XG4kcGFuZWwtZm9vdGVyLXBhZGRpbmc6ICAgICAgICAkcGFuZWwtaGVhZGluZy1wYWRkaW5nICFkZWZhdWx0O1xuJHBhbmVsLWJvcmRlci1yYWRpdXM6ICAgICAgICAgJGJvcmRlci1yYWRpdXMtYmFzZSAhZGVmYXVsdDtcblxuLy8qKiBCb3JkZXIgY29sb3IgZm9yIGVsZW1lbnRzIHdpdGhpbiBwYW5lbHNcbiRwYW5lbC1pbm5lci1ib3JkZXI6ICAgICAgICAgICNkZGQgIWRlZmF1bHQ7XG4kcGFuZWwtZm9vdGVyLWJnOiAgICAgICAgICAgICAjZjVmNWY1ICFkZWZhdWx0O1xuXG4kcGFuZWwtZGVmYXVsdC10ZXh0OiAgICAgICAgICAkZ3JheS1kYXJrICFkZWZhdWx0O1xuJHBhbmVsLWRlZmF1bHQtYm9yZGVyOiAgICAgICAgI2RkZCAhZGVmYXVsdDtcbiRwYW5lbC1kZWZhdWx0LWhlYWRpbmctYmc6ICAgICNmNWY1ZjUgIWRlZmF1bHQ7XG5cbiRwYW5lbC1wcmltYXJ5LXRleHQ6ICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kcGFuZWwtcHJpbWFyeS1ib3JkZXI6ICAgICAgICAkYnJhbmQtcHJpbWFyeSAhZGVmYXVsdDtcbiRwYW5lbC1wcmltYXJ5LWhlYWRpbmctYmc6ICAgICRicmFuZC1wcmltYXJ5ICFkZWZhdWx0O1xuXG4kcGFuZWwtc3VjY2Vzcy10ZXh0OiAgICAgICAgICAkc3RhdGUtc3VjY2Vzcy10ZXh0ICFkZWZhdWx0O1xuJHBhbmVsLXN1Y2Nlc3MtYm9yZGVyOiAgICAgICAgJHN0YXRlLXN1Y2Nlc3MtYm9yZGVyICFkZWZhdWx0O1xuJHBhbmVsLXN1Y2Nlc3MtaGVhZGluZy1iZzogICAgJHN0YXRlLXN1Y2Nlc3MtYmcgIWRlZmF1bHQ7XG5cbiRwYW5lbC1pbmZvLXRleHQ6ICAgICAgICAgICAgICRzdGF0ZS1pbmZvLXRleHQgIWRlZmF1bHQ7XG4kcGFuZWwtaW5mby1ib3JkZXI6ICAgICAgICAgICAkc3RhdGUtaW5mby1ib3JkZXIgIWRlZmF1bHQ7XG4kcGFuZWwtaW5mby1oZWFkaW5nLWJnOiAgICAgICAkc3RhdGUtaW5mby1iZyAhZGVmYXVsdDtcblxuJHBhbmVsLXdhcm5pbmctdGV4dDogICAgICAgICAgJHN0YXRlLXdhcm5pbmctdGV4dCAhZGVmYXVsdDtcbiRwYW5lbC13YXJuaW5nLWJvcmRlcjogICAgICAgICRzdGF0ZS13YXJuaW5nLWJvcmRlciAhZGVmYXVsdDtcbiRwYW5lbC13YXJuaW5nLWhlYWRpbmctYmc6ICAgICRzdGF0ZS13YXJuaW5nLWJnICFkZWZhdWx0O1xuXG4kcGFuZWwtZGFuZ2VyLXRleHQ6ICAgICAgICAgICAkc3RhdGUtZGFuZ2VyLXRleHQgIWRlZmF1bHQ7XG4kcGFuZWwtZGFuZ2VyLWJvcmRlcjogICAgICAgICAkc3RhdGUtZGFuZ2VyLWJvcmRlciAhZGVmYXVsdDtcbiRwYW5lbC1kYW5nZXItaGVhZGluZy1iZzogICAgICRzdGF0ZS1kYW5nZXItYmcgIWRlZmF1bHQ7XG5cblxuLy89PSBUaHVtYm5haWxzXG4vL1xuLy8jI1xuXG4vLyoqIFBhZGRpbmcgYXJvdW5kIHRoZSB0aHVtYm5haWwgaW1hZ2VcbiR0aHVtYm5haWwtcGFkZGluZzogICAgICAgICAgIDRweCAhZGVmYXVsdDtcbi8vKiogVGh1bWJuYWlsIGJhY2tncm91bmQgY29sb3JcbiR0aHVtYm5haWwtYmc6ICAgICAgICAgICAgICAgICRib2R5LWJnICFkZWZhdWx0O1xuLy8qKiBUaHVtYm5haWwgYm9yZGVyIGNvbG9yXG4kdGh1bWJuYWlsLWJvcmRlcjogICAgICAgICAgICAjZGRkICFkZWZhdWx0O1xuLy8qKiBUaHVtYm5haWwgYm9yZGVyIHJhZGl1c1xuJHRodW1ibmFpbC1ib3JkZXItcmFkaXVzOiAgICAgJGJvcmRlci1yYWRpdXMtYmFzZSAhZGVmYXVsdDtcblxuLy8qKiBDdXN0b20gdGV4dCBjb2xvciBmb3IgdGh1bWJuYWlsIGNhcHRpb25zXG4kdGh1bWJuYWlsLWNhcHRpb24tY29sb3I6ICAgICAkdGV4dC1jb2xvciAhZGVmYXVsdDtcbi8vKiogUGFkZGluZyBhcm91bmQgdGhlIHRodW1ibmFpbCBjYXB0aW9uXG4kdGh1bWJuYWlsLWNhcHRpb24tcGFkZGluZzogICA5cHggIWRlZmF1bHQ7XG5cblxuLy89PSBXZWxsc1xuLy9cbi8vIyNcblxuJHdlbGwtYmc6ICAgICAgICAgICAgICAgICAgICAgI2Y1ZjVmNSAhZGVmYXVsdDtcbiR3ZWxsLWJvcmRlcjogICAgICAgICAgICAgICAgIGRhcmtlbigkd2VsbC1iZywgNyUpICFkZWZhdWx0O1xuXG5cbi8vPT0gQmFkZ2VzXG4vL1xuLy8jI1xuXG4kYmFkZ2UtY29sb3I6ICAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuLy8qKiBMaW5rZWQgYmFkZ2UgdGV4dCBjb2xvciBvbiBob3ZlclxuJGJhZGdlLWxpbmstaG92ZXItY29sb3I6ICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRiYWRnZS1iZzogICAgICAgICAgICAgICAgICAgICRncmF5LWxpZ2h0ICFkZWZhdWx0O1xuXG4vLyoqIEJhZGdlIHRleHQgY29sb3IgaW4gYWN0aXZlIG5hdiBsaW5rXG4kYmFkZ2UtYWN0aXZlLWNvbG9yOiAgICAgICAgICAkbGluay1jb2xvciAhZGVmYXVsdDtcbi8vKiogQmFkZ2UgYmFja2dyb3VuZCBjb2xvciBpbiBhY3RpdmUgbmF2IGxpbmtcbiRiYWRnZS1hY3RpdmUtYmc6ICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG5cbiRiYWRnZS1mb250LXdlaWdodDogICAgICAgICAgIGJvbGQgIWRlZmF1bHQ7XG4kYmFkZ2UtbGluZS1oZWlnaHQ6ICAgICAgICAgICAxICFkZWZhdWx0O1xuJGJhZGdlLWJvcmRlci1yYWRpdXM6ICAgICAgICAgMTBweCAhZGVmYXVsdDtcblxuXG4vLz09IEJyZWFkY3J1bWJzXG4vL1xuLy8jI1xuXG4kYnJlYWRjcnVtYi1wYWRkaW5nLXZlcnRpY2FsOiAgIDhweCAhZGVmYXVsdDtcbiRicmVhZGNydW1iLXBhZGRpbmctaG9yaXpvbnRhbDogMTVweCAhZGVmYXVsdDtcbi8vKiogQnJlYWRjcnVtYiBiYWNrZ3JvdW5kIGNvbG9yXG4kYnJlYWRjcnVtYi1iZzogICAgICAgICAgICAgICAgICNmNWY1ZjUgIWRlZmF1bHQ7XG4vLyoqIEJyZWFkY3J1bWIgdGV4dCBjb2xvclxuJGJyZWFkY3J1bWItY29sb3I6ICAgICAgICAgICAgICAjY2NjICFkZWZhdWx0O1xuLy8qKiBUZXh0IGNvbG9yIG9mIGN1cnJlbnQgcGFnZSBpbiB0aGUgYnJlYWRjcnVtYlxuJGJyZWFkY3J1bWItYWN0aXZlLWNvbG9yOiAgICAgICAkZ3JheS1saWdodCAhZGVmYXVsdDtcbi8vKiogVGV4dHVhbCBzZXBhcmF0b3IgZm9yIGJldHdlZW4gYnJlYWRjcnVtYiBlbGVtZW50c1xuJGJyZWFkY3J1bWItc2VwYXJhdG9yOiAgICAgICAgICBcIi9cIiAhZGVmYXVsdDtcblxuXG4vLz09IENhcm91c2VsXG4vL1xuLy8jI1xuXG4kY2Fyb3VzZWwtdGV4dC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgICAgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjYpICFkZWZhdWx0O1xuXG4kY2Fyb3VzZWwtY29udHJvbC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRjYXJvdXNlbC1jb250cm9sLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAxNSUgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtY29udHJvbC1vcGFjaXR5OiAgICAgICAgICAgICAgICAgICAgLjUgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtY29udHJvbC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgMjBweCAhZGVmYXVsdDtcblxuJGNhcm91c2VsLWluZGljYXRvci1hY3RpdmUtYmc6ICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtaW5kaWNhdG9yLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcblxuJGNhcm91c2VsLWNhcHRpb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG5cblxuLy89PSBDbG9zZVxuLy9cbi8vIyNcblxuJGNsb3NlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgYm9sZCAhZGVmYXVsdDtcbiRjbG9zZS1jb2xvcjogICAgICAgICAgICAgICAgICMwMDAgIWRlZmF1bHQ7XG4kY2xvc2UtdGV4dC1zaGFkb3c6ICAgICAgICAgICAwIDFweCAwICNmZmYgIWRlZmF1bHQ7XG5cblxuLy89PSBDb2RlXG4vL1xuLy8jI1xuXG4kY29kZS1jb2xvcjogICAgICAgICAgICAgICAgICAjYzcyNTRlICFkZWZhdWx0O1xuJGNvZGUtYmc6ICAgICAgICAgICAgICAgICAgICAgI2Y5ZjJmNCAhZGVmYXVsdDtcblxuJGtiZC1jb2xvcjogICAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRrYmQtYmc6ICAgICAgICAgICAgICAgICAgICAgICMzMzMgIWRlZmF1bHQ7XG5cbiRwcmUtYmc6ICAgICAgICAgICAgICAgICAgICAgICNmNWY1ZjUgIWRlZmF1bHQ7XG4kcHJlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAkZ3JheS1kYXJrICFkZWZhdWx0O1xuJHByZS1ib3JkZXItY29sb3I6ICAgICAgICAgICAgI2NjYyAhZGVmYXVsdDtcbiRwcmUtc2Nyb2xsYWJsZS1tYXgtaGVpZ2h0OiAgIDM0MHB4ICFkZWZhdWx0O1xuXG5cbi8vPT0gVHlwZVxuLy9cbi8vIyNcblxuLy8qKiBIb3Jpem9udGFsIG9mZnNldCBmb3IgZm9ybXMgYW5kIGxpc3RzLlxuJGNvbXBvbmVudC1vZmZzZXQtaG9yaXpvbnRhbDogMTgwcHggIWRlZmF1bHQ7XG4vLyoqIFRleHQgbXV0ZWQgY29sb3JcbiR0ZXh0LW11dGVkOiAgICAgICAgICAgICAgICAgICRncmF5LWxpZ2h0ICFkZWZhdWx0O1xuLy8qKiBBYmJyZXZpYXRpb25zIGFuZCBhY3JvbnltcyBib3JkZXIgY29sb3JcbiRhYmJyLWJvcmRlci1jb2xvcjogICAgICAgICAgICRncmF5LWxpZ2h0ICFkZWZhdWx0O1xuLy8qKiBIZWFkaW5ncyBzbWFsbCBjb2xvclxuJGhlYWRpbmdzLXNtYWxsLWNvbG9yOiAgICAgICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG4vLyoqIEJsb2NrcXVvdGUgc21hbGwgY29sb3JcbiRibG9ja3F1b3RlLXNtYWxsLWNvbG9yOiAgICAgICRncmF5LWxpZ2h0ICFkZWZhdWx0O1xuLy8qKiBCbG9ja3F1b3RlIGZvbnQgc2l6ZVxuJGJsb2NrcXVvdGUtZm9udC1zaXplOiAgICAgICAgKCRmb250LXNpemUtYmFzZSAqIDEuMjUpICFkZWZhdWx0O1xuLy8qKiBCbG9ja3F1b3RlIGJvcmRlciBjb2xvclxuJGJsb2NrcXVvdGUtYm9yZGVyLWNvbG9yOiAgICAgJGdyYXktbGlnaHRlciAhZGVmYXVsdDtcbi8vKiogUGFnZSBoZWFkZXIgYm9yZGVyIGNvbG9yXG4kcGFnZS1oZWFkZXItYm9yZGVyLWNvbG9yOiAgICAkZ3JheS1saWdodGVyICFkZWZhdWx0O1xuLy8qKiBXaWR0aCBvZiBob3Jpem9udGFsIGRlc2NyaXB0aW9uIGxpc3QgdGl0bGVzXG4kZGwtaG9yaXpvbnRhbC1vZmZzZXQ6ICAgICAgICAkY29tcG9uZW50LW9mZnNldC1ob3Jpem9udGFsICFkZWZhdWx0O1xuLy8qKiBIb3Jpem9udGFsIGxpbmUgY29sb3IuXG4kaHItYm9yZGVyOiAgICAgICAgICAgICAgICAgICAkZ3JheS1saWdodGVyICFkZWZhdWx0O1xuXG5cbiIsIi8vIFRhYmxlc1xuXG5AbWl4aW4gdGFibGUtcm93LXZhcmlhbnQoJHN0YXRlLCAkYmFja2dyb3VuZCkge1xuICAvLyBFeGFjdCBzZWxlY3RvcnMgYmVsb3cgcmVxdWlyZWQgdG8gb3ZlcnJpZGUgYC50YWJsZS1zdHJpcGVkYCBhbmQgcHJldmVudFxuICAvLyBpbmhlcml0YW5jZSB0byBuZXN0ZWQgdGFibGVzLlxuICAudGFibGUgPiB0aGVhZCA+IHRyLFxuICAudGFibGUgPiB0Ym9keSA+IHRyLFxuICAudGFibGUgPiB0Zm9vdCA+IHRyIHtcbiAgICA+IHRkLiN7JHN0YXRlfSxcbiAgICA+IHRoLiN7JHN0YXRlfSxcbiAgICAmLiN7JHN0YXRlfSA+IHRkLFxuICAgICYuI3skc3RhdGV9ID4gdGgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVzIGZvciBgLnRhYmxlLWhvdmVyYFxuICAvLyBOb3RlOiB0aGlzIGlzIG5vdCBhdmFpbGFibGUgZm9yIGNlbGxzIG9yIHJvd3Mgd2l0aGluIGB0aGVhZGAgb3IgYHRmb290YC5cbiAgLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciB7XG4gICAgPiB0ZC4jeyRzdGF0ZX06aG92ZXIsXG4gICAgPiB0aC4jeyRzdGF0ZX06aG92ZXIsXG4gICAgJi4jeyRzdGF0ZX06aG92ZXIgPiB0ZCxcbiAgICAmOmhvdmVyID4gLiN7JHN0YXRlfSxcbiAgICAmLiN7JHN0YXRlfTpob3ZlciA+IHRoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYmFja2dyb3VuZCwgNSUpO1xuICAgIH1cbiAgfVxufVxuIiwiLy9cbi8vIFRhYmxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iZztcbn1cbnRoIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuXG4vLyBCYXNlbGluZSBzdHlsZXNcblxuLnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogJGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICAvLyBDZWxsc1xuICA+IHRoZWFkLFxuICA+IHRib2R5LFxuICA+IHRmb290IHtcbiAgICA+IHRyIHtcbiAgICAgID4gdGgsXG4gICAgICA+IHRkIHtcbiAgICAgICAgcGFkZGluZzogJHRhYmxlLWNlbGwtcGFkZGluZztcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gQm90dG9tIGFsaWduIGZvciBjb2x1bW4gaGVhZGluZ3NcbiAgPiB0aGVhZCA+IHRyID4gdGgge1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICR0YWJsZS1ib3JkZXItY29sb3I7XG4gIH1cbiAgLy8gUmVtb3ZlIHRvcCBib3JkZXIgZnJvbSB0aGVhZCBieSBkZWZhdWx0XG4gID4gY2FwdGlvbiArIHRoZWFkLFxuICA+IGNvbGdyb3VwICsgdGhlYWQsXG4gID4gdGhlYWQ6Zmlyc3QtY2hpbGQge1xuICAgID4gdHI6Zmlyc3QtY2hpbGQge1xuICAgICAgPiB0aCxcbiAgICAgID4gdGQge1xuICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBBY2NvdW50IGZvciBtdWx0aXBsZSB0Ym9keSBpbnN0YW5jZXNcbiAgPiB0Ym9keSArIHRib2R5IHtcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgfVxuXG4gIC8vIE5lc3RpbmdcbiAgLnRhYmxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1iZztcbiAgfVxufVxuXG5cbi8vIENvbmRlbnNlZCB0YWJsZSB3LyBoYWxmIHBhZGRpbmdcblxuLnRhYmxlLWNvbmRlbnNlZCB7XG4gID4gdGhlYWQsXG4gID4gdGJvZHksXG4gID4gdGZvb3Qge1xuICAgID4gdHIge1xuICAgICAgPiB0aCxcbiAgICAgID4gdGQge1xuICAgICAgICBwYWRkaW5nOiAkdGFibGUtY29uZGVuc2VkLWNlbGwtcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG4vLyBCb3JkZXJlZCB2ZXJzaW9uXG4vL1xuLy8gQWRkIGJvcmRlcnMgYWxsIGFyb3VuZCB0aGUgdGFibGUgYW5kIGJldHdlZW4gYWxsIHRoZSBjb2x1bW5zLlxuXG4udGFibGUtYm9yZGVyZWQge1xuICBib3JkZXI6IDFweCBzb2xpZCAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICA+IHRoZWFkLFxuICA+IHRib2R5LFxuICA+IHRmb290IHtcbiAgICA+IHRyIHtcbiAgICAgID4gdGgsXG4gICAgICA+IHRkIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgPiB0aGVhZCA+IHRyIHtcbiAgICA+IHRoLFxuICAgID4gdGQge1xuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFplYnJhLXN0cmlwaW5nXG4vL1xuLy8gRGVmYXVsdCB6ZWJyYS1zdHJpcGUgc3R5bGVzIChhbHRlcm5hdGluZyBncmF5IGFuZCB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kcylcblxuLnRhYmxlLXN0cmlwZWQge1xuICA+IHRib2R5ID4gdHI6bnRoLWNoaWxkKG9kZCkge1xuICAgID4gdGQsXG4gICAgPiB0aCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmctYWNjZW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIEhvdmVyIGVmZmVjdFxuLy9cbi8vIFBsYWNlZCBoZXJlIHNpbmNlIGl0IGhhcyB0byBjb21lIGFmdGVyIHRoZSBwb3RlbnRpYWwgemVicmEgc3RyaXBpbmdcblxuLnRhYmxlLWhvdmVyIHtcbiAgPiB0Ym9keSA+IHRyOmhvdmVyIHtcbiAgICA+IHRkLFxuICAgID4gdGgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJnLWhvdmVyO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFRhYmxlIGNlbGwgc2l6aW5nXG4vL1xuLy8gUmVzZXQgZGVmYXVsdCB0YWJsZSBiZWhhdmlvclxuXG50YWJsZSBjb2xbY2xhc3MqPVwiY29sLVwiXSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7IC8vIFByZXZlbnQgYm9yZGVyIGhpZGluZyBpbiBGaXJlZm94IGFuZCBJRTkvMTAgKHNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExNjIzKVxuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogdGFibGUtY29sdW1uO1xufVxudGFibGUge1xuICB0ZCxcbiAgdGgge1xuICAgICZbY2xhc3MqPVwiY29sLVwiXSB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljOyAvLyBQcmV2ZW50IGJvcmRlciBoaWRpbmcgaW4gRmlyZWZveCBhbmQgSUU5LzEwIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTYyMylcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBUYWJsZSBiYWNrZ3JvdW5kc1xuLy9cbi8vIEV4YWN0IHNlbGVjdG9ycyBiZWxvdyByZXF1aXJlZCB0byBvdmVycmlkZSBgLnRhYmxlLXN0cmlwZWRgIGFuZCBwcmV2ZW50XG4vLyBpbmhlcml0YW5jZSB0byBuZXN0ZWQgdGFibGVzLlxuXG4vLyBHZW5lcmF0ZSB0aGUgY29udGV4dHVhbCB2YXJpYW50c1xuQGluY2x1ZGUgdGFibGUtcm93LXZhcmlhbnQoJ2FjdGl2ZScsICR0YWJsZS1iZy1hY3RpdmUpO1xuQGluY2x1ZGUgdGFibGUtcm93LXZhcmlhbnQoJ3N1Y2Nlc3MnLCAkc3RhdGUtc3VjY2Vzcy1iZyk7XG5AaW5jbHVkZSB0YWJsZS1yb3ctdmFyaWFudCgnaW5mbycsICRzdGF0ZS1pbmZvLWJnKTtcbkBpbmNsdWRlIHRhYmxlLXJvdy12YXJpYW50KCd3YXJuaW5nJywgJHN0YXRlLXdhcm5pbmctYmcpO1xuQGluY2x1ZGUgdGFibGUtcm93LXZhcmlhbnQoJ2RhbmdlcicsICRzdGF0ZS1kYW5nZXItYmcpO1xuXG5cbi8vIFJlc3BvbnNpdmUgdGFibGVzXG4vL1xuLy8gV3JhcCB5b3VyIHRhYmxlcyBpbiBgLnRhYmxlLXJlc3BvbnNpdmVgIGFuZCB3ZSdsbCBtYWtlIHRoZW0gbW9iaWxlIGZyaWVuZGx5XG4vLyBieSBlbmFibGluZyBob3Jpem9udGFsIHNjcm9sbGluZy4gT25seSBhcHBsaWVzIDw3NjhweC4gRXZlcnl0aGluZyBhYm92ZSB0aGF0XG4vLyB3aWxsIGRpc3BsYXkgbm9ybWFsbHkuXG5cbi50YWJsZS1yZXNwb25zaXZlIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHNjcmVlbi14cy1tYXgpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAoJGxpbmUtaGVpZ2h0LWNvbXB1dGVkICogMC43NSk7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG5cbiAgICAvLyBUaWdodGVuIHVwIHNwYWNpbmdcbiAgICA+IC50YWJsZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAvLyBFbnN1cmUgdGhlIGNvbnRlbnQgZG9lc24ndCB3cmFwXG4gICAgICA+IHRoZWFkLFxuICAgICAgPiB0Ym9keSxcbiAgICAgID4gdGZvb3Qge1xuICAgICAgICA+IHRyIHtcbiAgICAgICAgICA+IHRoLFxuICAgICAgICAgID4gdGQge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTcGVjaWFsIG92ZXJyaWRlcyBmb3IgdGhlIGJvcmRlcmVkIHRhYmxlc1xuICAgID4gLnRhYmxlLWJvcmRlcmVkIHtcbiAgICAgIGJvcmRlcjogMDtcblxuICAgICAgLy8gTnVrZSB0aGUgYXBwcm9wcmlhdGUgYm9yZGVycyBzbyB0aGF0IHRoZSBwYXJlbnQgY2FuIGhhbmRsZSB0aGVtXG4gICAgICA+IHRoZWFkLFxuICAgICAgPiB0Ym9keSxcbiAgICAgID4gdGZvb3Qge1xuICAgICAgICA+IHRyIHtcbiAgICAgICAgICA+IHRoOmZpcnN0LWNoaWxkLFxuICAgICAgICAgID4gdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgID4gdGg6bGFzdC1jaGlsZCxcbiAgICAgICAgICA+IHRkOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBPbmx5IG51a2UgdGhlIGxhc3Qgcm93J3MgYm90dG9tLWJvcmRlciBpbiBgdGJvZHlgIGFuZCBgdGZvb3RgIHNpbmNlXG4gICAgICAvLyBjaGFuY2VzIGFyZSB0aGVyZSB3aWxsIGJlIG9ubHkgb25lIGB0cmAgaW4gYSBgdGhlYWRgIGFuZCB0aGF0IHdvdWxkXG4gICAgICAvLyByZW1vdmUgdGhlIGJvcmRlciBhbHRvZ2V0aGVyLlxuICAgICAgPiB0Ym9keSxcbiAgICAgID4gdGZvb3Qge1xuICAgICAgICA+IHRyOmxhc3QtY2hpbGQge1xuICAgICAgICAgID4gdGgsXG4gICAgICAgICAgPiB0ZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuICB9XG59XG4iLCIucXVvdGUtYmxvY2sge1xuICAgIGJsb2NrcXVvdGUge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3BhbigxMCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBwdXNoKDEgb3IgMTIpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS05NjApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4oNik7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogc3Bhbig1KSArIGd1dHRlcigxMik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5pbWFnZXF1b3RlLWJsb2NrIHtcbiAgICAuYnRuLXBkZiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgICAgICB9XG4gICAgfSAgIFxufVxuIiwiLnByb2R1Y3RzLWNvbnRhaW5lciB7XG5cdEBpbmNsdWRlIGNsZWFyZml4O1xuXHRtYXJnaW4tYm90dG9tOiAkc3BhY2luZyAqIDIgIWltcG9ydGFudDtcbn1cblxuLnByb2R1Y3QtYmxvY2sge1xuXHRtYXJnaW4tYm90dG9tOiAwO1xuXG5cdCY6bGFzdC1vZi10eXBlIHtcblx0XHRcblx0fVxuXG5cdC8vIFB1bGwgdGhlIHByb2R1Y3QgdXAgdG8gZml0IGluIHdpdGggcHJvZHVjdCBhYm92ZS4uLlxuXHQmICsgLnByb2R1Y3QtYmxvY2sge1xuXHRcdEBpbmNsdWRlIGFuZ2xlLXJlc3BvbnNpdmUtbWFyZ2luKHRvcCk7XG5cdH1cblxuXHQmIHtcblx0XHQubWFzay1ib3R0b20tbGVmdCwgLm1hc2stdG9wLWxlZnQge1xuXHRcdFx0JjphZnRlciwgJjpiZWZvcmUge1xuXHRcdFx0XHRAaW5jbHVkZSBhbmdsZS1jb2xvcihsZWZ0LCAkcHJvZHVjdC1iYWNrZ3JvdW5kKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0LnByb2R1Y3QtY29udGVudCB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkcHJvZHVjdC1iYWNrZ3JvdW5kO1xuXHRcdH1cblx0fVxuXG5cdCYuYWx0IHtcblx0XHQubWFzay1ib3R0b20tcmlnaHQsIC5tYXNrLXRvcC1yaWdodCB7XG5cdFx0XHQmOmFmdGVyLCAmOmJlZm9yZSB7XG5cdFx0XHRcdEBpbmNsdWRlIGFuZ2xlLWNvbG9yKHJpZ2h0LCAkcHJvZHVjdC1hbHQtYmFja2dyb3VuZCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5wcm9kdWN0LWNvbnRlbnQge1xuXHRcdFx0YmFja2dyb3VuZDogJHByb2R1Y3QtYWx0LWJhY2tncm91bmQ7XG5cdFx0fVxuXHR9XG5cblx0LnByb2R1Y3QtY29udGVudCB7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcblx0XHRcdEBpbmNsdWRlIHRhYmxlZnkoJHNwYWNpbmctbW9iaWxlLCBtaWRkbGUpO1xuXHRcdH1cblx0fVxuXG5cdC5ib2R5IHtcblx0XHRwYWRkaW5nLXRvcDogMjBweDtcblx0XHRwYWRkaW5nLWJvdHRvbTogMjBweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG5cdFx0XHR3aWR0aDogc3Bhbig3KTtcblx0XHRcdHBhZGRpbmctdG9wOiAwO1xuXHRcdFx0cGFkZGluZy1ib3R0b206IDA7XG5cdFx0fVxuXG5cdFx0LmJvZHktaW5uZXIge1xuXHRcdFx0QGluY2x1ZGUgdGFibGVmeSgkc3BhY2luZy1tb2JpbGUsIHRvcCk7XG5cblx0XHRcdCYgPiAuaWNvbiB7XG5cdFx0XHRcdG1pbi13aWR0aDogNTBweDtcblxuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuXHRcdFx0XHRcdG1pbi13aWR0aDogOTBweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC50ZXh0IHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblxuXHRcdHAsIGgyIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDVweDtcblx0XHR9XG5cblx0XHQuYnRuIHtcblx0XHRcdG1hcmdpbi10b3A6ICRzcGFjaW5nO1xuXHRcdH1cblx0fVxuXG5cdC5pbWFnZSB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1tb2JpbGU7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuXHRcdFx0d2lkdGg6IHNwYW4oNSk7XG5cdFx0fVxuXG5cdFx0aW1nIHtcblx0XHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdFx0fVxuXHR9XG59IiwiLmxpc3RzLWJsb2NrIHtcblx0cGFkZGluZy1sZWZ0OiAkc3BhY2luZy1tb2JpbGU7XG5cdHBhZGRpbmctcmlnaHQ6ICRzcGFjaW5nLW1vYmlsZTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuXHRcdHBhZGRpbmctbGVmdDogJHNwYWNpbmc7XG5cdFx0cGFkZGluZy1yaWdodDogJHNwYWNpbmc7XG5cdH1cblxuXHQubGlzdHMge1xuXHRcdHVsIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG5cdFx0XHRcdEBpbmNsdWRlIHNwYW4oNik7XG5cdFx0XHR9XG5cblx0XHRcdGxpIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn0iLCIuYm9keWxpc3QtYmxvY2sge1xuXHRAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTk2MCkge1xuXHRcdEBpbmNsdWRlIG5lc3Q7XG5cdH1cblxuXHQuYm9keSB7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS05NjApIHtcblx0XHRcdEBpbmNsdWRlIHNwYW4oNik7XG5cdFx0fVxuXHR9XG5cblx0Lmxpc3Qge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtOTYwKSB7XG5cdFx0XHRAaW5jbHVkZSBzcGFuKDYpO1xuXHRcdH1cblx0fVxufSIsIi5saXN0YmFja2dyb3VuZGVkLWJsb2NrIHtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDQxJTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNDgwKSB7XG4gICAgXHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgfVxufSIsIi5saXN0aW1hZ2UtYmxvY2sge1xuXHRAaW5jbHVkZSBjbGVhcmZpeDtcblx0QGluY2x1ZGUgY2VudHJlZC1tb2JpbGU7XG5cblx0Lmxpc3Qge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNDgwKSB7XG5cdFx0XHRAaW5jbHVkZSBzcGFuKDYpO1xuXHRcdH1cblxuXHRcdHVsIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0fVxuXHR9XG5cblx0LmltYWdlIHtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNDgwKSB7XG5cdFx0XHRAaW5jbHVkZSBzcGFuKDYpO1xuXHRcdH1cblx0fVxufSIsIi5oZXJvY2Fyb3VzZWwtYmxvY2sge1xuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gICAgLm93bC10aGVtZSAub3dsLWNvbnRyb2xzIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBAaW5jbHVkZSBhbmdsZS1yZXNwb25zaXZlLW1hcmdpbih0b3AsICRtYXNrLWdyYWRpZW50LW1vYmlsZSwgLTMwKTtcbiAgICB9XG5cbiAgICAub3dsLWl0ZW0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLml0ZW0ge1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICAvLy1tcy1iZWhhdmlvcjogdXJsKC9zY3JpcHRzL3BvbHlmaWxscy9iYWNrZ3JvdW5kLXNpemUvYmFja2dyb3VuZHNpemUubWluLmh0Yyk7IC8vIERvZXNuJ3Qgd29yayB1bnRpbCByZXNpemU/IEkgZXZlbiB0cmllZCBtYW51YWxseSBmaXJpbmcgcmVzaXplIGV2ZW50IGluIGpzIGZpbGUsIGJ1dCBkaWRuJ3Qgd29yay4uLiBqdXN0IHJlcXVpcmUgYSBsYXJnZSBpbWFnZSBhbmQgZG9uZVxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXG4gICAgICAgIC5jYXB0aW9uLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogNTBweDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMTBweDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtOTYwKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDE3MHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY2FwdGlvbiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDYxMHB4O1xuXG4gICAgICAgICAgICAgICAgLm1hc2stdG9wLWxlZnQ6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYW5nbGUobGVmdCwgdG9wLCA1NXB4LCA2MzBweCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5tYXNrLWJvdHRvbS1sZWZ0OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYW5nbGUobGVmdCwgYm90dG9tLCA1NXB4LCA2MzBweCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC51bmRlcmxheWVyIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAtMTBweDtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IC0xMHB4O1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgLy8gSGFzIHRoZSBhbmdsZSwgYnV0IG5lZWRzIHRvIGJlIDEwcHggb3V0LCBzbyB3ZSdyZSB1c2luZyBhIGJvcmRlciB0aGVuIHNoaWZ0aW5nIHRoZSB3aG9sZSB0aGluZy4uLlxuICAgICAgICAgICAgICAgICAgICAmLm1hc2stYm90dG9tLWxlZnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMTBweCBzb2xpZCAjZmZmO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMTBweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuNik7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYubWFzay10b3AtbGVmdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxMHB4IHNvbGlkICNmZmY7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxMHB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC42KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC0xMHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciwgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYW5nbGUtY29sb3IobGVmdCwgcmdiYSgyNTUsMjU1LDI1NSwwLjYpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jYXB0aW9uLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdGFibGVmeSgwKTtcblxuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAtMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IC0xMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC42KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5oZWFkaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdGFibGVmeSgwKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS00ODApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5jb250ZW50LWltYWdlLCAuY29udGVudC10ZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAuY29udGVudC1pbWFnZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDYwcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxMjBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5jb250ZW50LXRleHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAuaGVhZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQtbm9ybWFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IGVtKDMwcHgpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLmJvZHkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQtYm9sZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIi5tb2RhbGNhcm91c2VsLWJsb2NrIHtcblx0LmNhcHRpb24ge1xuXHRcdHBhZGRpbmc6IDQwcHg7XG5cdFx0cGFkZGluZy1ib3R0b206IDA7XG5cdFx0bWluLWhlaWdodDogMTIwcHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR9XG5cblx0Lm93bC1jb250cm9scyB7XG5cdFx0aGVpZ2h0OiAwO1xuXG5cdFx0Lm93bC1wYWdpbmF0aW9uIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG5cdFx0Lm93bC1idXR0b25zIHtcblxuXHRcdFx0Lm93bC1wcmV2LCAub3dsLW5leHQge1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGJvdHRvbTogNTBweDtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0fVxuXG5cdFx0XHQub3dsLXByZXYge1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdH1cblxuXHRcdFx0Lm93bC1uZXh0IHtcblx0XHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn0iLCIucGxheWxpc3RjYXJvdXNlbC1ibG9jayB7XG5cdC50YWItY29udGVudCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGdyYXktbGlnaHRlcjtcblxuXHRcdC50YWItcGFuZSB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0fVxuXHR9XG5cblx0Lm93bC1jYXJvdXNlbCB7XG5cdFx0cGFkZGluZzogMTBweCA2MHB4O1xuXG5cdFx0Lml0ZW0ge1xuXG5cdFx0XHRhIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHBhZGRpbmc6IDEwcHggMTBweDtcblx0XHRcdFx0Y29sb3I6ICR0ZXh0LWNvbG9yO1xuXG5cdFx0XHRcdCY6aG92ZXIsICY6YWN0aXZlLCAmOmZvY3VzLCAmOnZpc2l0ZWQge1xuXHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdFx0XHRvdXRsaW5lOiAwO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0Y29sb3I6ICRicmFuZC1wcmltYXJ5O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ji5hY3RpdmUge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1wcmltYXJ5O1xuXHRcdFx0XHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQuY2FwdGlvbiB7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0bWFyZ2luOiA1cHg7XG5cdFx0XHRcdGZvbnQtc2l6ZTogZW0oMjBweCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Lm93bC1jb250cm9scyB7XG5cdFx0XHRoZWlnaHQ6IDA7XG5cblx0XHRcdC5vd2wtcHJldiwgLm93bC1uZXh0IHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDUwJTtcblx0XHRcdFx0bWFyZ2luLXRvcDogLTE1cHg7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdH1cblxuXHRcdFx0Lm93bC1wcmV2IHtcblx0XHRcdFx0bGVmdDogMTBweDtcblx0XHRcdH1cblxuXHRcdFx0Lm93bC1uZXh0IHtcblx0XHRcdFx0cmlnaHQ6IDEwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59IiwiQGltcG9ydCBcImhlbHBlcnMvYm9vdHN0cmFwIHNhc3MgYW5kIG1peGlucy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2Jvb3RzdHJhcCBzYXNzIGFuZCBtaXhpbnMvX2NvbXBvbmVudC1hbmltYXRpb25zLnNjc3NcIjtcblxuLmZhcXMtYmxvY2sge1xuXHRcbn0iLCIvL1xuLy8gQ29tcG9uZW50IGFuaW1hdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEhlYWRzIHVwIVxuLy9cbi8vIFdlIGRvbid0IHVzZSB0aGUgYC5vcGFjaXR5KClgIG1peGluIGhlcmUgc2luY2UgaXQgY2F1c2VzIGEgYnVnIHdpdGggdGV4dFxuLy8gZmllbGRzIGluIElFNy04LiBTb3VyY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzM1NTIuXG5cbi5mYWRlIHtcbiAgb3BhY2l0eTogMDtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IC4xNXMgbGluZWFyKTtcbiAgJi5pbiB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4uY29sbGFwc2Uge1xuICBkaXNwbGF5OiBub25lO1xuXG4gICYuaW4gICAgICB7IGRpc3BsYXk6IGJsb2NrOyB9XG4gIC8vIFtjb252ZXJ0ZXJdIGV4dHJhY3RlZCB0ciYuaW4gdG8gdHIuY29sbGFwc2UuaW5cbiAgLy8gW2NvbnZlcnRlcl0gZXh0cmFjdGVkIHRib2R5Ji5pbiB0byB0Ym9keS5jb2xsYXBzZS5pblxufVxuXG50ci5jb2xsYXBzZS5pbiAgICB7IGRpc3BsYXk6IHRhYmxlLXJvdzsgfVxuXG50Ym9keS5jb2xsYXBzZS5pbiB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cDsgfVxuXG4uY29sbGFwc2luZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKGhlaWdodCAuMzVzIGVhc2UpO1xufVxuIiwiLmZhcS1ibG9jayB7XG5cdG1hcmdpbi1ib3R0b206IDNweDtcblx0YmFja2dyb3VuZC1jb2xvcjogJGdyYXktbGlnaHRlcjtcblxuXHQvLyBDb250YWluZXJzXG5cdC5oZWFkLCAuYm9keSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0Zm9udC1zaXplOiBlbSgxOHB4KTtcblxuXHQgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcblx0ICAgICAgICBmb250LXNpemU6IGVtKDIwcHgpO1xuXHQgICAgfVxuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRsZWZ0OiAxMHB4O1xuXHRcdFx0QGluY2x1ZGUgY3VzdG9tLWljb247XG5cdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRcdGZvbnQtc2l6ZTogNTVweDtcblx0XHR9XG5cdH1cblxuXHQuaGVhZCB7XG5cdFx0QGV4dGVuZCAuaWNvbi1xdWVzdGlvbjtcblxuXHR9XG5cblx0LmJvZHkge1xuXHRcdEBleHRlbmQgLmljb24tYW5zd2VyO1xuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbG9yOiAkYnJhbmQtcHJpbWFyeTtcblx0XHR9XG5cdH1cblxuXHQvLyBJbm5lciBzdHVmZlxuXHQuaGVhZC1pbm5lciwgLmJvZHktaW5uZXIge1xuXHRcdHBhZGRpbmc6IDE0cHggMTRweCAxNHB4IDYwcHg7XG5cdH1cblxuXHQuaGVhZC1pbm5lciB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Y29sb3I6ICR0ZXh0LWNvbG9yO1xuXG5cdFx0JiwgJjphY3RpdmUsICY6aG92ZXIge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdH1cblx0fVxuXG5cdC5ib2R5LWlubmVyIHtcblx0fVxufSIsIkBpbXBvcnQgXCJoZWxwZXJzL2Jvb3RzdHJhcCBzYXNzIGFuZCBtaXhpbnMvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9ib290c3RyYXAgc2FzcyBhbmQgbWl4aW5zL25hdnNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2Jvb3RzdHJhcCBzYXNzIGFuZCBtaXhpbnMvbWl4aW5zL3RhYi1mb2N1c1wiO1xuXG4udmlkZW9waWNrZXItYmxvY2sge1xuXHRAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTk2MCkge1xuXHRcdEBpbmNsdWRlIG5lc3Q7XG5cdH1cblxuXHQudmlkZW8ge1xuXHRcdG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS05NjApIHtcblx0XHRcdEBpbmNsdWRlIHNwYW4oOCk7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdH1cblxuXHRcdGlmcmFtZSB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cblxuXHQucGlja2VyIHtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTk2MCkge1xuXHRcdFx0QGluY2x1ZGUgc3Bhbig0KTtcblx0XHR9XG5cblx0XHQudG9nZ2xlcGxheWxpc3Qge1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0cGFkZGluZzogNXB4O1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0Ly9wYWRkaW5nLWxlZnQ6IDM1cHg7XG5cdFx0XHRAZXh0ZW5kIC5pY29uLWNsb3NlO1xuXG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdEBpbmNsdWRlIGN1c3RvbS1pY29uO1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdHdpZHRoOiAzNXB4O1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAtNXB4O1xuICBcdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHRcdC8vcG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHQvL2xlZnQ6IDVweDtcblx0XHRcdH1cblxuXHRcdFx0Ji5jb2xsYXBzZWQge1xuXHRcdFx0XHRAZXh0ZW5kIC5pY29uLWJhcnM7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0bGkge1xuXHRcdFx0YSB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRwYWRkaW5nOiAxMHB4O1xuXHRcdFx0XHRjb2xvcjogJHRleHQtY29sb3I7XG5cdFx0XHRcdGZvbnQtc2l6ZTogZW0oMjRweCk7XG5cdFx0XHR9XG5cblx0XHRcdGltZyB7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAxNXB4O1xuXHRcdFx0XHR3aWR0aDogMzBweDtcblx0XHRcdH1cblxuXHRcdFx0Ji5hY3RpdmUge1xuXHRcdFx0XHRhIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1saWdodGVyO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdCYuYWN0aXZlLCAmOmhvdmVyIHtcblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0Y29sb3I6ICRicmFuZC1wcmltYXJ5O1xuXHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufSIsIi8vXG4vLyBOYXZzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhc2UgY2xhc3Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5uYXYge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7IC8vIE92ZXJyaWRlIGRlZmF1bHQgdWwvb2xcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcblxuICA+IGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICA+IGEge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiAkbmF2LWxpbmstcGFkZGluZztcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2LWxpbmstaG92ZXItYmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQgc3RhdGUgc2V0cyB0ZXh0IHRvIGdyYXkgYW5kIG51a2VzIGhvdmVyL3RhYiBlZmZlY3RzXG4gICAgJi5kaXNhYmxlZCA+IGEge1xuICAgICAgY29sb3I6ICRuYXYtZGlzYWJsZWQtbGluay1jb2xvcjtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJG5hdi1kaXNhYmxlZC1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE9wZW4gZHJvcGRvd25zXG4gIC5vcGVuID4gYSB7XG4gICAgJixcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdi1saW5rLWhvdmVyLWJnO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkbGluay1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBOYXYgZGl2aWRlcnMgKGRlcHJlY2F0ZWQgd2l0aCB2My4wLjEpXG4gIC8vXG4gIC8vIFRoaXMgc2hvdWxkIGhhdmUgYmVlbiByZW1vdmVkIGluIHYzIHdpdGggdGhlIGRyb3BwaW5nIG9mIGAubmF2LWxpc3RgLCBidXRcbiAgLy8gd2UgbWlzc2VkIGl0LiBXZSBkb24ndCBjdXJyZW50bHkgc3VwcG9ydCB0aGlzIGFueXdoZXJlLCBidXQgaW4gdGhlIGludGVyZXN0XG4gIC8vIG9mIG1haW50YWluaW5nIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgaW4gY2FzZSB5b3UgdXNlIGl0LCBpdCdzIGRlcHJlY2F0ZWQuXG4gIC5uYXYtZGl2aWRlciB7XG4gICAgQGluY2x1ZGUgbmF2LWRpdmlkZXIoKTtcbiAgfVxuXG4gIC8vIFByZXZlbnQgSUU4IGZyb20gbWlzcGxhY2luZyBpbWdzXG4gIC8vXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9pc3N1ZXMvOTg0I2lzc3VlY29tbWVudC0zOTg1OTg5XG4gID4gbGkgPiBhID4gaW1nIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cbn1cblxuXG4vLyBUYWJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEdpdmUgdGhlIHRhYnMgc29tZXRoaW5nIHRvIHNpdCBvblxuLm5hdi10YWJzIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRuYXYtdGFicy1ib3JkZXItY29sb3I7XG4gID4gbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIC8vIE1ha2UgdGhlIGxpc3QtaXRlbXMgb3ZlcmxheSB0aGUgYm90dG9tIGJvcmRlclxuICAgIG1hcmdpbi1ib3R0b206IC0xcHg7XG5cbiAgICAvLyBBY3R1YWwgdGFicyAoYXMgbGlua3MpXG4gICAgPiBhIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMnB4O1xuICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1iYXNlICRib3JkZXItcmFkaXVzLWJhc2UgMCAwO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJG5hdi10YWJzLWxpbmstaG92ZXItYm9yZGVyLWNvbG9yICRuYXYtdGFicy1saW5rLWhvdmVyLWJvcmRlci1jb2xvciAkbmF2LXRhYnMtYm9yZGVyLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFjdGl2ZSBzdGF0ZSwgYW5kIGl0cyA6aG92ZXIgdG8gb3ZlcnJpZGUgbm9ybWFsIDpob3ZlclxuICAgICYuYWN0aXZlID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJG5hdi10YWJzLWFjdGl2ZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2LXRhYnMtYWN0aXZlLWxpbmstaG92ZXItYmc7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRuYXYtdGFicy1hY3RpdmUtbGluay1ob3Zlci1ib3JkZXItY29sb3I7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIHB1bGxpbmcgdGhpcyBpbiBtYWlubHkgZm9yIGxlc3Mgc2hvcnRoYW5kXG4gICYubmF2LWp1c3RpZmllZCB7XG4gICAgQGV4dGVuZCAubmF2LWp1c3RpZmllZDtcbiAgICBAZXh0ZW5kIC5uYXYtdGFicy1qdXN0aWZpZWQ7XG4gIH1cbn1cblxuXG4vLyBQaWxsc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLm5hdi1waWxscyB7XG4gID4gbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgLy8gTGlua3MgcmVuZGVyZWQgYXMgcGlsbHNcbiAgICA+IGEge1xuICAgICAgYm9yZGVyLXJhZGl1czogJG5hdi1waWxscy1ib3JkZXItcmFkaXVzO1xuICAgIH1cbiAgICArIGxpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAycHg7XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgJi5hY3RpdmUgPiBhIHtcbiAgICAgICYsXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkbmF2LXBpbGxzLWFjdGl2ZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2LXBpbGxzLWFjdGl2ZS1saW5rLWhvdmVyLWJnO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIFN0YWNrZWQgcGlsbHNcbi5uYXYtc3RhY2tlZCB7XG4gID4gbGkge1xuICAgIGZsb2F0OiBub25lO1xuICAgICsgbGkge1xuICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IC8vIG5vIG5lZWQgZm9yIHRoaXMgZ2FwIGJldHdlZW4gbmF2IGl0ZW1zXG4gICAgfVxuICB9XG59XG5cblxuLy8gTmF2IHZhcmlhdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEp1c3RpZmllZCBuYXYgbGlua3Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLm5hdi1qdXN0aWZpZWQge1xuICB3aWR0aDogMTAwJTtcblxuICA+IGxpIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICA+IGEge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIH1cbiAgfVxuXG4gID4gLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51IHtcbiAgICB0b3A6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAgID4gbGkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgID4gYSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIE1vdmUgYm9yZGVycyB0byBhbmNob3JzIGluc3RlYWQgb2YgYm90dG9tIG9mIGxpc3Rcbi8vXG4vLyBNaXhpbiBmb3IgYWRkaW5nIG9uIHRvcCB0aGUgc2hhcmVkIGAubmF2LWp1c3RpZmllZGAgc3R5bGVzIGZvciBvdXIgdGFic1xuLm5hdi10YWJzLWp1c3RpZmllZCB7XG4gIGJvcmRlci1ib3R0b206IDA7XG5cbiAgPiBsaSA+IGEge1xuICAgIC8vIE92ZXJyaWRlIG1hcmdpbiBmcm9tIC5uYXYtdGFic1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1iYXNlO1xuICB9XG5cbiAgPiAuYWN0aXZlID4gYSxcbiAgPiAuYWN0aXZlID4gYTpob3ZlcixcbiAgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJG5hdi10YWJzLWp1c3RpZmllZC1saW5rLWJvcmRlci1jb2xvcjtcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbmF2LXRhYnMtanVzdGlmaWVkLWxpbmstYm9yZGVyLWNvbG9yO1xuICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtYmFzZSAkYm9yZGVyLXJhZGl1cy1iYXNlIDAgMDtcbiAgICB9XG4gICAgPiAuYWN0aXZlID4gYSxcbiAgICA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuICAgID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJG5hdi10YWJzLWp1c3RpZmllZC1hY3RpdmUtbGluay1ib3JkZXItY29sb3I7XG4gICAgfVxuICB9XG59XG5cblxuLy8gVGFiYmFibGUgdGFic1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBIaWRlIHRhYmJhYmxlIHBhbmVzIHRvIHN0YXJ0LCBzaG93IHRoZW0gd2hlbiBgLmFjdGl2ZWBcbi50YWItY29udGVudCB7XG4gID4gLnRhYi1wYW5lIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gID4gLmFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuXG4vLyBEcm9wZG93bnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gU3BlY2lmaWMgZHJvcGRvd25zXG4ubmF2LXRhYnMgLmRyb3Bkb3duLW1lbnUge1xuICAvLyBtYWtlIGRyb3Bkb3duIGJvcmRlciBvdmVybGFwIHRhYiBib3JkZXJcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgLy8gUmVtb3ZlIHRoZSB0b3Agcm91bmRlZCBjb3JuZXJzIGhlcmUgc2luY2UgdGhlcmUgaXMgYSBoYXJkIGVkZ2UgYWJvdmUgdGhlIG1lbnVcbiAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoMCk7XG59XG4iLCIvLyBXZWJLaXQtc3R5bGUgZm9jdXNcblxuQG1peGluIHRhYi1mb2N1cygpIHtcbiAgLy8gRGVmYXVsdFxuICBvdXRsaW5lOiB0aGluIGRvdHRlZDtcbiAgLy8gV2ViS2l0XG4gIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG4iLCIuZG93bmxvYWQtYmxvY2sge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1saWdodGVyO1xuXHRwYWRkaW5nOiAkc3BhY2luZztcblx0QGluY2x1ZGUgY2VudHJlZC1tb2JpbGU7XG5cblx0Zm9ybSB7XG5cdFx0XG5cdH1cblxuXHRwIHtcblx0XHRmb250LXNpemU6IGVtKDE4cHgpO1xuXG5cdCAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuXHQgICAgICAgIGZvbnQtc2l6ZTogZW0oMjBweCk7XG5cdCAgICB9XG5cdH1cbn0iLCIucmVjZW50bmV3cy1ibG9jayB7XG5cblx0bGkge1xuXHRcdG1hcmdpbi1ib3R0b206IDhweDtcblx0XHRmb250LXNpemU6IDE0cHg7XG5cblx0XHQuYXJ0aWNsZS1saW5rIHtcblx0XHRcdEBpbmNsdWRlIHRhYmxlZnkoMCwgdG9wKTtcblx0XHRcdGNvbG9yOiAkdGV4dC1jb2xvcjtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdH1cblxuXHRcdFx0LmRhdGUge1xuXHRcdFx0XHRjb2xvcjogJHJlY2VudG5ld3MtZGF0ZS1jb2xvcjtcblx0XHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRcdH1cblxuXHRcdFx0LnRpdGxlIHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiAkd2VpZ2h0LWJvbGQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59IiwiLmFydGljbGUtYmxvY2sge1xuXHRAaW5jbHVkZSB0YWJsZWZ5KDEwcHgsIHRvcCwgdHJ1ZSk7XG5cdEBpbmNsdWRlIG5lc3Q7XG5cdHBhZGRpbmctYm90dG9tOiAkc3BhY2luZztcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRncmF5LWxpZ2h0ZXI7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS0xMjAwKSB7XG5cdFx0Ly9AaW5jbHVkZSB0YWJsZWZ5KDEwcHgsIHRvcCwgdHJ1ZSk7XG5cdH1cblxuXHQmLmJsb2NrIHtcblx0XHRtYXJnaW4tYm90dG9tOiAkc3BhY2luZyArIDEwO1xuXHR9XG5cblx0LmJvZHkge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdEBpbmNsdWRlIGNlbnRyZWQtbW9iaWxlO1xuXG5cdFx0aDIsIHAge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXHRcdH1cblxuXHRcdC5saW5rLWljb25uZWQge1xuXHRcdFx0bWFyZ2luLXRvcDogNXB4O1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdH1cblxuXHRcdGgyIHtcblx0XHRcdGEge1xuXHRcdFx0XHRjb2xvcjogJHRleHQtY29sb3I7XG5cblx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0XHRcdGNvbG9yOiAkYnJhbmQtcHJpbWFyeTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5pbWFnZSB7XG5cdFx0bWluLXdpZHRoOiAzMTBweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtOTYwKSB7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuXHRcdH1cblxuXHRcdGltZyB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICRncmF5LWxpZ2h0O1xuXHRcdH1cblx0fVxuXG5cbn0iLCIuYXJ0aWNsZXNuYXYtYmxvY2sge1xuXHRtYXJnaW4tYm90dG9tOiAkc3BhY2luZyAqIDI7XG5cdEBpbmNsdWRlIGNsZWFyZml4O1xuXG5cdC5wcmV2LWNvbnRhaW5lciwgLm5leHQtY29udGFpbmVyIHtcblx0XHRAaW5jbHVkZSBzcGFuKDYgbmVzdCk7XG5cdFx0bWFyZ2luLXRvcDogLTEwcHg7IC8vIEkgbGlrZSBteSBjb2RlIGxpa2UgSSBsaWtlIG15IHdvbWVuLCBkaXJ0eVxuXHRcdHBhZGRpbmc6IDAgMTBweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtMTIwMCkge1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHR9XG5cdH1cblxuXHQucHJldi1jb250YWluZXIge1xuXHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdH1cblxuXHRcdC5pY29uLXByZXYge1xuXHQgICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcblx0ICAgIH1cblx0fVxuXG5cdC5uZXh0LWNvbnRhaW5lciB7XG5cdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdH1cblxuXHQgICAgLmljb24tbmV4dCB7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuXHQgICAgfVxuXHR9XG5cblx0LmJhY2stY29udGFpbmVyIHtcblx0XHQuaWNvbi1wcmV2IHtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdFx0fVxuXHR9XG5cblx0Lmljb24ge1xuXHRcdHdpZHRoOiBhdXRvO1xuXHRcdGZvbnQtc2l6ZTogNDBweDtcblx0fVxufSIsIi5hcnRpY2xlY29udGVudC1ibG9jayB7XG5cdHAsIGxpLCBzcGFuIHtcblx0XHRmb250LXNpemU6IGVtKDE4cHgpO1xuXG5cdCAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuXHQgICAgICAgIGZvbnQtc2l6ZTogZW0oMjBweCk7XG5cdCAgICB9XG5cdH1cbn0iLCIuY29udGFjdC1ibG9jayB7XG5cdGJhY2tncm91bmQtY29sb3I6ICRncmF5LWxpZ2h0ZXI7XG5cdHBhZGRpbmc6ICRzcGFjaW5nO1xuXHQvL0BpbmNsdWRlIGNlbnRyZWQtbW9iaWxlO1xuXG5cdC5kZXRhaWwge1xuXHRcdG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuXHRcdGZvbnQtc2l6ZTogZW0oMjBweCk7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuXHRcdFx0QGluY2x1ZGUgdGFibGVmeSgxMHB4LCB0b3AsIHRydWUpO1xuXHRcdH1cblxuXHRcdC5sYWJlbCB7XG5cdFx0XHRjb2xvcjogJGJyYW5kLXByaW1hcnk7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG5cdFx0XHRcdG1pbi13aWR0aDogMTYwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnZhbHVlIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblx0fVxufSIsIi5zdXBwb3J0LWJsb2NrIHtcbiAgICBwYWRkaW5nOiAkc3BhY2luZy1tb2JpbGU7XG5cdGJhY2tncm91bmQtY29sb3I6ICRncmF5LWxpZ2h0ZXI7XG5cdG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuICAgIEBpbmNsdWRlIHRhYmxlZnkoJHNwYWNpbmctbW9iaWxlLCB0b3AsIHRydWUpO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS00ODApIHtcbiAgICAgICAgcGFkZGluZzogJHNwYWNpbmc7XG4gICAgfVxuXG4gICAgLnNvZnR3YXJlLWRldGFpbHMge1xuICAgICAgICBsaSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcInxcIjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJyYW5kLXByaW1hcnk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmN1c3RvbS1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLmltYWdlIHtcbiAgICAgICAgbWluLXdpZHRoOiA2MHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNDgwKSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ib2R5IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgLmJvZHktaW5uZXIge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQtYm9sZDtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIuc3VwcG9ydHJlcXVlc3QtYmxvY2sge1xuICAgIHBhZGRpbmc6ICRzcGFjaW5nLW1vYmlsZTtcblx0YmFja2dyb3VuZC1jb2xvcjogJGdyYXktbGlnaHRlcjtcblx0bWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTQ4MCkge1xuICAgICAgICBwYWRkaW5nOiAkc3BhY2luZztcbiAgICB9XG59IiwiLnB1cmNoYXNlc3VwcG9ydC1ibG9jayB7XG4gICAgcGFkZGluZzogJHNwYWNpbmctbW9iaWxlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmF5LWxpZ2h0ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9ybSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY5KSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbiAgICAubW9iLW1lc3NhZ2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgXG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OSkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAjRGV0YWlsc0Zvcm0ge1xuICAgICAgICB0YWJsZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnN0eWxlZC1zZWxlY3Qge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMjVweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC00cHg7XG4gICAgICAgICAgICBib3JkZXI6IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDEzNiwgMTgzLCAyMTMsIDApO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHNlbGVjdC1hcnJvdy1jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogOHB4O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDRweDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgc2VsZWN0IHtcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNDgwKSB7XG4gICAgICAgIHBhZGRpbmc6ICRzcGFjaW5nO1xuICAgIH1cblxuICAgIC52ZXJzaW9ucyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG5cbiAgICAgICAgLnZlcnNpb24ge1xuICAgICAgICAgICAgaDQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC50YWJsZSB7XG4gICAgICAgICAgICAgICAgdGgsIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogOHB4IDVweDtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTQ4MCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogOHB4IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA2MCU7XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGgge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJyYW5kLXByaW1hcnk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0cjpsYXN0LWNoaWxkIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR3aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmNvZGUge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJyYW5kLXByaW1hcnk7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMzVweDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jb3N0IHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnN1bW1hcnkge1xuICAgICAgICBAaW5jbHVkZSBwYXJhc3BhY2U7XG5cbiAgICAgICAgLmNvc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgdGFibGVmeSgxMHB4LCB0b3AsIHRydWUpO1xuICAgICAgICAgICAgZm9udC1zaXplOiBlbSgyMHB4KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBhcmFzcGFjZTtcblxuICAgICAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDE3MHB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnJhbmQtcHJpbWFyeTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnZhbHVlIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIu+7vy5mb3JtLWJsb2NrIHtcbiAgICAuY29udG91clBhZ2Uge1xuICAgICAgICBwYWRkaW5nOiAkc3BhY2luZy1tb2JpbGU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRncmF5LWxpZ2h0ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNDgwKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc3BhY2luZztcbiAgICAgICAgfVxuXG4gICAgICAgIC5zcGFuNi5jb2wtbWQtNiB7XG4gICAgICAgICAgICAvKndpZHRoOiA1MCU7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDsqL1xuICAgICAgICAgICAgLnN0eWxlZC1zZWxlY3Q6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGluaXRpYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc3BhbjEyLmNvbC1tZC0xMiB7XG4gICAgICAgICAgICAuZmllbGRMYWJlbCB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY2hlY2tib3ggaW5wdXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc3BhY2luZyAvIDU7XG4gICAgICAgIH1cblxuICAgICAgICAudW1icmFjby1mb3Jtcy1maWVsZC5jaGVja2JveCBkaXYge1xuICAgICAgICAgICAgd2lkdGg6IDUlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnVtYnJhY28tZm9ybXMtZmllbGQuY2hlY2tib3ggbGFiZWwge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgd2lkdGg6IDk1JTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5idXR0b24tYmxvY2sge1xuXHRAaW5jbHVkZSBzcGFuKDEyKTtcblx0bWFyZ2luLWJvdHRvbTogMjBweDtcbn0iLCIjY29va2llLXBvbGljeSB7XG4gICAgYmFja2dyb3VuZDogbm9uZSByZXBlYXQgc2Nyb2xsIDAgMCAkd2hpdGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjY2KTtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHotaW5kZXg6IDk5OTk7XG4gICAgLmNvbnRhaW4ge1xuICAgIFx0IEBpbmNsdWRlIGNvbnRhaW5lci1yZW5kZXI7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0LWhvcml6b250YWwpIHtcbiAgICAgICAgd2lkdGg6IDQyNXB4O1xuICAgICAgICBtYXJnaW46IDEwcHggMjBweDtcbiAgICB9XG4gICAgc3Bhbi50aXRsZSB7XG4gICAgICAgIG1hcmdpbjogNXB4IDAgNXB4IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMjVweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICBjb2xvcjogJGJyYW5kLXByaW1hcnk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn0iLCIvLyBNb2JpbGUgYnV0dG9ucy4uLlxuLmhlYWRlci1tYWluLW5hdiB7XG4gICAgLmJ0bi1tZW51LCAuYnRuLWNsb3NlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMzBweCk7XG4gICAgICAgIC8vcGFkZGluZzogJHNwYWNpbmcgMjhweDtcbiAgICAgICAgcGFkZGluZzogMjNweCAxOXB4IDIzcHggMjRweDtcbiAgICAgICAgcmlnaHQ6IDBweDtcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciAwLjVzKTtcblxuICAgICAgICAmOmhvdmVyLCAmOmFjdGl2ZSwgJjpmb2N1cyB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyAvLyBOZXZlciBzaG93LCBldmVuIHdoZW4gbWVudS1kb3duIGFjdGl2ZS4uLlxuICAgICAgICB9XG5cbiAgICAgICAgLmljb24tbWVudSwgLmljb24tY2xvc2Uge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYnRuLW1lbnUge1xuICAgICAgICBjb2xvcjogIzUwNGY1NztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXktbGlnaHQ7XG4gICAgICAgIC8vYm9yZGVyOiAxcHggc29saWQgIzUwNGY1NztcbiAgICB9XG5cbiAgICAuYnRuLWNsb3NlIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgLy9ib3JkZXI6IDFweCBzb2xpZCAkd2hpdGU7XG4gICAgICAgIHotaW5kZXg6IDk5OTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAmLm1lbnUtZG93biB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gTW9iaWxlIHBvcHVwIG1lbnVcbi5tZW51IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIC8vd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgei1pbmRleDogMTAwO1xuICAgIHBhZGRpbmctdG9wOiA4MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA4MHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgXG4gICAgQGluY2x1ZGUgYWxwaGEtYXR0cmlidXRlKFwiYmFja2dyb3VuZC1jb2xvclwiLCByZ2JhKCRibGFjaywgMC45KSwgd2hpdGUpO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICAgIH1cbn1cblxuLm1haW4tbmF2IHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuICAgICAgICAmLnN0aWNreSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAtMXB4O1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICAvKiBjZW50ZXIgYWxsIGlubGluZSBjb250ZW50ICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgID4gLmhlYWRlci1tYWluLW5hdiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbSgxcHgsIHNvbGlkLCAjOWY5Yjk2LCAwLjcpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTE4MHB4O1xuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIE1haW4gbmF2XG4uaGVhZGVyLW1haW4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdyYXktbGlnaHQ7XG5cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuXG4gICAgLmhlYWRlci1tYWluLW5hdiB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktaGVhZGluZztcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgcGFkZGluZzogMTVweCAwIDA7XG4gICAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICAgIC8vYm9yZGVyLXRvcDogMXB4IHNvbGlkICM0MDQwNDA7XG4gICAgICAgICAgICBAaW5jbHVkZSBuby1idWxsZXRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwcHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBmaXJzdCBsZXZlbFxuICAgICAgICAgICAgbGkuc2ZIb3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRicmFuZC1wcmltYXJ5O1xuXG4gICAgICAgICAgICAgICAgLnNmLXdpdGgtdWwge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkZ3JheS1saWdodGVyO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAtM3B4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1saWdodGVyO1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLnNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvL3RleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRsaW5rLWNvbG9yO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIEFycm93IGFib3ZlIHRoZSBpdGVtLi4uXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDEwcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLm1vYmlsZS1saW5rIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiBlbSgxNHB4KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggMTBweDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0LW5vcm1hbDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy90ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkbGluay1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHdlaWdodC1ib2xkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gc2Vjb25kIGxldmVsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJGdyYXktbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTNweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRncmF5LWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5pY29uLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDI1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA3cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0LW5vcm1hbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCIuZm9vdC1uYXYge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgbWFyZ2luOiA1cHggMTBweCAyMHB4IDEwcHg7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OSkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDEwcHg7XG4gICAgICAgIGJvdHRvbTogMjBweDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgICAgfVxuICAgIH1cbn0iLCJAaW1wb3J0IFwiL3NjcmlwdHMvbGlicy9vd2xDYXJvdXNlbC9vd2wuY2Fyb3VzZWwuY3NzXCI7XG5AaW1wb3J0IFwiL3NjcmlwdHMvbGlicy9vd2xDYXJvdXNlbC9vd2wudHJhbnNpdGlvbnMuY3NzXCI7XG5cbi8qXG4qICAgT3dsIENhcm91c2VsIE93bCBEZW1vIFRoZW1lIFxuKiAgIHYxLjMuM1xuKi9cblxuLm93bC1jb250cm9scyB7XG5cbiAgICAvLyBCdXR0b25zXG4gICAgLm93bC1idXR0b25zIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgIC5vd2wtbmV4dCwgLm93bC1wcmV2IHtcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB6b29tOiAxO1xuICAgICAgICAgICAgKmRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAxMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICAgICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMzBweDtcbiAgICAgICAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogMzBweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JheTtcblxuICAgICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAub3dsLW5leHQge1xuICAgICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAycHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5jbGlja2FibGUgLm93bC1idXR0b25zIGRpdjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gICAgLm93bC1wYWdpbmF0aW9uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMnB4O1xuXG4gICAgICAgIC8vIFBhZ2luYXRpb25cbiAgICAgICAgLm93bC1wYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHpvb206IDE7XG4gICAgICAgICAgICAqZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogNXB4IDRweDtcblxuICAgICAgICAgICAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgICAgICAgICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmFjdGl2ZSBzcGFuIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYnJhbmQtcHJpbWFyeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmLmNsaWNrYWJsZSAub3dsLXBhZ2luYXRpb24gLm93bC1wYWdlOmhvdmVyIHNwYW4ge1xuICAgICAgICBcbiAgICB9XG5cbiAgICAvLyBOdW1iZXJzXG4gICAgLm93bC1wYWdlIHNwYW4ub3dsLW51bWJlcnMge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBjb2xvcjogI0ZGRjtcbiAgICAgICAgcGFkZGluZzogMnB4IDEwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAzMHB4O1xuICAgICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gICAgfVxufVxuXG4ub3dsLWl0ZW0ge1xuICAgICYubG9hZGluZyB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDE1MHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoL3NjcmlwdHMvbGlicy9vd2xDYXJvdXNlbC9BamF4TG9hZGVyLmdpZikgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG4gICAgfVxufVxuXG4ub3dsLWNhcm91c2VsIHtcbiAgICBcbn0iLCIud3lzaXd5ZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJhc2U7XG4gICAgbGluZS1oZWlnaHQ6ICRiYXNlLWxpbmUtaGVpZ2h0O1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xufSIsIlxuXG4vLyBJbiBvcmRlciB0byB1c2UgbWFza3MgYXMgZXh0ZW5zaW9ucywgd2lsbCBuZWVkIHRvIHVzZSBzZXBhcmF0ZSBlbGVtZW50cywgYmVjYXVzZSBvdmVyZmxvdyBoaWRkZW4gaXMgbmVlZGVkIHRvIGhpZGUgdGhlIG1hc2tzIG9mZiBzY3JlZW4gcmVhbGx5IDovXG5cbi8vXG4vLyBCYXNlIGNsYXNzZXNcbi8vXG4ubWFza2VkLCAubWFza2VkLXRvcCwgLm1hc2tlZC1ib3R0b20ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHotaW5kZXg6IDE7XG59XG4ubWFzay1vdmVybGF5IHsgLy8gSWYgd2UgaGF2ZSBhIG1hc2sgZ29pbmcgb3ZlciBzb21ldGhpbmcsIGxldCdzIG1ha2Ugc3VyZSBpdCdzIG5vdCBjbGlja2FibGUuLi5cblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5tYXNrZWQtdG9wIHtcblx0QGluY2x1ZGUgYW5nbGUtcmVzcG9uc2l2ZS1wYWRkaW5nKHRvcCk7XG59XG4ubWFza2VkLXRvcC1vdmVybGF5IHtcblx0QGluY2x1ZGUgYW5nbGUtcmVzcG9uc2l2ZS1tYXJnaW4odG9wKTtcbn1cblxuLm1hc2tlZC1ib3R0b20ge1xuXHRAaW5jbHVkZSBhbmdsZS1yZXNwb25zaXZlLXBhZGRpbmcoYm90dG9tKTtcbn1cbi5tYXNrZWQtYm90dG9tLW92ZXJsYXkge1xuXHRAaW5jbHVkZSBhbmdsZS1yZXNwb25zaXZlLW1hcmdpbihib3R0b20pO1xufVxuXG5cbi8vXG4vLyBDb3JuZXJzXG4vL1xuLm1hc2stdG9wLWxlZnQge1xuXHQmLm1hc2staW52ZXJ0OmJlZm9yZSwgJjpiZWZvcmUge1xuXHRcdEBpbmNsdWRlIGFuZ2xlKGxlZnQsIHRvcCk7XG5cdH1cblx0Ji5tYXNrLWdyYXk6YmVmb3JlIHtcblx0XHRAaW5jbHVkZSBhbmdsZS1jb2xvcihsZWZ0LCAkZ3JheS1saWdodCk7XG5cdH1cbn1cbi5tYXNrLXRvcC1yaWdodCB7XG5cdCYubWFzay1pbnZlcnQ6YmVmb3JlLCAmOmJlZm9yZSB7XG5cdFx0QGluY2x1ZGUgYW5nbGUocmlnaHQsIHRvcCk7XG5cdH1cblx0Ji5tYXNrLWdyYXk6YmVmb3JlIHtcblx0XHRAaW5jbHVkZSBhbmdsZS1jb2xvcihyaWdodCwgJGdyYXktbGlnaHQpO1xuXHR9XG59XG4ubWFzay1ib3R0b20tbGVmdCB7XG5cdCYubWFzay1pbnZlcnQ6YWZ0ZXIsICY6YWZ0ZXIge1xuXHRcdEBpbmNsdWRlIGFuZ2xlKGxlZnQsIGJvdHRvbSk7XG5cdH1cblx0Ji5tYXNrLWdyYXk6YWZ0ZXIge1xuXHRcdEBpbmNsdWRlIGFuZ2xlLWNvbG9yKGxlZnQsICRncmF5LWxpZ2h0KTtcblx0fVxufVxuLm1hc2stYm90dG9tLXJpZ2h0IHtcblx0Ji5tYXNrLWludmVydDphZnRlciwgJjphZnRlciB7XG5cdFx0QGluY2x1ZGUgYW5nbGUocmlnaHQsIGJvdHRvbSk7XG5cdH1cblx0Ji5tYXNrLWdyYXk6YWZ0ZXIge1xuXHRcdEBpbmNsdWRlIGFuZ2xlLWNvbG9yKHJpZ2h0LCAkZ3JheS1saWdodCk7XG5cdH1cbn1cblxuXG5cbi8vXG4vLyBBcmNoaXZlZC4uLiBvdGhlciBzb2x1dGlvbnMsIHdoaWNoIG1heSBuZWVkIHRvIGJlIHVzZWQgbGF0ZXIsIGFuZCBpdCdzIGVhc2llciB0byBjb21tZW50IG91dCB0aGFuIGRpZyB0aHJvdWdoIEdpdFxuLy9cblxuJG1hc2stZ3JhZGllbnQ6IDEwMHB4O1xuJHBpOiAzLjE0MjtcblxuJGRlZ3JlZS1kZXNrdG9wOiAzO1xuLypcblxuLy8gRm9yIGFsbCB0aGUgYW5nbGVzIHVzZWQuLi5cblxuLm1hc2stdHIge1xuXHQmOmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCIgXCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMDtcblx0XHRyaWdodDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdGhlaWdodDogNTBweDtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9tYXNrLXRvcC1yaWdodC5wbmcnKTtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXHRcdC8vaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlcztcblx0XHQvL2ltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDtcblx0XHRpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzO1xuXHR9XG59XG5cblxuLy8gQmFzaWNhbGx5LCB3b3JrIG91dCByYXRpbyBvZiBkZWdyZWUgdG8gYSBjaXJjbGUgKHNvLCAzNiBkZWdyZWVzIHRoZW4gMTAlIG9mIGEgY2lyY2xlKVxuLy8gVGhlbiwgY2FsYyB0aGUgY2lyY3VtZmVyZW5jZVxuLy8gVGhlbiBjb21iaW5lIHRvIGdldCB0aGUgaGVpZ2h0IHRoZSBtYXNrIHNob3VsZCBiZSBieSB0aGUgZGVncmVlcyBvZiBhIGNpcmNsZSBpdCBoYXMgbW92ZWQuLi5cbkBmdW5jdGlvbiBwaS1kaXN0YW5jZSgkZGVncmVlLCAkd2lkdGg6IDEyMDBweCkge1xuXHRAcmV0dXJuICgkd2lkdGggKiAkcGkpICogKCgkZGVncmVlICogMikgLyAzNjApICsgMTsgLy8gKzEgZm9yIHJvdW5kaW5nIHB1cnBvc2VzXG59XG5cbiVza2V3IHtcblx0Y29udGVudDogXCIgXCI7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0cmlnaHQ6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5cbi5tYXNrZWQtd2hpdGUge1xuXHQmOmFmdGVyIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG5cdH1cblxuXHQmOmJlZm9yZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuXHR9XG59XG5cbi5tYXNrLXRvcC1yaWdodCB7XG5cdCY6YmVmb3JlIHtcblx0XHRAZXh0ZW5kICVza2V3O1xuXHRcdHRvcDogMDtcblx0XHRoZWlnaHQ6IHBpLWRpc3RhbmNlKCRkZWdyZWUtZGVza3RvcCk7XG5cdFx0Ly9tYXJnaW4tdG9wOiAtIHBpLWRpc3RhbmNlKCRkZWdyZWUtZGVza3RvcCkgLyAyO1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WSgjeyRkZWdyZWUtZGVza3RvcH1kZWcpO1xuXHRcdC1tb3otdHJhbnNmb3JtOiBza2V3WSgjeyRkZWdyZWUtZGVza3RvcH1kZWcpO1xuXHRcdC1tcy10cmFuc2Zvcm06IHNrZXdZKCN7JGRlZ3JlZS1kZXNrdG9wfWRlZyk7XG5cdFx0LW8tdHJhbnNmb3JtOiBza2V3WSgjeyRkZWdyZWUtZGVza3RvcH1kZWcpO1xuXHRcdHRyYW5zZm9ybTogc2tld1koI3skZGVncmVlLWRlc2t0b3B9ZGVnKTtcblx0XHQtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMCU7XG5cdFx0LW1zLXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMCU7XG5cdFx0dHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwJTtcblx0fVxufVxuXG4ubWFzay10b3AtbGVmdCB7XG5cdCY6YmVmb3JlIHtcblx0XHRAZXh0ZW5kICVza2V3O1xuXHRcdHRvcDogMDtcblx0XHRoZWlnaHQ6IHBpLWRpc3RhbmNlKCRkZWdyZWUtZGVza3RvcCk7XG5cdFx0Ly9tYXJnaW4tdG9wOiAtIHBpLWRpc3RhbmNlKCRkZWdyZWUtZGVza3RvcCkgLyAyO1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WSgtI3skZGVncmVlLWRlc2t0b3B9ZGVnKTtcblx0XHQtbW96LXRyYW5zZm9ybTogc2tld1koLSN7JGRlZ3JlZS1kZXNrdG9wfWRlZyk7XG5cdFx0LW1zLXRyYW5zZm9ybTogc2tld1koLSN7JGRlZ3JlZS1kZXNrdG9wfWRlZyk7XG5cdFx0LW8tdHJhbnNmb3JtOiBza2V3WSgtI3skZGVncmVlLWRlc2t0b3B9ZGVnKTtcblx0XHR0cmFuc2Zvcm06IHNrZXdZKC0jeyRkZWdyZWUtZGVza3RvcH1kZWcpO1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCUgMCU7XG5cdFx0LW1zLXRyYW5zZm9ybS1vcmlnaW46IDAlIDAlO1xuXHRcdHRyYW5zZm9ybS1vcmlnaW46IDAlIDAlO1xuXHR9XG59XG5cbi5tYXNrLWJvdHRvbS1yaWdodCB7XG5cdCY6YWZ0ZXIge1xuXHRcdEBleHRlbmQgJXNrZXc7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdGhlaWdodDogcGktZGlzdGFuY2UoJGRlZ3JlZS1kZXNrdG9wKTtcblx0XHQvL21hcmdpbi1ib3R0b206IC0gcGktZGlzdGFuY2UoJGRlZ3JlZS1kZXNrdG9wKSAvIDI7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06IHNrZXdZKC0jeyRkZWdyZWUtZGVza3RvcH1kZWcpO1xuXHRcdC1tb3otdHJhbnNmb3JtOiBza2V3WSgtI3skZGVncmVlLWRlc2t0b3B9ZGVnKTtcblx0XHQtbXMtdHJhbnNmb3JtOiBza2V3WSgtI3skZGVncmVlLWRlc2t0b3B9ZGVnKTtcblx0XHQtby10cmFuc2Zvcm06IHNrZXdZKC0jeyRkZWdyZWUtZGVza3RvcH1kZWcpO1xuXHRcdHRyYW5zZm9ybTogc2tld1koLSN7JGRlZ3JlZS1kZXNrdG9wfWRlZyk7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG5cdFx0LW1zLXRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcblx0XHR0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG5cdH1cbn1cblxuLm1hc2stYm90dG9tLWxlZnQge1xuXHQmOmFmdGVyIHtcblx0XHRAZXh0ZW5kICVza2V3O1xuXHRcdGJvdHRvbTogMDtcblx0XHRoZWlnaHQ6IHBpLWRpc3RhbmNlKCRkZWdyZWUtZGVza3RvcCk7XG5cdFx0Ly9tYXJnaW4tYm90dG9tOiAtIHBpLWRpc3RhbmNlKCRkZWdyZWUtZGVza3RvcCkgLyAyO1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WSgjeyRkZWdyZWUtZGVza3RvcH1kZWcpO1xuXHRcdC1tb3otdHJhbnNmb3JtOiBza2V3WSgjeyRkZWdyZWUtZGVza3RvcH1kZWcpO1xuXHRcdC1tcy10cmFuc2Zvcm06IHNrZXdZKCN7JGRlZ3JlZS1kZXNrdG9wfWRlZyk7XG5cdFx0LW8tdHJhbnNmb3JtOiBza2V3WSgjeyRkZWdyZWUtZGVza3RvcH1kZWcpO1xuXHRcdHRyYW5zZm9ybTogc2tld1koI3skZGVncmVlLWRlc2t0b3B9ZGVnKTtcblx0XHQtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG5cdFx0LW1zLXRyYW5zZm9ybS1vcmlnaW46IDAlIDEwMCU7XG5cdFx0dHJhbnNmb3JtLW9yaWdpbjogMCUgMTAwJTtcblx0fVxufVxuXG4qLyIsIkBtaXhpbiByZXNraW4oJGNvbG9yKSB7XG5cdGgxLCBoMiwgaDMsIGg0LCBoNSwgaDUsIGg2IHtcblx0XHRjb2xvcjogJGNvbG9yO1xuXHR9XG5cblx0YSB7XG5cdFx0Y29sb3I6ICRjb2xvcjtcblx0fVxuXG5cdC5pY29uIHtcblx0XHRjb2xvcjogJGNvbG9yO1xuXHR9XG5cblx0LmJ0biB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuXHRcdGNvbG9yOiB3aGl0ZTtcblxuXHRcdC5pY29uIHtcblx0XHRcdGNvbG9yOiB3aGl0ZTtcblx0XHR9XG5cdH1cblxuXHQucXVvdGUtd3JhcHBlZCB7XG5cdFx0JjpiZWZvcmUsICY6YWZ0ZXIge1xuXHRcdFx0Y29sb3I6ICRjb2xvcjtcblx0XHR9XG5cdH1cblxuXHR1bCB7XG5cdCAgICBsaSB7XG5cdCAgICAgICAgJjpiZWZvcmUge1xuXHQgICAgICAgIFx0Y29sb3I6ICRjb2xvcjtcblx0ICAgICAgICB9XG5cdCAgICB9XG5cdH1cblxuXHQuYmFja2dyb3VuZC10eXBlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXG5cdFx0aDEsIGgyLCBoMywgaDQsIGg1LCBoNSwgaDYge1xuXHRcdFx0Y29sb3I6IHdoaXRlO1xuXHRcdH1cblxuXHRcdHVsIHtcblx0XHQgICAgbGkge1xuXHRcdCAgICAgICAgJjpiZWZvcmUge1xuXHRcdCAgICAgICAgXHRjb2xvcjogd2hpdGU7XG5cdFx0ICAgICAgICB9XG5cdFx0ICAgIH1cblx0XHR9XG5cdH1cbn1cblxuLnByb2R1Y3QtdHlwZS1oaWdobGlnaHQge1xuXHRAaW5jbHVkZSByZXNraW4oJGJyYW5kLXByaW1hcnkpO1xufVxuXG4ucHJvZHVjdC10eXBlLXhwIHtcblx0QGluY2x1ZGUgcmVza2luKCR4cC1jb2xvcik7XG59XG5cbi5wcm9kdWN0LXR5cGUteHAtcGx1cyB7XG5cdEBpbmNsdWRlIHJlc2tpbigkeHAtcGx1cy1jb2xvcik7XG59XG5cbi5wcm9kdWN0LXR5cGUtY2Ege1xuXHRAaW5jbHVkZSByZXNraW4oJGNhLWNvbG9yKTtcbn1cblxuLnByb2R1Y3QtdHlwZS1wcSB7XG5cdEBpbmNsdWRlIHJlc2tpbigkcHEtY29sb3IpO1xufVxuXG4ucHJvZHVjdC10eXBlLXBsIHtcblx0QGluY2x1ZGUgcmVza2luKCRwbC1jb2xvcik7XG59XG5cbi5wcm9kdWN0LXR5cGUtZHMge1xuXHRAaW5jbHVkZSByZXNraW4oJGRzLWNvbG9yKTtcbn1cblxuLnByb2R1Y3QtdHlwZS1zYyB7XG5cdEBpbmNsdWRlIHJlc2tpbigkc2MtY29sb3IpO1xufVxuXG4ucHJvZHVjdC10eXBlLWVsIHtcblx0QGluY2x1ZGUgcmVza2luKCRlbC1jb2xvcik7XG59XG5cbi5wcm9kdWN0LXR5cGUtbWkge1xuXHRAaW5jbHVkZSByZXNraW4oJG1pLWNvbG9yKTtcbn1cblxuLnByb2R1Y3QtdHlwZS1sbyB7XG5cdEBpbmNsdWRlIHJlc2tpbigkbG8tY29sb3IpO1xufVxuXG4ucHJvZHVjdC10eXBlLXNvIHtcblx0QGluY2x1ZGUgcmVza2luKCRzby1jb2xvcik7XG59XG5cbi5wcm9kdWN0LXR5cGUtcG8ge1xuXHRAaW5jbHVkZSByZXNraW4oJHBvLWNvbG9yKTtcbn1cblxuLnByb2R1Y3QtdHlwZS1uZSB7XG5cdEBpbmNsdWRlIHJlc2tpbigkbmUtY29sb3IpO1xufVxuXG4ucHJvZHVjdC10eXBlLXY5IHtcblx0QGluY2x1ZGUgcmVza2luKCR2OS1jb2xvcik7XG59XG5cbi5wcm9kdWN0LXR5cGUtaW4ge1xuICAgIEBpbmNsdWRlIHJlc2tpbigkaW4tY29sb3IpO1xufVxuXG4ucHJvZHVjdC10eXBlLXdiIHtcbiAgICBAaW5jbHVkZSByZXNraW4oJHdiLWNvbG9yKTtcbn0iLCIubW9kYWwge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdHRvcDogMDtcblx0cmlnaHQ6IDA7XG5cdGJvdHRvbTogMDtcblx0bGVmdDogMDtcblx0aGVpZ2h0OiAxMDAlO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG5cdHotaW5kZXg6IDk5OTtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXHRhLm1vZGFsLWNsb3NlIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAtMzBweDtcblx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdHJpZ2h0OiAwcHg7XG5cdFx0Zm9udC1zaXplOiAyM3B4O1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdCY6aG92ZXIsICY6YWN0aXZlIHtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR9XG5cdH1cblx0Lm1vZGFsLWlubmVyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAyMCU7XG5cdFx0bGVmdDogJHNwYWNpbmctbW9iaWxlO1xuXHRcdHJpZ2h0OiAkc3BhY2luZy1tb2JpbGU7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdH1cblxuXHQubW9kYWwtY29udGVudCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG1hcmdpbjogYXV0bztcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0cGFkZGluZzogJHNwYWNpbmctbW9iaWxlO1xuXHRcdGN1cnNvcjogYXV0bztcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTQ4MCkge1xuXHRcdFx0cGFkZGluZzogJHNwYWNpbmc7XG5cdFx0XHRtYXgtd2lkdGg6IDgwJTtcblxuXHRcdH1cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTc2OSkge1xuXHRcdFx0bWF4LXdpZHRoOiA3MDBweDtcblx0XHR9XG5cdH1cbn1cblxuLm1vZGFsLW9wZW4ge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufSIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLyohXG5BbmltYXRlLmNzcyAtIGh0dHA6Ly9kYW5lZGVuLm1lL2FuaW1hdGVcbkxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSAtIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcblxuQ29weXJpZ2h0IChjKSAyMDE1IERhbmllbCBFZGVuXG4qL1xuXG4uYW5pbWF0ZWQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbn1cblxuLmFuaW1hdGVkLmluZmluaXRlIHtcbiAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG59XG5cbi5hbmltYXRlZC5oaW5nZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcbn1cblxuLmFuaW1hdGVkLmJvdW5jZUluLFxuLmFuaW1hdGVkLmJvdW5jZU91dCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAuNzVzO1xuICBhbmltYXRpb24tZHVyYXRpb246IC43NXM7XG59XG5cbi5hbmltYXRlZC5mbGlwT3V0WCxcbi5hbmltYXRlZC5mbGlwT3V0WSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAuNzVzO1xuICBhbmltYXRpb24tZHVyYXRpb246IC43NXM7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2Uge1xuICAwJSwgMjAlLCA1MyUsIDgwJSwgMTAwJSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcbiAgfVxuXG4gIDQwJSwgNDMlIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzU1LCAwLjA1MCwgMC44NTUsIDAuMDYwKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTMwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTMwcHgsIDApO1xuICB9XG5cbiAgNzAlIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzU1LCAwLjA1MCwgMC44NTUsIDAuMDYwKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTE1cHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTE1cHgsIDApO1xuICB9XG5cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwtNHB4LDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwtNHB4LDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlIHtcbiAgMCUsIDIwJSwgNTMlLCA4MCUsIDEwMCUge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gIH1cblxuICA0MCUsIDQzJSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NTUsIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMHB4LCAwKTtcbiAgfVxuXG4gIDcwJSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NTUsIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xNXB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xNXB4LCAwKTtcbiAgfVxuXG4gIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsLTRweCwwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsLTRweCwwKTtcbiAgfVxufVxuXG4uYm91bmNlIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlO1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmbGFzaCB7XG4gIDAlLCA1MCUsIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAyNSUsIDc1JSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZsYXNoIHtcbiAgMCUsIDUwJSwgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDI1JSwgNzUlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5mbGFzaCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsYXNoO1xuICBhbmltYXRpb24tbmFtZTogZmxhc2g7XG59XG5cbi8qIG9yaWdpbmFsbHkgYXV0aG9yZWQgYnkgTmljayBQZXR0aXQgLSBodHRwczovL2dpdGh1Yi5jb20vbmlja3BldHRpdC9nbGlkZSAqL1xuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcHVsc2Uge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG5cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAxLjA1LCAxLjA1KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgMS4wNSwgMS4wNSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBwdWxzZSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cblxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDUsIDEuMDUsIDEuMDUpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAxLjA1LCAxLjA1KTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxufVxuXG4ucHVsc2Uge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBwdWxzZTtcbiAgYW5pbWF0aW9uLW5hbWU6IHB1bHNlO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcnViYmVyQmFuZCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cblxuICAzMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMjUsIDAuNzUsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjI1LCAwLjc1LCAxKTtcbiAgfVxuXG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC43NSwgMS4yNSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuNzUsIDEuMjUsIDEpO1xuICB9XG5cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjE1LCAwLjg1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xNSwgMC44NSwgMSk7XG4gIH1cblxuICA2NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC45NSwgMS4wNSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45NSwgMS4wNSwgMSk7XG4gIH1cblxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDUsIC45NSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDUsIC45NSwgMSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBydWJiZXJCYW5kIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4yNSwgMC43NSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMjUsIDAuNzUsIDEpO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjc1LCAxLjI1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC43NSwgMS4yNSwgMSk7XG4gIH1cblxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMTUsIDAuODUsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjE1LCAwLjg1LCAxKTtcbiAgfVxuXG4gIDY1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjk1LCAxLjA1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjk1LCAxLjA1LCAxKTtcbiAgfVxuXG4gIDc1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgLjk1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgLjk1LCAxKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxufVxuXG4ucnViYmVyQmFuZCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJ1YmJlckJhbmQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBydWJiZXJCYW5kO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2hha2Uge1xuICAwJSwgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAxMCUsIDMwJSwgNTAlLCA3MCUsIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgfVxuXG4gIDIwJSwgNDAlLCA2MCUsIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzaGFrZSB7XG4gIDAlLCAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIDEwJSwgMzAlLCA1MCUsIDcwJSwgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICB9XG5cbiAgMjAlLCA0MCUsIDYwJSwgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTtcbiAgfVxufVxuXG4uc2hha2Uge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzaGFrZTtcbiAgYW5pbWF0aW9uLW5hbWU6IHNoYWtlO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc3dpbmcge1xuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAxNWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAxNWRlZyk7XG4gIH1cblxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTEwZGVnKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNWRlZyk7XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNWRlZyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAwZGVnKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHN3aW5nIHtcbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMTVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMTVkZWcpO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTEwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0xMGRlZyk7XG4gIH1cblxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDVkZWcpO1xuICB9XG5cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTVkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZyk7XG4gIH1cbn1cblxuLnN3aW5nIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzd2luZztcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgdGFkYSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cblxuICAxMCUsIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KSByb3RhdGUzZCgwLCAwLCAxLCAtM2RlZyk7XG4gIH1cblxuICAzMCUsIDUwJSwgNzAlLCA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKSByb3RhdGUzZCgwLCAwLCAxLCAzZGVnKTtcbiAgfVxuXG4gIDQwJSwgNjAlLCA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgdGFkYSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cblxuICAxMCUsIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KSByb3RhdGUzZCgwLCAwLCAxLCAtM2RlZyk7XG4gIH1cblxuICAzMCUsIDUwJSwgNzAlLCA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKSByb3RhdGUzZCgwLCAwLCAxLCAzZGVnKTtcbiAgfVxuXG4gIDQwJSwgNjAlLCA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG59XG5cbi50YWRhIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogdGFkYTtcbiAgYW5pbWF0aW9uLW5hbWU6IHRhZGE7XG59XG5cbi8qIG9yaWdpbmFsbHkgYXV0aG9yZWQgYnkgTmljayBQZXR0aXQgLSBodHRwczovL2dpdGh1Yi5jb20vbmlja3BldHRpdC9nbGlkZSAqL1xuXG5ALXdlYmtpdC1rZXlmcmFtZXMgd29iYmxlIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIDE1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgM2RlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpO1xuICB9XG5cbiAgNDUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTE1JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTE1JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICB9XG5cbiAgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAyZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMmRlZyk7XG4gIH1cblxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0xZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTFkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgd29iYmxlIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIDE1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgM2RlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpO1xuICB9XG5cbiAgNDUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTE1JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTE1JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICB9XG5cbiAgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAyZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMmRlZyk7XG4gIH1cblxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0xZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTFkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi53b2JibGUge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB3b2JibGU7XG4gIGFuaW1hdGlvbi1uYW1lOiB3b2JibGU7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBqZWxsbyB7XG4gIDExLjElIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZVxuICB9XG5cbiAgMjIuMiUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtMTIuNWRlZykgc2tld1koLTEyLjVkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBza2V3WCgtMTIuNWRlZykgc2tld1koLTEyLjVkZWcpXG4gIH1cbiAgMzMuMyUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCg2LjI1ZGVnKSBza2V3WSg2LjI1ZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2tld1goNi4yNWRlZykgc2tld1koNi4yNWRlZylcbiAgfVxuICA0NC40JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC0zLjEyNWRlZykgc2tld1koLTMuMTI1ZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2tld1goLTMuMTI1ZGVnKSBza2V3WSgtMy4xMjVkZWcpXG4gIH1cbiAgNTUuNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgxLjU2MjVkZWcpIHNrZXdZKDEuNTYyNWRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKDEuNTYyNWRlZykgc2tld1koMS41NjI1ZGVnKVxuICB9XG4gIDY2LjYlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTAuNzgxMjVkZWcpIHNrZXdZKC0wLjc4MTI1ZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2tld1goLTAuNzgxMjVkZWcpIHNrZXdZKC0wLjc4MTI1ZGVnKVxuICB9XG4gIDc3LjclIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goMC4zOTA2MjVkZWcpIHNrZXdZKDAuMzkwNjI1ZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2tld1goMC4zOTA2MjVkZWcpIHNrZXdZKDAuMzkwNjI1ZGVnKVxuICB9XG4gIDg4LjglIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTAuMTk1MzEyNWRlZykgc2tld1koLTAuMTk1MzEyNWRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKC0wLjE5NTMxMjVkZWcpIHNrZXdZKC0wLjE5NTMxMjVkZWcpXG4gIH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmVcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGplbGxvIHtcbiAgMTEuMSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lXG4gIH1cblxuICAyMi4yJSB7XG5cbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTEyLjVkZWcpIHNrZXdZKC0xMi41ZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2tld1goLTEyLjVkZWcpIHNrZXdZKC0xMi41ZGVnKVxuICB9XG4gIDMzLjMlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goNi4yNWRlZykgc2tld1koNi4yNWRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKDYuMjVkZWcpIHNrZXdZKDYuMjVkZWcpXG4gIH1cbiAgNDQuNCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtMy4xMjVkZWcpIHNrZXdZKC0zLjEyNWRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKC0zLjEyNWRlZykgc2tld1koLTMuMTI1ZGVnKVxuICB9XG4gIDU1LjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goMS41NjI1ZGVnKSBza2V3WSgxLjU2MjVkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBza2V3WCgxLjU2MjVkZWcpIHNrZXdZKDEuNTYyNWRlZylcbiAgfVxuICA2Ni42JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC0wLjc4MTI1ZGVnKSBza2V3WSgtMC43ODEyNWRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKC0wLjc4MTI1ZGVnKSBza2V3WSgtMC43ODEyNWRlZylcbiAgfVxuICA3Ny43JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDAuMzkwNjI1ZGVnKSBza2V3WSgwLjM5MDYyNWRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKDAuMzkwNjI1ZGVnKSBza2V3WSgwLjM5MDYyNWRlZylcbiAgfVxuICA4OC44JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC0wLjE5NTMxMjVkZWcpIHNrZXdZKC0wLjE5NTMxMjVkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBza2V3WCgtMC4xOTUzMTI1ZGVnKSBza2V3WSgtMC4xOTUzMTI1ZGVnKVxuICB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lXG4gIH1cbn1cblxuXG5cbi5qZWxsb3tcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmplbGxvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6amVsbG87XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlclxufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW4ge1xuICAwJSwgMjAlLCA0MCUsIDYwJSwgODAlLCAxMDAlIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgfVxuXG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgfVxuXG4gIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4wMywgMS4wMywgMS4wMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDMsIDEuMDMsIDEuMDMpO1xuICB9XG5cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguOTcsIC45NywgLjk3KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjk3LCAuOTcsIC45Nyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZUluIHtcbiAgMCUsIDIwJSwgNDAlLCA2MCUsIDgwJSwgMTAwJSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gIH1cblxuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gIH1cblxuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgfVxuXG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDMsIDEuMDMsIDEuMDMpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjAzLCAxLjAzLCAxLjAzKTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjk3LCAuOTcsIC45Nyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45NywgLjk3LCAuOTcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cblxuLmJvdW5jZUluIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW47XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VJbjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUluRG93biB7XG4gIDAlLCA2MCUsIDc1JSwgOTAlLCAxMDAlIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgfVxuXG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMDAwcHgsIDApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyNXB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDI1cHgsIDApO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICB9XG5cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNXB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VJbkRvd24ge1xuICAwJSwgNjAlLCA3NSUsIDkwJSwgMTAwJSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gIH1cblxuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTMwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzAwMHB4LCAwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjVweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyNXB4LCAwKTtcbiAgfVxuXG4gIDc1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKTtcbiAgfVxuXG4gIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA1cHgsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5ib3VuY2VJbkRvd24ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VJbkRvd247XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VJbkRvd247XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VJbkxlZnQge1xuICAwJSwgNjAlLCA3NSUsIDkwJSwgMTAwJSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gIH1cblxuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMzAwMHB4LCAwLCAwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjVweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyNXB4LCAwLCAwKTtcbiAgfVxuXG4gIDc1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgfVxuXG4gIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDVweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1cHgsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlSW5MZWZ0IHtcbiAgMCUsIDYwJSwgNzUlLCA5MCUsIDEwMCUge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICB9XG5cbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0zMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMwMDBweCwgMCwgMCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDI1cHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjVweCwgMCwgMCk7XG4gIH1cblxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1cHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNXB4LCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uYm91bmNlSW5MZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW5MZWZ0O1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5MZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW5SaWdodCB7XG4gIDAlLCA2MCUsIDc1JSwgOTAlLCAxMDAlIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgfVxuXG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMzAwMHB4LCAwLCAwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI1cHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI1cHgsIDAsIDApO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTtcbiAgfVxuXG4gIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01cHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTVweCwgMCwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VJblJpZ2h0IHtcbiAgMCUsIDYwJSwgNzUlLCA5MCUsIDEwMCUge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICB9XG5cbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDMwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzMDAwcHgsIDAsIDApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjVweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjVweCwgMCwgMCk7XG4gIH1cblxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICB9XG5cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTVweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNXB4LCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uYm91bmNlSW5SaWdodCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluUmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VJblJpZ2h0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW5VcCB7XG4gIDAlLCA2MCUsIDc1JSwgOTAlLCAxMDAlIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgfVxuXG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMzAwMHB4LCAwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTtcbiAgfVxuXG4gIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01cHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTVweCwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZUluVXAge1xuICAwJSwgNjAlLCA3NSUsIDkwJSwgMTAwJSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gIH1cblxuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMzAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDMwMDBweCwgMCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcbiAgfVxuXG4gIDc1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNXB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01cHgsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLmJvdW5jZUluVXAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VJblVwO1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5VcDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZU91dCB7XG4gIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpO1xuICB9XG5cbiAgNTAlLCA1NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VPdXQge1xuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KTtcbiAgfVxuXG4gIDUwJSwgNTUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICB9XG59XG5cbi5ib3VuY2VPdXQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXREb3duIHtcbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTtcbiAgfVxuXG4gIDQwJSwgNDUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dERvd24ge1xuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApO1xuICB9XG5cbiAgNDAlLCA0NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICB9XG59XG5cbi5ib3VuY2VPdXREb3duIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlT3V0RG93bjtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dERvd247XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXRMZWZ0IHtcbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwcHgsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dExlZnQge1xuICAyMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjBweCwgMCwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICB9XG59XG5cbi5ib3VuY2VPdXRMZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlT3V0TGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dExlZnQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXRSaWdodCB7XG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwcHgsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VPdXRSaWdodCB7XG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwcHgsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gIH1cbn1cblxuLmJvdW5jZU91dFJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlT3V0UmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRSaWdodDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZU91dFVwIHtcbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICB9XG5cbiAgNDAlLCA0NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjBweCwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlT3V0VXAge1xuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTBweCwgMCk7XG4gIH1cblxuICA0MCUsIDQ1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMHB4LCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gIH1cbn1cblxuLmJvdW5jZU91dFVwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlT3V0VXA7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRVcDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4uZmFkZUluIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluO1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluRG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbkRvd24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJbkRvd24ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duO1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluRG93bjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbkRvd25CaWcge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluRG93bkJpZyB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJbkRvd25CaWcge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duQmlnO1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluRG93bkJpZztcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbkxlZnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5MZWZ0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5MZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluTGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5MZWZ0QmlnIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbkxlZnRCaWcge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5MZWZ0QmlnIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluTGVmdEJpZztcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnRCaWc7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5SaWdodCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5SaWdodCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJblJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5SaWdodDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJblJpZ2h0QmlnIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5SaWdodEJpZyB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5SaWdodEJpZyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0QmlnO1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHRCaWc7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5VcCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5VcCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJblVwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluVXA7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJblVwQmlnIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5VcEJpZyB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5VcEJpZyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJblVwQmlnO1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluVXBCaWc7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4uZmFkZU91dCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dERvd24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0RG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dERvd24ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0RG93bjtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXREb3duO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dERvd25CaWcge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dERvd25CaWcge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICB9XG59XG5cbi5mYWRlT3V0RG93bkJpZyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXREb3duQmlnO1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dERvd25CaWc7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0TGVmdCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dExlZnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dExlZnQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0TGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRMZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dExlZnRCaWcge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0TGVmdEJpZyB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dExlZnRCaWcge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0TGVmdEJpZztcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRMZWZ0QmlnO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dFJpZ2h0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dFJpZ2h0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICB9XG59XG5cbi5mYWRlT3V0UmlnaHQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0UmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0UmlnaHQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0UmlnaHRCaWcge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dFJpZ2h0QmlnIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dFJpZ2h0QmlnIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dFJpZ2h0QmlnO1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dFJpZ2h0QmlnO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dFVwIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0VXAge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dFVwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dFVwO1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dFVwO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dFVwQmlnIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dFVwQmlnIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICB9XG59XG5cbi5mYWRlT3V0VXBCaWcge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0VXBCaWc7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0VXBCaWc7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmbGlwIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTM2MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTM2MGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgfVxuXG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGUzZCgwLCAwLCAxNTBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE5MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlM2QoMCwgMCwgMTUwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xOTBkZWcpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIH1cblxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlM2QoMCwgMCwgMTUwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xNzBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZTNkKDAsIDAsIDE1MHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTcwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZTNkKC45NSwgLjk1LCAuOTUpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlM2QoLjk1LCAuOTUsIC45NSk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxpcCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0zNjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0zNjBkZWcpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIH1cblxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlM2QoMCwgMCwgMTUwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZTNkKDAsIDAsIDE1MHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTkwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB9XG5cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZTNkKDAsIDAsIDE1MHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTcwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGUzZCgwLCAwLCAxNTBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE3MGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGUzZCguOTUsIC45NSwgLjk1KTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZTNkKC45NSwgLjk1LCAuOTUpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxufVxuXG4uYW5pbWF0ZWQuZmxpcCB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmxpcDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXA7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmbGlwSW5YIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC0yMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTIwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAxMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgMTBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTVkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC01ZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmbGlwSW5YIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC0yMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTIwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAxMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgMTBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTVkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC01ZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gIH1cbn1cblxuLmZsaXBJblgge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmbGlwSW5YO1xuICBhbmltYXRpb24tbmFtZTogZmxpcEluWDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXBJblkge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTIwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMjBkZWcpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICB9XG5cbiAgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDEwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAxMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTVkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZsaXBJblkge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTIwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMjBkZWcpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICB9XG5cbiAgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDEwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAxMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTVkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgfVxufVxuXG4uZmxpcEluWSB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsaXBJblk7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwSW5ZO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcE91dFgge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC0yMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxpcE91dFgge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC0yMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5mbGlwT3V0WCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsaXBPdXRYO1xuICBhbmltYXRpb24tbmFtZTogZmxpcE91dFg7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmbGlwT3V0WSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICB9XG5cbiAgMzAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE1ZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmbGlwT3V0WSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICB9XG5cbiAgMzAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE1ZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmZsaXBPdXRZIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmxpcE91dFk7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwT3V0WTtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGxpZ2h0U3BlZWRJbiB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgc2tld1goLTMwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHNrZXdYKC0zMGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDIwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKDIwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTVkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goLTVkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGxpZ2h0U3BlZWRJbiB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgc2tld1goLTMwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHNrZXdYKC0zMGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDIwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKDIwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTVkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goLTVkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ubGlnaHRTcGVlZEluIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogbGlnaHRTcGVlZEluO1xuICBhbmltYXRpb24tbmFtZTogbGlnaHRTcGVlZEluO1xuICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGxpZ2h0U3BlZWRPdXQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBza2V3WCgzMGRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBza2V3WCgzMGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGxpZ2h0U3BlZWRPdXQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBza2V3WCgzMGRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBza2V3WCgzMGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4ubGlnaHRTcGVlZE91dCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRPdXQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBsaWdodFNwZWVkT3V0O1xuICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVJbiB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0yMDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTIwMGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZUluIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTIwMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMjAwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5yb3RhdGVJbiB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluO1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW47XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVJbkRvd25MZWZ0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlSW5Eb3duTGVmdCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ucm90YXRlSW5Eb3duTGVmdCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluRG93bkxlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbkRvd25MZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlSW5Eb3duUmlnaHQge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZUluRG93blJpZ2h0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLnJvdGF0ZUluRG93blJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlSW5Eb3duUmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbkRvd25SaWdodDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZUluVXBMZWZ0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZUluVXBMZWZ0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ucm90YXRlSW5VcExlZnQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVJblVwTGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluVXBMZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlSW5VcFJpZ2h0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTkwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC05MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZUluVXBSaWdodCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC05MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLnJvdGF0ZUluVXBSaWdodCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluVXBSaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluVXBSaWdodDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZU91dCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMjAwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDIwMGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZU91dCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMjAwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDIwMGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4ucm90YXRlT3V0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlT3V0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlT3V0RG93bkxlZnQge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGVPdXREb3duTGVmdCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4ucm90YXRlT3V0RG93bkxlZnQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXREb3duTGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dERvd25MZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlT3V0RG93blJpZ2h0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlT3V0RG93blJpZ2h0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5yb3RhdGVPdXREb3duUmlnaHQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXREb3duUmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXREb3duUmlnaHQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVPdXRVcExlZnQge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZU91dFVwTGVmdCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5yb3RhdGVPdXRVcExlZnQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXRVcExlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXRVcExlZnQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVPdXRVcFJpZ2h0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA5MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA5MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZU91dFVwUmlnaHQge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDkwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5yb3RhdGVPdXRVcFJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlT3V0VXBSaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dFVwUmlnaHQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBoaW5nZSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIH1cblxuICAyMCUsIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDgwZGVnKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIH1cblxuICA0MCUsIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDYwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDYwZGVnKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA3MDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA3MDBweCwgMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGhpbmdlIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgfVxuXG4gIDIwJSwgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgODBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgODBkZWcpO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgfVxuXG4gIDQwJSwgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNjBkZWcpO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDcwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDcwMHB4LCAwKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5oaW5nZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGhpbmdlO1xuICBhbmltYXRpb24tbmFtZTogaGluZ2U7XG59XG5cbi8qIG9yaWdpbmFsbHkgYXV0aG9yZWQgYnkgTmljayBQZXR0aXQgLSBodHRwczovL2dpdGh1Yi5jb20vbmlja3BldHRpdC9nbGlkZSAqL1xuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm9sbEluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMTIwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMTIwZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm9sbEluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMTIwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMTIwZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5yb2xsSW4ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb2xsSW47XG4gIGFuaW1hdGlvbi1uYW1lOiByb2xsSW47XG59XG5cbi8qIG9yaWdpbmFsbHkgYXV0aG9yZWQgYnkgTmljayBQZXR0aXQgLSBodHRwczovL2dpdGh1Yi5jb20vbmlja3BldHRpdC9nbGlkZSAqL1xuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm9sbE91dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMTIwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDEyMGRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb2xsT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAxMjBkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMTIwZGVnKTtcbiAgfVxufVxuXG4ucm9sbE91dCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvbGxPdXQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb2xsT3V0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgem9vbUluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICB9XG5cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgem9vbUluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICB9XG5cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi56b29tSW4ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB6b29tSW47XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tSW47XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyB6b29tSW5Eb3duIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgLTEwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIC0xMDAwcHgsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIDYwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB6b29tSW5Eb3duIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgLTEwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIC0xMDAwcHgsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIDYwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gIH1cbn1cblxuLnpvb21JbkRvd24ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB6b29tSW5Eb3duO1xuICBhbmltYXRpb24tbmFtZTogem9vbUluRG93bjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21JbkxlZnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgtMTAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoLTEwMDBweCwgMCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHpvb21JbkxlZnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgtMTAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoLTEwMDBweCwgMCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG4uem9vbUluTGVmdCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21JbkxlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tSW5MZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgem9vbUluUmlnaHQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgxMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgxMDAwcHgsIDAsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHpvb21JblJpZ2h0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMTAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMTAwMHB4LCAwLCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gIH1cbn1cblxuLnpvb21JblJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbUluUmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tSW5SaWdodDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21JblVwIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgMTAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgMTAwMHB4LCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCAtNjBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIC02MHB4LCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB6b29tSW5VcCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIDEwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIDEwMDBweCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgLTYwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCAtNjBweCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICB9XG59XG5cbi56b29tSW5VcCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21JblVwO1xuICBhbmltYXRpb24tbmFtZTogem9vbUluVXA7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyB6b29tT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA1MCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHpvb21PdXQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi56b29tT3V0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbU91dDtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21PdXQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyB6b29tT3V0RG93biB7XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCAtNjBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIC02MHB4LCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB6b29tT3V0RG93biB7XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCAtNjBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIC02MHB4LCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gIH1cbn1cblxuLnpvb21PdXREb3duIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbU91dERvd247XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tT3V0RG93bjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21PdXRMZWZ0IHtcbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDQycHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCg0MnB4LCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKC4xKSB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC4xKSB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgem9vbU91dExlZnQge1xuICA0MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoNDJweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDQycHgsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLjEpIHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoLjEpIHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XG4gIH1cbn1cblxuLnpvb21PdXRMZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbU91dExlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tT3V0TGVmdDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21PdXRSaWdodCB7XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgtNDJweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKC00MnB4LCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKC4xKSB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoLjEpIHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgY2VudGVyO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgem9vbU91dFJpZ2h0IHtcbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKC00MnB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoLTQycHgsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLjEpIHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSguMSkgdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7XG4gIH1cbn1cblxuLnpvb21PdXRSaWdodCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21PdXRSaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21PdXRSaWdodDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21PdXRVcCB7XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgNjBweCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB6b29tT3V0VXAge1xuICA0MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgNjBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIDYwcHgsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICB9XG59XG5cbi56b29tT3V0VXAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB6b29tT3V0VXA7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tT3V0VXA7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZUluRG93biB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlSW5Eb3duIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbi5zbGlkZUluRG93biB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5Eb3duO1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVJbkRvd247XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZUluTGVmdCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlSW5MZWZ0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbi5zbGlkZUluTGVmdCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5MZWZ0O1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVJbkxlZnQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZUluUmlnaHQge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVJblJpZ2h0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVJblJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2xpZGVJblJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVJblJpZ2h0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGVJblVwIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlSW5VcCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLnNsaWRlSW5VcCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5VcDtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5VcDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlT3V0RG93biB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlT3V0RG93biB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVPdXREb3duIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2xpZGVPdXREb3duO1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVPdXREb3duO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGVPdXRMZWZ0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZU91dExlZnQge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVPdXRMZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2xpZGVPdXRMZWZ0O1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVPdXRMZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGVPdXRSaWdodCB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlT3V0UmlnaHQge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gIH1cbn1cblxuLnNsaWRlT3V0UmlnaHQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVPdXRSaWdodDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlT3V0VXAge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlT3V0VXAge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVPdXRVcCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0VXA7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFVwO1xufVxuIiwiQGltcG9ydCBcImxheW91dC5zY3NzXCI7XG5AaW1wb3J0IFwic3R5bGVzLnNjc3NcIjsiLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8qIEhvbWVQYWdlICovL1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbiN0cmlhbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogJHNwYWNpbmc7XG4gICAgcmlnaHQ6ICRzcGFjaW5nO1xuICAgIHRvcDogJHNwYWNpbmc7XG4gICAgei1pbmRleDogMTtcbiAgICB3aWR0aDogYXV0bztcblxuICAgIC5iYW5uZXItYmxvY2staW5uZXIge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgIC5iYW5uZXItYm9keSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTk2MCkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59XG5cbiNoZXJvIHtcbn1cblxuI2ZlYXR1cmVzIHtcbn1cblxuLmhvbWUtcGFnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IDA7XG5cbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbn0iLCIuaG9tZS1wYWdlIHtcblx0LnF1b3RlLWJsb2NrIHtcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9pbWFnZXMvYmFja2dyb3VuZC1xdW90ZS5qcGcnKTtcblx0XHR9XG5cdH1cblx0I2Fib3V0IHtcblx0XHQudG9nZ2xlLWhpZGRlbiB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdFx0fVxuXHRcdC5oaWRkZW4tY29udGVudCB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxufVxuXG4iLCJAaW1wb3J0IFwibGF5b3V0LnNjc3NcIjtcbkBpbXBvcnQgXCJzdHlsZXMuc2Nzc1wiOyIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4ucHJvZHVjdC1sYW5kaW5nLXBhZ2Uge1xufSIsIi5xdW90ZS1ibG9jayB7XG5cdFxufSIsIkBpbXBvcnQgXCJsYXlvdXQuc2Nzc1wiO1xuQGltcG9ydCBcInN0eWxlcy5zY3NzXCI7IiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi5wcm9kdWN0LWxhbmRpbmctcGFnZSB7XG4gICAgXG59IiwiLmJvZHlsaXN0LWJsb2NrIHtcblx0cCwgbGkge1xuXHRcdGZvbnQtc2l6ZTogZW0oMThweCk7XG5cblx0ICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtNzY4KSB7XG5cdCAgICAgICAgZm9udC1zaXplOiBlbSgyMHB4KTtcblx0ICAgIH1cblx0fVxufSIsIkBpbXBvcnQgXCJsYXlvdXQuc2Nzc1wiO1xuQGltcG9ydCBcInN0eWxlcy5zY3NzXCI7IiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi5wcm9kdWN0LWxhbmRpbmctcGFnZSB7XG4gICAgXG59IiwiLmFib3V0LXBhZ2Uge1xuXHQucXVvdGUtYmxvY2sge1xuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2JhY2tncm91bmQtcXVvdGUuanBnJyk7XG5cdFx0fVxuXHR9XG59IiwiQGltcG9ydCBcImxheW91dC5zY3NzXCI7XG5AaW1wb3J0IFwic3R5bGVzLnNjc3NcIjsiLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLnByb2R1Y3QtbGFuZGluZy1wYWdlIHtcbiAgICBcbn0iLCIucW91dGUtYmxvY2sge1xuXHRcbn0iLCJAaW1wb3J0IFwibGF5b3V0LnNjc3NcIjtcbkBpbXBvcnQgXCJzdHlsZXMuc2Nzc1wiOyIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4ucHJvZHVjdC1sYW5kaW5nLXBhZ2Uge1xuICAgIFxufSIsIi5xb3V0ZS1ibG9jayB7XG5cdFxufSIsIkBpbXBvcnQgXCJsYXlvdXQuc2Nzc1wiO1xuQGltcG9ydCBcInN0eWxlcy5zY3NzXCI7IiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi5wcm9kdWN0LWxhbmRpbmctcGFnZSB7XG4gICAgXG59IiwiLnFvdXRlLWJsb2NrIHtcblx0XG59IiwiQGltcG9ydCBcImxheW91dC5zY3NzXCI7XG5AaW1wb3J0IFwic3R5bGVzLnNjc3NcIjsiLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLnByb2R1Y3QtbGFuZGluZy1wYWdlIHtcbiAgICBcbn0iLCIucW91dGUtYmxvY2sge1xuXHRcbn0iLCJAaW1wb3J0IFwibGF5b3V0LnNjc3NcIjtcbkBpbXBvcnQgXCJzdHlsZXMuc2Nzc1wiOyIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4ubmV3cy1hcnRpY2xlLXBhZ2Uge1xuICAgIC5oZWFkaW5nc29sby1ibG9jayB7XG4gICAgICAgIEBpbmNsdWRlIG5lc3Q7XG4gICAgfVxuICAgICNtYWluLWNvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtOTYwKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuKDYpO1xuICAgICAgICB9XG4gICAgfVxuICAgICNmZWF0dXJlcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUtOTYwKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuKDYpO1xuICAgICAgICB9XG4gICAgfVxufSIsIi5xb3V0ZS1ibG9jayB7XG5cdFxufSIsIkBpbXBvcnQgXCJsYXlvdXQuc2Nzc1wiO1xuQGltcG9ydCBcInN0eWxlcy5zY3NzXCI7IiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi5uZXdzLWxhbmRpbmctcGFnZSB7XG5cdC5oZWFkaW5nYWx0LWJsb2NrIHtcblx0XHQuYm9keSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiA1MHB4O1xuXHRcdH1cblx0fVxufSIsIi5xb3V0ZS1ibG9jayB7XG5cdFxufSIsIkBpbXBvcnQgXCJsYXlvdXQuc2Nzc1wiO1xuQGltcG9ydCBcInN0eWxlcy5zY3NzXCI7IiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi5wcm9kdWN0LWxhbmRpbmctcGFnZSB7XG4gICAgXG59IiwiLnFvdXRlLWJsb2NrIHtcblx0XG59IiwiQGltcG9ydCBcImxheW91dC5zY3NzXCI7XG5AaW1wb3J0IFwic3R5bGVzLnNjc3NcIjsiLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLnB1cmNoYXNlLXN1cHBvcnQge1xuICAgIFxufSIsIi5wdXJjaGFzZS1zdXBwb3J0IHtcblx0LmltYWdle1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuXHR9XG5cdC53eXNpd3lnIHtcblx0XHRAaW5jbHVkZSBzcGFuKDEyKTtcblx0XHRtYXJnaW4tYm90dG9tOiAwcHg7XG5cdH1cblx0I2hlYWRpbmcge1xuXHRcdG1hcmdpbi1ib3R0b206IDBweDtcblx0fVxuXHQuc2lkZWJhci1wYWdlIHtcblx0XHRjbGVhcjogYm90aDtcblx0fVxuXHQjbWFpbi1jb250YWluZXIgeyBjbGVhcjogYm90aDsgfVxufSIsIkBpbXBvcnQgXCJsYXlvdXQuc2Nzc1wiO1xuQGltcG9ydCBcInN0eWxlcy5zY3NzXCI7IiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi5wcm9kdWN0LWxhbmRpbmctcGFnZSB7XG4gICAgXG59IiwiLnFvdXRlLWJsb2NrIHtcblx0XG59IiwiQGltcG9ydCBcImxheW91dC5zY3NzXCI7XG5AaW1wb3J0IFwic3R5bGVzLnNjc3NcIjsiLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLnNpZGViYXItcGFnZSB7XG4gICAgLmNvbnRlbnQge1xuICAgIFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS05NjApIHtcblx0XHRcdEBpbmNsdWRlIHNwYW4oOCk7XG5cdFx0fVxuICAgIH1cblx0YXNpZGUge1xuICAgIFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS05NjApIHtcblx0XHRcdEBpbmNsdWRlIHNwYW4oNCk7XG5cdFx0fVxuXG5cdFx0Ly8gRmVhdHVyZSBibG9jayBiZWhhdmVzIGRpZmZlcmVudGx5IGluIHNpZGViYXIsIGFuZCB3ZSB3YW50IHRvIHN0eWxlIHRoZSByZWNlbnRuZXdzIHRoZSBzYW1lLi4uXG5cdFx0LnJlY2VudG5ld3MtYmxvY2ssIC5mZWF0dXJlLWJsb2NrLCAucmVsYXRlZC1saW5rcy1ibG9jayB7XG5cdFx0XHRAaW5jbHVkZSBzcGFuKGZ1bGwgbmVzdCk7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcblx0XHRcdFx0QGluY2x1ZGUgc3Bhbig2KTtcblx0XHRcdH1cblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS05NjApIHtcblx0XHRcdFx0QGluY2x1ZGUgc3BhbihmdWxsIG5lc3QpO1xuXHRcdFx0XHRAaW5jbHVkZSBuZXN0O1xuXHRcdFx0XHRAaW5jbHVkZSB0YWJsZWZ5KDVweCwgdG9wLCB0cnVlKTtcblx0XHRcdH1cblxuXHRcdFx0LmltYWdlIHtcbiAgXHRcdFx0XHRtaW4td2lkdGg6IDUwcHg7XG5cbiAgXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRzaXplLTQ4MCkge1xuICBcdFx0XHRcdFx0bWluLXdpZHRoOiA3MHB4O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS05NjApIHtcblx0XHRcdFx0XHRtaW4td2lkdGg6IDUwcHg7XG5cdFx0XHRcdH1cbiAgXHRcdFx0fVxuXG5cdFx0XHQuYm9keSB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0XHRcdC5zdWIsIHAge1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0LnN1YmJlZCB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiBlbSgyMnB4KTtcblxuXHRcdFx0XHQgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS03NjgpIHtcblx0XHRcdFx0ICAgICAgICBmb250LXNpemU6IGVtKDI2cHgpO1xuXHRcdFx0XHQgICAgfVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnJlY2VudG5ld3MtYmxvY2sge1xuXHRcdFx0cGFkZGluZzogMjBweCAwO1xuXHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICRncmF5LWxpZ2h0ZXI7XG5cdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdyYXktbGlnaHRlcjtcblxuXHRcdFx0ZGlzcGxheTogbm9uZTtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZS05NjApIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmZlYXR1cmUtYmxvY2sge1xuXG4gIFx0XHRcdFxuXHRcdH1cblx0fVxufSIsIi5xb3V0ZS1ibG9jayB7XG5cdFxufSJdLCJtYXBwaW5ncyI6IjtBK0Q0RkE7Ozs7Ozs7Ozs7OztFQVlFO0FHckNGOzs7O0VBSUU7QUlwRUYsT0FBTyxDQUFDLG9FQUFJO0F3REhaLE9BQU8sQ0FBUCwrQ0FBTztBQUNQLE9BQU8sQ0FBUCxrREFBTztBNUR1RVAsQUFBQSxJQUFJLENBQUM7RUFDRCxXQUFXLEVBN0NJLFVBQVU7RUE4Q3pCLE9BQU87RUFDUCxvQkFBb0IsRUFBRSxJQUFLO0VBQzNCLE9BQU87RUFDUCx3QkFBd0IsRUFBRSxJQUFLO0VBQy9CLE9BQU8sRUFDVjs7QUFFRDs7RUFFRTtBQUVGLEFBQUEsSUFBSSxDQUFDO0VBQ0QsTUFBTSxFQUFFLENBQUUsR0FDYjs7QUFFRDtnRkFDZ0Y7QUFFaEY7Ozs7O0VBS0U7QUFFRixBQUFBLE9BQU87QUFDUCxBQUFBLEtBQUs7QUFDTCxBQUFBLE9BQU87QUFDUCxBQUFBLFVBQVU7QUFDVixBQUFBLE1BQU07QUFDTixBQUFBLE1BQU07QUFDTixBQUFBLE1BQU07QUFDTixBQUFBLE1BQU07QUFDTixBQUFBLElBQUk7QUFDSixBQUFBLElBQUk7QUFDSixBQUFBLEdBQUc7QUFDSCxBQUFBLE9BQU87QUFDUCxBQUFBLE9BQU8sQ0FBQztFQUNKLE9BQU8sRUFBRSxLQUFNLEdBQ2xCOztBQUVEOzs7RUFHRTtBQUVGLEFBQUEsS0FBSztBQUNMLEFBQUEsTUFBTTtBQUNOLEFBQUEsUUFBUTtBQUNSLEFBQUEsS0FBSyxDQUFDO0VBRUUsT0FBTyxFQUFFLFlBQWE7RUFDdEIsT0FBTztFQUVYLGNBQWMsRUFBRSxRQUFTO0VBQ3pCLE9B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 */
