@charset "UTF-8";
/**
* On all colored backgrounds we use 100% black text
* @see T21103 - Farver på tekst og ikoner
 */
/* HEADER ANIMATIONS */
/* EXTRA STYLES */
.swatches__item {
  border-radius: 50%;
  overflow: hidden;
}

.langmenu__option:not(.active), .langmenu__option + .langmenu__option:before, .block ul li,
.block ol li, .accordon--simple .accordon__header, .textbox__event_location,
.textbox__event_date, .textbox > span, .footer__menu--secondary, p, .footer__colophon p, .block ul li a.link,
.block ol li a.link, .breadcrumbs__container .breadcrumbs ul, .extnav a, h5,
h6, h4, article p a.link {
  color: rgba(48, 42, 56, 0.75);
}

/* BASE STYLES */
.listings__heading h2, h1,
.h1 {
  font-size: 1.953rem;
  line-height: 120%;
  letter-spacing: -0.04em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

.accordon--simple .accordon__item.is-active .accordon__header, .branding .site-name, .footer__menu, .listmenu > ul > li .menu-heading-wrap > a, h2,
.h2 {
  font-size: 1.563rem;
  line-height: 120%;
  letter-spacing: -0.02em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

.footer__heading, .block ul li a.link.link--large,
.block ol li a.link.link--large, .accordon .accordon__item .accordon__header, .searchbar input, h3,
.h3, article p a.link.link--large {
  font-size: 1.25rem;
  line-height: 120%;
  letter-spacing: -0.02em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

.footer__colophon p, .block ul li a.link,
.block ol li a.link, .breadcrumbs__container .breadcrumbs ul, .extnav a, h5,
h6, h4, article p a.link {
  font-size: 1.1rem;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
  line-height: 120%;
  letter-spacing: 0em;
}

:root {
  --rigsarkivet--font-size: 15px;
  font-size: var(--rigsarkivet--font-size);
}
@media (max-width: 1023px) {
  :root {
    --rigsarkivet--font-size: 14px;
  }
}

.footer__menu--secondary, body {
  font-size: var(--rigsarkivet--font-size);
  line-height: 120%;
  letter-spacing: -0.02em;
}

.block ul li,
.block ol li, .accordon--simple .accordon__header, .textbox__event_location,
.textbox__event_date, .textbox > span, .footer__menu--secondary, p {
  margin: 0;
  font-size: 1rem;
  line-height: 120%;
}

:root {
  /*Max width*/
  --max-width: 1400px;
  /*Spacers*/
  --space200h: 14.285714285714286vw;
  --space100h: 7.142857142857143vw;
  --space50h: 3.571428571428571vw;
  --space25h: 1.563rem;
  --space15h: 1rem;
}

@media only screen and (min-width: 1400px) {
  :root {
    --space200h: calc(var(--max-width)/7);
    --space100h: calc(var(--max-width)/14);
    --space50h: calc(var(--max-width)/28);
  }
}
/*! critical:start! */
html {
  overflow-x: hidden;
}

body {
  font-family: "Ra-Harald", Arial, sans-serif;
  background-color: #eeeee7;
}

* {
  word-wrap: break-word;
  overflow-wrap: break-word;
  hyphens: none;
}

strong {
  font-family: "Ra-Harald-Semibold", Arial, sans-serif;
  font-weight: 600;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  hyphens: auto;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

small {
  font-size: 0.8rem;
}

.icon {
  width: 1em;
  height: 1em;
  font-size: 25px;
}
@media (max-width: 767px) {
  .icon {
    font-size: 21px;
  }
}

.icon--arrow {
  font-size: 15px;
}
@media (max-width: 767px) {
  .icon--arrow {
    font-size: 11px;
  }
}

.icon--search {
  font-size: 20px;
}
@media (max-width: 767px) {
  .icon--search {
    font-size: 15px;
  }
}

.spacerH100 {
  height: var(--space100h);
}

.spacerH50 {
  height: var(--space50h);
}

.spacerH25 {
  height: var(--space25h);
}

.spacerH15 {
  height: var(--space15h);
}

.spacerW100 {
  width: var(--space100h);
}

.spacerW15 {
  width: var(--space15h);
}

body {
  color: #302a38;
  margin: 0;
}

main[role=main] {
  position: relative;
  background-color: inherit;
  max-width: var(--max-width);
  margin-top: var(--space25h);
  margin-left: auto;
  margin-right: auto;
}
main[role=main] .navigation {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 2;
}

article .table {
  color: inherit;
  margin-top: var(--space25h);
  margin-bottom: var(--space25h);
}
article .table:first-child {
  margin-top: 0;
}
article .table + * {
  margin-top: var(--space25h);
}
@media (max-width: 767px) {
  article .table {
    width: 100%;
    overflow-x: auto;
  }
  article .table > .table__wrap {
    min-width: 100%;
    width: 400px;
  }
}
article p a {
  position: relative;
  transition: all 0.5s;
  text-decoration: underline;
}
article p a:hover {
  color: #302a38;
}
.palette--5 article p a:hover,
.palette--6 article p a:hover {
  color: #ceceba;
}
.palette--5 svg,
.palette--6 svg {
  color: #eeeee7;
}

p img {
  width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}
a:focus, a:active {
  text-decoration: underline;
}

ul {
  padding-left: 0;
  list-style: none;
}

.mce-content-body ul {
  list-style-type: disc !important;
  padding-left: 20px !important;
}
.mce-content-body ol {
  list-style-type: decimal !important;
  padding-left: 20px !important;
}
.mce-content-body a {
  text-decoration: underline;
}

ul.ul--hyphened li {
  padding-left: var(--space25h);
  position: relative;
}
ul.ul--hyphened li:before {
  content: "–";
  display: inline-block;
  position: absolute;
  top: 0px;
  left: 0px;
}

picture {
  display: block;
}
picture img {
  max-width: 100%;
  height: auto;
}

figure {
  margin: 0;
  padding: 0;
}

button {
  background: none;
  border: none;
  border-radius: 0;
  cursor: pointer;
}

input[type=search] {
  border: none;
  padding-left: 0;
  font-family: inherit;
  color: inherit;
  font-weight: 600;
  letter-spacing: -1px;
  background-color: inherit;
  /* clears the ‘X’ from Internet Explorer */
  /* clears the ‘X’ from Chrome */
}
input[type=search]:focus {
  border: none;
  outline: none;
}
input[type=search]::placeholder {
  color: inherit;
}
input[type=search]::-ms-clear {
  display: none;
  width: 0;
  height: 0;
}
input[type=search]::-ms-reveal {
  display: none;
  width: 0;
  height: 0;
}
input[type=search]::-webkit-search-decoration, input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-results-button, input[type=search]::-webkit-search-results-decoration {
  display: none;
}

.visually-hidden {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.extra {
  /* This will be retained */
  position: relative;
  display: none;
}

/* EXTRA CLASSES */
.swatches {
  list-style: none;
  padding: 0;
}

.swatches__item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 6em;
  width: 6em;
  color: white;
}

.borderline1 {
  border-bottom: 2px solid #302a38;
}

.borderline2 {
  border-bottom: 2px solid rgba(48, 42, 56, 0.2);
}

.borderline3 {
  border-bottom: 2px solid rgba(48, 42, 56, 0.05);
}

.color--black {
  background-color: #000000;
}

.color--dark {
  background-color: #302a38;
}

.color--dark-alt {
  background-color: #757177;
}

.color--light {
  background-color: #eeeee7;
}

.color--yellow {
  background-color: #f4bd2c;
}

.color--green {
  background-color: #47bf80;
}

.color--red {
  background-color: #f16e4b;
}

.color--blue {
  background-color: #78bee7;
}

.color--red-alt {
  background-color: #69271f;
}

.color--blue-alt {
  background-color: #18598a;
}

.palette {
  background-color: inherit;
}
.palette.palette--1 {
  background-color: #f4bd2c;
  color: #302a38;
}
.palette.palette--1 ul li,
.palette.palette--1 ol li,
.palette.palette--1 p,
.palette.palette--1 h3 {
  color: #302a38;
}
.palette.palette--2 {
  background-color: #47bf80;
  color: #302a38;
}
.palette.palette--2 ul li,
.palette.palette--2 ol li,
.palette.palette--2 p,
.palette.palette--2 h3 {
  color: #302a38;
}
.palette.palette--3 {
  background-color: #f16e4b;
  color: #302a38;
}
.palette.palette--3 ul li,
.palette.palette--3 ol li,
.palette.palette--3 p,
.palette.palette--3 h3 {
  color: #302a38;
}
.palette.palette--4 {
  background-color: #78bee7;
  color: #302a38;
}
.palette.palette--4 ul li,
.palette.palette--4 ol li,
.palette.palette--4 p,
.palette.palette--4 h3 {
  color: #302a38;
}
.palette.palette--5 {
  background-color: #69271f;
  color: #eeeee7;
}
.palette.palette--5 ul li,
.palette.palette--5 ol li,
.palette.palette--5 p,
.palette.palette--5 h3 {
  color: #eeeee7;
}
.palette.palette--6 {
  background-color: #18598a;
  color: #eeeee7;
}
.palette.palette--6 ul li,
.palette.palette--6 ol li,
.palette.palette--6 p,
.palette.palette--6 h3 {
  color: #eeeee7;
}

.palette.palette--1 ul li,
.palette.palette--1 ol li,
.palette.palette--1 p, .palette.palette--2 ul li,
.palette.palette--2 ol li,
.palette.palette--2 p, .palette.palette--3 ul li,
.palette.palette--3 ol li,
.palette.palette--3 p, .palette.palette--4 ul li,
.palette.palette--4 ol li,
.palette.palette--4 p, .palette.palette--5 ul li,
.palette.palette--5 ol li,
.palette.palette--5 p, .palette.palette--6 ul li,
.palette.palette--6 ol li,
.palette.palette--6 p {
  opacity: 1;
}

/**
* CONTENT AREA
**/
.content {
  min-height: 35.7142857143vw;
}
@media (max-width: 767px) {
  .content {
    min-height: 71.4285714286vw;
  }
}

.print_page_link {
  margin-top: 15px !important;
  cursor: pointer;
}

/*! critical:end */
/**
* VENDORS
**/
/*!
 * Accordion v3.1.1
 * Simple accordion created in pure Javascript.
 * https://github.com/michu2k/Accordion
 *
 * Copyright (c) Michał Strumpf
 * Published under MIT License
 */
/* Note: renamed to .accordion to avoid conflicts */
.accordon__item {
  box-sizing: border-box;
}
.accordon__item .accordon__header {
  margin: 0;
  padding: 0;
}
.accordon__item .accordon__trigger {
  color: #302a38;
  text-align: left;
  width: 100%;
  padding: 10px 30px 10px 10px;
  display: block;
  cursor: pointer;
  background-color: transparent;
  transition: color 0.25s ease;
  position: relative;
  text-decoration: none;
  margin: 0;
  border: 0;
}
.accordon__item .accordon__trigger span {
  opacity: 1 !important;
}
.accordon__item .accordon__panel {
  overflow: hidden;
  transition-property: height, visibility;
  transition-timing-function: ease;
}
.accordon__item .accordon__panel .accordon__text {
  color: #302a38;
  padding: 10px;
  margin: 0;
}
.accordon__item.js-enabled .accordon__panel {
  visibility: hidden;
}
.accordon__item.is-active .accordon__panel {
  visibility: visible;
}
.accordon__item.is-active > .accordon__header .accordon__trigger::after {
  content: "–";
}

.ss-main {
  position: relative;
  display: inline-block;
  user-select: none;
  color: #666666;
  width: 100%;
}
.ss-main .ss-single-selected {
  display: flex;
  cursor: pointer;
  width: 100%;
  height: 30px;
  padding: 6px;
  border: 1px solid #dcdee2;
  border-radius: 4px;
  background-color: #ffffff;
  outline: 0;
  box-sizing: border-box;
  transition: background-color 0.2s;
}
.ss-main .ss-single-selected.ss-disabled {
  background-color: #dcdee2;
  cursor: not-allowed;
}
.ss-main .ss-single-selected.ss-open-above {
  border-top-left-radius: 0px;
  border-top-right-radius: 0px;
}
.ss-main .ss-single-selected.ss-open-below {
  border-bottom-left-radius: 0px;
  border-bottom-right-radius: 0px;
}
.ss-main .ss-single-selected .placeholder {
  display: flex;
  flex: 1 1 100%;
  align-items: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: left;
  width: calc(100% - 30px);
  line-height: 1em;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.ss-main .ss-single-selected .placeholder * {
  display: flex;
  align-items: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  width: auto;
}
.ss-main .ss-single-selected .placeholder .ss-disabled {
  color: #dedede;
}
.ss-main .ss-single-selected .ss-deselect {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 1 auto;
  margin: 0 6px 0 6px;
  font-weight: bold;
}
.ss-main .ss-single-selected .ss-deselect.ss-hide {
  display: none;
}
.ss-main .ss-single-selected .ss-arrow {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 1 auto;
  margin: 0 6px 0 6px;
}
.ss-main .ss-single-selected .ss-arrow span {
  border: solid #666666;
  border-width: 0 2px 2px 0;
  display: inline-block;
  padding: 3px;
  transition: transform 0.2s, margin 0.2s;
}
.ss-main .ss-single-selected .ss-arrow span.arrow-up {
  transform: rotate(-135deg);
  margin: 3px 0 0 0;
}
.ss-main .ss-single-selected .ss-arrow span.arrow-down {
  transform: rotate(45deg);
  margin: -3px 0 0 0;
}
.ss-main .ss-multi-selected {
  display: flex;
  flex-direction: row;
  cursor: pointer;
  min-height: 30px;
  width: 100%;
  padding: 0 0 0 3px;
  border: 1px solid #dcdee2;
  border-radius: 4px;
  background-color: #ffffff;
  outline: 0;
  box-sizing: border-box;
  transition: background-color 0.2s;
}
.ss-main .ss-multi-selected.ss-disabled {
  background-color: #dcdee2;
  cursor: not-allowed;
}
.ss-main .ss-multi-selected.ss-disabled .ss-values .ss-disabled {
  color: #666666;
}
.ss-main .ss-multi-selected.ss-disabled .ss-values .ss-value .ss-value-delete {
  cursor: not-allowed;
}
.ss-main .ss-multi-selected.ss-open-above {
  border-top-left-radius: 0px;
  border-top-right-radius: 0px;
}
.ss-main .ss-multi-selected.ss-open-below {
  border-bottom-left-radius: 0px;
  border-bottom-right-radius: 0px;
}
.ss-main .ss-multi-selected .ss-values {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  flex: 1 1 100%;
  width: calc(100% - 30px);
}
.ss-main .ss-multi-selected .ss-values .ss-disabled {
  display: flex;
  padding: 4px 5px;
  margin: 2px 0px;
  line-height: 1em;
  align-items: center;
  width: 100%;
  color: #dedede;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@keyframes scaleIn {
  0% {
    transform: scale(0);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
@keyframes scaleOut {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    transform: scale(0);
    opacity: 0;
  }
}
.ss-main .ss-multi-selected .ss-values .ss-value {
  display: flex;
  user-select: none;
  align-items: center;
  font-size: 12px;
  padding: 3px 5px;
  margin: 3px 5px 3px 0px;
  color: #ffffff;
  background-color: #5897fb;
  border-radius: 4px;
  animation-name: scaleIn;
  animation-duration: 0.2s;
  animation-timing-function: ease-out;
  animation-fill-mode: both;
}
.ss-main .ss-multi-selected .ss-values .ss-value.ss-out {
  animation-name: scaleOut;
  animation-duration: 0.2s;
  animation-timing-function: ease-out;
}
.ss-main .ss-multi-selected .ss-values .ss-value .ss-value-delete {
  margin: 0 0 0 5px;
  cursor: pointer;
}
.ss-main .ss-multi-selected .ss-add {
  display: flex;
  flex: 0 1 3px;
  margin: 9px 12px 0 5px;
}
.ss-main .ss-multi-selected .ss-add .ss-plus {
  display: flex;
  justify-content: center;
  align-items: center;
  background: #666666;
  position: relative;
  height: 10px;
  width: 2px;
  transition: transform 0.2s;
}
.ss-main .ss-multi-selected .ss-add .ss-plus:after {
  background: #666666;
  content: "";
  position: absolute;
  height: 2px;
  width: 10px;
  left: -4px;
  top: 4px;
}
.ss-main .ss-multi-selected .ss-add .ss-plus.ss-cross {
  transform: rotate(45deg);
}

.ss-content {
  position: absolute;
  width: 100%;
  margin: -1px 0 0 0;
  box-sizing: border-box;
  border: solid 1px #dcdee2;
  z-index: 1010;
  background-color: #ffffff;
  transform-origin: center top;
  transition: transform 0.2s, opacity 0.2s;
  opacity: 0;
  transform: scaleY(0);
}
.ss-content.ss-open {
  display: block;
  opacity: 1;
  transform: scaleY(1);
}
.ss-content .ss-search {
  display: flex;
  flex-direction: row;
  padding: 8px 8px 6px 8px;
}
.ss-content .ss-search.ss-hide {
  height: 0px;
  opacity: 0;
  padding: 0px 0px 0px 0px;
  margin: 0px 0px 0px 0px;
}
.ss-content .ss-search.ss-hide input {
  height: 0px;
  opacity: 0;
  padding: 0px 0px 0px 0px;
  margin: 0px 0px 0px 0px;
}
.ss-content .ss-search input {
  display: inline-flex;
  font-size: inherit;
  line-height: inherit;
  flex: 1 1 auto;
  width: 100%;
  min-width: 0px;
  height: 30px;
  padding: 6px 8px;
  margin: 0;
  border: 1px solid #dcdee2;
  border-radius: 4px;
  background-color: #ffffff;
  outline: 0;
  text-align: left;
  box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -webkit-appearance: textfield;
}
.ss-content .ss-search input::placeholder {
  color: #8a8a8a;
  vertical-align: middle;
}
.ss-content .ss-search input:focus {
  box-shadow: 0 0 5px #5897fb;
}
.ss-content .ss-search .ss-addable {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  font-size: 22px;
  font-weight: bold;
  flex: 0 0 30px;
  height: 30px;
  margin: 0 0 0 8px;
  border: 1px solid #dcdee2;
  border-radius: 4px;
  box-sizing: border-box;
}
.ss-content .ss-addable {
  padding-top: 0px;
}
.ss-content .ss-list {
  max-height: 200px;
  overflow-x: hidden;
  overflow-y: auto;
  text-align: left;
}
.ss-content .ss-list .ss-optgroup .ss-optgroup-label {
  padding: 6px 10px 6px 10px;
  font-weight: bold;
}
.ss-content .ss-list .ss-optgroup .ss-option {
  padding: 6px 6px 6px 25px;
}
.ss-content .ss-list .ss-optgroup-label-selectable {
  cursor: pointer;
}
.ss-content .ss-list .ss-optgroup-label-selectable:hover {
  color: #ffffff;
  background-color: #5897fb;
}
.ss-content .ss-list .ss-option {
  padding: 6px 10px 6px 10px;
  cursor: pointer;
  user-select: none;
}
.ss-content .ss-list .ss-option * {
  display: inline-block;
}
.ss-content .ss-list .ss-option:hover, .ss-content .ss-list .ss-option.ss-highlighted {
  color: #ffffff;
  background-color: #5897fb;
}
.ss-content .ss-list .ss-option.ss-disabled {
  cursor: not-allowed;
  color: #dedede;
  background-color: #ffffff;
}
.ss-content .ss-list .ss-option:not(.ss-disabled).ss-option-selected {
  color: #666666;
  background-color: rgba(88, 151, 251, 0.1);
}
.ss-content .ss-list .ss-option.ss-hide {
  display: none;
}
.ss-content .ss-list .ss-option .ss-search-highlight {
  background-color: #fffb8c;
}

/** OVERRIDES **/
.ss-main {
  color: inherit;
}
.ss-main .ss-single-selected {
  border: 0;
  border-radius: 0;
  padding-left: 0px;
  padding-right: 0px;
  padding-bottom: 14px;
  height: auto;
}
.ss-main .ss-single-selected:not(.ss-open-below) {
  border-bottom: 2px solid currentColor;
}
.ss-main .ss-single-selected .placeholder {
  font-weight: bold;
}
.ss-main .ss-single-selected .ss-arrow span {
  padding: 4px;
}

.ss-content {
  border: 0;
  border-radius: 0;
  border-bottom: 2px solid currentColor;
}
.ss-content .ss-list .ss-option {
  padding-left: 0px;
  padding-right: 0px;
}
.ss-content .ss-list .ss-option:last-child {
  margin-bottom: 14px;
}

/**
* COMPONENTS
**/
.icon.icon--bars {
  width: auto;
  height: auto;
}

button:hover .icon--hoverfx.icon--arrow line {
  transform: scaleX(1.5);
}
button:hover .icon--hoverfx.icon--arrow path {
  transform: translateX(10px);
}
.icon--hoverfx.icon--arrow line {
  transition: transform 0.5s;
  transform: scaleX(1);
}
.icon--hoverfx.icon--arrow path {
  transition: transform 0.5s;
  transform: translateX(0);
}

.content-wrapper div.print-page,
.content-wrapper span.print-page {
  padding-left: var(--space100h);
  padding-right: var(--space100h);
  display: flex;
  justify-content: right;
  cursor: pointer;
}
@media (max-width: 767px) {
  .content-wrapper div.print-page,
.content-wrapper span.print-page {
    padding-left: 0;
  }
}

.site-footer span.print-page {
  max-width: var(--max-width);
  margin-left: var(--space100h);
  margin-right: var(--space100h);
  display: flex;
  justify-content: flex-end;
  align-items: center;
  cursor: pointer;
}
@media (max-width: 767px) {
  .site-footer span.print-page {
    padding-left: 0;
    padding-right: 0;
  }
}

[role=menuitem] {
  text-decoration: none;
  color: inherit;
}

.navigations {
  position: sticky;
  top: var(--space25h);
  left: 0;
  width: 21.4285714286%;
  z-index: 1;
  height: 0;
}
.navigations .sticky {
  top: var(--space25h);
}
.navigations.content__navigations {
  transition: opacity 0.25s;
  background-color: #eeeee7;
}
.navigations.content__navigations.fade-out {
  animation: kf-fade 0.25s forwards;
}
.navigations.content__navigations.fade-in {
  opacity: 1;
}
.navigations.content__navigations.hidden {
  opacity: 0;
  visibility: hidden;
}
@keyframes kf-fade {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@media (max-width: 767px) {
  .navigations {
    position: relative;
    width: 100%;
    z-index: 50;
    height: auto;
  }
}

.listmenu > ul {
  margin: 0;
  display: flex;
}
.listmenu > ul > li {
  width: 50%;
  flex-grow: 1;
}
.listmenu > ul > li .menu-heading-wrap > h2 {
  margin: 0;
}
.listmenu > ul > li .menu-heading-wrap > a {
  font-size: 1.25rem !important;
}
.listmenu > ul > li ul {
  margin-top: var(--space15h);
}
.listmenu > ul > li ul li + li {
  margin-top: 10px;
}
@media (max-width: 767px) {
  .listmenu > ul {
    flex-direction: column;
  }
  .listmenu > ul > li {
    width: 100%;
  }
  .listmenu > ul > li + li {
    margin-top: var(--space50h);
  }
}

.footer__menu {
  font-size: 1.563rem;
}
.footer__menu ul {
  margin: 0;
}

.footer__menu--secondary {
  font-weight: normal;
}
.footer__menu--secondary a {
  font-size: inherit;
}
.footer__menu--secondary li + li {
  margin-top: 0.5em;
}

@media (max-width: 767px) {
  .servicemenu .servicemenu__item + .servicemenu__item {
    margin-top: 27px;
  }
}

.extnav h4 {
  margin: 0;
  opacity: 1;
}
.extnav ul {
  margin: 0;
}
.extnav a {
  font-size: 0.8rem !important;
}

.langmenu {
  display: flex;
}

.langmenu__option {
  text-transform: uppercase;
  font-size: 10px;
  line-height: 12px;
  font-weight: 600;
  color: inherit;
}
.langmenu__option + .langmenu__option {
  margin-left: 5px;
}
.langmenu__option + .langmenu__option:before {
  content: "/";
  display: inline-block;
  margin-right: 5px;
}
.langmenu__option:not(.active) {
  cursor: pointer;
}

.toc {
  display: flex;
  width: 100%;
  background-color: #eeeee7;
}
@media all and (width: 768px) {
  .toc {
    width: 100%;
    max-width: 210px !important;
  }
}
.toc ul {
  padding: 0;
  width: 100%;
}
@media (max-width: 767px) {
  .toc {
    width: 100%;
    top: 0;
    left: 0;
    z-index: 300;
    background-color: #eeeee7;
  }
  .toc ul {
    display: block;
    width: 100%;
    white-space: nowrap;
    overflow-x: auto;
    margin: 0;
    padding-top: var(--space25h);
    padding-bottom: var(--space25h);
  }
  .toc ul:before {
    content: "";
    display: inline-block;
    width: 14.2857142857vw;
    margin-right: -4px;
  }
}

@media all and (width: 768px) {
  .toc__item {
    padding-left: 54px !important;
  }
}
.toc__item button {
  padding: 0;
  text-align: left;
}
.toc__item button:focus {
  background: #eeeee7;
}
@media (max-width: 767px) {
  .toc__item {
    margin-right: var(--space50h);
    display: inline-block;
    position: relative;
  }
  .toc__item:last-child {
    padding-right: 0;
  }
  .toc__item:before {
    display: none;
  }
  .toc__item:after {
    content: "";
    position: absolute;
    height: 2px;
    bottom: -6px;
    left: 0;
    opacity: 0;
    transform: translateX(-15px);
    width: var(--space50h);
    transition: all 0.35s ease-in;
  }
  .toc__item.toc__item--active * {
    font-family: "Ra-Harald-Semibold", Arial, sans-serif;
    font-weight: 600;
  }
  .toc__item.toc__item--active:after {
    background-color: currentColor;
    transform: translateX(0);
    opacity: 0.9;
  }
}
@media (min-width: 768px) {
  .toc__item {
    padding-left: 33.3333333333%;
    position: relative;
  }
  .toc__item:before {
    content: "";
    display: block;
    width: 26px;
    position: absolute;
    height: 2px;
    top: 0.5em;
    left: calc(33% - 50px);
    background-color: currentColor;
    opacity: 0;
    transform: translateX(-100%);
    transition: all 0.35s ease-in;
  }
  .toc__item.toc__item--active:before {
    opacity: 1;
    transform: translateX(0px);
  }
  .toc__item + .toc__item {
    margin-top: 0.5em;
  }
}

.breadcrumbs__container {
  margin-top: var(--space50h);
  margin-left: var(--space50h);
  margin-right: var(--space50h);
  display: flex;
  align-items: center;
}
.breadcrumbs__container--back {
  width: 16.6666666667%;
}
.breadcrumbs__container .breadcrumbs {
  padding-left: var(--space50h);
  width: var(--space200h);
}
.breadcrumbs__container .breadcrumbs ul {
  display: flex;
  flex-direction: column;
  margin-top: 0;
  padding-bottom: var(--space15h);
  font-size: 0.8rem !important;
}
@media (max-width: 767px) {
  .breadcrumbs__container .breadcrumbs {
    padding: 0 !important;
    width: unset;
  }
  .breadcrumbs__container .breadcrumbs ul {
    margin: 0;
    flex-direction: row;
    overflow-x: auto;
    padding: 0;
  }
}
.breadcrumbs__container .breadcrumbs__item + .breadcrumbs__item a {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
}
.breadcrumbs__container .breadcrumbs__item + .breadcrumbs__item a:before {
  content: "/";
  margin-right: 0.5em;
}
.breadcrumbs__container .breadcrumbs__item:last-child a {
  pointer-events: none;
}
@media (max-width: 767px) {
  .breadcrumbs__container .breadcrumbs__item {
    margin-right: var(--space25h);
  }
  .breadcrumbs__container .breadcrumbs__item:last-child {
    margin-right: 0;
  }
}

.branding {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  max-height: 50px;
  /*   .btn {
    width: math.percentage(math.div(4, 6));
  } */
  /*   @include media(">=tablet") {
    .icon--logo {
      transform: translate(0%, -45%);
    }
  } */
}
.branding .logo {
  width: 33.3333333333%;
}
.branding .site-name {
  width: 66.6666666667%;
  font-size: 1.25rem;
}
.branding .site-name .site-name-icon {
  width: 25%;
  transform: translate(0%, 45%);
}
@media (max-width: 767px) {
  .branding {
    /*     .icon--logo {
      transform: translate(0px, -60%);
    } */
  }
  .branding .logo {
    width: 25%;
  }
  .branding .btn {
    width: 75%;
  }
  .branding .site-name {
    width: 75%;
  }
  .branding .site-name .site-name-icon {
    width: 33.3333333333%;
    transform: translate(20%, 40%);
  }
}

[role=link],
[role=button] {
  color: inherit;
  text-decoration: none;
  padding: 0;
}

button {
  outline: none;
  font-family: inherit;
  font-size: inherit;
}
button:focus-visible {
  outline: 1px auto #000;
}

.link-button a {
  text-decoration: none;
  padding: 5px;
  border: 2px solid #302a38;
  color: #302a38;
  line-height: 1.5;
  display: flex;
}
.link-button a::after {
  padding-left: 15px;
  content: "";
  display: inline-flex;
  background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNiAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTcuODUxODEgMUwxMy45OTk5IDcuMTQ4MUw4LjE0MTM4IDEzLjAwNjYiIHN0cm9rZT0iIzMwMkEzOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CjxsaW5lIHgxPSIxNCIgeTE9IjcuMTQ4MTkiIHgyPSItOC43NDIyOGUtMDgiIHkyPSI3LjE0ODE5IiBzdHJva2U9IiMzMDJBMzgiIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4K");
  width: 16px;
  height: 100%;
  background-position: center right;
  background-repeat: no-repeat;
  background-size: auto;
}
@media all and (max-width: 1400px) {
  .link-button a::after {
    display: none;
  }
}
@media (max-width: 767px) {
  .link-button a::after {
    padding-left: 10px;
  }
}

.palette--5 .link-button a,
.palette--6 .link-button a {
  border: 2px solid #eeeee7;
  color: #eeeee7 !important;
}
.palette--5 .link-button a::after,
.palette--6 .link-button a::after {
  filter: invert(1);
}
.palette--5 svg.icon path,
.palette--6 svg.icon path {
  stroke: #eeeee7 !important;
}

.btn {
  color: inherit;
}

.menu__item {
  text-decoration: none;
  display: inline-flex;
  flex-direction: column;
  /* arrow icon with hover animation */
}
.menu__item span {
  font-weight: 600;
  font-family: "Ra-Harald-Semibold", Arial, sans-serif;
}
.menu__item .icon--arrow {
  overflow: visible;
  width: 1em;
  height: 1em;
  margin-top: 0.5em;
}
.menu__item .icon--arrow line,
.menu__item .icon--arrow path {
  transition: transform 0.5s;
}
.menu__item .icon--arrow line {
  transform: scaleX(1);
}
.menu__item .icon--arrow path {
  transform: translateX(0);
}
.menu__item:hover .icon--arrow line {
  transform: scaleX(1.5);
}
.menu__item:hover .icon--arrow path {
  transform: translateX(50%);
}
.menu__item.menu__item--active:after {
  content: "";
  width: 100%;
  height: 1em;
  border-bottom: 2px solid #302a38;
}
@media (max-width: 767px) {
  .menu__item {
    flex-direction: row;
    justify-content: space-between;
  }
  .menu__item.menu__item--active:after {
    display: none;
  }
}

@keyframes bar1 {
  0% {
    transform: translateX(0px);
  }
  50% {
    transform: translateX(5px);
  }
  100% {
    transform: rotate(-45deg) translate(-1.5px, 3px);
  }
}
@keyframes bar2 {
  0% {
    transform: scaleX(1);
  }
  100% {
    transform: scaleX(0);
    opacity: 0;
  }
}
@keyframes bar3 {
  0% {
    transform: scaleX(1);
  }
  100% {
    transform: scaleX(0);
    opacity: 0;
  }
}
@keyframes bar4 {
  0% {
    transform: translateX(0px);
  }
  50% {
    transform: translateX(-5px);
  }
  100% {
    transform: rotate(45deg) translate(-4px, -8px);
  }
}
@keyframes bar1-out {
  0% {
    transform: rotate(-45deg) translate(-2px, 4px);
  }
  50% {
    transform: translateX(5px);
  }
  100% {
    transform: translateX(0px);
  }
}
@keyframes bar2-out {
  0% {
    transform: scaleX(0);
    opacity: 0;
  }
  100% {
    transform: scaleX(1);
    opacity: 1;
  }
}
@keyframes bar3-out {
  0% {
    transform: scaleX(0);
    opacity: 0;
  }
  100% {
    transform: scaleX(1);
    opacity: 1;
  }
}
@keyframes bar4-out {
  0% {
    transform: rotate(45deg) translate(-4px, -8px);
  }
  50% {
    transform: translateX(-5px);
  }
  100% {
    transform: translateX(0px);
  }
}
.btn--burger {
  border: none;
  outline: none;
  background: none;
  max-width: max-content;
  display: block;
  color: inherit;
  cursor: pointer;
}
.btn--burger .icon {
  display: block;
  position: relative;
  transition: all 0.5s;
  transform: rotate(0deg);
  pointer-events: none;
  color: inherit;
  fill: currentColor;
}
.btn--burger .icon .icon__path {
  position: relative;
}
.btn--burger .icon .icon__path.icon__path--2, .btn--burger .icon .icon__path.icon__path--3 {
  transform-origin: center;
}

@media (pointer : coarse) {
  .btn--burger.active .icon {
    transform: rotate(90deg);
  }
  .btn--burger.active .icon__path--1 {
    animation: ease 1s bar1 forwards;
  }
  .btn--burger.active .icon__path--2 {
    animation: ease 1s bar2 forwards;
  }
  .btn--burger.active .icon__path--3 {
    animation: ease 1s bar3 forwards;
  }
  .btn--burger.active .icon__path--4 {
    animation: ease 1s bar4 forwards;
  }
  .btn--burger.active .icon__path {
    animation-delay: 0.5s;
  }
  .btn--burger.deactivating .icon .icon__path--1 {
    animation: ease 1s bar1-out backwards;
  }
  .btn--burger.deactivating .icon .icon__path--2 {
    animation: ease 1s bar2-out backwards;
  }
  .btn--burger.deactivating .icon .icon__path--3 {
    animation: ease 1s bar3-out backwards;
  }
  .btn--burger.deactivating .icon .icon__path--4 {
    animation: ease 1s bar4-out backwards;
  }
}
@media (pointer : fine) {
  .btn--burger:hover .icon {
    transform: rotate(90deg);
  }
  .btn--burger.active .icon {
    transform: rotate(90deg);
  }
  .btn--burger.active .icon__path--1 {
    animation: ease 1s bar1 forwards;
  }
  .btn--burger.active .icon__path--2 {
    animation: ease 1s bar2 forwards;
  }
  .btn--burger.active .icon__path--3 {
    animation: ease 1s bar3 forwards;
  }
  .btn--burger.active .icon__path--4 {
    animation: ease 1s bar4 forwards;
  }
  .btn--burger.deactivating .icon .icon__path--1 {
    animation: ease 1s bar1-out backwards;
  }
  .btn--burger.deactivating .icon .icon__path--2 {
    animation: ease 1s bar2-out backwards;
  }
  .btn--burger.deactivating .icon .icon__path--3 {
    animation: ease 1s bar3-out backwards;
  }
  .btn--burger.deactivating .icon .icon__path--4 {
    animation: ease 1s bar4-out backwards;
  }
}
/*
.btn--burger {
  .icon {
    transform-origin: center;
    transform: rotate(0deg);
    transition: transform 0.5s;
  }
  &:hover {
    .icon {
      transform: rotate(90deg);
    }
  }
}
*/
.searchbar {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 32px;
  line-height: 25px;
  letter-spacing: -0.04em;
  font-weight: 600;
  border-bottom: 2px solid #302a38;
}
.searchbar :focus-within {
  background-color: #eeeee7;
}
.searchbar input {
  flex-grow: 1;
  width: 100%;
  color: #302a38;
  font-weight: 600;
  font-size: 1rem !important;
}
.searchbar.searchbar--small {
  font-size: 17px;
  line-height: 1;
  align-items: flex-start;
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .searchbar.searchbar--small input {
    font-size: 1.3vw !important;
  }
}
@media (max-width: 767px) {
  .searchbar {
    font-size: 16px;
    line-height: 18px;
  }
  .searchbar.searchbar--external {
    font-size: 13px;
    line-height: 16px;
  }
}
@media (min-width: 1400px) {
  .searchbar {
    font-size: 1.93vw;
    line-height: 1.93vw;
    letter-spacing: -0.04em;
  }
}

.textbox {
  margin-right: var(--space100h);
}
.textbox > * {
  margin: 0;
}
.textbox > * + * {
  margin-top: var(--space25h);
}
.textbox > span {
  display: block;
}
.textbox > span + span {
  margin-top: var(--space15h);
}
@media (max-width: 767px) {
  .textbox {
    margin-left: var(--space100h);
    margin-right: var(--space100h);
  }
}
.textbox:hover .icon--arrow line {
  transform: scaleX(1.5);
}
.textbox:hover .icon--arrow path {
  transform: translateX(8px);
}

.textbox__icons {
  display: flex;
  align-items: center;
}
.textbox__icons .icon--arrow {
  overflow: visible;
}
.textbox__icons .icon--arrow path, .textbox__icons .icon--arrow line {
  stroke: currentColor;
}
.textbox__icons .icon--arrow line {
  transition: transform 0.5s;
  transform: scaleX(1);
}
.textbox__icons .icon--arrow path {
  transition: transform 0.5s;
  transform: translateX(0);
}

.textbox__event_location,
.textbox__event_date {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

h2.textbox__title:first-letter {
  text-transform: capitalize;
}

.textpanel {
  display: flex;
  width: 75%;
}
.textpanel header {
  width: 22.2222222222%;
}
.textpanel header > * {
  margin: 0;
}
.textpanel header > * + p {
  margin-top: 15px;
}
@media (max-width: 767px) {
  .textpanel header > * + p {
    margin-top: 15px;
  }
}
.textpanel header + section {
  margin-left: 11.1111111111%;
  width: 44.4444444444%;
}
.textpanel section {
  margin-right: 22.2222222222%;
}
.textpanel section *:first-child {
  margin-top: 0;
}
.textpanel section p {
  /*Luft mellem paragraffer skal være 25px*/
  margin-bottom: 25px;
}
@media (max-width: 767px) {
  .textpanel section p {
    margin-bottom: 15px;
  }
}
.textpanel section ol li,
.textpanel section ul li {
  margin-bottom: 0.5vw;
}
.textpanel section *:last-child {
  margin-bottom: 0;
}

.accordon {
  width: 100%;
  margin-top: var(--space50h);
}
@media (max-width: 767px) {
  .accordon {
    width: 100%;
    padding: 0;
  }
}
.accordon .accordon__content--mixed > * {
  margin-bottom: var(--space25h);
}
.accordon .accordon__item {
  display: block;
  margin-top: var(--space25h);
  width: 100%;
}
.accordon .accordon__item .accordon__header {
  width: 100%;
}
.accordon .accordon__item .accordon__trigger {
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit;
  font-family: inherit;
  position: relative;
  width: 100%;
  padding: 0px;
}
.accordon .accordon__item .accordon__trigger:focus-visible {
  outline: 1px auto currentColor;
}
.accordon .accordon__item .accordon__trigger span {
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit;
  font-family: inherit;
  display: block;
  padding-left: 11.1111111111%;
}
.accordon .accordon__item .accordon__trigger span:after {
  content: "";
  position: absolute;
  height: 1px;
  left: 0;
  width: 100%;
  background-color: currentColor;
  opacity: 0.2;
  bottom: -25px;
}
@media (max-width: 767px) {
  .accordon .accordon__item .accordon__trigger span:after {
    bottom: -10px;
  }
}
.accordon .accordon__item .accordon__trigger .icon {
  font-size: inherit;
  position: absolute;
  top: 0;
  left: 0;
  transition: transform 0.5s;
  transform: rotate(0deg);
}
.accordon .accordon__item .accordon__panel {
  overflow: hidden;
  display: flex;
  justify-content: flex-end;
}
.accordon .accordon__item .accordon__panel .accordon__content {
  flex-wrap: wrap;
  padding-top: var(--space50h);
  margin-left: 0;
  width: 100%;
}
.accordon .accordon__item .accordon__panel .accordon__content p {
  margin-bottom: 1.2vw;
}
.accordon .accordon__item .accordon__panel .accordon__content.have__downloads {
  margin-left: 0;
}
.accordon .accordon__item .accordon__panel .accordon__content.have__downloads .accordon__content__download {
  margin-left: -7.1428571429%;
}
.accordon .accordon__item .accordon__panel .accordon__content.have__downloads .accordon__content__download p a {
  display: flex;
  align-items: center;
}
@media (max-width: 767px) {
  .accordon .accordon__item .accordon__panel .accordon__content.have__downloads .accordon__content__download p a {
    gap: 1rem;
  }
}
.accordon .accordon__item .accordon__panel .accordon__content .accordon__content__download {
  margin-top: var(--space25h);
}
.accordon .accordon__item .accordon__panel .accordon__content .accordon__content__download .icon {
  transform: none;
  width: 20px;
  vertical-align: bottom;
  float: left;
}
.accordon .accordon__item .accordon__panel .accordon__content .accordon__content__download span:not(.download__icon, .download__title) {
  margin-left: var(--space100h);
  display: flex;
}
.accordon .accordon__item .accordon__panel .accordon__content .accordon__content__download span.download__title {
  margin-left: calc(7.1428571429% - 20px);
}
.accordon .accordon__item .accordon__panel .accordon__content .accordon__content__download_link {
  font-weight: bold;
}
.accordon .accordon__item .accordon__panel .accordon__content ol {
  list-style: decimal;
}
.accordon .accordon__item .accordon__panel .accordon__content ul {
  list-style: disc;
}
.accordon .accordon__item .accordon__panel .accordon__content ul,
.accordon .accordon__item .accordon__panel .accordon__content ol {
  margin-left: 20px;
  padding-left: var(--space15h);
}
.accordon .accordon__item .accordon__panel .accordon__content ul li,
.accordon .accordon__item .accordon__panel .accordon__content ol li {
  letter-spacing: -0.02em;
  color: rgba(48, 42, 56, 0.74);
}
.accordon .accordon__item .accordon__panel .accordon__content div p:not(:last-of-type) {
  margin-bottom: 1.2vw;
}
.accordon .accordon__item .accordon__panel .accordon__content ol li,
.accordon .accordon__item .accordon__panel .accordon__content ul li {
  margin-bottom: 0.5vw;
}
.accordon .accordon__item .accordon__panel .accordon__content *:last-child {
  margin-bottom: 0;
}
.accordon .accordon__item + .accordon__item {
  padding-top: var(--space25h);
}
.accordon .accordon__item.is-active .accordon__header .accordon__trigger span::after {
  display: none;
}
.accordon .accordon__item.is-active .accordion-item .accordon__panel .accordon__content {
  padding-top: var(--space25h);
}
.accordon .accordon__item.is-active .icon {
  transform: rotate(45deg);
}
@media (max-width: 767px) {
  .accordon {
    margin-left: 0;
    margin-right: 0;
  }
  .accordon .textpanel {
    width: 100%;
  }
  .accordon .textpanel header {
    width: 33.3333333333%;
  }
  .accordon .textpanel section {
    margin-left: 8.3333333333%;
    width: 58.3333333333%;
    margin-right: 0;
  }
  .accordon > article:not(.textpanel) {
    margin-left: 41.6666666667%;
    margin-right: 0;
    width: 58.3333333333%;
  }
  .accordon > article.videopanel {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
}

.accordon--simple {
  width: 100%;
}
.accordon--simple .accordon__item {
  margin-top: var(--space15h);
}
.accordon--simple .accordon__item + .accordon__item {
  padding-top: 0;
}
.accordon--simple .accordon__item.is-active {
  opacity: 1;
}
.accordon--simple .accordon__item.is-active .accordon__header {
  opacity: 1;
}
.accordon--simple .accordon__item.is-active .accordon__header span:after {
  display: none;
}
.accordon--simple .accordon__item.is-active .accordon__header .icon {
  display: inline-block;
  left: auto;
  right: 0;
}
.accordon--simple .accordon__item.is-active .accordon__panel {
  position: relative;
}
.accordon--simple .accordon__item.is-active .accordon__panel:after {
  content: "";
  position: absolute;
  height: 1px;
  bottom: 0;
  left: 0;
  width: 100%;
  background-color: currentColor;
  opacity: 0.2;
}
.accordon--simple .accordon__trigger span {
  padding-left: 0;
  position: relative;
}
.accordon--simple .accordon__trigger span:after {
  content: "";
  position: absolute;
  width: 100%;
  height: 2px;
  opacity: 0.2;
  bottom: -5px;
  left: 0;
  background-color: currentColor;
}
.accordon--simple .accordon__trigger .icon {
  display: none;
}
.accordon--simple .accordon__panel {
  margin-left: 0;
  margin-right: 0;
}

.palette--5 .accordon .accordon__item,
.palette--6 .accordon .accordon__item {
  opacity: 1 !important;
}
.palette--5 .accordon .accordon__item .accordon__trigger span,
.palette--6 .accordon .accordon__item .accordon__trigger span {
  color: #eeeee7 !important;
  opacity: 1 !important;
}
.palette--5 .accordon .accordon__content ul li,
.palette--5 .accordon .accordon__content ol li,
.palette--5 .accordon .accordon__content p,
.palette--6 .accordon .accordon__content ul li,
.palette--6 .accordon .accordon__content ol li,
.palette--6 .accordon .accordon__content p {
  color: #eeeee7 !important;
  opacity: 1 !important;
}

.block--harmonica .harmonica .accordon__content {
  margin-left: 33.3333333333% !important;
}

.listings {
  width: 75%;
  display: flex;
  flex-wrap: wrap;
}
.listings .listings__heading {
  max-width: 100%;
}
@media (max-width: 767px) {
  .listings {
    width: 100%;
  }
}

.courses_curated_wrap {
  width: 100%;
}

.landing_page .listings__heading {
  width: 33.3333333333%;
}
@media (max-width: 767px) {
  .landing_page .listings__heading {
    width: 42.8571428571%;
  }
}
.landing_page .block {
  margin-top: var(--space50h);
}

.search_listings_heading {
  width: 100%;
  margin-bottom: var(--space50h);
}
@media (max-width: 767px) {
  .search_listings_heading h1, .search_listings_heading p {
    padding-left: 21.4285714286%;
    max-width: 100%;
    margin-left: var(--space100h);
    margin-right: var(--space100h);
  }
}
.search_listings_heading .listings__list {
  margin-top: var(--space50h);
}
.search_listings_heading .hide {
  display: none;
}

.listings__heading {
  width: 22.2222222222%;
  margin-right: 44.4444444444%;
}
.listings__heading span + h2 {
  margin-top: var(--space25h);
}
.listings__heading h2 {
  margin-top: 0;
  margin-bottom: 0;
}
@media (max-width: 767px) {
  .listings__heading {
    padding-left: 21.4285714286%;
    width: 42.8571428571%;
    padding-right: 21.4285714286%;
    margin-left: var(--space100h);
    margin-right: var(--space100h);
  }
  .listings__heading ~ .listings__link {
    margin-top: var(--space50h);
  }
}

.listings__link {
  width: 33.3333333333%;
}
@media (max-width: 767px) {
  .listings__link {
    order: 3;
    padding-left: 21.4285714286%;
    width: 42.8571428571%;
    padding-right: 21.4285714286%;
    margin-left: var(--space100h);
    margin-right: var(--space100h);
  }
  .listings__link a {
    width: 100%;
  }
}

@media (max-width: 767px) {
  .listings__container {
    width: 100vw;
    overflow: hidden;
  }
}
.listings__list {
  display: flex;
  width: 100%;
  flex-direction: row;
  flex-wrap: wrap;
  margin-top: var(--space50h);
}
@media (max-width: 767px) {
  .listings__list {
    white-space: nowrap;
    flex-wrap: nowrap;
    overflow-x: auto;
    width: auto;
    order: 2;
  }
  .listings__list * {
    white-space: pre-wrap;
  }
  .listings__list:before {
    content: "";
    display: inline-block;
    width: 28.5714285714vw;
    flex: 0 0 28.5714285714vw;
  }
  .listings__list:after {
    content: "";
    display: inline-block;
    width: 7.1428571429vw;
  }
}
.listings__list ~ .listings__empty {
  display: none;
}
.listings__list:empty ~ .listings__empty {
  margin-top: var(--space25h);
  display: flex;
}

.listings__empty {
  display: flex;
  margin-top: var(--space25h);
}

.listings__item {
  width: 33.3333333333%;
  display: flex;
  flex-direction: column;
  margin-bottom: var(--space25h);
}
.listings__item .image {
  width: 100%;
}
.listings__item picture {
  margin-top: auto;
  margin-bottom: 25px;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
@media (max-width: 767px) {
  .listings__item picture {
    max-height: 270px;
  }
}
.listings__item img {
  width: 100%;
  height: auto;
}
.listings__item .textbox + picture {
  margin-top: var(--space25h);
  display: flex;
}
.listings__item .textbox__icons .icon--play,
.listings__item .textbox__icons .icon--beginner {
  display: none;
}
.listings__item[has_video] .textbox__icons .icon--play {
  display: inline-block;
}
.listings__item[has_video] .textbox__icons .icon--play ~ .icon--arrow {
  margin-left: var(--space15h);
}
.listings__item[is_beginner] .textbox__icons .icon--beginner {
  display: inline-block;
}
.listings__item[is_beginner] .textbox__icons .icon--beginner ~ .icon--arrow {
  margin-left: var(--space15h);
}
@media (max-width: 767px) {
  .listings__item {
    display: grid;
    grid-template-rows: repeat(auto-fill, 45vw);
    flex-shrink: 0;
    margin-bottom: 0;
    width: 55vw;
  }
  .listings__item .textbox {
    margin-left: 0;
  }
}

/*Luft under den sidste linje i referencemodulet fjernes*/
.listings__item:nth-child(3n+1):nth-last-child(-n+3),
.listings__item:nth-child(3n+1):nth-last-child(-n+3) ~ .listings__item {
  margin-bottom: 0;
}

.campaign {
  width: calc(var(--space100h) * 9);
  position: relative;
  background-color: inherit;
  margin-right: var(--space100h);
}
.campaign[class*=right] .campaign__texts {
  right: 0;
  left: auto;
}
.campaign[class*=right] .campaign__texts .textbox {
  margin-left: var(--space100h);
}
.campaign[class*=left] .campaign__texts {
  right: auto;
  left: 0;
}
.campaign[class*=bottom] .campaign__texts {
  bottom: 0;
  top: auto;
}
.campaign[class*=bottom][class*=left] .campaign__video > a {
  position: absolute;
  left: var(--space25h);
  margin-left: 33.3333333333%;
}
@media (max-width: 767px) {
  .campaign[class*=bottom][class*=left] .campaign__video > a {
    right: var(--space25h);
    left: auto;
  }
}
.campaign[class*=top-left] .campaign__texts, .campaign[class*=top-right] .campaign__texts {
  width: min-content;
  max-width: 44.4444444444%;
  min-width: 33.3333333333%;
}
@media all and (max-width: 768px) {
  .campaign[class*=top-left] .campaign__texts, .campaign[class*=top-right] .campaign__texts {
    max-width: 66.6666666667%;
  }
}
@media all and (max-width: 568px) {
  .campaign[class*=top-left] .campaign__texts, .campaign[class*=top-right] .campaign__texts {
    max-width: 77.7777777778%;
  }
}
.campaign[class*=top-left] .textbox__date, .campaign[class*=top-right] .textbox__date {
  margin-bottom: var(--space15h);
  display: block;
}
@media all and (max-width: 767px) {
  .campaign[class*=top-left] .textbox__date, .campaign[class*=top-right] .textbox__date {
    margin-left: 7.1428571429%;
  }
}
.campaign[class*=top-left] .textbox, .campaign[class*=top-right] .textbox {
  margin-top: 0;
}
.campaign[class*=top-left] .textbox h2.textbox__title, .campaign[class*=top-right] .textbox h2.textbox__title {
  width: max-content;
  max-width: fit-content;
  max-width: 100%;
}
.campaign[class*=top-left] .textbox .textbox__copy, .campaign[class*=top-right] .textbox .textbox__copy {
  width: fit-content;
  max-width: 100%;
  max-width: 100%;
}
.campaign[class*=top-right] .textbox__date {
  margin-left: var(--space100h);
}
.campaign[class*=left-top] .textbox, .campaign[class*=right-top] .textbox, .campaign[class*=bottom] .textbox {
  margin-top: var(--space100h);
}
.campaign[class*=wide][class*=right] .campaign__texts {
  max-width: 33.3333333333%;
}
@media (min-width: 768px) {
  .campaign[class*=wide] {
    width: 100%;
    z-index: 30;
  }
}
.campaign[class*=color] .campaign__texts {
  right: 0;
  left: auto;
  max-width: 44.4444444444%;
}
.campaign[class*=color] .campaign__texts .textbox {
  margin-top: var(--space100h);
  margin-left: var(--space100h);
}
.campaign[class*=color] .campaign__texts:after {
  content: "";
  position: absolute;
  width: 75%;
  right: -75%;
  top: 0;
  height: 100%;
  background-color: inherit;
}
.campaign.campaign--simple .campaign__texts {
  position: relative;
  max-width: 100%;
  padding-bottom: 0;
}
.campaign.campaign--simple .campaign__texts .textpanel {
  width: 100%;
}
.campaign.campaign--simple-alt .campaign__texts {
  position: relative;
  max-width: 100%;
  padding-bottom: 0;
}
.campaign.campaign--simple-alt .campaign__texts .textpanel {
  width: 100%;
  flex-wrap: wrap;
}
.campaign.campaign--simple-alt .campaign__texts .textpanel section {
  margin-left: 33.3333333333%;
}
.campaign.campaign--simple-alt .campaign__texts .textpanel header + section {
  margin-top: var(--space100h);
}
@media (max-width: 767px) {
  .campaign {
    width: 100%;
  }
  .campaign[class*=bottom] {
    padding-bottom: 14.2857142857vw;
  }
}
@media (max-width: 767px) and (max-width: 767px) {
  .campaign[class*=bottom] {
    padding-bottom: 28.5714285714vw;
  }
}
@media (max-width: 767px) {
  .campaign[class*=top] {
    padding-top: 14.2857142857vw;
  }
}
@media (max-width: 767px) and (max-width: 767px) {
  .campaign[class*=top] {
    padding-top: 28.5714285714vw;
  }
}
@media (max-width: 767px) {
  .campaign[class*=right] .campaign__texts {
    max-width: 66.6666666667%;
  }
}
@media (max-width: 767px) {
  .campaign[class*=wide][class*=right] .campaign__texts {
    max-width: 66.6666666667%;
  }
}
@media (max-width: 767px) {
  .campaign[class*=color] .campaign__texts {
    max-width: 66.6666666667%;
  }
  .campaign[class*=color] .campaign__texts:after {
    display: none;
  }
}
@media (max-width: 767px) {
  .campaign.campaign--simple-alt .campaign__texts .textpanel header {
    margin-left: 7.1428571429%;
    margin-right: 7.1428571429%;
    width: 100%;
  }
  .campaign.campaign--simple-alt .campaign__texts .textpanel header + section {
    margin-top: var(--space100h);
  }
  .campaign.campaign--simple-alt .campaign__texts .textpanel section {
    margin-left: 7.1428571429%;
    margin-right: 7.1428571429%;
    width: 57.1428571429%;
  }
}
@media (min-width: 768px) {
  .campaign[class*=color] .campaign__texts .textbox {
    margin-right: 0;
  }
}

.campaign__texts {
  position: absolute;
  top: 0px;
  left: 0px;
  right: auto;
  bottom: auto;
  max-width: 33.3333333333%;
  width: 100%;
  z-index: 20;
  background-color: inherit;
  color: inherit;
  padding-bottom: 7.1428571429vw;
  /*Luft fra tekst til bund mindskes så der er den samme afstand til henholdsvis højre og bund*/
  padding-bottom: 3.5714285714%;
}
@media (max-width: 767px) {
  .campaign__texts {
    padding-bottom: 14.2857142857vw;
  }
}
@media (max-width: 767px) {
  .campaign__texts {
    max-width: 64.2857142857%;
  }
}

.campaign picture {
  display: flex;
  position: relative;
}
.campaign img {
  width: 100%;
  height: auto;
}

.campaign__video {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
  overflow: hidden;
}
.campaign__video > a.video_play_button_overlay {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 12;
}
.campaign__video > a.video_play_button_overlay:focus-within {
  outline: 1px auto #000;
}
.campaign__video > a.video_button {
  position: absolute;
  z-index: 11;
}
.campaign__video > a {
  position: absolute;
  bottom: 25px;
  left: 25px;
}
@media (max-width: 767px) {
  .campaign__video > a {
    bottom: 15px;
  }
}
@media (max-width: 767px) {
  .campaign__video > a {
    left: 15px;
  }
}
.campaign__video > a .icon {
  width: 50px;
  height: 50px;
}
.campaign__video > a:focus-visible {
  outline: 1px auto #000;
}
.campaign__video iframe {
  display: none;
  pointer-events: none;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 0.5s;
}
.campaign__video iframe.lazyloaded {
  opacity: 1;
}

/*build*/
.content-wrapper {
  position: relative;
}
.content-wrapper .sidebar {
  position: absolute;
  top: 0;
  left: 7.1428571429%;
  width: 14.2857142857%;
}
@media (max-width: 767px) {
  .content-wrapper .sidebar {
    margin-top: var(--space100h);
    margin-bottom: var(--space100h);
    position: inherit;
    width: unset;
    left: unset;
    padding: 0 7.1428571429%;
  }
}

@media (max-width: 767px) {
  .sidebar__taxonomy ul {
    display: flex;
    flex-wrap: wrap;
    grid-gap: 15px;
  }
}
.sidebar__taxonomy.sidebar__reset ul li {
  display: flex;
  align-items: center;
}
.sidebar__taxonomy.sidebar__reset ul li a {
  display: flex;
  align-items: center;
  text-decoration: none;
  width: 100%;
}
.sidebar__taxonomy.sidebar__reset ul li a > div {
  border-radius: 100%;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 10px;
}
.sidebar__taxonomy.sidebar__reset ul li svg {
  width: 14px;
  height: 14px;
}
.sidebar__taxonomy.hidden {
  display: none;
}

.sidebar__search + * {
  margin-top: var(--space50h);
}

.sidebar__taxonomy + .sidebar__taxonomy {
  margin-top: var(--space50h);
}
.sidebar__taxonomy li {
  opacity: 0.67;
  margin-bottom: 15px;
}
.sidebar__taxonomy li span {
  position: relative;
  cursor: pointer;
}
.sidebar__taxonomy li span:after {
  content: "";
  position: absolute;
  bottom: -5px;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: currentColor;
  opacity: 0.64;
}
.sidebar__taxonomy li:last-child {
  margin-bottom: 0;
}
.sidebar__taxonomy li.selected {
  opacity: 1;
}

#sidebar__newuser ul li {
  display: flex;
}
#sidebar__newuser ul li svg {
  margin-right: 10px;
}

.block {
  margin-top: var(--space100h);
  margin-bottom: var(--space100h);
  background-color: inherit;
}
.block.palette {
  padding-top: var(--space100h);
  padding-bottom: var(--space100h);
}
.block.palette--7 {
  padding-top: 0;
  padding-bottom: 0;
}
.block.block--anchor {
  margin-top: 0px;
  margin-bottom: 0px;
}
.block.block--anchor p {
  display: flex;
  align-items: center;
}
.block.block--anchor p span {
  flex-grow: 1;
  display: inline-block;
  height: 1px;
  background-color: currentColor;
}
.block.block--anchor p em {
  padding-left: 1em;
  padding-right: 1em;
  cursor: pointer;
}
.block:first-of-type {
  margin-top: 0;
}
.block ol {
  list-style: decimal;
}
.block ul {
  list-style: disc;
}
.block ul,
.block ol {
  padding-left: 0;
  list-style-position: outside;
  margin-left: var(--space15h);
}
.block ul li a,
.block ol li a {
  display: inline-block;
  position: relative;
  transition: all 0.5s;
  text-decoration: underline;
}
.block ul li a:hover,
.block ol li a:hover {
  color: #302a38;
}
@media (max-width: 767px) {
  .block {
    margin-top: var(--space200h);
    margin-bottom: var(--space200h);
  }
  .block.block--top {
    padding-top: var(--space100h);
  }
}

.simple-box {
  padding: 2.5rem;
}
@media (max-width: 768px) {
  .simple-box {
    padding: 1.5rem;
  }
}
.simple-box header {
  margin-bottom: var(--space25h);
}
.simple-box header h2 {
  margin-bottom: 0;
  margin-top: 0;
}
.simple-box header.show-icon {
  display: flex;
  align-items: center;
}
@media (max-width: 768px) {
  .simple-box header.show-icon {
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
  }
}
.simple-box header.show-icon svg.icon {
  width: 24px;
  height: 24px;
  transform: rotate(0) !important;
  flex-shrink: 0 !important;
  flex-grow: 0 !important;
}
.simple-box header.show-icon h2 {
  margin-left: 15px;
}
@media (max-width: 768px) {
  .simple-box header.show-icon h2 {
    margin-left: 0;
    margin-top: 15px;
  }
}
.simple-box main.columns-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 25px;
}
@media (max-width: 767px) {
  .simple-box main.columns-2 {
    gap: 15px;
  }
}
@media (max-width: 767px) {
  .simple-box main.columns-2 {
    grid-template-columns: 1fr;
  }
}
.simple-box main > div > p {
  margin-bottom: 1.2vw;
}
.simple-box main > div > p:last-child {
  margin-bottom: 0;
}
.simple-box--tip {
  background-color: #302a38;
  border-left: 0.5rem solid #302a38;
  color: white;
}
.simple-box--tip header .show-icon svg.icon {
  fill: white;
  stroke: white;
}
.simple-box--tip header.show-icon h2, .simple-box--tip header h2 {
  color: white !important;
}
.simple-box--tip main h2,
.simple-box--tip main h3,
.simple-box--tip main h4,
.simple-box--tip main ul li,
.simple-box--tip main ol li,
.simple-box--tip main p {
  color: white !important;
}
.simple-box--tip main a:hover {
  color: #757177 !important;
}
.simple-box--discrete {
  background-color: rgba(48, 42, 56, 0.1);
  border-left: 0.5rem solid rgba(48, 42, 56, 0.25);
  color: #302a38;
}
.simple-box--obs {
  background-color: rgba(244, 189, 44, 0.25);
  border-left: 0.5rem solid rgba(244, 189, 44, 0.5);
  color: #302a38;
}
.simple-box--info {
  background-color: rgba(120, 190, 231, 0.25);
  border-left: 0.5rem solid rgba(120, 190, 231, 0.5);
  color: #302a38;
}

/** Fix width of simple box inside a column when lower than 1024px */
@media (max-width: 767px) {
  .block--article--column article.column--simple-box {
    width: 100% !important;
    margin-left: 41.6666666667% !important;
  }
  .block--article--column article.column--accordon article.column--simple-box {
    margin-left: 0 !important;
    width: unset !important;
  }
  .block--article--column article.column--accordon .accordon__panel {
    margin-left: 0 !important;
  }
}
@media all and (min-width: 768px) and (max-width: 1024px) {
  .article-content .block.block--article.block--article--column > article.column--accordon {
    margin-right: 0px;
    width: 100%;
  }
}
/**
Hero Block
 */
/**
* On all colored backgrounds we use 100% black text
* @see T21103 - Farver på tekst og ikoner
 */
/* HEADER ANIMATIONS */
/* EXTRA STYLES */
.swatches__item {
  border-radius: 50%;
  overflow: hidden;
}

.footer__colophon p, article p a.link, h4, h5,
h6, p, .footer__menu--secondary, .extnav a, .langmenu__option + .langmenu__option:before, .langmenu__option:not(.active), .breadcrumbs__container .breadcrumbs ul, .textbox > span, .textbox__event_location,
.textbox__event_date, .accordon--simple .accordon__header, .block ul li,
.block ol li, .block ul li a.link,
.block ol li a.link {
  color: rgba(48, 42, 56, 0.75);
}

/* BASE STYLES */
h1,
.h1, .listings__heading h2 {
  font-size: 1.953rem;
  line-height: 120%;
  letter-spacing: -0.04em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

h2,
.h2, .listmenu > ul > li .menu-heading-wrap > a, .footer__menu, .branding .site-name, .accordon--simple .accordon__item.is-active .accordon__header {
  font-size: 1.563rem;
  line-height: 120%;
  letter-spacing: -0.02em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

.footer__heading, article p a.link.link--large, h3,
.h3, .searchbar input, .accordon .accordon__item .accordon__header, .block ul li a.link.link--large,
.block ol li a.link.link--large {
  font-size: 1.25rem;
  line-height: 120%;
  letter-spacing: -0.02em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

.footer__colophon p, article p a.link, h4, h5,
h6, .extnav a, .breadcrumbs__container .breadcrumbs ul, .block ul li a.link,
.block ol li a.link {
  font-size: 1.1rem;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
  line-height: 120%;
  letter-spacing: 0em;
}

:root {
  --rigsarkivet--font-size: 15px;
  font-size: var(--rigsarkivet--font-size);
}
@media (max-width: 1023px) {
  :root {
    --rigsarkivet--font-size: 14px;
  }
}

body, .footer__menu--secondary {
  font-size: var(--rigsarkivet--font-size);
  line-height: 120%;
  letter-spacing: -0.02em;
}

p, .footer__menu--secondary, .textbox > span, .textbox__event_location,
.textbox__event_date, .accordon--simple .accordon__header, .block ul li,
.block ol li {
  margin: 0;
  font-size: 1rem;
  line-height: 120%;
}

.block--hero {
  max-width: var(--max-width);
  margin: var(--space50h) var(--space100h) var(--space100h);
  display: flex;
  flex-direction: row;
}
@media (max-width: 768px) {
  .block--hero {
    flex-direction: column;
  }
}
.block--hero.palette--0 {
  background-color: rgba(48, 42, 56, 0.1);
}
.block--hero.palette--1 {
  background-color: #f4bd2c;
}
.block--hero.palette--2 {
  background-color: #47bf80;
}
.block--hero.palette--3 {
  background-color: #f16e4b;
}
.block--hero.palette--4 {
  background-color: #78bee7;
}
.block--hero__image {
  width: 66.6666666667%;
  margin: 3.5714285714%;
  height: 100%;
  padding: 0;
}
@media (max-width: 767px) {
  .block--hero__image {
    width: 100%;
    margin: 7.1428571429% !important;
    margin-bottom: 0;
  }
}
.block--hero__image img {
  width: 100%;
  height: auto;
  object-fit: cover;
  aspect-ratio: 1.75/1;
}
@media (max-width: 767px) {
  .block--hero__image img {
    max-width: 85.7142857143%;
    aspect-ratio: unset;
    height: auto;
  }
}
.block--hero__image .video_container {
  aspect-ratio: 16/9;
  width: 100%;
  object-fit: cover;
}
@media (max-width: 767px) {
  .block--hero__image .video_container {
    max-width: 85.7142857143%;
    aspect-ratio: unset;
    height: auto;
  }
}
.block--hero__text {
  width: 33.3333333333%;
  margin: 0;
  padding: 3.5714285714%;
  padding-left: 0;
}
@media (max-width: 768px) {
  .block--hero__text {
    width: 85.7142857143%;
    padding: 7.1428571429%;
    padding-top: 0;
  }
}
.block--hero__text .textbox {
  margin-right: 0;
  margin-left: 0;
}
@media (max-width: 768px) {
  .block--hero__text .textbox {
    padding-top: 0;
    max-width: 92.8571428571%;
  }
}
.block--hero__text .textbox h1 {
  margin: 0;
}
.block--hero__text .textbox h3 {
  margin-bottom: 20px;
}
.block--hero__text .textbox p {
  margin: 0 0 20px;
}
.block--hero__text .textbox p:last-child {
  margin-bottom: 0;
}

/**
* GENERAL OR CRITICAL BLOCKS
**/
/**
* On all colored backgrounds we use 100% black text
* @see T21103 - Farver på tekst og ikoner
 */
/* HEADER ANIMATIONS */
/* EXTRA STYLES */
.swatches__item {
  border-radius: 50%;
  overflow: hidden;
}

.footer__colophon p, article p a.link, h4, h5,
h6, p, .footer__menu--secondary, .extnav a, .langmenu__option + .langmenu__option:before, .langmenu__option:not(.active), .breadcrumbs__container .breadcrumbs ul, .textbox > span, .textbox__event_location,
.textbox__event_date, .accordon--simple .accordon__header, .block ul li,
.block ol li, .block ul li a.link,
.block ol li a.link {
  color: rgba(48, 42, 56, 0.75);
}

/* BASE STYLES */
h1,
.h1, .listings__heading h2 {
  font-size: 1.953rem;
  line-height: 120%;
  letter-spacing: -0.04em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

h2,
.h2, .listmenu > ul > li .menu-heading-wrap > a, .footer__menu, .branding .site-name, .accordon--simple .accordon__item.is-active .accordon__header {
  font-size: 1.563rem;
  line-height: 120%;
  letter-spacing: -0.02em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

.footer__heading, article p a.link.link--large, h3,
.h3, .searchbar input, .accordon .accordon__item .accordon__header, .block ul li a.link.link--large,
.block ol li a.link.link--large {
  font-size: 1.25rem;
  line-height: 120%;
  letter-spacing: -0.02em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

.footer__colophon p, article p a.link, h4, h5,
h6, .extnav a, .breadcrumbs__container .breadcrumbs ul, .block ul li a.link,
.block ol li a.link {
  font-size: 1.1rem;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
  line-height: 120%;
  letter-spacing: 0em;
}

:root {
  --rigsarkivet--font-size: 15px;
  font-size: var(--rigsarkivet--font-size);
}
@media (max-width: 1023px) {
  :root {
    --rigsarkivet--font-size: 14px;
  }
}

body, .footer__menu--secondary {
  font-size: var(--rigsarkivet--font-size);
  line-height: 120%;
  letter-spacing: -0.02em;
}

p, .footer__menu--secondary, .textbox > span, .textbox__event_location,
.textbox__event_date, .accordon--simple .accordon__header, .block ul li,
.block ol li {
  margin: 0;
  font-size: 1rem;
  line-height: 120%;
}

.header__desktop--langmenu,
.header__desktop--second,
.header__desktop--second {
  box-sizing: border-box;
}

.header__mobile {
  margin-top: var(--space25h);
  margin-left: var(--space50h);
  margin-right: var(--space50h);
  display: flex;
}
@media (min-width: 769px) {
  .header__mobile {
    display: none !important;
  }
}
.header__mobile--branding {
  width: 100%;
  display: flex;
}
.header__mobile--branding .branding {
  width: 100%;
}
.header__mobile--branding .branding .logo svg {
  width: 44px;
  height: 44px;
}
.header__mobile--menu {
  width: 50%;
  display: flex;
  justify-content: flex-end;
}
.header__mobile--toggles {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  width: 75%;
}
.header__mobile--listmenu-container {
  margin: var(--space25h) var(--space50h) !important;
  display: flex;
  justify-content: flex-end;
}
@media (min-width: 769px) {
  .header__mobile--listmenu-container {
    display: none !important;
  }
}
.header__mobile--listmenu-container .listmenu {
  width: 50%;
  height: 0;
  visibility: hidden;
  opacity: 0;
  transition: height 0.3s ease-in-out, opacity 0.5s ease-in-out;
}
.header__mobile--listmenu-container .listmenu.active {
  visibility: visible !important;
  height: var(--containerHeight, 180px) !important;
  opacity: 1 !important;
}
.header__mobile--search-externally {
  margin-top: var(--space25h) !important;
  margin-left: var(--space50h) !important;
  margin-right: var(--space50h) !important;
  display: flex;
}
@media (min-width: 769px) {
  .header__mobile--search-externally {
    display: none !important;
  }
}
.header__mobile--search-externally .external-search-button {
  margin-left: 16.6666666667%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 10px;
  height: 40px;
  background: #302a38;
  color: #eeeee7;
  font-weight: 500;
}
.header__mobile--search-externally .external-search-button svg {
  stroke: #eeeee7;
}
.header__mobile--search-externally .external-search-button::after {
  display: none !important;
}
.header__mobile--search-internally {
  margin-top: var(--space50h);
  margin-left: var(--space50h);
  margin-right: var(--space50h);
  display: flex;
  justify-content: flex-end;
}
@media (min-width: 769px) {
  .header__mobile--search-internally {
    display: none !important;
  }
}
.header__mobile--search-internally .searchbar {
  width: 75%;
}
.header__mobile--servicemenu {
  margin: var(--space25h) var(--space50h) var(--space50h);
  display: flex;
  justify-content: flex-end;
}
@media all and (min-width: 769px) {
  .header__mobile--servicemenu {
    display: none !important;
  }
}
.header__mobile--servicemenu nav {
  width: 75%;
}
.header__mobile--servicemenu nav .servicemenu__item a {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.header__mobile--servicemenu nav .servicemenu__item a svg {
  margin-top: 0;
}
@media all and (max-width: 768px) {
  .header__mobile--servicemenu nav .servicemenu__item a.menu__item {
    flex-direction: row;
    padding: 10px 0;
  }
}
@media all and (max-width: 767px) {
  .header__mobile--servicemenu nav .servicemenu__item a.menu__item {
    padding: 0;
  }
}
.header__mobile--subpage-menu.listmenu {
  height: 0;
  visibility: hidden;
  opacity: 0;
  transition: all 0.3s ease-in-out;
}
.header__mobile--subpage-menu.listmenu.active {
  visibility: visible;
  opacity: 1;
}
@media (max-width: 768px) {
  .header__mobile--subpage-menu.listmenu.active {
    height: 40rem;
  }
}
.header__mobile--subpage-menu.listmenu.active .listmenu {
  visibility: visible !important;
  height: auto;
  opacity: 1 !important;
}
@media (min-width: 769px) {
  .header__mobile {
    display: none !important;
  }
}
.header__desktop--langmenu {
  margin-top: var(--space50h);
  padding-left: var(--space100h);
  padding-right: var(--space100h);
  display: flex;
  justify-content: flex-end;
  max-width: var(--max-width);
}
@media all and (max-width: 768px) {
  .header__desktop--langmenu {
    display: none !important;
  }
}
@media all and (min-width: 1401px) {
  .header__desktop--langmenu {
    margin-left: auto;
    margin-right: auto;
  }
}
.header__desktop {
  margin-top: var(--space25h);
  padding-left: var(--space100h);
  padding-right: var(--space100h);
  box-sizing: border-box;
  position: relative;
  display: flex;
  max-width: var(--max-width);
}
@media all and (max-width: 768px) {
  .header__desktop {
    display: none !important;
  }
}
@media all and (min-width: 1401px) {
  .header__desktop {
    margin-left: auto;
    margin-right: auto;
  }
}
.header__desktop--branding {
  width: 33.3333333333%;
  display: flex;
  flex-direction: column;
}
.header__desktop--branding .branding {
  width: 100%;
  justify-content: unset;
}
.header__desktop--branding .logo {
  width: 25%;
}
.header__desktop--branding .logo svg {
  width: 50px;
  height: 50px;
}
.header__desktop--navigations {
  width: 66.6666666667%;
  display: flex;
}
.header__desktop--navigations > div:nth-child(1) {
  width: 100%;
}
.header__desktop--navigations > div:nth-child(2) {
  width: 100%;
}
.header__desktop--navigations .header__tagline {
  height: 50px;
  display: flex;
  align-items: end;
  max-width: 100px;
  overflow-wrap: initial;
  font-size: 0.8rem !important;
  transition: opacity 0.3s ease-in-out;
  opacity: 1;
  position: absolute;
}
.header__desktop--navigations .header__tagline.hidden {
  visibility: hidden;
  pointer-events: none;
  opacity: 0;
  height: 0;
}
.header__desktop--navigations .listmenu {
  height: 0;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease-in-out;
  margin-top: 2.5rem;
}
.header__desktop--navigations .listmenu.active {
  visibility: visible;
  height: var(--containerHeight, 180px);
  opacity: 1;
  width: 100%;
  margin-top: 2.5rem;
}
.header__desktop--toggle-group {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  align-items: flex-start;
  margin-top: 27px;
}
.header__desktop--toggle-group .header__search-internal__wrap {
  margin-left: 100%;
  pointer-events: none;
  opacity: 0;
  transition: all 0.3s ease-in-out;
}
.header__desktop--toggle-group .header__search-internal__wrap.active {
  margin-left: 0;
  width: 100%;
  opacity: 1;
  pointer-events: all;
}
.header__desktop--toggle-group .header__search-internal__wrap button[type=submit] {
  display: none;
}
.header__desktop--toggle-group .search-internal-btn {
  margin-left: auto;
  cursor: pointer !important;
}
.header__desktop--toggle-group .search-internal-btn svg {
  height: 24px;
  width: 24px;
}
.header__desktop--second {
  display: flex;
  max-width: var(--max-width);
  width: 100%;
  margin-top: var(--space25h);
  padding-left: var(--space100h);
  padding-right: var(--space100h);
}
@media all and (min-width: 1401px) {
  .header__desktop--second {
    margin-left: auto;
    margin-right: auto;
  }
}
@media all and (max-width: 768px) {
  .header__desktop--second {
    display: none !important;
  }
}
.header__desktop--second .header__desktop--filler {
  width: 33.3333333333%;
  display: flex;
  align-items: start;
}
.header__desktop--second .header__desktop--filler .header__desktop--back {
  width: 25%;
  margin-top: 0.75rem;
}
.header__desktop--second .header__desktop--filler .heading__desktop--search-externally {
  margin: 15px 0;
  display: flex;
  height: 40px;
  align-items: center;
}
.header__desktop--second .header__desktop--filler .external-search-button {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 10px;
  height: 40px;
  background: #302a38;
  color: #eeeee7;
  font-weight: 500;
}
.header__desktop--second .header__desktop--filler .external-search-button svg {
  stroke: #eeeee7;
}
.header__desktop--servicemenu {
  width: 66.6666666667%;
}
.header__desktop--servicemenu .servicemenu {
  display: flex;
}
.header__desktop--servicemenu .servicemenu li {
  width: 100% !important;
  padding-right: 1.25rem;
}

@media (min-width: 769px) {
  .breadcrumbs__container--back {
    display: none;
  }
}

.header__desktop--second .header__desktop--filler .external-search-button::after {
  display: none !important;
}

.footer {
  padding-left: var(--space100h);
  padding-right: var(--space100h);
  margin-top: var(--space100h);
  margin-bottom: var(--space100h);
  box-sizing: border-box;
  max-width: var(--max-width);
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
}
@media (max-width: 767px) {
  .footer {
    flex-direction: column;
  }
}
@media all and (min-width: 1401px) {
  .footer {
    margin-left: auto;
    margin-right: auto;
  }
}
.footer .footer__content {
  width: 50%;
}
.footer .footer__content .footer__menu {
  margin-top: 25px;
}
@media (max-width: 767px) {
  .footer .footer__content .footer__menu {
    margin-top: 15px;
  }
}

.footer__info {
  width: 50%;
  flex-grow: 0;
  display: flex;
  flex-direction: column;
}
.footer__info .footer__menu + .footer__menu {
  margin-top: 3.5714285714vw;
}
@media (max-width: 767px) {
  .footer__info .footer__menu + .footer__menu {
    margin-top: 7.1428571429vw;
  }
}
@media (max-width: 767px) {
  .footer__info {
    width: 100%;
    flex-direction: row;
  }
  .footer__info .footer__heading {
    width: 41.6666666667%;
  }
  .footer__info .footer__content {
    margin-top: 0px;
  }
  .footer__info + section {
    margin-top: 3.5714285714vw;
  }
}
@media (max-width: 767px) and (max-width: 767px) {
  .footer__info + section {
    margin-top: 7.1428571429vw;
  }
}

.footer__contact {
  width: 50%;
  flex-grow: 0;
  display: flex;
}
.footer__contact .footer__heading {
  width: 33.3333333333%;
}
.footer__contact .footer__copy + .footer__menu {
  margin-top: 25px;
}
@media (max-width: 767px) {
  .footer__contact .footer__copy + .footer__menu {
    margin-top: 15px;
  }
}
@media (max-width: 767px) {
  .footer__contact {
    width: 100%;
    flex-direction: row;
  }
  .footer__contact .footer__heading {
    width: 41.6666666667%;
  }
}

.footer__colophon {
  width: 100%;
  flex-grow: 0;
  display: flex;
  align-items: flex-end;
  margin-top: 3.5714285714vw;
}
.footer__colophon p {
  font-size: 0.8rem;
}
.footer__colophon .footer__copy--small p {
  font-size: 0.8rem;
}
@media (max-width: 767px) {
  .footer__colophon {
    margin-top: 7.1428571429vw;
  }
}
.footer__colophon .fifth-element {
  width: 50%;
}
@media (max-width: 767px) {
  .footer__colophon {
    grid-gap: 6%;
  }
  .footer__colophon .fifth-element {
    width: 41.6666666667%;
  }
  .footer__colophon .footer__content {
    width: 58.3333333333%;
  }
  .footer__colophon .footer__menu--secondary {
    flex: 0 0 35%;
    word-break: break-all;
  }
}

.footer__menu--secondary {
  width: 50%;
}

.footer__bar {
  margin-top: 7.1428571429vw;
  display: flex;
  width: 100%;
}
@media (max-width: 767px) {
  .footer__bar {
    margin-top: 14.2857142857vw;
  }
}
.footer__bar .icon-bar--element {
  width: 66.6666666667%;
}

.footer__heading {
  margin: 0;
}

.block--campaign {
  max-width: var(--max-width);
  margin: var(--space50h) auto;
  display: flex;
  justify-content: right;
}
@media all and (max-width: 768px) {
  .block--campaign {
    margin: var(--space50h) var(--space100h);
  }
}
.block--campaign.palette:not(.block--campaign-simple) {
  padding-top: 0px;
  padding-bottom: 0px;
  color: unset;
}
.block--campaign.palette {
  color: inherit;
}
.block--campaign.palette.palette--1 .campaign__texts {
  background-color: #f4bd2c;
  color: #302a38;
}
.block--campaign.palette.palette--1 .campaign__texts .textbox__copy,
.block--campaign.palette.palette--1 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.palette.palette--1 .campaign__texts p {
  color: inherit;
}
.block--campaign.palette.palette--2 .campaign__texts {
  background-color: #47bf80;
  color: #302a38;
}
.block--campaign.palette.palette--2 .campaign__texts .textbox__copy,
.block--campaign.palette.palette--2 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.palette.palette--2 .campaign__texts p {
  color: inherit;
}
.block--campaign.palette.palette--3 .campaign__texts {
  background-color: #f16e4b;
  color: #302a38;
}
.block--campaign.palette.palette--3 .campaign__texts .textbox__copy,
.block--campaign.palette.palette--3 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.palette.palette--3 .campaign__texts p {
  color: inherit;
}
.block--campaign.palette.palette--4 .campaign__texts {
  background-color: #78bee7;
  color: #302a38;
}
.block--campaign.palette.palette--4 .campaign__texts .textbox__copy,
.block--campaign.palette.palette--4 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.palette.palette--4 .campaign__texts p {
  color: inherit;
}
.block--campaign.palette.palette--5 .campaign__texts {
  background-color: #69271f;
  color: #eeeee7;
}
.block--campaign.palette.palette--5 .campaign__texts .textbox__copy,
.block--campaign.palette.palette--5 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.palette.palette--5 .campaign__texts p {
  color: inherit;
}
.block--campaign.palette.palette--6 .campaign__texts {
  background-color: #18598a;
  color: #eeeee7;
}
.block--campaign.palette.palette--6 .campaign__texts .textbox__copy,
.block--campaign.palette.palette--6 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.palette.palette--6 .campaign__texts p {
  color: inherit;
}
.block--campaign.palette .campaign[class*=top-left] .campaign__texts .textbox, .block--campaign.palette .campaign[class*=top-right] .campaign__texts .textbox {
  margin-top: var(--space100h);
}
.block--campaign.palette .campaign[class*=top-right] {
  margin-left: var(--space100h);
  display: none !important;
}
.block--campaign.block--campaign-left {
  justify-content: left;
}
.block--campaign.block--campaign-left.palette {
  background-color: inherit;
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--1 .campaign__texts {
  background-color: #f4bd2c;
  color: #302a38;
}
.block--campaign.block--campaign-left.palette.palette--1 .campaign__texts .textbox__copy,
.block--campaign.block--campaign-left.palette.palette--1 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--1 .campaign__texts p {
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--2 .campaign__texts {
  background-color: #47bf80;
  color: #302a38;
}
.block--campaign.block--campaign-left.palette.palette--2 .campaign__texts .textbox__copy,
.block--campaign.block--campaign-left.palette.palette--2 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--2 .campaign__texts p {
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--3 .campaign__texts {
  background-color: #f16e4b;
  color: #302a38;
}
.block--campaign.block--campaign-left.palette.palette--3 .campaign__texts .textbox__copy,
.block--campaign.block--campaign-left.palette.palette--3 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--3 .campaign__texts p {
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--4 .campaign__texts {
  background-color: #78bee7;
  color: #302a38;
}
.block--campaign.block--campaign-left.palette.palette--4 .campaign__texts .textbox__copy,
.block--campaign.block--campaign-left.palette.palette--4 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--4 .campaign__texts p {
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--5 .campaign__texts {
  background-color: #69271f;
  color: #eeeee7;
}
.block--campaign.block--campaign-left.palette.palette--5 .campaign__texts .textbox__copy,
.block--campaign.block--campaign-left.palette.palette--5 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--5 .campaign__texts p {
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--6 .campaign__texts {
  background-color: #18598a;
  color: #eeeee7;
}
.block--campaign.block--campaign-left.palette.palette--6 .campaign__texts .textbox__copy,
.block--campaign.block--campaign-left.palette.palette--6 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--6 .campaign__texts p {
  color: inherit;
}
@media (max-width: 767px) {
  .block--campaign {
    margin-left: 0;
  }
}
.block--campaign.block--campaign-simple {
  margin-top: var(--space50h);
  margin-bottom: var(--space50h);
  max-width: var(--max-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--space100h);
  padding-right: var(--space100h);
}
.block--campaign.block--campaign-simple.palette {
  margin-top: 0;
  margin-bottom: 0;
}
@media (min-width: 769px) {
  .block--campaign.block--campaign-simple.palette {
    position: relative;
  }
}
.block--campaign.block--campaign-simple:first-child {
  margin-top: 0;
}
.block--campaign .campaign__texts {
  background-color: #eeeee7;
}

/**
* On all colored backgrounds we use 100% black text
* @see T21103 - Farver på tekst og ikoner
 */
/* HEADER ANIMATIONS */
/* EXTRA STYLES */
.swatches__item {
  border-radius: 50%;
  overflow: hidden;
}

article p a.link, h4, h5,
h6, p, .footer__menu--secondary, .extnav a, .langmenu__option + .langmenu__option:before, .langmenu__option:not(.active), .breadcrumbs__container .breadcrumbs ul, .textbox > span, .textbox__event_location,
.textbox__event_date, .accordon--simple .accordon__header, .block ul li,
.block ol li, .block ul li a.link,
.block ol li a.link, .footer__colophon p {
  color: rgba(48, 42, 56, 0.75);
}

/* BASE STYLES */
h1,
.h1, .listings__heading h2 {
  font-size: 1.953rem;
  line-height: 120%;
  letter-spacing: -0.04em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

h2,
.h2, .listmenu > ul > li .menu-heading-wrap > a, .footer__menu, .branding .site-name, .accordon--simple .accordon__item.is-active .accordon__header {
  font-size: 1.563rem;
  line-height: 120%;
  letter-spacing: -0.02em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

article p a.link.link--large, h3,
.h3, .searchbar input, .accordon .accordon__item .accordon__header, .block ul li a.link.link--large,
.block ol li a.link.link--large, .footer__heading {
  font-size: 1.25rem;
  line-height: 120%;
  letter-spacing: -0.02em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

article p a.link, h4, h5,
h6, .extnav a, .breadcrumbs__container .breadcrumbs ul, .block ul li a.link,
.block ol li a.link, .footer__colophon p {
  font-size: 1.1rem;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
  line-height: 120%;
  letter-spacing: 0em;
}

:root {
  --rigsarkivet--font-size: 15px;
  font-size: var(--rigsarkivet--font-size);
}
@media (max-width: 1023px) {
  :root {
    --rigsarkivet--font-size: 14px;
  }
}

body, .footer__menu--secondary {
  font-size: var(--rigsarkivet--font-size);
  line-height: 120%;
  letter-spacing: -0.02em;
}

p, .footer__menu--secondary, .textbox > span, .textbox__event_location,
.textbox__event_date, .accordon--simple .accordon__header, .block ul li,
.block ol li {
  margin: 0;
  font-size: 1rem;
  line-height: 120%;
}

.block--contact {
  margin-left: var(--space100h);
  margin-right: var(--space100h);
  margin-top: var(--space50h);
  margin-bottom: var(--space50h);
  display: flex;
  flex-wrap: wrap;
  justify-content: right;
}
.block--contact .contact---wrap {
  margin-left: var(--space100h);
  display: flex;
  flex-wrap: wrap;
  justify-content: right;
  width: 75%;
}
.block--contact .contact---wrap .contact--information {
  padding-top: var(--space50h);
  display: flex;
}
.block--contact .contact---wrap .contact--information .contact--basicinfo--wrap {
  display: flex;
  width: 66.6666666667%;
  justify-content: right;
}
.block--contact .contact---wrap .contact--information .contact--basicinfo--wrap .basicinfo {
  width: 41.6666666667%;
  margin-right: var(--space50h);
  color: rgba(48, 42, 56, 0.64);
}
.block--contact .contact---wrap .contact--information .contact--basicinfo--wrap .basicinfo .contact--name {
  font-weight: bold;
  margin-bottom: var(--space25h);
  color: rgba(48, 42, 56, 0.9);
}
.block--contact .contact---wrap .contact--information .contact--basicinfo--wrap .basicinfo .contact--department {
  margin-bottom: var(--space25h);
}
.block--contact .contact---wrap .contact--information .contact--basicinfo--wrap .basicinfo p {
  margin-bottom: 1.2vw;
}
.block--contact .contact---wrap .contact--information .contact--basicinfo--wrap .basicinfo ol li,
.block--contact .contact---wrap .contact--information .contact--basicinfo--wrap .basicinfo ul li {
  margin-bottom: 0.5vw;
}
.block--contact .contact---wrap .contact--information .contact--basicinfo--wrap .contact--contactinfo {
  margin-top: var(--space50h);
  margin-right: var(--space100h);
  margin-left: var(--space50h);
  width: 41.6666666667%;
}
.block--contact .contact---wrap .contact--information .contact--basicinfo--wrap .contact--contactinfo ul {
  margin-top: 0;
  list-style-type: none;
  margin-left: 0;
}
.block--contact .contact---wrap .contact--information .contact--basicinfo--wrap .contact--contactinfo ul li {
  margin-bottom: var(--space25h);
  color: rgba(48, 42, 56, 0.64);
}
.block--contact .contact---wrap .contact--information .contact--image {
  width: 25%;
}
@media (max-width: 767px) {
  .block--contact .textpanel header {
    width: 100% !important;
  }
  .block--contact .block--contact {
    justify-content: left !important;
    flex-wrap: inherit !important;
  }
  .block--contact .contact---wrap {
    width: 66.6666666667%;
  }
  .block--contact .basicinfo {
    width: 100% !important;
    margin: 0 !important;
  }
  .block--contact .contact--information {
    width: 100% !important;
    display: block !important;
    padding-top: 0 !important;
  }
  .block--contact .contact--image {
    width: 100% !important;
    margin-left: 0 !important;
  }
  .block--contact .contact--contactinfo {
    width: 100% !important;
  }
  .block--contact .contact--basicinfo--wrap {
    width: 100% !important;
    display: block !important;
  }
}

/**
* On all colored backgrounds we use 100% black text
* @see T21103 - Farver på tekst og ikoner
 */
/* HEADER ANIMATIONS */
/* EXTRA STYLES */
.swatches__item {
  border-radius: 50%;
  overflow: hidden;
}

article p a.link, h4, h5,
h6, p, .footer__menu--secondary, .extnav a, .langmenu__option + .langmenu__option:before, .langmenu__option:not(.active), .breadcrumbs__container .breadcrumbs ul, .textbox > span, .textbox__event_location,
.textbox__event_date, .accordon--simple .accordon__header, .block ul li,
.block ol li, .block ul li a.link,
.block ol li a.link, .footer__colophon p {
  color: rgba(48, 42, 56, 0.75);
}

/* BASE STYLES */
h1,
.h1, .listings__heading h2 {
  font-size: 1.953rem;
  line-height: 120%;
  letter-spacing: -0.04em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

h2,
.h2, .listmenu > ul > li .menu-heading-wrap > a, .footer__menu, .branding .site-name, .accordon--simple .accordon__item.is-active .accordon__header {
  font-size: 1.563rem;
  line-height: 120%;
  letter-spacing: -0.02em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

article p a.link.link--large, h3,
.h3, .searchbar input, .accordon .accordon__item .accordon__header, .block ul li a.link.link--large,
.block ol li a.link.link--large, .footer__heading {
  font-size: 1.25rem;
  line-height: 120%;
  letter-spacing: -0.02em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

article p a.link, h4, h5,
h6, .extnav a, .breadcrumbs__container .breadcrumbs ul, .block ul li a.link,
.block ol li a.link, .footer__colophon p {
  font-size: 1.1rem;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
  line-height: 120%;
  letter-spacing: 0em;
}

:root {
  --rigsarkivet--font-size: 15px;
  font-size: var(--rigsarkivet--font-size);
}
@media (max-width: 1023px) {
  :root {
    --rigsarkivet--font-size: 14px;
  }
}

body, .footer__menu--secondary {
  font-size: var(--rigsarkivet--font-size);
  line-height: 120%;
  letter-spacing: -0.02em;
}

p, .footer__menu--secondary, .textbox > span, .textbox__event_location,
.textbox__event_date, .accordon--simple .accordon__header, .block ul li,
.block ol li {
  margin: 0;
  font-size: 1rem;
  line-height: 120%;
}

.block--contact--info {
  margin: var(--space50h) var(--space100h);
  display: flex;
  flex-wrap: wrap;
  justify-content: right;
}
.block--contact--info .contact---wrap .contact--information {
  display: flex;
  margin-right: 22.2222222222%;
}
.block--contact--info .contact---wrap .contact--information .basicinfo .subheading {
  margin-top: 0 !important;
  margin-bottom: var(--space50h);
  color: rgba(48, 42, 56, 0.9);
}
.block--contact--info .contact---wrap .contact--information .contact--contactinfo {
  margin-top: var(--space25h);
}
.block--contact--info .contact---wrap .contact--information .contact--contactinfo ul {
  margin-top: 0;
  list-style-type: none;
  margin-left: 0;
}
.block--contact--info .contact---wrap .contact--information .contact--contactinfo ul li {
  margin-bottom: 20px;
  color: rgba(48, 42, 56, 0.64);
}
.block--contact--info .contact---wrap .contact--information .contact--image {
  width: 25%;
}
@media (max-width: 767px) {
  .block--contact--info {
    margin-right: 0;
    margin-left: 0;
    display: block;
  }
  .block--contact--info .textpanel header {
    width: 100% !important;
  }
  .block--contact--info .block--contact {
    justify-content: left !important;
    flex-wrap: inherit !important;
  }
  .block--contact--info .basicinfo {
    width: 100% !important;
    margin: 0 !important;
  }
  .block--contact--info .contact--information {
    width: 100% !important;
    display: block !important;
    padding-top: 0 !important;
  }
  .block--contact--info .contact--image {
    width: 100% !important;
    margin-left: 0 !important;
  }
  .block--contact--info .contact--contactinfo {
    margin-top: 20px !important;
  }
}

.block--separationline .separationline::after {
  content: "";
  display: block;
  border-bottom: 2px solid rgba(48, 42, 56, 0.05);
}

@media print {
  html,
body {
    margin: 0;
    border: initial;
    border-radius: initial;
    width: initial;
    min-height: initial;
    box-shadow: initial;
    background: initial;
    page-break-after: always;
  }

  p {
    font-size: 16px !important;
  }

  .site-header,
.site-footer,
.content__navigations {
    display: none !important;
  }

  .content-wrapper {
    min-height: 0;
    background-color: #fff;
  }

  .block {
    display: block !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    justify-content: left !important;
    position: relative;
    width: 100% !important;
    margin-top: 20px !important;
    margin-bottom: 20px !important;
  }
  .block h3 {
    margin-bottom: 10px !important;
  }
  .block header {
    width: 100% !important;
  }
  .block picture {
    display: none !important;
    margin: 0 !important;
  }
  .block .listings {
    width: 100% !important;
    display: block !important;
  }
  .block .listings__heading,
.block .textbox {
    width: 100% !important;
    margin: 0 !important;
  }
  .block .listings__list {
    margin-top: 20px;
  }
  .block .textbox__icons {
    display: none !important;
  }
  .block article {
    width: 100% !important;
    display: block !important;
    background-color: #fff !important;
    margin-bottom: 10px !important;
    margin-top: 10px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .block article header {
    width: 100% !important;
    display: block !important;
  }
  .block article section {
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: 10px !important;
  }
  .block article ol,
.block article ul {
    padding-left: 20px !important;
  }
  .block .campaign {
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    position: relative;
    top: 0 !important;
    display: block;
  }
  .block .campaign .campaign__texts {
    padding: 0;
    position: relative;
    margin-bottom: 20px;
    margin-top: 20px;
    width: 100% !important;
    max-width: 100% !important;
    background-color: #fff !important;
  }
  .block .campaign .campaign__texts .textbox {
    margin: 0 !important;
    margin-bottom: 20px !important;
  }
  .block.palette {
    background-color: transparent !important;
    padding: 0 !important;
  }
  .block.palette p {
    color: rgba(48, 42, 56, 0.64) !important;
  }
  .block.palette h2 {
    color: #302A38;
  }
  .block.block--contact .textpanel, .block.block--contact--info .textpanel {
    width: 100% !important;
    margin: 0 !important;
  }
  .block.block--contact .contact---wrap, .block.block--contact--info .contact---wrap {
    width: 100% !important;
    margin: 0 !important;
  }
  .block.block--contact .contact---wrap .contact--information,
.block.block--contact .contact---wrap .basicinfo,
.block.block--contact .contact---wrap .contact--contactinfo, .block.block--contact--info .contact---wrap .contact--information,
.block.block--contact--info .contact---wrap .basicinfo,
.block.block--contact--info .contact---wrap .contact--contactinfo {
    width: 100% !important;
    margin: 0 !important;
    display: block !important;
    padding-top: 0 !important;
  }
  .block.block--contact .contact---wrap .contact--information .basicinfo,
.block.block--contact .contact---wrap .basicinfo .basicinfo,
.block.block--contact .contact---wrap .contact--contactinfo .basicinfo, .block.block--contact--info .contact---wrap .contact--information .basicinfo,
.block.block--contact--info .contact---wrap .basicinfo .basicinfo,
.block.block--contact--info .contact---wrap .contact--contactinfo .basicinfo {
    width: 100% !important;
  }
  .block.block--image {
    display: none !important;
  }
  .block.block--article {
    margin-bottom: 10px !important;
    margin-top: 10px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    display: block !important;
    width: 100% !important;
  }
  .block.block--article .listings {
    width: 100% !important;
    display: block !important;
  }
  .block.block--article .listings .listings__heading {
    width: 100% !important;
    display: block !important;
    text-align: left !important;
  }
  .block.block--article .listings .listings__heading h2 {
    width: 100% !important;
    display: block !important;
    text-align: left !important;
  }
  .block.block--article .listings .listings__list {
    width: 100% !important;
    margin-top: 10px !important;
    display: block !important;
  }
  .block.block--article .listings .listings__list .listings__item {
    width: 100% !important;
    display: block !important;
    height: auto !important;
    margin: 0 !important;
  }
  .block.block--article .listings .listings__list .listings__item .textbox__title {
    margin-top: 10px !important;
  }
  .block.block--article .listings .listings__list .listings__item .textbox {
    height: 100% !important;
    height: auto !important;
    margin: 0 !important;
    width: 100% !important;
    display: block !important;
  }
  .block.block--article .listings .listings__list .listings__item .textbox .textbox__copy {
    margin-top: 0 !important;
  }
  .block.block--article .listings .listings__list .listings__item .textbox .textbox__icons {
    display: none !important;
    margin: 0 !important;
  }
  .block.block--article .textpanel {
    width: 100% !important;
    display: block !important;
  }
  .block.block--article .textpanel header {
    display: block !important;
    width: 100% !important;
    margin-right: 0 !important;
  }
  .block.block--references {
    padding: 0 !important;
    display: block !important;
    margin-top: 10px !important;
    margin-bottom: 10px !important;
    clear: both !important;
    width: 100% !important;
  }
  .block.block--references .listings {
    width: 100% !important;
    display: block !important;
  }
  .block.block--references .listings .listings__heading {
    width: 100% !important;
    display: block !important;
    text-align: left !important;
  }
  .block.block--references .listings .listings__heading h2 {
    width: 100% !important;
    display: block !important;
    text-align: left !important;
  }
  .block.block--references .listings .listings__list {
    width: 100% !important;
    margin-top: 10px !important;
    display: block !important;
  }
  .block.block--references .listings .listings__list .listings__item {
    width: 100% !important;
    display: block !important;
    height: auto !important;
    margin: 0 !important;
  }
  .block.block--references .listings .listings__list .listings__item .textbox__title {
    margin-top: 10px !important;
  }
  .block.block--references .listings .listings__list .listings__item .textbox {
    height: 100% !important;
    height: auto !important;
    margin: 0 !important;
    width: 100% !important;
    display: block !important;
    overflow-wrap: normal !important;
  }
  .block.block--references .listings .listings__list .listings__item .textbox .textbox__copy {
    margin-top: 0 !important;
  }
  .block.block--references .listings .listings__list .listings__item .textbox .textbox__icons {
    display: none !important;
    margin: 0 !important;
  }
  .block.block--walkthroughs .listings {
    width: 100% !important;
    display: block !important;
  }
  .block.block--walkthroughs .listings .listings__heading {
    width: 100% !important;
    display: block !important;
    margin: 0 !important;
    margin-bottom: 10px !important;
    padding: 0 !important;
  }
  .block.block--walkthroughs .listings .listings__heading h2 {
    width: 100% !important;
    display: block !important;
    margin: 0 !important;
    margin-bottom: 10px !important;
    padding: 0 !important;
  }
  .block.block--walkthroughs .listings .listings__list {
    margin-top: 0 !important;
    display: block !important;
    width: 100% !important;
  }
  .block.block--walkthroughs .listings .listings__list .listings__item {
    margin-bottom: 20px !important;
    padding: 0 !important;
    width: 100% !important;
    display: block !important;
    height: auto !important;
  }
  .block.block--walkthroughs .listings .listings__list .listings__item .textbox {
    height: auto !important;
    width: 100% !important;
    display: block !important;
  }
  .block.block--walkthroughs .listings .listings__list .listings__item .textbox .textbox__label {
    margin-bottom: 10px !important;
    display: block !important;
  }
  .block.block--walkthroughs .listings .listings__list .listings__item .textbox .textbox__title {
    margin-top: 0 !important;
    margin-bottom: 10px !important;
    display: block !important;
  }
  .block.block--walkthroughs .listings .listings__list .listings__item .textbox .textbox__copy {
    margin-top: 0 !important;
    display: block !important;
  }
  .block .harmonica {
    width: 100% !important;
  }
  .block .harmonica .accordon {
    margin-top: 20px !important;
  }
  .block .harmonica .accordon__item {
    padding-top: 10px !important;
    margin-top: 0 !important;
  }
  .block .harmonica .accordon__item .accordon__panel {
    width: 100% !important;
    margin: 0 !important;
    visibility: visible !important;
    height: auto !important;
  }
  .block .harmonica .accordon__item .accordon__panel .accordon__content {
    padding: 0 !important;
  }
  .block .harmonica .accordon__trigger .icon {
    display: none !important;
  }
  .block.block--quote {
    padding: 0 !important;
    margin-top: 10px !important;
    margin-bottom: 10px !important;
  }
  .block.block--quote .quote {
    width: 100% !important;
  }
  .block.block--quote .quote figure {
    display: block !important;
  }
  .block.block--quote blockquote {
    width: 100% !important;
  }
  .block.block--quote figcaption {
    margin: 0 !important;
    width: 100% !important;
  }
  .block.block--news {
    display: none !important;
  }
  .block .accordon--simple .accordon__item.is-active .accordon__panel:after {
    display: none !important;
  }
  .block .accordon__item .accordon__trigger span {
    padding-left: 0 !important;
  }

  span.print-page {
    display: none !important;
  }
}
/* Not found Page */
.notfound_wrapper {
  margin-left: 21.5%;
  margin-right: var(--space100h);
  margin-bottom: var(--space50h);
}
.notfound_wrapper a {
  text-decoration: underline;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhcmlhYmxlcy9fY29sb3JzLnNjc3MiLCJ1dGlsaXRpZXMvX21peGlucy5zY3NzIiwidXRpbGl0aWVzL19pbmNsdWRlLW1lZGlhLnNjc3MiLCJiYXNlLnNjc3MiLCJ2ZW5kb3JzL19hY2NvcmRpb24uc2NzcyIsInZlbmRvcnMvX2Ryb3Bkb3duLnNjc3MiLCJjb21wb25lbnRzL19pY29uLnNjc3MiLCJjb21wb25lbnRzL19uYXZpZ2F0aW9uLnNjc3MiLCJjb21wb25lbnRzL19sYW5nbWVudS5zY3NzIiwiY29tcG9uZW50cy9fdG9jLnNjc3MiLCJjb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzIiwiY29tcG9uZW50cy9fYnJhbmRpbmcuc2NzcyIsImNvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwiY29tcG9uZW50cy9fYnVyZ2VyLnNjc3MiLCJjb21wb25lbnRzL19zZWFyY2hiYXIuc2NzcyIsImNvbXBvbmVudHMvX3RleHRib3guc2NzcyIsImNvbXBvbmVudHMvX3RleHRwYW5lbC5zY3NzIiwiY29tcG9uZW50cy9fYWNjb3JkaW9uLnNjc3MiLCJjb21wb25lbnRzL19saXN0aW5ncy5zY3NzIiwiY29tcG9uZW50cy9fY2FtcGFpZ24uc2NzcyIsImNvbXBvbmVudHMvX3NpZGViYXIuc2NzcyIsImNvbXBvbmVudHMvX2Jsb2Nrcy5zY3NzIiwiY29tcG9uZW50cy9fc2ltcGxlYm94LnNjc3MiLCJibG9ja3MvaGVyby5zY3NzIiwiYmxvY2tzL19oZWFkZXIuc2NzcyIsImJsb2Nrcy9fZm9vdGVyLnNjc3MiLCJibG9ja3MvX2NhbXBhaWduLnNjc3MiLCJibG9ja3MvX2NvbnRhY3Quc2NzcyIsImJsb2Nrcy9fY29udGFjdGluZm8uc2NzcyIsImJsb2Nrcy9fc2VwYXJhdGlvbmxpbmUuc2NzcyIsInByaW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQWFBO0FBQUE7QUFBQTtBQUFBO0FDOEJBO0FBa0JBO0FBQ0E7RUFDSTtFQUNBOzs7QUFHSjtBQUFB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O0lBQ0E7OztFQUlGO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBRUE7SUFDRTs7RUFHRjtJQUNFOztFQUdGO0lBQ0U7SUFDQTs7RUFHRjtJQUNFO0lBQ0E7O0VBR0Y7QUFBQTtJQUVFO0lBQ0E7O0VBR0Y7SUFDRTs7RUFHRjtJQUNFOztFQUdGO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBRUE7SUFDRTtJQUNBOztFQUdGO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7O0VBR0Y7QUFBQTtJQUVFOztFQUdKO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUVBO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBRUE7SUFDRTtJQUNBOztFQUlOO0lBQ0U7SUFDQTs7RUFDQTtJQUNFOztFQUVGO0lBQ0U7O0VBS0Y7SUFDRTtJQUNBOztFQUVGO0lBQ0U7SUFDQTs7RUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBR0U7SUFDQTtJQUNBO0lBQ0E7O0VBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQUNFOztFQUtSO0lBQ0U7O0VBRUY7SUFDRTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBQ0E7SUFDRTtJQUNBOztFQUNBO0lBQ0U7SUFDQTtJQUNBOztFQUNBO0lBQ0U7SUFDQTtJQUNBOztFQUdKO0lBQ0U7SUFDQTtJQUNBOztFQUNBO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7O0VBQ0E7SUFDRTs7RUFFRjtJQUNFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBQ0E7SUFDRTs7RUFFRjtJQUNFO0lBQ0E7O0VBTVY7SUFDRTtJQUNBOztFQUNBO0lBQ0U7SUFDQTtJQUNBOztFQUlOO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUNBO0lBQ0U7SUFDQTs7RUFDQTtJQUNFO0lBQ0E7SUFDQTs7RUFDQTtJQUNFO0lBQ0E7SUFDQTs7RUFHSjtJQUNFO0lBQ0E7SUFDQTs7RUFDQTtJQUNFO0lBQ0E7SUFDQTtJQUNBOztFQUNBO0lBQ0U7O0VBRUY7SUFDRTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBQ0E7SUFDRTs7RUFFRjtJQUNFO0lBQ0E7O0VBU1Y7SUFDRTtJQUNBOztFQUNBO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7RUFDQTtJQUNFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBSUo7SUFDRTtJQUNBO0lBQ0E7O0VBQ0E7SUFDRTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUNBO0lBQ0U7SUFDQTtJQUNBOztFQUNBO0lBQ0U7SUFDQTs7RUFFRjtJQUNFO0lBQ0E7SUFDQTs7RUFFRjtJQUNFO0lBQ0E7O0VBT1o7SUFDRTs7RUFDQTtJQUNFOztFQUVGO0lBQ0U7SUFDQTs7RUFDQTtJQUNFO0lBQ0E7SUFDQTtJQUNBOztFQUNBO0lBQ0U7O0VBS0o7SUFDRTs7RUFLTjtJQUNFO0lBQ0E7SUFDQTs7RUFDQTtJQUNFOztFQUNBO0lBQ0U7O0VBR0o7SUFDRTs7RUFFRjtJQUNFO0lBQ0E7O0VBSUo7SUFDRTs7RUFHRjtJQUNFOztFQUdGO0lBQ0U7OztFQVdKO0lBQ0U7OztBM0JrSEo7QUFDQTtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJIiwiZmlsZSI6ImJhc2UuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiJGNvbG9yczogKFxuICBcImJsYWNrXCI6IzAwMDAwMCxcbiAgXCJkYXJrXCI6ICMzMDJhMzgsXG4gIFwiZGFyay1hbHRcIjogIzc1NzE3NyxcbiAgXCJsaWdodFwiOiAjZWVlZWU3LFxuICBcInllbGxvd1wiOiAjZjRiZDJjLFxuICBcImdyZWVuXCI6ICM0N2JmODAsXG4gIFwicmVkXCI6ICNmMTZlNGIsXG4gIFwiYmx1ZVwiOiAjNzhiZWU3LFxuICBcInJlZC1hbHRcIjogIzY5MjcxZixcbiAgXCJibHVlLWFsdFwiOiAjMTg1OThhLFxuKTtcblxuLyoqXG4qIE9uIGFsbCBjb2xvcmVkIGJhY2tncm91bmRzIHdlIHVzZSAxMDAlIGJsYWNrIHRleHRcbiogQHNlZSBUMjExMDMgLSBGYXJ2ZXIgcMOlIHRla3N0IG9nIGlrb25lclxuICovXG4kcGFsZXR0ZTogKFxuICBcInllbGxvd1wiOiAoXG4vLyAgICAndHh0JyA6IG1hcC1nZXQoJGNvbG9ycywgJ2RhcmsnKSxcbiAgICBcInR4dFwiOiB0cmFuc3BhcmVudGl6ZShtYXAtZ2V0KCRjb2xvcnMsIFwiZGFya1wiKSwgMCksXG4gICAgXCJiZ1wiOiBtYXAtZ2V0KCRjb2xvcnMsIFwieWVsbG93XCIpLFxuICApLFxuICBcImdyZWVuXCI6IChcbi8vICAgICd0eHQnIDogbWFwLWdldCgkY29sb3JzLCAnZGFyaycpLFxuICAgXCJ0eHRcIjogdHJhbnNwYXJlbnRpemUobWFwLWdldCgkY29sb3JzLCBcImRhcmtcIiksIDApLFxuICAgIFwiYmdcIjogbWFwLWdldCgkY29sb3JzLCBcImdyZWVuXCIpLFxuICApLFxuICBcInJlZFwiOiAoXG4vLyAgICAndHh0JyA6IG1hcC1nZXQoJGNvbG9ycywgJ2RhcmsnKSxcbiAgIFwidHh0XCI6IHRyYW5zcGFyZW50aXplKG1hcC1nZXQoJGNvbG9ycywgXCJkYXJrXCIpLCAwKSxcbiAgICBcImJnXCI6IG1hcC1nZXQoJGNvbG9ycywgXCJyZWRcIiksXG4gICksXG4gIFwiYmx1ZVwiOiAoXG4gIC8vICBcInR4dFwiOiBtYXAtZ2V0KCRjb2xvcnMsIFwiZGFya1wiKSxcbiAgIFwidHh0XCI6IHRyYW5zcGFyZW50aXplKG1hcC1nZXQoJGNvbG9ycywgXCJkYXJrXCIpLCAwKSxcbiAgICBcImJnXCI6IG1hcC1nZXQoJGNvbG9ycywgXCJibHVlXCIpLFxuICApLFxuICBcImRhcmtyZWRcIjogKFxuICAgICd0eHQnIDogbWFwLWdldCgkY29sb3JzLCAnbGlnaHQnKSxcbiAgLy8gIFwidHh0XCI6IHRyYW5zcGFyZW50aXplKG1hcC1nZXQoJGNvbG9ycywgXCJsaWdodFwiKSwgMC4zMyksXG4gICAgXCJiZ1wiOiBtYXAtZ2V0KCRjb2xvcnMsIFwicmVkLWFsdFwiKSxcbiAgKSxcbiAgXCJkYXJrYmx1ZVwiOiAoXG4gICAgJ3R4dCcgOiBtYXAtZ2V0KCRjb2xvcnMsICdsaWdodCcpLFxuICAvLyAgXCJ0eHRcIjogdHJhbnNwYXJlbnRpemUobWFwLWdldCgkY29sb3JzLCBcImxpZ2h0XCIpLCAwLjMzKSxcbiAgICBcImJnXCI6IG1hcC1nZXQoJGNvbG9ycywgXCJibHVlLWFsdFwiKSxcbiAgKSxcbik7XG4iLCJAbWl4aW4gYm9yZGVybGluZSgkdHlwZTogMSkge1xuICAgIEBpZiAkdHlwZSA9PSAyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHJnYmEobWFwLWdldCgkY29sb3JzLCBcImRhcmtcIiksIDAuMik7XG4gICAgfSBAZWxzZSBpZiAkdHlwZSA9PSAzIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHJnYmEobWFwLWdldCgkY29sb3JzLCBcImRhcmtcIiksIDAuMDUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgbWFwLWdldCgkY29sb3JzLCBcImRhcmtcIik7XG4gICAgfVxufVxuXG5AbWl4aW4gc3BhY2VyKCRydWxlLCAkdmFsdWU6IDEwMCwgJG9yaWVudGF0aW9uOiBcImhcIiwgJG11bHQ6IDEpIHtcbiAgICBAaWYgJHZhbHVlID09IDEwMCB7XG4gICAgICAgICN7JHJ1bGV9OiAjeyhtYXRoLmRpdigxMDAsIDE0KSAqICRtdWx0KX12dztcbiAgICB9IEBlbHNlIGlmICR2YWx1ZSA9PSA1MCB7XG4gICAgICAgICN7JHJ1bGV9OiAje21hdGguZGl2KDEwMCwgMjgpfXZ3O1xuICAgIH0gQGVsc2UgaWYgJHZhbHVlID09IDI1IHtcbiAgICAgICAgI3skcnVsZX06IDI1cHg7XG4gICAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gMTUge1xuICAgICAgICAjeyRydWxlfTogMTVweDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQGRlYnVnIFwiU3BhY2VyIG1peGluOiBWYWx1ZSBjaG9pY2VzIGFyZSBvbmx5IDEwMCwgNTAsIDI1IGFuZCAxNVwiO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICBAaWYgJHZhbHVlID09IDEwMCB7XG4gICAgICAgICAgICBAaWYgJG9yaWVudGF0aW9uID09IFwid1wiIHtcbiAgICAgICAgICAgICAgICAjeyRydWxlfTogI3sobWF0aC5kaXYoMTAwLCAxNCkgKiAkbXVsdCl9dnc7XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAjeyRydWxlfTogI3sobWF0aC5kaXYoMTAwLCA3KSAqICRtdWx0KX12dztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gNTAge1xuICAgICAgICAgICAgI3skcnVsZX06ICN7bWF0aC5kaXYoMTAwLCAxNCl9dnc7XG4gICAgICAgIH0gQGVsc2UgaWYgJHZhbHVlID09IDI1IHtcbiAgICAgICAgICAgICN7JHJ1bGV9OiAxNXB4O1xuICAgICAgICB9IEBlbHNlIGlmICR2YWx1ZSA9PSAxNSB7XG4gICAgICAgICAgICBAaWYgJG9yaWVudGF0aW9uID09IFwid1wiIHtcbiAgICAgICAgICAgICAgICAjeyRydWxlfTogMTBweDtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICN7JHJ1bGV9OiAxNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBIRUFERVIgQU5JTUFUSU9OUyAqL1xuXG5AbWl4aW4gYWN0aXZlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgbWF4LWhlaWdodDogMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgJHRyYW5zaXRpb24tZHVyYXRpb24gbGluZWFyO1xufVxuXG5AbWl4aW4gaGVhZGVyLWRlZmF1bHQtcHNldWRvKCR2YWx1ZSkge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGluY2x1ZGUgc3BhY2VyKFwiaGVpZ2h0XCIsICR2YWx1ZSk7XG4gICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAkdHJhbnNpdGlvbi1kdXJhdGlvbjtcbn1cblxuLyogRVhUUkEgU1RZTEVTICovXG4lY2lyY2xlIHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuJW9wYWM2NCB7XG4gICAgLy9vcGFjaXR5OiAwLjY3O1xuICAgIGNvbG9yOiByZ2JhKDQ4LCA0MiwgNTYsIC43NSk7XG59XG5cbkBtaXhpbiBoZWFkZXItdG9wLWhlaWdodCgkcnVsZSwgJHZhbHVlOiA1MCkge1xuICAgIEBpZiAoJHJ1bGUgPT0gXCJtaW5cIikge1xuICAgICAgICBtaW4taGVpZ2h0OiAjeyR2YWx1ZX1weDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgbWF4LWhlaWdodDogI3skdmFsdWV9cHg7XG4gICAgfVxufVxuXG4vKiBCQVNFIFNUWUxFUyAqL1xuXG4laDEge1xuICAgIC8vZm9udC1zaXplOiAyN3B4O1xuICAgIGZvbnQtc2l6ZTogMS45NTNyZW07XG4gICAgLy9saW5lLWhlaWdodDogMjdweDtcbiAgICBsaW5lLWhlaWdodDogMTIwJTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDRlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtZmFtaWx5OiBcIlJhLUdvcm0tU2VtaWJvbGRcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgLy9AaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgIC8vICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICAvLyAgICBsaW5lLWhlaWdodDogMjVweDtcbiAgICAvL31cbiAgICAvL0BpbmNsdWRlIG1lZGlhKFwiPj1sYXJnZVwiKSB7XG4gICAgLy8gIGZvbnQtc2l6ZTogMS45M3Z3O1xuICAgIC8vICBsaW5lLWhlaWdodDogMS45M3Z3O1xuICAgIC8vICBsZXR0ZXItc3BhY2luZzogLTAuMDRlbTtcbiAgICAvL31cbn1cblxuJWgyIHtcbiAgICAvL2ZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXNpemU6IDEuNTYzcmVtO1xuICAgIC8vbGluZS1oZWlnaHQ6IDE5cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEyMCU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LWZhbWlseTogXCJSYS1Hb3JtLVNlbWlib2xkXCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIC8vQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAvLyAgICBmb250LXNpemU6IDE2cHg7XG4gICAgLy8gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgLy99XG4gICAgLy9AaW5jbHVkZSBtZWRpYShcIj49bGFyZ2VcIikge1xuICAgIC8vICAgIGZvbnQtc2l6ZTogMS4zdnc7XG4gICAgLy8gICAgbGluZS1oZWlnaHQ6IDEuNXZ3O1xuICAgIC8vICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIC8vfVxufVxuXG4laDMge1xuICAgIC8vZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAvL2xpbmUtaGVpZ2h0OiAxN3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMjAlO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1mYW1pbHk6IFwiUmEtR29ybS1TZW1pYm9sZFwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAvL0BpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgLy8gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIC8vICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIC8vfVxuICAgIC8vQGluY2x1ZGUgbWVkaWEoXCI+PWxhcmdlXCIpIHtcbiAgICAvLyAgICBmb250LXNpemU6IDEuMDd2dztcbiAgICAvLyAgICBsaW5lLWhlaWdodDogMS4ydnc7XG4gICAgLy99XG59XG5cbiVoNCB7XG4gICAgLy9mb250LXNpemU6IDExcHg7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgZm9udC1mYW1pbHk6IFwiUmEtR29ybS1TZW1pYm9sZFwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAvL2xpbmUtaGVpZ2h0OiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMjAlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwZW07XG4gICAgQGV4dGVuZCAlb3BhYzY0O1xuICAgIC8vQGluY2x1ZGUgbWVkaWEoXCI+PWxhcmdlXCIpIHtcbiAgICAvLyAgICBmb250LXNpemU6IDAuNzg1dnc7XG4gICAgLy8gICAgbGluZS1oZWlnaHQ6IDAuOTN2dztcbiAgICAvL31cbn1cbjpyb290IHtcbiAgICAtLXJpZ3NhcmtpdmV0LS1mb250LXNpemU6IDE1cHg7XG4gICAgZm9udC1zaXplOiB2YXIoLS1yaWdzYXJraXZldC0tZm9udC1zaXplKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPGRlc2t0b3BcIikge1xuICAgICAgICAtLXJpZ3NhcmtpdmV0LS1mb250LXNpemU6IDE0cHg7XG4gICAgfVxufVxuJWJvZHkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tcmlnc2Fya2l2ZXQtLWZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6IDEyMCU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG5cbiAgICAvL0BpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgLy8gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIC8vICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIC8vfVxuICAgIC8vQGluY2x1ZGUgbWVkaWEoXCI+PWxhcmdlXCIpIHtcbiAgICAvLyAgICBmb250LXNpemU6IDEuMDd2dztcbiAgICAvLyAgICBsaW5lLWhlaWdodDogMS4ydnc7XG4gICAgLy99XG5cblxufVxuXG4lcCB7XG4gICAgQGV4dGVuZCAlb3BhYzY0O1xuICAgIC8vY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgXCJkYXJrXCIpO1xuICAgIC8vY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgJ2RhcmstYWx0Jyk7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTIwJTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8gICAgIF8gICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgICAgICAgICAgXyBfXG4vLyAgICAoXykgICAgICAgICAgfCB8ICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF8pXG4vLyAgICAgXyBfIF9fICAgX19ffCB8XyAgIF8gIF9ffCB8IF9fXyAgIF8gX18gX19fICAgX19fICBfX3wgfF8gIF9fIF9cbi8vICAgIHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XG4vLyAgICB8IHwgfCB8IHwgKF9ffCB8IHxffCB8IChffCB8ICBfXy8gfCB8IHwgfCB8IHwgIF9fLyAoX3wgfCB8IChffCB8XG4vLyAgICB8X3xffCB8X3xcXF9fX3xffFxcX18sX3xcXF9fLF98XFxfX198IHxffCB8X3wgfF98XFxfX198XFxfXyxffF98XFxfXyxffFxuLy9cbi8vICAgICAgU2ltcGxlLCBlbGVnYW50IGFuZCBtYWludGFpbmFibGUgbWVkaWEgcXVlcmllcyBpbiBTYXNzXG4vLyAgICAgICAgICAgICAgICAgICAgICAgIHYxLjQuOVxuLy9cbi8vICAgICAgICBodHRwczovL2VkdWFyZG9ib3VjYXMuZ2l0aHViLmlvL2luY2x1ZGUtbWVkaWFcbi8vXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcbi8vICAgICAgICAgICAgICAgICAgS2l0dHkgR2lyYXVkZWwgKEBraXR0eWdpcmF1ZGVsKVxuLy9cbi8vICAgICAgVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2Vcbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XG4vLy9cbiRicmVha3BvaW50czogKFxuICAncGhvbmUnOiAzMjBweCxcbiAgJ3RhYmxldCc6IDc2OHB4LFxuICAnZGVza3RvcCc6IDEwMjRweFxuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBzdGF0aWMgZXhwcmVzc2lvbnMgb3IgbWVkaWEgdHlwZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbic6ICdzY3JlZW4nKTtcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXG4vLy8gICk7XG4vLy9cbiRtZWRpYS1leHByZXNzaW9uczogKFxuICAnc2NyZWVuJzogJ3NjcmVlbicsXG4gICdwcmludCc6ICdwcmludCcsXG4gICdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXG4gICdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcbiAgJ3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcbiAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcbiAgJ3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxuLy8vXG4kdW5pdC1pbnRlcnZhbHM6IChcbiAgJ3B4JzogMSxcbiAgJ2VtJzogMC4wMSxcbiAgJ3JlbSc6IDAuMSxcbiAgJyc6IDBcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0Jztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBMb2cgYSBtZXNzYWdlIGVpdGhlciB3aXRoIGBAZXJyb3JgIGlmIHN1cHBvcnRlZFxuLy8vIGVsc2Ugd2l0aCBgQHdhcm5gLCB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgXG4vLy8gdG8gZGV0ZWN0IHN1cHBvcnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AZnVuY3Rpb24gaW0tbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKSB7XG4gICAgQGVycm9yICRtZXNzYWdlO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiAkbWVzc2FnZTtcbiAgICAkXzogbm9vcCgpO1xuICB9XG5cbiAgQHJldHVybiAkbWVzc2FnZTtcbn1cblxuXG4vLy9cbi8vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XG4vLy8gQVBJIHRoYW4gYEBpZiBpbS1sb2coJy4uJykge31gIG9yIGAkXzogaW0tbG9nKCcuLicpYC4gQmFzaWNhbGx5LCB1c2UgdGhlIGZ1bmN0aW9uXG4vLy8gd2l0aGluIGZ1bmN0aW9ucyBiZWNhdXNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW4gYSBmdW5jdGlvblxuLy8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBpbS1sb2coJG1lc3NhZ2UpIHt9XG59XG5cblxuLy8vXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xuLy8vIHRvIHRyaWdnZXIgYSBjb21waWxpbmcgZXJyb3IgYW5kIHN0b3AgdGhlIHByb2Nlc3MuXG4vLy9cbkBmdW5jdGlvbiBub29wKCkge31cblxuLy8vXG4vLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29uZGl0aW9ucyBhcmUgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy9cbkBmdW5jdGlvbiBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSB7XG4gICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQpO1xuXG4gIEBpZiBub3QgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUge1xuICAgIEBpZiBpbS1sb2coJ2AjeyRpbS1uby1tZWRpYS1icmVha3BvaW50fWAgaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludC4nKSB7fVxuICB9XG5cbiAgQGVhY2ggJGNvbmRpdGlvbiBpbiAkY29uZGl0aW9ucyB7XG4gICAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGNvbmRpdGlvbik7XG4gICAgICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgICAgICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGNvbmRpdGlvbiwgJG9wZXJhdG9yKTtcblxuICAgICAgQGlmICgkcHJlZml4ID09ICdtYXgnIGFuZCAkdmFsdWUgPD0gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIG9yXG4gICAgICAgICAgKCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSB7XG4gICAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiBub3QgaW5kZXgoJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vL1xuLy8vIFBhcnNpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIEdldCBvcGVyYXRvciBvZiBhbiBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3Qgb3BlcmF0b3IgZnJvbVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIEFueSBvZiBgPj1gLCBgPmAsIGA8PWAsIGA8YCwgYOKJpWAsIGDiiaRgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbikge1xuICBAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcbiAgICBAaWYgc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgICAgIEByZXR1cm4gJG9wZXJhdG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgJF86IGltLWxvZygnTm8gb3BlcmF0b3IgZm91bmQgaW4gYCN7JGV4cHJlc3Npb259YC4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwYXJzZWQtZGltZW5zaW9uOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sIDAsICRvcGVyYXRvci1pbmRleCAtIDEpO1xuICAkZGltZW5zaW9uOiAnd2lkdGgnO1xuXG4gIEBpZiBzdHItbGVuZ3RoKCRwYXJzZWQtZGltZW5zaW9uKSA+IDAge1xuICAgICRkaW1lbnNpb246ICRwYXJzZWQtZGltZW5zaW9uO1xuICB9XG5cbiAgQHJldHVybiAkZGltZW5zaW9uO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gcHJlZml4IGJhc2VkIG9uIGFuIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3Jcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xuICBAcmV0dXJuIGlmKGluZGV4KCgnPCcsICc8PScsICfiiaQnKSwgJG9wZXJhdG9yKSwgJ21heCcsICdtaW4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkdmFsdWU6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyLWxlbmd0aCgkb3BlcmF0b3IpKTtcblxuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICAkdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdmFsdWUpO1xuICB9IEBlbHNlIHtcbiAgICAkdmFsdWU6IHRvLW51bWJlcigkdmFsdWUpO1xuICB9XG5cbiAgJGludGVydmFsOiBtYXAtZ2V0KCR1bml0LWludGVydmFscywgdW5pdCgkdmFsdWUpKTtcblxuICBAaWYgbm90ICRpbnRlcnZhbCB7XG4gICAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAgIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gICAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gICAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICAgJF86IGltLWxvZygnVW5rbm93biB1bml0IGAje3VuaXQoJHZhbHVlKX1gLicpO1xuICB9XG5cbiAgQGlmICRvcGVyYXRvciA9PSAnPicge1xuICAgICR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xuICB9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xuICAgICR2YWx1ZTogJHZhbHVlIC0gJGludGVydmFsO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cblxuLy8vXG4vLy8gUGFyc2UgYW4gZXhwcmVzc2lvbiB0byByZXR1cm4gYSB2YWxpZCBtZWRpYS1xdWVyeSBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVmFsaWQgbWVkaWEgcXVlcnlcbi8vL1xuQGZ1bmN0aW9uIHBhcnNlLWV4cHJlc3Npb24oJGV4cHJlc3Npb24pIHtcbiAgLy8gSWYgaXQgaXMgcGFydCBvZiAkbWVkaWEtZXhwcmVzc2lvbnMsIGl0IGhhcyBubyBvcGVyYXRvclxuICAvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICBAaWYgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbikge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKTtcbiAgfVxuXG4gICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pO1xuICAkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuXG4gIEByZXR1cm4gJygjeyRwcmVmaXh9LSN7JGRpbWVuc2lvbn06ICN7JHZhbHVlfSknO1xufVxuXG4vLy9cbi8vLyBTbGljZSBgJGxpc3RgIGJldHdlZW4gYCRzdGFydGAgYW5kIGAkZW5kYCBpbmRleGVzXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNsaWNlXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzdGFydCBbMV0gLSBTdGFydCBpbmRleFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZW5kIFtsZW5ndGgoJGxpc3QpXSAtIEVuZCBpbmRleFxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH0gU2xpY2VkIGxpc3Rcbi8vL1xuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxlbmd0aCgkbGlzdCkpIHtcbiAgQGlmIGxlbmd0aCgkbGlzdCkgPCAxIG9yICRzdGFydCA+ICRlbmQge1xuICAgIEByZXR1cm4gKCk7XG4gIH1cblxuICAkcmVzdWx0OiAoKTtcblxuICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XG4gICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIG50aCgkbGlzdCwgJGkpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8vL1xuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vL1xuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcbiAgICAkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xuICB9XG5cbiAgJGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XG4gICRyZXN1bHQ6IDA7XG4gICRkaWdpdHM6IDA7XG4gICRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcbiAgJG51bWJlcnM6ICgnMCc6IDAsICcxJzogMSwgJzInOiAyLCAnMyc6IDMsICc0JzogNCwgJzUnOiA1LCAnNic6IDYsICc3JzogNywgJzgnOiA4LCAnOSc6IDkpO1xuXG4gIC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxuICBAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XG4gICAgJHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xuXG4gICAgQGlmIG5vdCAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcbiAgICB9XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSAnLicge1xuICAgICAgJGRpZ2l0czogMTtcbiAgICB9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cblxuXG4vLy9cbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcbi8vL1xuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XG4gICR1bml0czogKCdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XG5cbiAgQGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xuICAgICRfOiBpbS1sb2coJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLicpO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWUgKiBtYXAtZ2V0KCR1bml0cywgJHVuaXQpO1xufVxuXG4vLy9cbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2Zcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXG4vLy8gY29uZmlndXJhdGlvbiBzdWNoIGFzIGN1c3RvbSBicmVha3BvaW50cyAocmVmZXJyZWQgdG8gYXMgdHdlYWtwb2ludHMpXG4vLy8gZm9yIGluc3RhbmNlLlxuLy8vXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XG4gIC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xuICAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XG5cbiAgLy8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogbWFwLW1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcblxuICBAY29udGVudDtcblxuICAvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcbn1cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XG4vLy9cbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xuICBAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXG4gICAgICAobm90ICRpbS1tZWRpYS1zdXBwb3J0IGFuZCBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSkge1xuICAgIEBjb250ZW50O1xuICB9IEBlbHNlIGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA+IDApIHtcbiAgICBAbWVkaWEgI3t1bnF1b3RlKHBhcnNlLWV4cHJlc3Npb24obnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XG4gICAgICAvLyBSZWN1cnNpdmUgY2FsbFxuICAgICAgQGluY2x1ZGUgbWVkaWEoc2xpY2UoJGNvbmRpdGlvbnMsIDIpLi4uKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQHVzZSBcInNhc3M6bWF0aFwiO1xuQHVzZSBcInNhc3M6bWFwXCI7XG5AaW1wb3J0IFwidXRpbGl0aWVzL2luY2x1ZGUtbWVkaWFcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXMvZ2VuZXJhbFwiO1xuQGltcG9ydCBcInZhcmlhYmxlcy9icmVha3BvaW50c1wiO1xuQGltcG9ydCBcInZhcmlhYmxlcy9jb2xvcnNcIjtcbkBpbXBvcnQgXCJ1dGlsaXRpZXMvbWl4aW5zXCI7XG5cbjpyb290IHtcbiAgICAvKk1heCB3aWR0aCovXG4gICAgLS1tYXgtd2lkdGg6IDE0MDBweDtcblxuICAgIC8qU3BhY2VycyovXG4gICAgLS1zcGFjZTIwMGg6IDE0LjI4NTcxNDI4NTcxNDI4NnZ3O1xuICAgIC0tc3BhY2UxMDBoOiA3LjE0Mjg1NzE0Mjg1NzE0M3Z3O1xuICAgIC0tc3BhY2U1MGg6IDMuNTcxNDI4NTcxNDI4NTcxdnc7XG5cbiAgICAtLXNwYWNlMjVoOiAxLjU2M3JlbTtcbiAgICAtLXNwYWNlMTVoOiAxcmVtO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MDBweCkge1xuICAgIDpyb290e1xuICAgICAgICAtLXNwYWNlMjAwaDogY2FsYyh2YXIoLS1tYXgtd2lkdGgpLzcpO1xuICAgICAgICAtLXNwYWNlMTAwaDogY2FsYyh2YXIoLS1tYXgtd2lkdGgpLzE0KTtcbiAgICAgICAgLS1zcGFjZTUwaDogY2FsYyh2YXIoLS1tYXgtd2lkdGgpLzI4KTtcbiAgICB9XG59XG5cbi8qISBjcml0aWNhbDpzdGFydCEgKi9cbmh0bWwge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi8vQGltcG9ydCBcInV0aWxpdGllcy9zYW5pdGl6ZVwiO1xuYm9keSB7XG4gICAgLy8gZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1mYW1pbHk6IFwiUmEtSGFyYWxkXCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgXCJsaWdodFwiKTtcbn1cblxuKiB7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgaHlwaGVuczogbm9uZTtcbn1cblxuc3Ryb25nIHtcbiAgICBmb250LWZhbWlseTogXCJSYS1IYXJhbGQtU2VtaWJvbGRcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgICBoeXBoZW5zOiBhdXRvO1xuICAgIGZvbnQtZmFtaWx5OiBcIlJhLUdvcm0tU2VtaWJvbGRcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG59XG5cbnNtYWxsIHtcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbn1cblxuLy8gSUNPTlNcbi5pY29uIHtcbiAgICB3aWR0aDogMWVtO1xuICAgIGhlaWdodDogMWVtO1xuICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICBmb250LXNpemU6IDIxcHg7XG4gICAgfVxufVxuXG4uaWNvbi0tYXJyb3cge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgfVxufVxuXG4uaWNvbi0tc2VhcmNoIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgIH1cbn1cblxuLnNwYWNlckgxMDAge1xuICAgIGhlaWdodDogdmFyKC0tc3BhY2UxMDBoKTtcbn1cblxuLnNwYWNlckg1MCB7XG4gICAgaGVpZ2h0OiB2YXIoLS1zcGFjZTUwaCk7XG59XG5cbi5zcGFjZXJIMjUge1xuICAgIGhlaWdodDogdmFyKC0tc3BhY2UyNWgpO1xufVxuXG4uc3BhY2VySDE1IHtcbiAgICBoZWlnaHQ6IHZhcigtLXNwYWNlMTVoKTtcbn1cblxuLnNwYWNlclcxMDAge1xuICAgIHdpZHRoOiB2YXIoLS1zcGFjZTEwMGgpO1xufVxuXG4uc3BhY2VyVzE1IHtcbiAgICB3aWR0aDogdmFyKC0tc3BhY2UxNWgpO1xufVxuXG5ib2R5IHtcbiAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBcImRhcmtcIik7XG4gICAgbWFyZ2luOiAwO1xuICAgIEBleHRlbmQgJWJvZHk7XG59XG5cbm1haW5bcm9sZT1cIm1haW5cIl0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgIG1heC13aWR0aDogdmFyKC0tbWF4LXdpZHRoKTtcblxuICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlMjVoKTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgLm5hdmlnYXRpb24ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICB9XG59XG5cbmFydGljbGUge1xuICAgICYudGV4dHBhbmVsIHtcbiAgICAgICAgc2VjdGlvbiB7XG4gICAgICAgICAgICAqOm5vdChsaSkge1xuICAgICAgICAgICAgICAgICsqIHtcbiAgICAgICAgICAgICAgICAgICAgLy9AaW5jbHVkZSBzcGFjZXIoJ21hcmdpbi10b3AnLCAyNSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC50YWJsZSB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTI1aCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlMjVoKTtcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG4gICAgICAgICsqIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlMjVoKTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICAgICAgLy8gYmFja2dyb3VuZDpcbiAgICAgICAgICAgIC8vIC8qIFNoYWRvdyBjb3ZlcnMgKi9cbiAgICAgICAgICAgIC8vIGxpbmVhci1ncmFkaWVudCh3aGl0ZSAzMCUsIHJnYmEoMjU1LDI1NSwyNTUsMCkpLFxuICAgICAgICAgICAgLy8gbGluZWFyLWdyYWRpZW50KHJnYmEoMjU1LDI1NSwyNTUsMCksIHdoaXRlIDcwJSkgMCAxMDAlLFxuICAgICAgICAgICAgLy8gLyogU2hhZG93cyAqL1xuICAgICAgICAgICAgLy8gcmFkaWFsLWdyYWRpZW50KDUwJSAwLCBmYXJ0aGVzdC1zaWRlLCByZ2JhKDAsMCwwLC4yKSwgcmdiYSgwLDAsMCwwKSksXG4gICAgICAgICAgICAvLyByYWRpYWwtZ3JhZGllbnQoNTAlIDEwMCUsZmFydGhlc3Qtc2lkZSwgcmdiYSgwLDAsMCwuMiksIHJnYmEoMCwwLDAsMCkpIDAgMTAwJTtcbiAgICAgICAgICAgIC8vIGJhY2tncm91bmQ6XG4gICAgICAgICAgICAvLyAvKiBTaGFkb3cgY292ZXJzICovXG4gICAgICAgICAgICAvLyBsaW5lYXItZ3JhZGllbnQod2hpdGUgMzAlLCByZ2JhKDI1NSwyNTUsMjU1LDApKSxcbiAgICAgICAgICAgIC8vIGxpbmVhci1ncmFkaWVudChyZ2JhKDI1NSwyNTUsMjU1LDApLCB3aGl0ZSA3MCUpIDAgMTAwJSxcbiAgICAgICAgICAgIC8vIC8qIFNoYWRvd3MgKi9cbiAgICAgICAgICAgIC8vIHJhZGlhbC1ncmFkaWVudChmYXJ0aGVzdC1zaWRlIGF0IDUwJSAwLCByZ2JhKDAsMCwwLC4yKSwgcmdiYSgwLDAsMCwwKSksXG4gICAgICAgICAgICAvLyByYWRpYWwtZ3JhZGllbnQoZmFydGhlc3Qtc2lkZSBhdCA1MCUgMTAwJSwgcmdiYSgwLDAsMCwuMiksIHJnYmEoMCwwLDAsMCkpIDAgMTAwJTtcbiAgICAgICAgICAgIC8vIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIC8vIGJhY2tncm91bmQtc2l6ZTogNDBweCAxMDAlICwgNDBweCAxMDAlICwgMTRweCAxMDAlICwgMTRweCAxMDAlO1xuICAgICAgICAgICAgLy8gYmFja2dyb3VuZC1hdHRhY2htZW50OiBsb2NhbCwgbG9jYWwsIHNjcm9sbCwgc2Nyb2xsO1xuICAgICAgICAgICAgPi50YWJsZV9fd3JhcCB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0MDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBwIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICAvLyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC41cztcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgXCJkYXJrXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5saW5rIHtcbiAgICAgICAgICAgICAgICBAZXh0ZW5kICVoNDtcbiAgICAgICAgICAgICAgICAmLmxpbmstLWxhcmdlIHtcbiAgICAgICAgICAgICAgICAgICAgQGV4dGVuZCAlaDM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuLnBhbGV0dGUtLTUsXG4ucGFsZXR0ZS0tNiB7XG4gICAgYXJ0aWNsZSB7XG5cbiAgICAgICAgcCB7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogZGFya2VuKG1hcC1nZXQoJGNvbG9ycywgXCJsaWdodFwiKSwgMTUlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3ZnIHtcbiAgICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgXCJsaWdodFwiKTtcbiAgICB9XG59XG5cbmgxLFxuLmgxIHtcbiAgICBAZXh0ZW5kICVoMTtcbn1cblxuaDIsXG4uaDIge1xuICAgIEBleHRlbmQgJWgyO1xufVxuXG5oMyxcbi5oMyB7XG4gICAgQGV4dGVuZCAlaDM7XG59XG5cbmg0IHtcbiAgICBAZXh0ZW5kICVoNDtcbn1cblxuaDUsXG5oNiB7XG4gICAgQGV4dGVuZCAlaDQ7XG59XG5cbnAge1xuICAgIEBleHRlbmQgJXA7XG4gICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG59XG5cbmEge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxufVxuXG51bCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5tY2UtY29udGVudC1ib2R5IHtcbiAgICB1bCB7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYyAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgb2wge1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWwgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG59XG5cbnVsIHtcbiAgICAmLnVsLS1oeXBoZW5lZCB7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tc3BhY2UyNWgpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwi4oCTXCI7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbnBpY3R1cmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGltZyB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbn1cblxuZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLy8gRk9STVNcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTFweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICAgIC8qIGNsZWFycyB0aGUg4oCYWOKAmSBmcm9tIEludGVybmV0IEV4cGxvcmVyICovXG4gICAgJjo6LW1zLWNsZWFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICB9XG4gICAgJjo6LW1zLXJldmVhbCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgfVxuICAgIC8qIGNsZWFycyB0aGUg4oCYWOKAmSBmcm9tIENocm9tZSAqL1xuICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLnZpc3VhbGx5LWhpZGRlbiB7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB3aWR0aDogMXB4O1xufVxuXG4uZXh0cmEge1xuICAgIC8qIFRoaXMgd2lsbCBiZSByZXRhaW5lZCAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG5cbi8qIEVYVFJBIENMQVNTRVMgKi9cblxuLnN3YXRjaGVzIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi5zd2F0Y2hlc19faXRlbSB7XG4gICAgQGV4dGVuZCAlY2lyY2xlO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgaGVpZ2h0OiA2ZW07XG4gICAgd2lkdGg6IDZlbTtcbiAgICBjb2xvcjogd2hpdGU7XG59XG5cbi8vIEJPUkRFUlNcbi5ib3JkZXJsaW5lMSB7XG4gICAgQGluY2x1ZGUgYm9yZGVybGluZSgxKTtcbn1cblxuLmJvcmRlcmxpbmUyIHtcbiAgICBAaW5jbHVkZSBib3JkZXJsaW5lKDIpO1xufVxuXG4uYm9yZGVybGluZTMge1xuICAgIEBpbmNsdWRlIGJvcmRlcmxpbmUoMyk7XG59XG5cbi8vIENPTE9SU1xuQGVhY2ggJGNvbG9yLFxuJGhleCBpbiAkY29sb3JzIHtcbiAgICAuY29sb3ItLSN7JGNvbG9yfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoZXg7XG4gICAgfVxufVxuXG4ucGFsZXR0ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICAkaTogMDtcbiAgICBAZWFjaCAkbmFtZSxcbiAgICAkaXRlbSBpbiAkcGFsZXR0ZSB7XG4gICAgICAgICRpOiAkaSArIDE7XG4gICAgICAgICYucGFsZXR0ZS0tI3skaX0ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkaXRlbSwgYmcpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC5nZXQoJGl0ZW0sIHR4dCk7XG4gICAgICAgICAgICB1bCBsaSxcbiAgICAgICAgICAgIG9sIGxpLFxuICAgICAgICAgICAgcCxcbiAgICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLmdldCgkaXRlbSwgdHh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gUMOlIGFsbGUgZmFydmVkZSBiYWdncnVuZCBza2FsIGFsIGJyw7hkdGVrc3QgdsOmcmUgaSAxMDAlIHVhbmbDpmd0ZXQgYWYgb20gZGV0IGVyIGVuIG3DuHJrZSBlbGxlciBkZW4gbHlzZSBmYXJ2ZS5cbi5wYWxldHRlIHtcbiAgICAmLnBhbGV0dGUtLTEsXG4gICAgJi5wYWxldHRlLS0yLFxuICAgICYucGFsZXR0ZS0tMyxcbiAgICAmLnBhbGV0dGUtLTQsXG4gICAgJi5wYWxldHRlLS01LFxuICAgICYucGFsZXR0ZS0tNiB7XG4gICAgICAgIHVsIGxpLFxuICAgICAgICBvbCBsaSxcbiAgICAgICAgcCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxXG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLyoqXG4qIENPTlRFTlQgQVJFQVxuKiovXG5cbi5jb250ZW50IHtcbiAgICBAaW5jbHVkZSBzcGFjZXIoXCJtaW4taGVpZ2h0XCIsIDEwMCwgXCJoXCIsIDUpO1xufVxuXG4ucHJpbnRfcGFnZV9saW5rIHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4ICFpbXBvcnRhbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5cbi8qISBjcml0aWNhbDplbmQgKi9cblxuXG4vKipcbiogVkVORE9SU1xuKiovXG5cbkBpbXBvcnQgXCJ2ZW5kb3JzL2FjY29yZGlvblwiO1xuQGltcG9ydCBcInZlbmRvcnMvZHJvcGRvd25cIjtcblxuLyoqXG4qIENPTVBPTkVOVFNcbioqL1xuXG5AaW1wb3J0IFwiY29tcG9uZW50cy9pY29uXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9uYXZpZ2F0aW9uXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9icmFuZGluZ1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvYnV0dG9uXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9zZWFyY2hiYXJcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3RleHRib3hcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3RleHRwYW5lbFwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvYWNjb3JkaW9uXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9saXN0aW5nc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvY2FtcGFpZ25cIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3NpZGViYXJcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2Jsb2Nrc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvc2ltcGxlYm94XCI7XG5AaW1wb3J0IFwiYmxvY2tzL2hlcm9cIjtcblxuLyoqXG4qIEdFTkVSQUwgT1IgQ1JJVElDQUwgQkxPQ0tTXG4qKi9cblxuQGltcG9ydCBcImJsb2Nrcy9oZWFkZXJcIjtcbkBpbXBvcnQgXCJibG9ja3MvZm9vdGVyXCI7XG5AaW1wb3J0IFwiYmxvY2tzL2NhbXBhaWduXCI7XG5AaW1wb3J0IFwiYmxvY2tzL2NvbnRhY3RcIjtcbkBpbXBvcnQgXCJibG9ja3MvY29udGFjdGluZm9cIjtcbkBpbXBvcnQgXCJibG9ja3Mvc2VwYXJhdGlvbmxpbmVcIjtcbi8vQGltcG9ydCBcImJsb2Nrcy9oYXJtb25pY2FcIjtcbkBpbXBvcnQgXCJwcmludFwiO1xuXG4vKiBOb3QgZm91bmQgUGFnZSAqL1xuLm5vdGZvdW5kX3dyYXBwZXIge1xuICAgIG1hcmdpbi1sZWZ0OiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNC4zLCAyMCkpO1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZTUwaCk7XG5cbiAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyohXG4gKiBBY2NvcmRpb24gdjMuMS4xXG4gKiBTaW1wbGUgYWNjb3JkaW9uIGNyZWF0ZWQgaW4gcHVyZSBKYXZhc2NyaXB0LlxuICogaHR0cHM6Ly9naXRodWIuY29tL21pY2h1MmsvQWNjb3JkaW9uXG4gKlxuICogQ29weXJpZ2h0IChjKSBNaWNoYcWCIFN0cnVtcGZcbiAqIFB1Ymxpc2hlZCB1bmRlciBNSVQgTGljZW5zZVxuICovXG5cbiAvKiBOb3RlOiByZW5hbWVkIHRvIC5hY2NvcmRpb24gdG8gYXZvaWQgY29uZmxpY3RzICovXG5cblxuJGNvbG9yLXdoaXRlOiAjZmZmO1xuJGNvbG9yLWxpZ2h0LWdyZXk6ICNlZWU7XG4kY29sb3ItZ3JleTogIzhhOGE4YTtcbiRjb2xvci1ibGFjazogbWFwLWdldCgkY29sb3JzLCBcImRhcmtcIik7XG5cbi5hY2NvcmRvbl9faXRlbSB7XG4gLy8gbWFyZ2luLXRvcDogMTBweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAuYWNjb3Jkb25fX2hlYWRlciB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAuYWNjb3Jkb25fX3RyaWdnZXIge1xuICAgIGNvbG9yOiAkY29sb3ItYmxhY2s7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxMHB4IDMwcHggMTBweCAxMHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAuMjVzIGVhc2U7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyOiAwO1xuXG4gICAgc3BhbiB7XG4gICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgLy8gICBjb250ZW50OiAnKyc7XG4gIC8vICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgIC8vICAgd2lkdGg6IDE1cHg7XG4gICAvLyAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICAgLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC8vICAgIHJpZ2h0OiAxMHB4O1xuIC8vICAgICB0b3A6IDUwJTtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIC8vY29sb3I6ICRjb2xvci1ncmV5O1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhbmVsIGNsYXNzXG4gIC5hY2NvcmRvbl9fcGFuZWwge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogaGVpZ2h0LCB2aXNpYmlsaXR5O1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xuXG4gICAgLmFjY29yZG9uX190ZXh0IHtcbiAgICAgIC8vZm9udDogMTVweC8yNHB4ICdBcmlhbCcsIHNhbnMtc2VyaWY7XG4gICAgICBjb2xvcjogJGNvbG9yLWJsYWNrO1xuICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cblxuICAvLyBIaWRlIGNvbnRlbnQgd2hlbiBKYXZhc2NyaXB0IGlzIGVuYWJsZWRcbiAgJi5qcy1lbmFibGVkIHtcbiAgICAuYWNjb3Jkb25fX3BhbmVsIHtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICAvLyBBY3RpdmUgY2xhc3NcbiAgJi5pcy1hY3RpdmUge1xuICAgIC5hY2NvcmRvbl9fcGFuZWwge1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAmID4gLmFjY29yZG9uX19oZWFkZXIgLmFjY29yZG9uX190cmlnZ2VyIHtcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJ1xcMjAxMyc7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIkaGVpZ2h0OiAzMHB4ICFkZWZhdWx0O1xuJHdoaXRlOiAjZmZmZmZmICFkZWZhdWx0O1xuJGZvbnQtY29sb3I6ICM2NjY2NjYgIWRlZmF1bHQ7XG4kZm9udC1wbGFjZWhvbGRlci1jb2xvcjogIzhhOGE4YSAhZGVmYXVsdDtcbiRmb250LWRpc2FibGVkLWNvbG9yOiAjZGVkZWRlICFkZWZhdWx0O1xuJHByaW1hcnktY29sb3I6ICM1ODk3ZmIgIWRlZmF1bHQ7XG4kYm9yZGVyLWNvbG9yOiAjZGNkZWUyICFkZWZhdWx0O1xuJHNlYXJjaC1oaWdobGlnaHQtY29sb3I6ICNmZmZiOGMgIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1czogNHB4ICFkZWZhdWx0O1xuJHNwYWNpbmctbDogOHB4ICFkZWZhdWx0O1xuJHNwYWNpbmctbTogNnB4ICFkZWZhdWx0O1xuJHNwYWNpbmctczogNHB4ICFkZWZhdWx0O1xuXG4uc3MtbWFpbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgY29sb3I6ICRmb250LWNvbG9yO1xuICB3aWR0aDogMTAwJTtcblxuICAuc3Mtc2luZ2xlLXNlbGVjdGVkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgcGFkZGluZzogJHNwYWNpbmctbTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnM7XG5cbiAgICAmLnNzLWRpc2FibGVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRib3JkZXItY29sb3I7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cblxuICAgICYuc3Mtb3Blbi1hYm92ZSB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4O1xuICAgIH1cbiAgICAmLnNzLW9wZW4tYmVsb3cge1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMHB4O1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweDtcbiAgICB9XG5cbiAgICAucGxhY2Vob2xkZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDEgMSAxMDAlO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMwcHgpO1xuICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7ICBcbiAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7ICAgIFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOyAgICAgIFxuICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICoge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG5cbiAgICAgIC5zcy1kaXNhYmxlZCB7XG4gICAgICAgIGNvbG9yOiAkZm9udC1kaXNhYmxlZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc3MtZGVzZWxlY3Qge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICBtYXJnaW46IDAgJHNwYWNpbmctbSAwICRzcGFjaW5nLW07XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgICAgJi5zcy1oaWRlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc3MtYXJyb3cge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICBtYXJnaW46IDAgJHNwYWNpbmctbSAwICRzcGFjaW5nLW07XG5cbiAgICAgIHNwYW4ge1xuICAgICAgICBib3JkZXI6IHNvbGlkICRmb250LWNvbG9yO1xuICAgICAgICBib3JkZXItd2lkdGg6IDAgMnB4IDJweCAwO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDNweDtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4ycywgbWFyZ2luIC4ycztcblxuICAgICAgICAmLmFycm93LXVwIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbiAgICAgICAgICBtYXJnaW46IDNweCAwIDAgMDtcbiAgICAgICAgfVxuICAgICAgICAmLmFycm93LWRvd24ge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICBtYXJnaW46IC0zcHggMCAwIDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuc3MtbXVsdGktc2VsZWN0ZWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbWluLWhlaWdodDogJGhlaWdodDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwIDAgMCAzcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgb3V0bGluZTogMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjJzO1xuXG4gICAgJi5zcy1kaXNhYmxlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgLnNzLXZhbHVlcyB7XG4gICAgICAgIC5zcy1kaXNhYmxlZCB7XG4gICAgICAgICAgY29sb3I6ICRmb250LWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNzLXZhbHVlIHtcbiAgICAgICAgICAuc3MtdmFsdWUtZGVsZXRlIHtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zcy1vcGVuLWFib3ZlIHtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweDtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7XG4gICAgfVxuICAgICYuc3Mtb3Blbi1iZWxvdyB7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHg7XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4O1xuICAgIH1cblxuICAgIC5zcy12YWx1ZXMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIGZsZXg6IDEgMSAxMDAlO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMwcHgpO1xuXG4gICAgICAuc3MtZGlzYWJsZWQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBwYWRkaW5nOiA0cHggNXB4O1xuICAgICAgICBtYXJnaW46IDJweCAwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBjb2xvcjogJGZvbnQtZGlzYWJsZWQtY29sb3I7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIHNjYWxlSW4ge1xuICAgICAgICAwJSB7dHJhbnNmb3JtOiBzY2FsZSgwKTsgb3BhY2l0eTogMDt9XG4gICAgICAgIDEwMCUge3RyYW5zZm9ybTogc2NhbGUoMSk7IG9wYWNpdHk6IDE7fVxuICAgICAgfVxuICAgICAgQGtleWZyYW1lcyBzY2FsZU91dCB7XG4gICAgICAgIDAlIHt0cmFuc2Zvcm06IHNjYWxlKDEpOyBvcGFjaXR5OiAxO31cbiAgICAgICAgMTAwJSB7dHJhbnNmb3JtOiBzY2FsZSgwKTsgb3BhY2l0eTogMDt9XG4gICAgICB9XG5cbiAgICAgIC5zcy12YWx1ZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIHBhZGRpbmc6IDNweCA1cHg7XG4gICAgICAgIG1hcmdpbjogM3B4IDVweCAzcHggMHB4O1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzY2FsZUluO1xuICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IC4ycztcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG5cbiAgICAgICAgJi5zcy1vdXQge1xuICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzY2FsZU91dDtcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IC4ycztcbiAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zcy12YWx1ZS1kZWxldGUge1xuICAgICAgICAgIG1hcmdpbjogMCAwIDAgNXB4O1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5zcy1hZGQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMSAzcHg7XG4gICAgICBtYXJnaW46IDlweCAxMnB4IDAgNXB4O1xuXG4gICAgICAuc3MtcGx1cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZm9udC1jb2xvcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgIHdpZHRoOiAycHg7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMnM7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGZvbnQtY29sb3I7XG4gICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgICAgbGVmdDogLTRweDtcbiAgICAgICAgICB0b3A6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuc3MtY3Jvc3Mge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICB9XG59XG4uc3MtY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogLTFweCAwIDAgMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggJGJvcmRlci1jb2xvcjtcbiAgei1pbmRleDogMTAxMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgdG9wO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjJzLCBvcGFjaXR5IC4ycztcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiBzY2FsZVkoMCk7XG5cbiAgJi5zcy1vcGVuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKDEpO1xuICB9XG5cbiAgLnNzLXNlYXJjaCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIHBhZGRpbmc6ICRzcGFjaW5nLWwgJHNwYWNpbmctbCAkc3BhY2luZy1tICRzcGFjaW5nLWw7XG5cbiAgICAmLnNzLWhpZGUge1xuICAgICAgaGVpZ2h0OiAwcHg7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgcGFkZGluZzogMHB4IDBweCAwcHggMHB4O1xuICAgICAgbWFyZ2luOiAwcHggMHB4IDBweCAwcHg7XG5cbiAgICAgIGlucHV0IHtcbiAgICAgICAgaGVpZ2h0OiAwcHg7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBhZGRpbmc6IDBweCAwcHggMHB4IDBweDtcbiAgICAgICAgbWFyZ2luOiAwcHggMHB4IDBweCAwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtaW4td2lkdGg6IDBweDtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIHBhZGRpbmc6ICRzcGFjaW5nLW0gJHNwYWNpbmctbDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAgICAgXG4gICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAkZm9udC1wbGFjZWhvbGRlci1jb2xvcjtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCA1cHggJHByaW1hcnktY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNzLWFkZGFibGUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGZsZXg6IDAgMCAzMHB4O1xuICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgbWFyZ2luOiAwIDAgMCA4cHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cbiAgfVxuXG4gIC5zcy1hZGRhYmxlIHtcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xuICB9XG5cbiAgLnNzLWxpc3Qge1xuICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAuc3Mtb3B0Z3JvdXAge1xuICAgICAgLnNzLW9wdGdyb3VwLWxhYmVsIHtcbiAgICAgICAgcGFkZGluZzogNnB4IDEwcHggNnB4IDEwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgfVxuXG4gICAgICAuc3Mtb3B0aW9uIHtcbiAgICAgICAgcGFkZGluZzogNnB4IDZweCA2cHggMjVweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc3Mtb3B0Z3JvdXAtbGFiZWwtc2VsZWN0YWJsZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc3Mtb3B0aW9uIHtcbiAgICAgIHBhZGRpbmc6IDZweCAxMHB4IDZweCAxMHB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICoge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIsICYuc3MtaGlnaGxpZ2h0ZWQge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgJi5zcy1kaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIGNvbG9yOiAkZm9udC1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgfVxuXG4gICAgICAmOm5vdCguc3MtZGlzYWJsZWQpLnNzLW9wdGlvbi1zZWxlY3RlZCB7XG4gICAgICAgIGNvbG9yOiAkZm9udC1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkcHJpbWFyeS1jb2xvciwgLjEpO1xuICAgICAgfVxuXG4gICAgICAmLnNzLWhpZGUgeyBkaXNwbGF5OiBub25lOyB9XG5cbiAgICAgIC5zcy1zZWFyY2gtaGlnaGxpZ2h0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNlYXJjaC1oaWdobGlnaHQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuLyoqIE9WRVJSSURFUyAqKi9cbi5zcy1tYWluIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIC5zcy1zaW5nbGUtc2VsZWN0ZWQge1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTRweDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgJjpub3QoLnNzLW9wZW4tYmVsb3cpIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgfVxuICAgIC5wbGFjZWhvbGRlciB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gICAgLnNzLWFycm93IHtcbiAgICAgIFxuICAgICAgc3BhbiB7XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgXG59XG5cbi5zcy1jb250ZW50IHtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgY3VycmVudENvbG9yO1xuICAuc3MtbGlzdCB7XG4gICAgLnNzLW9wdGlvbiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDBweDtcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLmljb24ge1xuICAgICYuaWNvbi0tYmFycyB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxufVxuXG4uaWNvbi0taG92ZXJmeCB7XG4gICAgYnV0dG9uOmhvdmVyICYge1xuICAgICAgICAmLmljb24tLWFycm93IHtcbiAgICAgICAgICAgIGxpbmUge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEuNSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuaWNvbi0tYXJyb3cge1xuICAgICAgICBsaW5lIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gICAgICAgIH1cblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBQcmludCBpY29uIG9uIGFsbCBwYWdlc1xuLmNvbnRlbnQtd3JhcHBlciB7XG4gICAgZGl2LnByaW50LXBhZ2UsXG4gICAgc3Bhbi5wcmludC1wYWdlIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHJpZ2h0O1xuXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc2l0ZS1mb290ZXIge1xuICAgIHNwYW4ucHJpbnQtcGFnZSB7XG4gICAgICAgIG1heC13aWR0aDogdmFyKC0tbWF4LXdpZHRoKTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNwYWNlMTAwaCk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiW3JvbGU9XCJtZW51aXRlbVwiXSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiBpbmhlcml0O1xufVxuXG4ubmF2aWdhdGlvbnMge1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgdG9wOiAgdmFyKC0tc3BhY2UyNWgpO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigzLCAxNCkpO1xuICAgIHotaW5kZXg6IDE7XG4gICAgaGVpZ2h0OiAwO1xuXG4gICAgLnN0aWNreSB7XG4gICAgICAgIHRvcDogIHZhcigtLXNwYWNlMjVoKTtcbiAgICB9XG5cbiAgICAmLmNvbnRlbnRfX25hdmlnYXRpb25zIHtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnNpdGlvbi1kdXJhdGlvbjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlNztcblxuICAgICAgICAmLmZhZGUtb3V0IHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjoga2YtZmFkZSAkdHJhbnNpdGlvbi1kdXJhdGlvbiBmb3J3YXJkcztcbiAgICAgICAgfVxuXG4gICAgICAgICYuZmFkZS1pbiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5oaWRkZW4ge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBrZXlmcmFtZXMga2YtZmFkZSB7XG4gICAgICAgICAgICAwJSB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgMTAwJSB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDUwO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxufVxuXG4ubGlzdG1lbnUge1xuICAgID4gdWwge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgPiBsaSB7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuXG4gICAgICAgICAgICAubWVudS1oZWFkaW5nLXdyYXAgPiBoMiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWVudS1oZWFkaW5nLXdyYXAgPiBhIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMjVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBAZXh0ZW5kICVoMjtcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UxNWgpO1xuXG4gICAgICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgICAgICArIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgID4gbGkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgKyBsaSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlNTBoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5mb290ZXJfX21lbnUge1xuICAgIHVsIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIEBleHRlbmQgJWgyO1xuXG4gICAgZm9udC1zaXplOiAxLjU2M3JlbTtcbn1cblxuLmZvb3Rlcl9fbWVudS0tc2Vjb25kYXJ5IHtcbiAgICBAZXh0ZW5kICVib2R5O1xuICAgIEBleHRlbmQgJXA7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcblxuICAgIGEge1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgICArIGxpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNWVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc2VydmljZW1lbnUge1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIC5zZXJ2aWNlbWVudV9faXRlbSB7XG4gICAgICAgICAgICArIC5zZXJ2aWNlbWVudV9faXRlbSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMjdweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmV4dG5hdiB7XG4gICAgaDQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgbGkge1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIEBleHRlbmQgJWg0O1xuICAgICAgICBmb250LXNpemU6IDAuOHJlbSAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuQGltcG9ydCBcImxhbmdtZW51XCI7XG5AaW1wb3J0IFwidG9jXCI7XG5AaW1wb3J0IFwiYnJlYWRjcnVtYnNcIjtcbiIsIlxuLmxhbmdtZW51IHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi5sYW5nbWVudV9fb3B0aW9uIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBsaW5lLWhlaWdodDogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gICsgLmxhbmdtZW51X19vcHRpb24ge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJy8nO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICBAZXh0ZW5kICVvcGFjNjQ7XG4gICAgfVxuICB9XG5cbiAgJjpub3QoLmFjdGl2ZSkge1xuICAgIEBleHRlbmQgJW9wYWM2NDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn0iLCIudG9jIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZTc7XG4gICAgQG1lZGlhIGFsbCBhbmQgKHdpZHRoOiA3NjhweCkge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAyMTBweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgei1pbmRleDogMzAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWU3O1xuICAgICAgICB1bCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2UyNWgpO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNlMjVoKTtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAjeyRncmlkdW5pdHNpemUgKiAyfXZ3O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnRvY19faXRlbSB7XG4gICAgLy9wYWRkaW5nLWxlZnQ6ICN7JGdyaWR1bml0c2l6ZX12dztcbiAgICBAbWVkaWEgYWxsIGFuZCAod2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNTRweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGJ1dHRvbiB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZWVlZWU3O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQG1lZGlhIG5vdCBhbGwgYW5kIChtaW4tcmVzb2x1dGlvbjouMDAxZHBjbSlcbiAgICAgICAgLy8ge1xuICAgICAgICAvLyAgIEBzdXBwb3J0cyAoLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmUpIGFuZCAoc3Ryb2tlLWNvbG9yOnRyYW5zcGFyZW50KSB7XG4gICAgICAgIC8vICAgICBiYWNrZ3JvdW5kLWNsaXA6IHVuc2V0O1xuICAgICAgICAvLyAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHVuc2V0O1xuICAgICAgICAvLyAgICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHVuc2V0O1xuICAgICAgICAvLyAgIH1cbiAgICAgICAgLy8gfVxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2U1MGgpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgIGJvdHRvbTogLTZweDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xNXB4KTtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1zcGFjZTUwaCk7XG5cbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjM1cyBlYXNlLWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi50b2NfX2l0ZW0tLWFjdGl2ZSB7XG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogXCJSYS1IYXJhbGQtU2VtaWJvbGRcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMSwgMykpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAyNnB4O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICB0b3A6IDAuNWVtO1xuICAgICAgICAgICAgLy9sZWZ0OiBjYWxjKCN7bWF0aC5kaXYoJGdyaWR1bml0c2l6ZSwgMil9dncgLSAyMHB4KTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoMzMlIC0gNTBweCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjM1cyBlYXNlLWluO1xuICAgICAgICB9XG4gICAgICAgICYudG9jX19pdGVtLS1hY3RpdmUge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7XG4gICAgICAgICAgICAgICAgLy9AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiAxNDAwcHgpIHtcbiAgICAgICAgICAgICAgICAvLyAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICAgICAgICAgICAgICAgIC8vfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICsgLnRvY19faXRlbSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkB1c2UgXCJzYXNzOm1hdGhcIjtcblxuLmJyZWFkY3J1bWJzX19jb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlNTBoKTtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tc3BhY2U1MGgpO1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2U1MGgpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXG4gICAgJi0tYmFjayB7XG4gICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMiwgMTIpKTtcbiAgICB9XG5cbiAgICAuYnJlYWRjcnVtYnMge1xuICAgICAgICAvL3BhZGRpbmctdG9wOiB2YXIoLS1zcGFjZTI1aCk7XG4gICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tc3BhY2U1MGgpO1xuICAgICAgICB3aWR0aDogdmFyKC0tc3BhY2UyMDBoKTtcbiAgICAgICAgdWwge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgLy8gICBAaW5jbHVkZSBzcGFjZXIoJ3BhZGRpbmctdG9wJywgMTUsICdoJyk7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3BhY2UxNWgpO1xuICAgICAgICAgICAgQGV4dGVuZCAlaDQ7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuOHJlbSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgd2lkdGg6IHVuc2V0O1xuICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5icmVhZGNydW1ic19faXRlbSB7XG4gICAgICAgICsuYnJlYWRjcnVtYnNfX2l0ZW0ge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJy8nO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNlMjVoKTtcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59XG5cbiIsIi5icmFuZGluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIEBpbmNsdWRlIGhlYWRlci10b3AtaGVpZ2h0KFwibWF4XCIpO1xuXG4gICAgLyogICAuYnRuIHtcbiAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNCwgNikpO1xuICAgIH0gKi9cblxuICAgIC5sb2dvIHtcbiAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigyLCA2KSk7XG4gICAgfVxuXG4gICAgLnNpdGUtbmFtZSB7XG4gICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNCwgNikpO1xuXG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgQGV4dGVuZCAlaDI7XG5cbiAgICAgICAgLnNpdGUtbmFtZS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMywgMTIpKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAlLCA0NSUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgLmxvZ28ge1xuICAgICAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigzLCAxMikpO1xuICAgICAgICB9XG4gICAgICAgIC5idG4ge1xuICAgICAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig5LCAxMikpO1xuICAgICAgICB9XG4gICAgICAgIC8qICAgICAuaWNvbi0tbG9nbyB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtNjAlKTtcbiAgICAgICAgfSAqL1xuXG4gICAgICAgIC5zaXRlLW5hbWUge1xuICAgICAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig5LCAxMikpO1xuXG4gICAgICAgICAgICAuc2l0ZS1uYW1lLWljb24ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMiwgNikpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDIwJSwgNDAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAuaWNvbi0tbG9nbyB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAlLCAtNDUlKTtcbiAgICAgIH1cbiAgICB9ICovXG59XG4iLCJbcm9sZT1cImxpbmtcIl0sXG5bcm9sZT1cImJ1dHRvblwiXSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmJ1dHRvbiB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMXB4IGF1dG8gIzAwMDtcbiAgfVxufVxuXG4ubGluay1idXR0b24ge1xuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIG1hcC1nZXQoJGNvbG9ycywgXCJkYXJrXCIpO1xuICAgIC8vZm9udC1zaXplOiAxMnB4OyAgLy8gZGlzYWJsZWQgYWNjb3JkaW5nIHRvIFQyMTEwM1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIFwiZGFya1wiKTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiAxNDAwcHgpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIC8vY29udGVudDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCM2FXUjBhRDBpTVRZaUlHaGxhV2RvZEQwaU1UUWlJSFpwWlhkQ2IzZzlJakFnTUNBeE5pQXhOQ0lnWm1sc2JEMGlibTl1WlNJZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWo0S1BIQmhkR2dnWkQwaVRUY3VPRFV4T0RFZ01Vd3hNeTQ1T1RrNUlEY3VNVFE0TVV3NExqRTBNVE00SURFekxqQXdOallpSUhOMGNtOXJaVDBpSXpNd01rRXpPQ0lnYzNSeWIydGxMWGRwWkhSb1BTSXlJaTgrQ2p4c2FXNWxJSGd4UFNJeE5DSWdlVEU5SWpjdU1UUTRNVGtpSUhneVBTSXRPQzQzTkRJeU9HVXRNRGdpSUhreVBTSTNMakUwT0RFNUlpQnpkSEp2YTJVOUlpTXpNREpCTXpnaUlITjBjbTlyWlMxM2FXUjBhRDBpTWlJdlBnbzhMM04yWno0S1wiKTtcbiAgICAgIEBpbmNsdWRlIHNwYWNlcihcInBhZGRpbmctbGVmdFwiLCAxNSwgXCJ3XCIpO1xuICAgICAgLy92ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgLy9wb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAvL3RvcDogMnB4O1xuICAgICAgLy93aWR0aDogMTZweDtcbiAgICAgIC8vaGVpZ2h0OiAxMDAlO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjNhV1IwYUQwaU1UWWlJR2hsYVdkb2REMGlNVFFpSUhacFpYZENiM2c5SWpBZ01DQXhOaUF4TkNJZ1ptbHNiRDBpYm05dVpTSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklqNEtQSEJoZEdnZ1pEMGlUVGN1T0RVeE9ERWdNVXd4TXk0NU9UazVJRGN1TVRRNE1VdzRMakUwTVRNNElERXpMakF3TmpZaUlITjBjbTlyWlQwaUl6TXdNa0V6T0NJZ2MzUnliMnRsTFhkcFpIUm9QU0l5SWk4K0NqeHNhVzVsSUhneFBTSXhOQ0lnZVRFOUlqY3VNVFE0TVRraUlIZ3lQU0l0T0M0M05ESXlPR1V0TURnaUlIa3lQU0kzTGpFME9ERTVJaUJ6ZEhKdmEyVTlJaU16TURKQk16Z2lJSE4wY205clpTMTNhV1IwYUQwaU1pSXZQZ284TDNOMlp6NEtcIik7XG4gICAgICB3aWR0aDogMTZweDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciByaWdodDtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGF1dG87XG4gICAgfVxuICB9XG59XG4ucGFsZXR0ZS0tNSxcbi5wYWxldHRlLS02IHtcbiAgLmxpbmstYnV0dG9uIHtcbiAgICBhIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIG1hcC1nZXQoJGNvbG9ycywgXCJsaWdodFwiKTtcbiAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIFwibGlnaHRcIikgIWltcG9ydGFudDtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBmaWx0ZXI6IGludmVydCgxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgYSB7fVxuICBzdmcuaWNvbiB7XG4gICAgcGF0aCB7XG4gICAgICBzdHJva2U6IG1hcC1nZXQoJGNvbG9ycywgXCJsaWdodFwiKSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG4uYnRuIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5tZW51X19pdGVtIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgc3BhbiB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIlJhLUhhcmFsZC1TZW1pYm9sZFwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgfVxuXG4gIC8qIGFycm93IGljb24gd2l0aCBob3ZlciBhbmltYXRpb24gKi9cbiAgLmljb24tLWFycm93IHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB3aWR0aDogMWVtO1xuICAgIGhlaWdodDogMWVtO1xuICAgIG1hcmdpbi10b3A6IDAuNWVtO1xuICAgIGxpbmUsXG4gICAgcGF0aCB7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cztcbiAgICB9XG4gICAgbGluZSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgICB9XG4gICAgcGF0aCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgLmljb24tLWFycm93IHtcbiAgICAgIGxpbmUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxLjUpO1xuICAgICAgfVxuICAgICAgcGF0aCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYubWVudV9faXRlbS0tYWN0aXZlIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMWVtO1xuICAgICAgQGluY2x1ZGUgYm9yZGVybGluZSgxKTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICYubWVudV9faXRlbS0tYWN0aXZlIHtcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AaW1wb3J0IFwiYnVyZ2VyXCI7XG4iLCIvLyBBTklNQVRJT05cblxuQGtleWZyYW1lcyBiYXIxIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUoLTEuNXB4LCAzcHgpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYmFyMiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYmFyMyB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYmFyNCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNXB4KTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlKC00cHgsIC04cHgpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYmFyMS1vdXQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUoLTJweCwgNHB4KTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYmFyMi1vdXQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYmFyMy1vdXQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYmFyNC1vdXQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZSgtNHB4LCAtOHB4KTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNXB4KTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTtcbiAgfVxuXG59XG5cbi5idG4tLWJ1cmdlciB7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgbWF4LXdpZHRoOiBtYXgtY29udGVudDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIFxuICAuaWNvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjVzO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIFxuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICBcbiAgICAuaWNvbl9fcGF0aCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAmLmljb25fX3BhdGgtLTIsXG4gICAgICAmLmljb25fX3BhdGgtLTMge1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICBcbn1cblxuXG5AaW5jbHVkZSBtZWRpYSgnZmluZ2VyJykge1xuICAuYnRuLS1idXJnZXIge1xuICAgICYuYWN0aXZle1xuICAgICAgLmljb24ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7ICBcbiAgICAgIH1cbiAgICAgIC5pY29uX19wYXRoLS0xIHtcbiAgICAgICAgYW5pbWF0aW9uOiBlYXNlIDFzIGJhcjEgZm9yd2FyZHM7XG4gICAgICB9XG4gICAgICAuaWNvbl9fcGF0aC0tMiB7XG4gICAgICAgIGFuaW1hdGlvbjogZWFzZSAxcyBiYXIyIGZvcndhcmRzO1xuICAgICAgfVxuICAgICAgLmljb25fX3BhdGgtLTMge1xuICAgICAgICBhbmltYXRpb246IGVhc2UgMXMgYmFyMyBmb3J3YXJkcztcbiAgICAgIH1cbiAgICAgIC5pY29uX19wYXRoLS00IHtcbiAgICAgICAgYW5pbWF0aW9uOiBlYXNlIDFzIGJhcjQgZm9yd2FyZHM7XG4gICAgICB9XG4gICAgICAuaWNvbl9fcGF0aCB7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC41cztcbiAgICAgIH1cbiAgICB9ICBcbiAgICAmLmRlYWN0aXZhdGluZyAuaWNvbiB7XG4gICAgICAuaWNvbl9fcGF0aC0tMSB7XG4gICAgICAgIGFuaW1hdGlvbjogZWFzZSAxcyBiYXIxLW91dCBiYWNrd2FyZHM7XG4gICAgICB9XG4gICAgICAgLmljb25fX3BhdGgtLTIge1xuICAgICAgICBhbmltYXRpb246IGVhc2UgMXMgYmFyMi1vdXQgYmFja3dhcmRzO1xuICAgICAgfVxuICAgICAgIC5pY29uX19wYXRoLS0zIHtcbiAgICAgICAgYW5pbWF0aW9uOiBlYXNlIDFzIGJhcjMtb3V0IGJhY2t3YXJkcztcbiAgICAgIH1cbiAgICAgICAuaWNvbl9fcGF0aC0tNCB7XG4gICAgICAgIGFuaW1hdGlvbjogZWFzZSAxcyBiYXI0LW91dCBiYWNrd2FyZHM7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIG1lZGlhKCdtb3VzZScpIHtcbiAgLmJ0bi0tYnVyZ2VyIHtcbiAgICAmOmhvdmVye1xuICAgICAgLmljb24ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7ICBcbiAgICAgIH1cbiAgICB9XG4gICAgJi5hY3RpdmV7XG4gICAgICAuaWNvbiB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgIFxuICAgICAgfVxuICAgICAgLmljb25fX3BhdGgtLTEge1xuICAgICAgICBhbmltYXRpb246IGVhc2UgMXMgYmFyMSBmb3J3YXJkcztcbiAgICAgIH1cbiAgICAgIC5pY29uX19wYXRoLS0yIHtcbiAgICAgICAgYW5pbWF0aW9uOiBlYXNlIDFzIGJhcjIgZm9yd2FyZHM7XG4gICAgICB9XG4gICAgICAuaWNvbl9fcGF0aC0tMyB7XG4gICAgICAgIGFuaW1hdGlvbjogZWFzZSAxcyBiYXIzIGZvcndhcmRzO1xuICAgICAgfVxuICAgICAgLmljb25fX3BhdGgtLTQge1xuICAgICAgICBhbmltYXRpb246IGVhc2UgMXMgYmFyNCBmb3J3YXJkcztcbiAgICAgIH1cbiAgICB9XG4gICAgJi5kZWFjdGl2YXRpbmcgLmljb24ge1xuICAgICAgLmljb25fX3BhdGgtLTEge1xuICAgICAgICBhbmltYXRpb246IGVhc2UgMXMgYmFyMS1vdXQgYmFja3dhcmRzO1xuICAgICAgfVxuICAgICAgIC5pY29uX19wYXRoLS0yIHtcbiAgICAgICAgYW5pbWF0aW9uOiBlYXNlIDFzIGJhcjItb3V0IGJhY2t3YXJkcztcbiAgICAgIH1cbiAgICAgICAuaWNvbl9fcGF0aC0tMyB7XG4gICAgICAgIGFuaW1hdGlvbjogZWFzZSAxcyBiYXIzLW91dCBiYWNrd2FyZHM7XG4gICAgICB9XG4gICAgICAgLmljb25fX3BhdGgtLTQge1xuICAgICAgICBhbmltYXRpb246IGVhc2UgMXMgYmFyNC1vdXQgYmFja3dhcmRzO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8qXG4uYnRuLS1idXJnZXIge1xuICAuaWNvbiB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzO1xuICB9XG4gICY6aG92ZXIge1xuICAgIC5pY29uIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICB9XG4gIH1cbn1cbiovIiwiQG1peGluIHNlYXJjaGJhci1zbWFsbCgpIHtcbiAgICBmb250LXNpemU6IDE3cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi5zZWFyY2hiYXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMzJweDtcbiAgICAvLyAgZm9udC1zaXplOiAyN3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNXB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wNGVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgQGluY2x1ZGUgYm9yZGVybGluZSgxKTtcblxuXG5cbiAgICA6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlNztcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIEBleHRlbmQgJWgzO1xuICAgICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBcImRhcmtcIik7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5pY29uIHtcblxuICAgIH1cblxuICAgICYuc2VhcmNoYmFyLS1zbWFsbCB7XG4gICAgICAgIEBpbmNsdWRlIHNlYXJjaGJhci1zbWFsbCgpO1xuXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjN2dyAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7XG5cbiAgICAgICAgJi5zZWFyY2hiYXItLWV4dGVybmFsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcmdlJykge1xuICAgICAgICBmb250LXNpemU6IDEuOTN2dztcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuOTN2dztcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjA0ZW07XG4gICAgfVxufVxuIiwiLnRleHRib3gge1xuXG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjZTEwMGgpO1xuXG4gICAgPiAqIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICsgKiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTI1aCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICA+IHNwYW4ge1xuICAgICAgICBAZXh0ZW5kICVwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICArIHNwYW4ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UxNWgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNlMTAwaCk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIC5pY29uLS1hcnJvdyB7XG4gICAgICAgICAgICBsaW5lIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxLjUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoOHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnRleHRib3hfX2ljb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAuaWNvbi0tYXJyb3cge1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAgICAgICBwYXRoLCBsaW5lIHtcbiAgICAgICAgICAgIHN0cm9rZTogY3VycmVudENvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgbGluZSB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnRleHRib3hfX2V2ZW50X2xvY2F0aW9uLFxuLnRleHRib3hfX2V2ZW50X2RhdGUge1xuICAgIEBleHRlbmQgJXA7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuaDIudGV4dGJveF9fdGl0bGU6Zmlyc3QtbGV0dGVyIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cbiIsIi50ZXh0cGFuZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig5LCAxMikpO1xuXG4gICAgaGVhZGVyIHtcbiAgICAgICAgLy93aWR0aDogI3skZ3JpZHVuaXRzaXplKjN9dnc7XG4gICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMiwgOSkpO1xuXG4gICAgICAgID4gKiB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICsgcCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc3BhY2VyKCdtYXJnaW4tdG9wJywgMTUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgKyBzZWN0aW9uIHtcbiAgICAgICAgICAgIC8vbWFyZ2luLWxlZnQ6ICN7JGdyaWR1bml0c2l6ZSoxfXZ3O1xuICAgICAgICAgICAgLy93aWR0aDogI3skZ3JpZHVuaXRzaXplKjR9dnc7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDEsIDkpKTtcbiAgICAgICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNCwgOSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2VjdGlvbiB7XG4gICAgICAgIC8vbWFyZ2luLXJpZ2h0OiAjeyRncmlkdW5pdHNpemUqMn12dztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMiwgOSkpO1xuXG4gICAgICAgICo6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgLy9tYXJnaW4tYm90dG9tOiAxLjJ2dztcbiAgICAgICAgICAgIC8qTHVmdCBtZWxsZW0gcGFyYWdyYWZmZXIgc2thbCB2w6ZyZSAyNXB4Ki9cbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBvbCBsaSxcbiAgICAgICAgdWwgbGkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41dnc7XG4gICAgICAgIH1cblxuICAgICAgICAqOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIFJFU1RZTElORyBPRiBBQ0NPUkRJT04gVkVORE9SXG4uYWNjb3Jkb24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlNTBoKTtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAuYWNjb3Jkb25fX2NvbnRlbnQtLW1peGVkID4gKiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlMjVoKTtcblxuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAvL21hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hY2NvcmRvbl9faXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlMjVoKTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cblxuICAgICAgICAuYWNjb3Jkb25fX2hlYWRlciB7XG4gICAgICAgICAgICBAZXh0ZW5kICVoMztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFjY29yZG9uX190cmlnZ2VyIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogMHB4O1xuXG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDFweCBhdXRvIGN1cnJlbnRDb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDEsIDkpKTtcblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjI7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTI1cHg7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xMHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cztcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYWNjb3Jkb25fX3BhbmVsIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAvL2J1ZyBmaXggMTEvMDhcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgLy9idWcgZml4IGVuZFxuICAgICAgICAgICAgLmFjY29yZG9uX19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNlNTBoKTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjJ2dztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLmhhdmVfX2Rvd25sb2FkcyB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuXG4gICAgICAgICAgICAgICAgICAgIHAsXG4gICAgICAgICAgICAgICAgICAgIHVsLFxuICAgICAgICAgICAgICAgICAgICBvbCxcbiAgICAgICAgICAgICAgICAgICAgaDIsXG4gICAgICAgICAgICAgICAgICAgIGgzLFxuICAgICAgICAgICAgICAgICAgICBoNCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvL2J1ZyBmaXggMTEvMDhcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hcmdpbi1sZWZ0OiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoOSwgMTIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMTIsIDEyKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIG1hcmdpbi1sZWZ0OiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNCwgMTIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICBwYWRkaW5nLWxlZnQ6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigxLCAxMikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgICAgICAgICAgICAgLy9CdWcgZml4IGVuZFxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLmFjY29yZG9uX19jb250ZW50X19kb3dubG9hZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvL2J1ZyBmaXggMTEvMDhcblxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMSwgMTQpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvL2J1ZyBmaXggZW5kXG4gICAgICAgICAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL21hcmdpbi1sZWZ0OiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNiwgMTIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgbWFyZ2luLWxlZnQ6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig0LCAxMikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICB3aWR0aDogY2FsYygxMDAlIC0gMzMuMzMzMyUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICBwYWRkaW5nLWxlZnQ6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigxLCAxMikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIHdpZHRoOiAxODBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5hY2NvcmRvbl9fY29udGVudF9fZG93bmxvYWQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTI1aCk7XG5cbiAgICAgICAgICAgICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBzcGFuOm5vdCguZG93bmxvYWRfX2ljb24sIC5kb3dubG9hZF9fdGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHNwYW4uZG93bmxvYWRfX3RpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigxLCAxNCkpIC0gMjBweCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuYWNjb3Jkb25fX2NvbnRlbnRfX2Rvd25sb2FkX2xpbmsge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5hY2NvcmRvbl9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgb2wge1xuICAgICAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBkZWNpbWFsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICAgICAgbGlzdC1zdHlsZTogZGlzYztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB1bCxcbiAgICAgICAgICAgICAgICBvbCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNwYWNlMTVoKTtcblxuICAgICAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBsaW5lLWhlaWdodDogMTdweDsgLy8gZG9lcyBub3QgcmVhbGx5IHdvcmsgd2VsbC4uXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudGl6ZShtYXAtZ2V0KCRjb2xvcnMsIFwiZGFya1wiKSwgMC4yNik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBkaXYgcDpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjJ2dztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBvbCBsaSxcbiAgICAgICAgICAgICAgICB1bCBsaSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXZ3O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICo6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgKyAuYWNjb3Jkb25fX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNlMjVoKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgICAgIC5hY2NvcmRvbl9faGVhZGVyIHtcbiAgICAgICAgICAgICAgICAuYWNjb3Jkb25fX3RyaWdnZXIge1xuICAgICAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYWNjb3JkaW9uLWl0ZW0ge1xuICAgICAgICAgICAgICAgIC5hY2NvcmRvbl9fcGFuZWwge1xuICAgICAgICAgICAgICAgICAgICAuYWNjb3Jkb25fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNlMjVoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIC50ZXh0cGFuZWwge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIGhlYWRlciB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig0LCAxMikpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzZWN0aW9uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDEsIDEyKSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig3LCAxMikpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICA+IGFydGljbGUge1xuICAgICAgICAgICAgJjpub3QoLnRleHRwYW5lbCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNSwgMTIpKTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig3LCAxMikpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnZpZGVvcGFuZWwge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmFjY29yZG9uLS1zaW1wbGUge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLmFjY29yZG9uX19pdGVtIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UxNWgpO1xuXG4gICAgICAgICsgLmFjY29yZG9uX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1hY3RpdmUge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgICAgICAgLmFjY29yZG9uX19oZWFkZXIge1xuICAgICAgICAgICAgICAgIEBleHRlbmQgJWgyO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmFjY29yZG9uX19wYW5lbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC4yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hY2NvcmRvbl9faGVhZGVyIHtcbiAgICAgICAgQGV4dGVuZCAlcDtcbiAgICB9XG5cbiAgICAuYWNjb3Jkb25fX3RyaWdnZXIge1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC4yO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogLTVweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWNjb3Jkb25fX3BhbmVsIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG59XG5cbi5wYWxldHRlLS01LFxuLnBhbGV0dGUtLTYge1xuICAgIC5hY2NvcmRvbiB7XG4gICAgICAgIC5hY2NvcmRvbl9faXRlbSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgIC5hY2NvcmRvbl9fdHJpZ2dlciB7XG4gICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIFwibGlnaHRcIikgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hY2NvcmRvbl9fY29udGVudCB7XG4gICAgICAgICAgICB1bCBsaSxcbiAgICAgICAgICAgIG9sIGxpLFxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgXCJsaWdodFwiKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gRml4aW5nIHRoZSBhY2NvcmRpb24gcGFkZGluZyB3aGVuIHVzZWQgb3V0c2lkZSBhbiBhcnRpY2xlIGVsZW1lbnRcbi5ibG9jay0taGFybW9uaWNhIC5oYXJtb25pY2Ege1xuICAgIC5hY2NvcmRvbl9fY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMywgOSkpICFpbXBvcnRhbnQ7IC8vIDQyLjg1NzE0MjklXG4gICAgfVxufVxuIiwiLmxpc3RpbmdzIHtcbiAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDksIDEyKSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAubGlzdGluZ3NfX2hlYWRpbmcge1xuICAgICAgICBtYXgtd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigxMiwgMTIpKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDE0LCAxNCkpO1xuICAgIH1cbn1cblxuLmNvdXJzZXNfY3VyYXRlZF93cmFwIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmxhbmRpbmdfcGFnZSB7XG4gICAgLmxpc3RpbmdzX19oZWFkaW5nIHtcbiAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigzLCA5KSk7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDYsIDE0KSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmxvY2sge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTUwaCk7XG4gICAgfVxufVxuXG4uc2VhcmNoX2xpc3RpbmdzX2hlYWRpbmcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlNTBoKTtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICBoMSwgcCB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigzLCAxNCkpO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMTQsIDE0KSk7XG5cbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmxpc3RpbmdzX19saXN0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2U1MGgpO1xuICAgIH1cblxuICAgIC5oaWRlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5saXN0aW5nc19faGVhZGluZyB7XG4gICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigyLCA5KSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNCwgOSkpO1xuICAgIC8vQGluY2x1ZGUgc3BhY2VyKFwibWFyZ2luLWJvdHRvbVwiLCAyNSk7XG4gICAgc3BhbiB7XG4gICAgICAgICsgaDIge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UyNWgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgICBAZXh0ZW5kICVoMTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDMsIDE0KSk7XG4gICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNiwgMTQpKTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDMsIDE0KSk7XG5cbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNwYWNlMTAwaCk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2UxMDBoKTtcblxuICAgICAgICB+IC5saXN0aW5nc19fbGluayB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTUwaCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5saXN0aW5nc19fbGluayB7XG4gICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigzLCA5KSk7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgb3JkZXI6IDM7XG4gICAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDMsIDE0KSk7XG4gICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNiwgMTQpKTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDMsIDE0KSk7XG5cbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNwYWNlMTAwaCk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2UxMDBoKTtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubGlzdGluZ3NfX2NvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgID4gLmxpc3RpbmdzX19saXN0IHtcbiAgICAgICAgLy9AaW5jbHVkZSBzcGFjZXIoXCJtYXJnaW4tdG9wXCIsIDUwKTtcbiAgICB9XG59XG5cbi5saXN0aW5nc19fbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTUwaCk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAvL2Rpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIC8vd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigxNCwgMTQpKTtcbiAgICAgICAgb3JkZXI6IDI7XG5cbiAgICAgICAgKiB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICN7JGdyaWR1bml0c2l6ZSAqIDR9dnc7XG4gICAgICAgICAgICBmbGV4OiAwIDAgI3skZ3JpZHVuaXRzaXplICogNH12dztcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogI3skZ3JpZHVuaXRzaXplICogMX12dztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIH4gLmxpc3RpbmdzX19lbXB0eSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJjplbXB0eSB7XG4gICAgICAgIH4gLmxpc3RpbmdzX19lbXB0eSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTI1aCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubGlzdGluZ3NfX2VtcHR5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlMjVoKTtcbn1cblxuLmxpc3RpbmdzX19pdGVtIHtcbiAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDMsIDkpKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2UyNWgpO1xuXG4gICAgLmltYWdlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgcGljdHVyZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyNzBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgLnRleHRib3gge1xuICAgICAgICArIHBpY3R1cmUge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UyNWgpO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLnRleHRib3hfX2ljb25zIHtcbiAgICAgICAgLmljb24tLXBsYXksXG4gICAgICAgIC5pY29uLS1iZWdpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltoYXNfdmlkZW9dIHtcbiAgICAgICAgLnRleHRib3hfX2ljb25zIHtcbiAgICAgICAgICAgIC5pY29uLS1wbGF5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgICAgICAgICB+IC5pY29uLS1hcnJvdyB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjZTE1aCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltpc19iZWdpbm5lcl0ge1xuICAgICAgICAudGV4dGJveF9faWNvbnMge1xuICAgICAgICAgICAgLmljb24tLWJlZ2lubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgICAgICAgICB+IC5pY29uLS1hcnJvdyB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjZTE1aCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiByZXBlYXQoYXV0by1maWxsLCA0NXZ3KTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgLnRleHRib3gge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICAgICAgLy93aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDYsIDE0KSk7XG4gICAgICAgIHdpZHRoOiA1NXZ3O1xuICAgIH1cbn1cblxuLypMdWZ0IHVuZGVyIGRlbiBzaWRzdGUgbGluamUgaSByZWZlcmVuY2Vtb2R1bGV0IGZqZXJuZXMqL1xuLmxpc3RpbmdzX19pdGVtOm50aC1jaGlsZCgzbiArIDEpOm50aC1sYXN0LWNoaWxkKC1uICsgMyksXG4ubGlzdGluZ3NfX2l0ZW06bnRoLWNoaWxkKDNuICsgMSk6bnRoLWxhc3QtY2hpbGQoLW4gKyAzKVxufiAubGlzdGluZ3NfX2l0ZW0ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG4iLCIuY2FtcGFpZ24ge1xuICAgIHdpZHRoOiBjYWxjKHZhcigtLXNwYWNlMTAwaCkgKiA5KTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNlMTAwaCk7XG4gICAgJltjbGFzcyo9XCJyaWdodFwiXSB7XG4gICAgICAgIC5jYW1wYWlnbl9fdGV4dHMge1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgLnRleHRib3gge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICZbY2xhc3MqPVwibGVmdFwiXSB7XG4gICAgICAgIC5jYW1wYWlnbl9fdGV4dHMge1xuICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuICAgICZbY2xhc3MqPVwiYm90dG9tXCJdIHtcbiAgICAgICAgLmNhbXBhaWduX190ZXh0cyB7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgJltjbGFzcyo9XCJsZWZ0XCJdIHtcbiAgICAgICAgICAgIC5jYW1wYWlnbl9fdmlkZW8ge1xuICAgICAgICAgICAgICAgID5hIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiB2YXIoLS1zcGFjZTI1aCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMywgOSkpO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IHZhcigtLXNwYWNlMjVoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJltjbGFzcyo9XCJ0b3AtbGVmdFwiXSxcbiAgICAmW2NsYXNzKj1cInRvcC1yaWdodFwiXSB7XG4gICAgICAgIC5jYW1wYWlnbl9fdGV4dHMge1xuICAgICAgICAgICAgd2lkdGg6IG1pbi1jb250ZW50O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNCwgOSkpO1xuICAgICAgICAgICAgbWluLXdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMywgOSkpO1xuICAgICAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig2LCA5KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA1NjhweCkge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDcsIDkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAudGV4dGJveF9fZGF0ZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZTE1aCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigxLCAxNCkpOyAvL21hdGgucGVyY2VudGFnZShtYXRoLmRpdigxLCAxMSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC50ZXh0Ym94IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG5cbiAgICAgICAgICAgIGgyLnRleHRib3hfX3RpdGxlIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig0LCA0KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAudGV4dGJveF9fY29weSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDQsIDQpKTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJltjbGFzcyo9XCJ0b3AtcmlnaHRcIl0ge1xuICAgICAgICAudGV4dGJveF9fZGF0ZSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmW2NsYXNzKj1cImxlZnQtdG9wXCJdLFxuICAgICZbY2xhc3MqPVwicmlnaHQtdG9wXCJdLFxuICAgICZbY2xhc3MqPVwiYm90dG9tXCJdIHtcbiAgICAgICAgLnRleHRib3gge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmW2NsYXNzKj1cIndpZGVcIl0ge1xuICAgICAgICAmW2NsYXNzKj1cInJpZ2h0XCJdIHtcbiAgICAgICAgICAgIC5jYW1wYWlnbl9fdGV4dHMge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDQsIDEyKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDEyLCAxMikpO1xuICAgICAgICAgICAgei1pbmRleDogMzA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJltjbGFzcyo9XCJjb2xvclwiXSB7XG4gICAgICAgIC5jYW1wYWlnbl9fdGV4dHMge1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNCwgOSkpO1xuICAgICAgICAgICAgLnRleHRib3gge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlMTAwaCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNwYWNlMTAwaCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDMsIDQpKTtcbiAgICAgICAgICAgICAgICByaWdodDogLShtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMywgNCkpKTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5jYW1wYWlnbi0tc2ltcGxlIHtcbiAgICAgICAgLmNhbXBhaWduX190ZXh0cyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAvL0BpbmNsdWRlIHNwYWNlcignbWFyZ2luLXRvcCcsIDEwMCwgJ2gnKTtcbiAgICAgICAgICAgIC8vQGluY2x1ZGUgc3BhY2VyKCdtYXJnaW4tYm90dG9tJywgMTAwLCAnaCcpO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAudGV4dHBhbmVsIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmLmNhbXBhaWduLS1zaW1wbGUtYWx0IHtcbiAgICAgICAgLmNhbXBhaWduX190ZXh0cyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAvL0BpbmNsdWRlIHNwYWNlcignbWFyZ2luLXRvcCcsIDEwMCwgJ2gnKTtcbiAgICAgICAgICAgIC8vQGluY2x1ZGUgc3BhY2VyKCdtYXJnaW4tYm90dG9tJywgMTAwLCAnaCcpO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAudGV4dHBhbmVsIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICAgICAgc2VjdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMywgOSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBoZWFkZXIge1xuICAgICAgICAgICAgICAgICAgICArc2VjdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAmW2NsYXNzKj1cImJvdHRvbVwiXSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFjZXIoXCJwYWRkaW5nLWJvdHRvbVwiLCAxMDAsIFwiaFwiLCAyKTtcbiAgICAgICAgfVxuICAgICAgICAmW2NsYXNzKj1cInRvcFwiXSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFjZXIoXCJwYWRkaW5nLXRvcFwiLCAxMDAsIFwiaFwiLCAyKTtcbiAgICAgICAgfVxuICAgICAgICAmW2NsYXNzKj1cInJpZ2h0XCJdIHtcbiAgICAgICAgICAgIC5jYW1wYWlnbl9fdGV4dHMge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDgsIDEyKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJltjbGFzcyo9XCJ3aWRlXCJdIHtcbiAgICAgICAgICAgICZbY2xhc3MqPVwicmlnaHRcIl0ge1xuICAgICAgICAgICAgICAgIC5jYW1wYWlnbl9fdGV4dHMge1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig4LCAxMikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmW2NsYXNzKj1cImNvbG9yXCJdIHtcbiAgICAgICAgICAgIC5jYW1wYWlnbl9fdGV4dHMge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDgsIDEyKSk7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuY2FtcGFpZ24tLXNpbXBsZS1hbHQge1xuICAgICAgICAgICAgLmNhbXBhaWduX190ZXh0cyB7XG4gICAgICAgICAgICAgICAgLnRleHRwYW5lbCB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDEsIDE0KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigxLCAxNCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICArc2VjdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZWN0aW9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMSwgMTQpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDEsIDE0KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDgsIDE0KSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICZbY2xhc3MqPVwiY29sb3JcIl0ge1xuICAgICAgICAgICAgLmNhbXBhaWduX190ZXh0cyB7XG4gICAgICAgICAgICAgICAgLnRleHRib3gge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2FtcGFpZ25fX3RleHRzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwcHg7XG4gICAgbGVmdDogMHB4O1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGJvdHRvbTogYXV0bztcbiAgICBtYXgtd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigzLCA5KSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMjA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBAaW5jbHVkZSBzcGFjZXIoXCJwYWRkaW5nLWJvdHRvbVwiLCAxMDAsIFwiaFwiKTtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICBtYXgtd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig5LCAxNCkpO1xuICAgIH1cblxuICAgIC8qTHVmdCBmcmEgdGVrc3QgdGlsIGJ1bmQgbWluZHNrZXMgc8OlIGRlciBlciBkZW4gc2FtbWUgYWZzdGFuZCB0aWwgaGVuaG9sZHN2aXMgaMO4anJlIG9nIGJ1bmQqL1xuICAgIHBhZGRpbmctYm90dG9tOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMSwgMjgpKTtcbn1cblxuLmNhbXBhaWduIHtcbiAgICBwaWN0dXJlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbiAgICBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbn1cblxuLmNhbXBhaWduX192aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgID5hLnZpZGVvX3BsYXlfYnV0dG9uX292ZXJsYXkge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDEyO1xuICAgICAgICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgICAgICBvdXRsaW5lOiAxcHggYXV0byAjMDAwO1xuICAgICAgICB9XG4gICAgfVxuICAgID5hLnZpZGVvX2J1dHRvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMTE7XG4gICAgfVxuICAgID5hIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBAaW5jbHVkZSBzcGFjZXIoXCJib3R0b21cIiwgMjUpO1xuICAgICAgICBAaW5jbHVkZSBzcGFjZXIoXCJsZWZ0XCIsIDI1KTtcbiAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDFweCBhdXRvICMwMDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWZyYW1lIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcbiAgICAgICAgJi5sYXp5bG9hZGVkIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLypidWlsZCovXG4iLCIuY29udGVudC13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAuc2lkZWJhciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiBjYWxjKDEwMCUgLyAxNCk7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAxNCAqIDIpO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlMTAwaCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogaW5oZXJpdDtcbiAgICAgICAgICAgIHdpZHRoOiB1bnNldDtcbiAgICAgICAgICAgIGxlZnQ6IHVuc2V0O1xuICAgICAgICAgICAgcGFkZGluZzogMCBjYWxjKDEwMCUgLyAxNCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zaWRlYmFyX190YXhvbm9teSB7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgdWwge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdyaWQtZ2FwOiAxNXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5zaWRlYmFyX19yZXNldCB7XG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgJ3llbGxvdycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTRweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmhpZGRlbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uc2lkZWJhcl9fc2VhcmNoIHtcbiAgICArICoge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTUwaCk7XG4gICAgfVxufVxuXG4uc2lkZWJhcl9fdGF4b25vbXkge1xuICAgICsgLnNpZGViYXJfX3RheG9ub215IHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2U1MGgpO1xuICAgIH1cblxuICAgIHVsIHtcblxuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgb3BhY2l0eTogMC42NztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogLTVweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjY0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLnNlbGVjdGVkIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiNzaWRlYmFyX19uZXd1c2VyIHtcbiAgICB1bCB7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4iLCIuYmxvY2sge1xuICAgIC8vQGluY2x1ZGUgc3BhY2VyKFwibWFyZ2luLXRvcFwiLCA1MCwgXCJoXCIpO1xuICAgIC8vQGluY2x1ZGUgc3BhY2VyKFwibWFyZ2luLWJvdHRvbVwiLCA1MCwgXCJoXCIpO1xuXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZTEwMGgpO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICAmLnBhbGV0dGUge1xuICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNlMTAwaCk7XG4gICAgfVxuICAgICYucGFsZXR0ZS0tNyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB9XG4gICAgLy8gQFQyMDk1NSAtIEJVRyAtIGxpbmtwaWwtZmFydmVuIGkgZGUgbcO4cmtlIGJhZ2dydW5kc2ZhcnZlclxuICAgIC8vJi5wYWxldHRlLS01LFxuICAgIC8vJi5wYWxldHRlLS02IHtcbiAgICAvLyAgICBzdmcge1xuICAgIC8vICAgICAgICBmaWx0ZXI6IGludmVydCgxKTtcbiAgICAvLyAgICB9XG4gICAgLy99XG4gICAgJi5ibG9jay0tYW5jaG9yIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICAgIC8vIGhlaWdodDoxcHg7XG4gICAgICAgIC8vIHdpZHRoOjEwMCU7XG4gICAgICAgIHAge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVtIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDFlbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxZW07XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICAgIG9sIHtcbiAgICAgICAgbGlzdC1zdHlsZTogZGVjaW1hbDtcbiAgICB9XG4gICAgdWwge1xuICAgICAgICBsaXN0LXN0eWxlOiBkaXNjO1xuICAgIH1cbiAgICB1bCxcbiAgICBvbCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNwYWNlMTVoKTtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgLy9jb2xvcjogbWFwLWdldCgkY29sb3JzLCBcImRhcmstYWx0XCIpO1xuICAgICAgICAgICAgQGV4dGVuZCAlcDtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNXM7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIFwiZGFya1wiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJi5saW5rIHtcbiAgICAgICAgICAgICAgICAgICAgQGV4dGVuZCAlaDQ7XG4gICAgICAgICAgICAgICAgICAgICYubGluay0tbGFyZ2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGV4dGVuZCAlaDM7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UyMDBoKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2UyMDBoKTtcblxuICAgICAgICAmLmJsb2NrLS10b3Age1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNlMTAwaCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJcblxuLnNpbXBsZS1ib3gge1xuICAgIHBhZGRpbmc6IDIuNXJlbTtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICBwYWRkaW5nOiAxLjVyZW07XG4gICAgfVxuXG4gICAgaGVhZGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2UyNWgpO1xuXG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5zaG93LWljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdmcuaWNvbiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaDIge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAgICAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBtYWluIHtcbiAgICAgICAgJi5jb2x1bW5zLTIge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYWNlcihcImdhcFwiLCAyNSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPiBkaXYgPiBwIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuMnZ3O1xuICAgICAgICB9XG4gICAgICAgID4gZGl2ID4gcDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS10aXAge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQ4LCA0MiwgNTYsIDEpO1xuICAgICAgICBib3JkZXItbGVmdDogLjVyZW0gc29saWQgcmdiYSg0OCwgNDIsIDU2LCAxKTtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuXG4gICAgICAgIGhlYWRlciB7XG4gICAgICAgICAgICAuc2hvdy1pY29uIHtcbiAgICAgICAgICAgICAgICBzdmcuaWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6IHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICBzdHJva2U6IHdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBoZWFkZXIuc2hvdy1pY29uLCBoZWFkZXIge1xuICAgICAgICAgICAgaDIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG1haW4gaDIsXG4gICAgICAgIG1haW4gaDMsXG4gICAgICAgIG1haW4gaDQsXG4gICAgICAgIG1haW4gdWwgbGksXG4gICAgICAgIG1haW4gb2wgbGksXG4gICAgICAgIG1haW4gcCB7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIG1haW4gYTpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogIzc1NzE3NyAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tZGlzY3JldGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQ4LCA0MiwgNTYsIC4xKTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IC41cmVtIHNvbGlkIHJnYmEoNDgsIDQyLCA1NiwgLjI1KTtcbiAgICAgICAgY29sb3I6IHJnYmEoNDgsIDQyLCA1NiwgMSk7XG4gICAgfVxuXG4gICAgJi0tb2JzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDQsIDE4OSwgNDQsIC4yNSk7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAuNXJlbSBzb2xpZCByZ2JhKDI0NCwgMTg5LCA0NCwgLjUwKTtcbiAgICAgICAgY29sb3I6IHJnYmEoNDgsIDQyLCA1NiwgMSk7XG4gICAgfVxuXG4gICAgJi0taW5mbyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTIwLCAxOTAsIDIzMSwgLjI1KTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IC41cmVtIHNvbGlkIHJnYmEoMTIwLCAxOTAsIDIzMSwgLjUwKTtcbiAgICAgICAgY29sb3I6IHJnYmEoNDgsIDQyLCA1NiwgMSk7XG4gICAgfVxufVxuXG4vKiogRml4IHdpZHRoIG9mIHNpbXBsZSBib3ggaW5zaWRlIGEgY29sdW1uIHdoZW4gbG93ZXIgdGhhbiAxMDI0cHggKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5ibG9jay0tYXJ0aWNsZS0tY29sdW1uIHtcbiAgICAgICAgYXJ0aWNsZS5jb2x1bW4tLXNpbXBsZS1ib3gge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNSwgMTIpKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgYXJ0aWNsZS5jb2x1bW4tLWFjY29yZG9uIHtcbiAgICAgICAgICAgIGFydGljbGUuY29sdW1uLS1zaW1wbGUtYm94IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHdpZHRoOiB1bnNldCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYWNjb3Jkb25fX3BhbmVsIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAuYXJ0aWNsZS1jb250ZW50IC5ibG9jay5ibG9jay0tYXJ0aWNsZS5ibG9jay0tYXJ0aWNsZS0tY29sdW1uID4gYXJ0aWNsZS5jb2x1bW4tLWFjY29yZG9uIHtcbiAgICAgICAgLy9tYXJnaW4tbGVmdDogMjUlO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuLy8uYmxvY2stLWFydGljbGUuYmxvY2stLWFydGljbGUtLWZ1bGx3aWR0aCAuZnVsbHdpZHRoLS1zaW1wbGUtYm94LnNpbXBsZS1ib3hcbi8vbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzMzMlO1xuLy93aWR0aDogNTYuNjY2NjY3JTtcbi8vbWFyZ2luLXJpZ2h0OiAxNC4yODU3MTQyODU3dnc7XG4iLCIvKipcbkhlcm8gQmxvY2tcbiAqL1xuXG5AdXNlIFwic2FzczptYXRoXCI7XG5cbkBpbXBvcnQgXCIuLi91dGlsaXRpZXMvaW5jbHVkZS1tZWRpYVwiO1xuQGltcG9ydCBcIi4uL3ZhcmlhYmxlcy9nZW5lcmFsXCI7XG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzL2JyZWFrcG9pbnRzXCI7XG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzL2NvbG9yc1wiO1xuQGltcG9ydCBcIi4uL3V0aWxpdGllcy9taXhpbnNcIjtcblxuLmJsb2NrLS1oZXJvIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLW1heC13aWR0aCk7XG4gICAgbWFyZ2luOiB2YXIoLS1zcGFjZTUwaCkgdmFyKC0tc3BhY2UxMDBoKSB2YXIoLS1zcGFjZTEwMGgpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgICYucGFsZXR0ZS0tMCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDgsIDQyLCA1NiwgLjEpO1xuICAgIH1cblxuICAgICYucGFsZXR0ZS0tMSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgXCJ5ZWxsb3dcIik7XG4gICAgfVxuXG4gICAgJi5wYWxldHRlLS0yIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBcImdyZWVuXCIpO1xuICAgIH1cblxuICAgICYucGFsZXR0ZS0tMyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgXCJyZWRcIik7XG4gICAgfVxuXG4gICAgJi5wYWxldHRlLS00IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBcImJsdWVcIik7XG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDgsIDEyKSk7XG4gICAgICAgIG1hcmdpbjogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDEsIDI4KSk7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbjogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDIsIDI4KSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICBhc3BlY3QtcmF0aW86IDEuNzUgLyAxO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigyNCwgMjgpKTtcbiAgICAgICAgICAgICAgICBhc3BlY3QtcmF0aW86IHVuc2V0O1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAudmlkZW9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogMTYgLyA5O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigyNCwgMjgpKTtcbiAgICAgICAgICAgICAgICBhc3BlY3QtcmF0aW86IHVuc2V0O1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDQsIDEyKSk7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDEsIDI4KSk7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMjQsIDI4KSk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMSwgMTQpKTtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICB9XG5cblxuICAgICAgICAudGV4dGJveCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigyNiwgMjgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuXG4gICAgICAgICAgICBoMSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAyMHB4O1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAdXNlIFwic2FzczptYXRoXCI7XG5cbkBpbXBvcnQgXCIuLi91dGlsaXRpZXMvaW5jbHVkZS1tZWRpYVwiO1xuQGltcG9ydCBcIi4uL3ZhcmlhYmxlcy9nZW5lcmFsXCI7XG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzL2JyZWFrcG9pbnRzXCI7XG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzL2NvbG9yc1wiO1xuQGltcG9ydCBcIi4uL3V0aWxpdGllcy9taXhpbnNcIjtcblxuLmhlYWRlcl9fZGVza3RvcC0tbGFuZ21lbnUsXG4uaGVhZGVyX19kZXNrdG9wLS1zZWNvbmQsXG4uaGVhZGVyX19kZXNrdG9wLS1zZWNvbmQge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5oZWFkZXIge1xuICAgICZfX21vYmlsZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlMjVoKTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNwYWNlNTBoKTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjZTUwaCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPnRhYmxldFwiKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1icmFuZGluZyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgIC5icmFuZGluZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICAubG9nbyBzdmcge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDRweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0NHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1lbnUge1xuICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdG9nZ2xlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigzLCA0KSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saXN0bWVudS1jb250YWluZXIge1xuICAgICAgICAgICAgbWFyZ2luOiB2YXIoLS1zcGFjZTI1aCkgdmFyKC0tc3BhY2U1MGgpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj50YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgLmxpc3RtZW51IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMC4zcyBlYXNlLWluLW91dCwgb3BhY2l0eSAwLjVzIGVhc2UtaW4tb3V0O1xuXG4gICAgICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogdmFyKC0tY29udGFpbmVySGVpZ2h0LCAxODBweCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlYXJjaC1leHRlcm5hbGx5IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlMjVoKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNwYWNlNTBoKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjZTUwaCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj50YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmV4dGVybmFsLXNlYXJjaC1idXR0b24ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMiwgMTIpKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg0OCwgNDIsIDU2LCAxKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogcmdiYSgyMzgsIDIzOCwgMjMxLCAxKTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiByZ2JhKDIzOCwgMjM4LCAyMzEsIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubGluay1idXR0b24gYSB7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlYXJjaC1pbnRlcm5hbGx5IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlNTBoKTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjZTUwaCk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNlNTBoKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj50YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgIC5zZWFyY2hiYXIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoOSwgMTIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlcnZpY2VtZW51IHtcbiAgICAgICAgICAgIG1hcmdpbjogdmFyKC0tc3BhY2UyNWgpIHZhcigtLXNwYWNlNTBoKSB2YXIoLS1zcGFjZTUwaCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogNzY5cHgpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICBuYXYge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoOSwgMTIpKTtcblxuICAgICAgICAgICAgICAgIC5zZXJ2aWNlbWVudV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLm1lbnVfX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLm1lbnVfX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN1YnBhZ2UtbWVudS5saXN0bWVudSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG5cbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwcmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAgICAgICAgICAgLmxpc3RtZW51IHtcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj50YWJsZXRcIikge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmX19kZXNrdG9wLS1sYW5nbWVudSB7XG5cbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2U1MGgpO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNwYWNlMTAwaCk7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLXNwYWNlMTAwaCk7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICBtYXgtd2lkdGg6IHZhcigtLW1heC13aWR0aCk7XG4gICAgICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDE0MDFweCkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fZGVza3RvcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlMjVoKTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBtYXgtd2lkdGg6IHZhcigtLW1heC13aWR0aCk7XG4gICAgICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDE0MDFweCkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1icmFuZGluZyB7XG4gICAgICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDQsIDEyKSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgICAgLmJyYW5kaW5nIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHVuc2V0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubG9nbyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDI1JTtcblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYXZpZ2F0aW9ucyB7XG4gICAgICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDgsIDEyKSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICAgICA+IGRpdjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+IGRpdjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuaGVhZGVyX190YWdsaW5lIHtcblxuICAgICAgICAgICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBlbmQ7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDBweDtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdy13cmFwOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAgICAgJi5oaWRkZW4ge1xuICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5saXN0bWVudSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDIuNXJlbTtcblxuICAgICAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1jb250YWluZXJIZWlnaHQsIDE4MHB4KTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDIuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS10b2dnbGUtZ3JvdXAge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDI3cHg7XG5cbiAgICAgICAgICAgIC5oZWFkZXJfX3NlYXJjaC1pbnRlcm5hbF9fd3JhcCB7XG5cbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTAwJTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuXG5cblxuICAgICAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJ1dHRvblt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zZWFyY2gtaW50ZXJuYWwtYnRuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlY29uZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1tYXgtd2lkdGgpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTI1aCk7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNwYWNlMTAwaCk7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zcGFjZTEwMGgpO1xuXG4gICAgICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiAxNDAxcHgpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuaGVhZGVyX19kZXNrdG9wLS1maWxsZXIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNCwgMTIpKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcblxuICAgICAgICAgICAgICAgIC5oZWFkZXJfX2Rlc2t0b3AtLWJhY2sge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjUlO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjc1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuaGVhZGluZ19fZGVza3RvcC0tc2VhcmNoLWV4dGVybmFsbHkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDE1cHggMDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5leHRlcm5hbC1zZWFyY2gtYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg0OCwgNDIsIDU2LCAxKTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHJnYmEoMjM4LCAyMzgsIDIzMSwgMSk7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICAgICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZTogcmdiYSgyMzgsIDIzOCwgMjMxLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VydmljZW1lbnUge1xuICAgICAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig4LCAxMikpO1xuXG4gICAgICAgICAgICAuc2VydmljZW1lbnUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uYnJlYWRjcnVtYnNfX2NvbnRhaW5lci0tYmFjayB7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+dGFibGV0XCIpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5oZWFkZXJfX2Rlc2t0b3AtLXNlY29uZCAuaGVhZGVyX19kZXNrdG9wLS1maWxsZXIgLmV4dGVybmFsLXNlYXJjaC1idXR0b246OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4iLCIuZm9vdGVyIHtcbiAgICAvL3BhZGRpbmctbGVmdDogI3skZ3JpZHVuaXRzaXplfXZ3O1xuICAgIC8vcGFkZGluZy1yaWdodDogI3skZ3JpZHVuaXRzaXplfXZ3O1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlMTAwaCk7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1heC13aWR0aDogdmFyKC0tbWF4LXdpZHRoKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiAxNDAxcHgpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAuZm9vdGVyX19jb250ZW50IHtcbiAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig2LCAxMikpO1xuXG4gICAgICAgIC5mb290ZXJfX21lbnUge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3BhY2VyKFwibWFyZ2luLXRvcFwiLCAyNSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5mb290ZXJfX2luZm8ge1xuICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNiwgMTIpKTtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgLmZvb3Rlcl9fY29udGVudCB7XG4gICAgICAgIC8vICAgIEBpbmNsdWRlIHNwYWNlcihcIm1hcmdpbi10b3BcIiwgNTApO1xuICAgIH1cblxuICAgIC5mb290ZXJfX21lbnUge1xuICAgICAgICArIC5mb290ZXJfX21lbnUge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3BhY2VyKFwibWFyZ2luLXRvcFwiLCA1MCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAuZm9vdGVyX19oZWFkaW5nIHtcbiAgICAgICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNSwgMTIpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb290ZXJfX2NvbnRlbnQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgKyBzZWN0aW9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYWNlcihcIm1hcmdpbi10b3BcIiwgNTApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZm9vdGVyX19jb250YWN0IHtcbiAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDYsIDEyKSk7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAuZm9vdGVyX19oZWFkaW5nIHtcbiAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigyLCA2KSk7XG4gICAgfVxuXG4gICAgLmZvb3Rlcl9fY29weSB7XG4gICAgICAgICsgLmZvb3Rlcl9fbWVudSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFjZXIoXCJtYXJnaW4tdG9wXCIsIDI1KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAuZm9vdGVyX19oZWFkaW5nIHtcbiAgICAgICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNSwgMTIpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmZvb3Rlcl9fY29sb3Bob24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcblxuICAgIHAge1xuICAgICAgICBAZXh0ZW5kICVoNDtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgfVxuXG4gICAgLmZvb3Rlcl9fY29weS0tc21hbGwge1xuICAgICAgICBwIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgc3BhY2VyKFwibWFyZ2luLXRvcFwiLCA1MCk7XG5cbiAgICAuZmlmdGgtZWxlbWVudCB7XG4gICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNiwgMTIpKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICBncmlkLWdhcDogNiU7XG4gICAgICAgIC5maWZ0aC1lbGVtZW50IHtcbiAgICAgICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNSwgMTIpKTtcbiAgICAgICAgfVxuICAgICAgICAuZm9vdGVyX19jb250ZW50IHtcbiAgICAgICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNywgMTIpKTtcbiAgICAgICAgfVxuICAgICAgICAuZm9vdGVyX19tZW51LS1zZWNvbmRhcnkge1xuICAgICAgICAgICAgZmxleDogMCAwIDM1JTtcbiAgICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmZvb3Rlcl9fbWVudS0tc2Vjb25kYXJ5IHtcbiAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDYsIDEyKSk7XG59XG5cbi5mb290ZXJfX2JhciB7XG4gICAgQGluY2x1ZGUgc3BhY2VyKFwibWFyZ2luLXRvcFwiLCAxMDApO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAuaWNvbi1iYXItLWVsZW1lbnQge1xuICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDgsIDEyKSk7XG4gICAgfVxufVxuXG4uZm9vdGVyX19oZWFkaW5nIHtcbiAgICBAZXh0ZW5kICVoMztcbiAgICBtYXJnaW46IDA7XG59XG4iLCIuYmxvY2stLWNhbXBhaWduIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLW1heC13aWR0aCk7XG4gICAgbWFyZ2luOiB2YXIoLS1zcGFjZTUwaCkgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogcmlnaHQ7XG4gICAgQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1zcGFjZTUwaCkgdmFyKC0tc3BhY2UxMDBoKTtcbiAgICB9XG4gICAgJi5wYWxldHRlOm5vdCguYmxvY2stLWNhbXBhaWduLXNpbXBsZSkge1xuICAgICAgICBwYWRkaW5nLXRvcDogMHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICAgICAgICBjb2xvcjogdW5zZXQ7XG4gICAgfVxuICAgICYucGFsZXR0ZSB7XG4gICAgICAgICRpOiAwO1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgQGVhY2ggJG5hbWUsXG4gICAgICAgICRpdGVtIGluICRwYWxldHRlIHtcbiAgICAgICAgICAgICRpOiAkaSArIDE7XG4gICAgICAgICAgICAmLnBhbGV0dGUtLSN7JGl9IHtcbiAgICAgICAgICAgICAgICAuY2FtcGFpZ25fX3RleHRzIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkaXRlbSwgYmcpO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogbWFwLmdldCgkaXRlbSwgdHh0KTtcbiAgICAgICAgICAgICAgICAgICAgLnRleHRib3hfX2NvcHksXG4gICAgICAgICAgICAgICAgICAgIC50ZXh0cGFuZWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuY2FtcGFpZ24ge1xuICAgICAgICAgICAgJltjbGFzcyo9XCJ0b3AtbGVmdFwiXSxcbiAgICAgICAgICAgICZbY2xhc3MqPVwidG9wLXJpZ2h0XCJdIHtcbiAgICAgICAgICAgICAgICAuY2FtcGFpZ25fX3RleHRzIHtcbiAgICAgICAgICAgICAgICAgICAgLnRleHRib3gge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICZbY2xhc3MqPVwidG9wLXJpZ2h0XCJdIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgLy8gICAkaSA6IDA7XG4gICAgICAgIC8vICAgQGVhY2ggJG5hbWUsICRpdGVtIGluICRwYWxldHRlIHtcbiAgICAgICAgLy8gICAgICRpOiAkaSArIDE7XG4gICAgICAgIC8vICAgICAmLnBhbGV0dGUtLSN7JGl9IHtcbiAgICAgICAgLy8gICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkaXRlbSwgYmcpO1xuICAgICAgICAvLyAgICAgICBjb2xvcjogbWFwLmdldCgkaXRlbSwgdHh0KTtcbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy8gICB9XG4gICAgICAgIC8vIH1cbiAgICB9XG4gICAgJi5ibG9jay0tY2FtcGFpZ24tbGVmdCB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogbGVmdDtcbiAgICAgICAgJi5wYWxldHRlIHtcbiAgICAgICAgICAgICRpOiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgQGVhY2ggJG5hbWUsXG4gICAgICAgICAgICAkaXRlbSBpbiAkcGFsZXR0ZSB7XG4gICAgICAgICAgICAgICAgJGk6ICRpICsgMTtcbiAgICAgICAgICAgICAgICAmLnBhbGV0dGUtLSN7JGl9IHtcbiAgICAgICAgICAgICAgICAgICAgLmNhbXBhaWduX190ZXh0cyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCRpdGVtLCBiZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogbWFwLmdldCgkaXRlbSwgdHh0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC50ZXh0Ym94X19jb3B5LFxuICAgICAgICAgICAgICAgICAgICAgICAgLnRleHRwYW5lbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgLy8gICAkaSA6IDA7XG4gICAgICAgICAgICAvLyAgIEBlYWNoICRuYW1lLCAkaXRlbSBpbiAkcGFsZXR0ZSB7XG4gICAgICAgICAgICAvLyAgICAgJGk6ICRpICsgMTtcbiAgICAgICAgICAgIC8vICAgICAmLnBhbGV0dGUtLSN7JGl9IHtcbiAgICAgICAgICAgIC8vICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJGl0ZW0sIGJnKTtcbiAgICAgICAgICAgIC8vICAgICAgIGNvbG9yOiBtYXAuZ2V0KCRpdGVtLCB0eHQpO1xuICAgICAgICAgICAgLy8gICAgIH1cbiAgICAgICAgICAgIC8vICAgfVxuICAgICAgICAgICAgLy8gfVxuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAvLyAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gICAgJi5ibG9jay0tY2FtcGFpZ24tc2ltcGxlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2U1MGgpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZTUwaCk7XG4gICAgICAgIG1heC13aWR0aDogdmFyKC0tbWF4LXdpZHRoKTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICAmLnBhbGV0dGUge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj50YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAvL3otaW5kZXg6IDMwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY2FtcGFpZ25fX3RleHRzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBcImxpZ2h0XCIpO1xuICAgIH1cbn1cbiIsIkB1c2UgXCJzYXNzOm1hdGhcIjtcblxuQGltcG9ydCBcIi4uL3V0aWxpdGllcy9pbmNsdWRlLW1lZGlhXCI7XG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzL2dlbmVyYWxcIjtcbkBpbXBvcnQgXCIuLi92YXJpYWJsZXMvYnJlYWtwb2ludHNcIjtcbkBpbXBvcnQgXCIuLi92YXJpYWJsZXMvY29sb3JzXCI7XG5AaW1wb3J0IFwiLi4vdXRpbGl0aWVzL21peGluc1wiO1xuXG4uYmxvY2stLWNvbnRhY3Qge1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTUwaCk7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2U1MGgpO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiByaWdodDtcblxuICAgIC5jb250YWN0LS0td3JhcCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogcmlnaHQ7XG4gICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoOSwgMTIpKTtcblxuICAgICAgICAuY29udGFjdC0taW5mb3JtYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNlNTBoKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgIC5jb250YWN0LS1iYXNpY2luZm8tLXdyYXAge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig4LCAxMikpO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogcmlnaHQ7XG5cbiAgICAgICAgICAgICAgICAuYmFzaWNpbmZvIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig1LCAxMikpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNlNTBoKTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50aXplKG1hcC1nZXQoJGNvbG9ycywgXCJkYXJrXCIpLCAwLjM2KTtcblxuICAgICAgICAgICAgICAgICAgICAuY29udGFjdC0tbmFtZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlMjVoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudGl6ZShtYXAtZ2V0KCRjb2xvcnMsIFwiZGFya1wiKSwgMC4xKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5jb250YWN0LS1kZXBhcnRtZW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlMjVoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS4ydnc7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBvbCBsaSxcbiAgICAgICAgICAgICAgICAgICAgdWwgbGkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41dnc7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jb250YWN0LS1jb250YWN0aW5mbyB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlNTBoKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tc3BhY2U1MGgpO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDUsIDEyKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdWwgbGkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2UyNWgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50aXplKG1hcC1nZXQoJGNvbG9ycywgXCJkYXJrXCIpLCAwLjM2KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbnRhY3QtLWltYWdlIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDMsIDEyKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAudGV4dHBhbmVsIGhlYWRlciB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIC5ibG9jay0tY29udGFjdCB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIC5jb250YWN0LS0td3JhcCB7XG4gICAgICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDgsIDEyKSk7XG4gICAgICAgIH1cbiAgICAgICAgLmJhc2ljaW5mbyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLmNvbnRhY3QtLWluZm9ybWF0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAuY29udGFjdC0taW1hZ2Uge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLmNvbnRhY3QtLWNvbnRhY3RpbmZvIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLmNvbnRhY3QtLWJhc2ljaW5mby0td3JhcCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4iLCJAdXNlIFwic2FzczptYXRoXCI7XG5AaW1wb3J0IFwiLi4vdXRpbGl0aWVzL2luY2x1ZGUtbWVkaWFcIjtcbkBpbXBvcnQgXCIuLi92YXJpYWJsZXMvZ2VuZXJhbFwiO1xuQGltcG9ydCBcIi4uL3ZhcmlhYmxlcy9icmVha3BvaW50c1wiO1xuQGltcG9ydCBcIi4uL3ZhcmlhYmxlcy9jb2xvcnNcIjtcbkBpbXBvcnQgXCIuLi91dGlsaXRpZXMvbWl4aW5zXCI7XG5cbi5ibG9jay0tY29udGFjdC0taW5mbyB7XG4gICAgbWFyZ2luOiB2YXIoLS1zcGFjZTUwaCkgdmFyKC0tc3BhY2UxMDBoKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHJpZ2h0O1xuXG4gICAgLmNvbnRhY3QtLS13cmFwIHtcbiAgICAgICAgLmNvbnRhY3QtLWluZm9ybWF0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigyLCA5KSk7XG5cbiAgICAgICAgICAgIC5iYXNpY2luZm8ge1xuICAgICAgICAgICAgICAgIC5zdWJoZWFkaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZTUwaCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudGl6ZShtYXAtZ2V0KCRjb2xvcnMsIFwiZGFya1wiKSwgMC4xKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb250YWN0LS1jb250YWN0aW5mbyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UyNWgpO1xuXG4gICAgICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHVsIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50aXplKG1hcC1nZXQoJGNvbG9ycywgXCJkYXJrXCIpLCAwLjM2KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb250YWN0LS1pbWFnZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigzLCAxMikpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIC50ZXh0cGFuZWwgaGVhZGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLmJsb2NrLS1jb250YWN0IHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogbGVmdCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZmxleC13cmFwOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLmJhc2ljaW5mbyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLmNvbnRhY3QtLWluZm9ybWF0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAuY29udGFjdC0taW1hZ2Uge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLmNvbnRhY3QtLWNvbnRhY3RpbmZvIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5ibG9jay0tc2VwYXJhdGlvbmxpbmUge1xuICAuc2VwYXJhdGlvbmxpbmUge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIEBpbmNsdWRlIGJvcmRlcmxpbmUoMyk7XG4gICAgfVxuICB9XG59XG4iLCJAdXNlIFwic2FzczptYXRoXCI7XG5AbWVkaWEgcHJpbnQgeyBcbiAgaHRtbCxcbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJvcmRlcjogaW5pdGlhbDtcbiAgICBib3JkZXItcmFkaXVzOiBpbml0aWFsO1xuICAgIHdpZHRoOiBpbml0aWFsO1xuICAgIG1pbi1oZWlnaHQ6IGluaXRpYWw7XG4gICAgYm94LXNoYWRvdzogaW5pdGlhbDtcbiAgICBiYWNrZ3JvdW5kOiBpbml0aWFsO1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGFsd2F5cztcbiAgfVxuICBwIHtcbiAgICBmb250LXNpemU6IDE2cHghaW1wb3J0YW50O1xuICB9XG4gIC5zaXRlLWhlYWRlcixcbiAgLnNpdGUtZm9vdGVyLFxuICAuY29udGVudF9fbmF2aWdhdGlvbnMge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAuY29udGVudC13cmFwcGVyIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIH1cblxuICAvLyBCbG9ja3NcbiAgLmJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogbGVmdCAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi10b3A6IDIwcHghaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHghaW1wb3J0YW50O1xuXG4gICAgaDMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGhlYWRlciB7XG4gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIHBpY3R1cmUge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmxpc3RpbmdzIHtcbiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5saXN0aW5nc19faGVhZGluZyxcbiAgICAudGV4dGJveCB7XG4gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmxpc3RpbmdzX19saXN0IHtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgfVxuXG4gICAgLnRleHRib3hfX2ljb25zIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBhcnRpY2xlIHtcbiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLXRvcDogMTBweCAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuIFxuICAgICAgaGVhZGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgIH1cbiBcbiAgICAgIHNlY3Rpb24ge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweCAhaW1wb3J0YW50O1xuICAgICAgfVxuIFxuICAgICAgb2wsXG4gICAgICB1bCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjBweCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgICAuY2FtcGFpZ24ge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMCAhaW1wb3J0YW50O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gXG4gICAgICAuY2FtcGFpZ25fX3RleHRzIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuIFxuICAgICAgICAudGV4dGJveCB7XG4gICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICYucGFsZXR0ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCFpbXBvcnRhbnQ7XG4gICAgICBwYWRkaW5nOiAwIWltcG9ydGFudDtcbiAgICAgIHAge1xuICAgICAgICBjb2xvcjpyZ2JhKDQ4LCA0MiwgNTYsIDAuNjQpIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIGgyIHtcbiAgICAgICAgY29sb3I6ICMzMDJBMzg7XG4gICAgICB9XG4gICAgfVxuICAgICYuYmxvY2stLWNvbnRhY3QsXG4gICAgJi5ibG9jay0tY29udGFjdC0taW5mbyB7XG4gICAgICAudGV4dHBhbmVsIHtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7ICAgICAgICBcbiAgICAgIH1cbiAgICAgIC5jb250YWN0LS0td3JhcCB7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBcbiAgICAgICAgLmNvbnRhY3QtLWluZm9ybWF0aW9uLFxuICAgICAgICAuYmFzaWNpbmZvLFxuICAgICAgICAuY29udGFjdC0tY29udGFjdGluZm8ge1xuICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMCFpbXBvcnRhbnQ7XG4gICAgICAgICAgLmJhc2ljaW5mbyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmLmJsb2NrLS1pbWFnZSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICYuYmxvY2stLWFydGljbGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLXRvcDogMTBweCAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAubGlzdGluZ3Mge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAubGlzdGluZ3NfX2hlYWRpbmcge1xuICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgaDIge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5saXN0aW5nc19fbGlzdCB7XG4gICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAubGlzdGluZ3NfX2l0ZW0ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgLnRleHRib3hfX3RpdGxlIHtcbiAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnRleHRib3gge1xuICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAudGV4dGJveF9fY29weSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC50ZXh0Ym94X19pY29ucyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAudGV4dHBhbmVsIHtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgaGVhZGVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5ibG9jay0tcmVmZXJlbmNlcyB7XG4gICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLXRvcDogMTBweCAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O1xuICAgICAgY2xlYXI6IGJvdGggIWltcG9ydGFudDtcbiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAubGlzdGluZ3Mge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAubGlzdGluZ3NfX2hlYWRpbmcge1xuICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgaDIge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5saXN0aW5nc19fbGlzdCB7XG4gICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAubGlzdGluZ3NfX2l0ZW0ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgLnRleHRib3hfX3RpdGxlIHtcbiAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnRleHRib3gge1xuICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICBvdmVyZmxvdy13cmFwOiBub3JtYWwgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgLnRleHRib3hfX2NvcHkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAudGV4dGJveF9faWNvbnMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuYmxvY2stLXdhbGt0aHJvdWdocyB7XG4gICAgICAubGlzdGluZ3Mge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAubGlzdGluZ3NfX2hlYWRpbmcge1xuICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIGgyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAubGlzdGluZ3NfX2xpc3Qge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jayFpbXBvcnRhbnQ7XG4gICAgICAgICAgd2lkdGg6IDEwMCUhaW1wb3J0YW50O1xuICAgICAgICAgIC5saXN0aW5nc19faXRlbSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2shaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvIWltcG9ydGFudDtcbiAgICAgICAgICAgIC50ZXh0Ym94IHtcbiAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgLnRleHRib3hfX2xhYmVsIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2shaW1wb3J0YW50O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC50ZXh0Ym94X190aXRsZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHggIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jayFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLnRleHRib3hfX2NvcHkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jayFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLmhhcm1vbmljYSB7XG4gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgLmFjY29yZG9uICB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHghaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgLmFjY29yZG9uX19pdGVtIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgICAgICAuYWNjb3Jkb25fX3BhbmVsIHtcbiAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAuYWNjb3Jkb25fX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmFjY29yZG9uX190cmlnZ2VyIHtcbiAgICAgICAgLmljb24ge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuYmxvY2stLXF1b3RlIHtcbiAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHggIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHggIWltcG9ydGFudDtcbiAgICAgIC5xdW90ZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIGZpZ3VyZSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYmxvY2txdW90ZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICBmaWdjYXB0aW9uIHtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5ibG9jay0tbmV3cyB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmFjY29yZG9uLS1zaW1wbGUgLmFjY29yZG9uX19pdGVtLmlzLWFjdGl2ZSAuYWNjb3Jkb25fX3BhbmVsOmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuYWNjb3Jkb25fX2l0ZW0gLmFjY29yZG9uX190cmlnZ2VyIHNwYW4ge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmxpc3RpbmdzX19saXN0LFxuICBhLmxpc3RpbmdzX19pdGVtLFxuICAudGV4dGJveCxcbiAgLnRleHRib3hfX3RpdGxlLFxuICAudGV4dGJveF9fY29weSB7XG4gIH1cblxuICBzcGFuLnByaW50LXBhZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUhaW1wb3J0YW50O1xuICB9XG59Il19 */
