@charset "UTF-8";
/*
[Master Stylesheet]
Project: Vava
Version: 1.1
Author: Yegor Borisenco <pimmey@pimmey.com>
Author profile: https://themeforest.net/user/pimmey

[Table of Contents]
1 Global styles / section, .container, iframe, img, strong, thead, .divider, main
2 Typography improvements / body, input, textarea, select, button, h2, h3
3 Helper classes / .locked, .margin-on-medium-and-down, .mega-padding, .nobr
4 Spinners / .pace, .spinner, .spinner-wrapper, .curtains
5 Buttons / .btn, .btn-large
6 Links / a, .underline
7 Navigation / .navbar-fixed, nav, #sidenav-overlay, .nav-overlay, .current-page
8 Hamburger button / .nav-icon-container, .nav-icon
9 Footer / footer
10 Toasts / .toast
11 Slider / .slider .indicators .indicator-item
12 Blocks / .rectangle, .rectangle-vertical, .square, .content, .blocks
13 Dropdown / .dropdown-content, .dropdown-button
14 Fullpage plugin customisation / #fullpage, .container-padding
15 Pagepiling plugin customisation / #pp-nav span, .pp-slidesNav span
16 Dark skin styles / .dark
17 Page: home / .hero, .view-all, .page-home
18 Page: about / .team, .expertise, .philosophy, .page-about
19 Page: prices / .prices, .faq
20 Page: contact / .page-contact, input, .input-field, form, .social
21 Page: news / .news-grid, .alternative, article
22 Page: single / [class*='page-work-'], [class*='page-news-']
23 Page: work / figure, figcaption,
24 Page: demos / .demos

[Color codes]
# Global colors
White:      #fff
Black:      #373737
# Used for social links
Facebook:   #3b5998;
Twitter:    #4099ff;
Dribbble:   #c73b6f;
Github:     #999;
VK:         #2b587a;
Linkedin:   #4075b4;
Googleplus: #c24e40;
Pinterest:  #bd081c;
# Toast backgrounds
Error:      #ff5252
Success:    #00e676

[Typography]
# Check out http://materializecss.com/typography.html for more details
Font:       Rasa
Body:       16px
p:          responsive flow text (http://materializecss.com/typography.html#flow)
h2:         3.56rem/110%
h3:         2rem/110%
h4:         2.28rem/110%
h5:         1.64rem/110%
nav:        1rem/1.5
blockquote: 2rem/1.5
*/
/*---------------------------------------------------------------------------------------

1 Global styles

-----------------------------------------------------------------------------------------*/
section:not(:first-of-type) {
  padding: 5rem 0;
}

@media only screen and (max-width: 992px) {
  section:not(:first-of-type) {
    padding: 4rem 0;
  }
}

@media only screen and (max-width: 600px) {
  section:not(:first-of-type) {
    padding: 3rem 0;
  }
}

section:first-of-type {
  padding-bottom: 5rem;
}

@media only screen and (max-width: 992px) {
  section:first-of-type {
    padding-bottom: 4rem;
  }
}

@media only screen and (max-width: 600px) {
  section:first-of-type {
    padding-bottom: 3rem;
  }
}

.section {
  padding: 0;
}

.container {
  width: 90%;
  max-width: 1600px;
}

@media only screen and (min-width: 601px) {
  .container {
    width: 80%;
  }
}

@media only screen and (min-width: 993px) {
  .container {
    width: 80%;
  }
}

.container.full-width {
  width: 100%;
}

.container.row.narrow-row {
  margin-right: 0;
  margin-left: 0;
}

iframe {
  border: 0;
}

img {
  -webkit-filter: grayscale(100%);
  filter: grayscale(100%);
  -webkit-transition: all 0.75s cubic-bezier(0.075, 0.82, 0.165, 1);
  -moz-transition: all 0.75s cubic-bezier(0.075, 0.82, 0.165, 1);
  transition: all 0.75s cubic-bezier(0.075, 0.82, 0.165, 1);
}

img:hover {
  -webkit-filter: grayscale(0);
  filter: grayscale(0);
}

strong {
  font-weight: 700;
}

thead {
  border: 0;
}

.divider {
  background-color: #eeeeee;
}

.materialboxed.active {
  -webkit-filter: grayscale(0);
  filter: grayscale(0);
}

main {
  -webkit-transition: all 0.5s cubic-bezier(0.075, 0.82, 0.165, 1);
  -moz-transition: all 0.5s cubic-bezier(0.075, 0.82, 0.165, 1);
  transition: all 0.5s cubic-bezier(0.075, 0.82, 0.165, 1);
  will-change: filter;
}

/*---------------------------------------------------------------------------------------

2 Typography improvements

-----------------------------------------------------------------------------------------*/
html {
  font: 16px Rasa, monospace;
  color: #373737;
}

body,
input,
textarea,
select,
button {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-kerning: normal;
  -moz-font-feature-settings: 'liga', 'kern';
}

@media only screen and (max-width: 992px) {
  h2 {
    font-size: 2.5rem;
    text-align: center;
  }
}

h3 {
  font-size: 2rem;
}

/*---------------------------------------------------------------------------------------

3 Helper classes

-----------------------------------------------------------------------------------------*/
.locked {
  overflow: hidden;
}

@media only screen and (max-width: 992px) {
  .margin-on-medium-and-down {
    margin-bottom: 1.5rem;
  }
}

.mega-padding {
  padding: 7rem 2rem;
}

.nobr {
  white-space: nowrap;
}

.blurry {
  -webkit-filter: blur(20px);
  filter: blur(20px);
}

/*---------------------------------------------------------------------------------------

4 Spinners

-----------------------------------------------------------------------------------------*/
.pace {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  pointer-events: none;
}

.pace .pace-activity {
  -webkit-animation: pace-spinner 400ms linear infinite;
  -moz-animation: pace-spinner 400ms linear infinite;
  animation: pace-spinner 400ms linear infinite;
  position: fixed;
  top: 15px;
  right: 15px;
  z-index: 2000;
  display: block;
  width: 14px;
  height: 14px;
  border: solid 2px transparent;
  border-top-color: #373737;
  border-left-color: #373737;
  border-radius: 10px;
}

.pace .pace-progress-inner {
  box-shadow: none;
}

@media only screen and (max-width: 992px) {
  .pace .pace-activity {
    right: 50%;
    margin-right: -7px;
  }
}

@-webkit-keyframes pace-spinner {
  0% {
    -webkit-transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
  }
}

@-moz-keyframes pace-spinner {
  0% {
    -moz-transform: rotate(0deg);
  }
  100% {
    -moz-transform: rotate(360deg);
  }
}

@keyframes pace-spinner {
  0% {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

.spinner-wrapper {
  position: fixed;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  content: '';
}

.spinner {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  margin: -125px 0 0 -125px;
}

.curtains {
  -webkit-transition: left 0.75s cubic-bezier(0.075, 0.82, 0.165, 1);
  -moz-transition: left 0.75s cubic-bezier(0.075, 0.82, 0.165, 1);
  transition: left 0.75s cubic-bezier(0.075, 0.82, 0.165, 1);
  position: fixed;
  top: 0;
  left: -100%;
  z-index: 800;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #fafafa;
  will-change: left;
}

/*---------------------------------------------------------------------------------------

5 Buttons

-----------------------------------------------------------------------------------------*/
.btn,
.btn-large {
  background: #eeeeee;
}

.btn:focus,
.btn-large:focus {
  background: #f5f5f5;
}

.btn-large {
  font-size: 22px;
  line-height: 57px;
  text-transform: none;
}

/*---------------------------------------------------------------------------------------

6 Links

-----------------------------------------------------------------------------------------*/
a {
  color: #373737;
}

a.underline {
  -webkit-transition: border-bottom-color 0.5s cubic-bezier(0.075, 0.82, 0.165, 1);
  -moz-transition: border-bottom-color 0.5s cubic-bezier(0.075, 0.82, 0.165, 1);
  transition: border-bottom-color 0.5s cubic-bezier(0.075, 0.82, 0.165, 1);
  border-bottom: 1px solid rgba(55, 55, 55, 0.25);
}

a.underline:hover {
  border-bottom-color: #373737;
}

/*---------------------------------------------------------------------------------------

7 Navigation

-----------------------------------------------------------------------------------------*/
.navbar-fixed {
  z-index: 900;
}

.navbar-fixed nav {
  -webkit-transition: all 1s cubic-bezier(0.075, 0.82, 0.165, 1);
  -moz-transition: all 1s cubic-bezier(0.075, 0.82, 0.165, 1);
  transition: all 1s cubic-bezier(0.075, 0.82, 0.165, 1);
  background-color: transparent;
  box-shadow: none;
}

.navbar-fixed nav.classic:hover {
  background: rgba(255, 255, 255, 0.95);
}

.navbar-fixed nav ul:not(.side-nav):not(.collapsible-accordion):not(.collapsible-body-list) a {
  -webkit-transition: border-bottom-color 0.5s cubic-bezier(0.075, 0.82, 0.165, 1);
  -moz-transition: border-bottom-color 0.5s cubic-bezier(0.075, 0.82, 0.165, 1);
  transition: border-bottom-color 0.5s cubic-bezier(0.075, 0.82, 0.165, 1);
  display: inline;
  padding: 0;
  font-size: 1.75rem;
  color: #373737;
  border-bottom: 1px solid rgba(55, 55, 55, 0.25);
}

.navbar-fixed nav ul:not(.side-nav):not(.collapsible-accordion):not(.collapsible-body-list) a:hover {
  background: transparent;
  border-bottom-color: #373737;
}

.navbar-fixed nav ul:not(.side-nav):not(.collapsible-accordion):not(.collapsible-body-list) a.dropdown-button {
  border-bottom-style: dotted;
}

.navbar-fixed nav ul:not(.side-nav):not(.collapsible-accordion):not(.collapsible-body-list) li:not(:first-of-type) {
  margin-left: 2rem;
}

.navbar-fixed nav .logo,
.navbar-fixed nav .sidenav-toggle {
  font-size: 1.75rem;
  color: #373737;
}

.navbar-fixed nav .side-nav a {
  font-size: 1.3rem;
}

.navbar-fixed nav .side-nav .current-page::after,
.navbar-fixed nav .side-nav .current-page::before {
  margin-left: 5px;
}

.navbar-fixed nav .side-nav .current-page::before {
  margin-top: 21px;
}

.navbar-fixed nav .side-nav .current-page::after {
  margin-top: 17px;
}

.navbar-fixed nav .side-nav .collapsible-header::after {
  position: relative;
  top: .3rem;
  left: .25rem;
  font-family: 'linea-arrows-10';
  content: '\e019';
}

.navbar-fixed nav .side-nav .collapsible-header.active::after {
  content: '\e083';
}

#sidenav-overlay {
  z-index: 800;
}

.navbar-fixed nav,
.navbar-fixed {
  height: 150px;
  line-height: 150px;
}

@media only screen and (max-width: 992px) {
  .navbar-fixed nav,
  .navbar-fixed {
    height: 100px;
    line-height: 100px;
  }
}

@media only screen and (max-width: 600px) {
  .navbar-fixed nav,
  .navbar-fixed {
    height: 80px;
    line-height: 80px;
  }
}

.zero-nav-height .navbar-fixed {
  height: 0;
}

.nav-overlay {
  -webkit-transition: top 0.5s cubic-bezier(0.075, 0.82, 0.165, 1);
  -moz-transition: top 0.5s cubic-bezier(0.075, 0.82, 0.165, 1);
  transition: top 0.5s cubic-bezier(0.075, 0.82, 0.165, 1);
  position: fixed;
  top: -100%;
  left: 0;
  z-index: 800;
  width: 100%;
  height: 100%;
  padding-top: 150px;
  overflow-y: scroll;
  background: rgba(250, 250, 250, 0.7);
  will-change: top;
}

@media only screen and (max-width: 992px) {
  .nav-overlay {
    padding-top: 100px;
    text-align: center;
  }
}

@media only screen and (max-width: 600px) {
  .nav-overlay {
    padding-top: 80px;
  }
}

.nav-overlay .nav-overlay-content {
  -webkit-transition: opacity 0.75s cubic-bezier(0.075, 0.82, 0.165, 1) 0.15s;
  -moz-transition: opacity 0.75s cubic-bezier(0.075, 0.82, 0.165, 1) 0.15s;
  transition: opacity 0.75s cubic-bezier(0.075, 0.82, 0.165, 1) 0.15s;
  opacity: 0;
}

.nav-overlay .nav-overlay-content ul {
  margin-top: 0;
}

.nav-overlay .nav-overlay-content li {
  padding: .4rem 0;
}

.nav-overlay .nav-overlay-content h3 {
  display: inline-block;
  margin-bottom: 0;
}

.nav-overlay .nav-overlay-content h3 a {
  margin-bottom: 1.424rem;
}

.nav-overlay.visible {
  top: 0;
}

.nav-overlay.visible .nav-overlay-content {
  opacity: 1;
}

.nav-overlay .current-page::after,
.nav-overlay .current-page::before {
  margin-left: -12px;
}

.nav-overlay .current-page::before {
  margin-top: 14px;
}

.nav-overlay .current-page::after {
  margin-top: 10px;
}

@media only screen and (max-width: 992px) {
  .nav-overlay .current-page::before {
    margin-top: 11px;
  }
  .nav-overlay .current-page::after {
    margin-top: 7px;
  }
}

@media only screen and (max-width: 992px) {
  .nav-overlay .current-page::before {
    margin-top: 9px;
  }
  .nav-overlay .current-page::after {
    margin-top: 5px;
  }
}

.current-page {
  position: relative;
}

.current-page::before {
  margin-top: -1px;
  border-top: 4px solid #373737;
}

.current-page::after {
  margin-top: -5px;
  border-bottom: 4px solid #373737;
}

.current-page.index-link::before {
  border-top-color: rgba(55, 55, 55, 0.5);
}

.current-page.index-link::after {
  border-bottom-color: rgba(55, 55, 55, 0.5);
}

.current-page::after,
.current-page::before {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 0;
  height: 0;
  margin-left: -3px;
  border-right: 3px solid transparent;
  border-left: 3px solid transparent;
  content: '';
}

/*---------------------------------------------------------------------------------------

8 Hamburger button

-----------------------------------------------------------------------------------------*/
.nav-icon-container {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  -webkit-transition: all 0.5s cubic-bezier(0.075, 0.82, 0.165, 1);
  -moz-transition: all 0.5s cubic-bezier(0.075, 0.82, 0.165, 1);
  transition: all 0.5s cubic-bezier(0.075, 0.82, 0.165, 1);
  position: relative;
  top: 13px;
  right: 7px;
  z-index: 999;
  display: inline-block;
  width: 40px;
  height: 40px;
  cursor: pointer;
}

.nav-icon-container.hidden {
  -webkit-transform: translate3d(120px, 0, 0);
  -moz-transform: translate3d(120px, 0, 0);
  -ms-transform: translate3d(120px, 0, 0);
  -o-transform: translate3d(120px, 0, 0);
  transform: translate3d(120px, 0, 0);
}

@media only screen and (max-width: 992px) {
  .nav-icon-container {
    float: right;
  }
}

@media only screen and (min-width: 601px) and (max-width: 992px) {
  .nav-icon-container {
    margin-top: .75rem;
  }
}

@media only screen and (max-width: 600px) {
  .nav-icon-container {
    margin-top: .35rem;
  }
}

.nav-icon {
  -webkit-transition: background-color 0.2s cubic-bezier(0.075, 0.82, 0.165, 1);
  -moz-transition: background-color 0.2s cubic-bezier(0.075, 0.82, 0.165, 1);
  transition: background-color 0.2s cubic-bezier(0.075, 0.82, 0.165, 1);
  position: relative;
  top: 50%;
  left: 50%;
  display: block;
  width: 24px;
  height: 2px;
  margin-top: -1px;
  margin-left: -12px;
  background-color: #373737;
}

.nav-icon.transformed {
  background-color: transparent;
}

.nav-icon.transformed::after {
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  transform: rotate(45deg);
}

.nav-icon.transformed::before {
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
  transform: rotate(-45deg);
}

.nav-icon::after,
.nav-icon::before {
  -webkit-transition: all 0.2s cubic-bezier(0.075, 0.82, 0.165, 1);
  -moz-transition: all 0.2s cubic-bezier(0.075, 0.82, 0.165, 1);
  transition: all 0.2s cubic-bezier(0.075, 0.82, 0.165, 1);
  position: absolute;
  display: block;
  width: 24px;
  height: 2px;
  background-color: #373737;
  content: '';
}

.nav-icon::after {
  top: 6px;
}

.nav-icon::before {
  top: -6px;
}

.nav-icon-container:hover .nav-icon::after {
  -webkit-transition: all 0.2s cubic-bezier(0.075, 0.82, 0.165, 1);
  -moz-transition: all 0.2s cubic-bezier(0.075, 0.82, 0.165, 1);
  transition: all 0.2s cubic-bezier(0.075, 0.82, 0.165, 1);
  top: 10px;
}

.nav-icon-container:hover .nav-icon::before {
  -webkit-transition: all 0.2s cubic-bezier(0.075, 0.82, 0.165, 1);
  -moz-transition: all 0.2s cubic-bezier(0.075, 0.82, 0.165, 1);
  transition: all 0.2s cubic-bezier(0.075, 0.82, 0.165, 1);
  top: -10px;
}

.nav-icon.transformed::after,
.nav-icon.transformed::before {
  -webkit-transform-origin: 50% 50%;
  -moz-transform-origin: 50% 50%;
  -ms-transform-origin: 50% 50%;
  -o-transform-origin: 50% 50%;
  transform-origin: 50% 50%;
  -webkit-transition: all 0.15s cubic-bezier(0.075, 0.82, 0.165, 1);
  -moz-transition: all 0.15s cubic-bezier(0.075, 0.82, 0.165, 1);
  transition: all 0.15s cubic-bezier(0.075, 0.82, 0.165, 1);
  top: 1px;
  left: -1px;
  width: 26px;
}

.nav-icon-container:hover .nav-icon.transformed::after,
.nav-icon-container:hover .nav-icon.transformed::before {
  -webkit-transition: all 0.15s cubic-bezier(0.075, 0.82, 0.165, 1);
  -moz-transition: all 0.15s cubic-bezier(0.075, 0.82, 0.165, 1);
  transition: all 0.15s cubic-bezier(0.075, 0.82, 0.165, 1);
  top: 1px;
  left: -4px;
  width: 32px;
}

/*---------------------------------------------------------------------------------------

9 Footer

-----------------------------------------------------------------------------------------*/
footer {
  padding: 3rem 0;
}

@media only screen and (max-width: 992px) {
  footer {
    text-align: center;
  }
}

/*---------------------------------------------------------------------------------------

10 Toasts

-----------------------------------------------------------------------------------------*/
@media only screen and (max-width: 992px) and (min-width: 601px) {
  #toast-container {
    right: 5%;
  }
}

.toast {
  display: none;
  height: auto;
  padding: 20px;
  font-weight: normal;
  line-height: 1.75rem;
}

.toast:first-of-type {
  display: block;
}

.toast a {
  display: block;
  color: #fff;
  text-decoration: underline;
}

.toast.error {
  background-color: #ff5252;
}

.toast.success {
  color: #373737;
  background-color: #00e676;
}

/*---------------------------------------------------------------------------------------

11 Slider

-----------------------------------------------------------------------------------------*/
.slider .indicators .indicator-item {
  background-color: rgba(55, 55, 55, 0.5);
}

.slider .indicators .indicator-item.active {
  background-color: #373737;
}

/*---------------------------------------------------------------------------------------

12 Blocks

-----------------------------------------------------------------------------------------*/
.rectangle {
  padding-bottom: 60%;
}

.rectangle-vertical {
  padding-bottom: calc(120% + 1.5rem);
}

.square {
  padding-bottom: 100%;
}

.rectangle,
.rectangle-vertical,
.square,
.rectangle-8-of-12 {
  -webkit-filter: grayscale(100%);
  filter: grayscale(100%);
  -webkit-transition: all 0.75s cubic-bezier(0.075, 0.82, 0.165, 1);
  -moz-transition: all 0.75s cubic-bezier(0.075, 0.82, 0.165, 1);
  transition: all 0.75s cubic-bezier(0.075, 0.82, 0.165, 1);
  position: relative;
  display: block;
  overflow: hidden;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.rectangle > .content,
.rectangle-vertical > .content,
.square > .content,
.rectangle-8-of-12 > .content {
  position: absolute;
  bottom: 0;
  width: 100%;
  padding: 0 1.46rem;
}

.rectangle > .content.medium-content,
.rectangle-vertical > .content.medium-content,
.square > .content.medium-content,
.rectangle-8-of-12 > .content.medium-content {
  padding: 0 .75rem;
}

.rectangle > .content.medium-content h3,
.rectangle-vertical > .content.medium-content h3,
.square > .content.medium-content h3,
.rectangle-8-of-12 > .content.medium-content h3 {
  margin: .75rem 0;
  font-size: 1.5rem;
}

.rectangle > .content.small-content,
.rectangle-vertical > .content.small-content,
.square > .content.small-content,
.rectangle-8-of-12 > .content.small-content {
  padding: 0 .5rem;
}

.rectangle > .content.small-content h3,
.rectangle-vertical > .content.small-content h3,
.square > .content.small-content h3,
.rectangle-8-of-12 > .content.small-content h3 {
  margin: .5rem 0;
  font-size: 1.2rem;
}

.rectangle:hover,
.rectangle-vertical:hover,
.square:hover,
.rectangle-8-of-12:hover {
  -webkit-filter: grayscale(0);
  filter: grayscale(0);
}

.blocks .row {
  margin-bottom: 1.5rem;
}

.blocks > .row .row:not(:first-of-type) {
  margin-bottom: 0;
}

.blocks a {
  color: #373737;
}

.blocks a:hover {
  color: #373737;
}

/*---------------------------------------------------------------------------------------

13 Dropdown

-----------------------------------------------------------------------------------------*/
.dropdown-content {
  min-width: 200px;
  margin-left: -1rem;
  box-shadow: none;
}

.dropdown-content ul:not(.side-nav):not(.collapsible-accordion):not(.collapsible-body-list) li {
  margin-left: 0 !important;
}

.dropdown-content ul:not(.side-nav):not(.collapsible-accordion):not(.collapsible-body-list) li a {
  display: block !important;
  padding-left: 1rem;
  line-height: 4rem;
  border: 0 !important;
}

.dropdown-content .current-page::after,
.dropdown-content .current-page::before {
  top: 1rem !important;
  left: 1rem !important;
}

.dropdown-button {
  cursor: default;
}

/*---------------------------------------------------------------------------------------

14 Fullpage plugin customisation

-----------------------------------------------------------------------------------------*/
#fullpage .fp-controlArrow {
  top: auto;
  bottom: 20px;
}

#fullpage .fp-controlArrow.fp-prev {
  left: 20px;
  border-right-color: #373737;
  border-width: 18.5px 14px 18.5px 0;
}

#fullpage .fp-controlArrow.fp-next {
  right: 20px;
  border-left-color: #373737;
  border-width: 18.5px 0 18.5px 14px;
}

.container-padding {
  padding: 180px 0 150px;
}

@media only screen and (max-width: 992px) {
  .container-padding {
    padding: 130px 0 75px;
  }
}

@media only screen and (max-width: 600px) {
  .container-padding {
    padding: 80px 0 50px;
  }
}

/*---------------------------------------------------------------------------------------

15 Pagepiling plugin customisation

-----------------------------------------------------------------------------------------*/
#pp-nav span,
.pp-slidesNav span {
  border-color: #484848 !important;
}

/*---------------------------------------------------------------------------------------

16 Dark skin styles

-----------------------------------------------------------------------------------------*/
.dark {
  color: #fff;
  background: #0f0f0f;
}

.dark a {
  color: #fff;
}

.dark a.underline {
  border-bottom-color: rgba(255, 255, 255, 0.25);
}

.dark a.underline:hover {
  border-bottom-color: #fff;
}

.dark .divider {
  background-color: #212121;
}

.dark .curtains {
  background: #212121;
}

.dark .current-page::before {
  border-top-color: #fff;
}

.dark .current-page::after {
  border-bottom-color: #fff;
}

.dark .current-page.index-link::before {
  border-top-color: rgba(255, 255, 255, 0.5);
}

.dark .current-page.index-link::after {
  border-bottom-color: rgba(255, 255, 255, 0.5);
}

.dark .navbar-fixed nav:hover {
  background: rgba(15, 15, 15, 0.95);
}

.dark .navbar-fixed nav .current-page::before {
  border-top-color: #fff;
}

.dark .navbar-fixed nav .current-page::after {
  border-bottom-color: #fff;
}

.dark .navbar-fixed nav .current-page.index-link::before {
  border-top-color: rgba(255, 255, 255, 0.5);
}

.dark .navbar-fixed nav .current-page.index-link::after {
  border-bottom-color: rgba(255, 255, 255, 0.5);
}

.dark .navbar-fixed nav ul:not(.side-nav):not(.collapsible-accordion):not(.collapsible-body-list) a {
  color: #fff;
  border-bottom: 1px solid rgba(255, 255, 255, 0.25);
}

.dark .navbar-fixed nav ul:not(.side-nav):not(.collapsible-accordion):not(.collapsible-body-list) a:hover {
  border-bottom-color: #fff;
}

.dark .navbar-fixed nav .logo,
.dark .navbar-fixed nav .sidenav-toggle {
  color: #fff;
}

.dark .side-nav {
  background: #0f0f0f;
}

.dark .side-nav .collapsible-body {
  background: #0f0f0f;
}

.dark .dropdown-content ul li {
  background: #0f0f0f;
}

.dark .dropdown-content ul li:hover {
  background: #212121;
}

.dark figcaption {
  color: #0f0f0f;
  border: 0;
}

.dark .team .hiring {
  background: #212121;
}

.dark .btn,
.dark .btn-large {
  color: #0f0f0f;
  background: #fff;
}

.dark[class*='page-news'] .blocks a {
  color: #fff;
}

.dark[class*='page-news'] .blocks a:hover {
  color: #fff;
}

.dark .news-grid.blocks a {
  color: #fff;
}

.dark .news-grid.blocks a:hover {
  color: #fff;
}

.dark.page-contact form {
  background: #212121;
}

.dark.page-contact .input-field label {
  color: rgba(255, 255, 255, 0.8);
}

.dark.page-contact input[type=text],
.dark.page-contact input[type=email],
.dark.page-contact input[type=email],
.dark.page-contact textarea.materialize-textarea {
  border-bottom-color: rgba(255, 255, 255, 0.8);
}

.dark.page-contact .input-field input[type=text]:focus:not([readonly]),
.dark.page-contact .input-field input[type=email]:focus,
.dark.page-contact .input-field input[type=email]:focus:not([readonly]),
.dark.page-contact input[type=email]:focus,
.dark.page-contact input[type=email]:focus:not([readonly]),
.dark.page-contact textarea.materialize-textarea:focus,
.dark.page-contact textarea.materialize-textarea:focus:not([readonly]) {
  border-bottom-color: rgba(255, 255, 255, 0.8);
}

.dark.page-contact .input-field input[type=text]:focus:not([readonly]) + label,
.dark.page-contact .input-field input[type=email]:focus + label,
.dark.page-contact .input-field input[type=email]:focus:not([readonly]) + label,
.dark.page-contact input[type=email]:focus + label,
.dark.page-contact input[type=email]:focus:not([readonly]) + label,
.dark.page-contact textarea.materialize-textarea:focus + label,
.dark.page-contact textarea.materialize-textarea:focus:not([readonly]) + label {
  color: rgba(255, 255, 255, 0.8);
}

.dark.page-contact .input-field input[type=text].valid,
.dark.page-contact .input-field input[type=email].valid,
.dark.page-contact textarea.materialize-textarea.valid {
  border-bottom-color: rgba(255, 255, 255, 0.8);
}

.dark.page-contact .input-field input[type=text].invalid,
.dark.page-contact .input-field input[type=email].invalid,
.dark.page-contact textarea.materialize-textarea.invalid {
  border-bottom-color: rgba(255, 255, 255, 0.8);
}

.dark.page-contact .input-field .prefix.active {
  color: rgba(255, 255, 255, 0.8);
}

.dark table.highlight > tbody > tr:hover {
  background: #212121;
}

.dark .panel-background {
  background: #0f0f0f;
}

.dark .nav-icon,
.dark .nav-icon::after,
.dark .nav-icon::before {
  background-color: #fff;
}

.dark .nav-icon.transformed {
  background-color: transparent;
}

.dark .nav-overlay {
  background: rgba(33, 33, 33, 0.7);
}

.dark .hero h1 {
  color: #f5f5f5;
}

.dark .pace .pace-activity {
  border-top-color: #fff;
  border-left-color: #fff;
}

/*---------------------------------------------------------------------------------------

17 Page: home

-----------------------------------------------------------------------------------------*/
.hero {
  position: relative;
  margin-bottom: 5rem;
}

.hero h1 {
  -webkit-transform: translateY(-50%) translateX(-50%);
  -moz-transform: translateY(-50%) translateX(-50%);
  -ms-transform: translateY(-50%) translateX(-50%);
  -o-transform: translateY(-50%) translateX(-50%);
  transform: translateY(-50%) translateX(-50%);
  position: absolute;
  top: 50%;
  left: 50%;
  width: 75%;
  padding: 0 5rem;
  margin: 0;
  color: #424242;
  text-align: center;
}

