:root {
  --color-red: #EE2529;
  --color-purple: #312A54;
  --color-dark-purple: #2A2447;
  --color-yellow: #F4E73F;
}

:root {
  --global-padding: clamp(1rem, 5vw, 2rem);
  --global-border-radius: 3px;
  --font-family-sans: "Roboto Condensed", sans-serif;
  --font-family-serif: "britannic_bold", Georgia, serif;
  /* Font Sizes */
  /* @link https://utopia.fyi/type/calculator?c=320,18,1.2,1240,20,1.25,5,2,&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12 */
  --size--2: clamp(0.7813rem, 0.7747rem + 0.0326vw, 0.8rem);
  --size--1: clamp(0.9375rem, 0.9158rem + 0.1087vw, 1rem);
  --size-0: clamp(1.125rem, 1.0815rem + 0.2174vw, 1.25rem);
  --size-1: clamp(1.35rem, 1.2761rem + 0.3696vw, 1.5625rem);
  --size-2: clamp(1.62rem, 1.5041rem + 0.5793vw, 1.9531rem);
  --size-3: clamp(1.944rem, 1.771rem + 0.8651vw, 2.4414rem);
  --size-4: clamp(2.3328rem, 2.0827rem + 1.2504vw, 3.0518rem);
  --size-5: clamp(2.7994rem, 2.4462rem + 1.7658vw, 3.8147rem);
  --theme-spacing: clamp(1rem, 0.75rem + 1vi, 1.5rem);
  --spacing--1: calc(var(--theme-spacing) / 2);
  --spacing-0: var(--theme-spacing);
  --spacing-1: calc(var(--theme-spacing) * 2);
  --spacing-2: calc(var(--theme-spacing) * 4);
  --spacing-3: calc(var(--theme-spacing) * 6);
  --theme-color-bg: #312A54;
  --theme-color-fg: #fff;
  --theme-color-accent: #F4E73F;
  --theme-color-accent--contrast: #c2b50d;
  --page-wrap-size: var(--wp--style--global--wide-size);
  --theme-wrapper-padding: var(--global-padding);
}

/* Box sizing rules */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Prevent font size inflation */
html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

/* Remove default margin in favour of better control in authored CSS */
body,
h1,
h2,
h3,
h4,
h5,
h6,
ul[class],
ol[class],
p,
figure,
blockquote,
dl,
dd {
  margin: 0;
}