@media only screen and (max-width: 600px) {
  .hero h1 {
    padding: 0 .5rem;
    font-size: 2.5rem;
  }
}

.view-all {
  position: relative;
  display: inline-block;
  margin-top: 2rem;
}

.view-all::after {
  -webkit-transition: all 0.4s cubic-bezier(0.075, 0.82, 0.165, 1);
  -moz-transition: all 0.4s cubic-bezier(0.075, 0.82, 0.165, 1);
  transition: all 0.4s cubic-bezier(0.075, 0.82, 0.165, 1);
  position: absolute;
  right: -1rem;
  content: '→';
  opacity: 0;
}

.view-all:hover::after {
  right: -2rem;
  opacity: 1;
}

@media only screen and (max-width: 992px) {
  .page-home main {
    text-align: center;
  }
}

/*---------------------------------------------------------------------------------------

18 Page: about

-----------------------------------------------------------------------------------------*/
.team .rhombus-clip {
  -webkit-clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
}

.team .rhombus-clip:hover {
  -webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
}

.team .hiring {
  background: #fafafa;
}

.team .title {
  font-size: 75%;
}

@media only screen and (max-width: 600px) {
  .team .title {
    font-size: 90%;
  }
}

@media only screen and (max-width: 992px) {
  .team {
    text-align: center;
  }
}

.page-about .expertise .row:not(:first-of-type) {
  margin-bottom: 5rem;
}

@media only screen and (max-width: 992px) {
  .page-about .expertise .row:not(:first-of-type) {
    margin-bottom: 2rem;
  }
}

.expertise i {
  display: block;
  margin-bottom: 1.5rem;
  font-size: 7rem;
}

@media only screen and (max-width: 992px) {
  .expertise i {
    margin-bottom: .5rem;
  }
}

.expertise .expertise-description {
  font-size: 75%;
}

@media only screen and (max-width: 600px) {
  .expertise .expertise-description {
    font-size: 90%;
  }
}

@media only screen and (max-width: 992px) {
  .expertise {
    text-align: center;
  }
}

.philosophy .tabs {
  height: auto;
  background-color: transparent;
}

.philosophy .tabs .tab {
  height: auto;
  letter-spacing: normal;
  color: #373737;
  text-transform: none;
}

@media only screen and (max-width: 600px) {
  .philosophy .tabs .tab h5 {
    display: none;
  }
}

@media only screen and (min-width: 993px) {
  .philosophy .tabs .tab .philosophy-number {
    display: none;
  }
}

.philosophy .tabs .tab a {
  color: #bdbdbd;
}

.philosophy .tabs .tab a.active, .philosophy .tabs .tab a:hover {
  color: #373737;
}

.philosophy .tab-contents h5 {
  display: none;
}

@media only screen and (max-width: 600px) {
  .philosophy .tab-contents h5 {
    display: block;
    text-align: center;
  }
}

.philosophy .indicator {
  height: 3px;
  background-color: #373737;
}

/*---------------------------------------------------------------------------------------

19 Page: prices

-----------------------------------------------------------------------------------------*/
.prices .info {
  display: inline-block;
  padding: 0 1rem;
  cursor: help;
  opacity: .5;
}

.prices .info:hover {
  opacity: 1;
}

.prices .price {
  font-size: 3.5rem;
  font-weight: 300;
}

@media only screen and (max-width: 992px) {
  .prices .price-box {
    margin-bottom: 2rem;
  }
}

.prices .divider {
  margin-top: .5em;
}

@media only screen and (max-width: 992px) {
  .prices {
    text-align: center;
  }
  .prices .info {
    position: absolute;
  }
}

.faq .collapsible {
  border: 0;
  box-shadow: none;
}

.faq .collapsible-header {
  min-height: 5rem;
  padding: 0;
  line-height: 5rem;
  background: transparent;
}

.faq .collapsible-body p {
  padding: 2rem 0;
}

/*---------------------------------------------------------------------------------------

20 Page: contact

-----------------------------------------------------------------------------------------*/
.page-contact .input-field label {
  left: 0;
  color: #373737;
}

.page-contact input[type=text],
.page-contact input[type=email],
.page-contact input[type=email],
.page-contact textarea.materialize-textarea {
  border-bottom-color: #373737;
}

.page-contact .input-field input[type=text]:focus:not([readonly]),
.page-contact .input-field input[type=email]:focus,
.page-contact .input-field input[type=email]:focus:not([readonly]),
.page-contact input[type=email]:focus,
.page-contact input[type=email]:focus:not([readonly]),
.page-contact textarea.materialize-textarea:focus,
.page-contact textarea.materialize-textarea:focus:not([readonly]) {
  border-bottom-color: #373737;
  box-shadow: none;
}

.page-contact .input-field input[type=text]:focus:not([readonly]) + label,
.page-contact .input-field input[type=email]:focus + label,
.page-contact .input-field input[type=email]:focus:not([readonly]) + label,
.page-contact input[type=email]:focus + label,
.page-contact input[type=email]:focus:not([readonly]) + label,
.page-contact textarea.materialize-textarea:focus + label,
.page-contact textarea.materialize-textarea:focus:not([readonly]) + label {
  color: #373737;
}

.page-contact .input-field input[type=text].valid,
.page-contact .input-field input[type=email].valid,
.page-contact textarea.materialize-textarea.valid {
  border-bottom-color: #373737;
  box-shadow: none;
}

.page-contact .input-field input[type=text].invalid,
.page-contact .input-field input[type=email].invalid,
.page-contact textarea.materialize-textarea.invalid {
  border-bottom-color: #373737;
  box-shadow: none;
}

.page-contact .input-field .prefix.active {
  color: #373737;
}

.page-contact address {
  margin: 1em 0;
  font-style: normal;
}

.page-contact form {
  padding: 2rem;
  background: #fafafa;
}

.page-contact .social .network {
  -webkit-transition: background 0.4s cubic-bezier(0.075, 0.82, 0.165, 1);
  -moz-transition: background 0.4s cubic-bezier(0.075, 0.82, 0.165, 1);
  transition: background 0.4s cubic-bezier(0.075, 0.82, 0.165, 1);
  display: block;
  padding: 4rem 0;
}

.page-contact .social .network.facebook:hover {
  background: #3b5998;
}

.page-contact .social .network.twitter:hover {
  background: #4099ff;
}

.page-contact .social .network.dribbble:hover {
  background: #c73b6f;
}

.page-contact .social .network.github:hover {
  background: #999;
}

.page-contact .social .network.vk:hover {
  background: #2b587a;
}

.page-contact .social .network.googleplus:hover {
  background: #c24e40;
}

@media only screen and (max-width: 992px) {
  .page-contact .social .network {
    padding: 3rem 0;
  }
}

@media only screen and (max-width: 600px) {
  .page-contact .social .network {
    padding: 2rem 0;
  }
}

.page-contact .social .network:hover {
  color: #fff;
}

@media only screen and (max-width: 992px) {
  .page-contact .visit-us {
    text-align: center;
  }
}

/*---------------------------------------------------------------------------------------

21 Page: news

-----------------------------------------------------------------------------------------*/
.news-grid article h3 {
  margin: 0;
}

.news-grid article a:hover .rectangle {
  -webkit-filter: grayscale(0);
  filter: grayscale(0);
}

@media only screen and (max-width: 992px) {
  .news-grid {
    text-align: center;
  }
}

.alternative .rectangle {
  -webkit-filter: grayscale(0);
  filter: grayscale(0);
  opacity: 0;
}

.alternative .rectangle::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(55, 55, 55, 0.75);
  content: '';
}

.alternative article a {
  position: relative;
}

.alternative article a:hover .rectangle {
  opacity: 1;
}

.alternative article a:hover h3 {
  color: #fff;
}

.alternative .info {
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  position: absolute;
  top: 50%;
  z-index: 10;
  width: calc(100% - 1.5rem);
  text-align: center;
}

.alternative h3 {
  margin: 0;
}

/*---------------------------------------------------------------------------------------

22 Page: single

-----------------------------------------------------------------------------------------*/
[class*='page-work-'] .text-indent p,
[class*='page-news-'] .text-indent p {
  margin: 0;
}

[class*='page-work-'] .text-indent p:not(:first-of-type),
[class*='page-news-'] .text-indent p:not(:first-of-type) {
  text-indent: 2rem;
}

[class*='page-work-'] .project-meta p:first-of-type,
[class*='page-news-'] .project-meta p:first-of-type {
  margin-top: 0;
}

[class*='page-work-'] .divider,
[class*='page-news-'] .divider {
  margin: 5rem 0;
}

[class*='page-work-'] .divider.modest,
[class*='page-news-'] .divider.modest {
  margin: 1.5rem 0;
}

@media only screen and (max-width: 992px) {
  [class*='page-work-'] .divider,
  [class*='page-news-'] .divider {
    margin: 3.5rem 0;
  }
}

@media only screen and (max-width: 600px) {
  [class*='page-work-'] .divider,
  [class*='page-news-'] .divider {
    margin: 2rem 0;
  }
}

[class*='page-work-'] .parallax-container:hover img,
[class*='page-news-'] .parallax-container:hover img {
  -webkit-filter: grayscale(0);
  filter: grayscale(0);
}

[class*='page-work-'] blockquote,
[class*='page-news-'] blockquote {
  font-size: 2rem;
  border-left: 0;
}

@media only screen and (max-width: 600px) {
  [class*='page-work-'] blockquote,
  [class*='page-news-'] blockquote {
    font-size: 1.5rem;
    font-weight: 300;
  }
}

[class*='page-work-'] .floating-blockquote,
[class*='page-work-'] .floating-figure,
[class*='page-news-'] .floating-blockquote,
[class*='page-news-'] .floating-figure {
  width: 50%;
  padding: 2rem;
}

[class*='page-work-'] .floating-blockquote,
[class*='page-news-'] .floating-blockquote {
  font-size: 2rem;
  font-weight: 700;
}

@media only screen and (max-width: 600px) {
  [class*='page-work-'] .floating-blockquote,
  [class*='page-news-'] .floating-blockquote {
    padding: 1rem;
    font-size: 1.5rem;
  }
}

[class*='page-work-'] .mdash-ul li::before,
[class*='page-news-'] .mdash-ul li::before {
  color: #e0e0e0;
  content: '— ';
}

[class*='page-work-'] .author-picture,
[class*='page-news-'] .author-picture {
  -webkit-transition: all 0.2s cubic-bezier(0.075, 0.82, 0.165, 1);
  -moz-transition: all 0.2s cubic-bezier(0.075, 0.82, 0.165, 1);
  transition: all 0.2s cubic-bezier(0.075, 0.82, 0.165, 1);
  -webkit-clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
  position: absolute;
  width: 30px;
  margin-top: -2px;
  margin-left: -35px;
}

[class*='page-work-'] .author-picture:hover,
[class*='page-news-'] .author-picture:hover {
  -webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  width: 60px;
  margin-top: -16px;
  margin-left: -52px;
}

.full-half {
  -webkit-transition: all 0.75s cubic-bezier(0.075, 0.82, 0.165, 1);
  -moz-transition: all 0.75s cubic-bezier(0.075, 0.82, 0.165, 1);
  transition: all 0.75s cubic-bezier(0.075, 0.82, 0.165, 1);
  -webkit-filter: grayscale(100);
  filter: grayscale(100);
  position: fixed;
  top: 0;
  left: 0;
  width: 47.5%;
  height: 100%;
}

.full-half:hover {
  -webkit-filter: grayscale(0);
  filter: grayscale(0);
}

.full-half.left-side {
  left: 0;
}

.full-half.right-side {
  right: 0;
  left: auto;
}

@media only screen and (max-width: 992px) {
  .full-half {
    position: relative;
    width: 100%;
    padding-bottom: 50%;
  }
}