ul.wp-block-list,
ol.wp-block-list {
  margin-inline: auto;
}
ul.wp-block-list li,
ol.wp-block-list li {
  margin-left: 1.25rem;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
/* Remove list styles on ul, ol elements with a class attribute */
ul[class],
ol[class] {
  padding: 0;
}

/* Set core body defaults */
body {
  min-height: 100vh;
  line-height: 1.5;
  text-rendering: optimizeSpeed;
}

/* Set shorter line heights on headings and interactive elements */
h1,
h2,
h3,
h4,
button,
input,
label {
  line-height: 1.1;
}

/* Balance text wrapping on headings */
h1,
h2,
h3,
h4,
h5,
h6 {
  text-wrap: balance;
}

p {
  text-wrap: pretty;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
  text-decoration-skip-ink: auto;
}

/* Make images easier to work with */
img,
picture {
  max-width: 100%;
  display: block;
  height: auto;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font: inherit;
}

/* Make sure textareas without a rows attribute are not tiny */
textarea:not([rows]) {
  min-height: 10em;
}

/* Anything that has been anchored to should have extra scroll margin */
:target {
  scroll-margin-block: 5ex;
}

/* Set core root defaults */
html {
  scroll-behavior: smooth;
}

/* Blur images when they have no alt attribute */
img:not([alt]) {
  filter: blur(10px);
}

/* Remove all animations and transitions for people that prefer not to see them */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
.clearfix:after {
  content: "";
  display: table;
  clear: both;
}

.hidden,
.screen-reader-text {
  position: absolute;
  left: -100%;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.skip-link {
  background: #000;
  color: white;
  height: 30px;
  left: 50%;
  padding: 8px;
  position: absolute;
  transform: translateY(-100%);
  transition: transform 0.3s;
}

.skip-link:focus {
  transform: translateY(0%);
  z-index: 10000;
}

p,
li,
ul,
h1,
h2,
h3,
h4,
h5,
h6,
a,
blockquote,
q,
details,
summary,
label,
code,
pre,
th,
td {
  color: inherit;
}

.content-wrap > *:where(.ehd-block) {
  margin-bottom: var(--wp--preset--spacing--20);
}
.content-wrap > * {
  max-width: var(--wp--style--global--content-size);
  margin-inline: auto;
  width: min(100%, 100vw - 2 * var(--wp--preset--spacing--40));
}
.content-wrap .is-layout-constrained > * {
  width: min(100%, 100vw - 2 * var(--wp--preset--spacing--40));
}
.content-wrap .alignwide {
  max-width: var(--wp--style--global--wide-size);
  width: min(100%, 100vw - 2 * var(--wp--preset--spacing--40));
}
.content-wrap .alignfull {
  max-width: 100%;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

body {
  --wp--style--global--content-size: 820px;
  --wp--style--global--wide-size: 1000px;
  --ehd--grid--gap: clamp(1rem, 5vw, 2rem);
  --ehd--grid--middle-half: calc((var(--wp--style--global--content-size) - var(--ehd--grid--gap)) / 2);
  --ehd--grid--wide-columns: calc((var(--wp--style--global--wide-size) - var(--wp--style--global--content-size) - (2 * var(--ehd--grid--gap))) / 2);
  --ehd--grid:
    [full-start] 0 [wide-start content-start] minmax(0, 1fr) minmax(0, 1fr) [content-end wide-end] 0 [full-end];
}
@media (min-width: calc(820px + 2 * clamp(1rem, 5vw, 2rem))) {
  body {
    --ehd--grid:
      [full-start] 0 [wide-start] minmax(0, 1fr) [content-start] minmax(0, var(--ehd--grid--middle-half)) minmax(0, var(--ehd--grid--middle-half)) [content-end] minmax(0, 1fr) [wide-end] 0 [full-end];
  }
}
@media (min-width: calc(1000px + 2 * clamp(1rem, 5vw, 2rem))) {
  body {
    --ehd--grid:
      [full-start] 1fr [wide-start] var(--ehd--grid--wide-columns) [content-start] var(--ehd--grid--middle-half) var(--ehd--grid--middle-half) [content-end] var(--ehd--grid--wide-columns) [wide-end] 1fr [full-end];
  }
}

.ehd-grid {
  display: grid;
  grid-template-columns: var(--ehd--grid);
  grid-column-gap: var(--ehd--grid--gap);
  grid-template-rows: auto;
}
.ehd-grid > * {
  grid-column: content;
  margin-bottom: var(--wp--preset--spacing--40);
}
.ehd-grid > *.alignwide {
  grid-column: wide;
}
.ehd-grid > *.alignfull {
  grid-column: 1/-1;
}

@font-face {
  font-family: "britannic_bold";
  src: url("../../fonts/britannic_bold_regular-webfont.woff2") format("woff2");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
body {
  background-image: url("../images/bg-repeat.webp");
  background-size: auto 25%;
  color: var(--theme-color-fg);
}
body a:where(:not(.button)) {
  color: var(--theme-color-accent);
  text-decoration: var(--wp--custom--theme--default--link-decoration);
}
body a:where(:not(.button)):hover, body a:where(:not(.button)):active {
  color: var(--theme-color-accent--contrast);
  text-decoration: var(--wp--custom--theme--default--link-decoration-hover);
}

.content-wrap {
  font-size: var(--size-0);
}

.site-wrap {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
.admin-bar .site-wrap {
  min-height: calc(100vh - 32px);
}

.has-background {
  background: var(--theme-color-bg);
  color: var(--theme-color-fg);
}
.has-background.has-red-background-color {
  --theme-color-bg: #EE2529;
  --theme-color-fg: #fff;
}
.has-background.has-purple-background-color {
  --theme-color-bg: #312A54;
  --theme-color-fg: #fff;
  --theme-color-accent: #F4E73F;
  --theme-color-accent--contrast: #c2b50d;
}
.has-background.has-dark-purple-background-color {
  --theme-color-bg: #2A2447;
  --theme-color-fg: #fff;
  --theme-color-accent: #F4E73F;
  --theme-color-accent--contrast: #c2b50d;
}
.has-background.has-yellow-background-color {
  --theme-color-bg: #F4E73F;
  --theme-color-fg: #312A54;
  --theme-color-accent: #EE2529;
  --theme-color-accent--contrast: #ff575b;
}

.has-text-align-center {
  text-align: center;
}

.has-text-align-right {
  text-align: right;
}

.text-left {
  text-align: left;
}

.text-center {
  text-align: center;
}

.text-right {
  text-align: right;
}

.site-wrap :where(p, h1, h2, h3, h4, h5, h6, ul, ol, blockquote, cite):not(:last-child) {
  margin-bottom: var(--wp--preset--spacing--20);
}

.wp-block-heading:not(:first-child) {
  margin-top: var(--wp--preset--spacing--20);
}

h1, h2, h3, h4, h5, h6 {
  text-transform: uppercase;
}

body {
  --header-bg-color: var(--color-dark-purple);
  --flyin-menu-bg-color: var(--color-purple);
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background-color: var(--header-bg-color);
  transform: translateY(0);
  transition: transform 0.3s ease-in-out;
  padding-block: 0;
}
.site-header.scrolled {
  transform: translateY(-100%);
}
@media (min-width: 800px) {
  .site-header {
    display: flex;
    margin: 0 auto;
    width: 100%;
    padding-inline: var(--theme-wrapper-padding);
  }
}
.site-header .menu-bar {
  position: relative;
  z-index: 1001;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  margin: 0 auto;
}
@media (min-width: 800px) {
  .site-header .menu-bar {
    flex: 1;
  }
}
@media (max-width: 800px) {
  .site-header .menu-bar {
    padding: 0;
    width: 100%;
    max-width: var(--page-wrap-size);
    padding-inline: var(--theme-wrapper-padding);
  }
}
.site-header .menu-bar h1.logo,
.site-header .menu-bar p.logo {
  margin-bottom: 0;
  transform: translateY(3px);
}
.site-header .menu-bar h1.logo img,
.site-header .menu-bar p.logo img {
  height: auto;
  width: 160px;
}
.site-header .menu-bar h1.logo {
  opacity: 0;
}
.site-header .menu-bar .menu-right {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 1rem;
}
.site-header .nav-toggle {
  display: none;
}
@media (max-width: 800px) {
  .site-header .nav-toggle {
    display: inline-block;
  }
  .site-header .nav-toggle span {
    background: var(--color-yellow);
    border-radius: 3px;
    display: block;
    height: 3px;
    margin-top: 7px;
    padding: 0;
    position: relative;
    transition: all 0.2s ease;
    width: 2rem;
  }
  .site-header .nav-toggle span:nth-of-type(1) {
    margin-top: 0;
  }
}
.site-header .nav-box {
  flex: 0 0 auto;
}
@media (max-width: 800px) {
  .site-header .nav-box {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    transform: translateX(-100%);
    transition: transform 0.15s ease-in-out;
    z-index: 1000;
    background-color: var(--flyin-menu-bg-color);
    padding: 1em 0;
    text-align: center;
  }
  .site-header .nav-box .nav-inner {
    margin: 0 auto;
    max-width: var(--page-wrap-size);
    padding-inline: var(--theme-wrapper-padding);
    border-top: 2px solid #F4E73F;
  }
}
.site-header.nav-open .nav-box {
  transform: translateX(0);
}
.site-header.nav-open .nav-toggle span:nth-of-type(1) {
  -webkit-transform: rotate3d(0, 0, 1, 45deg);
  transform: rotate3d(0, 0, 1, 45deg);
  top: 10px;
}
.site-header.nav-open .nav-toggle span:nth-of-type(2) {
  opacity: 0;
}
.site-header.nav-open .nav-toggle span:nth-of-type(3) {
  -webkit-transform: rotate3d(0, 0, 1, -45deg);
  transform: rotate3d(0, 0, 1, -45deg);
  top: -10px;
}

.site-footer {
  margin-top: auto;
}
.site-footer .bottom-footer,
.site-footer .top-footer {
  padding: 3em 0;
}
.site-footer .bottom-footer > *,
.site-footer .top-footer > * {
  margin: auto auto 0;
  width: min(var(--wp--style--global--wide-size), 100% - 3rem);
}
.site-footer .bottom-footer {
  border-top: 2px solid var(--color-yellow);
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.28) 0%, rgba(0, 0, 0, 0.8) 100%);
}
.site-footer p {
  font-size: 14px;
  text-align: center;
  margin-bottom: 1rem;
}
.site-footer .sponsors-producers-row {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 4rem;
}
.site-footer .sponsors-row,
.site-footer .producers-row {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 1rem;
  gap: 1.5rem;
}
.site-footer .sponsors-row img,
.site-footer .producers-row img {
  max-width: 200px;
}
@media (min-width: 1000px) {
  .site-footer .container {
    display: flex;
    justify-content: space-between;
  }
  .site-footer .container .left p {
    text-align: left;
  }
  .site-footer .container .right p {
    text-align: right;
  }
  .site-footer p {
    margin-bottom: 0;
  }
}

.bottom-footer {
  margin-top: 4rem;
}

.page-header {
  padding: 3em 0 3em;
  text-align: center;
}

.page-header-image img,
.page-header-image video,
.page-header-video img,
.page-header-video video {
  width: 100%;
  height: auto;
  background-size: cover;
}

.page-header-small-image {
  height: clamp(200px, 30vw, 400px);
  overflow: hidden;
  position: relative;
}
.page-header-small-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

:root {
  --nav-text-mobile: #fff;
  --nav-text-desktop: #000;
  --nav-text-mobile-active: aqua;
  --nav-text-desktop-active: #000;
}

nav.main-navigation ul {
  list-style: none;
  text-align: left;
  gap: 1rem;
  flex-direction: column;
}
@media (min-width: 800px) {
  nav.main-navigation ul {
    flex-direction: row;
    align-items: center;
  }
}
nav.main-navigation ul li {
  margin: 0;
  position: relative;
  /* New code */
  /* END New code */
}
nav.main-navigation ul li a {
  color: var(--nav-text-mobile);
  display: block;
  text-decoration: none;
  font-size: 1.2rem;
  padding: 0.6em 1.2em;
  text-transform: uppercase;
  font-weight: 600;
  border-bottom: 1px solid rgba(var(--wp--preset--color--accent), 0.3);
}
nav.main-navigation ul li a:hover {
  text-decoration: underline;
}
nav.main-navigation ul li.current-menu-item > a, nav.main-navigation ul li.current-page-parent > a {
  color: var(--color-yellow);
}
@media (max-width: 800px) {
  nav.main-navigation ul li ul {
    max-height: 0;
    overflow: hidden;
  }
}
nav.main-navigation ul li ul li {
  margin-top: 0;
}
nav.main-navigation ul li ul li a {
  padding: 0.5em 1.2em 0.5em 2.4em;
}
nav.main-navigation ul li.expanded-sub-nav ul {
  max-height: 100%;
  overflow: visible;
}
nav.main-navigation ul li.menu-item-has-children {
  position: relative;
}
nav.main-navigation ul li.menu-item-has-children button {
  margin: 0;
  position: absolute;
  top: 0;
  right: 0;
  padding: 0;
  border: none;
  width: 80px;
  height: 51px;
  background: rgba(255, 255, 255, 0.3);
  border-bottom: rgba(255, 255, 255, 0.5);
  display: flex;
  justify-content: center;
  align-items: center;
  color: white;
}
nav.main-navigation ul li.menu-item-has-children button svg {
  color: currentColor;
  width: 1.5em;
  height: auto;
}
nav.main-navigation ul li.menu-item-has-children button:hover {
  background: var(--wp--preset--color--accent);
}
nav.main-navigation ul li.menu-item-has-children button.expanded-sub-nav button {
  background: var(--wp--preset--color--accent);
}
nav.main-navigation ul li.menu-item-has-children button.expanded-sub-nav button svg {
  color: var(--wp--preset--color--accent);
}
@media (min-width: 800px) {
  nav.main-navigation ul li.menu-item-has-children button {
    display: none;
  }
}
nav.main-navigation ul li.menu-item-has-children button > div {
  position: absolute;
  top: 55%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-weight: normal;
  font-size: 1.5em;
}
@media (min-width: 800px) {
  nav.main-navigation ul {
    display: flex;
    justify-content: flex-end;
    margin: 0 0.5rem 0 0;
  }
  nav.main-navigation ul li {
    padding: 0;
  }
  nav.main-navigation ul li a {
    padding: 0;
    height: 100%;
    border-bottom: none;
  }
  nav.main-navigation ul li ul {
    background: white;
    visibility: hidden;
    pointer-events: none;
    opacity: 0;
    min-width: 10rem;
    position: absolute;
    transition: opacity 0.3s ease-in-out;
    box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.1);
    left: -1em;
    display: none;
  }
  nav.main-navigation ul li ul li {
    clear: both;
    width: 100%;
  }
  nav.main-navigation ul li ul li a {
    color: var(--wp--preset--color--accent);
    padding: 0.5rem 1em;
    text-transform: none;
    text-align: left;
  }
  nav.main-navigation ul li ul li a:hover {
    color: var(--wp--preset--color--accent);
  }
  nav.main-navigation ul li:hover > ul, nav.main-navigation ul li:focus-within > ul,
  nav.main-navigation ul li ul:hover,
  nav.main-navigation ul li ul:focus {
    pointer-events: auto;
    visibility: visible;
    opacity: 1;
    display: block;
  }
}

@media (min-width: 800px) {
  .nav-box {
    flex-direction: row;
    align-items: center;
    display: flex;
    gap: 1rem;
  }
}

.page-id-38 form p {
  grid-column: 1/-1;
}

.media-page-inner {
  margin-inline: auto;
  grid-column: 1/-1;
}
.media-page-inner .wrapper {
  grid-column: wide;
  max-width: 100%;
}
.media-page-inner .wrapper .container {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.media-page-inner .padding-top-small {
  padding-top: var(--wp--preset--spacing--30);
}
.media-page-inner .media-page-item {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.media-page-inner .media-page-item p.h4 {
  font-size: var(--wp--preset--font-size--medium);
  font-weight: 600;
  margin-bottom: 0;
}
.media-page-inner .media-page-item a.ehd-button {
  background: #F4E73F;
  color: var(--color-purple);
  border-color: #F4E73F;
  font-size: var(--size-1);
  padding: 0.5rem 1rem;
}
.media-page-inner .media-page-item a.ehd-button:hover {
  background: var(--color-purple);
  color: white;
}
@media (min-width: calc(1000px + 2 * clamp(1rem, 5vw, 2rem))) {
  .media-page-inner .media-page-item {
    flex-direction: row;
    gap: 1rem;
    align-items: center;
  }
  .media-page-inner .media-page-item.item-stack {
    flex-direction: column;
  }
}
.media-page-inner .media-page-item .media-page-image {
  flex: 1;
}
.media-page-inner .media-page-item .media-page-image img {
  width: 100%;
  height: auto;
}
.media-page-inner .media-page-item .button-wrap,
.media-page-inner .media-page-item .media-page-content {
  flex: 3;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.media-page-inner .media-page-item .button-wrap p,
.media-page-inner .media-page-item .media-page-content p {
  margin-bottom: 0;
  line-height: 1.2;
}
@media (min-width: calc(1000px + 2 * clamp(1rem, 5vw, 2rem))) {
  .media-page-inner .media-page-item .button-wrap,
  .media-page-inner .media-page-item .media-page-content {
    gap: 1rem;
  }
}
.media-page-inner .media-page-item .media-page-content-full {
  width: 100%;
}
@media (min-width: calc(1000px + 2 * clamp(1rem, 5vw, 2rem))) {
  .media-page-inner .media-page-item .button-wrap {
    flex-direction: row;
    gap: 1rem;
    justify-content: flex-start;
  }
}

.city-header-container {
  margin-inline: auto;
  padding: 3em 0 3em;
  text-align: center;
  text-align: center;
}
@media (max-width: 1000px) {
  .city-header-container span.dot {
    display: none;
  }
  .city-header-container span.dates-theatre {
    display: block;
  }
}
.city-header-container h1 {
  margin-bottom: 1rem;
  text-transform: uppercase;
}
.city-header-container h2 {
  text-transform: none;
  text-transform: uppercase;
}
.city-wrapper {
  grid-column: wide;
}

.site-wrap .post-stub {
  display: flex;
  flex-direction: column;
  gap: var(--wp--preset--spacing--10);
}
.site-wrap .post-stub:not(:last-child) {
  padding-bottom: var(--wp--preset--spacing--10);
  border-bottom: 2px solid #000;
}
.site-wrap .post-stub h2 {
  margin-bottom: 0;
}
.site-wrap .post-stub h2 a {
  color: var(--color-yellow);
}
@media (min-width: calc(820px + 2 * clamp(1rem, 5vw, 2rem))) {
  .site-wrap .post-stub .post-stub-internal {
    display: flex;
    flex-direction: row;
    gap: var(--wp--preset--spacing--10);
  }
  .site-wrap .post-stub .post-stub-internal figure {
    flex: 0 0 200px;
    margin: 0;
  }
}

.single-post .post-thumbnail {
  margin-bottom: 1.5rem;
}

body {
  --form--gap-y: 1rem;
  --form--gap-x: 1rem;
  --form--input--border-color: #fff;
  --form--input--border-width: 2px;
  --form--input--border-style: solid;
  --form--input--border-radius: 4px;
  --form--input--background-color: #fff;
  --form--input--font-color: var(--color-purple);
  --form--input--font-size: 1rem;
  --form--input--padding-y: 0.5rem;
  --form--input--padding-x: 0.5rem;
  --form--input--placeholder--color: #9da0a4;
  --form--input--border-color--focus: #fff;
  --form--input--shadow--focus: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(46, 156, 202, 0.26) 0px 0px 0px 2.55631px;
  --form--label--color: #fff;
  --form--label--font-size: 0.8rem;
  --form--label--font-weight: 600;
  --form--label--text-transform: uppercase;
  --form--label--margin-bottom: 5px;
  --form--label--sup--color: #f00;
  --submit--justify-content: center;
  --submit--bg-color: #F4E73F;
  --submit--font-color: #EE2529;
  --submit--font-size: 1.25rem;
  --submit--font-family: var(--font-family-serif);
  --submit--font-weight: 400;
  --submit--padding-y: 1rem;
  --submit--padding-x: 3rem;
  --submit--border-radius: 4px;
  --submit--border-width: 2px;
  --submit--border-color: transparent;
  --submit--border-style: solid;
  --submit--text-transform: uppercase;
  --submit--line-height: 1;
  --submit--bg-color--hover: transparent;
  --submit--border-color--hover: transparent;
  --submit--font-color--hover: #2d4880;
}

.site-wrap .gform_wrapper.gform-theme--framework.gform-theme--foundation,
.block-editor-block-list__block .gform_wrapper.gform-theme--framework.gform-theme--foundation {
  --gf-form-gap-y: var(--form--gap-y);
  --gf-form-gap-x: var(--form--gap-x);
  --gf-field-gap-y: var(--form--gap-y);
  --gf-field-gap-x: var(--form--gap-x);
}
.site-wrap .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields label,
.site-wrap .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields legend,
.block-editor-block-list__block .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields label,
.block-editor-block-list__block .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields legend {
  gap: 0;
  --gf-local-margin-y: 0 var(--form--label--margin-bottom);
  --gf-local-color: var(--form--label--color);
  --gf-local-font-size: var(--form--label--font-size);
  --gf-local-font-weight: var(--form--label--font-weight);
  text-transform: var(--form--label--text-transform);
}
.site-wrap .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields label .gfield_required.gfield_required_asterisk,
.site-wrap .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields legend .gfield_required.gfield_required_asterisk,
.block-editor-block-list__block .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields label .gfield_required.gfield_required_asterisk,
.block-editor-block-list__block .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields legend .gfield_required.gfield_required_asterisk {
  color: var(--form--label--sup--color);
}
.site-wrap .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields input:not([type=checkbox]),
.site-wrap .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields select,
.site-wrap .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields textarea,
.block-editor-block-list__block .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields input:not([type=checkbox]),
.block-editor-block-list__block .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields select,
.block-editor-block-list__block .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields textarea {
  --gf-local-border-color: var(--form--input--border-color);
  --gf-local-border-width: var(--form--input--border-width);
  --gf-local-radius: var(--form--input--border-radius);
  --gf-local-border-style: var(--form--input--border-style);
  --gf-local-font-size: var(--form--input--font-size);
  --gf-local-padding-x: var(--form--input--padding-x);
  --gf-local-padding-y: var(--form--input--padding-y);
  --gf-local-bg-color: var(--form--input--background-color);
  --gf-local-color: var(--form--input--font-color);
}
.site-wrap .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields input:not([type=checkbox]):focus,
.site-wrap .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields select:focus,
.site-wrap .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields textarea:focus,
.block-editor-block-list__block .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields input:not([type=checkbox]):focus,
.block-editor-block-list__block .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields select:focus,
.block-editor-block-list__block .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields textarea:focus {
  --gf-local-border-color: var(--form--input--border-color--focus);
  --gf-local-shadow: var(--form--input--shadow--focus);
}
.site-wrap .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields input:not([type=checkbox])::placeholder,
.site-wrap .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields select::placeholder,
.site-wrap .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields textarea::placeholder,
.block-editor-block-list__block .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields input:not([type=checkbox])::placeholder,
.block-editor-block-list__block .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields select::placeholder,
.block-editor-block-list__block .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields textarea::placeholder {
  color: var(--form--input--placeholder--color);
}
.site-wrap .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields select,
.block-editor-block-list__block .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields select {
  -webkit-appearance: none;
  appearance: none;
  line-height: 1.3;
  color: var(--form--input--placeholder--color);
}
.site-wrap .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields select:valid,
.block-editor-block-list__block .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_body .gform_fields select:valid {
  color: var(--form--input--font-color);
}
.site-wrap .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_footer,
.block-editor-block-list__block .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_footer {
  display: flex;
  justify-content: var(--submit--justify-content);
}
.site-wrap .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_footer input[type=submit].gform_button.button,
.block-editor-block-list__block .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_footer input[type=submit].gform_button.button {
  cursor: pointer;
  --gf-local-radius: var(--submit--border-radius);
  --gf-local-font-family: var(--submit--font-family);
  --gf-local-bg-color: var(--submit--bg-color);
  --gf-local-border-color: var(--submit--border-color);
  --gf-local-border-width: var(--submit--border-width);
  --gf-local-border-style: var(--submit--border-style);
  --gf-local-color: var(--submit--font-color);
  --gf-local-font-weight: var(--submit--font-weight);
  --gf-local-font-size: var(--submit--font-size);
  --gf-local-text-transform: var(--submit--text-transform);
  --gf-local-padding-y: var(--submit--padding-y);
  --gf-local-padding-x: var(--submit--padding-x);
  --gf-local-line-height: var(--submit--line-height);
}
.site-wrap .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_footer input[type=submit].gform_button.button:hover,
.block-editor-block-list__block .gform_wrapper.gform-theme--framework.gform-theme--foundation form .gform_footer input[type=submit].gform_button.button:hover {
  --gf-local-bg-color: var(--submit--bg-color--hover);
  --gf-local-border-color: var(--submit--border-color--hover);
  --gf-local-color: var(--submit--font-color--hover);
}
.site-wrap .gform_confirmation_message,
.block-editor-block-list__block .gform_confirmation_message {
  padding: 2rem;
  border: 1px solid var(--theme-color-accent);
}

.form-container form {
  display: grid;
  margin-inline: auto;
  row-gap: var(--form--gap-y);
  column-gap: var(--form--gap-x);
}
@media (min-width: 650px) {
  .form-container form {
    grid-template-columns: repeat(6, 1fr);
  }
  .form-container form .cm-half-width {
    grid-column: span 3;
  }
  .form-container form .cm-third-width {
    grid-column: span 2;
  }
}
.form-container form > div {
  display: flex;
  justify-content: flex-end;
  flex-direction: column;
}
.form-container form > div label {
  display: block;
  color: var(--form--label--color);
  margin-bottom: var(--form--label--margin-bottom);
  font-size: var(--form--label--font-size);
  font-weight: var(--form--label--font-weight);
  text-transform: var(--form--label--text-transform);
}
.form-container form > div label sup {
  color: var(--form--label--sup--color);
}
.form-container form > div input,
.form-container form > div select,
.form-container form > div textarea {
  border-radius: var(--form--input--border-radius);
  padding-block: var(--form--input--padding-y);
  padding-inline: var(--form--input--padding-x);
  border-width: var(--form--input--border-width);
  border-style: var(--form--input--border-style);
  border-color: var(--form--input--border-color);
  font-size: var(--form--input--font-size);
  color: var(--form--input--font-color);
  background-color: var(--form--input--background-color);
}
.form-container form > div input:focus,
.form-container form > div select:focus,
.form-container form > div textarea:focus {
  border-color: var(--form--input--border-color--focus);
  box-shadow: var(--form--input--shadow--focus);
}
.form-container form > div input::placeholder,
.form-container form > div select::placeholder,
.form-container form > div textarea::placeholder {
  color: var(--form--input--placeholder--color);
}
.form-container form > div select {
  -webkit-appearance: none;
  appearance: none;
  border-radius: var(--form--input--border-radius);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M7.41 8.58L12 13.17l4.59-4.59L18 10l-6 6l-6-6z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.7em top 50%;
  line-height: 1.5;
  color: var(--form--input--placeholder--color);
}
.form-container form > div select:valid {
  color: var(--form--input--font-color);
}
.form-container form .cm-full-width {
  grid-column: 1/-1;
  padding-top: 0.5rem;
}
.form-container form .cm-full-width label {
  padding-top: 1rem;
}
.form-container form .cm-full-width input,
.form-container form .cm-full-width select {
  width: 100%;
}
.form-container form .cm-full-width.t-and-cs {
  padding-inline: var(--wp--preset--spacing--300);
}
.form-container form .cm-full-width.t-and-cs p {
  color: var(--ehd--form--accent--color);
  text-wrap: balance;
  margin: 0;
}
.form-container form .submit-wrapper {
  display: flex;
  flex-direction: row;
  justify-content: var(--submit--justify-content);
}
.form-container form .submit-wrapper button[type=submit].button {
  cursor: pointer;
  border-radius: var(--submit--border-radius);
  background-color: transparent;
  background-image: url("../images/button-bg.svg");
  background-size: cover;
  background-repeat: no-repeat;
  border: none;
  opacity: 1;
  color: var(--submit--font-color);
  font-weight: var(--submit--font-weight);
  font-size: var(--submit--font-size);
  text-transform: var(--submit--text-transform);
  padding-block: var(--submit--padding-y);
  padding-inline: var(--submit--padding-x);
  line-height: var(--submit--line-height);
  font-family: var(--submit--font-family);
  transition: opacity 0.3s ease, color 0.3s ease;
}
.form-container form .submit-wrapper button[type=submit].button:hover {
  opacity: 0.4;
}

.content-wrap .wp-block-cover {
  position: relative;
  overflow: hidden;
}
.content-wrap .wp-block-cover .wp-block-cover__image-background {
  width: 100%;
}

@media (max-width: calc(820px + 2 * clamp(1rem, 5vw, 2rem))) {
  .wp-block-columns.is-layout-flex {
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: clamp(1rem, 5vw, 2rem);
  }
  .wp-block-columns.is-layout-flex > * {
    flex-basis: 100% !important;
  }
}

@media (max-width: calc(820px + 2 * clamp(1rem, 5vw, 2rem))) {
  .wp-block-media-text.is-stacked-on-mobile {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
  }
}
@media (max-width: calc(820px + 2 * clamp(1rem, 5vw, 2rem))) {
  .wp-block-media-text.is-stacked-on-mobile.has-media-on-the-right .wp-block-media-text__content {
    order: 2;
  }
  .wp-block-media-text.is-stacked-on-mobile.has-media-on-the-right .wp-block-media-text__media {
    order: 1;
  }
}

@media (max-width: calc(820px + 2 * clamp(1rem, 5vw, 2rem))) {
  .wp-block-media-text.is-image-fill .wp-block-media-text__media {
    width: 100%;
    min-height: 300px;
  }
}
@media (min-width: calc(820px + 2 * clamp(1rem, 5vw, 2rem))) {
  .wp-block-media-text.is-image-fill .wp-block-media-text__content {
    margin-block: 1rem;
  }
}

body {
  --ehd-button-background: var(--theme-color-accent);
  --ehd-button-text: var(--color-red);
  --ehd-button-background-hover: var(--theme-color-accent--contrast);
  --ehd-button-text-hover: var(--color-red);
}
body .has-background.has-light-background-color {
  --ehd-button-background: var(--theme-color-bg);
  --ehd-button-text: var(--theme-color-accent);
  --ehd-button-background-hover: var(--theme-color-bg--contrast);
  --ehd-button-text-hover: var(--theme-color-accent);
}

.wp-block-button .wp-block-button__link {
  border: none;
  -webkit-appearance: none;
  appearance: none;
  display: inline-block;
  text-align: center;
  text-decoration: none;
  background-image: url("../images/button-bg.svg");
  background-size: cover;
  background-repeat: no-repeat;
  color: var(--ehd-button-text);
  font-family: var(--wp--preset--font-family--heading);
  font-weight: 700;
  font-size: 1.25rem;
  text-transform: uppercase;
  border: 2px solid transparent;
  padding: 0.7em 1em;
  opacity: 1;
  margin: 0 auto;
  transition: opacity 0.3s ease, color 0.3s ease;
  border-radius: var(--border-radius, 4px);
  cursor: pointer;
}
.wp-block-button .wp-block-button__link:hover, .wp-block-button .wp-block-button__link:active {
  opacity: 0.8;
  color: var(--ehd-button-text-hover);
}
@media (min-width: 1000px) {
  .wp-block-button .wp-block-button__link {
    display: inline-block;
  }
}
.wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent;
  color: var(--ehd-button-background);
  border-color: var(--ehd-button-background);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background-color: var(--ehd-button-background);
  color: var(--ehd-button-text);
}

.ehd-button {
  border: none;
  -webkit-appearance: none;
  appearance: none;
  display: inline-block;
  text-align: center;
  text-decoration: none;
  background-image: url("../images/button-bg.svg");
  background-size: cover;
  background-repeat: no-repeat;
  color: var(--ehd-button-text);
  font-family: var(--wp--preset--font-family--heading);
  font-weight: 700;
  font-size: 1.25rem;
  text-transform: uppercase;
  border: 2px solid transparent;
  padding: 0.7em 1em;
  opacity: 1;
  margin: 0 auto;
  transition: opacity 0.3s ease, color 0.3s ease;
  border-radius: var(--border-radius, 4px);
  cursor: pointer;
}
.ehd-button:hover, .ehd-button:active {
  opacity: 0.8;
  color: var(--ehd-button-text-hover);
}
@media (min-width: 1000px) {
  .ehd-button {
    display: inline-block;
  }
}
.ehd-button.secondary-button {
  background: transparent;
  color: var(--ehd-button-background);
  border-color: var(--ehd-button-background);
}
.ehd-button.secondary-button:hover {
  background-color: var(--ehd-button-background);
  color: var(--ehd-button-text);
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl92YXJzLnNjc3MiLCJfdmFyaWFibGVzLnNjc3MiLCJfcmVzZXQuc2NzcyIsIl9sYXlvdXQtYmxvY2stZ3JpZC5zY3NzIiwiX2Jhc2Utc3R5bGVzLnNjc3MiLCJfbWl4aW5zLnNjc3MiLCJfdHlwb2dyYXBoeS5zY3NzIiwiX3NpdGUtaGVhZGVyLnNjc3MiLCJfc2l0ZS1mb290ZXIuc2NzcyIsIl9wYWdlLWhlYWRlci5zY3NzIiwiX3NpdGUtbmF2aWdhdGlvbi5zY3NzIiwiX3BhZ2UtbWVkaWEuc2NzcyIsIl9jaXR5LWhlYWRlci5zY3NzIiwiX3NpbmdsZS1jaXR5LnNjc3MiLCJfcG9zdC1zdHViLnNjc3MiLCJfZm9ybS1zdHlsZXMuc2NzcyIsImNvcmUtYmxvY2tzL19jb3Zlci5zY3NzIiwiY29yZS1ibG9ja3MvX2NvbHVtbnMuc2NzcyIsImNvcmUtYmxvY2tzL19tZWRpYS10ZXh0LnNjc3MiLCJjb3JlLWJsb2Nrcy9fYnV0dG9ucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBO0VBQ0c7RUFDQTtFQUNBO0VBQ0E7OztBQ0FIO0VBQ0U7RUFDQTtFQUVBO0VBRUE7QUFJQTtBQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTs7O0FDbERGO0FBQ0E7QUFBQTtBQUFBO0VBR0U7OztBQUdGO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQWNFOzs7QUFHRjtBQUFBO0VBRUU7O0FBRUE7QUFBQTtFQUNFOzs7QUFLSjtBQUNBO0FBQ0E7QUFBQTtFQUVFOzs7QUFJRjtBQUNBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBT0U7OztBQUdGO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBTUU7OztBQUdGO0VBQ0U7OztBQUdGO0FBQ0E7RUFDRTs7O0FBR0Y7QUFDQTtBQUFBO0VBRUU7RUFDQTtFQUNBOzs7QUFHRjtBQUNBO0FBQUE7QUFBQTtBQUFBO0VBSUU7OztBQUdGO0FBQ0E7RUFDRTs7O0FBR0Y7QUFDQTtFQUNFOzs7QUFHRjtBQUNBO0VBQ0U7OztBQUdGO0FBQ0E7RUFDRTs7O0FBR0Y7QUFDQTtFQUNFO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7OztBQUlKO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFJRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFtQkU7OztBQ3hMQTtFQUNFOztBQUdGO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0U7RUFDQTtFQUNBO0VBR0E7RUFHQTtFQUdBO0FBQUE7O0FBSUE7RUFoQkY7SUFpQkk7QUFBQTs7O0FBS0Y7RUF0QkY7SUF1Qkk7QUFBQTs7OztBQUtKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBOztBQUVBO0VBQ0U7O0FBR0Y7RUFDRTs7O0FDeEVOO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJRjtFQUVFO0VBQ0E7RUFFQTs7QUFFQTtFQUNFO0VBQ0E7O0FBRUE7RUFFRTtFQUNBOzs7QUFLTjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOzs7QUNwQ0o7RUFDRTtFQUNBOztBQUdFO0VBQ0U7RUFDQTs7QUFGRjtFQUNFO0VBQ0E7RUFHRTtFQUlBOztBQVRKO0VBQ0U7RUFDQTtFQUdFO0VBSUE7O0FBVEo7RUFDRTtFQUNBO0VBR0U7RUFJQTs7O0FDaEJSO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQzNCRjtFQUVFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7QUFHRjtFQWJGO0lBY0k7SUFFQTtJQUNBO0lBRUE7OztBQUdGO0VBT0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBWkE7RUFERjtJQUVJOzs7QUFhRjtFQWZGO0lBZ0JJO0lBQ0E7SUFDQTtJQUNBOzs7QUFJRjtBQUFBO0VBRUU7RUFDQTs7QUFJQTtBQUFBO0VBQ0U7RUFDQTs7QUFJSjtFQUNFOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBTUo7RUFDRTs7QUFFQTtFQUhGO0lBSUk7O0VBRUE7SUFDRTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBRUE7SUFDRTs7O0FBTVI7RUFFRTs7QUFLQTtFQVBGO0lBUUk7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFFQTtJQUVBO0lBRUE7O0VBRUE7SUFDRTtJQUNBO0lBQ0E7SUFDQTs7O0FBTUo7RUFDRTs7QUFJQTtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFOztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUMxSlI7RUFDRTs7QUFFQTtBQUFBO0VBRUU7O0FBRUE7QUFBQTtFQUNFO0VBQ0E7O0FBSUo7RUFDRTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0FBQUE7RUFDRTs7QUFJSjtFQUNFO0lBQ0U7SUFDQTs7RUFFQTtJQUNFOztFQUdGO0lBQ0U7O0VBSUo7SUFDRTs7OztBQUtOO0VBQ0U7OztBQ25FRjtFQUNFO0VBQ0E7OztBQU1BO0FBQUE7QUFBQTtBQUFBO0VBRUU7RUFDQTtFQUNBOzs7QUFJSjtFQUNFO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUN0Qko7RUFDRTtFQUNBO0VBRUE7RUFDQTs7O0FBTUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQU5GO0lBT0k7SUFDQTs7O0FBSUY7RUFDRTtFQUNBO0FBd0JBO0FBK0VBOztBQXJHQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7QUFNRjtFQUNFOztBQU9GO0VBREY7SUFFSTtJQUNBOzs7QUFHRjtFQUNFOztBQUVBO0VBQ0U7O0FBTUo7RUFDRTtFQUNBOztBQUlKO0VBQ0U7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0U7O0FBSUE7RUFDRTs7QUFFQTtFQUNFOztBQUtOO0VBcENGO0lBcUNJOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFXUjtFQTFIRjtJQTJISTtJQUNBO0lBQ0E7O0VBRUE7SUFDRTs7RUFFQTtJQUNFO0lBQ0E7SUFDQTs7RUFHRjtJQUNFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUVBO0lBQ0U7SUFDQTs7RUFFQTtJQUNFO0lBQ0E7SUFDQTtJQUNBOztFQUVBO0lBQ0U7O0VBTVI7QUFBQTtBQUFBO0lBSUU7SUFDQTtJQUNBO0lBQ0E7Ozs7QUFPTjtFQURGO0lBRUk7SUFDQTtJQUNBO0lBQ0E7Ozs7QUNwTUY7RUFDRTs7O0FBSUo7RUFDRTtFQUNBOztBQUVBO0VBQ0U7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTs7QUFPSjtFQUNFOztBQUdGO0VBQ0U7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0UsWVhaRTtFV2FGO0VBQ0EsY1hkRTtFV2VGO0VBQ0E7O0FBRUE7RUFDRTtFQUNBOztBQUlKO0VBeEJGO0lBeUJJO0lBQ0E7SUFDQTs7RUFFQTtJQUNFOzs7QUFJSjtFQUNFOztBQUVBO0VBQ0U7RUFDQTs7QUFJSjtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7QUFBQTtFQUNFO0VBQ0E7O0FBR0Y7RUFaRjtBQUFBO0lBYUk7OztBQUlKO0VBQ0U7O0FBR0Y7RUFDRTtJQUNFO0lBQ0E7SUFDQTs7OztBQ2hHUjtFQUNFO0VBQ0E7RUFDQTtFQU1BOztBQUdBO0VBQ0U7SUFDRTs7RUFHRjtJQUNFOzs7QUFJSjtFQUNFO0VBQ0E7O0FBSUY7RUFDRTtFQUNBOztBQzlCSjtFQUNFOzs7QUNERjtFQUNFO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTs7QUFFQTtFQUNFOztBQUtGO0VBREY7SUFFSTtJQUNBO0lBQ0E7O0VBRUE7SUFDRTtJQUNBOzs7O0FBT047RUFDRTs7O0FDbENKO0VBR0U7RUFDQTtFQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUVBO0VBRUE7RUFDQTtFQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTtFQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7OztBQVNBO0FBQUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFLSTtBQUFBO0FBQUE7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtBQUFBO0FBQUE7QUFBQTtFQUNFOztBQU9KO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUdFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFDRTtFQUNBOztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUNFOztBQUlKO0FBQUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtBQUFBO0VBQ0U7O0FBTU47QUFBQTtFQUNFO0VBRUE7O0FBRUE7QUFBQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7QUFBQTtFQUNFO0VBQ0E7RUFDQTs7QUFPVjtBQUFBO0VBQ0U7RUFDQTs7O0FBS0o7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQU5GO0lBT0k7O0VBRUE7SUFDRTs7RUFHRjtJQUNFOzs7QUFNSjtFQUNFO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHQTtFQUNFOztBQUlKO0FBQUE7QUFBQTtFQUdFO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtBQUFBO0FBQUE7RUFDRTtFQUNBOztBQUdGO0FBQUE7QUFBQTtFQUNFOztBQUlKO0VBQ0U7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTs7QUFFQTtFQUNFOztBQUtOO0VBQ0U7RUFDQTs7QUFFQTtFQUNFOztBQUdGO0FBQUE7RUFFRTs7QUFHRjtFQUNFOztBQUVBO0VBQ0U7RUFDQTtFQUNBOztBQUtOO0VBQ0U7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHQTtFQUNFOzs7QUNuU1I7RUFDRTtFQUNBOztBQUVBO0VBQ0U7OztBQ0pGO0VBREY7SUFFSTtJQUNBO0lBQ0EsS2hCSWM7O0VnQkZkO0lBQ0U7Ozs7QUNOSjtFQURGO0lBRUk7SUFDQTtJQUNBOzs7QUFRQTtFQUNFO0lBQ0U7O0VBR0Y7SUFDRTs7OztBQVNKO0VBREY7SUFFSTtJQUNBOzs7QUFLRjtFQURGO0lBRUk7Ozs7QUNuQ047RUFFRTtFQUNBO0VBQ0E7RUFDQTs7QUFLRTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFzREo7RUFoREE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBRUU7RUFFQTs7QUFHRjtFQWtCQTtJQWpCRTs7O0FBc0JBO0VBakJGO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7OztBQWlCSjtFQTNERTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFFRTtFQUVBOztBQUdGO0VBNkJGO0lBNUJJOzs7QUErQkY7RUExQkE7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQSIsImZpbGUiOiJtYWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy8gV2FybmluZywgdGhpcyBmaWxlIGlzIGR5bmFtaWNhbGx5IGdlbmVyYXRlZCBmcm9tIHRoZSB0LWVoZC5qc29uIGluIHRoZSByb290IG9mIHRoZSB0aGVtZS4gRG8gbm90IGVkaXQgdGhpcyBmaWxlIGRpcmVjdGx5LCBlZGl0IHQtZWhkLmpzb25cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi8vIENvbG9yc1xyXG4kcmVkOiAjRUUyNTI5O1xyXG4kcHVycGxlOiAjMzEyQTU0O1xyXG4kZGFyay1wdXJwbGU6ICMyQTI0NDc7XHJcbiR5ZWxsb3c6ICNGNEU3M0Y7XHJcblxyXG46cm9vdCB7XHJcbiAgIC0tY29sb3ItcmVkOiAjRUUyNTI5O1xyXG4gICAtLWNvbG9yLXB1cnBsZTogIzMxMkE1NDtcclxuICAgLS1jb2xvci1kYXJrLXB1cnBsZTogIzJBMjQ0NztcclxuICAgLS1jb2xvci15ZWxsb3c6ICNGNEU3M0Y7XHJcbn1cclxuXHJcbi8vIFRoZW1lIENvbG9yc1xyXG5cclxuJGNvbG9yLW1hcDogKFxyXG5cInJlZFwiOihiZ2NvbG9yOiNFRTI1MjksIGZnY29sb3I6I2ZmZiksXCJwdXJwbGVcIjooYmdjb2xvcjojMzEyQTU0LCBmZ2NvbG9yOiNmZmYsIGFjY2VudGNvbG9yOiNGNEU3M0YsIGFjY2VudGNvbG9yY29udHJhc3Q6I2MyYjUwZCksXCJkYXJrLXB1cnBsZVwiOihiZ2NvbG9yOiMyQTI0NDcsIGZnY29sb3I6I2ZmZiwgYWNjZW50Y29sb3I6I0Y0RTczRiwgYWNjZW50Y29sb3Jjb250cmFzdDojYzJiNTBkKSxcInllbGxvd1wiOihiZ2NvbG9yOiNGNEU3M0YsIGZnY29sb3I6IzMxMkE1NCwgYWNjZW50Y29sb3I6I0VFMjUyOSwgYWNjZW50Y29sb3Jjb250cmFzdDojZmY1NzViKVxyXG4pO1xyXG5cclxuXHJcbi8vIEluaXRpYWwgQ29sb3JzXHJcblxuJGJnY29sb3I6IzMxMkE1NDtcbiRmZ2NvbG9yOiNmZmY7XG4kYWNjZW50OiNGNEU3M0Y7XG4kYWNjZW50Y29sb3Jjb250cmFzdDojYzJiNTBkO1xuXG5cclxuXHJcbi8vIExheW91dFxyXG4kY29udGVudC1zaXplOiA4MjBweDtcclxuJHdpZGUtc2l6ZTogMTAwMHB4O1xyXG4iLCJAdXNlIFwic2FzczptYXBcIjtcbkBpbXBvcnQgXCJ2YXJzXCI7IC8vIEJyZWFrcG9pbnRzXG4kc21hbGw6ICRjb250ZW50LXNpemU7XG4kbWVkaXVtOiAkd2lkZS1zaXplO1xuJGxhcmdlOiBjYWxjKCR3aWRlLXNpemUgKyAzMDBweCk7XG5cbiRuYXYtdG9nZ2xlOiA4MDBweDtcblxuJHdyYXBwZXItcGFkZGluZzogY2xhbXAoMXJlbSwgNXZ3LCAycmVtKTtcblxuLy8gVGhlc2UgYXJlIHVzZWQgZm9yIHRoZSBtYWluIGNvbnRlbnQgZ3JpZCBicmVha3BvaW50c1xuJGNvbnRlbnQtYnA6IGNhbGMoJGNvbnRlbnQtc2l6ZSArICgyICogJHdyYXBwZXItcGFkZGluZykpO1xuJHdpZGUtYnA6IGNhbGMoJHdpZGUtc2l6ZSArICgyICogJHdyYXBwZXItcGFkZGluZykpO1xuXG46cm9vdCB7XG4gIC0tZ2xvYmFsLXBhZGRpbmc6IGNsYW1wKDFyZW0sIDV2dywgMnJlbSk7XG4gIC0tZ2xvYmFsLWJvcmRlci1yYWRpdXM6IDNweDtcblxuICAtLWZvbnQtZmFtaWx5LXNhbnM6IFwiUm9ib3RvIENvbmRlbnNlZFwiLCBzYW5zLXNlcmlmO1xuXG4gIC0tZm9udC1mYW1pbHktc2VyaWY6ICdicml0YW5uaWNfYm9sZCcsIEdlb3JnaWEsIHNlcmlmO1xuXG5cblxuICAvKiBGb250IFNpemVzICovXG4gIC8qIEBsaW5rIGh0dHBzOi8vdXRvcGlhLmZ5aS90eXBlL2NhbGN1bGF0b3I/Yz0zMjAsMTgsMS4yLDEyNDAsMjAsMS4yNSw1LDIsJnM9MC43NXwwLjV8MC4yNSwxLjV8MnwzfDR8NixzLWwmZz1zLGwseGwsMTIgKi9cblxuICAtLXNpemUtLTI6IGNsYW1wKDAuNzgxM3JlbSwgMC43NzQ3cmVtICsgMC4wMzI2dncsIDAuOHJlbSk7XG4gIC0tc2l6ZS0tMTogY2xhbXAoMC45Mzc1cmVtLCAwLjkxNThyZW0gKyAwLjEwODd2dywgMXJlbSk7XG4gIC0tc2l6ZS0wOiBjbGFtcCgxLjEyNXJlbSwgMS4wODE1cmVtICsgMC4yMTc0dncsIDEuMjVyZW0pO1xuICAtLXNpemUtMTogY2xhbXAoMS4zNXJlbSwgMS4yNzYxcmVtICsgMC4zNjk2dncsIDEuNTYyNXJlbSk7XG4gIC0tc2l6ZS0yOiBjbGFtcCgxLjYycmVtLCAxLjUwNDFyZW0gKyAwLjU3OTN2dywgMS45NTMxcmVtKTtcbiAgLS1zaXplLTM6IGNsYW1wKDEuOTQ0cmVtLCAxLjc3MXJlbSArIDAuODY1MXZ3LCAyLjQ0MTRyZW0pO1xuICAtLXNpemUtNDogY2xhbXAoMi4zMzI4cmVtLCAyLjA4MjdyZW0gKyAxLjI1MDR2dywgMy4wNTE4cmVtKTtcbiAgLS1zaXplLTU6IGNsYW1wKDIuNzk5NHJlbSwgMi40NDYycmVtICsgMS43NjU4dncsIDMuODE0N3JlbSk7XG5cbiAgLS10aGVtZS1zcGFjaW5nOiBjbGFtcCgxcmVtLCAwLjc1cmVtICsgMXZpLCAxLjVyZW0pO1xuXG4gIC0tc3BhY2luZy0tMTogY2FsYyh2YXIoLS10aGVtZS1zcGFjaW5nKSAvIDIpO1xuICAtLXNwYWNpbmctMDogdmFyKC0tdGhlbWUtc3BhY2luZyk7XG4gIC0tc3BhY2luZy0xOiBjYWxjKHZhcigtLXRoZW1lLXNwYWNpbmcpICogMik7XG4gIC0tc3BhY2luZy0yOiBjYWxjKHZhcigtLXRoZW1lLXNwYWNpbmcpICogNCk7XG4gIC0tc3BhY2luZy0zOiBjYWxjKHZhcigtLXRoZW1lLXNwYWNpbmcpICogNik7XG5cbiAgLS10aGVtZS1jb2xvci1iZzogI3skYmdjb2xvcn07XG4gIC0tdGhlbWUtY29sb3ItZmc6ICN7JGZnY29sb3J9O1xuICAtLXRoZW1lLWNvbG9yLWFjY2VudDogI3skYWNjZW50fTtcbiAgLS10aGVtZS1jb2xvci1hY2NlbnQtLWNvbnRyYXN0OiAjeyRhY2NlbnRjb2xvcmNvbnRyYXN0fTtcblxuICAtLXBhZ2Utd3JhcC1zaXplOiB2YXIoLS13cC0tc3R5bGUtLWdsb2JhbC0td2lkZS1zaXplKTtcbiAgLS10aGVtZS13cmFwcGVyLXBhZGRpbmc6IHZhcigtLWdsb2JhbC1wYWRkaW5nKTtcbn0iLCIvKiBCb3ggc2l6aW5nIHJ1bGVzICovXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4vKiBQcmV2ZW50IGZvbnQgc2l6ZSBpbmZsYXRpb24gKi9cbmh0bWwge1xuICAtbW96LXRleHQtc2l6ZS1hZGp1c3Q6IG5vbmU7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogbm9uZTtcbiAgdGV4dC1zaXplLWFkanVzdDogbm9uZTtcbn1cblxuLyogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luIGluIGZhdm91ciBvZiBiZXR0ZXIgY29udHJvbCBpbiBhdXRob3JlZCBDU1MgKi9cbmJvZHksXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG51bFtjbGFzc10sXG5vbFtjbGFzc10sXG5wLFxuZmlndXJlLFxuYmxvY2txdW90ZSxcbmRsLFxuZGQge1xuICBtYXJnaW46IDA7XG59XG5cbnVsLndwLWJsb2NrLWxpc3QsXG5vbC53cC1ibG9jay1saXN0IHtcbiAgbWFyZ2luLWlubGluZTogYXV0bztcblxuICBsaSB7XG4gICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG5cbiAgfVxufVxuXG4vKiBSZW1vdmUgbGlzdCBzdHlsZXMgb24gdWwsIG9sIGVsZW1lbnRzIHdpdGggYSBsaXN0IHJvbGUsIHdoaWNoIHN1Z2dlc3RzIGRlZmF1bHQgc3R5bGluZyB3aWxsIGJlIHJlbW92ZWQgKi9cbi8qIFJlbW92ZSBsaXN0IHN0eWxlcyBvbiB1bCwgb2wgZWxlbWVudHMgd2l0aCBhIGNsYXNzIGF0dHJpYnV0ZSAqL1xudWxbY2xhc3NdLFxub2xbY2xhc3NdIHtcbiAgcGFkZGluZzogMDtcbn1cblxuXG4vKiBTZXQgY29yZSBib2R5IGRlZmF1bHRzICovXG5ib2R5IHtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZVNwZWVkO1xufVxuXG4vKiBTZXQgc2hvcnRlciBsaW5lIGhlaWdodHMgb24gaGVhZGluZ3MgYW5kIGludGVyYWN0aXZlIGVsZW1lbnRzICovXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmJ1dHRvbixcbmlucHV0LFxubGFiZWwge1xuICBsaW5lLWhlaWdodDogMS4xO1xufVxuXG4vKiBCYWxhbmNlIHRleHQgd3JhcHBpbmcgb24gaGVhZGluZ3MgKi9cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIHRleHQtd3JhcDogYmFsYW5jZTtcbn1cblxucCB7XG4gIHRleHQtd3JhcDogcHJldHR5O1xufVxuXG4vKiBBIGVsZW1lbnRzIHRoYXQgZG9uJ3QgaGF2ZSBhIGNsYXNzIGdldCBkZWZhdWx0IHN0eWxlcyAqL1xuYTpub3QoW2NsYXNzXSkge1xuICB0ZXh0LWRlY29yYXRpb24tc2tpcC1pbms6IGF1dG87XG59XG5cbi8qIE1ha2UgaW1hZ2VzIGVhc2llciB0byB3b3JrIHdpdGggKi9cbmltZyxcbnBpY3R1cmUge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qIEluaGVyaXQgZm9udHMgZm9yIGlucHV0cyBhbmQgYnV0dG9ucyAqL1xuaW5wdXQsXG5idXR0b24sXG50ZXh0YXJlYSxcbnNlbGVjdCB7XG4gIGZvbnQ6IGluaGVyaXQ7XG59XG5cbi8qIE1ha2Ugc3VyZSB0ZXh0YXJlYXMgd2l0aG91dCBhIHJvd3MgYXR0cmlidXRlIGFyZSBub3QgdGlueSAqL1xudGV4dGFyZWE6bm90KFtyb3dzXSkge1xuICBtaW4taGVpZ2h0OiAxMGVtO1xufVxuXG4vKiBBbnl0aGluZyB0aGF0IGhhcyBiZWVuIGFuY2hvcmVkIHRvIHNob3VsZCBoYXZlIGV4dHJhIHNjcm9sbCBtYXJnaW4gKi9cbjp0YXJnZXQge1xuICBzY3JvbGwtbWFyZ2luLWJsb2NrOiA1ZXg7XG59XG5cbi8qIFNldCBjb3JlIHJvb3QgZGVmYXVsdHMgKi9cbmh0bWwge1xuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbn1cblxuLyogQmx1ciBpbWFnZXMgd2hlbiB0aGV5IGhhdmUgbm8gYWx0IGF0dHJpYnV0ZSAqL1xuaW1nOm5vdChbYWx0XSkge1xuICBmaWx0ZXI6IGJsdXIoMTBweCk7XG59XG5cbi8qIFJlbW92ZSBhbGwgYW5pbWF0aW9ucyBhbmQgdHJhbnNpdGlvbnMgZm9yIHBlb3BsZSB0aGF0IHByZWZlciBub3QgdG8gc2VlIHRoZW0gKi9cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICoge1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC4wMW1zICFpbXBvcnRhbnQ7XG4gICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMSAhaW1wb3J0YW50O1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMDFtcyAhaW1wb3J0YW50O1xuICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0byAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5jbGVhcmZpeDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjbGVhcjogYm90aDtcbn1cblxuLmhpZGRlbixcbi5zY3JlZW4tcmVhZGVyLXRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0xMDAlO1xuICB0b3A6IGF1dG87XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5cbi5za2lwLWxpbmsge1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICBjb2xvcjogd2hpdGU7XG4gIGhlaWdodDogMzBweDtcbiAgbGVmdDogNTAlO1xuICBwYWRkaW5nOiA4cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XG59XG5cbi5za2lwLWxpbms6Zm9jdXMge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICB6LWluZGV4OiAxMDAwMDtcbn1cblxucCxcbmxpLFxudWwsXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5hLFxuYmxvY2txdW90ZSxcbnEsXG5kZXRhaWxzLFxuc3VtbWFyeSxcbmxhYmVsLFxuY29kZSxcbnByZSxcbnRoLFxudGQge1xuICBjb2xvcjogaW5oZXJpdDtcbn0iLCIuY29udGVudC13cmFwIHtcbiAgPio6d2hlcmUoLmVoZC1ibG9jaykge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLTIwKTtcbiAgfVxuXG4gID4qIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLXdwLS1zdHlsZS0tZ2xvYmFsLS1jb250ZW50LXNpemUpO1xuICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gICAgd2lkdGg6IE1pbigxMDAlLCBjYWxjKDEwMHZ3IC0gMiAqIHZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLTQwKSkpO1xuICB9XG5cbiAgLmlzLWxheW91dC1jb25zdHJhaW5lZD4qIHtcbiAgICB3aWR0aDogTWluKDEwMCUsIGNhbGMoMTAwdncgLSAyICogdmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tNDApKSk7XG4gIH1cblxuICAuYWxpZ253aWRlIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLXdwLS1zdHlsZS0tZ2xvYmFsLS13aWRlLXNpemUpO1xuICAgIHdpZHRoOiBNaW4oMTAwJSwgY2FsYygxMDB2dyAtIDIgKiB2YXIoLS13cC0tcHJlc2V0LS1zcGFjaW5nLS00MCkpKTtcbiAgfVxuXG4gIC5hbGlnbmZ1bGwge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbn1cblxuXG5ib2R5IHtcbiAgLS13cC0tc3R5bGUtLWdsb2JhbC0tY29udGVudC1zaXplOiAjeyRjb250ZW50LXNpemV9O1xuICAtLXdwLS1zdHlsZS0tZ2xvYmFsLS13aWRlLXNpemU6ICN7JHdpZGUtc2l6ZX07XG4gIC0tZWhkLS1ncmlkLS1nYXA6ICN7JHdyYXBwZXItcGFkZGluZ307XG5cbiAgLy8gRGl2aWRlIHRoZSBjb250ZW50IHdpZHRoIGludG8gMiBjb2x1bW5zICh3aXRoYSBnYXAgaW4gdGhlIG1pZGRsZSlcbiAgLS1laGQtLWdyaWQtLW1pZGRsZS1oYWxmOiBjYWxjKCh2YXIoLS13cC0tc3R5bGUtLWdsb2JhbC0tY29udGVudC1zaXplKSAtIHZhcigtLWVoZC0tZ3JpZC0tZ2FwKSkgLyAyKTtcblxuICAvLyBUaGUgbmV4dCBjb2x1bW5zLCBhcmUgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgd2lkZSBzaXplIGFuZCB0aGUgY29udGVudCBzaXplLCBtaW51cyB0aGUgZ2FwXG4gIC0tZWhkLS1ncmlkLS13aWRlLWNvbHVtbnM6IGNhbGMoKHZhcigtLXdwLS1zdHlsZS0tZ2xvYmFsLS13aWRlLXNpemUpIC0gdmFyKC0td3AtLXN0eWxlLS1nbG9iYWwtLWNvbnRlbnQtc2l6ZSkgLSAoMiAqIHZhcigtLWVoZC0tZ3JpZC0tZ2FwKSkpIC8gMik7XG5cbiAgLy8gTGV0cyBjcmVhdGUgYSBncmlkIHRoZSBtb2JpbGUgc2l6ZSBcbiAgLS1laGQtLWdyaWQ6XG4gICAgW2Z1bGwtc3RhcnRdIDAgW3dpZGUtc3RhcnQgY29udGVudC1zdGFydF0gbWlubWF4KDAsIDFmcikgbWlubWF4KDAsIDFmcikgW2NvbnRlbnQtZW5kIHdpZGUtZW5kXSAwIFtmdWxsLWVuZF07XG5cbiAgLy8gVGhpcyBpcyB0aGUgZ3JpZCBvbmNlIHRoZSBjb250ZW50IHNpemUgaXMgcmVhY2hlZFxuICBAbWVkaWEobWluLXdpZHRoOiAkY29udGVudC1icCkge1xuICAgIC0tZWhkLS1ncmlkOlxuICAgICAgW2Z1bGwtc3RhcnRdIDAgW3dpZGUtc3RhcnRdIG1pbm1heCgwLCAxZnIpIFtjb250ZW50LXN0YXJ0XSBtaW5tYXgoMCwgdmFyKC0tZWhkLS1ncmlkLS1taWRkbGUtaGFsZikpIG1pbm1heCgwLCB2YXIoLS1laGQtLWdyaWQtLW1pZGRsZS1oYWxmKSkgW2NvbnRlbnQtZW5kXSBtaW5tYXgoMCwgMWZyKSBbd2lkZS1lbmRdIDAgW2Z1bGwtZW5kXTtcbiAgfVxuXG4gIC8vIFRoaXMgaXMgdGhlIGdyaWQgb25jZSB0aGUgd2lkZSBzaXplIGlzIHJlYWNoZWRcbiAgQG1lZGlhKG1pbi13aWR0aDogJHdpZGUtYnApIHtcbiAgICAtLWVoZC0tZ3JpZDpcbiAgICAgIFtmdWxsLXN0YXJ0XSAxZnIgW3dpZGUtc3RhcnRdIHZhcigtLWVoZC0tZ3JpZC0td2lkZS1jb2x1bW5zKSBbY29udGVudC1zdGFydF0gdmFyKC0tZWhkLS1ncmlkLS1taWRkbGUtaGFsZikgdmFyKC0tZWhkLS1ncmlkLS1taWRkbGUtaGFsZikgW2NvbnRlbnQtZW5kXSB2YXIoLS1laGQtLWdyaWQtLXdpZGUtY29sdW1ucykgW3dpZGUtZW5kXSAxZnIgW2Z1bGwtZW5kXTtcbiAgfVxufVxuXG4uZWhkLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLWVoZC0tZ3JpZCk7XG4gIGdyaWQtY29sdW1uLWdhcDogdmFyKC0tZWhkLS1ncmlkLS1nYXApO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87XG5cbiAgPioge1xuICAgIGdyaWQtY29sdW1uOiBjb250ZW50O1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLTQwKTtcblxuICAgICYuYWxpZ253aWRlIHtcbiAgICAgIGdyaWQtY29sdW1uOiB3aWRlO1xuICAgIH1cblxuICAgICYuYWxpZ25mdWxsIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgfVxuICB9XG59IiwiQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnYnJpdGFubmljX2JvbGQnO1xuICBzcmM6IHVybCgnLi4vLi4vZm9udHMvYnJpdGFubmljX2JvbGRfcmVndWxhci13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuXG5ib2R5IHtcbiAgLy8gYmFja2dyb3VuZDogdmFyKC0tdGhlbWUtY29sb3ItYmcpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9iZy1yZXBlYXQud2VicCcpO1xuICBiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMjUlO1xuXG4gIGNvbG9yOiB2YXIoLS10aGVtZS1jb2xvci1mZyk7XG5cbiAgYTp3aGVyZSg6bm90KC5idXR0b24pKSB7XG4gICAgY29sb3I6IHZhcigtLXRoZW1lLWNvbG9yLWFjY2VudCk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB2YXIoLS13cC0tY3VzdG9tLS10aGVtZS0tZGVmYXVsdC0tbGluay1kZWNvcmF0aW9uKTtcblxuICAgICY6aG92ZXIsXG4gICAgJjphY3RpdmUge1xuICAgICAgY29sb3I6IHZhcigtLXRoZW1lLWNvbG9yLWFjY2VudC0tY29udHJhc3QpO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB2YXIoLS13cC0tY3VzdG9tLS10aGVtZS0tZGVmYXVsdC0tbGluay1kZWNvcmF0aW9uLWhvdmVyKTtcbiAgICB9XG4gIH1cbn1cblxuLmNvbnRlbnQtd3JhcCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0wKTtcbn1cblxuLnNpdGUtd3JhcCB7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIC5hZG1pbi1iYXIgJiB7XG4gICAgbWluLWhlaWdodDogY2FsYygxMDB2aCAtIDMycHgpO1xuICB9XG59IiwiQHVzZSBcInNhc3M6bWFwXCI7XG5cbi5oYXMtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXRoZW1lLWNvbG9yLWJnKTtcbiAgY29sb3I6IHZhcigtLXRoZW1lLWNvbG9yLWZnKTtcblxuICBAZWFjaCAkY29sb3ItbmFtZSwgJG15Q29sb3VycyBpbiAkY29sb3ItbWFwIHtcbiAgICAmLmhhcy0jeyRjb2xvci1uYW1lfS1iYWNrZ3JvdW5kLWNvbG9yIHtcbiAgICAgIC0tdGhlbWUtY29sb3ItYmc6ICN7bWFwLmdldCgkbXlDb2xvdXJzLCBiZ2NvbG9yKX07XG4gICAgICAtLXRoZW1lLWNvbG9yLWZnOiAje21hcC5nZXQoJG15Q29sb3VycywgZmdjb2xvcil9O1xuXG4gICAgICBAaWYgbWFwLmhhcy1rZXkoJG15Q29sb3VycywgYWNjZW50Y29sb3IpIHtcbiAgICAgICAgLS10aGVtZS1jb2xvci1hY2NlbnQ6ICN7bWFwLmdldCgkbXlDb2xvdXJzLCBhY2NlbnRjb2xvcil9O1xuICAgICAgfVxuXG4gICAgICBAaWYgbWFwLmhhcy1rZXkoJG15Q29sb3VycywgYWNjZW50Y29sb3Jjb250cmFzdCkge1xuICAgICAgICAtLXRoZW1lLWNvbG9yLWFjY2VudC0tY29udHJhc3Q6ICN7bWFwLmdldCgkbXlDb2xvdXJzLCBhY2NlbnRjb2xvcmNvbnRyYXN0KX07XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLmhhcy10ZXh0LWFsaWduLWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmhhcy10ZXh0LWFsaWduLXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi50ZXh0LWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4udGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi50ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5zaXRlLXdyYXAgOndoZXJlKHAsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHVsLCBvbCwgYmxvY2txdW90ZSwgY2l0ZSk6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLTIwKTtcbn1cblxuLndwLWJsb2NrLWhlYWRpbmc6bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tdG9wOiB2YXIoLS13cC0tcHJlc2V0LS1zcGFjaW5nLS0yMCk7XG59XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDZ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59IiwiLy8gVE9ETzogUkVXUklURSB0aGlzIHRvIGNsZWFuIHVwIHRoZSBjb2RlXG5cbmJvZHkge1xuXG4gIC0taGVhZGVyLWJnLWNvbG9yOiB2YXIoLS1jb2xvci1kYXJrLXB1cnBsZSk7XG4gIC0tZmx5aW4tbWVudS1iZy1jb2xvcjogdmFyKC0tY29sb3ItcHVycGxlKTtcbn1cblxuLnNpdGUtaGVhZGVyIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAxMDAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1oZWFkZXItYmctY29sb3IpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2UtaW4tb3V0O1xuICBwYWRkaW5nLWJsb2NrOiAwO1xuXG4gICYuc2Nyb2xsZWQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogJG5hdi10b2dnbGUpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tdGhlbWUtd3JhcHBlci1wYWRkaW5nKTtcbiAgfVxuXG4gIC5tZW51LWJhciB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRuYXYtdG9nZ2xlKSB7XG4gICAgICBmbGV4OiAxO1xuXG4gICAgfVxuXG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTAwMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG5hdi10b2dnbGUpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogdmFyKC0tcGFnZS13cmFwLXNpemUpO1xuICAgICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXRoZW1lLXdyYXBwZXItcGFkZGluZyk7XG4gICAgfVxuXG5cbiAgICBoMS5sb2dvLFxuICAgIHAubG9nbyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDNweCk7XG4gICAgICAvL3JvdGF0ZTogLThkZWc7XG5cblxuICAgICAgaW1nIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB3aWR0aDogMTYwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaDEubG9nbyB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIC5tZW51LXJpZ2h0IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogMXJlbTtcbiAgICB9XG4gIH1cblxuXG5cbiAgLm5hdi10b2dnbGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG5hdi10b2dnbGUpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgc3BhbiB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXllbGxvdyk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogM3B4O1xuICAgICAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICAgICAgd2lkdGg6IDJyZW07XG5cbiAgICAgICAgJjpudGgtb2YtdHlwZSgxKSB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5uYXYtYm94IHtcblxuICAgIGZsZXg6IDAgMCBhdXRvO1xuXG5cblxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRuYXYtdG9nZ2xlKSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDEwMCU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2UtaW4tb3V0O1xuICAgICAgei1pbmRleDogMTAwMDtcblxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZmx5aW4tbWVudS1iZy1jb2xvcik7XG5cbiAgICAgIHBhZGRpbmc6IDFlbSAwO1xuXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIC5uYXYtaW5uZXIge1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1wYWdlLXdyYXAtc2l6ZSk7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS10aGVtZS13cmFwcGVyLXBhZGRpbmcpO1xuICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgJHllbGxvdztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLm5hdi1vcGVuIHtcbiAgICAubmF2LWJveCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgfVxuXG4gICAgLm5hdi10b2dnbGUgc3BhbiB7XG4gICAgICAmOm50aC1vZi10eXBlKDEpIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgICAgIHRvcDogMTBweDtcbiAgICAgIH1cblxuICAgICAgJjpudGgtb2YtdHlwZSgyKSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG5cbiAgICAgICY6bnRoLW9mLXR5cGUoMykge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgICAgICB0b3A6IC0xMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi5zaXRlLWZvb3RlciB7XG4gIG1hcmdpbi10b3A6IGF1dG87XG5cbiAgLmJvdHRvbS1mb290ZXIsXG4gIC50b3AtZm9vdGVyIHtcbiAgICBwYWRkaW5nOiAzZW0gMDtcblxuICAgID4qIHtcbiAgICAgIG1hcmdpbjogYXV0byBhdXRvIDA7XG4gICAgICB3aWR0aDogTWluKHZhcigtLXdwLS1zdHlsZS0tZ2xvYmFsLS13aWRlLXNpemUpLCBjYWxjKDEwMCUgLSAzcmVtKSk7XG4gICAgfVxuICB9XG5cbiAgLmJvdHRvbS1mb290ZXIge1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCB2YXIoLS1jb2xvci15ZWxsb3cpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoIzAwMCwgMC4yOCkgMCUsIHJnYmEoIzAwMCwgMC44KSAxMDAlKTtcbiAgfVxuXG4gIHAge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxuXG4gIC5zcG9uc29ycy1wcm9kdWNlcnMtcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogNHJlbTtcbiAgfVxuXG4gIC5zcG9uc29ycy1yb3csXG4gIC5wcm9kdWNlcnMtcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgZ2FwOiAxLjVyZW07XG5cbiAgICBpbWcge1xuICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDokbWVkaXVtKSB7XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgICAubGVmdCBwIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cblxuICAgICAgLnJpZ2h0IHAge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG5cbi5ib3R0b20tZm9vdGVyIHtcbiAgbWFyZ2luLXRvcDogNHJlbTtcbn0iLCIucGFnZS1oZWFkZXIge1xuICBwYWRkaW5nOiAzZW0gMCAzZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnBhZ2UtaGVhZGVyLWltYWdlLFxuLnBhZ2UtaGVhZGVyLXZpZGVvIHtcblxuICBpbWcsXG4gIHZpZGVvIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgfVxufVxuXG4ucGFnZS1oZWFkZXItc21hbGwtaW1hZ2Uge1xuICBoZWlnaHQ6IGNsYW1wKDIwMHB4LCAzMHZ3LCA0MDBweCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBvYmplY3QtcG9zaXRpb246IGNlbnRlcjtcbiAgfVxufSIsIi8vIHZhcigtLXdwLS1jdXN0b20tLXRoZW1lLS1kZWZhdWx0LS10ZXh0KTtcbi8vIHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1hY2NlbnQpO1xuLy8gdmFyKC0td3AtLWN1c3RvbS0tdGhlbWUtLWRlZmF1bHQtLWJhY2tncm91bmQpO1xuOnJvb3Qge1xuICAtLW5hdi10ZXh0LW1vYmlsZTogI2ZmZjtcbiAgLS1uYXYtdGV4dC1kZXNrdG9wOiAjMDAwO1xuXG4gIC0tbmF2LXRleHQtbW9iaWxlLWFjdGl2ZTogYXF1YTtcbiAgLS1uYXYtdGV4dC1kZXNrdG9wLWFjdGl2ZTogIzAwMDtcbn1cblxuLy8gVGhlIHJlc3BvbnNpdmUgTmF2aWdhdGlvblxuXG5cbm5hdi5tYWluLW5hdmlnYXRpb24gdWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBnYXA6IDFyZW07XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6JG5hdi10b2dnbGUpIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuXG4gIGxpIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgYSB7XG4gICAgICBjb2xvcjogdmFyKC0tbmF2LXRleHQtbW9iaWxlKTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICBwYWRkaW5nOiAwLjZlbSAxLjJlbTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEodmFyKC0td3AtLXByZXNldC0tY29sb3ItLWFjY2VudCksIDAuMyk7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmN1cnJlbnQtbWVudS1pdGVtLFxuICAgICYuY3VycmVudC1wYWdlLXBhcmVudCB7XG4gICAgICA+YSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci15ZWxsb3cpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIE5ldyBjb2RlICovXG5cbiAgICB1bCB7XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDokbmF2LXRvZ2dsZSkge1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuXG4gICAgICBsaSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgcGFkZGluZzogMC41ZW0gMS4yZW0gMC41ZW0gMi40ZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmV4cGFuZGVkLXN1Yi1uYXYge1xuICAgICAgdWwge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICBidXR0b24ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB3aWR0aDogODBweDtcbiAgICAgICAgaGVpZ2h0OiA1MXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKHdoaXRlLCAwLjMpO1xuICAgICAgICBib3JkZXItYm90dG9tOiByZ2JhKHdoaXRlLCAwLjUpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgICB3aWR0aDogMS41ZW07XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWFjY2VudCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLmV4cGFuZGVkLXN1Yi1uYXYge1xuICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tYWNjZW50KTtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1hY2NlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiRuYXYtdG9nZ2xlKSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgID5kaXYge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDU1JTtcbiAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICBmb250LXNpemU6IDEuNWVtO1xuXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBFTkQgTmV3IGNvZGUgKi9cblxuXG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDokbmF2LXRvZ2dsZSkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBtYXJnaW46IDAgLjVyZW0gMCAwO1xuXG4gICAgbGkge1xuICAgICAgcGFkZGluZzogMDtcblxuICAgICAgYSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgdWwge1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgbWluLXdpZHRoOiAxMHJlbTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAycHggMnB4IHJnYmEoIzAwMCwgMC4xKTtcbiAgICAgICAgbGVmdDogLTFlbTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tYWNjZW50KTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxZW07XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICBjb2xvcjogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWFjY2VudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXI+dWwsXG4gICAgICAmOmZvY3VzLXdpdGhpbj51bCxcbiAgICAgIHVsOmhvdmVyLFxuICAgICAgdWw6Zm9jdXMge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5uYXYtYm94IHtcbiAgQG1lZGlhIChtaW4td2lkdGg6JG5hdi10b2dnbGUpIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDFyZW07XG4gIH1cbn0iLCIucGFnZS1pZC0zOCBmb3JtIHtcbiAgcCB7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgfVxufVxuXG4ubWVkaWEtcGFnZS1pbm5lciB7XG4gIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgLndyYXBwZXIge1xuICAgIGdyaWQtY29sdW1uOiB3aWRlO1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgIC5jb250YWluZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBnYXA6IDFyZW07XG5cbiAgICB9XG4gIH1cblxuXG5cbiAgLnBhZGRpbmctdG9wLXNtYWxsIHtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tMzApO1xuICB9XG5cbiAgLm1lZGlhLXBhZ2UtaXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMC41cmVtO1xuXG4gICAgcC5oNCB7XG4gICAgICBmb250LXNpemU6IHZhcigtLXdwLS1wcmVzZXQtLWZvbnQtc2l6ZS0tbWVkaXVtKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIGEuZWhkLWJ1dHRvbiB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYWNjZW50O1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXB1cnBsZSk7XG4gICAgICBib3JkZXItY29sb3I6ICRhY2NlbnQ7XG4gICAgICBmb250LXNpemU6IHZhcigtLXNpemUtMSk7XG4gICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXB1cnBsZSk7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEobWluLXdpZHRoOiAkd2lkZS1icCkge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGdhcDogMXJlbTtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICYuaXRlbS1zdGFjayB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1lZGlhLXBhZ2UtaW1hZ2Uge1xuICAgICAgZmxleDogMTtcblxuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYnV0dG9uLXdyYXAsXG4gICAgLm1lZGlhLXBhZ2UtY29udGVudCB7XG4gICAgICBmbGV4OiAzO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBnYXA6IDAuNXJlbTtcblxuICAgICAgcCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYShtaW4td2lkdGg6ICR3aWRlLWJwKSB7XG4gICAgICAgIGdhcDogMXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWVkaWEtcGFnZS1jb250ZW50LWZ1bGwge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgQG1lZGlhKG1pbi13aWR0aDogJHdpZGUtYnApIHtcbiAgICAgIC5idXR0b24td3JhcCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGdhcDogMXJlbTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIC5tZWRpYS1wYWdlLWl0ZW0ge1xuICAvLyAgIGRpc3BsYXk6IGZsZXg7XG4gIC8vICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgLy8gICBhbGlnbi1pdGVtczogc3RhcnQ7XG5cbiAgLy8gICBAbWVkaWEobWluLXdpZHRoOiA3NjhweCkge1xuICAvLyAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgLy8gICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIC8vICAgfVxuXG4gIC8vICAgZ2FwOiAycmVtO1xuICAvLyAgIG1hcmdpbjogMXJlbSAwO1xuXG4gIC8vICAgLm1lZGlhLXBhZ2UtaW1hZ2Uge1xuICAvLyAgICAgd2lkdGg6IDI2MHB4O1xuXG4gIC8vICAgICBpbWcge1xuICAvLyAgICAgICB3aWR0aDogMTAwJTtcbiAgLy8gICAgICAgaGVpZ2h0OiBhdXRvO1xuICAvLyAgICAgfVxuICAvLyAgIH1cblxuICAvLyAgIC5tZWRpYS1wYWdlLWNvbnRlbnQge1xuICAvLyAgICAgZmxleDogMTtcbiAgLy8gICAgIG1heC13aWR0aDogMTAwJTtcblxuICAvLyAgICAgLmJ1dHRvbi1zZWNvbmRhcnkge1xuICAvLyAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gIC8vICAgICB9XG4gIC8vICAgfVxuICAvLyB9XG59IiwiLmNpdHktaGVhZGVyLWNvbnRhaW5lciB7XG4gIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gIHBhZGRpbmc6IDNlbSAwIDNlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGgxLFxuICBoMixcbiAgcCB7fVxuXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgLy93aWR0aDogY2FsYygxMDB2dyAtIDRyZW0pO1xuXG4gIEBtZWRpYShtYXgtd2lkdGg6ICRtZWRpdW0pIHtcbiAgICBzcGFuLmRvdCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIHNwYW4uZGF0ZXMtdGhlYXRyZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxuICBoMSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gIH1cblxuICBoMiB7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuXG4gICAgc3BhbiB7fVxuICB9XG59IiwiLmNpdHktd3JhcHBlciB7XG4gIGdyaWQtY29sdW1uOiB3aWRlO1xuICAvL21heC13aWR0aDogMTAwJTsgXG59XG5cbi8vIC5jaXR5LXRhYnMge1xuLy8gICAuY29udGFpbmVyIHtcbi8vICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4vLyAgIH1cblxuLy8gICBhIHtcbi8vICAgICBmb250LWZhbWlseTogdmFyKC0td3AtLXByZXNldC0tZm9udC1zaXplLS1sYXJnZSk7XG4vLyAgICAgY29sb3I6IHdoaXRlO1xuLy8gICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICRhY2NlbnQ7XG4vLyAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbi8vICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4vLyAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbi8vICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbi8vICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZS1pbi1vdXQsIGNvbG9yIDAuMnMgZWFzZS1pbi1vdXQ7XG4vLyAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbi8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG4vLyAgICAgZm9udC13ZWlnaHQ6IDYwMDtcblxuLy8gICAgICY6aG92ZXIsXG4vLyAgICAgJi5hY3RpdmUtY2l0eSB7XG4vLyAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuLy8gICAgICAgY29sb3I6IGJsYWNrO1xuLy8gICAgIH1cblxuLy8gICAgICYuYWN0aXZlLWNpdHkge1xuLy8gICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbi8vICAgICB9XG4vLyAgIH1cbi8vIH1cblxuLy8gLmNpdHktaW5uZXIge1xuXG4vLyAgIC8vbWFyZ2luLXRvcDogMi41cmVtOyAvL1JlbW92ZSB3aGVuIFRBQlMgb25cbi8vICAgbWFyZ2luLWJvdHRvbTogMi41cmVtO1xuXG4vLyAgICY+LmNvbnRhaW5lciB7XG4vLyAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuLy8gICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG4vLyAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbi8vICAgICBiYWNrZ3JvdW5kOiBibGFjaztcbi8vICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRhY2NlbnQsIDAuNSk7XG4vLyAgICAgcGFkZGluZzogJHdyYXBwZXItcGFkZGluZyAkd3JhcHBlci1wYWRkaW5nO1xuLy8gICAgIGRpc3BsYXk6IGdyaWQ7XG4vLyAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBbZnVsbC1zdGFydF0gMCBbd2lkZS1zdGFydCBjb250ZW50LXN0YXJ0XSBtaW5tYXgoMCwgMWZyKSBtaW5tYXgoMCwgMWZyKSBbY29udGVudC1lbmQgd2lkZS1lbmRdIDAgW2Z1bGwtZW5kXTtcbi8vICAgICBncmlkLWNvbHVtbi1nYXA6IHZhcigtLWVoZC0tZ3JpZC0tZ2FwKTtcbi8vICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87XG5cbi8vICAgICA+KiB7XG4vLyAgICAgICBncmlkLWNvbHVtbjogY29udGVudDtcblxuXG4vLyAgICAgICAmLmFsaWdud2lkZSB7XG4vLyAgICAgICAgIGdyaWQtY29sdW1uOiB3aWRlO1xuLy8gICAgICAgfVxuXG4vLyAgICAgICAmLmFsaWduZnVsbCB7XG4vLyAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4vLyAgICAgICB9XG4vLyAgICAgfVxuXG4vLyAgICAgLy8gVGhpcyBpcyB0aGUgZ3JpZCBvbmNlIHRoZSBjb250ZW50IHNpemUgaXMgcmVhY2hlZFxuLy8gICAgIEBtZWRpYShtaW4td2lkdGg6ICRjb250ZW50LWJwKSB7XG4vLyAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6XG4vLyAgICAgICAgIFtmdWxsLXN0YXJ0XSAwIFt3aWRlLXN0YXJ0XSBtaW5tYXgoMCwgMWZyKSBbY29udGVudC1zdGFydF0gbWlubWF4KDAsIHZhcigtLWVoZC0tZ3JpZC0tbWlkZGxlLWhhbGYpKSBtaW5tYXgoMCwgdmFyKC0tZWhkLS1ncmlkLS1taWRkbGUtaGFsZikpIFtjb250ZW50LWVuZF0gbWlubWF4KDAsIDFmcikgW3dpZGUtZW5kXSAwIFtmdWxsLWVuZF07XG4vLyAgICAgfVxuLy8gICB9XG4vLyB9IiwiLnNpdGUtd3JhcCAucG9zdC1zdHViIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS13cC0tcHJlc2V0LS1zcGFjaW5nLS0xMCk7XG5cbiAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tMTApO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMDAwO1xuICB9XG5cbiAgaDIge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci15ZWxsb3cpO1xuICAgIH1cbiAgfVxuXG4gIC5wb3N0LXN0dWItaW50ZXJuYWwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkY29udGVudC1icCkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBnYXA6IHZhcigtLXdwLS1wcmVzZXQtLXNwYWNpbmctLTEwKTtcblxuICAgICAgZmlndXJlIHtcbiAgICAgICAgZmxleDogMCAwIDIwMHB4O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5zaW5nbGUtcG9zdCB7XG4gIC5wb3N0LXRodW1ibmFpbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICB9XG5cbiAgLy8gYS5iYWNrLXRvLW5ld3Mge1xuICAvLyAgIGNvbG9yOiB2YXIoLS1jb2xvci1kYXJrLWJsdWUpO1xuICAvLyAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZTtcblxuICAvLyAgICY6aG92ZXIge1xuICAvLyAgICAgY29sb3I6IHZhcigtLWNvbG9yLWFxdWEpO1xuICAvLyAgIH1cbiAgLy8gfVxufSIsImJvZHkge1xuXG4gIC8vZm9ybSBzdHlsZXMgLSBDb250cm9sIHRoZSBnYXAgYmV0d2VlbiBmb3JtIGVsZW1lbnRzXG4gIC0tZm9ybS0tZ2FwLXk6IDFyZW07XG4gIC0tZm9ybS0tZ2FwLXg6IDFyZW07XG5cbiAgLy8gaW5wdXQgc3R5bGVzXG4gIC0tZm9ybS0taW5wdXQtLWJvcmRlci1jb2xvcjogI2ZmZjtcbiAgLS1mb3JtLS1pbnB1dC0tYm9yZGVyLXdpZHRoOiAycHg7XG4gIC0tZm9ybS0taW5wdXQtLWJvcmRlci1zdHlsZTogc29saWQ7XG4gIC0tZm9ybS0taW5wdXQtLWJvcmRlci1yYWRpdXM6IDRweDtcbiAgLS1mb3JtLS1pbnB1dC0tYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgLS1mb3JtLS1pbnB1dC0tZm9udC1jb2xvcjogdmFyKC0tY29sb3ItcHVycGxlKTtcblxuICAtLWZvcm0tLWlucHV0LS1mb250LXNpemU6IDFyZW07XG4gIC0tZm9ybS0taW5wdXQtLXBhZGRpbmcteTogMC41cmVtO1xuICAtLWZvcm0tLWlucHV0LS1wYWRkaW5nLXg6IDAuNXJlbTtcblxuICAtLWZvcm0tLWlucHV0LS1wbGFjZWhvbGRlci0tY29sb3I6ICM5ZGEwYTQ7XG5cbiAgLS1mb3JtLS1pbnB1dC0tYm9yZGVyLWNvbG9yLS1mb2N1czogI2ZmZjtcbiAgLS1mb3JtLS1pbnB1dC0tc2hhZG93LS1mb2N1czogcmdiYSgwLCAwLCAwLCAwKSAwcHggMHB4IDBweCAwcHgsIHJnYmEoNDYsIDE1NiwgMjAyLCAwLjI2KSAwcHggMHB4IDBweCAyLjU1NjMxcHg7XG5cbiAgLy8gbGFiZWwgc3R5bGVzXG4gIC0tZm9ybS0tbGFiZWwtLWNvbG9yOiAjZmZmO1xuICAtLWZvcm0tLWxhYmVsLS1mb250LXNpemU6IDAuOHJlbTtcbiAgLS1mb3JtLS1sYWJlbC0tZm9udC13ZWlnaHQ6IDYwMDtcbiAgLS1mb3JtLS1sYWJlbC0tdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgLS1mb3JtLS1sYWJlbC0tbWFyZ2luLWJvdHRvbTogNXB4O1xuXG4gIC8vIFRoZSBSZXF1aXJlZCBGaWVsZCBBc3Rlcmlza1xuICAtLWZvcm0tLWxhYmVsLS1zdXAtLWNvbG9yOiAjZjAwO1xuXG4gIC8vIGZvcm0gYnV0dG9uIHN0eWxlc1xuICAtLXN1Ym1pdC0tanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIC0tc3VibWl0LS1iZy1jb2xvcjogI0Y0RTczRjtcbiAgLS1zdWJtaXQtLWZvbnQtY29sb3I6ICNFRTI1Mjk7XG4gIC0tc3VibWl0LS1mb250LXNpemU6IDEuMjVyZW07XG4gIC0tc3VibWl0LS1mb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktc2VyaWYpO1xuICAtLXN1Ym1pdC0tZm9udC13ZWlnaHQ6IDQwMDtcbiAgLS1zdWJtaXQtLXBhZGRpbmcteTogMXJlbTtcbiAgLS1zdWJtaXQtLXBhZGRpbmcteDogM3JlbTtcbiAgLS1zdWJtaXQtLWJvcmRlci1yYWRpdXM6IDRweDtcbiAgLS1zdWJtaXQtLWJvcmRlci13aWR0aDogMnB4O1xuICAtLXN1Ym1pdC0tYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLS1zdWJtaXQtLWJvcmRlci1zdHlsZTogc29saWQ7XG4gIC0tc3VibWl0LS10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAtLXN1Ym1pdC0tbGluZS1oZWlnaHQ6IDE7XG5cbiAgLS1zdWJtaXQtLWJnLWNvbG9yLS1ob3ZlcjogdHJhbnNwYXJlbnQ7XG4gIC0tc3VibWl0LS1ib3JkZXItY29sb3ItLWhvdmVyOiB0cmFuc3BhcmVudDtcbiAgLS1zdWJtaXQtLWZvbnQtY29sb3ItLWhvdmVyOiAjMmQ0ODgwO1xuXG59XG5cblxuLnNpdGUtd3JhcCxcbi5ibG9jay1lZGl0b3ItYmxvY2stbGlzdF9fYmxvY2sge1xuXG5cbiAgLmdmb3JtX3dyYXBwZXIuZ2Zvcm0tdGhlbWUtLWZyYW1ld29yay5nZm9ybS10aGVtZS0tZm91bmRhdGlvbiB7XG4gICAgLS1nZi1mb3JtLWdhcC15OiB2YXIoLS1mb3JtLS1nYXAteSk7XG4gICAgLS1nZi1mb3JtLWdhcC14OiB2YXIoLS1mb3JtLS1nYXAteCk7XG4gICAgLS1nZi1maWVsZC1nYXAteTogdmFyKC0tZm9ybS0tZ2FwLXkpO1xuICAgIC0tZ2YtZmllbGQtZ2FwLXg6IHZhcigtLWZvcm0tLWdhcC14KTtcblxuICAgIGZvcm0ge1xuICAgICAgLmdmb3JtX2JvZHkgLmdmb3JtX2ZpZWxkcyB7XG5cbiAgICAgICAgbGFiZWwsXG4gICAgICAgIGxlZ2VuZCB7XG4gICAgICAgICAgZ2FwOiAwO1xuICAgICAgICAgIC0tZ2YtbG9jYWwtbWFyZ2luLXk6IDAgdmFyKC0tZm9ybS0tbGFiZWwtLW1hcmdpbi1ib3R0b20pO1xuICAgICAgICAgIC0tZ2YtbG9jYWwtY29sb3I6IHZhcigtLWZvcm0tLWxhYmVsLS1jb2xvcik7XG4gICAgICAgICAgLS1nZi1sb2NhbC1mb250LXNpemU6IHZhcigtLWZvcm0tLWxhYmVsLS1mb250LXNpemUpO1xuICAgICAgICAgIC0tZ2YtbG9jYWwtZm9udC13ZWlnaHQ6IHZhcigtLWZvcm0tLWxhYmVsLS1mb250LXdlaWdodCk7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHZhcigtLWZvcm0tLWxhYmVsLS10ZXh0LXRyYW5zZm9ybSk7XG5cbiAgICAgICAgICAuZ2ZpZWxkX3JlcXVpcmVkLmdmaWVsZF9yZXF1aXJlZF9hc3RlcmlzayB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tZm9ybS0tbGFiZWwtLXN1cC0tY29sb3IpO1xuXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cblxuXG4gICAgICAgIGlucHV0Om5vdChbdHlwZT1jaGVja2JveF0pLFxuICAgICAgICBzZWxlY3QsXG4gICAgICAgIHRleHRhcmVhIHtcbiAgICAgICAgICAtLWdmLWxvY2FsLWJvcmRlci1jb2xvcjogdmFyKC0tZm9ybS0taW5wdXQtLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgLS1nZi1sb2NhbC1ib3JkZXItd2lkdGg6IHZhcigtLWZvcm0tLWlucHV0LS1ib3JkZXItd2lkdGgpO1xuICAgICAgICAgIC0tZ2YtbG9jYWwtcmFkaXVzOiB2YXIoLS1mb3JtLS1pbnB1dC0tYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgLS1nZi1sb2NhbC1ib3JkZXItc3R5bGU6IHZhcigtLWZvcm0tLWlucHV0LS1ib3JkZXItc3R5bGUpO1xuICAgICAgICAgIC0tZ2YtbG9jYWwtZm9udC1zaXplOiB2YXIoLS1mb3JtLS1pbnB1dC0tZm9udC1zaXplKTtcbiAgICAgICAgICAtLWdmLWxvY2FsLXBhZGRpbmcteDogdmFyKC0tZm9ybS0taW5wdXQtLXBhZGRpbmcteCk7XG4gICAgICAgICAgLS1nZi1sb2NhbC1wYWRkaW5nLXk6IHZhcigtLWZvcm0tLWlucHV0LS1wYWRkaW5nLXkpO1xuICAgICAgICAgIC0tZ2YtbG9jYWwtYmctY29sb3I6IHZhcigtLWZvcm0tLWlucHV0LS1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICAgICAgICAtLWdmLWxvY2FsLWNvbG9yOiB2YXIoLS1mb3JtLS1pbnB1dC0tZm9udC1jb2xvcik7XG5cbiAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIC0tZ2YtbG9jYWwtYm9yZGVyLWNvbG9yOiB2YXIoLS1mb3JtLS1pbnB1dC0tYm9yZGVyLWNvbG9yLS1mb2N1cyk7XG4gICAgICAgICAgICAtLWdmLWxvY2FsLXNoYWRvdzogdmFyKC0tZm9ybS0taW5wdXQtLXNoYWRvdy0tZm9jdXMpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1mb3JtLS1pbnB1dC0tcGxhY2Vob2xkZXItLWNvbG9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLy8gUmVtb3ZlcyBkZWZhdWx0IHN0eWxpbmcgaW4gV2ViS2l0IGJyb3dzZXJzIGxpa2UgU2FmYXJpXG4gICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1mb3JtLS1pbnB1dC0tcGxhY2Vob2xkZXItLWNvbG9yKTtcblxuICAgICAgICAgICY6dmFsaWQge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWZvcm0tLWlucHV0LS1mb250LWNvbG9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgICAuZ2Zvcm1fZm9vdGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHZhcigtLXN1Ym1pdC0tanVzdGlmeS1jb250ZW50KTtcblxuICAgICAgICBpbnB1dFt0eXBlPXN1Ym1pdF0uZ2Zvcm1fYnV0dG9uLmJ1dHRvbiB7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIC0tZ2YtbG9jYWwtcmFkaXVzOiB2YXIoLS1zdWJtaXQtLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgIC0tZ2YtbG9jYWwtZm9udC1mYW1pbHk6IHZhcigtLXN1Ym1pdC0tZm9udC1mYW1pbHkpO1xuICAgICAgICAgIC0tZ2YtbG9jYWwtYmctY29sb3I6IHZhcigtLXN1Ym1pdC0tYmctY29sb3IpO1xuICAgICAgICAgIC0tZ2YtbG9jYWwtYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWJtaXQtLWJvcmRlci1jb2xvcik7XG4gICAgICAgICAgLS1nZi1sb2NhbC1ib3JkZXItd2lkdGg6IHZhcigtLXN1Ym1pdC0tYm9yZGVyLXdpZHRoKTtcbiAgICAgICAgICAtLWdmLWxvY2FsLWJvcmRlci1zdHlsZTogdmFyKC0tc3VibWl0LS1ib3JkZXItc3R5bGUpO1xuICAgICAgICAgIC0tZ2YtbG9jYWwtY29sb3I6IHZhcigtLXN1Ym1pdC0tZm9udC1jb2xvcik7XG4gICAgICAgICAgLS1nZi1sb2NhbC1mb250LXdlaWdodDogdmFyKC0tc3VibWl0LS1mb250LXdlaWdodCk7XG4gICAgICAgICAgLS1nZi1sb2NhbC1mb250LXNpemU6IHZhcigtLXN1Ym1pdC0tZm9udC1zaXplKTtcbiAgICAgICAgICAtLWdmLWxvY2FsLXRleHQtdHJhbnNmb3JtOiB2YXIoLS1zdWJtaXQtLXRleHQtdHJhbnNmb3JtKTtcbiAgICAgICAgICAtLWdmLWxvY2FsLXBhZGRpbmcteTogdmFyKC0tc3VibWl0LS1wYWRkaW5nLXkpO1xuICAgICAgICAgIC0tZ2YtbG9jYWwtcGFkZGluZy14OiB2YXIoLS1zdWJtaXQtLXBhZGRpbmcteCk7XG4gICAgICAgICAgLS1nZi1sb2NhbC1saW5lLWhlaWdodDogdmFyKC0tc3VibWl0LS1saW5lLWhlaWdodCk7XG5cbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIC0tZ2YtbG9jYWwtYmctY29sb3I6IHZhcigtLXN1Ym1pdC0tYmctY29sb3ItLWhvdmVyKTtcbiAgICAgICAgICAgIC0tZ2YtbG9jYWwtYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWJtaXQtLWJvcmRlci1jb2xvci0taG92ZXIpO1xuICAgICAgICAgICAgLS1nZi1sb2NhbC1jb2xvcjogdmFyKC0tc3VibWl0LS1mb250LWNvbG9yLS1ob3Zlcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmdmb3JtX2NvbmZpcm1hdGlvbl9tZXNzYWdlIHtcbiAgICBwYWRkaW5nOiAycmVtO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRoZW1lLWNvbG9yLWFjY2VudCk7XG4gIH1cbn1cblxuXG4uZm9ybS1jb250YWluZXIgZm9ybSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gIHJvdy1nYXA6IHZhcigtLWZvcm0tLWdhcC15KTtcbiAgY29sdW1uLWdhcDogdmFyKC0tZm9ybS0tZ2FwLXgpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDYsIDFmcik7XG5cbiAgICAuY20taGFsZi13aWR0aCB7XG4gICAgICBncmlkLWNvbHVtbjogc3BhbiAzO1xuICAgIH1cblxuICAgIC5jbS10aGlyZC13aWR0aCB7XG4gICAgICBncmlkLWNvbHVtbjogc3BhbiAyO1xuICAgIH1cbiAgfVxuXG5cblxuICA+ZGl2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIGxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgY29sb3I6IHZhcigtLWZvcm0tLWxhYmVsLS1jb2xvcik7XG4gICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1mb3JtLS1sYWJlbC0tbWFyZ2luLWJvdHRvbSk7XG4gICAgICBmb250LXNpemU6IHZhcigtLWZvcm0tLWxhYmVsLS1mb250LXNpemUpO1xuICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvcm0tLWxhYmVsLS1mb250LXdlaWdodCk7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdmFyKC0tZm9ybS0tbGFiZWwtLXRleHQtdHJhbnNmb3JtKTtcblxuXG4gICAgICBzdXAge1xuICAgICAgICBjb2xvcjogdmFyKC0tZm9ybS0tbGFiZWwtLXN1cC0tY29sb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlucHV0LFxuICAgIHNlbGVjdCxcbiAgICB0ZXh0YXJlYSB7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1mb3JtLS1pbnB1dC0tYm9yZGVyLXJhZGl1cyk7XG4gICAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1mb3JtLS1pbnB1dC0tcGFkZGluZy15KTtcbiAgICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1mb3JtLS1pbnB1dC0tcGFkZGluZy14KTtcblxuICAgICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1mb3JtLS1pbnB1dC0tYm9yZGVyLXdpZHRoKTtcbiAgICAgIGJvcmRlci1zdHlsZTogdmFyKC0tZm9ybS0taW5wdXQtLWJvcmRlci1zdHlsZSk7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0tLWlucHV0LS1ib3JkZXItY29sb3IpO1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1mb3JtLS1pbnB1dC0tZm9udC1zaXplKTtcbiAgICAgIGNvbG9yOiB2YXIoLS1mb3JtLS1pbnB1dC0tZm9udC1jb2xvcik7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1mb3JtLS1pbnB1dC0tYmFja2dyb3VuZC1jb2xvcik7XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWZvcm0tLWlucHV0LS1ib3JkZXItY29sb3ItLWZvY3VzKTtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tZm9ybS0taW5wdXQtLXNoYWRvdy0tZm9jdXMpO1xuICAgICAgfVxuXG4gICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1mb3JtLS1pbnB1dC0tcGxhY2Vob2xkZXItLWNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3Qge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvLyBSZW1vdmVzIGRlZmF1bHQgc3R5bGluZyBpbiBXZWJLaXQgYnJvd3NlcnMgbGlrZSBTYWZhcmlcbiAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWZvcm0tLWlucHV0LS1ib3JkZXItcmFkaXVzKTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMWVtJyBoZWlnaHQ9JzFlbScgdmlld0JveD0nMCAwIDI0IDI0JyUzRSUzQ3BhdGggZmlsbD0nY3VycmVudENvbG9yJyBkPSdNNy40MSA4LjU4TDEyIDEzLjE3bDQuNTktNC41OUwxOCAxMGwtNiA2bC02LTZ6Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDAuN2VtIHRvcCA1MCU7XG5cbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICBjb2xvcjogdmFyKC0tZm9ybS0taW5wdXQtLXBsYWNlaG9sZGVyLS1jb2xvcik7XG5cbiAgICAgICY6dmFsaWQge1xuICAgICAgICBjb2xvcjogdmFyKC0tZm9ybS0taW5wdXQtLWZvbnQtY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jbS1mdWxsLXdpZHRoIHtcbiAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG5cbiAgICBsYWJlbCB7XG4gICAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICB9XG5cbiAgICBpbnB1dCxcbiAgICBzZWxlY3Qge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJi50LWFuZC1jcyB7XG4gICAgICBwYWRkaW5nLWlubGluZTogdmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tMzAwKTtcblxuICAgICAgcCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1laGQtLWZvcm0tLWFjY2VudC0tY29sb3IpO1xuICAgICAgICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuc3VibWl0LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHZhcigtLXN1Ym1pdC0tanVzdGlmeS1jb250ZW50KTtcblxuICAgIGJ1dHRvblt0eXBlPXN1Ym1pdF0uYnV0dG9uIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXN1Ym1pdC0tYm9yZGVyLXJhZGl1cyk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2J1dHRvbi1iZy5zdmcnKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGNvbG9yOiB2YXIoLS1zdWJtaXQtLWZvbnQtY29sb3IpO1xuICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLXN1Ym1pdC0tZm9udC13ZWlnaHQpO1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1zdWJtaXQtLWZvbnQtc2l6ZSk7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdmFyKC0tc3VibWl0LS10ZXh0LXRyYW5zZm9ybSk7XG4gICAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zdWJtaXQtLXBhZGRpbmcteSk7XG4gICAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tc3VibWl0LS1wYWRkaW5nLXgpO1xuICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXN1Ym1pdC0tbGluZS1oZWlnaHQpO1xuICAgICAgZm9udC1mYW1pbHk6IHZhcigtLXN1Ym1pdC0tZm9udC1mYW1pbHkpO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UsIGNvbG9yIDAuM3MgZWFzZTtcblxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi5jb250ZW50LXdyYXAgLndwLWJsb2NrLWNvdmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIC53cC1ibG9jay1jb3Zlcl9faW1hZ2UtYmFja2dyb3VuZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn0iLCIud3AtYmxvY2stY29sdW1ucy5pcy1sYXlvdXQtZmxleCB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAkY29udGVudC1icCkge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50O1xuICAgIGdhcDogJHdyYXBwZXItcGFkZGluZztcblxuICAgID4qIHtcbiAgICAgIGZsZXgtYmFzaXM6IDEwMCUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn0iLCIud3AtYmxvY2stbWVkaWEtdGV4dC5pcy1zdGFja2VkLW9uLW1vYmlsZSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAkY29udGVudC1icCkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEuNXJlbTtcblxuICAgIC8vIC53cC1ibG9jay1tZWRpYS10ZXh0X19jb250ZW50IHtcbiAgICAvLyAgIHBhZGRpbmctaW5saW5lOiAwO1xuICAgIC8vIH1cbiAgfVxuXG4gICYuaGFzLW1lZGlhLW9uLXRoZS1yaWdodCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRjb250ZW50LWJwKSB7XG4gICAgICAud3AtYmxvY2stbWVkaWEtdGV4dF9fY29udGVudCB7XG4gICAgICAgIG9yZGVyOiAyO1xuICAgICAgfVxuXG4gICAgICAud3AtYmxvY2stbWVkaWEtdGV4dF9fbWVkaWEge1xuICAgICAgICBvcmRlcjogMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG4ud3AtYmxvY2stbWVkaWEtdGV4dC5pcy1pbWFnZS1maWxsIHtcbiAgLndwLWJsb2NrLW1lZGlhLXRleHRfX21lZGlhIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGNvbnRlbnQtYnApIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgfVxuICB9XG5cbiAgLndwLWJsb2NrLW1lZGlhLXRleHRfX2NvbnRlbnQge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkY29udGVudC1icCkge1xuICAgICAgbWFyZ2luLWJsb2NrOiAxcmVtO1xuICAgIH1cbiAgfVxufSIsImJvZHkge1xuICAvLyBhZGQgYnV0dG9uIHN0eWxlc1xuICAtLWVoZC1idXR0b24tYmFja2dyb3VuZDogdmFyKC0tdGhlbWUtY29sb3ItYWNjZW50KTtcbiAgLS1laGQtYnV0dG9uLXRleHQ6IHZhcigtLWNvbG9yLXJlZCk7XG4gIC0tZWhkLWJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiB2YXIoLS10aGVtZS1jb2xvci1hY2NlbnQtLWNvbnRyYXN0KTtcbiAgLS1laGQtYnV0dG9uLXRleHQtaG92ZXI6IHZhcigtLWNvbG9yLXJlZCk7XG5cbiAgLmhhcy1iYWNrZ3JvdW5kIHtcblxuICAgIC8vIGFkZCBidXR0b24gc3R5bGVzIGZvciBlYWNoIGJhY2tncm91bmQgeW91IG5lZWRcbiAgICAmLmhhcy1saWdodC1iYWNrZ3JvdW5kLWNvbG9yIHtcbiAgICAgIC0tZWhkLWJ1dHRvbi1iYWNrZ3JvdW5kOiB2YXIoLS10aGVtZS1jb2xvci1iZyk7XG4gICAgICAtLWVoZC1idXR0b24tdGV4dDogdmFyKC0tdGhlbWUtY29sb3ItYWNjZW50KTtcbiAgICAgIC0tZWhkLWJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiB2YXIoLS10aGVtZS1jb2xvci1iZy0tY29udHJhc3QpO1xuICAgICAgLS1laGQtYnV0dG9uLXRleHQtaG92ZXI6IHZhcigtLXRoZW1lLWNvbG9yLWFjY2VudCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBiYXNlLWJ1dHRvbiB7XG4gIGJvcmRlcjogbm9uZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAvLyBiYWNrZ3JvdW5kOiB2YXIoLS1laGQtYnV0dG9uLWJhY2tncm91bmQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9idXR0b24tYmcuc3ZnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGNvbG9yOiB2YXIoLS1laGQtYnV0dG9uLXRleHQpO1xuICBmb250LWZhbWlseTogdmFyKC0td3AtLXByZXNldC0tZm9udC1mYW1pbHktLWhlYWRpbmcpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAwLjdlbSAxZW07XG4gIG9wYWNpdHk6IDE7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgY29sb3IgMC4zcyBlYXNlO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLCA0cHgpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDAuODtcbiAgICAvLyBiYWNrZ3JvdW5kOiB2YXIoLS1laGQtYnV0dG9uLWJhY2tncm91bmQtaG92ZXIpO1xuICAgIGNvbG9yOiB2YXIoLS1laGQtYnV0dG9uLXRleHQtaG92ZXIpO1xuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpdW0pIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cblxuQG1peGluIHNlY29uZGFyeS1idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWVoZC1idXR0b24tYmFja2dyb3VuZCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZWhkLWJ1dHRvbi1iYWNrZ3JvdW5kKTtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1laGQtYnV0dG9uLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1laGQtYnV0dG9uLXRleHQpO1xuICB9XG59XG5cblxuLndwLWJsb2NrLWJ1dHRvbiB7XG4gIC53cC1ibG9jay1idXR0b25fX2xpbmsge1xuICAgIEBpbmNsdWRlIGJhc2UtYnV0dG9uO1xuICB9XG5cbiAgJi5pcy1zdHlsZS1vdXRsaW5lIHtcbiAgICAud3AtYmxvY2stYnV0dG9uX19saW5rIHtcbiAgICAgIEBpbmNsdWRlIHNlY29uZGFyeS1idXR0b247XG4gICAgfVxuICB9XG59XG5cbi5laGQtYnV0dG9uIHtcbiAgQGluY2x1ZGUgYmFzZS1idXR0b247XG5cbiAgJi5zZWNvbmRhcnktYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBzZWNvbmRhcnktYnV0dG9uO1xuICB9XG59Il19 */