.full-half,
.panel {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.panel-background {
  background: #fff;
}

.page-work-pagepiling {
  overflow: hidden;
}

/*---------------------------------------------------------------------------------------

23 Page: work

-----------------------------------------------------------------------------------------*/
.one-col .row {
  margin-bottom: 10rem;
}

@media only screen and (max-width: 992px) {
  .one-col .row {
    margin-bottom: 4rem;
  }
}

figure {
  position: relative;
  margin: 0;
}

figure img {
  position: relative;
  z-index: 8;
  display: block;
}

figcaption {
  position: absolute;
  bottom: -50px;
  z-index: 9;
  width: 300px;
  padding: 0 2rem;
  background: #fff;
  border: 4px solid #373737;
}

figcaption h3 {
  margin-bottom: 0;
}

figcaption p {
  margin-top: 0;
}

figcaption.right-figcaption {
  right: -200px;
}

@media only screen and (max-width: 992px) {
  figcaption.right-figcaption {
    right: auto;
  }
}

figcaption.left-figcaption {
  left: -200px;
}

@media only screen and (max-width: 992px) {
  figcaption.left-figcaption {
    left: auto;
  }
}

@media only screen and (max-width: 992px) {
  figcaption {
    position: relative;
    bottom: auto;
    width: auto;
    text-align: center;
    border: 0;
  }
}

/*---------------------------------------------------------------------------------------

24 Page: demos

-----------------------------------------------------------------------------------------*/
.demos h1 {
  margin-top: 4rem;
  margin-bottom: 0;
}

.demos h1 + p {
  margin-top: 0;
}

.demos h2 {
  margin-bottom: 0;
}

.demos .current-page::before, .demos .current-page::after {
  display: none;
}

.demos .demo-link {
  display: block;
  margin-bottom: 2rem;
}

.demos a:hover img {
  opacity: .5;
}

.demos .screens {
  -webkit-transition: all 0.75s cubic-bezier(0.075, 0.82, 0.165, 1);
  -moz-transition: all 0.75s cubic-bezier(0.075, 0.82, 0.165, 1);
  transition: all 0.75s cubic-bezier(0.075, 0.82, 0.165, 1);
  -webkit-transform: translate3d(0, 300px, 1px);
  -moz-transform: translate3d(0, 300px, 1px);
  -ms-transform: translate3d(0, 300px, 1px);
  -o-transform: translate3d(0, 300px, 1px);
  transform: translate3d(0, 300px, 1px);
  opacity: 0;
}

.demos .screens.loaded {
  -webkit-transform: translate3d(0, 0, 1px);
  -moz-transform: translate3d(0, 0, 1px);
  -ms-transform: translate3d(0, 0, 1px);
  -o-transform: translate3d(0, 0, 1px);
  transform: translate3d(0, 0, 1px);
  opacity: 1;
}





.rectangle_firstPage {
  padding-bottom: 45%;
}


@media (orientation:landscape) {
	.rectangle_firstPage
	{
	  -webkit-filter: grayscale(100%);
	  filter: grayscale(100%);
	  -webkit-transition: all 0.75s cubic-bezier(0.075, 0.82, 0.165, 1);
	  -moz-transition: all 0.75s cubic-bezier(0.075, 0.82, 0.165, 1);
	  transition: all 0.75s cubic-bezier(0.075, 0.82, 0.165, 1);
	  position: relative;
	  display: block;
	  overflow: hidden;
	  background-position: center;
	  background-repeat: no-repeat;
	  /*background-size: cover;*/
	}
}


@media (orientation:portrait) {
	.rectangle_firstPage
	{
	  -webkit-filter: grayscale(100%);
	  filter: grayscale(100%);
	  -webkit-transition: all 0.75s cubic-bezier(0.075, 0.82, 0.165, 1);
	  -moz-transition: all 0.75s cubic-bezier(0.075, 0.82, 0.165, 1);
	  transition: all 0.75s cubic-bezier(0.075, 0.82, 0.165, 1);
	  position: relative;
	  display: block;
	  overflow: hidden;
	  background-position: center;
	  background-repeat: no-repeat;
	  padding-top: 60%;
	  /*background-size: cover;*/
	}
}



.rectangle_firstPage > .content {
  position: absolute;
  bottom: 0;
  width: 100%;
  padding: 0 1.46rem;
}

.rectangle_firstPage > .content.medium-content {
  padding: 0 .75rem;
}

.rectangle_firstPage > .content.medium-content h3 {
  margin: .75rem 0;
  font-size: 1.5rem;
}

.rectangle_firstPage > .content.small-content, {
  padding: 0 .5rem;
}

.rectangle_firstPage > .content.small-content h3, {
  margin: .5rem 0;
  font-size: 1.2rem;
}

.rectangle_firstPage:hover {
  -webkit-filter: grayscale(0);
  filter: grayscale(0);
}



/*   */




.blocks_black_title  .row {
  margin-bottom: 1.5rem;
}

.blocks_black_title > .row .row:not(:first-of-type) {
  margin-bottom: 0;
}

.blocks_black_title a {
  /*color: #fff;*/
  color: #fff;
}


.blocks_black_title, a:hover {
  /*color: #000;*/
  color: #fff;
}



.img_gal {
	height: 150px;
}

.img_holder {
	text-align: center;
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmF2YS5jc3MiLCJzb3VyY2VzIjpbInZhdmEuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX2JvdXJib24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX3ByZWZpeGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19weC10by1lbS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fYXNzZXQtcGlwZWxpbmUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19hc3NpZ24taW5wdXRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fY29udGFpbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19jb250YWlucy1mYWxzeS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLWxlbmd0aC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLWxpZ2h0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtbnVtYmVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtc2l6ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3B4LXRvLWVtLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fcHgtdG8tcmVtLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fc2hhZGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19zdHJpcC11bml0cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3RpbnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL190cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL191bnBhY2suc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19tb2R1bGFyLXNjYWxlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2NvbnZlcnQtdW5pdHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fZGlyZWN0aW9uYWwtdmFsdWVzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLWFuZ2xlLXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmFkaWFsLWFyZy1wYXJzZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmFkaWFsLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yZW5kZXItZ3JhZGllbnRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3NoYXBlLXNpemUtc3RyaXBwZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fc3RyLXRvLW51bS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19hbmltYXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYXBwZWFyYW5jZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZmFjZS12aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JhY2tncm91bmQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2dyb3VuZC1pbWFnZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19ib3JkZXItaW1hZ2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fY2FsYy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19jb2x1bW5zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZpbHRlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19mbGV4LWJveC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19mb250LWZhY2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZm9udC1mZWF0dXJlLXNldHRpbmdzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2hpZHBpLW1lZGlhLXF1ZXJ5LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2h5cGhlbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9faW1hZ2UtcmVuZGVyaW5nLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2tleWZyYW1lcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19saW5lYXItZ3JhZGllbnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fcGVyc3BlY3RpdmUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fcGxhY2Vob2xkZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fcmFkaWFsLWdyYWRpZW50LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3NlbGVjdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190ZXh0LWRlY29yYXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdHJhbnNmb3JtLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3RyYW5zaXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdXNlci1zZWxlY3Quc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItY29sb3Iuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItcmFkaXVzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXN0eWxlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXdpZHRoLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYnV0dG9ucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2NsZWFyZml4LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fZWxsaXBzaXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19mb250LXN0YWNrcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2hpZGUtdGV4dC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX21hcmdpbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3BhZGRpbmcuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wb3NpdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3ByZWZpeGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcmV0aW5hLWltYWdlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fc2l6ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RleHQtaW5wdXRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fdGltaW5nLWZ1bmN0aW9ucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RyaWFuZ2xlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fd29yZC13cmFwLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19ib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmcuc2NzcyIsImNvbXBvbmVudHMvbWF0ZXJpYWxpemUtY29sb3JzLnNjc3MiLCJjb21wb25lbnRzL3ZhcmlhYmxlcy5zY3NzIiwiY29tcG9uZW50cy9nbG9iYWwuc2NzcyIsImNvbXBvbmVudHMvdHlwb2dyYXBoeS5zY3NzIiwiY29tcG9uZW50cy9oZWxwZXJzLnNjc3MiLCJjb21wb25lbnRzL3NwaW5uZXJzLnNjc3MiLCJjb21wb25lbnRzL2J1dHRvbnMuc2NzcyIsImNvbXBvbmVudHMvbGlua3Muc2NzcyIsImNvbXBvbmVudHMvbmF2LnNjc3MiLCJjb21wb25lbnRzL2hhbWJ1cmdlci5zY3NzIiwiY29tcG9uZW50cy9mb290ZXIuc2NzcyIsImNvbXBvbmVudHMvdG9hc3RzLnNjc3MiLCJjb21wb25lbnRzL3NsaWRlci5zY3NzIiwiY29tcG9uZW50cy9ibG9ja3Muc2NzcyIsImNvbXBvbmVudHMvZHJvcGRvd24uc2NzcyIsImNvbXBvbmVudHMvZnVsbHBhZ2Uuc2NzcyIsImNvbXBvbmVudHMvcGFnZXBpbGluZy5zY3NzIiwiY29tcG9uZW50cy9kYXJrLnNjc3MiLCJwYWdlcy9ob21lLnNjc3MiLCJwYWdlcy9hYm91dC5zY3NzIiwicGFnZXMvcHJpY2VzLnNjc3MiLCJwYWdlcy9jb250YWN0LnNjc3MiLCJwYWdlcy9uZXdzLnNjc3MiLCJwYWdlcy9zaW5nbGUuc2NzcyIsInBhZ2VzL3dvcmsuc2NzcyIsInBhZ2VzL2RlbW9zLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbltNYXN0ZXIgU3R5bGVzaGVldF1cblByb2plY3Q6IFZhdmFcblZlcnNpb246IDEuMVxuQXV0aG9yOiBZZWdvciBCb3Jpc2VuY28gPHBpbW1leUBwaW1tZXkuY29tPlxuQXV0aG9yIHByb2ZpbGU6IGh0dHBzOi8vdGhlbWVmb3Jlc3QubmV0L3VzZXIvcGltbWV5XG5cbltUYWJsZSBvZiBDb250ZW50c11cbjEgR2xvYmFsIHN0eWxlcyAvIHNlY3Rpb24sIC5jb250YWluZXIsIGlmcmFtZSwgaW1nLCBzdHJvbmcsIHRoZWFkLCAuZGl2aWRlciwgbWFpblxuMiBUeXBvZ3JhcGh5IGltcHJvdmVtZW50cyAvIGJvZHksIGlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0LCBidXR0b24sIGgyLCBoM1xuMyBIZWxwZXIgY2xhc3NlcyAvIC5sb2NrZWQsIC5tYXJnaW4tb24tbWVkaXVtLWFuZC1kb3duLCAubWVnYS1wYWRkaW5nLCAubm9iclxuNCBTcGlubmVycyAvIC5wYWNlLCAuc3Bpbm5lciwgLnNwaW5uZXItd3JhcHBlciwgLmN1cnRhaW5zXG41IEJ1dHRvbnMgLyAuYnRuLCAuYnRuLWxhcmdlXG42IExpbmtzIC8gYSwgLnVuZGVybGluZVxuNyBOYXZpZ2F0aW9uIC8gLm5hdmJhci1maXhlZCwgbmF2LCAjc2lkZW5hdi1vdmVybGF5LCAubmF2LW92ZXJsYXksIC5jdXJyZW50LXBhZ2VcbjggSGFtYnVyZ2VyIGJ1dHRvbiAvIC5uYXYtaWNvbi1jb250YWluZXIsIC5uYXYtaWNvblxuOSBGb290ZXIgLyBmb290ZXJcbjEwIFRvYXN0cyAvIC50b2FzdFxuMTEgU2xpZGVyIC8gLnNsaWRlciAuaW5kaWNhdG9ycyAuaW5kaWNhdG9yLWl0ZW1cbjEyIEJsb2NrcyAvIC5yZWN0YW5nbGUsIC5yZWN0YW5nbGUtdmVydGljYWwsIC5zcXVhcmUsIC5jb250ZW50LCAuYmxvY2tzXG4xMyBEcm9wZG93biAvIC5kcm9wZG93bi1jb250ZW50LCAuZHJvcGRvd24tYnV0dG9uXG4xNCBGdWxscGFnZSBwbHVnaW4gY3VzdG9taXNhdGlvbiAvICNmdWxscGFnZSwgLmNvbnRhaW5lci1wYWRkaW5nXG4xNSBQYWdlcGlsaW5nIHBsdWdpbiBjdXN0b21pc2F0aW9uIC8gI3BwLW5hdiBzcGFuLCAucHAtc2xpZGVzTmF2IHNwYW5cbjE2IERhcmsgc2tpbiBzdHlsZXMgLyAuZGFya1xuMTcgUGFnZTogaG9tZSAvIC5oZXJvLCAudmlldy1hbGwsIC5wYWdlLWhvbWVcbjE4IFBhZ2U6IGFib3V0IC8gLnRlYW0sIC5leHBlcnRpc2UsIC5waGlsb3NvcGh5LCAucGFnZS1hYm91dFxuMTkgUGFnZTogcHJpY2VzIC8gLnByaWNlcywgLmZhcVxuMjAgUGFnZTogY29udGFjdCAvIC5wYWdlLWNvbnRhY3QsIGlucHV0LCAuaW5wdXQtZmllbGQsIGZvcm0sIC5zb2NpYWxcbjIxIFBhZ2U6IG5ld3MgLyAubmV3cy1ncmlkLCAuYWx0ZXJuYXRpdmUsIGFydGljbGVcbjIyIFBhZ2U6IHNpbmdsZSAvIFtjbGFzcyo9J3BhZ2Utd29yay0nXSwgW2NsYXNzKj0ncGFnZS1uZXdzLSddXG4yMyBQYWdlOiB3b3JrIC8gZmlndXJlLCBmaWdjYXB0aW9uLFxuMjQgUGFnZTogZGVtb3MgLyAuZGVtb3NcblxuW0NvbG9yIGNvZGVzXVxuIyBHbG9iYWwgY29sb3JzXG5XaGl0ZTogICAgICAjZmZmXG5CbGFjazogICAgICAjMzczNzM3XG4jIFVzZWQgZm9yIHNvY2lhbCBsaW5rc1xuRmFjZWJvb2s6ICAgIzNiNTk5ODtcblR3aXR0ZXI6ICAgICM0MDk5ZmY7XG5EcmliYmJsZTogICAjYzczYjZmO1xuR2l0aHViOiAgICAgIzk5OTtcblZLOiAgICAgICAgICMyYjU4N2E7XG5MaW5rZWRpbjogICAjNDA3NWI0O1xuR29vZ2xlcGx1czogI2MyNGU0MDtcblBpbnRlcmVzdDogICNiZDA4MWM7XG4jIFRvYXN0IGJhY2tncm91bmRzXG5FcnJvcjogICAgICAjZmY1MjUyXG5TdWNjZXNzOiAgICAjMDBlNjc2XG5cbltUeXBvZ3JhcGh5XVxuIyBDaGVjayBvdXQgaHR0cDovL21hdGVyaWFsaXplY3NzLmNvbS90eXBvZ3JhcGh5Lmh0bWwgZm9yIG1vcmUgZGV0YWlsc1xuRm9udDogICAgICAgUmFzYVxuQm9keTogICAgICAgMTZweFxucDogICAgICAgICAgcmVzcG9uc2l2ZSBmbG93IHRleHQgKGh0dHA6Ly9tYXRlcmlhbGl6ZWNzcy5jb20vdHlwb2dyYXBoeS5odG1sI2Zsb3cpXG5oMjogICAgICAgICAzLjU2cmVtLzExMCVcbmgzOiAgICAgICAgIDJyZW0vMTEwJVxuaDQ6ICAgICAgICAgMi4yOHJlbS8xMTAlXG5oNTogICAgICAgICAxLjY0cmVtLzExMCVcbm5hdjogICAgICAgIDFyZW0vMS41XG5ibG9ja3F1b3RlOiAycmVtLzEuNVxuKi9cblxuQGltcG9ydCAnLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib3VyYm9uJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9tYXRlcmlhbGl6ZS1jb2xvcnMnO1xuQGltcG9ydCAnY29tcG9uZW50cy92YXJpYWJsZXMnO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4xIEdsb2JhbCBzdHlsZXNcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCAnY29tcG9uZW50cy9nbG9iYWwnO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4yIFR5cG9ncmFwaHkgaW1wcm92ZW1lbnRzXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeSc7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbjMgSGVscGVyIGNsYXNzZXNcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCAnY29tcG9uZW50cy9oZWxwZXJzJztcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuNCBTcGlubmVyc1xuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdjb21wb25lbnRzL3NwaW5uZXJzJztcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuNSBCdXR0b25zXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9ucyc7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbjYgTGlua3NcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCAnY29tcG9uZW50cy9saW5rcyc7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbjcgTmF2aWdhdGlvblxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdjb21wb25lbnRzL25hdic7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbjggSGFtYnVyZ2VyIGJ1dHRvblxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdjb21wb25lbnRzL2hhbWJ1cmdlcic7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbjkgRm9vdGVyXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBpbXBvcnQgJ2NvbXBvbmVudHMvZm9vdGVyJztcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuMTAgVG9hc3RzXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9hc3RzJztcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuMTEgU2xpZGVyXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2xpZGVyJztcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuMTIgQmxvY2tzXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmxvY2tzJztcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuMTMgRHJvcGRvd25cblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bic7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbjE0IEZ1bGxwYWdlIHBsdWdpbiBjdXN0b21pc2F0aW9uXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBpbXBvcnQgJ2NvbXBvbmVudHMvZnVsbHBhZ2UnO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4xNSBQYWdlcGlsaW5nIHBsdWdpbiBjdXN0b21pc2F0aW9uXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBpbXBvcnQgJ2NvbXBvbmVudHMvcGFnZXBpbGluZyc7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbjE2IERhcmsgc2tpbiBzdHlsZXNcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCAnY29tcG9uZW50cy9kYXJrJztcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuMTcgUGFnZTogaG9tZVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdwYWdlcy9ob21lJztcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuMTggUGFnZTogYWJvdXRcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCAncGFnZXMvYWJvdXQnO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4xOSBQYWdlOiBwcmljZXNcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCAncGFnZXMvcHJpY2VzJztcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuMjAgUGFnZTogY29udGFjdFxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdwYWdlcy9jb250YWN0JztcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuMjEgUGFnZTogbmV3c1xuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0ICdwYWdlcy9uZXdzJztcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuMjIgUGFnZTogc2luZ2xlXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBpbXBvcnQgJ3BhZ2VzL3NpbmdsZSc7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbjIzIFBhZ2U6IHdvcmtcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCAncGFnZXMvd29yayc7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbjI0IFBhZ2U6IGRlbW9zXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBpbXBvcnQgJ3BhZ2VzL2RlbW9zJztcbiIsIi8vIEJvdXJib24gNC4yLjdcbi8vIGh0dHA6Ly9ib3VyYm9uLmlvXG4vLyBDb3B5cmlnaHQgMjAxMS0yMDE1IHRob3VnaHRib3QsIGluYy5cbi8vIE1JVCBMaWNlbnNlXG5cbkBpbXBvcnQgXCJzZXR0aW5ncy9wcmVmaXhlclwiO1xuQGltcG9ydCBcInNldHRpbmdzL3B4LXRvLWVtXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvYXNzZXQtcGlwZWxpbmVcIjtcblxuQGltcG9ydCBcImZ1bmN0aW9ucy9hc3NpZ24taW5wdXRzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zLWZhbHN5XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxlbmd0aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1saWdodFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1udW1iZXJcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtc2l6ZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1lbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1yZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc2hhZGVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc3RyaXAtdW5pdHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdGludFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdW5wYWNrXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL21vZHVsYXItc2NhbGVcIjtcblxuQGltcG9ydCBcImhlbHBlcnMvY29udmVydC11bml0c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvZGlyZWN0aW9uYWwtdmFsdWVzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9mb250LXNvdXJjZS1kZWNsYXJhdGlvblwiO1xuQGltcG9ydCBcImhlbHBlcnMvZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWFuZ2xlLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1hcmctcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmVuZGVyLWdyYWRpZW50c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvc2hhcGUtc2l6ZS1zdHJpcHBlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvc3RyLXRvLW51bVwiO1xuXG5AaW1wb3J0IFwiY3NzMy9hbmltYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL2FwcGVhcmFuY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tmYWNlLXZpc2liaWxpdHlcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmRcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmQtaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JvcmRlci1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvY2FsY1wiO1xuQGltcG9ydCBcImNzczMvY29sdW1uc1wiO1xuQGltcG9ydCBcImNzczMvZmlsdGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9mbGV4LWJveFwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mYWNlXCI7XG5AaW1wb3J0IFwiY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJjc3MzL2hpZHBpLW1lZGlhLXF1ZXJ5XCI7XG5AaW1wb3J0IFwiY3NzMy9oeXBoZW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9pbWFnZS1yZW5kZXJpbmdcIjtcbkBpbXBvcnQgXCJjc3MzL2tleWZyYW1lc1wiO1xuQGltcG9ydCBcImNzczMvbGluZWFyLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy9wZXJzcGVjdGl2ZVwiO1xuQGltcG9ydCBcImNzczMvcGxhY2Vob2xkZXJcIjtcbkBpbXBvcnQgXCJjc3MzL3JhZGlhbC1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvc2VsZWN0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy90ZXh0LWRlY29yYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zZm9ybVwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNpdGlvblwiO1xuQGltcG9ydCBcImNzczMvdXNlci1zZWxlY3RcIjtcblxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItY29sb3JcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXJhZGl1c1wiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItc3R5bGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXdpZHRoXCI7XG5AaW1wb3J0IFwiYWRkb25zL2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvY2xlYXJmaXhcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZWxsaXBzaXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZm9udC1zdGFja3NcIjtcbkBpbXBvcnQgXCJhZGRvbnMvaGlkZS10ZXh0XCI7XG5AaW1wb3J0IFwiYWRkb25zL21hcmdpblwiO1xuQGltcG9ydCBcImFkZG9ucy9wYWRkaW5nXCI7XG5AaW1wb3J0IFwiYWRkb25zL3Bvc2l0aW9uXCI7XG5AaW1wb3J0IFwiYWRkb25zL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwiYWRkb25zL3JldGluYS1pbWFnZVwiO1xuQGltcG9ydCBcImFkZG9ucy9zaXplXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RleHQtaW5wdXRzXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RpbWluZy1mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdHJpYW5nbGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvd29yZC13cmFwXCI7XG5cbkBpbXBvcnQgXCJib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmdcIjtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdsb2JhbCB2YXJpYWJsZXMgdG8gZW5hYmxlIG9yIGRpc2FibGUgdmVuZG9yIHByZWZpeGVzXG5cbiRwcmVmaXgtZm9yLXdlYmtpdDogICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1vemlsbGE6ICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1pY3Jvc29mdDogdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW9wZXJhOiAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLXNwZWM6ICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiIsIiRlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBnbG9iYWwgc2V0dGluZyB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYCRhc3NldC1waXBlbGluZWAgdmFyaWFibGUgZm9yIGFsbCBmdW5jdGlvbnMgdGhhdCBhY2NlcHQgaXQuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiRhc3NldC1waXBlbGluZTogZmFsc2UgIWRlZmF1bHQ7XG4iLCJAZnVuY3Rpb24gYXNzaWduLWlucHV0cygkaW5wdXRzLCAkcHNldWRvOiBudWxsKSB7XG4gICRsaXN0OiAoKTtcblxuICBAZWFjaCAkaW5wdXQgaW4gJGlucHV0cyB7XG4gICAgJGlucHV0OiB1bnF1b3RlKCRpbnB1dCk7XG4gICAgJGlucHV0OiBpZigkcHNldWRvLCAkaW5wdXQgKyBcIjpcIiArICRwc2V1ZG8sICRpbnB1dCk7XG4gICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJGlucHV0LCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRsaXN0O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBjb250YWlucyBhIHZhbHVlKHMpLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsdWVzXG4vLy8gICBBIHNpbmdsZSB2YWx1ZSBvciBsaXN0IG9mIHZhbHVlcyB0byBjaGVjayBmb3IuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWUpXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gY29udGFpbnMoJGxpc3QsICR2YWx1ZXMuLi4pIHtcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuICAgIEBpZiB0eXBlLW9mKGluZGV4KCRsaXN0LCAkdmFsdWUpKSAhPSBcIm51bWJlclwiIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBkb2VzIG5vdCBjb250YWlucyBhIHZhbHVlLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGNvbnRhaW5zLWZhbHN5KCRsaXN0KSB7XG4gIEBlYWNoICRpdGVtIGluICRsaXN0IHtcbiAgICBAaWYgbm90ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBsZW5ndGguXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG5cbkBmdW5jdGlvbiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gIEByZXR1cm4gdHlwZS1vZigkdmFsdWUpICE9IFwibnVsbFwiIGFuZCAoc3RyLXNsaWNlKCR2YWx1ZSArIFwiXCIsIDEsIDQpID09IFwiY2FsY1wiXG4gICAgICAgb3IgaW5kZXgoYXV0byBpbmhlcml0IGluaXRpYWwgMCwgJHZhbHVlKVxuICAgICAgIG9yICh0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiBhbmQgbm90KHVuaXRsZXNzKCR2YWx1ZSkpKSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm9ncmFtYXRpY2FsbHkgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgY29sb3IgaXMgbGlnaHQgb3IgZGFyay5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9yb2JvdHMudGhvdWdodGJvdC5jb20vY2xvc2VyLWxvb2stY29sb3ItbGlnaHRuZXNzXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yIChIZXgpfSAkY29sb3Jcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgaXMtbGlnaHQoJGNvbG9yKVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGlzLWxpZ2h0KCRoZXgtY29sb3IpIHtcbiAgJC1sb2NhbC1yZWQ6IHJlZChyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1ncmVlbjogZ3JlZW4ocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtYmx1ZTogYmx1ZShyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1saWdodG5lc3M6ICgkLWxvY2FsLXJlZCAqIDAuMjEyNiArICQtbG9jYWwtZ3JlZW4gKiAwLjcxNTIgKyAkLWxvY2FsLWJsdWUgKiAwLjA3MjIpIC8gMjU1O1xuXG4gIEByZXR1cm4gJC1sb2NhbC1saWdodG5lc3MgPiAwLjY7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuXG5AZnVuY3Rpb24gaXMtbnVtYmVyKCR2YWx1ZSkge1xuICBAcmV0dXJuIGNvbnRhaW5zKFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiIDAgMSAyIDMgNCA1IDYgNyA4IDksICR2YWx1ZSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIHNpemUuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcblxuQGZ1bmN0aW9uIGlzLXNpemUoJHZhbHVlKSB7XG4gIEByZXR1cm4gaXMtbGVuZ3RoKCR2YWx1ZSlcbiAgICAgICAgICBvciBjb250YWlucyhcImZpbGxcIiBcImZpdC1jb250ZW50XCIgXCJtaW4tY29udGVudFwiIFwibWF4LWNvbnRlbnRcIiwgJHZhbHVlKTtcbn1cbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSBlbSgxMikgd2hlbiB0aGUgcGFyZW50IGlzIDE2cHhcbi8vIGlmIHRoZSBwYXJlbnQgaXMgYW5vdGhlciB2YWx1ZSBzYXkgMjRweCB3cml0ZSBlbSgxMiwgMjQpXG5cbkBmdW5jdGlvbiBlbSgkcHh2YWwsICRiYXNlOiAkZW0tYmFzZSkge1xuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxZW07XG59XG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byByZW1zXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIHJlbSgxMilcbi8vIEFzc3VtZXMgJGVtLWJhc2UgaXMgdGhlIGZvbnQtc2l6ZSBvZiA8aHRtbD5cblxuQGZ1bmN0aW9uIHJlbSgkcHh2YWwpIHtcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cblxuICAkYmFzZTogJGVtLWJhc2U7XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFyZW07XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggYmxhY2suXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3Jcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcbi8vLyAgIFRoZSBhbW91bnQgb2YgYmxhY2sgdG8gYmUgbWl4ZWQgaW4uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoI2ZmYmI1MiwgNjAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY2NGEyMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudCkge1xuICBAcmV0dXJuIG1peCgjMDAwLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFN0cmlwcyB0aGUgdW5pdCBmcm9tIGEgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFdpdGggVW5pdCl9ICR2YWx1ZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAkZGltZW5zaW9uOiBzdHJpcC11bml0cygxMGVtKTtcbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgICRkaW1lbnNpb246IDEwO1xuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyIChVbml0bGVzcyl9XG5cbkBmdW5jdGlvbiBzdHJpcC11bml0cygkdmFsdWUpIHtcbiAgQHJldHVybiAoJHZhbHVlIC8gKCR2YWx1ZSAqIDAgKyAxKSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggd2hpdGUuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3Jcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcbi8vLyAgIFRoZSBhbW91bnQgb2Ygd2hpdGUgdG8gYmUgbWl4ZWQgaW4uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgjNmVjYWE2LCA0MCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYThkZmM5O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJldHVybiB7Q29sb3J9XG5cbkBmdW5jdGlvbiB0aW50KCRjb2xvciwgJHBlcmNlbnQpIHtcbiAgQHJldHVybiBtaXgoI2ZmZiwgJGNvbG9yLCAkcGVyY2VudCk7XG59XG4iLCIvLyBSZXR1cm4gdmVuZG9yLXByZWZpeGVkIHByb3BlcnR5IG5hbWVzIGlmIGFwcHJvcHJpYXRlXG4vLyBFeGFtcGxlOiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCh0cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kKSwgbW96KSAtPiAtbW96LXRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmRcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wcywgJHZlbmRvcjogZmFsc2UpIHtcbiAgJG5ldy1wcm9wczogKCk7XG5cbiAgQGVhY2ggJHByb3AgaW4gJHByb3BzIHtcbiAgICAkbmV3LXByb3BzOiBhcHBlbmQoJG5ldy1wcm9wcywgdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yKSwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkbmV3LXByb3BzO1xufVxuXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yOiBmYWxzZSkge1xuICAvLyBwdXQgb3RoZXIgcHJvcGVydGllcyB0aGF0IG5lZWQgdG8gYmUgcHJlZml4ZWQgaGVyZSBhc3dlbGxcbiAgQGlmICR2ZW5kb3IgYW5kICRwcm9wID09IHRyYW5zZm9ybSB7XG4gICAgQHJldHVybiB1bnF1b3RlKCctJyskdmVuZG9yKyctJyskcHJvcCk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJHByb3A7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENvbnZlcnRzIHNob3J0aGFuZCB0byB0aGUgNC12YWx1ZSBzeW50YXguXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG9ydGhhbmRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW46IHVucGFjaygxZW0gMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luOiAxZW0gMmVtIDFlbSAyZW07XG4vLy8gICB9XG5cbkBmdW5jdGlvbiB1bnBhY2soJHNob3J0aGFuZCkge1xuICBAaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDEge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAyIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMyB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAzKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJHNob3J0aGFuZDtcbiAgfVxufVxuIiwiLy8gU2NhbGluZyBWYXJpYWJsZXNcbiRnb2xkZW46ICAgICAgICAgICAxLjYxODtcbiRtaW5vci1zZWNvbmQ6ICAgICAxLjA2NztcbiRtYWpvci1zZWNvbmQ6ICAgICAxLjEyNTtcbiRtaW5vci10aGlyZDogICAgICAxLjI7XG4kbWFqb3ItdGhpcmQ6ICAgICAgMS4yNTtcbiRwZXJmZWN0LWZvdXJ0aDogICAxLjMzMztcbiRhdWdtZW50ZWQtZm91cnRoOiAxLjQxNDtcbiRwZXJmZWN0LWZpZnRoOiAgICAxLjU7XG4kbWlub3Itc2l4dGg6ICAgICAgMS42O1xuJG1ham9yLXNpeHRoOiAgICAgIDEuNjY3O1xuJG1pbm9yLXNldmVudGg6ICAgIDEuNzc4O1xuJG1ham9yLXNldmVudGg6ICAgIDEuODc1O1xuJG9jdGF2ZTogICAgICAgICAgIDI7XG4kbWFqb3ItdGVudGg6ICAgICAgMi41O1xuJG1ham9yLWVsZXZlbnRoOiAgIDIuNjY3O1xuJG1ham9yLXR3ZWxmdGg6ICAgIDM7XG4kZG91YmxlLW9jdGF2ZTogICAgNDtcblxuJG1vZHVsYXItc2NhbGUtcmF0aW86ICRwZXJmZWN0LWZvdXJ0aCAhZGVmYXVsdDtcbiRtb2R1bGFyLXNjYWxlLWJhc2U6IGVtKCRlbS1iYXNlKSAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlOiAkbW9kdWxhci1zY2FsZS1iYXNlLCAkcmF0aW86ICRtb2R1bGFyLXNjYWxlLXJhdGlvKSB7XG4gICR2MTogbnRoKCR2YWx1ZSwgMSk7XG4gICR2MjogbnRoKCR2YWx1ZSwgbGVuZ3RoKCR2YWx1ZSkpO1xuICAkdmFsdWU6ICR2MTtcblxuICAvLyBzY2FsZSAkdjIgdG8ganVzdCBhYm92ZSAkdjFcbiAgQHdoaWxlICR2MiA+ICR2MSB7XG4gICAgJHYyOiAoJHYyIC8gJHJhdGlvKTsgLy8gd2lsbCBiZSBvZmYtYnktMVxuICB9XG4gIEB3aGlsZSAkdjIgPCAkdjEge1xuICAgICR2MjogKCR2MiAqICRyYXRpbyk7IC8vIHdpbGwgZml4IG9mZi1ieS0xXG4gIH1cblxuICAvLyBjaGVjayBBRlRFUiBzY2FsaW5nICR2MiB0byBwcmV2ZW50IGRvdWJsZS1jb3VudGluZyBjb3JuZXItY2FzZVxuICAkZG91YmxlLXN0cmFuZGVkOiAkdjIgPiAkdjE7XG5cbiAgQGlmICRpbmNyZW1lbnQgPiAwIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRpbmNyZW1lbnQge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgKiAkcmF0aW8pID4gJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAqICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxICogJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRpbmNyZW1lbnQgPCAwIHtcbiAgICAvLyBhZGp1c3QgJHYyIHRvIGp1c3QgYmVsb3cgJHYxXG4gICAgQGlmICRkb3VibGUtc3RyYW5kZWQge1xuICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gJGluY3JlbWVudCB0aHJvdWdoIC0xIHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxIC8gJHJhdGlvKSA8ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAvICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBzdHItdG8tbnVtIGZuLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9jb252ZXJ0LXVuaXRzKCRudW1iZXIsICR1bml0KSB7XG4gICRzdHJpbmdzOiBcInB4XCIsIFwiY21cIiwgXCJtbVwiLCBcIiVcIiwgXCJjaFwiLCBcInBpY2FcIiwgXCJpblwiLCBcImVtXCIsIFwicmVtXCIsIFwicHRcIiwgXCJwY1wiLCBcImV4XCIsIFwidndcIiwgXCJ2aFwiLCBcInZtaW5cIiwgXCJ2bWF4XCIsIFwiZGVnXCIsIFwicmFkXCIsIFwiZ3JhZFwiLCBcInR1cm5cIjtcbiAgJHVuaXRzOiAgIDFweCwgMWNtLCAxbW0sIDElLCAxY2gsIDFwaWNhLCAxaW4sIDFlbSwgMXJlbSwgMXB0LCAxcGMsIDFleCwgMXZ3LCAxdmgsIDF2bWluLCAxdm1heCwgMWRlZywgMXJhZCwgMWdyYWQsIDF0dXJuO1xuICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkdW5pdCk7XG5cbiAgQGlmIG5vdCAkaW5kZXgge1xuICAgIEB3YXJuIFwiVW5rbm93biB1bml0IGAjeyR1bml0fWAuXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRudW1iZXIpICE9IFwibnVtYmVyXCIge1xuICAgIEB3YXJuIFwiYCN7JG51bWJlcn0gaXMgbm90IGEgbnVtYmVyYFwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAcmV0dXJuICRudW1iZXIgKiBudGgoJHVuaXRzLCAkaW5kZXgpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGlyZWN0aW9uYWwtcHJvcGVydHkgbWl4aW5zIGFyZSBzaG9ydGhhbmRzIGZvciB3cml0aW5nIHByb3BlcnRpZXMgbGlrZSB0aGUgZm9sbG93aW5nXG4vLy9cbi8vLyBAaWdub3JlIFlvdSBjYW4gYWxzbyB1c2UgYGZhbHNlYCBpbnN0ZWFkIG9mIGBudWxsYC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgZGlyZWN0aW9uYWwgdmFsdWVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRvdHRlZCBudWxsKTtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMCAxMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAwO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fVxuXG5AZnVuY3Rpb24gY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKSB7XG4gICRvdXRwdXQ6IG51bGw7XG5cbiAgJGE6IG50aCgkdmFscywgMSk7XG4gICRiOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgMikpO1xuICAkYzogaWYobGVuZ3RoKCR2YWxzKSA8IDMsICRhLCBudGgoJHZhbHMsIDMpKTtcbiAgJGQ6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCBpZihsZW5ndGgoJHZhbHMpIDwgNCwgMiwgNCkpKTtcblxuICBAaWYgJGEgPT0gMCB7ICRhOiAwOyB9XG4gIEBpZiAkYiA9PSAwIHsgJGI6IDA7IH1cbiAgQGlmICRjID09IDAgeyAkYzogMDsgfVxuICBAaWYgJGQgPT0gMCB7ICRkOiAwOyB9XG5cbiAgQGlmICRhID09ICRiIGFuZCAkYSA9PSAkYyBhbmQgJGEgPT0gJGQgeyAkb3V0cHV0OiAkYTsgICAgICAgICAgfVxuICBAZWxzZSBpZiAkYSA9PSAkYyBhbmQgJGIgPT0gJGQgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiOyAgICAgICB9XG4gIEBlbHNlIGlmICRiID09ICRkICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGM7ICAgIH1cbiAgQGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYyAkZDsgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuLy8vIE91dHB1dCBkaXJlY3Rpb25hbCBwcm9wZXJ0aWVzLCBmb3IgaW5zdGFuY2UgYG1hcmdpbmAuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJlXG4vLy8gICBQcmVmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdWZcbi8vLyAgIFN1ZmZpeCB0byB1c2Vcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIHZhbHVlc1xuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb2xsYXBzZS1kaXJlY3Rpb25hbHNcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG5cbkBtaXhpbiBkaXJlY3Rpb25hbC1wcm9wZXJ0eSgkcHJlLCAkc3VmLCAkdmFscykge1xuICAvLyBQcm9wZXJ0eSBOYW1lc1xuICAkdG9wOiAgICAkcHJlICsgXCItdG9wXCIgICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYm90dG9tOiAkcHJlICsgXCItYm90dG9tXCIgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkbGVmdDogICAkcHJlICsgXCItbGVmdFwiICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkcmlnaHQ6ICAkcHJlICsgXCItcmlnaHRcIiAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYWxsOiAgICAkcHJlICsgICAgICAgICAgICAgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcblxuICAkdmFsczogY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKTtcblxuICBAaWYgY29udGFpbnMtZmFsc3koJHZhbHMpIHtcbiAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHRvcH06IG50aCgkdmFscywgMSk7IH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDEge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRyaWdodH06IG50aCgkdmFscywgMSk7IH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDIpOyB9XG4gICAgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMiB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMSk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSAzIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDQge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCA0KSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgNCk7IH1cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICN7JGFsbH06ICR2YWxzO1xuICB9XG59XG4iLCIvLyBVc2VkIGZvciBjcmVhdGluZyB0aGUgc291cmNlIHN0cmluZyBmb3IgZm9udHMgdXNpbmcgQGZvbnQtZmFjZVxuLy8gUmVmZXJlbmNlOiBodHRwOi8vZ29vLmdsL1J1MWJLUFxuXG5AZnVuY3Rpb24gZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKSB7XG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XG4gICAgQHJldHVybiBmb250LXVybDtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiB1cmw7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICRhc3NldC1waXBlbGluZSxcbiAgJGZpbGUtZm9ybWF0cyxcbiAgJGZvbnQtdXJsKSB7XG5cbiAgJHNyYzogKCk7XG5cbiAgJGZvcm1hdHMtbWFwOiAoXG4gICAgZW90OiAgIFwiI3skZmlsZS1wYXRofS5lb3Q/I2llZml4XCIgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG4gICAgd29mZjI6IFwiI3skZmlsZS1wYXRofS53b2ZmMlwiIGZvcm1hdChcIndvZmYyXCIpLFxuICAgIHdvZmY6ICBcIiN7JGZpbGUtcGF0aH0ud29mZlwiIGZvcm1hdChcIndvZmZcIiksXG4gICAgdHRmOiAgIFwiI3skZmlsZS1wYXRofS50dGZcIiBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcbiAgICBzdmc6ICAgXCIjeyRmaWxlLXBhdGh9LnN2ZyMjeyRmb250LWZhbWlseX1cIiBmb3JtYXQoXCJzdmdcIilcbiAgKTtcblxuICBAZWFjaCAka2V5LCAkdmFsdWVzIGluICRmb3JtYXRzLW1hcCB7XG4gICAgQGlmIGNvbnRhaW5zKCRmaWxlLWZvcm1hdHMsICRrZXkpIHtcbiAgICAgICRmaWxlLXBhdGg6IG50aCgkdmFsdWVzLCAxKTtcbiAgICAgICRmb250LWZvcm1hdDogbnRoKCR2YWx1ZXMsIDIpO1xuXG4gICAgICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgZm9udC11cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIHVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzcmM7XG59XG4iLCJAZnVuY3Rpb24gX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXR5cGUsICRncmFkaWVudC1wb3NpdGlvbnMpIHtcbiAgQGlmICRncmFkaWVudC1wb3NpdGlvbnNcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIpXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cbiAgQHJldHVybiAkZ3JhZGllbnQtcG9zaXRpb25zO1xufVxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCkge1xuICAkb2Zmc2V0OiBudWxsO1xuICAkdW5pdC1zaG9ydDogIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMiwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR1bml0LWxvbmc6ICAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcblxuICBAaWYgKCR1bml0LWxvbmcgPT0gXCJncmFkXCIpIG9yXG4gICAgICAoJHVuaXQtbG9uZyA9PSBcInR1cm5cIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LWxvbmcgPT0gXCJncmFkXCIsIC0xMDBncmFkICogMywgLTAuNzV0dXJuKTtcbiAgfVxuXG4gIEBlbHNlIGlmICgkdW5pdC1zaG9ydCA9PSBcImRlZ1wiKSBvclxuICAgICAgICAgICAoJHVuaXQtc2hvcnQgPT0gXCJyYWRcIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LXNob3J0ID09IFwiZGVnXCIsIC05MCAqIDMsIDEuNnJhZCk7XG4gIH1cblxuICBAaWYgJG9mZnNldCB7XG4gICAgJG51bTogX3N0ci10by1udW0oJGZpcnN0LXZhbCk7XG5cbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgKCRvZmZzZXQgLSAkbnVtKSArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG59XG4iLCJAZnVuY3Rpb24gX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xuICAkZ3JhZGllbnRzOiAoKTtcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xuXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XG5cbiAgJGhhcy1tdWx0aXBsZS12YWxzOiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCIgXCIpO1xuICAkaGFzLXNpbmdsZS1wb3NpdGlvbjogdW5xdW90ZShfcG9zaXRpb24tZmxpcHBlcigkZmlyc3QtdmFsKSArIFwiXCIpO1xuICAkaGFzLWFuZ2xlOiBpcy1udW1iZXIoc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsIDEpKTtcblxuICBAaWYgJGhhcy1tdWx0aXBsZS12YWxzIHtcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscyk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLXNpbmdsZS1wb3NpdGlvbiAhPSBcIlwiIHtcbiAgICAkcG9zOiB1bnF1b3RlKCRoYXMtc2luZ2xlLXBvc2l0aW9uICsgXCJcIik7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLWFuZ2xlIHtcbiAgICAvLyBSb3RhdGUgZGVncmVlIGZvciB3ZWJraXRcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQHJldHVybiAkZ3JhZGllbnRzO1xufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKSB7XG4gICR0eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRzcGVjOiBudWxsO1xuICAkZGVncmVlOiBudWxsO1xuICAkc2lkZTogbnVsbDtcbiAgJGNvcm5lcjogbnVsbDtcbiAgJGxlbmd0aDogbGVuZ3RoKCRwb3MpO1xuICAvLyBQYXJzZSBTaWRlIGFuZCBjb3JuZXIgcG9zaXRpb25zXG4gIEBpZiAoJGxlbmd0aCA+IDEpIHtcbiAgICBAaWYgbnRoKCRwb3MsIDEpID09IFwidG9cIiB7IC8vIE5ld2VyIHN5bnRheFxuICAgICAgJHNpZGU6IG50aCgkcG9zLCAyKTtcblxuICAgICAgQGlmICRsZW5ndGggPT0gMiB7IC8vIGVnLiB0byB0b3BcbiAgICAgICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMyB7IC8vIGVnLiB0byB0b3AgbGVmdFxuICAgICAgICAkY29ybmVyOiBudGgoJHBvcywgMyk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMiB7IC8vIE9sZGVyIHN5bnRheCAoXCJ0b3AgbGVmdFwiKVxuICAgICAgJHNpZGU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAxKSk7XG4gICAgICAkY29ybmVyOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xuICAgIH1cblxuICAgIEBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgbGVmdFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgcmlnaHRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICAkc3BlYzogdG8gJHNpZGUgJGNvcm5lcjtcbiAgfVxuICBAZWxzZSBpZiAkbGVuZ3RoID09IDEge1xuICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgQGlmICR0eXBlID09IHN0cmluZyB7XG4gICAgICAkZGVncmVlOiAkcG9zO1xuICAgICAgJHNwZWM6IHRvIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkZGVncmVlOiAtMjcwIC0gJHBvczsgLy9yb3RhdGUgdGhlIGdyYWRpZW50IG9wcG9zaXRlIGZyb20gc3BlY1xuICAgICAgJHNwZWM6ICRwb3M7XG4gICAgfVxuICB9XG4gICRkZWdyZWU6IHVucXVvdGUoJGRlZ3JlZSArIFwiLFwiKTtcbiAgJHNwZWM6ICAgdW5xdW90ZSgkc3BlYyArIFwiLFwiKTtcbiAgQHJldHVybiAkZGVncmVlICRzcGVjO1xufVxuXG5AZnVuY3Rpb24gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcykge1xuICBAcmV0dXJuIGlmKCRwb3MgPT0gbGVmdCwgcmlnaHQsIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IHJpZ2h0LCBsZWZ0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSB0b3AsIGJvdHRvbSwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gYm90dG9tLCB0b3AsIG51bGwpO1xufVxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKSB7XG4gICR2YWwtMTogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRoYXMtbXVsdGlwbGUtdmFscyAtIDEpO1xuICAkdmFsLTI6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaGFzLW11bHRpcGxlLXZhbHMgKyAxLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgJHZhbC0zOiBudWxsO1xuICAkaGFzLXZhbC0zOiBzdHItaW5kZXgoJHZhbC0yLCBcIiBcIik7XG5cbiAgQGlmICRoYXMtdmFsLTMge1xuICAgICR2YWwtMzogc3RyLXNsaWNlKCR2YWwtMiwgJGhhcy12YWwtMyArIDEsIHN0ci1sZW5ndGgoJHZhbC0yKSk7XG4gICAgJHZhbC0yOiBzdHItc2xpY2UoJHZhbC0yLCAxLCAkaGFzLXZhbC0zIC0gMSk7XG4gIH1cblxuICAkcG9zOiBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTEpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMikgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0zKTtcbiAgJHBvczogdW5xdW90ZSgkcG9zICsgXCJcIik7XG5cbiAgLy8gVXNlIG9sZCBzcGVjIGZvciB3ZWJraXRcbiAgQGlmICR2YWwtMSA9PSBcInRvXCIge1xuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICAvLyBCcmluZyB0aGUgY29kZSB1cCB0byBzcGVjXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpIHtcbiAgQGVhY2ggJHZhbHVlIGluICRnMSwgJGcyIHtcbiAgICAkZmlyc3QtdmFsOiBudGgoJHZhbHVlLCAxKTtcbiAgICAkcG9zLXR5cGU6ICB0eXBlLW9mKCRmaXJzdC12YWwpO1xuICAgICRzcGVjLWF0LWluZGV4OiBudWxsO1xuXG4gICAgLy8gRGV0ZXJtaW5lIGlmIHNwZWMgd2FzIHBhc3NlZCB0byBtaXhpblxuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbGlzdCB7XG4gICAgICAkc3BlYy1hdC1pbmRleDogaWYoaW5kZXgoJHZhbHVlLCBhdCksIGluZGV4KCR2YWx1ZSwgYXQpLCBmYWxzZSk7XG4gICAgfVxuICAgIEBpZiAkc3BlYy1hdC1pbmRleCB7XG4gICAgICBAaWYgJHNwZWMtYXQtaW5kZXggPiAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAoJHNwZWMtYXQtaW5kZXggLSAxKSB7XG4gICAgICAgICAgJHNoYXBlLXNpemU6ICRzaGFwZS1zaXplIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRzcGVjLWF0LWluZGV4ID09IDEge1xuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICRnMTogbnVsbDtcbiAgICB9XG5cbiAgICAvLyBJZiBub3Qgc3BlYyBjYWxjdWxhdGUgY29ycmVjdCB2YWx1ZXNcbiAgICBAZWxzZSB7XG4gICAgICBAaWYgKCRwb3MtdHlwZSAhPSBjb2xvcikgb3IgKCRmaXJzdC12YWwgIT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgICAgIEBpZiAoJHBvcy10eXBlID09IG51bWJlcilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjZW50ZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJ0b3BcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJyaWdodFwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImJvdHRvbVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImxlZnRcIikge1xuXG4gICAgICAgICAgJHBvczogJHZhbHVlO1xuXG4gICAgICAgICAgQGlmICRwb3MgPT0gJGcxIHtcbiAgICAgICAgICAgICRnMTogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZlxuICAgICAgICAgICAoJGZpcnN0LXZhbCA9PSBcImVsbGlwc2VcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjaXJjbGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LWNvcm5lclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb250YWluXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY292ZXJcIikge1xuXG4gICAgICAgICAgJHNoYXBlLXNpemU6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkdmFsdWUgPT0gJGcxIHtcbiAgICAgICAgICAgICRnMTogbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWxzZSBpZiAkdmFsdWUgPT0gJGcyIHtcbiAgICAgICAgICAgICRnMjogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQHJldHVybiAkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemU7XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3MpIHtcbiAgJHNoYXBlLXNpemU6IG50aCgkZ3JhZGllbnQtcG9zLCAxKTtcbiAgJHBvczogICAgICAgIG50aCgkZ3JhZGllbnQtcG9zLCAyKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gICRwcmUtc3BlYzogdW5xdW90ZShpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKSlcbiAgICAgICAgICAgICB1bnF1b3RlKGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LFwiLCBudWxsKSk7XG4gICRwb3Mtc3BlYzogaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuXG4gICRzcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skcG9zLXNwZWN9XCI7XG5cbiAgLy8gQWRkIGNvbW1hXG4gIEBpZiAoJHNwZWMgIT0gXCIgIFwiKSB7XG4gICAgJHNwZWM6IFwiI3skc3BlY30sXCI7XG4gIH1cblxuICBAcmV0dXJuICRwcmUtc3BlYyAkc3BlYztcbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XG4gICRncmFkaWVudHM6ICgpO1xuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XG5cbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMSwgJHN0YXJ0KTtcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcblxuICAkaXMtc3BlYy1zeW50YXg6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcImF0XCIpO1xuXG4gIEBpZiAkaXMtc3BlYy1zeW50YXggYW5kICRpcy1zcGVjLXN5bnRheCA+IDEge1xuICAgICRrZXl3b3JkOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGlzLXNwZWMtc3ludGF4IC0gMik7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAgICRwb3M6IGFwcGVuZCgkcG9zLCAka2V5d29yZCwgY29tbWEpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaXMtc3BlYy1zeW50YXggPT0gMSB7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiBzdHItaW5kZXgoJGltYWdlLCBcImNvdmVyXCIpIG9yIHN0ci1pbmRleCgkaW1hZ2UsIFwiY29udGFpblwiKSB7XG4gICAgQHdhcm4gXCJSYWRpYWwtZ3JhZGllbnQgbmVlZHMgdG8gYmUgdXBkYXRlZCB0byBjb25mb3JtIHRvIGxhdGVzdCBzcGVjLlwiO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiBudWxsLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIi8vIFVzZXIgZm9yIGxpbmVhciBhbmQgcmFkaWFsIGdyYWRpZW50cyB3aXRoaW4gYmFja2dyb3VuZC1pbWFnZSBvciBib3JkZXItaW1hZ2UgcHJvcGVydGllc1xuXG5AZnVuY3Rpb24gX3JlbmRlci1ncmFkaWVudHMoJGdyYWRpZW50LXBvc2l0aW9ucywgJGdyYWRpZW50cywgJGdyYWRpZW50LXR5cGUsICR2ZW5kb3I6IGZhbHNlKSB7XG4gICRwcmUtc3BlYzogbnVsbDtcbiAgJHNwZWM6IG51bGw7XG4gICR2ZW5kb3ItZ3JhZGllbnRzOiBudWxsO1xuICBAaWYgJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyIHtcbiAgICBAaWYgJGdyYWRpZW50LXBvc2l0aW9ucyB7XG4gICAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwge1xuICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgQGlmICR2ZW5kb3Ige1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiAtI3skdmVuZG9yfS0jeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRwcmUtc3BlY30gJGdyYWRpZW50cyk7XG4gIH1cbiAgQGVsc2UgaWYgJHZlbmRvciA9PSBmYWxzZSB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IFwiI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skc3BlY30gI3skZ3JhZGllbnRzfSlcIjtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogdW5xdW90ZSgkdmVuZG9yLWdyYWRpZW50cyk7XG4gIH1cbiAgQHJldHVybiAkdmVuZG9yLWdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSkge1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBudWxsO1xuICBAZWFjaCAkdmFsdWUgaW4gJHNoYXBlLXNpemUge1xuICAgIEBpZiAoJHZhbHVlID09IFwiY292ZXJcIikgb3IgKCR2YWx1ZSA9PSBcImNvbnRhaW5cIikge1xuICAgICAgJHZhbHVlOiBudWxsO1xuICAgIH1cbiAgICAkc2hhcGUtc2l6ZS1zcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skdmFsdWV9XCI7XG4gIH1cbiAgQHJldHVybiAkc2hhcGUtc2l6ZS1zcGVjO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBsaW5lYXIvcmFkaWFsLWdyYWRpZW50LXBhcnNlcnMuXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX3N0ci10by1udW0oJHN0cmluZykge1xuICAvLyBNYXRyaWNlc1xuICAkc3RyaW5nczogXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCI7XG4gICRudW1iZXJzOiAgMCAgIDEgICAyICAgMyAgIDQgICA1ICAgNiAgIDcgICA4ICAgOTtcblxuICAvLyBSZXN1bHRcbiAgJHJlc3VsdDogMDtcbiAgJGRpdmlkZXI6IDA7XG4gICRtaW51czogZmFsc2U7XG5cbiAgLy8gTG9vcGluZyB0aHJvdWdoIGFsbCBjaGFyYWN0ZXJzXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkc3RyaW5nKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCRzdHJpbmcsICRpLCAkaSk7XG4gICAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJGNoYXJhY3Rlcik7XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSBcIi1cIiB7XG4gICAgICAkbWludXM6IHRydWU7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJGNoYXJhY3RlciA9PSBcIi5cIiB7XG4gICAgICAkZGl2aWRlcjogMTtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgbm90ICRpbmRleCB7XG4gICAgICAgICRyZXN1bHQ6IGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbiAgICAgICAgQHJldHVybiBfY29udmVydC11bml0cygkcmVzdWx0LCBzdHItc2xpY2UoJHN0cmluZywgJGkpKTtcbiAgICAgIH1cblxuICAgICAgJG51bWJlcjogbnRoKCRudW1iZXJzLCAkaW5kZXgpO1xuXG4gICAgICBAaWYgJGRpdmlkZXIgPT0gMCB7XG4gICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMDtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAvLyBNb3ZlIHRoZSBkZWNpbWFsIGRvdCB0byB0aGUgbGVmdFxuICAgICAgICAkZGl2aWRlcjogJGRpdmlkZXIgKiAxMDtcbiAgICAgICAgJG51bWJlcjogJG51bWJlciAvICRkaXZpZGVyO1xuICAgICAgfVxuXG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgJG51bWJlcjtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG59XG4iLCIvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWFuaW1hdGlvbnMvI3RoZS1hbmltYXRpb24tbmFtZS1wcm9wZXJ0eS1cbi8vIEVhY2ggb2YgdGhlc2UgbWl4aW5zIHN1cHBvcnQgY29tbWEgc2VwYXJhdGVkIGxpc3RzIG9mIHZhbHVlcywgd2hpY2ggYWxsb3dzIGRpZmZlcmVudCB0cmFuc2l0aW9ucyBmb3IgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIHRvIGJlIGRlc2NyaWJlZCBpbiBhIHNpbmdsZSBzdHlsZSBydWxlLiBFYWNoIHZhbHVlIGluIHRoZSBsaXN0IGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBhdCB0aGF0IHNhbWUgcG9zaXRpb24gaW4gdGhlIG90aGVyIHByb3BlcnRpZXMuXG5cbkBtaXhpbiBhbmltYXRpb24oJGFuaW1hdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLCAkYW5pbWF0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1uYW1lKCRuYW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tbmFtZSwgJG5hbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCgkdmFsdWVzLi4uKSB7XG4gIC8vIGluZmluaXRlIHwgPG51bWJlcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgJHZhbHVlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kaXJlY3Rpb24oJGRpcmVjdGlvbnMuLi4pIHtcbiAgLy8gbm9ybWFsIHwgYWx0ZXJuYXRlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kaXJlY3Rpb24sICRkaXJlY3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLXBsYXktc3RhdGUoJHN0YXRlcy4uLikge1xuICAvLyBydW5uaW5nIHwgcGF1c2VkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1wbGF5LXN0YXRlLCAkc3RhdGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1maWxsLW1vZGUoJG1vZGVzLi4uKSB7XG4gIC8vIG5vbmUgfCBmb3J3YXJkcyB8IGJhY2t3YXJkcyB8IGJvdGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWZpbGwtbW9kZSwgJG1vZGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIGFwcGVhcmFuY2UoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFwcGVhcmFuY2UsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwiQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZpc2liaWxpdHkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYmFja2ZhY2UtdmlzaWJpbGl0eSwgJHZpc2liaWxpdHksIHdlYmtpdCBzcGVjKTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kcyB1c2luZyBzaG9ydGhhbmRcbi8vIG5vdGF0aW9uLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZCgkYmFja2dyb3VuZHMuLi4pIHtcbiAgJHdlYmtpdC1iYWNrZ3JvdW5kczogKCk7XG4gICRzcGVjLWJhY2tncm91bmRzOiAoKTtcblxuICBAZWFjaCAkYmFja2dyb3VuZCBpbiAkYmFja2dyb3VuZHMge1xuICAgICR3ZWJraXQtYmFja2dyb3VuZDogKCk7XG4gICAgJHNwZWMtYmFja2dyb3VuZDogKCk7XG4gICAgJGJhY2tncm91bmQtdHlwZTogdHlwZS1vZigkYmFja2dyb3VuZCk7XG5cbiAgICBAaWYgJGJhY2tncm91bmQtdHlwZSA9PSBzdHJpbmcgb3IgJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0IHtcbiAgICAgICRiYWNrZ3JvdW5kLXN0cjogaWYoJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0LCBudGgoJGJhY2tncm91bmQsIDEpLCAkYmFja2dyb3VuZCk7XG5cbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAkd2Via2l0LWJhY2tncm91bmRzOiBhcHBlbmQoJHdlYmtpdC1iYWNrZ3JvdW5kcywgJHdlYmtpdC1iYWNrZ3JvdW5kLCBjb21tYSk7XG4gICAgJHNwZWMtYmFja2dyb3VuZHM6ICAgYXBwZW5kKCRzcGVjLWJhY2tncm91bmRzLCAgICRzcGVjLWJhY2tncm91bmQsICAgY29tbWEpO1xuICB9XG5cbiAgYmFja2dyb3VuZDogJHdlYmtpdC1iYWNrZ3JvdW5kcztcbiAgYmFja2dyb3VuZDogJHNwZWMtYmFja2dyb3VuZHM7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kLWltYWdlIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZCBpbWFnZXMgd2l0aFxuLy8gZ3JhZGllbnRzLCBvciBmb3Igc3RyaW5naW5nIG11bHRpcGxlIGdyYWRpZW50cyB0b2dldGhlci5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQtaW1hZ2UoJGltYWdlcy4uLikge1xuICAkd2Via2l0LWltYWdlczogKCk7XG4gICRzcGVjLWltYWdlczogKCk7XG5cbiAgQGVhY2ggJGltYWdlIGluICRpbWFnZXMge1xuICAgICR3ZWJraXQtaW1hZ2U6ICgpO1xuICAgICRzcGVjLWltYWdlOiAoKTtcblxuICAgIEBpZiAodHlwZS1vZigkaW1hZ2UpID09IHN0cmluZykge1xuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkaW1hZ2UsIDEsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkaW1hZ2UsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICRpbWFnZTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgJGltYWdlO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogIG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJHdlYmtpdC1pbWFnZXM6IGFwcGVuZCgkd2Via2l0LWltYWdlcywgJHdlYmtpdC1pbWFnZSwgY29tbWEpO1xuICAgICRzcGVjLWltYWdlczogICBhcHBlbmQoJHNwZWMtaW1hZ2VzLCAgICRzcGVjLWltYWdlLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtaW1hZ2U6ICR3ZWJraXQtaW1hZ2VzO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAkc3BlYy1pbWFnZXM7XG59XG4iLCJAbWl4aW4gYm9yZGVyLWltYWdlKCRib3JkZXJzLi4uKSB7XG4gICR3ZWJraXQtYm9yZGVyczogKCk7XG4gICRzcGVjLWJvcmRlcnM6ICgpO1xuXG4gIEBlYWNoICRib3JkZXIgaW4gJGJvcmRlcnMge1xuICAgICR3ZWJraXQtYm9yZGVyOiAoKTtcbiAgICAkc3BlYy1ib3JkZXI6ICgpO1xuICAgICRib3JkZXItdHlwZTogdHlwZS1vZigkYm9yZGVyKTtcblxuICAgIEBpZiAkYm9yZGVyLXR5cGUgPT0gc3RyaW5nIG9yIGxpc3Qge1xuICAgICAgJGJvcmRlci1zdHI6IGlmKCRib3JkZXItdHlwZSA9PSBsaXN0LCBudGgoJGJvcmRlciwgMSksICRib3JkZXIpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgIH1cblxuICAgICR3ZWJraXQtYm9yZGVyczogYXBwZW5kKCR3ZWJraXQtYm9yZGVycywgJHdlYmtpdC1ib3JkZXIsIGNvbW1hKTtcbiAgICAkc3BlYy1ib3JkZXJzOiAgIGFwcGVuZCgkc3BlYy1ib3JkZXJzLCAgICRzcGVjLWJvcmRlciwgICBjb21tYSk7XG4gIH1cblxuICAtd2Via2l0LWJvcmRlci1pbWFnZTogJHdlYmtpdC1ib3JkZXJzO1xuICAgICAgICAgIGJvcmRlci1pbWFnZTogJHNwZWMtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG4vL0V4YW1wbGVzOlxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpIDIwIHN0cmV0Y2gpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSAyMCAzMCA0MCA1MCBzdHJldGNoIHJvdW5kKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShyYWRpYWwtZ3JhZGllbnQodG9wLCBjb3Zlciwgb3JhbmdlLCB5ZWxsb3csIG9yYW5nZSkpO1xuIiwiQG1peGluIGNhbGMoJHByb3BlcnR5LCAkdmFsdWUpIHtcbiAgI3skcHJvcGVydHl9OiAtd2Via2l0LWNhbGMoI3skdmFsdWV9KTtcbiAgI3skcHJvcGVydHl9OiBjYWxjKCN7JHZhbHVlfSk7XG59XG4iLCJAbWl4aW4gY29sdW1ucygkYXJnOiBhdXRvKSB7XG4gIC8vIDxjb2x1bW4tY291bnQ+IHx8IDxjb2x1bW4td2lkdGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbnMsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJGludDogYXV0bykge1xuICAvLyBhdXRvIHx8IGludGVnZXJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWNvdW50LCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkbGVuZ3RoOiBub3JtYWwpIHtcbiAgLy8gbm9ybWFsIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZ2FwLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWZpbGwoJGFyZzogYXV0bykge1xuICAvLyBhdXRvIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZmlsbCwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlKCRhcmcpIHtcbiAgLy8gPGJvcmRlci13aWR0aD4gfHwgPGJvcmRlci1zdHlsZT4gfHwgPGNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZSwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLWNvbG9yKCRjb2xvcikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1jb2xvciwgJGNvbG9yLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtc3R5bGUoJHN0eWxlOiBub25lKSB7XG4gIC8vIG5vbmUgfCBoaWRkZW4gfCBkYXNoZWQgfCBkb3R0ZWQgfCBkb3VibGUgfCBncm9vdmUgfCBpbnNldCB8IGluc2V0IHwgb3V0c2V0IHwgcmlkZ2UgfCBzb2xpZFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtd2lkdGggKCR3aWR0aDogbm9uZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS13aWR0aCwgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXNwYW4oJGFyZzogbm9uZSkge1xuICAvLyBub25lIHx8IGFsbFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tc3BhbiwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi13aWR0aCgkbGVuZ3RoOiBhdXRvKSB7XG4gIC8vIGF1dG8gfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi13aWR0aCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBmaWx0ZXIoJGZ1bmN0aW9uOiBub25lKSB7XG4gIC8vIDxmaWx0ZXItZnVuY3Rpb24+IFs8ZmlsdGVyLWZ1bmN0aW9uXSogfCBub25lXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZpbHRlciwgJGZ1bmN0aW9uLCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcblxuLy8gQ3VzdG9tIHNob3J0aGFuZCBub3RhdGlvbiBmb3IgZmxleGJveFxuQG1peGluIGJveCgkb3JpZW50OiBpbmxpbmUtYXhpcywgJHBhY2s6IHN0YXJ0LCAkYWxpZ246IHN0cmV0Y2gpIHtcbiAgQGluY2x1ZGUgZGlzcGxheS1ib3g7XG4gIEBpbmNsdWRlIGJveC1vcmllbnQoJG9yaWVudCk7XG4gIEBpbmNsdWRlIGJveC1wYWNrKCRwYWNrKTtcbiAgQGluY2x1ZGUgYm94LWFsaWduKCRhbGlnbik7XG59XG5cbkBtaXhpbiBkaXNwbGF5LWJveCB7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtbW96LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIElFIDEwXG4gIGRpc3BsYXk6IGJveDtcbn1cblxuQG1peGluIGJveC1vcmllbnQoJG9yaWVudDogaW5saW5lLWF4aXMpIHtcbi8vIGhvcml6b250YWx8dmVydGljYWx8aW5saW5lLWF4aXN8YmxvY2stYXhpc3xpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICRvcmllbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtcGFjaygkcGFjazogc3RhcnQpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8anVzdGlmeVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJHBhY2ssIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBhY2s6ICRwYWNrOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWFsaWduKCRhbGlnbjogc3RyZXRjaCkge1xuLy8gc3RhcnR8ZW5kfGNlbnRlcnxiYXNlbGluZXxzdHJldGNoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsaWduLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1hbGlnbjogJGFsaWduOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWRpcmVjdGlvbigkZGlyZWN0aW9uOiBub3JtYWwpIHtcbi8vIG5vcm1hbHxyZXZlcnNlfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWxpbmVzKCRsaW5lczogc2luZ2xlKSB7XG4vLyBzaW5nbGV8bXVsdGlwbGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkbGluZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtb3JkaW5hbC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1vcmRlcjogJGludDsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4KCR2YWx1ZTogMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG4vLyBVbmlmaWVkIGF0dHJpYnV0ZXMgZm9yIDIwMDksIDIwMTEsIGFuZCAyMDEyIGZsYXZvdXJzLlxuXG4vLyAyMDA5IC0gZGlzcGxheSAoYm94IHwgaW5saW5lLWJveClcbi8vIDIwMTEgLSBkaXNwbGF5IChmbGV4Ym94IHwgaW5saW5lLWZsZXhib3gpXG4vLyAyMDEyIC0gZGlzcGxheSAoZmxleCB8IGlubGluZS1mbGV4KVxuQG1peGluIGRpc3BsYXkoJHZhbHVlKSB7XG4vLyBmbGV4IHwgaW5saW5lLWZsZXhcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XG4gICAgLy8gMjAwOVxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otYm94O1xuICAgIGRpc3BsYXk6IGJveDtcblxuICAgIC8vIDIwMTJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyAyMDExIChJRSAxMClcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImlubGluZS1mbGV4XCIge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWJveDtcblxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIH0gQGVsc2Uge1xuICAgIGRpc3BsYXk6ICR2YWx1ZTtcbiAgfVxufVxuXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXG4vLyAyMDExIC0gZmxleCAoZGVjaW1hbCB8IHdpZHRoIGRlY2ltYWwpXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxuQG1peGluIGZsZXgoJHZhbHVlKSB7XG5cbiAgLy8gR3JhYiBmbGV4LWdyb3cgZm9yIG9sZGVyIGJyb3dzZXJzLlxuICAkZmxleC1ncm93OiBudGgoJHZhbHVlLCAxKTtcblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkZmxleC1ncm93LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKSwgMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JpZW50ICggaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzKVxuLy8gICAgICAtIGJveC1kaXJlY3Rpb24gKG5vcm1hbCB8IHJldmVyc2UpXG4vLyAyMDExIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlOiByb3cpIHtcblxuICAvLyBBbHQgdmFsdWVzLlxuICAkdmFsdWUtMjAwOTogJHZhbHVlO1xuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAkZGlyZWN0aW9uOiBub3JtYWw7XG5cbiAgQGlmICR2YWx1ZSA9PSByb3cge1xuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInJvdy1yZXZlcnNlXCIge1xuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IGNvbHVtbiB7XG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImNvbHVtbi1yZXZlcnNlXCIge1xuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkdmFsdWUtMjAwOSwgd2Via2l0IG1veiBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZGlyZWN0aW9uLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWxpbmVzIChzaW5nbGUgfCBtdWx0aXBsZSlcbi8vIDIwMTEgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWU6IG5vd3JhcCkge1xuICAvLyBBbHQgdmFsdWVzXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBub3dyYXAge1xuICAgICRhbHQtdmFsdWU6IHNpbmdsZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gd3JhcCB7XG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwid3JhcC1yZXZlcnNlXCIge1xuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICB9XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXdyYXAsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMiAtIGZsZXgtZmxvdyAoZmxleC1kaXJlY3Rpb24gfHwgZmxleC13cmFwKVxuQG1peGluIGZsZXgtZmxvdygkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1mbG93LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JkaW5hbC1ncm91cCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4LW9yZGVyIChpbnRlZ2VyKVxuLy8gMjAxMiAtIG9yZGVyIChpbnRlZ2VyKVxuQG1peGluIG9yZGVyKCRpbnQ6IDApIHtcbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKG9yZGVyLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1vcmRlcjogJGludDtcbn1cblxuLy8gMjAxMiAtIGZsZXgtZ3JvdyAobnVtYmVyKVxuQG1peGluIGZsZXgtZ3JvdygkbnVtYmVyOiAwKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZ3JvdywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcG9zaXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LXNocmluayAobnVtYmVyKVxuQG1peGluIGZsZXgtc2hyaW5rKCRudW1iZXI6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1zaHJpbmssICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW5lZ2F0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1iYXNpcyAobnVtYmVyKVxuQG1peGluIGZsZXgtYmFzaXMoJHdpZHRoOiBhdXRvKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtYmFzaXMsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICR3aWR0aDtcbn1cblxuLy8gMjAwOSAtIGJveC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDExIC0gZmxleC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDEyIC0ganVzdGlmeS1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kKVxuQG1peGluIGp1c3RpZnktY29udGVudCgkdmFsdWU6IGZsZXgtc3RhcnQpIHtcblxuICAvLyBBbHQgdmFsdWVzLlxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICRhbHQtdmFsdWU6IGp1c3RpZnk7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoanVzdGlmeS1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtcGFjazogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDExIC0gZmxleC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24taXRlbXMgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG5cbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZW5kO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1pdGVtcywgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWFsaWduOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDExIC0gZmxleC1pdGVtLWFsaWduIChhdXRvIHwgc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tc2VsZiAoYXV0byB8IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1zZWxmKCR2YWx1ZTogYXV0bykge1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1zZWxmLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246ICR2YWx1ZS0yMDExO1xufVxuXG4vLyAyMDExIC0gZmxleC1saW5lLXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSB8IGRpc3RyaWJ1dGUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWNvbnRlbnQoJHZhbHVlOiBzdHJldGNoKSB7XG5cbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkdmFsdWUtMjAxMToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWUtMjAxMTtcbn1cbiIsIkBtaXhpbiBmb250LWZhY2UoXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJHdlaWdodDogbm9ybWFsLFxuICAkc3R5bGU6IG5vcm1hbCxcbiAgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZiBzdmcpIHtcblxuICAkZm9udC11cmwtcHJlZml4OiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpO1xuXG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgc3JjOiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgICAgICRmb250LWZhbWlseSxcbiAgICAgICRmaWxlLXBhdGgsXG4gICAgICAkYXNzZXQtcGlwZWxpbmUsXG4gICAgICAkZmlsZS1mb3JtYXRzLFxuICAgICAgJGZvbnQtdXJsLXByZWZpeFxuICAgICk7XG4gIH1cbn1cbiIsIkBtaXhpbiBmb250LWZlYXR1cmUtc2V0dGluZ3MoJHNldHRpbmdzLi4uKSB7XG4gIEBpZiBsZW5ndGgoJHNldHRpbmdzKSA9PSAwIHsgJHNldHRpbmdzOiBub25lOyB9XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZvbnQtZmVhdHVyZS1zZXR0aW5ncywgJHNldHRpbmdzLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiLy8gSGlEUEkgbWl4aW4uIERlZmF1bHQgdmFsdWUgc2V0IHRvIDEuMyB0byB0YXJnZXQgR29vZ2xlIE5leHVzIDcgKGh0dHA6Ly9iamFuZ28uY29tL2FydGljbGVzL21pbi1kZXZpY2UtcGl4ZWwtcmF0aW8vKVxuQG1peGluIGhpZHBpKCRyYXRpbzogMS4zKSB7XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogI3skcmF0aW99LzEpLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiByb3VuZCgkcmF0aW8gKiA5NmRwaSkpLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAkcmF0aW8gKiAxZHBweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCJAbWl4aW4gaHlwaGVucygkaHlwaGVuYXRpb246IG5vbmUpIHtcbiAgLy8gbm9uZSB8IG1hbnVhbCB8IGF1dG9cbiAgQGluY2x1ZGUgcHJlZml4ZXIoaHlwaGVucywgJGh5cGhlbmF0aW9uLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiQG1peGluIGltYWdlLXJlbmRlcmluZyAoJG1vZGU6YXV0bykge1xuXG4gIEBpZiAoJG1vZGUgPT0gY3Jpc3AtZWRnZXMpIHtcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBuZWFyZXN0LW5laWdoYm9yOyAvLyBJRTgrXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtbW96LWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLW8tY3Jpc3AtZWRnZXM7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0O1xuICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAkbW9kZTtcbiAgfVxufVxuIiwiLy8gQWRkcyBrZXlmcmFtZXMgYmxvY2tzIGZvciBzdXBwb3J0ZWQgcHJlZml4ZXMsIHJlbW92aW5nIHJlZHVuZGFudCBwcmVmaXhlcyBpbiB0aGUgYmxvY2sncyBjb250ZW50XG5AbWl4aW4ga2V5ZnJhbWVzKCRuYW1lKSB7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdDogICAgJHByZWZpeC1mb3Itd2Via2l0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhOiAgICRwcmVmaXgtZm9yLW1vemlsbGE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdDogJHByZWZpeC1mb3ItbWljcm9zb2Z0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYTogICAgICRwcmVmaXgtZm9yLW9wZXJhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjOiAgICAgICRwcmVmaXgtZm9yLXNwZWM7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLXdlYmtpdDogdHJ1ZSAhZ2xvYmFsO1xuICAgIEAtd2Via2l0LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLW1vemlsbGE6IHRydWUgIWdsb2JhbDtcbiAgICBALW1vei1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYSAgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjICAgICAgIWdsb2JhbDtcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyB7XG4gICAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJHBvcywgJGcxLCAkZzI6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG4gIC8vIERldGVjdCB3aGF0IHR5cGUgb2YgdmFsdWUgZXhpc3RzIGluICRwb3NcbiAgJHBvcy10eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRwb3Mtc3BlYzogbnVsbDtcbiAgJHBvcy1kZWdyZWU6IG51bGw7XG5cbiAgLy8gSWYgJHBvcyBpcyBtaXNzaW5nIGZyb20gbWl4aW4sIHJlYXNzaWduIHZhcnMgYW5kIGFkZCBkZWZhdWx0IHBvc2l0aW9uXG4gIEBpZiAoJHBvcy10eXBlID09IGNvbG9yKSBvciAobnRoKCRwb3MsIDEpID09IFwidHJhbnNwYXJlbnRcIikgIHtcbiAgICAkZzEwOiAkZzk7ICRnOTogJGc4OyAkZzg6ICRnNzsgJGc3OiAkZzY7ICRnNjogJGc1O1xuICAgICRnNTogJGc0OyAkZzQ6ICRnMzsgJGczOiAkZzI7ICRnMjogJGcxOyAkZzE6ICRwb3M7XG4gICAgJHBvczogbnVsbDtcbiAgfVxuXG4gIEBpZiAkcG9zIHtcbiAgICAkcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcyk7XG4gICAgJHBvcy1kZWdyZWU6IG50aCgkcG9zaXRpb25zLCAxKTtcbiAgICAkcG9zLXNwZWM6ICAgbnRoKCRwb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XG5cbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZzEsIDEpO1xuXG4gIC8vIElmICRmYWxsYmFjayBpcyBhIGNvbG9yIHVzZSB0aGF0IGNvbG9yIGFzIHRoZSBmYWxsYmFjayBjb2xvclxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJHBvcy1kZWdyZWUgJGZ1bGwpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQoI3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xufVxuIiwiQG1peGluIHBlcnNwZWN0aXZlKCRkZXB0aDogbm9uZSkge1xuICAvLyBub25lIHwgPGxlbmd0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUsICRkZXB0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHBlcnNwZWN0aXZlLW9yaWdpbigkdmFsdWU6IDUwJSA1MCUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUtb3JpZ2luLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gcGxhY2Vob2xkZXIge1xuICAkcGxhY2Vob2xkZXJzOiBcIjotd2Via2l0LWlucHV0XCIgXCI6LW1velwiIFwiLW1velwiIFwiLW1zLWlucHV0XCI7XG4gIEBlYWNoICRwbGFjZWhvbGRlciBpbiAkcGxhY2Vob2xkZXJzIHtcbiAgICAmOiN7JHBsYWNlaG9sZGVyfS1wbGFjZWhvbGRlciB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFJlcXVpcmVzIFNhc3MgMy4xK1xuQG1peGluIHJhZGlhbC1ncmFkaWVudCgkZzEsICRnMixcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkcG9zOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkc2hhcGUtc2l6ZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG5cbiAgJGRhdGE6IF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpO1xuICAkZzE6ICBudGgoJGRhdGEsIDEpO1xuICAkZzI6ICBudGgoJGRhdGEsIDIpO1xuICAkcG9zOiBudGgoJGRhdGEsIDMpO1xuICAkc2hhcGUtc2l6ZTogbnRoKCRkYXRhLCA0KTtcblxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcblxuICAvLyBTdHJpcCBkZXByZWNhdGVkIGNvdmVyL2NvbnRhaW4gZm9yIHNwZWNcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZpcnN0LWNvbG9yOiBudGgoJGZ1bGwsIDEpO1xuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZmlyc3QtY29sb3IsIDEpO1xuXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgLy8gQWRkIENvbW1hcyBhbmQgc3BhY2VzXG4gICRzaGFwZS1zaXplOiBpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSwgXCIsIG51bGwpO1xuICAkcG9zOiAgICAgICAgaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCk7XG4gICRwb3Mtc3BlYzogICBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XG4gICRzaGFwZS1zaXplLXNwZWM6IGlmKCgkc2hhcGUtc2l6ZS1zcGVjICE9IFwiIFwiKSBhbmQgKCRwb3MgPT0gbnVsbCksIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSwgXCIsIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSBcIik7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoI3skcG9zfSN7JHNoYXBlLXNpemV9I3skZnVsbH0pO1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoI3skc2hhcGUtc2l6ZS1zcGVjfSN7JHBvcy1zcGVjfSN7JGZ1bGx9KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBPdXRwdXRzIHRoZSBzcGVjIGFuZCBwcmVmaXhlZCB2ZXJzaW9ucyBvZiB0aGUgYDo6c2VsZWN0aW9uYCBwc2V1ZG8tZWxlbWVudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0Jvb2x9ICRjdXJyZW50LXNlbGVjdG9yIFtmYWxzZV1cclxuLy8vICAgSWYgc2V0IHRvIGB0cnVlYCwgaXQgdGFrZXMgdGhlIGN1cnJlbnQgZWxlbWVudCBpbnRvIGNvbnNpZGVyYXRpb24uXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBzZWxlY3Rpb24odHJ1ZSkge1xyXG4vLy8gICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgICB9XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50OjotbW96LXNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQ6OnNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIHNlbGVjdGlvbigkY3VycmVudC1zZWxlY3RvcjogZmFsc2UpIHtcclxuICBAaWYgJGN1cnJlbnQtc2VsZWN0b3Ige1xyXG4gICAgJjo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAmOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIDo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICA6OnNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gdGV4dC1kZWNvcmF0aW9uKCR2YWx1ZSkge1xuLy8gPHRleHQtZGVjb3JhdGlvbi1saW5lPiB8fCA8dGV4dC1kZWNvcmF0aW9uLXN0eWxlPiB8fCA8dGV4dC1kZWNvcmF0aW9uLWNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24sICR2YWx1ZSwgbW96KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1saW5lKCRsaW5lOiBub25lKSB7XG4vLyBub25lIHx8IHVuZGVybGluZSB8fCBvdmVybGluZSB8fCBsaW5lLXRocm91Z2hcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWxpbmUsICRsaW5lLCBtb3opO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLXN0eWxlKCRzdHlsZTogc29saWQpIHtcbi8vIHNvbGlkIHx8IGRvdWJsZSB8fCBkb3R0ZWQgfHwgZGFzaGVkIHx8IHdhdnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLXN0eWxlLCAkc3R5bGUsIG1veiB3ZWJraXQpO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWNvbG9yKCRjb2xvcjogY3VycmVudENvbG9yKSB7XG4vLyBjdXJyZW50Q29sb3IgfHwgPGNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tY29sb3IsICRjb2xvciwgbW96KTtcbn1cbiIsIkBtaXhpbiB0cmFuc2Zvcm0oJHByb3BlcnR5OiBub25lKSB7XG4gIC8vIG5vbmUgfCA8dHJhbnNmb3JtLWZ1bmN0aW9uPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sICRwcm9wZXJ0eSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkYXhlczogNTAlKSB7XG4gIC8vIHgtYXhpcyAtIGxlZnQgfCBjZW50ZXIgfCByaWdodCAgfCBsZW5ndGggfCAlXG4gIC8vIHktYXhpcyAtIHRvcCAgfCBjZW50ZXIgfCBib3R0b20gfCBsZW5ndGggfCAlXG4gIC8vIHotYXhpcyAtICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLW9yaWdpbiwgJGF4ZXMsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1zdHlsZSgkc3R5bGU6IGZsYXQpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIi8vIFNob3J0aGFuZCBtaXhpbi4gU3VwcG9ydHMgbXVsdGlwbGUgcGFyZW50aGVzZXMtZGVsaW1pbmF0ZWQgdmFsdWVzIGZvciBlYWNoIHZhcmlhYmxlLlxuLy8gRXhhbXBsZTogQGluY2x1ZGUgdHJhbnNpdGlvbiAoYWxsIDJzIGVhc2UtaW4tb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24gKG9wYWNpdHkgMXMgZWFzZS1pbiAycywgd2lkdGggMnMgZWFzZS1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1wcm9wZXJ0eSAodHJhbnNmb3JtLCBvcGFjaXR5KTtcblxuQG1peGluIHRyYW5zaXRpb24oJHByb3BlcnRpZXMuLi4pIHtcbiAgLy8gRml4IGZvciB2ZW5kb3ItcHJlZml4IHRyYW5zZm9ybSBwcm9wZXJ0eVxuICAkbmVlZHMtcHJlZml4ZXM6IGZhbHNlO1xuICAkd2Via2l0OiAoKTtcbiAgJG1vejogKCk7XG4gICRzcGVjOiAoKTtcblxuICAvLyBDcmVhdGUgbGlzdHMgZm9yIHZlbmRvci1wcmVmaXhlZCB0cmFuc2Zvcm1cbiAgQGVhY2ggJGxpc3QgaW4gJHByb3BlcnRpZXMge1xuICAgIEBpZiBudGgoJGxpc3QsIDEpID09IFwidHJhbnNmb3JtXCIge1xuICAgICAgJG5lZWRzLXByZWZpeGVzOiB0cnVlO1xuICAgICAgJGxpc3QxOiAtd2Via2l0LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MjogLW1vei10cmFuc2Zvcm07XG4gICAgICAkbGlzdDM6ICgpO1xuXG4gICAgICBAZWFjaCAkdmFyIGluICRsaXN0IHtcbiAgICAgICAgJGxpc3QzOiBqb2luKCRsaXN0MywgJHZhcik7XG5cbiAgICAgICAgQGlmICR2YXIgIT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAgICAgJGxpc3QxOiBqb2luKCRsaXN0MSwgJHZhcik7XG4gICAgICAgICAgJGxpc3QyOiBqb2luKCRsaXN0MiwgJHZhcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0MSk7XG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QyKTtcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdDMpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0LCBjb21tYSk7XG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdCwgY29tbWEpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkbmVlZHMtcHJlZml4ZXMge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogJHdlYmtpdDtcbiAgICAgICAtbW96LXRyYW5zaXRpb246ICRtb3o7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkc3BlYztcbiAgfSBAZWxzZSB7XG4gICAgQGlmIGxlbmd0aCgkcHJvcGVydGllcykgPj0gMSB7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRwcm9wZXJ0aWVzOiBhbGwgMC4xNXMgZWFzZS1vdXQgMHM7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHRyYW5zaXRpb24tcHJvcGVydHkoJHByb3BlcnRpZXMuLi4pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIndlYmtpdFwiKTtcbiAgICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIm1velwiKTtcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBmYWxzZSk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXQgfCBjdWJpYy1iZXppZXIoKVxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlOiBub25lKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHVzZXItc2VsZWN0LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItY29sb3JgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1jb2xvcigjYTYwYjU1ICM3NmNkOWMgbnVsbCAjZThhZTFhKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICNlOGFlMWE7XG4vLy8gICAgIGJvcmRlci1yaWdodC1jb2xvcjogIzc2Y2Q5Yztcbi8vLyAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2E2MGI1NTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1jb2xvcmBcblxuQG1peGluIGJvcmRlci1jb2xvcigkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIGNvbG9yLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItcmFkaXVzYCBvbiBib3RoIGNvcm5lcnMgb24gdGhlIHNpZGUgb2YgYSBib3guXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHJhZGlpXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudC1vbmUge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cyg1cHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudC10d28ge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoM3B4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50LW9uZSB7XG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDVweDtcbi8vLyAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQtdHdvIHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItcmFkaXVzYFxuXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpaTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1zdHlsZWAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRhc2hlZCBudWxsIHNvbGlkKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4vLy8gICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1zdHlsZWBcblxuQG1peGluIGJvcmRlci1zdHlsZSgkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHN0eWxlLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItd2lkdGhgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci13aWR0aCgxZW0gbnVsbCAyMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMjBweDtcbi8vLyAgICAgYm9yZGVyLXRvcC13aWR0aDogMWVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXdpZHRoYFxuXG5AbWl4aW4gYm9yZGVyLXdpZHRoKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgd2lkdGgsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCBidXR0b25zLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC1idXR0b25zfWAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICN7JGFsbC1idXR0b25zfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC1idXR0b25zLWZvY3VzfSxcbi8vLyAgICN7JGFsbC1idXR0b25zLWhvdmVyfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC1idXR0b25zLWFjdGl2ZX0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgYnV0dG9uLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBidXR0b246Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpmb2N1cyxcbi8vLyAgIGJ1dHRvbjpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmhvdmVyIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgYnV0dG9uOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06YWN0aXZlIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcbi8vL1xuLy8vIEB0eXBlIExpc3Rcbi8vL1xuLy8vIEB0b2RvIFJlbW92ZSBkb3VibGUgYXNzaWduZWQgdmFyaWFibGVzIChMaW5lcyA1OeKAkzYyKSBpbiB2NS4wLjBcblxuJGJ1dHRvbnMtbGlzdDogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImJ1dHRvblwiXScsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInJlc2V0XCJdJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic3VibWl0XCJdJztcblxuJGFsbC1idXR0b25zOiAgICAgICAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0KTtcbiRhbGwtYnV0dG9ucy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgYWN0aXZlKTtcbiRhbGwtYnV0dG9ucy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgZm9jdXMpO1xuJGFsbC1idXR0b25zLWhvdmVyOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBob3Zlcik7XG5cbiRhbGwtYnV0dG9uLWlucHV0czogICAgICAgICRhbGwtYnV0dG9ucztcbiRhbGwtYnV0dG9uLWlucHV0cy1hY3RpdmU6ICRhbGwtYnV0dG9ucy1hY3RpdmU7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtZm9jdXM6ICAkYWxsLWJ1dHRvbnMtZm9jdXM7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtaG92ZXI6ICAkYWxsLWJ1dHRvbnMtaG92ZXI7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBpbmNsdWRlIGEgY2xlYXJmaXggZm9yIGNvbnRhaW5pbmcgZmxvYXRzLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL2Nzc21vam8uY29tL2xhdGVzdF9uZXdfY2xlYXJmaXhfc29fZmFyL1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQ6OmFmdGVyIHtcbi8vLyAgICAgY2xlYXI6IGJvdGg7XG4vLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4vLy8gICAgIGRpc3BsYXk6IHRhYmxlO1xuLy8vICAgfVxuXG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gVHJ1bmNhdGVzIHRleHQgYW5kIGFkZHMgYW4gZWxsaXBzaXMgdG8gcmVwcmVzZW50IG92ZXJmbG93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMTAwJV1cbi8vLyAgIE1heC13aWR0aCBmb3IgdGhlIHN0cmluZyB0byByZXNwZWN0IGJlZm9yZSBiZWluZyB0cnVuY2F0ZWRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBlbGxpcHNpcztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuLy8vICAgICBtYXgtd2lkdGg6IDEwMCU7XG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XG4vLy8gICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuLy8vICAgICB3b3JkLXdyYXA6IG5vcm1hbDtcbi8vLyAgIH1cblxuQG1peGluIGVsbGlwc2lzKCR3aWR0aDogMTAwJSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogJHdpZHRoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW9yZ2lhIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRnZW9yZ2lhOiBcIkdlb3JnaWFcIiwgXCJDYW1icmlhXCIsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFwiVGltZXNcIiwgc2VyaWY7XG5cbi8vLyBIZWx2ZXRpY2EgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGhlbHZldGljYTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIlJvYm90b1wiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG5cbi8vLyBMdWNpZGEgR3JhbmRlIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRsdWNpZGEtZ3JhbmRlOiBcIkx1Y2lkYSBHcmFuZGVcIiwgXCJUYWhvbWFcIiwgXCJWZXJkYW5hXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcblxuLy8vIE1vbm9zcGFjZSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kbW9ub3NwYWNlOiBcIkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ub1wiLCBcIkNvbnNvbGFzXCIsIFwiQ291cmllclwiLCBtb25vc3BhY2U7XG5cbi8vLyBWZXJkYW5hIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiR2ZXJkYW5hOiBcIlZlcmRhbmFcIiwgXCJHZW5ldmFcIiwgc2Fucy1zZXJpZjtcbiIsIi8vLyBIaWRlcyB0aGUgdGV4dCBpbiBhbiBlbGVtZW50LCBjb21tb25seSB1c2VkIHRvIHNob3cgYW4gaW1hZ2UuIFNvbWUgZWxlbWVudHMgd2lsbCBuZWVkIGJsb2NrLWxldmVsIHN0eWxlcyBhcHBsaWVkLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL3plbGRtYW4uY29tLzIwMTIvMDMvMDEvcmVwbGFjaW5nLXRoZS05OTk5cHgtaGFjay1uZXctaW1hZ2UtcmVwbGFjZW1lbnRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBoaWRlLXRleHQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XG4vLy8gICAgIHRleHQtaW5kZW50OiAxMDElO1xuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHRvZG8gUmVtb3ZlIGhlaWdodCBhcmd1bWVudCBpbiB2NS4wLjBcblxuQG1peGluIGhpZGUtdGV4dCgkaGVpZ2h0OiBudWxsKSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtaW5kZW50OiAxMDElO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIEBpZiAkaGVpZ2h0IHtcbiAgICBAd2FybiBcIlRoZSBgaGlkZS10ZXh0YCBtaXhpbiBoYXMgY2hhbmdlZCBhbmQgbm8gbG9uZ2VyIHJlcXVpcmVzIGEgaGVpZ2h0LiBUaGUgaGVpZ2h0IGFyZ3VtZW50IHdpbGwgbm8gbG9uZ2VyIGJlIGFjY2VwdGVkIGluIHY1LjAuMFwiO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBtYXJnaW5gIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDEwcHggM2VtIDIwdmgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tYm90dG9tOiAzZW07XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAyMHZoO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBtYXJnaW5gXG5cbkBtaXhpbiBtYXJnaW4oJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkobWFyZ2luLCBmYWxzZSwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgcGFkZGluZ2Agb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcGFkZGluZygxMnZoIG51bGwgMTBweCA1JSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuLy8vICAgICBwYWRkaW5nLWxlZnQ6IDUlO1xuLy8vICAgICBwYWRkaW5nLXRvcDogMTJ2aDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYHBhZGRpbmdgXG5cbkBtaXhpbiBwYWRkaW5nKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KHBhZGRpbmcsIGZhbHNlLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3Igc2V0dGluZyBhbiBlbGVtZW504oCZcyBwb3NpdGlvbi4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtQb3NpdGlvbn0gJHBvc2l0aW9uIFtyZWxhdGl2ZV1cbi8vLyAgIEEgQ1NTIHBvc2l0aW9uIHZhbHVlXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICRjb29yZGluYXRlcyBbbnVsbCBudWxsIG51bGwgbnVsbF1cbi8vLyAgIExpc3Qgb2YgdmFsdWVzIHRoYXQgY29ycmVzcG9uZCB0byB0aGUgNC12YWx1ZSBzeW50YXggZm9yIHRoZSBlZGdlcyBvZiBhIGJveFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCAxMGVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbGVmdDogMTBlbTtcbi8vLyAgICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8vICAgICB0b3A6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gdW5wYWNrXG5cbkBtaXhpbiBwb3NpdGlvbigkcG9zaXRpb246IHJlbGF0aXZlLCAkY29vcmRpbmF0ZXM6IG51bGwgbnVsbCBudWxsIG51bGwpIHtcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSBsaXN0IHtcbiAgICAkY29vcmRpbmF0ZXM6ICRwb3NpdGlvbjtcbiAgICAkcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgJGNvb3JkaW5hdGVzOiB1bnBhY2soJGNvb3JkaW5hdGVzKTtcblxuICAkb2Zmc2V0czogKFxuICAgIHRvcDogICAgbnRoKCRjb29yZGluYXRlcywgMSksXG4gICAgcmlnaHQ6ICBudGgoJGNvb3JkaW5hdGVzLCAyKSxcbiAgICBib3R0b206IG50aCgkY29vcmRpbmF0ZXMsIDMpLFxuICAgIGxlZnQ6ICAgbnRoKCRjb29yZGluYXRlcywgNClcbiAgKTtcblxuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xuXG4gIEBlYWNoICRvZmZzZXQsICR2YWx1ZSBpbiAkb2Zmc2V0cyB7XG4gICAgQGlmIGlzLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICN7JG9mZnNldH06ICR2YWx1ZTtcbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEEgbWl4aW4gZm9yIGdlbmVyYXRpbmcgdmVuZG9yIHByZWZpeGVzIG9uIG5vbi1zdGFuZGFyZGl6ZWQgcHJvcGVydGllcy5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHlcbi8vLyAgIFByb3BlcnR5IHRvIHByZWZpeFxuLy8vXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWVcbi8vLyAgIFZhbHVlIHRvIHVzZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcHJlZml4ZXNcbi8vLyAgIFByZWZpeGVzIHRvIGRlZmluZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsIDEwcHgsIHdlYmtpdCBtcyBzcGVjKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXdlYmtpdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbW96aWxsYVxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbWljcm9zb2Z0XG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1vcGVyYVxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itc3BlY1xuXG5AbWl4aW4gcHJlZml4ZXIoJHByb3BlcnR5LCAkdmFsdWUsICRwcmVmaXhlcykge1xuICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlcyB7XG4gICAgQGlmICRwcmVmaXggPT0gd2Via2l0IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci13ZWJraXQge1xuICAgICAgICAtd2Via2l0LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtb3oge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1vemlsbGEge1xuICAgICAgICAtbW96LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtcyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbWljcm9zb2Z0IHtcbiAgICAgICAgLW1zLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBvIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1vcGVyYSB7XG4gICAgICAgIC1vLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBzcGVjIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1zcGVjIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSAge1xuICAgICAgQHdhcm4gXCJVbnJlY29nbml6ZWQgcHJlZml4OiAjeyRwcmVmaXh9XCI7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCkge1xuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgZmFsc2UgIWdsb2JhbDtcbn1cbiIsIkBtaXhpbiByZXRpbmEtaW1hZ2UoJGZpbGVuYW1lLCAkYmFja2dyb3VuZC1zaXplLCAkZXh0ZW5zaW9uOiBwbmcsICRyZXRpbmEtZmlsZW5hbWU6IG51bGwsICRyZXRpbmEtc3VmZml4OiBfMngsICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lKSB7XG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICB9IEBlbHNlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICB1cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGhpZHBpIHtcbiAgICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGJhY2tncm91bmQtc2l6ZTogJGJhY2tncm91bmQtc2l6ZTtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU2V0cyB0aGUgYHdpZHRoYCBhbmQgYGhlaWdodGAgb2YgdGhlIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaXplXG4vLy8gICBBIGxpc3Qgb2YgYXQgbW9zdCAyIHNpemUgdmFsdWVzLlxuLy8vXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIHZhbHVlIGluIGAkc2l6ZWAgaXQgaXMgdXNlZCBmb3IgYm90aCB3aWR0aCBhbmQgaGVpZ2h0LiBBbGwgdW5pdHMgYXJlIHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaXplKDJlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNpemUoYXV0byAxMGVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IDJlbTtcbi8vLyAgICAgaGVpZ2h0OiAyZW07XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiBhdXRvO1xuLy8vICAgICBoZWlnaHQ6IDEwZW07XG4vLy8gICB9XG4vLy9cbi8vLyBAdG9kbyBSZWZhY3RvciBpbiA1LjAuMCB0byB1c2UgYSBjb21tYS1zZXBhcmF0ZWQgYXJndW1lbnRcblxuQG1peGluIHNpemUoJHZhbHVlKSB7XG4gICR3aWR0aDogbnRoKCR2YWx1ZSwgMSk7XG4gICRoZWlnaHQ6ICR3aWR0aDtcblxuICBAaWYgbGVuZ3RoKCR2YWx1ZSkgPiAxIHtcbiAgICAkaGVpZ2h0OiBudGgoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBpZiBpcy1zaXplKCRoZWlnaHQpIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiYCN7JGhlaWdodH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkaGVpZ2h0YCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxuXG4gIEBpZiBpcy1zaXplKCR3aWR0aCkge1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiYCN7JHdpZHRofWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCR3aWR0aGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCB0ZXh0LWJhc2VkIGlucHV0cy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtdGV4dC1pbnB1dHN9YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1mb2N1c30sXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtaG92ZXJ9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWFjdGl2ZX0ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdLFxuLy8vICAgdGV4dGFyZWEge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06Zm9jdXMsXG4vLy8gICB0ZXh0YXJlYTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpob3Zlcixcbi8vLyAgIHRleHRhcmVhOmhvdmVyIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTphY3RpdmUsXG4vLy8gICB0ZXh0YXJlYTphY3RpdmUge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kdGV4dC1pbnB1dHMtbGlzdDogJ2lucHV0W3R5cGU9XCJjb2xvclwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRlXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImVtYWlsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm1vbnRoXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm51bWJlclwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJwYXNzd29yZFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzZWFyY2hcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGVsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRleHRcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGltZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ1cmxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwid2Vla1wiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0Om5vdChbdHlwZV0pJyxcbiAgICAgICAgICAgICAgICAgICAndGV4dGFyZWEnO1xuXG4kYWxsLXRleHQtaW5wdXRzOiAgICAgICAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCk7XG4kYWxsLXRleHQtaW5wdXRzLWFjdGl2ZTogYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgYWN0aXZlKTtcbiRhbGwtdGV4dC1pbnB1dHMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBmb2N1cyk7XG4kYWxsLXRleHQtaW5wdXRzLWhvdmVyOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgaG92ZXIpO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ1NTIGN1YmljLWJlemllciB0aW1pbmcgZnVuY3Rpb25zLiBUaW1pbmcgZnVuY3Rpb25zIGNvdXJ0ZXN5IG9mIGpxdWVyeS5lYXNpZSAoZ2l0aHViLmNvbS9qYXVraWEvZWFzaWUpXG4vLy9cbi8vLyBUaW1pbmcgZnVuY3Rpb25zIGFyZSB0aGUgc2FtZSBhcyBkZW1vZWQgaGVyZTogaHR0cDovL2pxdWVyeXVpLmNvbS9yZXNvdXJjZXMvZGVtb3MvZWZmZWN0L2Vhc2luZy5odG1sXG4vLy9cbi8vLyBAdHlwZSBjdWJpYy1iZXppZXJcblxuJGVhc2UtaW4tcXVhZDogICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA4NSwgMC42ODAsIDAuNTMwKTtcbiRlYXNlLWluLWN1YmljOiAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4kZWFzZS1pbi1xdWFydDogICAgIGN1YmljLWJlemllcigwLjg5NSwgIDAuMDMwLCAwLjY4NSwgMC4yMjApO1xuJGVhc2UtaW4tcXVpbnQ6ICAgICBjdWJpYy1iZXppZXIoMC43NTUsICAwLjA1MCwgMC44NTUsIDAuMDYwKTtcbiRlYXNlLWluLXNpbmU6ICAgICAgY3ViaWMtYmV6aWVyKDAuNDcwLCAgMC4wMDAsIDAuNzQ1LCAwLjcxNSk7XG4kZWFzZS1pbi1leHBvOiAgICAgIGN1YmljLWJlemllcigwLjk1MCwgIDAuMDUwLCAwLjc5NSwgMC4wMzUpO1xuJGVhc2UtaW4tY2lyYzogICAgICBjdWJpYy1iZXppZXIoMC42MDAsICAwLjA0MCwgMC45ODAsIDAuMzM1KTtcbiRlYXNlLWluLWJhY2s6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAtMC4yODAsIDAuNzM1LCAwLjA0NSk7XG5cbiRlYXNlLW91dC1xdWFkOiAgICAgY3ViaWMtYmV6aWVyKDAuMjUwLCAgMC40NjAsIDAuNDUwLCAwLjk0MCk7XG4kZWFzZS1vdXQtY3ViaWM6ICAgIGN1YmljLWJlemllcigwLjIxNSwgIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuJGVhc2Utb3V0LXF1YXJ0OiAgICBjdWJpYy1iZXppZXIoMC4xNjUsICAwLjg0MCwgMC40NDAsIDEuMDAwKTtcbiRlYXNlLW91dC1xdWludDogICAgY3ViaWMtYmV6aWVyKDAuMjMwLCAgMS4wMDAsIDAuMzIwLCAxLjAwMCk7XG4kZWFzZS1vdXQtc2luZTogICAgIGN1YmljLWJlemllcigwLjM5MCwgIDAuNTc1LCAwLjU2NSwgMS4wMDApO1xuJGVhc2Utb3V0LWV4cG86ICAgICBjdWJpYy1iZXppZXIoMC4xOTAsICAxLjAwMCwgMC4yMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1jaXJjOiAgICAgY3ViaWMtYmV6aWVyKDAuMDc1LCAgMC44MjAsIDAuMTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtYmFjazogICAgIGN1YmljLWJlemllcigwLjE3NSwgIDAuODg1LCAwLjMyMCwgMS4yNzUpO1xuXG4kZWFzZS1pbi1vdXQtcXVhZDogIGN1YmljLWJlemllcigwLjQ1NSwgIDAuMDMwLCAwLjUxNSwgMC45NTUpO1xuJGVhc2UtaW4tb3V0LWN1YmljOiBjdWJpYy1iZXppZXIoMC42NDUsICAwLjA0NSwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWFydDogY3ViaWMtYmV6aWVyKDAuNzcwLCAgMC4wMDAsIDAuMTc1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVpbnQ6IGN1YmljLWJlemllcigwLjg2MCwgIDAuMDAwLCAwLjA3MCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXNpbmU6ICBjdWJpYy1iZXppZXIoMC40NDUsICAwLjA1MCwgMC41NTAsIDAuOTUwKTtcbiRlYXNlLWluLW91dC1leHBvOiAgY3ViaWMtYmV6aWVyKDEuMDAwLCAgMC4wMDAsIDAuMDAwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtY2lyYzogIGN1YmljLWJlemllcigwLjc4NSwgIDAuMTM1LCAwLjE1MCwgMC44NjApO1xuJGVhc2UtaW4tb3V0LWJhY2s6ICBjdWJpYy1iZXppZXIoMC42ODAsIC0wLjU1MCwgMC4yNjUsIDEuNTUwKTtcbiIsIkBtaXhpbiB0cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCAkZGlyZWN0aW9uKSB7XG4gICR3aWR0aDogbnRoKCRzaXplLCAxKTtcbiAgJGhlaWdodDogbnRoKCRzaXplLCBsZW5ndGgoJHNpemUpKTtcbiAgJGZvcmVncm91bmQtY29sb3I6IG50aCgkY29sb3IsIDEpO1xuICAkYmFja2dyb3VuZC1jb2xvcjogaWYobGVuZ3RoKCRjb2xvcikgPT0gMiwgbnRoKCRjb2xvciwgMiksIHRyYW5zcGFyZW50KTtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHVwLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSB1cC1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1yaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gY2hhbmdlIHRoZSBgd29yZC13cmFwYCBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkd3JhcCBbYnJlYWstd29yZF1cbi8vLyAgIFZhbHVlIGZvciB0aGUgYHdvcmQtYnJlYWtgIHByb3BlcnR5LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIEBpbmNsdWRlIHdvcmQtd3JhcChicmVhay13b3JkKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbi8vLyAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuLy8vICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICB9XG5cbkBtaXhpbiB3b3JkLXdyYXAoJHdyYXA6IGJyZWFrLXdvcmQpIHtcbiAgb3ZlcmZsb3ctd3JhcDogJHdyYXA7XG4gIHdvcmQtd3JhcDogJHdyYXA7XG5cbiAgQGlmICR3cmFwID09IGJyZWFrLXdvcmQge1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgfSBAZWxzZSB7XG4gICAgd29yZC1icmVhazogJHdyYXA7XG4gIH1cbn1cbiIsIi8vIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBNQUpPUiB2ZXJzaW9uIHJlbGVhc2VcblxuQG1peGluIGlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBAd2FybiBcIlRoZSBpbmxpbmUtYmxvY2sgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG5AbWl4aW4gYnV0dG9uICgkc3R5bGU6IHNpbXBsZSwgJGJhc2UtY29sb3I6ICM0Mjk0ZjAsICR0ZXh0LXNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xuICAgICRzdHlsZTogc2ltcGxlO1xuXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJGJhc2UtY29sb3I7XG4gICAgJHRleHQtc2l6ZTogJHN0eWxlO1xuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xuICAgICRzdHlsZTogc2ltcGxlO1xuXG4gICAgQGlmICRwYWRkaW5nID09ICM0Mjk0ZjAge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG5cbiAgQHdhcm4gXCJUaGUgYnV0dG9uIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuLy8gU2VsZWN0b3IgU3R5bGUgQnV0dG9uXG5AbWl4aW4gYnV0dG9uc3R5bGUoJHR5cGUsICRiLWNvbG9yLCAkdC1zaXplLCAkcGFkKSB7XG4gIC8vIEdyYXlzY2FsZSBidXR0b25cbiAgQGlmICR0eXBlID09IHNpbXBsZSBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgc2ltcGxlKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBzaGlueSBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IHBpbGwgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHBpbGwoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IGZsYXQgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIGZsYXQoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgLy8gQ29sb3JlZCBidXR0b25cbiAgQGlmICR0eXBlID09IHNpbXBsZSB7XG4gICAgQGluY2x1ZGUgc2ltcGxlKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBzaGlueSB7XG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IHBpbGwge1xuICAgIEBpbmNsdWRlIHBpbGwoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IGZsYXQge1xuICAgIEBpbmNsdWRlIGZsYXQoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxufVxuXG4vLyBTaW1wbGUgQnV0dG9uXG5AbWl4aW4gc2ltcGxlKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xNCUpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTglLCAgJGxpZ2h0bmVzczogIDE1JSk7XG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTElKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICAxNSUsICRsaWdodG5lc3M6IC0xOCUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc3RvcC1ncmFkaWVudDogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50KTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gIH1cblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMCAkdGV4dC1zaGFkb3c7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTclLCAkbGlnaHRuZXNzOiAgNSUpO1xuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOCUsICRsaWdodG5lc3M6IC0xNCUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG5cbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDklLCAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNyUsICRsaWdodG5lc3M6IC0xNyUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlLCBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBTaGlueSBCdXR0b25cbkBtaXhpbiBzaGlueSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTcsICRncmVlbjogLTExMSwgJGJsdWU6IC04MSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMjYsICRncmVlbjogLTEyNywgJGJsdWU6IC0xMjIpO1xuICAkZm91cnRoLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNzksICAkZ3JlZW46IC03MCwgICRibHVlOiAtNDYpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAgMzcsICAkZ3JlZW46ICAyOSwgICRibHVlOiAgMTIpO1xuICAkc2Vjb25kLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNTYsICAkZ3JlZW46IC01MCwgICRibHVlOiAtMzMpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTQwLCAkZ3JlZW46IC0xNDEsICRibHVlOiAtMTE0KTtcbiAgJHRoaXJkLXN0b3A6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAgJGdyZWVuOiAtNzUsICAkYmx1ZTogLTQ4KTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICRmb3VydGgtc3RvcDogICBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzZWNvbmQtc3RvcDogICBncmF5c2NhbGUoJHNlY29uZC1zdG9wKTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gICAgJHRoaXJkLXN0b3A6ICAgIGdyYXlzY2FsZSgkdGhpcmQtc3RvcCk7XG4gIH1cblxuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkYmFzZS1jb2xvciAwJSwgJHNlY29uZC1zdG9wIDUwJSwgJHRoaXJkLXN0b3AgNTAlLCAkZm91cnRoLXN0b3AgMTAwJSk7XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMywgJGdyZWVuOiAtMTUsICRibHVlOiAtMTgpO1xuICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNjYsICRncmVlbjogLTYyLCAkYmx1ZTogLTUxKTtcbiAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTkzLCAkZ3JlZW46IC04NSwgJGJsdWU6IC02Nik7XG4gICAgJGZvdXJ0aC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgJGdyZWVuOiAtODAsICRibHVlOiAtNjMpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkZmlyc3Qtc3RvcC1ob3Zlcik7XG4gICAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkc2Vjb25kLXN0b3AtaG92ZXIpO1xuICAgICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJHRoaXJkLXN0b3AtaG92ZXIpO1xuICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wLWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkZmlyc3Qtc3RvcC1ob3ZlciAgMCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlY29uZC1zdG9wLWhvdmVyIDUwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcmQtc3RvcC1ob3ZlciAgNTAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmb3VydGgtc3RvcC1ob3ZlciAxMDAlKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExMSwgJGdyZWVuOiAtMTE2LCAkYmx1ZTogLTEyMik7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAyMHB4IDAgJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gUGlsbCBCdXR0b25cbkBtaXhpbiBwaWxsKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtMTElLCAkbGlnaHRuZXNzOiAtMjYlKTtcbiAgJGJvcmRlci1zaWRlczogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMjElLCAkbGlnaHRuZXNzOiAtMjElKTtcbiAgJGJvcmRlci10b3A6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMzAlLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMSUsICAkbGlnaHRuZXNzOiAgNyUpO1xuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxNCUsICRsaWdodG5lc3M6IC0xMCUpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNSwgJHNhdHVyYXRpb246IC0xOSUsICRsaWdodG5lc3M6IC0xNSUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICRib3JkZXItc2lkZXM6ICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XG4gICAgJGJvcmRlci10b3A6ICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc3RvcC1ncmFkaWVudDogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50KTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gIH1cblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaWdodG5lc3M6IC00LjUlKTtcbiAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxMy41JSwgJGxpZ2h0bmVzczogLTMyJSk7XG4gICAgJGJvcmRlci1zaWRlczogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMiUsICAgICRsaWdodG5lc3M6IC0yNyUpO1xuICAgICRib3JkZXItdG9wOiAgICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTE3JSwgICAkbGlnaHRuZXNzOiAtMjElKTtcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgJHNhdHVyYXRpb246IC0xJSwgICAgJGxpZ2h0bmVzczogIDMlKTtcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC00JSwgICAgJGxpZ2h0bmVzczogLTE1LjUlKTtcbiAgICAkdGV4dC1zaGFkb3ctaG92ZXI6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNSwgJHNhdHVyYXRpb246IC01JSwgICAgJGxpZ2h0bmVzczogLTIyJSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgICAgJGJvcmRlci1ib3R0b206ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xuICAgICAgJGJvcmRlci10b3A6ICAgICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgICAkdGV4dC1zaGFkb3ctaG92ZXI6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1ob3ZlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNCwgICRzYXR1cmF0aW9uOiAtMTIlLCAgJGxpZ2h0bmVzczogLTEwJSk7XG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDYsICAkc2F0dXJhdGlvbjogLTIuNSUsICRsaWdodG5lc3M6IC0zMCUpO1xuICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAxMSwgJHNhdHVyYXRpb246ICA2JSwgICAkbGlnaHRuZXNzOiAtMzElKTtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogOSwgICRzYXR1cmF0aW9uOiAgMiUsICAgJGxpZ2h0bmVzczogLTIxLjUlKTtcbiAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNSwgICRzYXR1cmF0aW9uOiAtMTIlLCAgJGxpZ2h0bmVzczogLTIxLjUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBncmF5c2NhbGUoJGFjdGl2ZS1jb2xvcik7XG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XG4gICAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbS1hY3RpdmUpO1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZDogJGFjdGl2ZS1jb2xvcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b20tYWN0aXZlO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggM3B4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gRmxhdCBCdXR0b25cbkBtaXhpbiBmbGF0KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAwO1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpe1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA0JSwgJGxpZ2h0bmVzczogNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItYWN0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4vLyBGbGV4aWJsZSBncmlkXG5AZnVuY3Rpb24gZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucykge1xuICAkd2lkdGg6ICRjb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkd2lkdGggLyAkY29udGFpbmVyLXdpZHRoKTtcblxuICBAd2FybiBcIlRoZSBmbGV4LWdyaWQgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG4vLyBGbGV4aWJsZSBndXR0ZXJcbkBmdW5jdGlvbiBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucywgJGd1dHRlcjogJGZnLWd1dHRlcikge1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCRndXR0ZXIgLyAkY29udGFpbmVyLXdpZHRoKTtcblxuICBAd2FybiBcIlRoZSBmbGV4LWd1dHRlciBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbkBmdW5jdGlvbiBncmlkLXdpZHRoKCRuKSB7XG4gIEByZXR1cm4gJG4gKiAkZ3ctY29sdW1uICsgKCRuIC0gMSkgKiAkZ3ctZ3V0dGVyO1xuXG4gIEB3YXJuIFwiVGhlIGdyaWQtd2lkdGggZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG5AZnVuY3Rpb24gZ29sZGVuLXJhdGlvKCR2YWx1ZSwgJGluY3JlbWVudCkge1xuICBAcmV0dXJuIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlLCAkcmF0aW86ICRnb2xkZW4pO1xuXG4gIEB3YXJuIFwiVGhlIGdvbGRlbi1yYXRpbyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlLiBQbGVhc2UgdXNlIHRoZSBtb2R1bGFyLXNjYWxlIGZ1bmN0aW9uLCBpbnN0ZWFkLlwiO1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkYm94KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1zaXppbmcsICRib3gsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgQHdhcm4gXCJUaGUgYm94LXNpemluZyBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlLiBUaGlzIHByb3BlcnR5IGNhbiBub3cgYmUgdXNlZCB1bi1wcmVmaXhlZC5cIjtcbn1cbiIsIi8vIEdvb2dsZSBDb2xvciBQYWxldHRlIGRlZmluZWQ6IGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4kbWF0ZXJpYWxpemUtcmVkOiAoXG4gIFwibGlnaHRlbi01XCI6ICAjZmRlYWViLFxuICBcImxpZ2h0ZW4tNFwiOiAgI2Y4YzFjMyxcbiAgXCJsaWdodGVuLTNcIjogICNmMzk4OWIsXG4gIFwibGlnaHRlbi0yXCI6ICAjZWU2ZTczLFxuICBcImxpZ2h0ZW4tMVwiOiAgI2VhNDU0YixcbiAgXCJiYXNlXCI6ICAgICAgICNlNTFjMjMsXG4gIFwiZGFya2VuLTFcIjogICAjZDAxODFlLFxuICBcImRhcmtlbi0yXCI6ICAgI2I5MTUxYixcbiAgXCJkYXJrZW4tM1wiOiAgICNhMjEzMTgsXG4gIFwiZGFya2VuLTRcIjogICAjOGIxMDE0LFxuKTtcblxuJHJlZDogKFxuICBcImxpZ2h0ZW4tNVwiOiAgI2ZmZWJlZSxcbiAgXCJsaWdodGVuLTRcIjogICNmZmNkZDIsXG4gIFwibGlnaHRlbi0zXCI6ICAjZWY5YTlhLFxuICBcImxpZ2h0ZW4tMlwiOiAgI2U1NzM3MyxcbiAgXCJsaWdodGVuLTFcIjogICNlZjUzNTAsXG4gIFwiYmFzZVwiOiAgICAgICAjZjQ0MzM2LFxuICBcImRhcmtlbi0xXCI6ICAgI2U1MzkzNSxcbiAgXCJkYXJrZW4tMlwiOiAgICNkMzJmMmYsXG4gIFwiZGFya2VuLTNcIjogICAjYzYyODI4LFxuICBcImRhcmtlbi00XCI6ICAgI2I3MWMxYyxcbiAgXCJhY2NlbnQtMVwiOiAgICAjZmY4YTgwLFxuICBcImFjY2VudC0yXCI6ICAgICNmZjUyNTIsXG4gIFwiYWNjZW50LTNcIjogICAgI2ZmMTc0NCxcbiAgXCJhY2NlbnQtNFwiOiAgICAjZDUwMDAwXG4pO1xuXG4kcGluazogKFxuICBcImxpZ2h0ZW4tNVwiOiAgI2ZjZTRlYyxcbiAgXCJsaWdodGVuLTRcIjogICNmOGJiZDAsXG4gIFwibGlnaHRlbi0zXCI6ICAjZjQ4ZmIxLFxuICBcImxpZ2h0ZW4tMlwiOiAgI2YwNjI5MixcbiAgXCJsaWdodGVuLTFcIjogICNlYzQwN2EsXG4gIFwiYmFzZVwiOiAgICAgICAjZTkxZTYzLFxuICBcImRhcmtlbi0xXCI6ICAgI2Q4MWI2MCxcbiAgXCJkYXJrZW4tMlwiOiAgICNjMjE4NWIsXG4gIFwiZGFya2VuLTNcIjogICAjYWQxNDU3LFxuICBcImRhcmtlbi00XCI6ICAgIzg4MGU0ZixcbiAgXCJhY2NlbnQtMVwiOiAgICAjZmY4MGFiLFxuICBcImFjY2VudC0yXCI6ICAgICNmZjQwODEsXG4gIFwiYWNjZW50LTNcIjogICAgI2Y1MDA1NyxcbiAgXCJhY2NlbnQtNFwiOiAgICAjYzUxMTYyXG4pO1xuXG4kcHVycGxlOiAoXG4gIFwibGlnaHRlbi01XCI6ICAjZjNlNWY1LFxuICBcImxpZ2h0ZW4tNFwiOiAgI2UxYmVlNyxcbiAgXCJsaWdodGVuLTNcIjogICNjZTkzZDgsXG4gIFwibGlnaHRlbi0yXCI6ICAjYmE2OGM4LFxuICBcImxpZ2h0ZW4tMVwiOiAgI2FiNDdiYyxcbiAgXCJiYXNlXCI6ICAgICAgICM5YzI3YjAsXG4gIFwiZGFya2VuLTFcIjogICAjOGUyNGFhLFxuICBcImRhcmtlbi0yXCI6ICAgIzdiMWZhMixcbiAgXCJkYXJrZW4tM1wiOiAgICM2YTFiOWEsXG4gIFwiZGFya2VuLTRcIjogICAjNGExNDhjLFxuICBcImFjY2VudC0xXCI6ICAgICNlYTgwZmMsXG4gIFwiYWNjZW50LTJcIjogICAgI2UwNDBmYixcbiAgXCJhY2NlbnQtM1wiOiAgICAjZDUwMGY5LFxuICBcImFjY2VudC00XCI6ICAgICNhYTAwZmZcbik7XG5cbiRkZWVwLXB1cnBsZTogKFxuICBcImxpZ2h0ZW4tNVwiOiAgI2VkZTdmNixcbiAgXCJsaWdodGVuLTRcIjogICNkMWM0ZTksXG4gIFwibGlnaHRlbi0zXCI6ICAjYjM5ZGRiLFxuICBcImxpZ2h0ZW4tMlwiOiAgIzk1NzVjZCxcbiAgXCJsaWdodGVuLTFcIjogICM3ZTU3YzIsXG4gIFwiYmFzZVwiOiAgICAgICAjNjczYWI3LFxuICBcImRhcmtlbi0xXCI6ICAgIzVlMzViMSxcbiAgXCJkYXJrZW4tMlwiOiAgICM1MTJkYTgsXG4gIFwiZGFya2VuLTNcIjogICAjNDUyN2EwLFxuICBcImRhcmtlbi00XCI6ICAgIzMxMWI5MixcbiAgXCJhY2NlbnQtMVwiOiAgICAjYjM4OGZmLFxuICBcImFjY2VudC0yXCI6ICAgICM3YzRkZmYsXG4gIFwiYWNjZW50LTNcIjogICAgIzY1MWZmZixcbiAgXCJhY2NlbnQtNFwiOiAgICAjNjIwMGVhXG4pO1xuXG4kaW5kaWdvOiAoXG4gIFwibGlnaHRlbi01XCI6ICAjZThlYWY2LFxuICBcImxpZ2h0ZW4tNFwiOiAgI2M1Y2FlOSxcbiAgXCJsaWdodGVuLTNcIjogICM5ZmE4ZGEsXG4gIFwibGlnaHRlbi0yXCI6ICAjNzk4NmNiLFxuICBcImxpZ2h0ZW4tMVwiOiAgIzVjNmJjMCxcbiAgXCJiYXNlXCI6ICAgICAgICMzZjUxYjUsXG4gIFwiZGFya2VuLTFcIjogICAjMzk0OWFiLFxuICBcImRhcmtlbi0yXCI6ICAgIzMwM2Y5ZixcbiAgXCJkYXJrZW4tM1wiOiAgICMyODM1OTMsXG4gIFwiZGFya2VuLTRcIjogICAjMWEyMzdlLFxuICBcImFjY2VudC0xXCI6ICAgICM4YzllZmYsXG4gIFwiYWNjZW50LTJcIjogICAgIzUzNmRmZSxcbiAgXCJhY2NlbnQtM1wiOiAgICAjM2Q1YWZlLFxuICBcImFjY2VudC00XCI6ICAgICMzMDRmZmVcbik7XG5cbiRibHVlOiAoXG4gIFwibGlnaHRlbi01XCI6ICAjZTNmMmZkLFxuICBcImxpZ2h0ZW4tNFwiOiAgI2JiZGVmYixcbiAgXCJsaWdodGVuLTNcIjogICM5MGNhZjksXG4gIFwibGlnaHRlbi0yXCI6ICAjNjRiNWY2LFxuICBcImxpZ2h0ZW4tMVwiOiAgIzQyYTVmNSxcbiAgXCJiYXNlXCI6ICAgICAgICMyMTk2ZjMsXG4gIFwiZGFya2VuLTFcIjogICAjMWU4OGU1LFxuICBcImRhcmtlbi0yXCI6ICAgIzE5NzZkMixcbiAgXCJkYXJrZW4tM1wiOiAgICMxNTY1YzAsXG4gIFwiZGFya2VuLTRcIjogICAjMGQ0N2ExLFxuICBcImFjY2VudC0xXCI6ICAgICM4MmIxZmYsXG4gIFwiYWNjZW50LTJcIjogICAgIzQ0OGFmZixcbiAgXCJhY2NlbnQtM1wiOiAgICAjMjk3OWZmLFxuICBcImFjY2VudC00XCI6ICAgICMyOTYyZmZcbik7XG5cbiRsaWdodC1ibHVlOiAoXG4gIFwibGlnaHRlbi01XCI6ICAjZTFmNWZlLFxuICBcImxpZ2h0ZW4tNFwiOiAgI2IzZTVmYyxcbiAgXCJsaWdodGVuLTNcIjogICM4MWQ0ZmEsXG4gIFwibGlnaHRlbi0yXCI6ICAjNGZjM2Y3LFxuICBcImxpZ2h0ZW4tMVwiOiAgIzI5YjZmNixcbiAgXCJiYXNlXCI6ICAgICAgICMwM2E5ZjQsXG4gIFwiZGFya2VuLTFcIjogICAjMDM5YmU1LFxuICBcImRhcmtlbi0yXCI6ICAgIzAyODhkMSxcbiAgXCJkYXJrZW4tM1wiOiAgICMwMjc3YmQsXG4gIFwiZGFya2VuLTRcIjogICAjMDE1NzliLFxuICBcImFjY2VudC0xXCI6ICAgICM4MGQ4ZmYsXG4gIFwiYWNjZW50LTJcIjogICAgIzQwYzRmZixcbiAgXCJhY2NlbnQtM1wiOiAgICAjMDBiMGZmLFxuICBcImFjY2VudC00XCI6ICAgICMwMDkxZWFcbik7XG5cbiRjeWFuOiAoXG4gIFwibGlnaHRlbi01XCI6ICAjZTBmN2ZhLFxuICBcImxpZ2h0ZW4tNFwiOiAgI2IyZWJmMixcbiAgXCJsaWdodGVuLTNcIjogICM4MGRlZWEsXG4gIFwibGlnaHRlbi0yXCI6ICAjNGRkMGUxLFxuICBcImxpZ2h0ZW4tMVwiOiAgIzI2YzZkYSxcbiAgXCJiYXNlXCI6ICAgICAgICMwMGJjZDQsXG4gIFwiZGFya2VuLTFcIjogICAjMDBhY2MxLFxuICBcImRhcmtlbi0yXCI6ICAgIzAwOTdhNyxcbiAgXCJkYXJrZW4tM1wiOiAgICMwMDgzOGYsXG4gIFwiZGFya2VuLTRcIjogICAjMDA2MDY0LFxuICBcImFjY2VudC0xXCI6ICAgICM4NGZmZmYsXG4gIFwiYWNjZW50LTJcIjogICAgIzE4ZmZmZixcbiAgXCJhY2NlbnQtM1wiOiAgICAjMDBlNWZmLFxuICBcImFjY2VudC00XCI6ICAgICMwMGI4ZDRcbik7XG5cbiR0ZWFsOiAoXG4gIFwibGlnaHRlbi01XCI6ICAjZTBmMmYxLFxuICBcImxpZ2h0ZW4tNFwiOiAgI2IyZGZkYixcbiAgXCJsaWdodGVuLTNcIjogICM4MGNiYzQsXG4gIFwibGlnaHRlbi0yXCI6ICAjNGRiNmFjLFxuICBcImxpZ2h0ZW4tMVwiOiAgIzI2YTY5YSxcbiAgXCJiYXNlXCI6ICAgICAgICMwMDk2ODgsXG4gIFwiZGFya2VuLTFcIjogICAjMDA4OTdiLFxuICBcImRhcmtlbi0yXCI6ICAgIzAwNzk2YixcbiAgXCJkYXJrZW4tM1wiOiAgICMwMDY5NWMsXG4gIFwiZGFya2VuLTRcIjogICAjMDA0ZDQwLFxuICBcImFjY2VudC0xXCI6ICAgICNhN2ZmZWIsXG4gIFwiYWNjZW50LTJcIjogICAgIzY0ZmZkYSxcbiAgXCJhY2NlbnQtM1wiOiAgICAjMWRlOWI2LFxuICBcImFjY2VudC00XCI6ICAgICMwMGJmYTVcbik7XG5cbiRncmVlbjogKFxuICBcImxpZ2h0ZW4tNVwiOiAgI2U4ZjVlOSxcbiAgXCJsaWdodGVuLTRcIjogICNjOGU2YzksXG4gIFwibGlnaHRlbi0zXCI6ICAjYTVkNmE3LFxuICBcImxpZ2h0ZW4tMlwiOiAgIzgxYzc4NCxcbiAgXCJsaWdodGVuLTFcIjogICM2NmJiNmEsXG4gIFwiYmFzZVwiOiAgICAgICAjNGNhZjUwLFxuICBcImRhcmtlbi0xXCI6ICAgIzQzYTA0NyxcbiAgXCJkYXJrZW4tMlwiOiAgICMzODhlM2MsXG4gIFwiZGFya2VuLTNcIjogICAjMmU3ZDMyLFxuICBcImRhcmtlbi00XCI6ICAgIzFiNWUyMCxcbiAgXCJhY2NlbnQtMVwiOiAgICAjYjlmNmNhLFxuICBcImFjY2VudC0yXCI6ICAgICM2OWYwYWUsXG4gIFwiYWNjZW50LTNcIjogICAgIzAwZTY3NixcbiAgXCJhY2NlbnQtNFwiOiAgICAjMDBjODUzXG4pO1xuXG4kbGlnaHQtZ3JlZW46IChcbiAgXCJsaWdodGVuLTVcIjogICNmMWY4ZTksXG4gIFwibGlnaHRlbi00XCI6ICAjZGNlZGM4LFxuICBcImxpZ2h0ZW4tM1wiOiAgI2M1ZTFhNSxcbiAgXCJsaWdodGVuLTJcIjogICNhZWQ1ODEsXG4gIFwibGlnaHRlbi0xXCI6ICAjOWNjYzY1LFxuICBcImJhc2VcIjogICAgICAgIzhiYzM0YSxcbiAgXCJkYXJrZW4tMVwiOiAgICM3Y2IzNDIsXG4gIFwiZGFya2VuLTJcIjogICAjNjg5ZjM4LFxuICBcImRhcmtlbi0zXCI6ICAgIzU1OGIyZixcbiAgXCJkYXJrZW4tNFwiOiAgICMzMzY5MWUsXG4gIFwiYWNjZW50LTFcIjogICAgI2NjZmY5MCxcbiAgXCJhY2NlbnQtMlwiOiAgICAjYjJmZjU5LFxuICBcImFjY2VudC0zXCI6ICAgICM3NmZmMDMsXG4gIFwiYWNjZW50LTRcIjogICAgIzY0ZGQxN1xuKTtcblxuJGxpbWU6IChcbiAgXCJsaWdodGVuLTVcIjogICNmOWZiZTcsXG4gIFwibGlnaHRlbi00XCI6ICAjZjBmNGMzLFxuICBcImxpZ2h0ZW4tM1wiOiAgI2U2ZWU5YyxcbiAgXCJsaWdodGVuLTJcIjogICNkY2U3NzUsXG4gIFwibGlnaHRlbi0xXCI6ICAjZDRlMTU3LFxuICBcImJhc2VcIjogICAgICAgI2NkZGMzOSxcbiAgXCJkYXJrZW4tMVwiOiAgICNjMGNhMzMsXG4gIFwiZGFya2VuLTJcIjogICAjYWZiNDJiLFxuICBcImRhcmtlbi0zXCI6ICAgIzllOWQyNCxcbiAgXCJkYXJrZW4tNFwiOiAgICM4Mjc3MTcsXG4gIFwiYWNjZW50LTFcIjogICAgI2Y0ZmY4MSxcbiAgXCJhY2NlbnQtMlwiOiAgICAjZWVmZjQxLFxuICBcImFjY2VudC0zXCI6ICAgICNjNmZmMDAsXG4gIFwiYWNjZW50LTRcIjogICAgI2FlZWEwMFxuKTtcblxuJHllbGxvdzogKFxuICBcImxpZ2h0ZW4tNVwiOiAgI2ZmZmRlNyxcbiAgXCJsaWdodGVuLTRcIjogICNmZmY5YzQsXG4gIFwibGlnaHRlbi0zXCI6ICAjZmZmNTlkLFxuICBcImxpZ2h0ZW4tMlwiOiAgI2ZmZjE3NixcbiAgXCJsaWdodGVuLTFcIjogICNmZmVlNTgsXG4gIFwiYmFzZVwiOiAgICAgICAjZmZlYjNiLFxuICBcImRhcmtlbi0xXCI6ICAgI2ZkZDgzNSxcbiAgXCJkYXJrZW4tMlwiOiAgICNmYmMwMmQsXG4gIFwiZGFya2VuLTNcIjogICAjZjlhODI1LFxuICBcImRhcmtlbi00XCI6ICAgI2Y1N2YxNyxcbiAgXCJhY2NlbnQtMVwiOiAgICAjZmZmZjhkLFxuICBcImFjY2VudC0yXCI6ICAgICNmZmZmMDAsXG4gIFwiYWNjZW50LTNcIjogICAgI2ZmZWEwMCxcbiAgXCJhY2NlbnQtNFwiOiAgICAjZmZkNjAwXG4pO1xuXG4kYW1iZXI6IChcbiAgXCJsaWdodGVuLTVcIjogICNmZmY4ZTEsXG4gIFwibGlnaHRlbi00XCI6ICAjZmZlY2IzLFxuICBcImxpZ2h0ZW4tM1wiOiAgI2ZmZTA4MixcbiAgXCJsaWdodGVuLTJcIjogICNmZmQ1NGYsXG4gIFwibGlnaHRlbi0xXCI6ICAjZmZjYTI4LFxuICBcImJhc2VcIjogICAgICAgI2ZmYzEwNyxcbiAgXCJkYXJrZW4tMVwiOiAgICNmZmIzMDAsXG4gIFwiZGFya2VuLTJcIjogICAjZmZhMDAwLFxuICBcImRhcmtlbi0zXCI6ICAgI2ZmOGYwMCxcbiAgXCJkYXJrZW4tNFwiOiAgICNmZjZmMDAsXG4gIFwiYWNjZW50LTFcIjogICAgI2ZmZTU3ZixcbiAgXCJhY2NlbnQtMlwiOiAgICAjZmZkNzQwLFxuICBcImFjY2VudC0zXCI6ICAgICNmZmM0MDAsXG4gIFwiYWNjZW50LTRcIjogICAgI2ZmYWIwMFxuKTtcblxuJG9yYW5nZTogKFxuICBcImxpZ2h0ZW4tNVwiOiAgI2ZmZjNlMCxcbiAgXCJsaWdodGVuLTRcIjogICNmZmUwYjIsXG4gIFwibGlnaHRlbi0zXCI6ICAjZmZjYzgwLFxuICBcImxpZ2h0ZW4tMlwiOiAgI2ZmYjc0ZCxcbiAgXCJsaWdodGVuLTFcIjogICNmZmE3MjYsXG4gIFwiYmFzZVwiOiAgICAgICAjZmY5ODAwLFxuICBcImRhcmtlbi0xXCI6ICAgI2ZiOGMwMCxcbiAgXCJkYXJrZW4tMlwiOiAgICNmNTdjMDAsXG4gIFwiZGFya2VuLTNcIjogICAjZWY2YzAwLFxuICBcImRhcmtlbi00XCI6ICAgI2U2NTEwMCxcbiAgXCJhY2NlbnQtMVwiOiAgICAjZmZkMTgwLFxuICBcImFjY2VudC0yXCI6ICAgICNmZmFiNDAsXG4gIFwiYWNjZW50LTNcIjogICAgI2ZmOTEwMCxcbiAgXCJhY2NlbnQtNFwiOiAgICAjZmY2ZDAwXG4pO1xuXG4kZGVlcC1vcmFuZ2U6IChcbiAgXCJsaWdodGVuLTVcIjogICNmYmU5ZTcsXG4gIFwibGlnaHRlbi00XCI6ICAjZmZjY2JjLFxuICBcImxpZ2h0ZW4tM1wiOiAgI2ZmYWI5MSxcbiAgXCJsaWdodGVuLTJcIjogICNmZjhhNjUsXG4gIFwibGlnaHRlbi0xXCI6ICAjZmY3MDQzLFxuICBcImJhc2VcIjogICAgICAgI2ZmNTcyMixcbiAgXCJkYXJrZW4tMVwiOiAgICNmNDUxMWUsXG4gIFwiZGFya2VuLTJcIjogICAjZTY0YTE5LFxuICBcImRhcmtlbi0zXCI6ICAgI2Q4NDMxNSxcbiAgXCJkYXJrZW4tNFwiOiAgICNiZjM2MGMsXG4gIFwiYWNjZW50LTFcIjogICAgI2ZmOWU4MCxcbiAgXCJhY2NlbnQtMlwiOiAgICAjZmY2ZTQwLFxuICBcImFjY2VudC0zXCI6ICAgICNmZjNkMDAsXG4gIFwiYWNjZW50LTRcIjogICAgI2RkMmMwMFxuKTtcblxuJGJyb3duOiAoXG4gIFwibGlnaHRlbi01XCI6ICAjZWZlYmU5LFxuICBcImxpZ2h0ZW4tNFwiOiAgI2Q3Y2NjOCxcbiAgXCJsaWdodGVuLTNcIjogICNiY2FhYTQsXG4gIFwibGlnaHRlbi0yXCI6ICAjYTE4ODdmLFxuICBcImxpZ2h0ZW4tMVwiOiAgIzhkNmU2MyxcbiAgXCJiYXNlXCI6ICAgICAgICM3OTU1NDgsXG4gIFwiZGFya2VuLTFcIjogICAjNmQ0YzQxLFxuICBcImRhcmtlbi0yXCI6ICAgIzVkNDAzNyxcbiAgXCJkYXJrZW4tM1wiOiAgICM0ZTM0MmUsXG4gIFwiZGFya2VuLTRcIjogICAjM2UyNzIzXG4pO1xuXG4kYmx1ZS1ncmV5OiAoXG4gIFwibGlnaHRlbi01XCI6ICAjZWNlZmYxLFxuICBcImxpZ2h0ZW4tNFwiOiAgI2NmZDhkYyxcbiAgXCJsaWdodGVuLTNcIjogICNiMGJlYzUsXG4gIFwibGlnaHRlbi0yXCI6ICAjOTBhNGFlLFxuICBcImxpZ2h0ZW4tMVwiOiAgIzc4OTA5YyxcbiAgXCJiYXNlXCI6ICAgICAgICM2MDdkOGIsXG4gIFwiZGFya2VuLTFcIjogICAjNTQ2ZTdhLFxuICBcImRhcmtlbi0yXCI6ICAgIzQ1NWE2NCxcbiAgXCJkYXJrZW4tM1wiOiAgICMzNzQ3NGYsXG4gIFwiZGFya2VuLTRcIjogICAjMjYzMjM4XG4pO1xuXG4kZ3JleTogKFxuICBcImxpZ2h0ZW4tNVwiOiAgI2ZhZmFmYSxcbiAgXCJsaWdodGVuLTRcIjogICNmNWY1ZjUsXG4gIFwibGlnaHRlbi0zXCI6ICAjZWVlZWVlLFxuICBcImxpZ2h0ZW4tMlwiOiAgI2UwZTBlMCxcbiAgXCJsaWdodGVuLTFcIjogICNiZGJkYmQsXG4gIFwiYmFzZVwiOiAgICAgICAjOWU5ZTllLFxuICBcImRhcmtlbi0xXCI6ICAgIzc1NzU3NSxcbiAgXCJkYXJrZW4tMlwiOiAgICM2MTYxNjEsXG4gIFwiZGFya2VuLTNcIjogICAjNDI0MjQyLFxuICBcImRhcmtlbi00XCI6ICAgIzIxMjEyMVxuKTtcblxuJHNoYWRlczogKFxuICBcImJsYWNrXCI6ICAgICAgICAjMDAwLFxuICBcIndoaXRlXCI6ICAgICAgICAjZmZmLFxuICBcInRyYW5zcGFyZW50XCI6ICB0cmFuc3BhcmVudFxuKTtcblxuJGNvbG9yczogKFxuICBcIm1hdGVyaWFsaXplLXJlZFwiOiAkbWF0ZXJpYWxpemUtcmVkLFxuICBcInJlZFwiOiAkcmVkLFxuICBcInBpbmtcIjogJHBpbmssXG4gIFwicHVycGxlXCI6ICRwdXJwbGUsXG4gIFwiZGVlcC1wdXJwbGVcIjogJGRlZXAtcHVycGxlLFxuICBcImluZGlnb1wiOiAkaW5kaWdvLFxuICBcImJsdWVcIjogJGJsdWUsXG4gIFwibGlnaHQtYmx1ZVwiOiAkbGlnaHQtYmx1ZSxcbiAgXCJjeWFuXCI6ICRjeWFuLFxuICBcInRlYWxcIjogJHRlYWwsXG4gIFwiZ3JlZW5cIjogJGdyZWVuLFxuICBcImxpZ2h0LWdyZWVuXCI6ICRsaWdodC1ncmVlbixcbiAgXCJsaW1lXCI6ICRsaW1lLFxuICBcInllbGxvd1wiOiAkeWVsbG93LFxuICBcImFtYmVyXCI6ICRhbWJlcixcbiAgXCJvcmFuZ2VcIjogJG9yYW5nZSxcbiAgXCJkZWVwLW9yYW5nZVwiOiAkZGVlcC1vcmFuZ2UsXG4gIFwiYnJvd25cIjogJGJyb3duLFxuICBcImJsdWUtZ3JleVwiOiAkYmx1ZS1ncmV5LFxuICBcImdyZXlcIjogJGdyZXksXG4gIFwic2hhZGVzXCI6ICRzaGFkZXNcbik7XG5cbi8vIHVzYWdlOiBjb2xvcihcIm5hbWVfb2ZfY29sb3JcIiwgXCJ0eXBlX29mX2NvbG9yXCIpXG4vLyB0byBhdm9pZCB0byByZXBlYXRpbmcgbWFwLWdldCgkY29sb3JzLCAuLi4pXG5cbkBmdW5jdGlvbiBjb2xvcigkY29sb3IsICR0eXBlKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkY29sb3JzLCAkY29sb3IpIHtcbiAgICAkY3Vyci1jb2xvcjogbWFwLWdldCgkY29sb3JzLCAkY29sb3IpO1xuICAgIEBpZiBtYXAtaGFzLWtleSgkY3Vyci1jb2xvciwgJHR5cGUpIHtcbiAgICAgIEByZXR1cm4gbWFwLWdldCgkY3Vyci1jb2xvciwgJHR5cGUpO1xuICAgIH1cbiAgfVxuICBAd2FybiBcIlVua25vd24gYCN7bmFtZX1gIGluICRjb2xvcnMuXCI7XG4gIEByZXR1cm4gbnVsbDtcbn1cbiIsIi8vIE1lZGlhIHF1ZXJ5IHJhbmdlc1xuJHNtYWxsLXNjcmVlbi11cDogNjAxcHg7XG4kbWVkaXVtLXNjcmVlbi11cDogOTkzcHg7XG4kbGFyZ2Utc2NyZWVuLXVwOiAxMjAxcHg7XG4kc21hbGwtc2NyZWVuOiA2MDBweDtcbiRtZWRpdW0tc2NyZWVuOiA5OTJweDtcbiRsYXJnZS1zY3JlZW46IDEyMDBweDtcblxuJG1lZGl1bS1hbmQtdXA6IFwib25seSBzY3JlZW4gYW5kIChtaW4td2lkdGggOiAjeyRzbWFsbC1zY3JlZW4tdXB9KVwiO1xuJGxhcmdlLWFuZC11cDogXCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6ICN7JG1lZGl1bS1zY3JlZW4tdXB9KVwiO1xuJHNtYWxsLWFuZC1kb3duOiBcIm9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDogI3skc21hbGwtc2NyZWVufSlcIjtcbiRtZWRpdW0tYW5kLWRvd246IFwib25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGggOiAjeyRtZWRpdW0tc2NyZWVufSlcIjtcbiRtZWRpdW0tb25seTogXCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aCA6ICN7JHNtYWxsLXNjcmVlbi11cH0pIGFuZCAobWF4LXdpZHRoIDogI3skbWVkaXVtLXNjcmVlbn0pXCI7XG5cbi8vIEdsb2JhbFxuJGNvbnRhaW5lci13aWR0aDogODAlO1xuXG4vLyBDdXN0b20gY29sb3JzXG4kd2hpdGU6ICNmZmY7XG4kYmxhY2s6ICMzNzM3Mzc7XG5cbi8vIFRvYXN0IGJhY2tncm91bmQgY29sb3JzXG4kZXJyb3I6IGNvbG9yKCdyZWQnLCAnYWNjZW50LTInKTtcbiRzdWNjZXNzOiBjb2xvcignZ3JlZW4nLCAnYWNjZW50LTMnKTtcblxuLy8gU29jaWFsIG5ldHdvcmsgYnJhbmQgY29sb3JzXG4kZmFjZWJvb2s6ICMzYjU5OTg7XG4kdHdpdHRlcjogIzQwOTlmZjtcbiRkcmliYmJsZTogI2M3M2I2ZjtcbiRnaXRodWI6ICM5OTk7XG4kdms6ICMyYjU4N2E7XG4kbGlua2VkaW46ICM0MDc1YjQ7XG4kZ29vZ2xlcGx1czogI2MyNGU0MDtcbiRwaW50ZXJlc3Q6ICNiZDA4MWM7XG5cbi8vIEhhbWJ1cmdlciBpY29uXG4kaWNvbi1saW5lLXdpZHRoOiAyNHB4O1xuJGljb24tbGluZS1oZWlnaHQ6IDJweDtcbiRpY29uLWxpbmUtY29sb3I6ICRibGFjaztcbiRpY29uLWVhc2luZzogJGVhc2Utb3V0LWNpcmM7XG4iLCJzZWN0aW9uIHtcbiAgICAmOm5vdCg6Zmlyc3Qtb2YtdHlwZSkge1xuICAgICAgICBwYWRkaW5nOiA1cmVtIDA7XG5cbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS1hbmQtZG93bn0ge1xuICAgICAgICAgICAgcGFkZGluZzogNHJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLWFuZC1kb3dufSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAzcmVtIDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXJlbTtcblxuICAgICAgICBAbWVkaWEgI3skbWVkaXVtLWFuZC1kb3dufSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAjeyRzbWFsbC1hbmQtZG93bn0ge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zZWN0aW9uIHtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4uY29udGFpbmVyIHtcbiAgICB3aWR0aDogOTAlO1xuICAgIG1heC13aWR0aDogMTYwMHB4O1xuXG4gICAgQG1lZGlhICN7JG1lZGl1bS1hbmQtdXB9IHtcbiAgICAgICAgd2lkdGg6ICRjb250YWluZXItd2lkdGg7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JGxhcmdlLWFuZC11cH0ge1xuICAgICAgICB3aWR0aDogJGNvbnRhaW5lci13aWR0aDtcbiAgICB9XG5cbiAgICAmLmZ1bGwtd2lkdGgge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmLnJvdy5uYXJyb3ctcm93IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG59XG5cbmlmcmFtZSB7XG4gICAgYm9yZGVyOiAwO1xufVxuXG5pbWcge1xuICAgIEBpbmNsdWRlIGZpbHRlcihncmF5c2NhbGUoMTAwJSkpO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIC43NXMgJGVhc2Utb3V0LWNpcmMpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIEBpbmNsdWRlIGZpbHRlcihncmF5c2NhbGUoMCkpO1xuICAgIH1cbn1cblxuc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xufVxuXG50aGVhZCB7XG4gICAgYm9yZGVyOiAwO1xufVxuXG4uZGl2aWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoJ2dyZXknLCAnbGlnaHRlbi0zJyk7XG59XG5cbi5tYXRlcmlhbGJveGVkLmFjdGl2ZSB7XG4gICAgQGluY2x1ZGUgZmlsdGVyKGdyYXlzY2FsZSgwKSk7XG59XG5cbm1haW4ge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIC41cyAkZWFzZS1vdXQtY2lyYyk7XG4gICAgd2lsbC1jaGFuZ2U6IGZpbHRlcjtcbn1cbiIsImh0bWwge1xuICAgIGZvbnQ6IDE2cHggUmFzYSwgbW9ub3NwYWNlO1xuICAgIGNvbG9yOiAkYmxhY2s7XG59XG5cbmJvZHksXG5pbnB1dCxcbnRleHRhcmVhLFxuc2VsZWN0LFxuYnV0dG9uIHtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gICAgZm9udC1rZXJuaW5nOiBub3JtYWw7XG4gICAgLW1vei1mb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsaWdhJywgJ2tlcm4nO1xufVxuXG5oMiB7XG4gICAgQG1lZGlhICN7JG1lZGl1bS1hbmQtZG93bn0ge1xuICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn1cblxuaDMge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbn1cbiIsIi5sb2NrZWQge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tYXJnaW4tb24tbWVkaXVtLWFuZC1kb3duIHtcbiAgICBAbWVkaWEgI3skbWVkaXVtLWFuZC1kb3dufSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICB9XG59XG5cbi5tZWdhLXBhZGRpbmcge1xuICAgIHBhZGRpbmc6IDdyZW0gMnJlbTtcbn1cblxuLm5vYnIge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5ibHVycnkge1xuICAgIEBpbmNsdWRlIGZpbHRlcihibHVyKDIwcHgpKTtcbn1cbiIsIi5wYWNlIHtcbiAgICBAaW5jbHVkZSB1c2VyLXNlbGVjdChub25lKTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIC5wYWNlLWFjdGl2aXR5IHtcbiAgICAgICAgQGluY2x1ZGUgYW5pbWF0aW9uKHBhY2Utc3Bpbm5lciA0MDBtcyBsaW5lYXIgaW5maW5pdGUpO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMTVweDtcbiAgICAgICAgcmlnaHQ6IDE1cHg7XG4gICAgICAgIHotaW5kZXg6IDIwMDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICBib3JkZXI6IHNvbGlkIDJweCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJsYWNrO1xuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJGJsYWNrO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIH1cblxuICAgIC5wYWNlLXByb2dyZXNzLWlubmVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLWFuZC1kb3dufSB7XG4gICAgICAgIC5wYWNlLWFjdGl2aXR5IHtcbiAgICAgICAgICAgIHJpZ2h0OiA1MCU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC03cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGtleWZyYW1lcyhwYWNlLXNwaW5uZXIpIHtcbiAgICAwJSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoMGRlZykpO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDM2MGRlZykpO1xuICAgIH1cbn1cblxuLnNwaW5uZXItd3JhcHBlciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjb250ZW50OiAnJztcbn1cblxuLnNwaW5uZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAtMTI1cHggMCAwIC0xMjVweDtcbn1cblxuLmN1cnRhaW5zIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGxlZnQgLjc1cyAkZWFzZS1vdXQtY2lyYyk7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAtMTAwJTtcbiAgICB6LWluZGV4OiA4MDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogY29sb3IoJ2dyZXknLCAnbGlnaHRlbi01Jyk7XG4gICAgd2lsbC1jaGFuZ2U6IGxlZnQ7XG59XG4iLCIuYnRuLFxuLmJ0bi1sYXJnZSB7XG4gICAgYmFja2dyb3VuZDogY29sb3IoJ2dyZXknLCAnbGlnaHRlbi0zJyk7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogY29sb3IoJ2dyZXknLCAnbGlnaHRlbi00Jyk7XG4gICAgfVxufVxuXG4uYnRuLWxhcmdlIHtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgbGluZS1oZWlnaHQ6IDU3cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG4iLCJhIHtcbiAgICBjb2xvcjogJGJsYWNrO1xuXG4gICAgJi51bmRlcmxpbmUge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJvcmRlci1ib3R0b20tY29sb3IgLjVzICRlYXNlLW91dC1jaXJjKTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50aXplKCRibGFjaywgLjc1KTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRibGFjaztcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5uYXZiYXItZml4ZWQge1xuICAgIHotaW5kZXg6IDkwMDtcblxuICAgIG5hdiB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDFzICRlYXNlLW91dC1jaXJjKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG5cbiAgICAgICAgJi5jbGFzc2ljOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgLjA1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHVsOm5vdCguc2lkZS1uYXYpOm5vdCguY29sbGFwc2libGUtYWNjb3JkaW9uKTpub3QoLmNvbGxhcHNpYmxlLWJvZHktbGlzdCkge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihib3JkZXItYm90dG9tLWNvbG9yIC41cyAkZWFzZS1vdXQtY2lyYyk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjc1cmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50aXplKCRibGFjaywgLjc1KTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGJsYWNrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYuZHJvcGRvd24tYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGk6bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDJyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubG9nbyxcbiAgICAgICAgLnNpZGVuYXYtdG9nZ2xlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAuc2lkZS1uYXYge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jdXJyZW50LXBhZ2U6OmFmdGVyLFxuICAgICAgICAgICAgLmN1cnJlbnQtcGFnZTo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY3VycmVudC1wYWdlOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDIxcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jdXJyZW50LXBhZ2U6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxN3B4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29sbGFwc2libGUtaGVhZGVyIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAuM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ2xpbmVhLWFycm93cy0xMCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGUwMTknO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYuYWN0aXZlOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGUwODMnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuI3NpZGVuYXYtb3ZlcmxheSB7XG4gICAgei1pbmRleDogODAwO1xufVxuXG4ubmF2YmFyLWZpeGVkIG5hdixcbi5uYXZiYXItZml4ZWQge1xuICAgIGhlaWdodDogMTUwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE1MHB4O1xuXG4gICAgQG1lZGlhICN7JG1lZGl1bS1hbmQtZG93bn0ge1xuICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTAwcHg7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JHNtYWxsLWFuZC1kb3dufSB7XG4gICAgICAgIGhlaWdodDogODBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDgwcHg7XG4gICAgfVxufVxuXG4uemVyby1uYXYtaGVpZ2h0IC5uYXZiYXItZml4ZWQge1xuICAgIGhlaWdodDogMDtcbn1cblxuLm5hdi1vdmVybGF5IHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRvcCAuNXMgJGVhc2Utb3V0LWNpcmMpO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IC0xMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogODAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogMTUwcHg7XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50aXplKGNvbG9yKCdncmV5JywgJ2xpZ2h0ZW4tNScpLCAuMyk7XG4gICAgd2lsbC1jaGFuZ2U6IHRvcDtcblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tYW5kLWRvd259IHtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JHNtYWxsLWFuZC1kb3dufSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA4MHB4O1xuICAgIH1cblxuICAgIC5uYXYtb3ZlcmxheS1jb250ZW50IHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IC43NXMgJGVhc2Utb3V0LWNpcmMgLjE1cyk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IC40cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICBoMyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjQyNHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYudmlzaWJsZSB7XG4gICAgICAgIHRvcDogMDtcblxuICAgICAgICAubmF2LW92ZXJsYXktY29udGVudCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmN1cnJlbnQtcGFnZTo6YWZ0ZXIsXG4gICAgLmN1cnJlbnQtcGFnZTo6YmVmb3JlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMnB4O1xuICAgIH1cblxuICAgIC5jdXJyZW50LXBhZ2U6OmJlZm9yZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gICAgfVxuXG4gICAgLmN1cnJlbnQtcGFnZTo6YWZ0ZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tYW5kLWRvd259IHtcbiAgICAgICAgLmN1cnJlbnQtcGFnZTo6YmVmb3JlIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDExcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuY3VycmVudC1wYWdlOjphZnRlciB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLWFuZC1kb3dufSB7XG4gICAgICAgIC5jdXJyZW50LXBhZ2U6OmJlZm9yZSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA5cHg7XG4gICAgICAgIH1cblxuICAgICAgICAuY3VycmVudC1wYWdlOjphZnRlciB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jdXJyZW50LXBhZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gICAgICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCAkYmxhY2s7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAtNXB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgJGJsYWNrO1xuICAgIH1cblxuICAgICYuaW5kZXgtbGluazo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGJsYWNrLCAuNSk7XG4gICAgfVxuXG4gICAgJi5pbmRleC1saW5rOjphZnRlciB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50aXplKCRibGFjaywgLjUpO1xuICAgIH1cbn1cblxuLmN1cnJlbnQtcGFnZTo6YWZ0ZXIsXG4uY3VycmVudC1wYWdlOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IC0zcHg7XG4gICAgYm9yZGVyLXJpZ2h0OiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjb250ZW50OiAnJztcbn1cbiIsIi5uYXYtaWNvbi1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIHVzZXItc2VsZWN0KG5vbmUpO1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUzZCgwLCAwLCAwKSk7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgLjVzICRlYXNlLW91dC1jaXJjKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxM3B4O1xuICAgIHJpZ2h0OiA3cHg7XG4gICAgei1pbmRleDogOTk5O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJi5oaWRkZW4ge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlM2QoMTIwcHgsIDAsIDApKTtcbiAgICB9XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLWFuZC1kb3dufSB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLW9ubHl9IHtcbiAgICAgICAgbWFyZ2luLXRvcDogLjc1cmVtO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRzbWFsbC1hbmQtZG93bn0ge1xuICAgICAgICBtYXJnaW4tdG9wOiAuMzVyZW07XG4gICAgfVxufVxuXG4ubmF2LWljb24ge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciAuMnMgJGljb24tZWFzaW5nKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAkaWNvbi1saW5lLXdpZHRoO1xuICAgIGhlaWdodDogJGljb24tbGluZS1oZWlnaHQ7XG4gICAgbWFyZ2luLXRvcDogLTFweDtcbiAgICBtYXJnaW4tbGVmdDogLSgkaWNvbi1saW5lLXdpZHRoIC8gMik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGljb24tbGluZS1jb2xvcjtcblxuICAgICYudHJhbnNmb3JtZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDQ1ZGVnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgtNDVkZWcpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm5hdi1pY29uOjphZnRlcixcbi5uYXYtaWNvbjo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAuMnMgJGljb24tZWFzaW5nKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6ICRpY29uLWxpbmUtd2lkdGg7XG4gICAgaGVpZ2h0OiAkaWNvbi1saW5lLWhlaWdodDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaWNvbi1saW5lLWNvbG9yO1xuICAgIGNvbnRlbnQ6ICcnO1xufVxuXG4ubmF2LWljb246OmFmdGVyIHtcbiAgICB0b3A6IDZweDtcbn1cblxuLm5hdi1pY29uOjpiZWZvcmUge1xuICAgIHRvcDogLTZweDtcbn1cblxuLm5hdi1pY29uLWNvbnRhaW5lcjpob3ZlciAubmF2LWljb246OmFmdGVyIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAuMnMgJGljb24tZWFzaW5nKTtcbiAgICB0b3A6IDEwcHg7XG59XG5cbi5uYXYtaWNvbi1jb250YWluZXI6aG92ZXIgLm5hdi1pY29uOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIC4ycyAkaWNvbi1lYXNpbmcpO1xuICAgIHRvcDogLTEwcHg7XG59XG5cbi5uYXYtaWNvbi50cmFuc2Zvcm1lZDo6YWZ0ZXIsXG4ubmF2LWljb24udHJhbnNmb3JtZWQ6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtLW9yaWdpbig1MCUgNTAlKTtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAuMTVzICRpY29uLWVhc2luZyk7XG4gICAgdG9wOiAxcHg7XG4gICAgbGVmdDogLTFweDtcbiAgICB3aWR0aDogMjZweDtcbn1cblxuLm5hdi1pY29uLWNvbnRhaW5lcjpob3ZlciAubmF2LWljb24udHJhbnNmb3JtZWQ6OmFmdGVyLFxuLm5hdi1pY29uLWNvbnRhaW5lcjpob3ZlciAubmF2LWljb24udHJhbnNmb3JtZWQ6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgLjE1cyAkaWNvbi1lYXNpbmcpO1xuICAgIHRvcDogMXB4O1xuICAgIGxlZnQ6IC00cHg7XG4gICAgd2lkdGg6IDMycHg7XG59XG4iLCJmb290ZXIge1xuICAgIHBhZGRpbmc6IDNyZW0gMDtcblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tYW5kLWRvd259IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn1cbiIsIkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpIGFuZCAobWluLXdpZHRoOiA2MDFweCkge1xuICAgICN0b2FzdC1jb250YWluZXIge1xuICAgICAgICByaWdodDogNSU7XG4gICAgfVxufVxuXG4udG9hc3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMS43NXJlbTtcblxuICAgIC8vIEEgYml0IG9mIGEgdHJpY2tlcnkgaW4gb3JkZXIgdG8gc2hvdyBvbmx5IG9uZSB0b2FzdCBhdCB0aGUgdGltZVxuICAgIC8vIE1ha2luZyBzdXJlIHRoZSB1c2VyIHdvbid0IGZyZWFrIG91dCwgd2hlbiBoZSBzZWVzIDMgcmVkIHRoaW5naWVzIHBvcCB1cFxuICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuXG4gICAgJi5lcnJvciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRlcnJvcjtcbiAgICB9XG5cbiAgICAmLnN1Y2Nlc3Mge1xuICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3VjY2VzcztcbiAgICB9XG59XG4iLCIuc2xpZGVyIC5pbmRpY2F0b3JzIC5pbmRpY2F0b3ItaXRlbSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGJsYWNrLCAuNSk7XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICB9XG59XG4iLCIucmVjdGFuZ2xlIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNjAlO1xufVxuXG4ucmVjdGFuZ2xlLXZlcnRpY2FsIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygxMjAlICsgMS41cmVtKTtcbn1cblxuLnNxdWFyZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDEwMCU7XG59XG5cbi5yZWN0YW5nbGUsXG4ucmVjdGFuZ2xlLXZlcnRpY2FsLFxuLnNxdWFyZSxcbi5yZWN0YW5nbGUtOC1vZi0xMiB7XG4gICAgQGluY2x1ZGUgZmlsdGVyKGdyYXlzY2FsZSgxMDAlKSk7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgLjc1cyAkZWFzZS1vdXQtY2lyYyk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcblxuICAgID4gLmNvbnRlbnQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDAgMS40NnJlbTtcblxuICAgICAgICAmLm1lZGl1bS1jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgLjc1cmVtO1xuXG4gICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAuNzVyZW0gMDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuc21hbGwtY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIC41cmVtO1xuXG4gICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAuNXJlbSAwO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIEBpbmNsdWRlIGZpbHRlcihncmF5c2NhbGUoMCkpO1xuICAgIH1cbn1cblxuLmJsb2NrcyB7XG4gICAgLnJvdyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICB9XG5cbiAgICA+IC5yb3cgLnJvdzpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICRibGFjaztcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuZHJvcGRvd24tY29udGVudCB7XG4gICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICBtYXJnaW4tbGVmdDogLTFyZW07XG4gICAgYm94LXNoYWRvdzogbm9uZTtcblxuICAgIHVsOm5vdCguc2lkZS1uYXYpOm5vdCguY29sbGFwc2libGUtYWNjb3JkaW9uKTpub3QoLmNvbGxhcHNpYmxlLWJvZHktbGlzdCkgbGkge1xuICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA0cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY3VycmVudC1wYWdlOjphZnRlcixcbiAgICAuY3VycmVudC1wYWdlOjpiZWZvcmUge1xuICAgICAgICB0b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgICAgICAgbGVmdDogMXJlbSAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLmRyb3Bkb3duLWJ1dHRvbiB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuIiwiI2Z1bGxwYWdlIHtcbiAgICAuZnAtY29udHJvbEFycm93IHtcbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICBib3R0b206IDIwcHg7XG5cbiAgICAgICAgJi5mcC1wcmV2IHtcbiAgICAgICAgICAgIGxlZnQ6IDIwcHg7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRibGFjaztcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMTguNXB4IDE0cHggMTguNXB4IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLmZwLW5leHQge1xuICAgICAgICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJGJsYWNrO1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAxOC41cHggMCAxOC41cHggMTRweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNvbnRhaW5lci1wYWRkaW5nIHtcbiAgICBwYWRkaW5nOiAxODBweCAwIDE1MHB4O1xuXG4gICAgQG1lZGlhICN7JG1lZGl1bS1hbmQtZG93bn0ge1xuICAgICAgICBwYWRkaW5nOiAxMzBweCAwIDc1cHg7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JHNtYWxsLWFuZC1kb3dufSB7XG4gICAgICAgIHBhZGRpbmc6IDgwcHggMCA1MHB4O1xuICAgIH1cbn1cbiIsIiNwcC1uYXYgc3Bhbixcbi5wcC1zbGlkZXNOYXYgc3BhbiB7XG4gICAgYm9yZGVyLWNvbG9yOiAjNDg0ODQ4ICFpbXBvcnRhbnQ7XG59XG4iLCIkY29sb3I6ICR3aGl0ZTtcbiRiYWNrZ3JvdW5kOiAjMGYwZjBmO1xuJGFsdGVybmF0aXZlLWRhcmstY29sb3I6IGNvbG9yKCdncmV5JywgJ2Rhcmtlbi00Jyk7XG4kaGVyby1oMS1jb2xvcjogY29sb3IoJ2dyZXknLCAnbGlnaHRlbi00Jyk7XG5cbi5kYXJrIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgJi51bmRlcmxpbmUge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGNvbG9yLCAuNzUpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZGl2aWRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhbHRlcm5hdGl2ZS1kYXJrLWNvbG9yO1xuICAgIH1cblxuICAgIC5jdXJ0YWlucyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhbHRlcm5hdGl2ZS1kYXJrLWNvbG9yO1xuICAgIH1cblxuICAgIC5jdXJyZW50LXBhZ2Uge1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pbmRleC1saW5rOjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGNvbG9yLCAuNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLmluZGV4LWxpbms6OmFmdGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50aXplKCRjb2xvciwgLjUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5hdmJhci1maXhlZCB7XG4gICAgICAgIG5hdiB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudGl6ZSgkYmFja2dyb3VuZCwgLjA1KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmN1cnJlbnQtcGFnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYuaW5kZXgtbGluazo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGNvbG9yLCAuNSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5pbmRleC1saW5rOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50aXplKCRjb2xvciwgLjUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdWw6bm90KC5zaWRlLW5hdik6bm90KC5jb2xsYXBzaWJsZS1hY2NvcmRpb24pOm5vdCguY29sbGFwc2libGUtYm9keS1saXN0KSB7XG4gICAgICAgICAgICAgICAgYSB7XG5cbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50aXplKCRjb2xvciwgLjc1KTtcblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmxvZ28sXG4gICAgICAgICAgICAuc2lkZW5hdi10b2dnbGUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2lkZS1uYXYge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblxuICAgICAgICAuY29sbGFwc2libGUtYm9keSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5kcm9wZG93bi1jb250ZW50IHtcbiAgICAgICAgdWwgbGkge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRhbHRlcm5hdGl2ZS1kYXJrLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICAgIGNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgIH1cblxuICAgIC50ZWFtIC5oaXJpbmcge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYWx0ZXJuYXRpdmUtZGFyay1jb2xvcjtcbiAgICB9XG5cbiAgICAuYnRuLFxuICAgIC5idG4tbGFyZ2Uge1xuICAgICAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICB9XG5cbiAgICAmW2NsYXNzKj0ncGFnZS1uZXdzJ10ge1xuICAgICAgICAuYmxvY2tzIGEge1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5uZXdzLWdyaWQuYmxvY2tzIGEge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucGFnZS1jb250YWN0IHtcbiAgICAgICAgZm9ybSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYWx0ZXJuYXRpdmUtZGFyay1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pbnB1dC1maWVsZCBsYWJlbCB7XG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAuMik7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dFt0eXBlPXRleHRdLFxuICAgICAgICBpbnB1dFt0eXBlPWVtYWlsXSxcbiAgICAgICAgaW5wdXRbdHlwZT1lbWFpbF0sXG4gICAgICAgIHRleHRhcmVhLm1hdGVyaWFsaXplLXRleHRhcmVhIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgLjIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmlucHV0LWZpZWxkIGlucHV0W3R5cGU9dGV4dF06Zm9jdXM6bm90KFtyZWFkb25seV0pLFxuICAgICAgICAuaW5wdXQtZmllbGQgaW5wdXRbdHlwZT1lbWFpbF06Zm9jdXMsXG4gICAgICAgIC5pbnB1dC1maWVsZCBpbnB1dFt0eXBlPWVtYWlsXTpmb2N1czpub3QoW3JlYWRvbmx5XSksXG4gICAgICAgIGlucHV0W3R5cGU9ZW1haWxdOmZvY3VzLFxuICAgICAgICBpbnB1dFt0eXBlPWVtYWlsXTpmb2N1czpub3QoW3JlYWRvbmx5XSksXG4gICAgICAgIHRleHRhcmVhLm1hdGVyaWFsaXplLXRleHRhcmVhOmZvY3VzLFxuICAgICAgICB0ZXh0YXJlYS5tYXRlcmlhbGl6ZS10ZXh0YXJlYTpmb2N1czpub3QoW3JlYWRvbmx5XSkge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAuMik7XG5cbiAgICAgICAgICAgICsgbGFiZWwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkd2hpdGUsIC4yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5pbnB1dC1maWVsZCBpbnB1dFt0eXBlPXRleHRdLnZhbGlkLFxuICAgICAgICAuaW5wdXQtZmllbGQgaW5wdXRbdHlwZT1lbWFpbF0udmFsaWQsXG4gICAgICAgIHRleHRhcmVhLm1hdGVyaWFsaXplLXRleHRhcmVhLnZhbGlkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgLjIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmlucHV0LWZpZWxkIGlucHV0W3R5cGU9dGV4dF0uaW52YWxpZCxcbiAgICAgICAgLmlucHV0LWZpZWxkIGlucHV0W3R5cGU9ZW1haWxdLmludmFsaWQsXG4gICAgICAgIHRleHRhcmVhLm1hdGVyaWFsaXplLXRleHRhcmVhLmludmFsaWQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnRpemUoJHdoaXRlLCAuMik7XG4gICAgICAgIH1cblxuICAgICAgICAuaW5wdXQtZmllbGQgLnByZWZpeC5hY3RpdmUge1xuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50aXplKCR3aGl0ZSwgLjIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGFibGUuaGlnaGxpZ2h0PnRib2R5PnRyOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGFsdGVybmF0aXZlLWRhcmstY29sb3I7XG4gICAgfVxuXG4gICAgLnBhbmVsLWJhY2tncm91bmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAubmF2LWljb24sXG4gICAgLm5hdi1pY29uOjphZnRlcixcbiAgICAubmF2LWljb246OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICB9XG5cbiAgICAubmF2LWljb24udHJhbnNmb3JtZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAubmF2LW92ZXJsYXkge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudGl6ZSgkYWx0ZXJuYXRpdmUtZGFyay1jb2xvciwgLjMpO1xuICAgIH1cblxuICAgIC5oZXJvIGgxIHtcbiAgICAgICAgY29sb3I6ICRoZXJvLWgxLWNvbG9yO1xuICAgIH1cblxuICAgIC5wYWNlIHtcbiAgICAgICAgLnBhY2UtYWN0aXZpdHkge1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5oZXJvIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogNXJlbTtcblxuICAgIGgxIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtNTAlKSk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgd2lkdGg6IDc1JTtcbiAgICAgICAgcGFkZGluZzogMCA1cmVtO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGNvbG9yOiBjb2xvcignZ3JleScsICdkYXJrZW4tMycpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLWFuZC1kb3dufSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIC41cmVtO1xuICAgICAgICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi52aWV3LWFsbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tdG9wOiAycmVtO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAuNHMgJGVhc2Utb3V0LWNpcmMpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAtMXJlbTtcbiAgICAgICAgY29udGVudDogJ+KGkic7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgICByaWdodDogLTJyZW07XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG4ucGFnZS1ob21lIHtcbiAgICBtYWluIHtcbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS1hbmQtZG93bn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLnRlYW0ge1xuICAgIC5yaG9tYnVzLWNsaXAge1xuICAgICAgICBAaW5jbHVkZSBwcmVmaXhlcihjbGlwLXBhdGgsIHBvbHlnb24oNTAlIDAlLCAxMDAlIDUwJSwgNTAlIDEwMCUsIDAlIDUwJSksIHdlYmtpdCBzcGVjKTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHByZWZpeGVyKGNsaXAtcGF0aCwgcG9seWdvbigwJSAwJSwgMTAwJSAwJSwgMTAwJSAxMDAlLCAwJSAxMDAlKSwgd2Via2l0IHNwZWMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmhpcmluZyB7XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yKCdncmV5JywgJ2xpZ2h0ZW4tNScpO1xuICAgIH1cblxuICAgIC50aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNzUlO1xuXG4gICAgICAgIEBtZWRpYSAjeyRzbWFsbC1hbmQtZG93bn0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiA5MCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLWFuZC1kb3dufSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG59XG5cbi5wYWdlLWFib3V0IHtcbiAgICAuZXhwZXJ0aXNlIHtcbiAgICAgICAgLnJvdzpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVyZW07XG5cbiAgICAgICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tYW5kLWRvd259IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uZXhwZXJ0aXNlIHtcbiAgICBpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICAgICAgZm9udC1zaXplOiA3cmVtO1xuXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tYW5kLWRvd259IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmV4cGVydGlzZS1kZXNjcmlwdGlvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogNzUlO1xuXG4gICAgICAgIEBtZWRpYSAjeyRzbWFsbC1hbmQtZG93bn0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiA5MCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLWFuZC1kb3dufSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG59XG5cbi5waGlsb3NvcGh5IHtcbiAgICAudGFicyB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgLnRhYiB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuXG4gICAgICAgICAgICBoNSB7XG4gICAgICAgICAgICAgICAgQG1lZGlhICN7JHNtYWxsLWFuZC1kb3dufSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucGhpbG9zb3BoeS1udW1iZXIge1xuICAgICAgICAgICAgICAgIEBtZWRpYSAjeyRsYXJnZS1hbmQtdXB9IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvcignZ3JleScsICdsaWdodGVuLTEnKTtcblxuICAgICAgICAgICAgICAgICYuYWN0aXZlLFxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC50YWItY29udGVudHMge1xuICAgICAgICBoNSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICBAbWVkaWEgI3skc21hbGwtYW5kLWRvd259IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaW5kaWNhdG9yIHtcbiAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICB9XG59XG4iLCIucHJpY2VzIHtcbiAgICAuaW5mbyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMCAxcmVtO1xuICAgICAgICBjdXJzb3I6IGhlbHA7XG4gICAgICAgIG9wYWNpdHk6IC41O1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmljZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMy41cmVtO1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgIH1cblxuICAgIC5wcmljZS1ib3gge1xuICAgICAgICBAbWVkaWEgI3skbWVkaXVtLWFuZC1kb3dufSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmRpdmlkZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAuNWVtO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tYW5kLWRvd259IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIC5pbmZvIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmZhcSB7XG4gICAgLmNvbGxhcHNpYmxlIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cblxuICAgIC5jb2xsYXBzaWJsZS1oZWFkZXIge1xuICAgICAgICBtaW4taGVpZ2h0OiA1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLmNvbGxhcHNpYmxlLWJvZHkgcCB7XG4gICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICB9XG59XG4iLCJAbWl4aW4gc29jaWFsLWxpbmsoJG5ldHdvcmssICRjb2xvcikge1xuICAgICYuI3skbmV0d29ya306aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgfVxufVxuXG4ucGFnZS1jb250YWN0IHtcbiAgICAuaW5wdXQtZmllbGQgbGFiZWwge1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9dGV4dF0sXG4gICAgaW5wdXRbdHlwZT1lbWFpbF0sXG4gICAgaW5wdXRbdHlwZT1lbWFpbF0sXG4gICAgdGV4dGFyZWEubWF0ZXJpYWxpemUtdGV4dGFyZWEge1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkYmxhY2s7XG4gICAgfVxuXG4gICAgLmlucHV0LWZpZWxkIGlucHV0W3R5cGU9dGV4dF06Zm9jdXM6bm90KFtyZWFkb25seV0pLFxuICAgIC5pbnB1dC1maWVsZCBpbnB1dFt0eXBlPWVtYWlsXTpmb2N1cyxcbiAgICAuaW5wdXQtZmllbGQgaW5wdXRbdHlwZT1lbWFpbF06Zm9jdXM6bm90KFtyZWFkb25seV0pLFxuICAgIGlucHV0W3R5cGU9ZW1haWxdOmZvY3VzLFxuICAgIGlucHV0W3R5cGU9ZW1haWxdOmZvY3VzOm5vdChbcmVhZG9ubHldKSxcbiAgICB0ZXh0YXJlYS5tYXRlcmlhbGl6ZS10ZXh0YXJlYTpmb2N1cyxcbiAgICB0ZXh0YXJlYS5tYXRlcmlhbGl6ZS10ZXh0YXJlYTpmb2N1czpub3QoW3JlYWRvbmx5XSkge1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkYmxhY2s7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG5cbiAgICAgICAgKyBsYWJlbCB7XG4gICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmlucHV0LWZpZWxkIGlucHV0W3R5cGU9dGV4dF0udmFsaWQsXG4gICAgLmlucHV0LWZpZWxkIGlucHV0W3R5cGU9ZW1haWxdLnZhbGlkLFxuICAgIHRleHRhcmVhLm1hdGVyaWFsaXplLXRleHRhcmVhLnZhbGlkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGJsYWNrO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cblxuICAgIC5pbnB1dC1maWVsZCBpbnB1dFt0eXBlPXRleHRdLmludmFsaWQsXG4gICAgLmlucHV0LWZpZWxkIGlucHV0W3R5cGU9ZW1haWxdLmludmFsaWQsXG4gICAgdGV4dGFyZWEubWF0ZXJpYWxpemUtdGV4dGFyZWEuaW52YWxpZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRibGFjaztcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICAuaW5wdXQtZmllbGQgLnByZWZpeC5hY3RpdmUge1xuICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgIH1cblxuICAgIGFkZHJlc3Mge1xuICAgICAgICBtYXJnaW46IDFlbSAwO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgfVxuXG4gICAgZm9ybSB7XG4gICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yKCdncmV5JywgJ2xpZ2h0ZW4tNScpO1xuICAgIH1cblxuICAgIC5zb2NpYWwge1xuICAgICAgICAubmV0d29yayB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQgLjRzICRlYXNlLW91dC1jaXJjKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNvY2lhbC1saW5rKGZhY2Vib29rLCAkZmFjZWJvb2spO1xuICAgICAgICAgICAgQGluY2x1ZGUgc29jaWFsLWxpbmsodHdpdHRlciwgJHR3aXR0ZXIpO1xuICAgICAgICAgICAgQGluY2x1ZGUgc29jaWFsLWxpbmsoZHJpYmJibGUsICRkcmliYmJsZSk7XG4gICAgICAgICAgICBAaW5jbHVkZSBzb2NpYWwtbGluayhnaXRodWIsICRnaXRodWIpO1xuICAgICAgICAgICAgQGluY2x1ZGUgc29jaWFsLWxpbmsodmssICR2ayk7XG4gICAgICAgICAgICBAaW5jbHVkZSBzb2NpYWwtbGluayhnb29nbGVwbHVzLCAkZ29vZ2xlcGx1cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDRyZW0gMDtcblxuICAgICAgICAgICAgQG1lZGlhICN7JG1lZGl1bS1hbmQtZG93bn0ge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDNyZW0gMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQG1lZGlhICN7JHNtYWxsLWFuZC1kb3dufSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnZpc2l0LXVzIHtcbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS1hbmQtZG93bn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLm5ld3MtZ3JpZCB7XG4gICAgYXJ0aWNsZSB7XG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGE6aG92ZXIgLnJlY3RhbmdsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWx0ZXIoZ3JheXNjYWxlKDApKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tYW5kLWRvd259IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn1cblxuLmFsdGVybmF0aXZlIHtcbiAgICAucmVjdGFuZ2xlIHtcbiAgICAgICAgQGluY2x1ZGUgZmlsdGVyKGdyYXlzY2FsZSgwKSk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkYmxhY2ssIC4yNSk7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFydGljbGUgYSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIC5yZWN0YW5nbGUge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmluZm8ge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMS41cmVtKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIGgzIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cbiIsIltjbGFzcyo9J3BhZ2Utd29yay0nXSxcbltjbGFzcyo9J3BhZ2UtbmV3cy0nXSB7XG4gICAgLnRleHQtaW5kZW50IHAge1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgJjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgICAgIHRleHQtaW5kZW50OiAycmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByb2plY3QtbWV0YSBwOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgIC5kaXZpZGVyIHtcbiAgICAgICAgbWFyZ2luOiA1cmVtIDA7XG5cbiAgICAgICAgJi5tb2Rlc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiAxLjVyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tYW5kLWRvd259IHtcbiAgICAgICAgICAgIG1hcmdpbjogMy41cmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgI3skc21hbGwtYW5kLWRvd259IHtcbiAgICAgICAgICAgIG1hcmdpbjogMnJlbSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBhcmFsbGF4LWNvbnRhaW5lcjpob3ZlciBpbWcge1xuICAgICAgICBAaW5jbHVkZSBmaWx0ZXIoZ3JheXNjYWxlKDApKTtcbiAgICB9XG5cbiAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICBib3JkZXItbGVmdDogMDtcblxuICAgICAgICBAbWVkaWEgI3skc21hbGwtYW5kLWRvd259IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mbG9hdGluZy1ibG9ja3F1b3RlLFxuICAgIC5mbG9hdGluZy1maWd1cmUge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBwYWRkaW5nOiAycmVtO1xuICAgIH1cblxuICAgIC5mbG9hdGluZy1ibG9ja3F1b3RlIHtcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuXG4gICAgICAgIEBtZWRpYSAjeyRzbWFsbC1hbmQtZG93bn0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1kYXNoLXVsIGxpOjpiZWZvcmUge1xuICAgICAgICBjb2xvcjogY29sb3IoJ2dyZXknLCAnbGlnaHRlbi0yJyk7XG4gICAgICAgIGNvbnRlbnQ6ICfigJQgJztcbiAgICB9XG5cbiAgICAuYXV0aG9yLXBpY3R1cmUge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAuMnMgJGVhc2Utb3V0LWNpcmMpO1xuICAgICAgICBAaW5jbHVkZSBwcmVmaXhlcihjbGlwLXBhdGgsIHBvbHlnb24oNTAlIDAlLCAxMDAlIDUwJSwgNTAlIDEwMCUsIDAlIDUwJSksIHdlYmtpdCBzcGVjKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0zNXB4O1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgcHJlZml4ZXIoY2xpcC1wYXRoLCBwb2x5Z29uKDAlIDAlLCAxMDAlIDAlLCAxMDAlIDEwMCUsIDAlIDEwMCUpLCB3ZWJraXQgc3BlYyk7XG4gICAgICAgICAgICB3aWR0aDogNjBweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xNnB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC01MnB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZnVsbC1oYWxmIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAuNzVzICRlYXNlLW91dC1jaXJjKTtcbiAgICBAaW5jbHVkZSBmaWx0ZXIoZ3JheXNjYWxlKDEwMCkpO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogNDcuNSU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIEBpbmNsdWRlIGZpbHRlcihncmF5c2NhbGUoMCkpO1xuICAgIH1cblxuICAgICYubGVmdC1zaWRlIHtcbiAgICAgICAgbGVmdDogMDtcbiAgICB9XG5cbiAgICAmLnJpZ2h0LXNpZGUge1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLWFuZC1kb3dufSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1MCU7XG4gICAgfVxufVxuXG4uZnVsbC1oYWxmLFxuLnBhbmVsIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xufVxuXG4ucGFuZWwtYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xufVxuXG4ucGFnZS13b3JrLXBhZ2VwaWxpbmcge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4iLCIub25lLWNvbCAucm93IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHJlbTtcblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tYW5kLWRvd259IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHJlbTtcbiAgICB9XG59XG5cbmZpZ3VyZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMDtcblxuICAgIGltZyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogODtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG5maWdjYXB0aW9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAtNTBweDtcbiAgICB6LWluZGV4OiA5O1xuICAgIHdpZHRoOiAzMDBweDtcbiAgICBwYWRkaW5nOiAwIDJyZW07XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgIGJvcmRlcjogNHB4IHNvbGlkICRibGFjaztcblxuICAgIGgzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICAmLnJpZ2h0LWZpZ2NhcHRpb24ge1xuICAgICAgICByaWdodDogLTIwMHB4O1xuXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tYW5kLWRvd259IHtcbiAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5sZWZ0LWZpZ2NhcHRpb24ge1xuICAgICAgICBsZWZ0OiAtMjAwcHg7XG5cbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS1hbmQtZG93bn0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tYW5kLWRvd259IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3R0b206IGF1dG87XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICB9XG59XG4iLCIuZGVtb3Mge1xuICAgIGgxIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNHJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICArIHAge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGgyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuY3VycmVudC1wYWdlIHtcbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmRlbW8tbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIH1cblxuICAgIGE6aG92ZXIgaW1nIHtcbiAgICAgICAgb3BhY2l0eTogLjU7XG4gICAgfVxuXG4gICAgLnNjcmVlbnMge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAuNzVzICRlYXNlLW91dC1jaXJjKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZTNkKDAsIDMwMHB4LCAxcHgpKTtcbiAgICAgICAgb3BhY2l0eTogMDtcblxuICAgICAgICAmLmxvYWRlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlM2QoMCwgMCwgMXB4KSk7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUE2REU7QUFPRjs7OzsyRkFJMkY7QWlGeEUzRixBQUFBLE9BQU8sQUFDRixJQUFLLENBQUEsQUFBQSxjQUFjLEVBQUU7RUFDbEIsT0FBTyxFQUFFLE1BQU87Q0FTbkI7O0FBUEcsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUcsS0FBSztFQUoxQyxBQUFBLE9BQU8sQUFDRixJQUFLLENBQUEsQUFBQSxjQUFjLEVBQUU7SUFJZCxPQUFPLEVBQUUsTUFBTztHQU12Qjs7O0FBSEcsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUcsS0FBSztFQVIxQyxBQUFBLE9BQU8sQUFDRixJQUFLLENBQUEsQUFBQSxjQUFjLEVBQUU7SUFRZCxPQUFPLEVBQUUsTUFBTztHQUV2Qjs7O0FBWEwsQUFBQSxPQUFPLEFBYUYsY0FBYyxDQUFDO0VBQ1osY0FBYyxFQUFFLElBQUs7Q0FTeEI7O0FBUEcsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUcsS0FBSztFQWhCMUMsQUFBQSxPQUFPLEFBYUYsY0FBYyxDQUFDO0lBSVIsY0FBYyxFQUFFLElBQUs7R0FNNUI7OztBQUhHLE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFHLEtBQUs7RUFwQjFDLEFBQUEsT0FBTyxBQWFGLGNBQWMsQ0FBQztJQVFSLGNBQWMsRUFBRSxJQUFLO0dBRTVCOzs7QUFHTCxBQUFBLFFB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QUFFLElBQUs7R0FFbEI7OztBQUVELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFHLEtBQUs7RUFqQ3RDLEFBQUEsVUFBVSxDQUFDO0lBa0NILFFBQVEsRUFBRSxRQUFTO0lBQ25CLE1BQU0sRUFBRSxJQUFLO0lBQ2IsS0FBSyxFQUFFLElBQUs7SUFDWixVQUFVLEVBQUUsTUFBTztJQUNuQixNQUFNLEVBQUUsQ0FBRTtHQUVqQjs7O0F2RzBLRDs7OzsyRkFJMkY7QXdHek8zRixBQUNJLE1BREUsQ0FDRixFQUFFLENBQUM7RUFDQyxVQUFVLEVBQUUsSUFBSztFQUNqQixhQUFhLEVBQUUsQ0FBRTtDQUtwQjs7QUFSTCxBQUtVLE1BTEosQ0FDRixFQUFFLEdBSUksQ0FBQyxDQUFDO0VBQ0EsVUFBVSxFQUFFLENBQUU7Q0FDakI7O0FBUFQsQUFVSSxNQVZFLENBVUYsRUFBRSxDQUFDO0VBQ0MsYUFBYSxFQUFFLENBQUU7Q0FDcEI7O0FBWkwsQUFjSSxNQWRFLENBY0YsYUFBYSxBQUNSLFFBQVEsRUFmakIsQUFjSSxNQWRFLENBY0YsYUFBYSxBQUVSLE9BQU8sQ0FBQztFQUNMLE9BQU8sRUFBRSxJQUFLO0NBQ2pCOztBQWxCVCxBQXFCSSxNQXJCRSxDQXFCRixVQUFVLENBQUM7RUFDUCxPQUFPLEVBQUUsS0FBTTtFQUNmLGFBQWEsRUFBRSxJQUFLO0NBQ3ZCOztBQXhCTCxBQTBCWSxNQTFCTixDQTBCRixDQUFDLEFBQUEsTUFBTSxDQUFDLEdBQUcsQ0FBQztFQUNSLE9BQU8sRUFBRSxFQUFHO0NBQ2Y7O0FBNUJMLEFBOEJJLE1BOUJFLENBOEJGLFFBQVEsQ0FBQztFakNLTCxrQkFBb0IsRWlDSkEsR0FBRyxDQUFDLEtBQUksQzdCUmhCLG1DQUFZO0VKZ0J4QixlQUFpQixFaUNSRyxHQUFHLENBQUMsS0FBSSxDN0JSaEIsbUNBQVk7RUo0QnhCLFVBQVksRWlDcEJRLEdBQUcsQ0FBQyxLQUFJLEM3QlJoQixtQ0FBWTtFSll4QixpQkFBb0IsRWlDSEQsMEJBQVc7RWpDTzlCLGNBQWlCLEVpQ1BFLDBCQUFXO0VqQ1c5QixhQUFnQixFaUNYRywwQkFBVztFakNlOUIsWUFBZSxFaUNmSSwwQkFBVztFakNtQjlCLFNBQVksRWlDbkJPLDBCQUFXO0VBQzlCLE9BQU8sRUFBRSxDQUFFO0NBTWQ7O0FBdkNMLEFBOEJJLE1BOUJFLENBOEJGLFFBQVEsQUFLSCxPQUFPLENBQUM7RWpDQVQsaUJBQW9CLEVpQ0NHLHNCQUFXO0VqQ0dsQyxjQUFpQixFaUNITSxzQkFBVztFakNPbEMsYUFBZ0IsRWlDUE8sc0JBQVc7RWpDV2xDLFlBQWUsRWlDWFEsc0JBQVc7RWpDZWxDLFNBQVksRWlDZlcsc0JBQVc7RUFDOUIsT0FBTyxFQUFFLENBQUU7Q0FDZCIsIm5hbWVzIjpbXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */
