/*!
Theme Name: Daniel J Roberts
Theme URI: https://www.danieljroberts.co.uk
Description: A bespoke theme designed and developed for Daniel J Roberts, based on the Underdog Boilerplate.
Author: Underdog Design
Author URI: https://www.underdogdesign.co.uk
Tags: light, responsive-layout
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ud
Domain Path: /languages/

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.

underdog Boilerplate is based on Underscores http://underscores.me/, (C) 2012-2014 Automattic, Inc.

Resetting and rebuilding styles have been helped along thanks to the fine work of
Eric Meyer http://meyerweb.com/eric/tools/css/reset/index.html
along with Nicolas Gallagher and Jonathan Neal http://necolas.github.com/normalize.css/
and Blueprint http://www.blueprintcss.org/

Do not remove the below styles. Needed to pass the 'theme check'.*/
.sticky,
.gallery-caption,
.bypostauthor {
  text-align: left;
}

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS
----------------------------------------------------------------
1.0 - Global
2.0 - Modules
3.0 - Theme
4.0 - Packages
--------------------------------------------------------------*/
/*--------------------------------------------------------------
1.0 Global
--------------------------------------------------------------*/
/* Mixins */
/* Global Styles */
:root {
  --bgcol: "";
  --bgimg: "";
}

/* Reset */
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
font,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td {
  border: 0;
  font-family: inherit;
  font-size: 100%;
  font-style: inherit;
  font-weight: inherit;
  margin: 0;
  outline: 0;
  padding: 0;
  vertical-align: baseline;
}

html {
  box-sizing: border-box;
  height: 100%;
  font-size: 100%;
  text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

*,
*:before,
*:after {
  box-sizing: inherit;
  padding: 0;
  margin: 0;
}

.js-loading *,
.js-loading *:before,
.js-loading *:after {
  animation-play-state: paused !important;
}

body {
  height: 100%;
  font-family: "Montserrat", Helvetica, Arial, sans-serif;
  font-size: 0.875rem;
  line-height: 1.8;
  color: #0b1b26;
  background: #ffffff;
}

img {
  display: block;
  vertical-align: middle;
  max-width: 100%;
  height: auto;
  border: 0;
  -ms-interpolation-mode: bicubic;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
nav,
section {
  display: block;
}

ol,
ul {
  list-style: none;
}

table {
  border-collapse: separate;
  border-spacing: 0;
}

caption,
th,
td {
  font-weight: normal;
  text-align: left;
}

blockquote:before, blockquote:after,
q:before,
q:after {
  content: "";
}

blockquote,
q {
  quotes: "" "";
}

/* Clearings */
.wrapper:before, .wrapper:after,
.clear:before,
.clear:after,
.entry-content:before,
.entry-content:after,
.comment-content:before,
.comment-content:after,
.site-header:before,
.site-header:after,
.site-content:before,
.site-content:after,
.site-footer:before,
.site-footer:after,
.clearfix:before,
.clearfix:after {
  content: "";
  display: table;
}

.wrapper:before, .wrapper:after,
.clear:before,
.clear:after,
.entry-content:before,
.entry-content:after,
.comment-content:before,
.comment-content:after,
.site-header:before,
.site-header:after,
.site-content:before,
.site-content:after,
.site-footer:before,
.site-footer:after,
.clearfix:before,
.clearfix:after {
  clear: both;
}

/* Content */
.byline,
.updated {
  display: none;
}

.single .byline,
.group-blog .byline {
  display: inline;
}

.entry-content ul {
  font-weight: 500;
}
.entry-content ul li {
  list-style: disc;
  margin-bottom: 8px;
}
.entry-content ul:last-child {
  margin-bottom: 0;
}
.entry-content ol {
  list-style: none;
  counter-reset: rhfc-counter;
  margin: 0;
  padding-bottom: 16px;
}
.entry-content ol li {
  list-style: none;
  counter-increment: rhfc-counter;
  padding-left: 48px;
  margin-bottom: 16px;
}
.entry-content ol li::before {
  content: counter(rhfc-counter);
  border-radius: 100%;
  border: 1px solid #0b1b26;
  text-align: center;
  font-size: 18px;
  font-weight: bold;
  color: #fff;
  margin-right: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  min-width: 32px;
  height: 32px;
  position: absolute;
  left: 0;
}

/* Asides */
.blog .format-aside .entry-title,
.archive .format-aside .entry-title {
  display: none;
}

/* Comments */
.comment-content a {
  word-wrap: break-word;
}

/* Media */
.page-content img.wp-smiley,
.entry-content img.wp-smiley,
.comment-content img.wp-smiley {
  border: none;
  margin-bottom: 0;
  margin-top: 0;
  padding: 0;
}

/* Make sure embeds and iframes fit their containers */
embed,
iframe,
object {
  max-width: 100%;
}

/* Screen Reader Text */
.srt,
.screen-reader-text {
  position: absolute !important;
  left: -999em;
}

/* Alignment */
.alignleft {
  float: left;
}

.alignright {
  float: right;
}

.aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

blockquote.alignleft,
figure.wp-caption.alignleft,
img.alignleft {
  margin: 7px 24px 7px 0;
}

.wp-caption.alignleft {
  margin: 7px 14px 7px 0;
}

blockquote.alignright,
figure.wp-caption.alignright,
img.alignright {
  margin: 7px 0 7px 24px;
}

.wp-caption.alignright {
  margin: 7px 0 7px 14px;
}

blockquote.aligncenter,
img.aligncenter,
.wp-caption.aligncenter {
  margin-top: 7px;
  margin-bottom: 7px;
}

.site-content blockquote.alignleft,
.site-content blockquote.alignright {
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  padding-top: 17px;
  width: 50%;
}

.site-content blockquote.alignleft p,
.site-content blockquote.alignright p {
  margin-bottom: 17px;
}

.wp-caption {
  margin-bottom: 24px;
}

.wp-caption img[class*=wp-image-] {
  display: block;
  margin: 0;
}

.wp-caption {
  color: #767676;
}

.wp-caption-text {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  font-size: 12px;
  font-style: italic;
  line-height: 1.5;
  margin: 9px 0;
}

div.wp-caption .wp-caption-text {
  padding-right: 10px;
}

div.wp-caption.alignright img[class*=wp-image-],
div.wp-caption.alignright .wp-caption-text {
  padding-left: 10px;
  padding-right: 0;
}

.wp-smiley {
  border: 0;
  margin-bottom: 0;
  margin-top: 0;
  padding: 0;
}

/*  Captions */
.wp-caption {
  margin-bottom: 1.5em;
  max-width: 100%;
}

.wp-caption img[class*=wp-image-] {
  display: block;
  margin: 0 auto;
}

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

.wp-caption .wp-caption-text {
  margin: 0.8075em 0;
}

/* Forms */
input::-moz-placeholder,
textarea::-moz-placeholder,
select::-moz-placeholder {
  color: currentColor;
}

/* Firefox 19+ */
input:-moz-placeholder,
textarea:-moz-placeholder,
select:-moz-placeholder {
  color: currentColor;
}

/* Firefox 18- */
input:-ms-input-placeholder,
textarea:-ms-input-placeholder,
select:-ms-input-placeholder {
  color: currentColor;
}

/* IE */
input::-webkit-input-placeholder,
select::-webkit-input-placeholder {
  color: currentColor;
}

textarea::-webkit-input-placeholder {
  color: currentColor;
}

/* Forms */
button,
input,
select,
textarea {
  font-size: 14px;
  margin: 0;
  vertical-align: baseline;
  font-family: "Montserrat", Helvetica, Arial, sans-serif;
  line-height: inherit;
}

select {
  border: 0;
  height: 52px;
  border-radius: 5px;
  padding: 0 16px;
}

button,
input[type=button],
input[type=reset],
input[type=submit] {
  border: 0;
  cursor: pointer;
  -webkit-appearance: button;
  padding: 5px 32px;
  outline: none;
}

input[type=checkbox],
input[type=radio] {
  padding: 0;
}

input[type=search] {
  -webkit-appearance: textfield;
  /*-webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;*/
}

input[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

input[type=text],
input[type=email],
input[type=url],
input[type=tel],
input[type=password],
input[type=search],
textarea {
  color: #0b1b26;
  border: 0;
  background: #ffffff;
  border-radius: 6px;
  width: 100%;
}

input[type=text]:focus,
input[type=email]:focus,
input[type=url]:focus,
input[type=password]:focus,
input[type=search]:focus,
textarea:focus {
  color: #0b1b26;
  outline: 0;
}

input[type=text],
input[type=email],
input[type=url],
input[type=tel],
input[type=password],
input[type=search] {
  padding: 0 16px;
  height: 52px;
}

textarea {
  overflow: auto;
  padding: 16px;
  vertical-align: top;
  width: 100%;
}

input[type=file] {
  max-width: 100%;
}

/* Widget */
.widget {
  margin: 0 0 1.5em;
}

.widget select {
  max-width: 100%;
}

.widget_search .search-submit {
  display: none;
}

a {
  color: #4b7579;
  text-decoration: none;
  background: transparent;
  cursor: pointer;
  font-weight: 500;
}
a:hover, a:focus, a:active {
  outline: 0;
  text-decoration: underline;
}

p {
  margin-bottom: 2rem;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.9;
}
@media screen and (min-width: 768px) {
  p {
    font-size: 14px;
    line-height: 2.3;
  }
}

.p-small {
  font-size: 12px;
  line-height: 1.4;
  margin-bottom: 32px;
}

.preheading {
  margin-bottom: 0;
  font-size: 12px;
  line-height: 1.4;
  text-transform: uppercase;
  font-weight: 800;
}
@media screen and (min-width: 768px) {
  .preheading {
    font-size: 14px;
    line-height: 1.5;
  }
}

h1:not(.fz-hero),
.h1 {
  font-family: "Forum", Georgia, serif;
  font-size: 28px;
  line-height: 1;
  margin-bottom: 1.5rem;
  position: relative;
}
@media screen and (min-width: 1024px) {
  h1:not(.fz-hero),
.h1 {
    font-size: 48px;
    line-height: 1.2;
  }
}

h2,
.h2 {
  font-family: "Forum", Georgia, serif;
  font-size: 21px;
  line-height: 1.5;
  margin-bottom: 1.5rem;
}
@media screen and (min-width: 768px) {
  h2,
.h2 {
    font-size: 28px;
    line-height: 1.5;
  }
}

h3,
.h3 {
  font-size: 12px;
  line-height: 1.4;
  text-transform: uppercase;
  font-weight: 600;
  letter-spacing: 1.4px;
  margin-bottom: 1rem;
}
@media screen and (min-width: 768px) {
  h3,
.h3 {
    font-size: 14px;
    line-height: 1.5;
  }
}

ul,
ol {
  margin-bottom: 2rem;
  margin-left: 32px;
}
ul ul,
ul ol,
ol ul,
ol ol {
  margin: 0 2rem;
}

b,
strong {
  font-weight: bold;
}

dfn,
cite,
em,
i {
  font-style: italic;
}

blockquote {
  margin: 0 1.5em;
}

address {
  margin: 0 0 1.5em;
}

pre {
  background: #eee;
  font-family: "Courier 10 Pitch", Courier, monospace;
  line-height: 1.6;
  margin-bottom: 1.6em;
  max-width: 100%;
  overflow: auto;
  padding: 1.6em;
}

code,
kbd,
tt,
var {
  font: 15px Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}

abbr,
acronym {
  border-bottom: 1px dotted #666;
  cursor: help;
}

mark,
ins {
  background: #fff9c0;
  text-decoration: none;
}

sup,
sub {
  font-size: 75%;
  height: 0;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sup {
  bottom: 1ex;
}

sub {
  top: 0.5ex;
}

small {
  font-size: 75%;
}

big {
  font-size: 125%;
}

/*!
Animate.css - http://daneden.me/animate
Licensed under the MIT license - http://opensource.org/licenses/MIT
Copyright (c) 2014 Daniel Eden
*/
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.fadeIn {
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
}

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

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

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

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

@-webkit-keyframes fadeInRightVSmall {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(3%, 0, 0);
    transform: translate3d(3%, 0, 0);
  }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}
@keyframes fadeInRightVSmall {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(3%, 0, 0);
    transform: translate3d(3%, 0, 0);
  }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}
@-webkit-keyframes fadeInRightSmall {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(10%, 0, 0);
    transform: translate3d(10%, 0, 0);
  }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}
@keyframes fadeInRightSmall {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(10%, 0, 0);
    transform: translate3d(10%, 0, 0);
  }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}
@-webkit-keyframes fadeInRight {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}
@keyframes fadeInRight {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}
.fadeInRight {
  -webkit-animation-name: fadeInRight;
  animation-name: fadeInRight;
}

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

@-webkit-keyframes fadeInUp {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}
@keyframes fadeInUp {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}
@-webkit-keyframes fadeInUpSmall {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 10%, 0);
    transform: translate3d(0, 10%, 0);
  }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}
@keyframes fadeInUpSmall {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 10%, 0);
    transform: translate3d(0, 10%, 0);
  }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}
@keyframes welcomeIntro {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 10%, 0) rotate(90deg);
    transform: translate3d(0, 10%, 0) rotate(90deg);
  }
  100% {
    opacity: 0.6;
    -webkit-transform: translate3d(0, 0, 0) rotate(90deg);
    transform: translate3d(0, 0, 0) rotate(90deg);
  }
}
@-webkit-keyframes fadeInUpVSmall {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 5%, 0);
    transform: translate3d(0, 5%, 0);
  }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}
@keyframes fadeInUpVSmall {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 5%, 0);
    transform: translate3d(0, 5%, 0);
  }
  100% {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}
.fadeInUp {
  -webkit-animation-name: fadeInUp;
  animation-name: fadeInUp;
}

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

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

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

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

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

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

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

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

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

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

@keyframes sliderOval1 {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(10%, 5%, 0) scale(0.95) rotate(0deg);
    transform: translate3d(10%, 5%, 0) scale(0.95) rotate(0deg);
  }
  100% {
    opacity: 0.9;
    -webkit-transform: translate3d(0, 0, 0) scale(1) rotate(16deg);
    transform: translate3d(0, 0, 0) scale(1) rotate(16deg);
  }
}
@keyframes sliderOval2 {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-5%, -5%, 0) scale(0.95) rotate(0deg);
    transform: translate3d(-5%, -5%, 0) scale(0.95) rotate(0deg);
  }
  100% {
    opacity: 0.2;
    -webkit-transform: translate3d(0, 0, 0) scale(1) rotate(16deg);
    transform: transtranslate3d(0, 0, 0) scale(1) rotate(16deg);
  }
}
/*--------------------------------------------------------------
2.0 Theme
--------------------------------------------------------------*/
@view-transition {
  navigation: auto;
}
::view-transition-new(root) {
  animation: fade 1s ease both;
}

@keyframes fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.wrap {
  max-width: 1256px;
  margin: 0 auto;
  padding: 0 32px;
  width: 100%;
}
.wrap--narrow {
  max-width: 720px;
  padding: 0 32px;
}
@media only screen and (min-width: 1600px) {
  .wrap {
    max-width: 1440px;
  }
  .wrap--narrow {
    max-width: 850px;
  }
}

.site-main {
  position: relative;
  z-index: 2;
}
.single-case-studies .site-main::before {
  position: absolute;
  top: 100px;
  bottom: 0;
  left: 0;
  right: 0;
  content: "";
  background: #f7eada;
}
@media only screen and (min-width: 768px) {
  .single-case-studies .site-main::before {
    top: 300px;
  }
}

section {
  padding: 32px 0;
  position: relative;
}
section:has(+ .client-stories-slider) {
  padding-bottom: 96px;
}
@media only screen and (min-width: 1024px) {
  section {
    padding: 64px 0;
  }
  section:has(+ .client-stories-slider) {
    padding-bottom: 128px;
  }
}

/* Helper styles */
.align-left {
  text-align: left;
}

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

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

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

.float-left {
  float: left !important;
}

.float-right {
  float: right !important;
}

.clearfix {
  *zoom: 1;
}

.clearfix:before,
.clearfix:after {
  content: " ";
  display: table;
}

.clearfix:after {
  clear: both;
}

.valign--top {
  align-items: flex-start;
}
.valign--middle {
  align-items: center;
}
.valign--bottom {
  align-items: flex-end;
}

.c--none {
  color: "none" !important;
}

.c--white {
  color: #ffffff !important;
}

.c--black {
  color: #0b1b26 !important;
}

.c--teal {
  color: #4b7579 !important;
}

.c--dnavy {
  color: #153440 !important;
}

.c--beige {
  color: #f7eada !important;
}

.bg--none {
  background-color: "none";
}
.bg--white {
  background-color: #ffffff;
  color: #0b1b26;
}
.bg--white .icon-bullet-list__icon {
  fill: #0b1b26;
}
.bg--white > h1,
.bg--white > .h1,
.bg--white > h2,
.bg--white > .h2,
.bg--white > h3,
.bg--white > .h3 {
  color: #0b1b26;
}
.bg--black {
  background-color: #0b1b26;
  color: #fff;
}
.bg--black a:not([class*=button]) {
  color: #4b7579;
}
.bg--black .icon-bullet-list__icon {
  fill: #fff;
}
.bg--teal {
  background-color: #4b7579;
  color: #fff;
}
.bg--teal a:not([class*=button]) {
  color: #4b7579;
}
.bg--teal .icon-bullet-list__icon {
  fill: #fff;
}
.bg--teal a:not([class*=button]) {
  color: #fff;
}
.bg--teal .section-header__preheading {
  color: #0b1b26;
}
.bg--teal > h1,
.bg--teal .h1,
.bg--teal > h2,
.bg--teal > .h2 {
  color: #f7eada;
}
.bg--dnavy {
  background-color: #153440;
  color: #fff;
}
.bg--dnavy a:not([class*=button]) {
  color: #4b7579;
}
.bg--dnavy .icon-bullet-list__icon {
  fill: #fff;
}
.bg--beige {
  background-color: #f7eada;
  color: #0b1b26;
}
.bg--beige .icon-bullet-list__icon {
  fill: #0b1b26;
}
.bg--beige > h1,
.bg--beige > .h1,
.bg--beige > h2,
.bg--beige > .h2,
.bg--beige > h3,
.bg--beige > .h3 {
  color: #0b1b26;
}

.has-bg-img {
  color: #fff;
}

.f--none {
  fill: "none";
}

.f--white {
  fill: #ffffff;
}

.f--black {
  fill: #0b1b26;
}

.f--teal {
  fill: #4b7579;
}

.f--dnavy {
  fill: #153440;
}

.f--beige {
  fill: #f7eada;
}

.ff {
  font-family: "Montserrat", Helvetica, Arial, sans-serif;
}

.ff2 {
  font-family: "Forum", Georgia, serif;
}

.m-none {
  margin: 0 !important;
}

.mb-none {
  margin-bottom: 0 !important;
}

.mb-half {
  margin-bottom: 16px !important;
  display: block;
}

.mb-qtr {
  margin-bottom: 8px !important;
}

.mb {
  margin-bottom: 32px !important;
}

.mb-2x {
  margin-bottom: 64px !important;
}

.mt-half {
  margin-top: 16px !important;
}

.mt {
  margin-top: 32px !important;
}

.mt-2x {
  margin-top: 64px !important;
}

.p-none {
  padding: 0 !important;
}

.p-all {
  padding: 32px !important;
}

.p-half {
  padding: 16px !important;
}

.pt-none {
  padding-top: 0 !important;
}

.pt-half {
  padding-top: 16px !important;
}

.pt {
  padding-top: 32px !important;
}

.pt-2x {
  padding-top: 64px !important;
}

.pt-4x {
  padding-top: 128px !important;
}

.pb-none {
  padding-bottom: 0 !important;
}

.pb-half {
  padding-bottom: 16px !important;
}

.pb-half {
  padding-bottom: 16px !important;
}

.pb {
  padding-bottom: 32px !important;
}

.pb-2x {
  padding-bottom: 64px !important;
}

.pb-4x {
  padding-bottom: 128px !important;
}

.pl {
  padding-left: 32px !important;
}

.pl-2x {
  padding-left: 64px !important;
}

.pl-4x {
  padding-left: 128px !important;
}

.mob-only {
  display: none;
}
@media only screen and (max-width: 1023px) {
  .mob-only {
    display: block;
  }
}

@media only screen and (max-width: 1023px) {
  .dt-only {
    display: none !important;
  }
}

@media only screen and (min-width: 768px) {
  .to-tab {
    display: none !important;
  }
}

@media only screen and (max-width: 767px) {
  .from-tab {
    display: none !important;
  }
}
@media only screen and (min-width: 768px) {
  .from-tab {
    display: block !important;
  }
}

.db {
  display: block;
}

.dib {
  display: inline-block;
}

.df {
  display: flex;
}
.df--col {
  flex-direction: column;
}

.has-icon {
  display: flex;
  gap: 10px;
  align-items: center;
}
.has-icon svg {
  fill: currentColor;
}

.lh--normal {
  line-height: normal;
}

.tt-upper {
  text-transform: uppercase;
}

.overflow-h {
  overflow: hidden;
}

@media only screen and (max-width: 598px) {
  .order-1 {
    order: 1;
  }
}
@media only screen and (min-width: 599px) {
  .order-1-sm {
    order: 1;
  }
}

@media only screen and (max-width: 598px) {
  .order-2 {
    order: 2;
  }
}
@media only screen and (min-width: 599px) {
  .order-2-sm {
    order: 2;
  }
}

.posr {
  position: relative;
}

.image-as-bg {
  object-fit: cover;
  object-position: right;
  width: 100%;
  height: 100%;
}
.image-as-bg--half {
  width: 50%;
}

.image-contain {
  object-fit: contain;
  width: 100%;
  height: 100%;
}

.section-background {
  position: absolute;
  bottom: 0;
  top: 0;
  left: 0;
  right: 0;
}

.has-divider {
  position: relative;
}
.has-divider:before {
  width: 80%;
  max-width: 700px;
  height: 3px;
  content: "";
  display: block;
  border-radius: 10px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.has-divider.bg--white::before {
  background-color: #0b1b26;
}
.has-divider.bg--black::before {
  background-color: #fff;
}
.has-divider.bg--teal::before {
  background-color: #fff;
}
.has-divider.bg--dnavy::before {
  background-color: #fff;
}
.has-divider.bg--beige::before {
  background-color: #0b1b26;
}
.has-divider.bg--none:before {
  background-color: #0b1b26;
}

.button-set {
  display: flex;
  gap: 16px;
  flex-direction: column;
}
@media only screen and (min-width: 599px) {
  .button-set {
    flex-direction: row;
  }
}

.tick-list {
  margin: 0;
}
.tick-list li {
  list-style: none !important;
  position: relative;
  padding-left: 32px;
  margin-bottom: 16px;
}
.tick-list li:before {
  content: "";
  width: 22px;
  height: 22px;
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  top: 4px;
  left: 0;
}
.dropdown-list__item .tick-list li:before {
  background-image: url("./dist/img/svg/oval-tick-mblue.svg");
}

.cross-list {
  margin: 0;
}
.cross-list li {
  list-style: none !important;
  position: relative;
  padding-left: 32px;
  margin-bottom: 16px;
}
.cross-list li:before {
  content: "";
  width: 22px;
  height: 22px;
  background-size: contain;
  background-image: url("./dist/img/svg/oval-cross.svg");
  background-repeat: no-repeat;
  position: absolute;
  top: 4px;
  left: 0;
}

/*--------------------------------------------------------------
3.0 Modules
--------------------------------------------------------------*/
.main-navigation {
  clear: both;
  display: block;
  overflow-y: scroll;
  width: 100%;
}
.no-js .main-navigation {
  display: none;
}
.main-navigation ul {
  list-style: none;
  margin: 0;
  padding-left: 0;
}
.main-navigation li {
  padding: 10px 0;
}
.main-navigation li:hover:before {
  opacity: 0.3;
}
.main-navigation li:hover > a {
  transform: translateX(5px);
  transition-delay: 0s;
  color: #f7eada;
}
.main-navigation li .main-navigation__submenu-toggle:hover:before {
  opacity: 1;
}
.main-navigation li .main-navigation__submenu-toggle:hover .main-navigation__submenu-toggle__icon {
  fill: #f7eada;
}
.main-navigation a {
  display: block;
  font-size: 28px;
  line-height: 1.5;
  color: #fff;
  font-family: "Forum", Georgia, serif;
  transition: transform 0.2s cubic-bezier(0.46, 0.96, 0.43, 0.94) 0.2s, color 0.2s cubic-bezier(0.46, 0.96, 0.43, 0.94) 0.2s;
  width: calc(100% - 30px);
  text-decoration: none;
  position: relative;
}
@media screen and (min-width: 768px) {
  .main-navigation a {
    font-size: 36px;
    line-height: 1.2;
  }
}
@media screen and (min-width: 1024px) {
  .main-navigation a {
    font-size: 42px;
    line-height: 1.2;
  }
}
.main-navigation__submenu-toggle {
  display: none;
  position: absolute;
  right: 16px;
  top: 2px;
  width: 32px;
  height: 32px;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  line-height: 1;
  transition: transform 0.3s;
  text-align: center;
  z-index: 10;
}
.main-navigation__submenu-toggle:before {
  content: "";
  width: 38.4px;
  height: 38.4px;
  transform: rotate(45deg);
  background-color: #ffffff;
  opacity: 0.1;
  transition: opacity 0.2s;
  position: absolute;
  display: block;
}
@media only screen and (min-width: 599px) {
  .main-navigation__submenu-toggle {
    right: -64px;
    top: 7px;
  }
}
@media only screen and (min-width: 768px) {
  .main-navigation__submenu-toggle {
    right: -80px;
  }
}
@media only screen and (min-width: 1024px) {
  .main-navigation__submenu-toggle {
    top: 11px;
  }
}
.main-navigation__submenu-toggle__icon {
  fill: #ffffff;
  position: absolute;
  width: 24px;
  height: 24px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  transition: fill 0.2s;
}

.menu-main-navigation-container > ul li {
  flex: 1;
  --navItemBg: url("");
}
.menu-main-navigation-container > ul li:before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  content: "";
  background-image: var(--navItemBg);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  transition: opacity 0.5s;
  opacity: 0;
  pointer-events: none;
}
.menu-main-navigation-container > ul li:after {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1;
  clip-path: inset(30px, 30px, 30px, 30px);
  transform: rotate(45deg);
  background: #0b1b26;
}
.menu-main-navigation-container > ul li.menu-item-has-children > a {
  position: relative;
  width: 100%;
}
@media only screen and (min-width: 599px) {
  .menu-main-navigation-container > ul li.menu-item-has-children > a {
    width: fit-content;
  }
}
.menu-main-navigation-container > ul li.menu-item-has-children > a .main-navigation__submenu-toggle {
  display: flex;
}
.no-flexbox .menu-main-navigation-container > ul li {
  float: left;
}
.menu-main-navigation-container > ul li > a {
  display: block;
}
.no-flexbox .menu-main-navigation-container > ul li > a {
  padding: 16px 64px;
}

/* Cookies Table */
#cookies-table {
  border-collapse: collapse;
  border: 1px solid #e7e7e7;
  border-top: 0;
  border-left: 0;
  text-align: left;
}

#cookies-table td, #cookies-table th {
  border-top: 1px solid #e7e7e7;
  border-left: 1px solid #e7e7e7;
  padding: 5px;
}

#cookies-table thead th {
  vertical-align: middle;
  background: #f7f7f7;
}

#cookies-table tbody td {
  vertical-align: top;
}

.button {
  -webkit-appearance: none;
  display: inline-block;
  text-align: center;
  padding: 10.6666666667px 24px;
  text-decoration: none;
  background: #4b7579;
  border: 2px solid #4b7579;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.9;
  line-height: 1.2 !important;
  border-radius: 100px;
  color: #fff;
  transition: background-color 0.2s, border-color 0.2s;
  position: relative;
  max-width: 100%;
  cursor: pointer;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .button {
    font-size: 14px;
    line-height: 2.3;
  }
}
.button:hover {
  background: #37575a;
  border-color: #37575a;
  text-decoration: none;
}
.button:focus, .button:active {
  text-decoration: none;
}
.button--solid--none {
  -webkit-appearance: none;
  display: inline-block;
  text-align: center;
  padding: 10.6666666667px 24px;
  text-decoration: none;
  background: "none";
  border: 2px solid "none";
  font-weight: 500;
  font-size: 14px;
  line-height: 1.9;
  line-height: 1.2 !important;
  border-radius: 100px;
  color: #fff;
  transition: background-color 0.2s, border-color 0.2s;
  position: relative;
  max-width: 100%;
  cursor: pointer;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .button--solid--none {
    font-size: 14px;
    line-height: 2.3;
  }
}
.button--ghost--none {
  -webkit-appearance: none;
  display: inline-block;
  text-align: center;
  padding: 10.6666666667px 24px;
  text-decoration: none;
  background: none;
  border: 2px solid "none";
  font-weight: 500;
  font-size: 14px;
  line-height: 1.9;
  line-height: 1.2 !important;
  border-radius: 100px;
  color: "none";
  transition: background-color 0.2s, border-color 0.2s;
  position: relative;
  max-width: 100%;
  cursor: pointer;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .button--ghost--none {
    font-size: 14px;
    line-height: 2.3;
  }
}
.button--ghost--none:hover {
  background: "none";
  color: #fff;
  border-color: "none";
  text-decoration: none;
}
.button--white {
  -webkit-appearance: none;
  display: inline-block;
  text-align: center;
  padding: 10.6666666667px 24px;
  text-decoration: none;
  background: #ffffff;
  border: 2px solid #ffffff;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.9;
  line-height: 1.2 !important;
  border-radius: 100px;
  color: #0b1b26;
  transition: background-color 0.2s, border-color 0.2s;
  position: relative;
  max-width: 100%;
  cursor: pointer;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .button--white {
    font-size: 14px;
    line-height: 2.3;
  }
}
.button--white:hover {
  background: #e6e6e6;
  border-color: #e6e6e6;
  text-decoration: none;
}
.button--white:focus, .button--white:active {
  text-decoration: none;
}
.button--solid--white {
  -webkit-appearance: none;
  display: inline-block;
  text-align: center;
  padding: 10.6666666667px 24px;
  text-decoration: none;
  background: #ffffff;
  border: 2px solid #ffffff;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.9;
  line-height: 1.2 !important;
  border-radius: 100px;
  color: #fff;
  transition: background-color 0.2s, border-color 0.2s;
  position: relative;
  max-width: 100%;
  cursor: pointer;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .button--solid--white {
    font-size: 14px;
    line-height: 2.3;
  }
}
.button--solid--white:hover {
  background: #e6e6e6;
  border-color: #e6e6e6;
  text-decoration: none;
}
.button--solid--white:focus, .button--solid--white:active {
  text-decoration: none;
}
.button--ghost--white {
  -webkit-appearance: none;
  display: inline-block;
  text-align: center;
  padding: 10.6666666667px 24px;
  text-decoration: none;
  background: none;
  border: 2px solid #ffffff;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.9;
  line-height: 1.2 !important;
  border-radius: 100px;
  color: #ffffff;
  transition: background-color 0.2s, border-color 0.2s;
  position: relative;
  max-width: 100%;
  cursor: pointer;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .button--ghost--white {
    font-size: 14px;
    line-height: 2.3;
  }
}
.button--ghost--white:hover {
  background: #ffffff;
  color: #fff;
  border-color: #ffffff;
  text-decoration: none;
}
.button--black {
  -webkit-appearance: none;
  display: inline-block;
  text-align: center;
  padding: 10.6666666667px 24px;
  text-decoration: none;
  background: #0b1b26;
  border: 2px solid #0b1b26;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.9;
  line-height: 1.2 !important;
  border-radius: 100px;
  color: #fff;
  transition: background-color 0.2s, border-color 0.2s;
  position: relative;
  max-width: 100%;
  cursor: pointer;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .button--black {
    font-size: 14px;
    line-height: 2.3;
  }
}
.button--black:hover {
  background: black;
  border-color: black;
  text-decoration: none;
}
.button--black:focus, .button--black:active {
  text-decoration: none;
}
.button--black:hover:not(.button--no-hover) {
  background-color: #4b7579;
  border-color: #4b7579;
  color: #ffffff;
}
.button--solid--black {
  -webkit-appearance: none;
  display: inline-block;
  text-align: center;
  padding: 10.6666666667px 24px;
  text-decoration: none;
  background: #0b1b26;
  border: 2px solid #0b1b26;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.9;
  line-height: 1.2 !important;
  border-radius: 100px;
  color: #fff;
  transition: background-color 0.2s, border-color 0.2s;
  position: relative;
  max-width: 100%;
  cursor: pointer;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .button--solid--black {
    font-size: 14px;
    line-height: 2.3;
  }
}
.button--solid--black:hover {
  background: black;
  border-color: black;
  text-decoration: none;
}
.button--solid--black:focus, .button--solid--black:active {
  text-decoration: none;
}
.button--ghost--black {
  -webkit-appearance: none;
  display: inline-block;
  text-align: center;
  padding: 10.6666666667px 24px;
  text-decoration: none;
  background: none;
  border: 2px solid #0b1b26;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.9;
  line-height: 1.2 !important;
  border-radius: 100px;
  color: #0b1b26;
  transition: background-color 0.2s, border-color 0.2s;
  position: relative;
  max-width: 100%;
  cursor: pointer;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .button--ghost--black {
    font-size: 14px;
    line-height: 2.3;
  }
}
.button--ghost--black:hover {
  background: #0b1b26;
  color: #fff;
  border-color: #0b1b26;
  text-decoration: none;
}
.button--teal {
  -webkit-appearance: none;
  display: inline-block;
  text-align: center;
  padding: 10.6666666667px 24px;
  text-decoration: none;
  background: #4b7579;
  border: 2px solid #4b7579;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.9;
  line-height: 1.2 !important;
  border-radius: 100px;
  color: #fff;
  transition: background-color 0.2s, border-color 0.2s;
  position: relative;
  max-width: 100%;
  cursor: pointer;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .button--teal {
    font-size: 14px;
    line-height: 2.3;
  }
}
.button--teal:hover {
  background: #37575a;
  border-color: #37575a;
  text-decoration: none;
}
.button--teal:focus, .button--teal:active {
  text-decoration: none;
}
.button--teal:hover:not(.button--no-hover) {
  background-color: #0b1b26;
  border-color: #0b1b26;
  color: #ffffff;
}
.button--solid--teal {
  -webkit-appearance: none;
  display: inline-block;
  text-align: center;
  padding: 10.6666666667px 24px;
  text-decoration: none;
  background: #4b7579;
  border: 2px solid #4b7579;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.9;
  line-height: 1.2 !important;
  border-radius: 100px;
  color: #fff;
  transition: background-color 0.2s, border-color 0.2s;
  position: relative;
  max-width: 100%;
  cursor: pointer;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .button--solid--teal {
    font-size: 14px;
    line-height: 2.3;
  }
}
.button--solid--teal:hover {
  background: #37575a;
  border-color: #37575a;
  text-decoration: none;
}
.button--solid--teal:focus, .button--solid--teal:active {
  text-decoration: none;
}
.button--ghost--teal {
  -webkit-appearance: none;
  display: inline-block;
  text-align: center;
  padding: 10.6666666667px 24px;
  text-decoration: none;
  background: none;
  border: 2px solid #4b7579;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.9;
  line-height: 1.2 !important;
  border-radius: 100px;
  color: #4b7579;
  transition: background-color 0.2s, border-color 0.2s;
  position: relative;
  max-width: 100%;
  cursor: pointer;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .button--ghost--teal {
    font-size: 14px;
    line-height: 2.3;
  }
}
.button--ghost--teal:hover {
  background: #4b7579;
  color: #fff;
  border-color: #4b7579;
  text-decoration: none;
}
.button--dnavy {
  -webkit-appearance: none;
  display: inline-block;
  text-align: center;
  padding: 10.6666666667px 24px;
  text-decoration: none;
  background: #153440;
  border: 2px solid #153440;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.9;
  line-height: 1.2 !important;
  border-radius: 100px;
  color: #fff;
  transition: background-color 0.2s, border-color 0.2s;
  position: relative;
  max-width: 100%;
  cursor: pointer;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .button--dnavy {
    font-size: 14px;
    line-height: 2.3;
  }
}
.button--dnavy:hover {
  background: #08151a;
  border-color: #08151a;
  text-decoration: none;
}
.button--dnavy:focus, .button--dnavy:active {
  text-decoration: none;
}
.button--solid--dnavy {
  -webkit-appearance: none;
  display: inline-block;
  text-align: center;
  padding: 10.6666666667px 24px;
  text-decoration: none;
  background: #153440;
  border: 2px solid #153440;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.9;
  line-height: 1.2 !important;
  border-radius: 100px;
  color: #fff;
  transition: background-color 0.2s, border-color 0.2s;
  position: relative;
  max-width: 100%;
  cursor: pointer;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .button--solid--dnavy {
    font-size: 14px;
    line-height: 2.3;
  }
}
.button--solid--dnavy:hover {
  background: #08151a;
  border-color: #08151a;
  text-decoration: none;
}
.button--solid--dnavy:focus, .button--solid--dnavy:active {
  text-decoration: none;
}
.button--ghost--dnavy {
  -webkit-appearance: none;
  display: inline-block;
  text-align: center;
  padding: 10.6666666667px 24px;
  text-decoration: none;
  background: none;
  border: 2px solid #153440;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.9;
  line-height: 1.2 !important;
  border-radius: 100px;
  color: #153440;
  transition: background-color 0.2s, border-color 0.2s;
  position: relative;
  max-width: 100%;
  cursor: pointer;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .button--ghost--dnavy {
    font-size: 14px;
    line-height: 2.3;
  }
}
.button--ghost--dnavy:hover {
  background: #153440;
  color: #fff;
  border-color: #153440;
  text-decoration: none;
}
.button--beige {
  -webkit-appearance: none;
  display: inline-block;
  text-align: center;
  padding: 10.6666666667px 24px;
  text-decoration: none;
  background: #f7eada;
  border: 2px solid #f7eada;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.9;
  line-height: 1.2 !important;
  border-radius: 100px;
  color: #0b1b26;
  transition: background-color 0.2s, border-color 0.2s;
  position: relative;
  max-width: 100%;
  cursor: pointer;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .button--beige {
    font-size: 14px;
    line-height: 2.3;
  }
}
.button--beige:hover {
  background: #eed2b0;
  border-color: #eed2b0;
  text-decoration: none;
}
.button--beige:focus, .button--beige:active {
  text-decoration: none;
}
.button--solid--beige {
  -webkit-appearance: none;
  display: inline-block;
  text-align: center;
  padding: 10.6666666667px 24px;
  text-decoration: none;
  background: #f7eada;
  border: 2px solid #f7eada;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.9;
  line-height: 1.2 !important;
  border-radius: 100px;
  color: #fff;
  transition: background-color 0.2s, border-color 0.2s;
  position: relative;
  max-width: 100%;
  cursor: pointer;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .button--solid--beige {
    font-size: 14px;
    line-height: 2.3;
  }
}
.button--solid--beige:hover {
  background: #eed2b0;
  border-color: #eed2b0;
  text-decoration: none;
}
.button--solid--beige:focus, .button--solid--beige:active {
  text-decoration: none;
}
.button--ghost--beige {
  -webkit-appearance: none;
  display: inline-block;
  text-align: center;
  padding: 10.6666666667px 24px;
  text-decoration: none;
  background: none;
  border: 2px solid #f7eada;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.9;
  line-height: 1.2 !important;
  border-radius: 100px;
  color: #f7eada;
  transition: background-color 0.2s, border-color 0.2s;
  position: relative;
  max-width: 100%;
  cursor: pointer;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .button--ghost--beige {
    font-size: 14px;
    line-height: 2.3;
  }
}
.button--ghost--beige:hover {
  background: #f7eada;
  color: #fff;
  border-color: #f7eada;
  text-decoration: none;
}
.button--has-icon {
  display: inline-flex;
}
.button--has-icon .button__label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.button--has-icon svg {
  fill: currentColor;
  transition: transform 0.3s, width 0.3s;
  width: 0;
  transform: scale(0);
}
.button--has-icon:hover {
  gap: 8px;
}
.button--has-icon:hover svg {
  transform: scale(1);
  width: 18px;
}
.button--has-icon--before {
  padding-left: 16px;
}
.button__icon {
  transition: fill 0.2s, transform 0.2s;
  width: 18px;
  height: 18px;
  fill: currentColor;
}
.button__icon--before {
  margin-right: 8px;
  margin-left: 0;
}
.button--big {
  padding: 16px 32px;
  width: 100%;
  font-size: 1.125rem;
}
.button--wide {
  padding: 16px 64px;
  font-size: 1.125rem;
}
.button__icon {
  transition: fill 0.2s;
  width: 18px;
  height: 18px;
  fill: currentColor;
}
.button__icon--before {
  margin-right: 8px;
}

.site-header {
  width: 100%;
  transition: background-color 0.2s;
  z-index: 3;
}
@media only screen and (min-width: 1024px) {
  .site-header {
    position: sticky;
    top: -44px;
  }
}
.site-header:before {
  position: absolute;
  top: 52px;
  bottom: 88px;
  height: 60px;
  left: 50%;
  transform: translateX(-50%);
  right: 0;
  content: "";
  display: block;
  background-color: transparent;
  transition: background-color 0.2s;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0);
  pointer-events: none;
  width: 98%;
  max-width: 1256px;
  border-radius: 100px;
}
@media only screen and (min-width: 1600px) {
  .site-header:before {
    max-width: 1440px;
  }
}
.site-header .wrap {
  position: relative;
  z-index: 2;
}
@media only screen and (min-width: 1024px) {
  .site-header[stuck] {
    z-index: 4;
  }
  .site-header[stuck]:before {
    pointer-events: auto;
    background-color: #fff;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
  }
  .site-header[stuck] .site-header__main {
    transform: translateY(-20px);
  }
  .site-header[stuck] .site-header__contact {
    transition: opacity 0.5s;
    opacity: 1;
    pointer-events: auto;
  }
}
.site-header__main {
  padding-top: 16px;
  transition: transform 0.1s;
  margin-bottom: 16px;
}
@media only screen and (min-width: 1024px) {
  .site-header__main {
    padding: 32px 0 16px 0;
    margin-bottom: 0;
  }
}
.site-header__main > .wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  row-gap: 16px;
}
@media only screen and (min-width: 1024px) {
  .site-header__main > .wrap {
    background: none;
    display: flex;
    justify-content: space-between;
    width: 100%;
    row-gap: 0;
  }
}
@media only screen and (max-width: 599px) {
  .site-header__button2 {
    display: none;
  }
}
.site-header__topbar-contact {
  color: #fff;
  text-transform: uppercase;
  text-align: center;
  align-items: center;
  display: flex;
  gap: 8px;
}
.site-header__topbar-contact a {
  color: #fff;
}
@media only screen and (min-width: 599px) {
  .site-header__topbar-contact {
    text-align: right;
  }
}
.site-header__contact {
  text-transform: uppercase;
  text-align: center;
  align-items: flex-start;
  display: flex;
  gap: 8px;
  opacity: 0;
  transition: opacity 0.2s;
  margin-top: 14px;
  display: none;
  pointer-events: none;
}
.site-header__contact a {
  letter-spacing: 2.5px;
  color: #0b1b26;
}
@media only screen and (min-width: 1024px) {
  .site-header__contact {
    display: flex;
  }
}
.site-header__topbar {
  background-color: #0b1b26;
  color: #fff;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 1.8px;
  padding: 8px 0;
}
@media only screen and (min-width: 1024px) {
  .site-header__topbar {
    letter-spacing: 2.5px;
  }
}
.site-header__topbar-inner {
  display: flex;
  justify-content: center;
}
@media only screen and (min-width: 768px) {
  .site-header__topbar-inner {
    justify-content: space-between;
  }
}
.site-header__strapline {
  display: none;
  font-size: 10px;
}
@media only screen and (min-width: 768px) {
  .site-header__strapline {
    display: block;
  }
}
@media only screen and (min-width: 1024px) {
  .site-header__strapline {
    font-size: 12px;
  }
}
.site-header__whatsapp {
  display: flex;
  align-items: center;
  gap: 8px;
}
.site-header__whatsapp img {
  width: 16px;
  height: 16px;
}

.site-footer {
  position: relative;
  z-index: 2;
}
.site-footer__bottom-bar {
  background-color: #0b1b26;
  padding: 8px;
}
.site-footer__bottom-bar .menu {
  display: flex;
  justify-content: center;
  margin: 0;
}
.site-footer__bottom-bar .menu a {
  color: #ffffff;
  transition: color 0.2s;
  font-weight: 500;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 2px;
}
.site-footer__bottom-bar .menu a:hover {
  text-decoration: none;
  color: #4b7579;
}
@media only screen and (min-width: 768px) {
  .site-footer__bottom-bar .menu {
    justify-content: space-between;
  }
}
.site-footer__address-text svg {
  margin-right: 6px;
}
.site-footer__main {
  padding: 50px 0 32px 0;
  position: relative;
}
@media only screen and (min-width: 599px) {
  .site-footer__main {
    padding: 64px 0;
  }
}
.site-footer__main .wrap:first-child {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  gap: 32px;
}
@media only screen and (min-width: 599px) {
  .site-footer__main .wrap:first-child {
    text-align: left;
    gap: 0;
    flex-direction: row;
    justify-content: space-between;
    padding-bottom: 32px;
  }
}
.site-footer__main .wrap:last-child {
  border-top: 1px solid #4b7579;
}
.site-footer__logo {
  margin-bottom: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.site-footer__copyright {
  margin-bottom: 0;
  margin-top: 64px;
  text-align: center;
  padding: 16px 0;
}
.site-footer__copyright a {
  color: #0b1b26;
  transition: color 0.2s;
}
.site-footer__copyright a:hover {
  text-decoration: none;
  color: #4b7579;
}
@media only screen and (min-width: 1024px) {
  .site-footer__copyright {
    text-align: left;
  }
  .site-footer__copyright .wrap {
    flex-direction: row;
    gap: 16px;
    justify-content: space-between;
  }
}
@media only screen and (min-width: 1200px) {
  .site-footer__copyright .wrap {
    gap: 32px;
  }
}
.site-footer__text {
  padding-top: 16px;
  font-size: 12px;
}
.site-footer__text p {
  font-size: 12px;
  margin-bottom: 8px;
  line-height: 1.5;
}
.site-footer__text p:last-child {
  margin-bottom: 0;
}
.site-footer__credit {
  text-align: center;
}
.site-footer__credit p {
  margin: 0;
  font-size: 13px;
  white-space: nowrap;
}
.site-footer__credit a {
  font-weight: bold;
  color: #4b7579;
  margin: 0;
}
.site-footer__credit a:hover {
  text-decoration: none;
  color: #4b7579;
}
@media only screen and (min-width: 599px) {
  .site-footer__credit {
    margin-left: 96px;
    text-align: right;
  }
}
@media only screen and (min-width: 1024px) {
  .site-footer__credit {
    margin-bottom: 0;
  }
}

.logo--header {
  text-align: center;
  display: flex;
  transition: transform 1s ease-in-out, opacity 1s ease-in-out;
  opacity: 0;
  transform: translateY(-10px);
}
.loaded .logo--header {
  opacity: 1;
  transform: none;
}
.logo--header .logo__image {
  width: 80px;
  transition: transform 0.2s;
  transform-origin: top left;
}
.logo--header .logo__image:hover {
  transform: scale(1.05);
}
[stuck] .logo--header .logo__image {
  transform: scale(0.4);
  padding-top: 28px;
}
[stuck] .logo--header .logo__image:hover {
  transform: scale(0.45);
}
@media only screen and (min-width: 1200px) {
  [stuck] .logo--header .logo__image {
    padding-top: 18px;
  }
}
@media only screen and (min-width: 1200px) {
  .logo--header .logo__image {
    width: 105px;
  }
}
@media only screen and (max-width: 767px) {
  .logo--footer {
    text-align: center;
  }
}
.logo--footer img {
  display: inline-block;
  width: 180px;
}
.logo__link {
  display: inline-block;
  line-height: 0;
}

.menu-panel {
  display: block;
  transition: opacity 1s, transform 1s;
  position: relative;
  padding: 32px;
  flex-direction: column;
  height: 100vh;
  width: 100vw;
  opacity: 0;
  transform: translateX(100px);
  position: fixed;
  pointer-events: none;
  z-index: 6;
  top: 0;
  right: 0;
  overflow: hidden;
  display: flex;
  backdrop-filter: blur(10px);
  background-color: rgba(75, 117, 121, 0.8);
  border-bottom-left-radius: 60px;
}
@media only screen and (min-width: 1024px) {
  .menu-panel {
    width: 35vw;
  }
}
.menu-panel__main {
  position: relative;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.menu-panel__heading {
  float: left;
  color: #fff;
}
.menu-panel__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #ffffff;
  position: relative;
}
.menu-panel__header:after {
  position: absolute;
  height: 1px;
  background-color: #f7eada;
  width: 100%;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 1s ease-in-out;
  bottom: 0;
  left: 0;
  content: "";
}
.menu-panel__buttons {
  display: none;
}
@media only screen and (max-width: 1023px) {
  .menu-panel__buttons {
    display: flex;
    width: 100%;
    max-width: 300px;
    justify-content: center;
    gap: 32px;
    margin: 0 auto;
  }
}
.menu-panel__title {
  margin-bottom: 0;
}
.menu-panel__actions {
  display: flex;
  position: relative;
  z-index: 12;
  margin-top: 4px;
}
.submenu-open .menu-panel__actions {
  -webkit-animation-duration: 0.6s;
  -moz-animation-duration: 0.6s;
  animation-duration: 0.6s;
  -webkit-animation-fill-mode: both;
  -moz-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-name: fadeInDelay;
  -moz-animation-name: fadeInDelay;
  animation-name: fadeInDelay;
  -webkit-animation-iteration-count: 1;
  -moz-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-timing-function: linear;
  -moz-animation-timing-function: linear;
  animation-timing-function: linear;
}
.menu-panel__close {
  background: none;
  padding: 0;
  width: 64px;
  height: 64px;
  position: relative;
  z-index: 20;
}
.menu-panel__close--submenu {
  display: none;
}
.submenu-open .menu-panel__close--submenu {
  display: block;
}
.menu-panel__close:hover svg {
  fill: #f7eada;
}
.menu-panel__close svg {
  fill: #fff;
  transition: fill 0.2s;
}
.menu-panel__header {
  overflow: hidden;
  margin-bottom: 32px;
}
@media only screen and (min-width: 599px) {
  .menu-panel__header {
    margin-bottom: 96px;
  }
}
.menu-panel__bottom {
  flex: 1;
  background-position: center;
  background-size: 100%;
  background-repeat: no-repeat;
  display: flex;
  margin-bottom: 96px;
  margin-top: 16px;
}
.menu-panel__bottom .search-form {
  align-self: flex-end;
}
.menu-open .menu-panel {
  opacity: 1;
  pointer-events: auto;
  transform: none;
}
.menu-open .menu-panel .menu-item {
  opacity: 1;
  transform: none;
}
.menu-open .menu-panel .menu-item:nth-child(1) {
  transition-delay: 0.65s;
}
.menu-open .menu-panel .menu-item:nth-child(2) {
  transition-delay: 0.8s;
}
.menu-open .menu-panel .menu-item:nth-child(3) {
  transition-delay: 0.95s;
}
.menu-open .menu-panel .menu-item:nth-child(4) {
  transition-delay: 1.1s;
}
.menu-open .menu-panel .menu-item:nth-child(5) {
  transition-delay: 1.25s;
}
.menu-open .menu-panel .menu-item:nth-child(6) {
  transition-delay: 1.4s;
}
.menu-open .menu-panel .menu-item:nth-child(7) {
  transition-delay: 1.55s;
}
.menu-open .menu-panel .menu-item:nth-child(8) {
  transition-delay: 1.7s;
}
.menu-open .menu-panel .menu-item:nth-child(9) {
  transition-delay: 1.85s;
}
.menu-open .menu-panel .menu-item:nth-child(10) {
  transition-delay: 2s;
}
.menu-open .menu-panel .menu-item:nth-child(11) {
  transition-delay: 2.15s;
}
.menu-open .menu-panel .menu-item:nth-child(12) {
  transition-delay: 2.3s;
}
.menu-open .menu-panel .menu-item:nth-child(13) {
  transition-delay: 2.45s;
}
.menu-open .menu-panel .menu-item:nth-child(14) {
  transition-delay: 2.6s;
}
.menu-open .menu-panel .menu-item:nth-child(15) {
  transition-delay: 2.75s;
}
.menu-open .menu-panel .menu-item:nth-child(16) {
  transition-delay: 2.9s;
}
.menu-open .menu-panel .menu-panel__header:after {
  transform: scaleX(1);
}
.menu-panel .menu {
  margin: 0;
}
.menu-panel .menu-item {
  opacity: 0;
  transform: translateX(32px);
  transition: transform 0.6s cubic-bezier(0.4, 0.12, 0.1, 1.35), opacity 0.6s;
}
.menu-panel .sub-menu {
  overflow: hidden;
  position: relative;
  margin-left: 0;
  padding-left: 32px;
  padding-right: 32px;
  position: absolute;
  top: 0;
  right: 0;
  transform: translateX(100%);
  transition: 0.3s transform, opacity 0.2s;
  opacity: 0;
  height: 100vh;
  width: 100%;
  background-color: #17304e;
  z-index: 11;
}
.menu-panel .sub-menu--active {
  transform: none;
  opacity: 1;
}
.menu-panel .sub-menu:before {
  content: attr(data-submenu-title);
  font-size: 24px;
  color: rgba(255, 255, 255, 0.6);
  margin: 48px 0 0 0;
  font-family: "Forum", Georgia, serif;
  display: block;
}
.menu-panel .sub-menu:after {
  content: "";
  height: calc(100% - 30px);
  display: flex;
  width: 2px;
  background: rgba(255, 255, 255, 0.3);
  transition: transform 0.3s;
  transition-delay: 0.3s;
  transform: scaleY(0);
  transform-origin: top;
  position: absolute;
  top: 32px;
  left: 0;
}
.menu-panel .sub-menu > .menu-item:first-child {
  padding-top: 32px;
}
.menu-panel .sub-menu > .menu-item:first-child .submenu-toggle {
  top: 32px;
}
.menu-panel .submenu-toggle {
  margin-top: 0;
  right: 5px;
}
.menu-panel .submenu-toggle svg {
  fill: #fff;
  width: 15px;
  height: 12px;
  transform: translateY(-3px);
}

.toggle-nav {
  cursor: pointer;
  -webkit-transition: all 0.2s ease-in-out;
  -moz-transition: all 0.2s ease-in-out;
  -ms-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  -webkit-transition-delay: 0;
  -moz-transition-delay: 0;
  -transition-delay: 0;
  text-transform: uppercase;
  display: flex;
  background: none;
  padding: 0;
  padding-top: 16px;
  height: fit-content;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
  transition: transform 1s ease-in-out, opacity 1s ease-in-out;
  opacity: 0;
}
.loaded .toggle-nav {
  opacity: 1;
  transform: none;
}
@media only screen and (min-width: 1024px) {
  [stuck] .toggle-nav {
    padding-top: 12px;
  }
}
.toggle-nav:hover .burger__top {
  transform-origin: bottom right;
  -webkit-animation-duration: 0.3s;
  -moz-animation-duration: 0.3s;
  animation-duration: 0.3s;
  -webkit-animation-fill-mode: both;
  -moz-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-name: downRotate;
  -moz-animation-name: downRotate;
  animation-name: downRotate;
  -webkit-animation-iteration-count: 1;
  -moz-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-timing-function: linear;
  -moz-animation-timing-function: linear;
  animation-timing-function: linear;
}
.toggle-nav:hover .burger__bottom {
  transform-origin: top right;
  -webkit-animation-duration: 0.3s;
  -moz-animation-duration: 0.3s;
  animation-duration: 0.3s;
  -webkit-animation-fill-mode: both;
  -moz-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-name: upRotate;
  -moz-animation-name: upRotate;
  animation-name: upRotate;
  -webkit-animation-iteration-count: 1;
  -moz-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-timing-function: linear;
  -moz-animation-timing-function: linear;
  animation-timing-function: linear;
}
.toggle-nav--main {
  text-align: center;
}
.toggle-nav--close {
  color: #fff;
  height: auto;
  font-size: 14px;
  border-radius: 0;
}
.toggle-nav--close .toggle-nav__icon {
  fill: #fff;
  width: 13px;
  height: 13px;
  transform: translateY(2px);
}
@media only screen and (min-width: 768px) {
  .toggle-nav--close {
    height: auto;
  }
}

.social-links__list {
  margin: 0;
  margin-bottom: 16px;
}
.social-links__item {
  display: inline-block;
  margin-right: 16px;
  line-height: 1;
}
.social-links__item:last-child {
  margin-right: 0;
}
.social-links__link {
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.3s;
  background-color: #fff;
  border-radius: 100%;
  width: 48px;
  height: 48px;
}
.social-links__link--round {
  border-radius: 100%;
  padding: 32px;
}
.social-links__link:hover {
  background-color: #0b1b26;
}
.social-links__link:hover .social-links__icon {
  fill: #4b7579;
}
.social-links__icon {
  width: 18px;
  height: 18px;
  fill: #4b7579;
  transition: fill 0.3s;
}
.social-links__icon--large {
  width: 38.4px;
  height: 38.4px;
}
.social-links--blog .social-links__link {
  background-color: #0b1b26;
}
.social-links--blog .social-links__link:hover {
  background: #4b7579;
}
.social-links--blog .social-links__icon {
  fill: #fff;
}
.social-links--contact-page .social-links__item {
  margin: 0 16px;
}
.social-links--contact-page .social-links__list {
  text-align: center;
}
.social-links--footer {
  margin-top: 16px;
  text-align: center;
}
@media only screen and (min-width: 768px) {
  .social-links--footer {
    text-align: left;
  }
}

.contact-link__text {
  display: flex;
  align-items: center;
}
.contact-link--icon svg {
  margin-right: 16px;
  width: 24px;
  height: 24px;
}
.contact-link--light svg {
  fill: #fff;
}
.contact-link--dark svg {
  fill: #0b1b26;
}

.error-404 {
  max-width: 650px;
  position: relative;
}
@media only screen and (min-width: 599px) {
  .error-404 {
    padding: 96px 0;
  }
}
.error-404:before {
  content: "404";
  font-size: 50vw;
  font-weight: bold;
  color: #eaeaea;
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 50%;
  line-height: 0;
  transform: translate(-60%, -50%);
}
@media only screen and (min-width: 599px) {
  .error-404:before {
    left: 65%;
  }
}
.error-404 .search-field {
  width: calc(100% - 120px);
  float: left;
  font-family: "Montserrat", Helvetica, Arial, sans-serif;
  background-color: #fff;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.07);
  height: 44px;
}
.error-404 .search-submit {
  background-color: #4b7579;
  color: #fff;
  text-transform: uppercase;
  height: 44px;
}

.gradient-shadow--top:before {
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  position: absolute;
  background: -moz-linear-gradient(top, rgba(11, 27, 38, 0.6) 0%, rgba(11, 27, 38, 0) 100%);
  background: -webkit-linear-gradient(top, rgba(11, 27, 38, 0.6) 0%, rgba(11, 27, 38, 0) 100%);
  background: linear-gradient(to bottom, rgba(11, 27, 38, 0.6) 0%, rgba(11, 27, 38, 0) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#a6000000", endColorstr="#00000000",GradientType=0 );
  content: "";
  pointer-events: none;
  width: 100%;
  height: 100%;
  z-index: 2;
}
.gradient-shadow--bottom:before {
  bottom: 0;
  left: 0;
  right: 0;
  position: absolute;
  background: -webkit-linear-gradient(rgba(11, 27, 38, 0) 0%, rgba(11, 27, 38, 0) 1%, rgba(11, 27, 38, 0.9) 100%);
  background: -o-linear-gradient(rgba(11, 27, 38, 0) 0%, rgba(11, 27, 38, 0) 1%, rgba(11, 27, 38, 0.9) 100%);
  background: linear-gradient(rgba(11, 27, 38, 0) 0%, rgba(11, 27, 38, 0) 1%, rgba(11, 27, 38, 0.9) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#00000000", endColorstr="#a6000000",GradientType=0 );
  content: "";
  pointer-events: none;
  width: 100%;
  height: 100%;
  z-index: 2;
}
@media only screen and (max-width: 1023px) {
  .gradient-shadow--bottom:before {
    height: 90%;
  }
}
.gradient-shadow--both:before {
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  position: absolute;
  background: -moz-linear-gradient(top, rgba(0, 0, 0, 0.45) 0%, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0) 60%, rgba(0, 0, 0, 0.45) 100%);
  background: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.45) 0%, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0) 60%, rgba(0, 0, 0, 0.45) 100%);
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.45) 0%, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0) 60%, rgba(0, 0, 0, 0.45) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#a6000000", endColorstr="#a6000000",GradientType=0 );
  content: "";
  pointer-events: none;
  width: 100%;
  height: 100%;
  z-index: 2;
  transition: opacity 0.3s;
}

.overlay:after {
  position: absolute;
  content: "";
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 0;
  pointer-events: none;
  transition: opacity 0.3s;
  display: block;
}
.overlay--none:after {
  opacity: 0;
}
.overlay--light:after {
  opacity: 0.15;
}
.overlay--medium:after {
  opacity: 0.4;
}
.overlay--strong:after {
  opacity: 0.6;
}
.overlay--none:after {
  background-color: "none";
}
.overlay--white {
  color: #0b1b26;
}
.overlay--white:after {
  background-color: #ffffff;
}
.overlay--white svg {
  fill: #0b1b26;
}
.overlay--black {
  color: #fff;
}
.overlay--black:after {
  background-color: #0b1b26;
}
.overlay--black a:not([class^=button]) {
  color: #4b7579;
}
.overlay--black svg {
  fill: #fff;
}
.overlay--black .gform_wrapper.gravity-theme input[type=submit] {
  background-color: #4b7579;
  color: #0b1b26;
}
.overlay--black .gform_wrapper.gravity-theme input[type=submit]:hover {
  background-color: #fff;
  color: #0b1b26;
}
.overlay--teal {
  color: #fff;
}
.overlay--teal:after {
  background-color: #4b7579;
}
.overlay--teal a:not([class^=button]) {
  color: #4b7579;
}
.overlay--teal svg {
  fill: #fff;
}
.overlay--teal .gform_wrapper.gravity-theme input[type=submit] {
  background-color: #4b7579;
  color: #0b1b26;
}
.overlay--teal .gform_wrapper.gravity-theme input[type=submit]:hover {
  background-color: #fff;
  color: #0b1b26;
}
.overlay--dnavy {
  color: #fff;
}
.overlay--dnavy:after {
  background-color: #153440;
}
.overlay--dnavy a:not([class^=button]) {
  color: #4b7579;
}
.overlay--dnavy svg {
  fill: #fff;
}
.overlay--dnavy .gform_wrapper.gravity-theme input[type=submit] {
  background-color: #4b7579;
  color: #0b1b26;
}
.overlay--dnavy .gform_wrapper.gravity-theme input[type=submit]:hover {
  background-color: #fff;
  color: #0b1b26;
}
.overlay--beige {
  color: #0b1b26;
}
.overlay--beige:after {
  background-color: #f7eada;
}
.overlay--beige svg {
  fill: #0b1b26;
}

.svgicon {
  width: 24px;
  height: 24px;
}

.avatar {
  border-radius: 100%;
  border: 3px solid #fff;
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.5);
  width: 96px !important;
  height: 96px;
}

body .gform_wrapper.gravity-theme input[type=submit] {
  background-color: #4b7579;
  padding: 16px 32px;
  border-radius: 50px;
  transition: color 0.2s, background-color 0.2s;
  color: #fff;
  font-weight: 500;
}
body .gform_wrapper.gravity-theme input[type=submit]:hover {
  text-decoration: none;
  background-color: #ffffff;
  color: #0b1b26;
}
body .gform_wrapper.gravity-theme .gfield-choice-input + label {
  vertical-align: top;
}
body .gform_heading {
  margin-bottom: 32px;
}
body .gform_wrapper .gfield_error .gfield_repeater_cell label,
body .gform_wrapper .gfield_error label,
body .gform_wrapper .gfield_error legend,
body .gform_wrapper .gfield_validation_message,
body .gform_wrapper .validation_message,
body .gform_wrapper [aria-invalid=true] + label,
body .gform_wrapper label + [aria-invalid=true] {
  color: #ff4646;
}
body .gform_wrapper.gravity-theme .description,
body .gform_wrapper.gravity-theme .gfield_description,
body .gform_wrapper.gravity-theme .gsection_description,
body .gform_wrapper.gravity-theme .instruction {
  font-size: 13px;
}
body .gform_wrapper .gfield_validation_message,
body .gform_wrapper .validation_message {
  border-radius: 5px;
}
body .gform_wrapper.gravity-theme .field_description_above .gfield_description {
  padding-bottom: 0;
  padding-left: 10px;
  background: #260000;
  width: max-content;
}
body .gform_wrapper.gravity-theme .gfield_label {
  font-size: 14px;
}
body .gform_wrapper.gravity-theme .gfield_checkbox label,
body .gform_wrapper.gravity-theme .gfield_radio label {
  font-size: 12px;
}
body .gform_confirmation_wrapper {
  padding: 16px;
  border: 1px solid #4b7579;
  background-color: #fff;
  border-radius: 10px;
  margin-bottom: 32px;
}

/*! Lity - v2.4.1 - 2020-04-26
* http://sorgalla.com/lity/
* Copyright (c) 2015-2020 Jan Sorgalla; Licensed MIT */
.lity {
  z-index: 9990;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  white-space: nowrap;
  background: #0b0b0b;
  background: rgba(0, 0, 0, 0.9);
  outline: none !important;
  opacity: 0;
  -webkit-transition: opacity 0.3s ease;
  -o-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}

.lity.lity-opened {
  opacity: 1;
}

.lity.lity-closed {
  opacity: 0;
}

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

.lity-wrap {
  z-index: 9990;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  text-align: center;
  outline: none !important;
}

.lity-wrap:before {
  content: "";
  display: inline-block;
  height: 100%;
  vertical-align: middle;
  margin-right: -0.25em;
}

.lity-loader {
  z-index: 9991;
  color: #fff;
  position: absolute;
  top: 50%;
  margin-top: -0.8em;
  width: 100%;
  text-align: center;
  font-size: 14px;
  font-family: Arial, Helvetica, sans-serif;
  opacity: 0;
  -webkit-transition: opacity 0.3s ease;
  -o-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}

.lity-loading .lity-loader {
  opacity: 1;
}

.lity-container {
  z-index: 9992;
  position: relative;
  text-align: left;
  vertical-align: middle;
  display: inline-block;
  white-space: normal;
  max-width: 100%;
  max-height: 100%;
  outline: none !important;
}

.lity-content {
  z-index: 9993;
  width: 100%;
  -webkit-transform: scale(1);
  -ms-transform: scale(1);
  -o-transform: scale(1);
  transform: scale(1);
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  -o-transition: -o-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease, -o-transform 0.3s ease;
}

.lity-loading .lity-content,
.lity-closed .lity-content {
  -webkit-transform: scale(0.8);
  -ms-transform: scale(0.8);
  -o-transform: scale(0.8);
  transform: scale(0.8);
}

.lity-content:after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  display: block;
  right: 0;
  width: auto;
  height: auto;
  z-index: -1;
  -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
}

.lity-close {
  z-index: 9994;
  width: 35px;
  height: 35px;
  position: fixed;
  right: 0;
  top: 0;
  -webkit-appearance: none;
  cursor: pointer;
  text-decoration: none;
  text-align: center;
  padding: 0;
  color: #fff;
  font-style: normal;
  font-size: 35px;
  font-family: Arial, Baskerville, monospace;
  line-height: 35px;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
  border: 0;
  background: none;
  outline: none;
  -webkit-box-shadow: none;
  box-shadow: none;
}

.lity-close::-moz-focus-inner {
  border: 0;
  padding: 0;
}

.lity-close:hover,
.lity-close:focus,
.lity-close:active,
.lity-close:visited {
  text-decoration: none;
  text-align: center;
  padding: 0;
  color: #fff;
  font-style: normal;
  font-size: 35px;
  font-family: Arial, Baskerville, monospace;
  line-height: 35px;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
  border: 0;
  background: none;
  outline: none;
  -webkit-box-shadow: none;
  box-shadow: none;
}

.lity-close:active {
  top: 1px;
}

/* Image */
.lity-image img {
  max-width: 100%;
  display: block;
  line-height: 0;
  border: 0;
}

/* iFrame */
.lity-iframe .lity-container,
.lity-youtube .lity-container,
.lity-vimeo .lity-container,
.lity-facebookvideo .lity-container,
.lity-googlemaps .lity-container {
  width: 100%;
  max-width: 964px;
}

.lity-iframe-container {
  width: 100%;
  height: 0;
  padding-top: 56.25%;
  overflow: auto;
  pointer-events: auto;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-overflow-scrolling: touch;
}

.lity-iframe-container iframe {
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
  background: #000;
}

.lity-hide {
  display: none;
}

@-webkit-keyframes downRotate {
  0% {
    -webkit-transform: translate3d(0, -6px, 0) rotate(0deg);
    transform: translate3d(0, -6px, 0) rotate(0deg);
  }
  50% {
    -webkit-transform: translate3d(0, 0, 0) rotate(0deg);
    transform: translate3d(0, 0, 0) rotate(0deg);
  }
  55% {
    -webkit-transform: translate3d(0, 0, 0) rotate(0deg) scaleX(0.5);
    transform: translate3d(0, 0, 0) rotate(0deg) scaleX(0.5);
  }
  100% {
    -webkit-transform: translate3d(0, 0, 0) rotate(45deg) scaleX(0.5);
    transform: translate3d(0, 0, 0) rotate(45deg) scaleX(0.5);
  }
}
@-webkit-keyframes upRotate {
  0% {
    -webkit-transform: translate3d(0, 6px, 0) rotate(0deg);
    transform: translate3d(0, 6px, 0) rotate(0deg);
  }
  50% {
    -webkit-transform: translate3d(0, 0, 0) rotate(0deg);
    transform: translate3d(0, 0, 0) rotate(0deg);
  }
  55% {
    -webkit-transform: translate3d(0, 0, 0) rotate(0deg) scaleX(0.5);
    transform: translate3d(0, 0, 0) rotate(0deg) scaleX(0.5);
  }
  100% {
    -webkit-transform: translate3d(0, 0, 0) rotate(-45deg) scaleX(0.5);
    transform: translate3d(0, 0, 0) rotate(-45deg) scaleX(0.5);
  }
}
@-webkit-keyframes downRotate--reverse {
  0% {
    -webkit-transform: translate3d(0, 0, 0) rotate(45deg) scaleX(0.5);
    transform: translate3d(0, 0, 0) rotate(45deg) scaleX(0.5);
  }
  50% {
    -webkit-transform: translate3d(0, 0, 0) rotate(0deg) scaleX(0.5);
    transform: translate3d(0, 0, 0) rotate(0deg) scaleX(0.5);
  }
  55% {
    -webkit-transform: translate3d(0, 0, 0) rotate(0deg) scaleX(1);
    transform: translate3d(0, 0, 0) rotate(0deg) scaleX(1);
  }
  100% {
    -webkit-transform: translate3d(0, -6px, 0) rotate(0deg);
    transform: translate3d(0, -6px, 0) rotate(0deg);
  }
}
@-webkit-keyframes upRotate--reverse {
  0% {
    -webkit-transform: translate3d(0, 0, 0) rotate(-45deg) scaleX(0.5);
    transform: translate3d(0, 0, 0) rotate(-45deg) scaleX(0.5);
  }
  50% {
    -webkit-transform: translate3d(0, 0, 0) rotate(0deg) scaleX(0.5);
    transform: translate3d(0, 0, 0) rotate(0deg) scaleX(0.5);
  }
  55% {
    -webkit-transform: translate3d(0, 0, 0) rotate(0deg);
    transform: translate3d(0, 0, 0) rotate(0deg);
  }
  100% {
    -webkit-transform: translate3d(0, 6px, 0) rotate(0deg);
    transform: translate3d(0, 6px, 0) rotate(0deg);
  }
}
.burger {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 28px;
  height: 28px;
  position: relative;
}
.burger > * {
  height: 2px;
  border-radius: 5px;
  background-color: currentColor;
  width: 100%;
}
.js-loading .burger > * {
  animation-duration: 0s !important;
}
.burger__top, .burger__bottom {
  position: absolute;
  transition: 0.3s transform;
}
.burger__top {
  transform-origin: right;
  -webkit-animation-duration: 0.3s;
  -moz-animation-duration: 0.3s;
  animation-duration: 0.3s;
  -webkit-animation-fill-mode: both;
  -moz-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-name: downRotate--reverse;
  -moz-animation-name: downRotate--reverse;
  animation-name: downRotate--reverse;
  -webkit-animation-iteration-count: 1;
  -moz-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-timing-function: linear;
  -moz-animation-timing-function: linear;
  animation-timing-function: linear;
}
.burger__bottom {
  transform-origin: right;
  -webkit-animation-duration: 0.3s;
  -moz-animation-duration: 0.3s;
  animation-duration: 0.3s;
  -webkit-animation-fill-mode: both;
  -moz-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-name: upRotate--reverse;
  -moz-animation-name: upRotate--reverse;
  animation-name: upRotate--reverse;
  -webkit-animation-iteration-count: 1;
  -moz-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-timing-function: linear;
  -moz-animation-timing-function: linear;
  animation-timing-function: linear;
}

.block-link {
  position: relative;
  border-radius: 12px;
}
.block-link:hover {
  text-decoration: none;
}
@media only screen and (min-width: 1024px) {
  .block-link {
    margin-bottom: 0;
  }
}
.block-link--beige {
  background-color: #f7eada;
}
.block-link--beige .block-link__link {
  color: #153440;
}
.block-link--beige .block-link__link:before {
  background: linear-gradient(rgba(247, 234, 218, 0.3) 0%, #f7eada 100%);
}
.block-link--beige .block-link__link:after {
  background-color: rgba(21, 52, 64, 0.5);
}
.block-link--beige .block-link__link:hover:before {
  background-color: rgba(247, 234, 218, 0.8);
}
.block-link--beige .block-link__button svg {
  fill: #0b1b26;
}
.block-link--teal {
  background-color: #4b7579;
  color: #fff;
}
.block-link--teal .block-link__link {
  color: #fff;
}
.block-link--teal .block-link__link:before {
  background: linear-gradient(rgba(75, 117, 121, 0.3) 0%, #4b7579 100%);
}
.block-link--teal .block-link__link:after {
  background-color: rgba(247, 234, 218, 0.5);
}
.block-link--teal .block-link__link:hover:before {
  background-color: rgba(75, 117, 121, 0.8);
}
.block-link--teal .block-link__button svg {
  fill: #ffffff;
}
.block-link__button {
  position: absolute;
  bottom: 16px;
  left: 50%;
  transform: translate(-50%, 50px);
  width: 95%;
  opacity: 1;
  transition: opacity 0.3s 0.3s, transform 0.3s 0.1s;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.block-link__button svg {
  width: 32px;
  height: 32px;
  transition: opacity 0.2s, transform 0.2s;
}
.block-link__text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, calc(-50% - 32px));
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  transition: transform 0.5s cubic-bezier(0.39, 0.39, 0.17, 0.95), top 0.5s cubic-bezier(0.39, 0.39, 0.17, 0.95);
}
.block-link__title {
  text-transform: uppercase;
  font-family: "Montserrat", Helvetica, Arial, sans-serif;
  font-weight: 600;
  letter-spacing: 2.8px;
  margin-bottom: 32px;
}
.block-link__preheading {
  font-family: "Forum", Georgia, serif;
  font-size: 16px;
  transition: opacity 0.2s;
}
@media only screen and (min-width: 768px) {
  .block-link__preheading {
    font-size: 20px;
  }
}
.block-link img {
  object-fit: cover;
  height: 100%;
}
.block-link--landscape img {
  height: auto;
  object-fit: contain;
}
.block-link__hover-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  opacity: 0;
  transition: opacity 0.3s 0s;
  width: 100%;
  padding: 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.block-link__hover-text .button {
  width: fit-content;
}
.block-link__link {
  display: block;
  text-align: center;
  border-radius: 12px;
  background-color: #fff;
  overflow: hidden;
  transition: transform 0.3s;
  position: relative;
}
.block-link__link:before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  content: "";
  border-radius: 12px;
  transition: background-color 0.3s;
}
.block-link__link:after {
  content: "";
  width: 100%;
  height: 1px;
  position: absolute;
  top: 50%;
  left: 0;
  display: block;
  transition: top 0.5s cubic-bezier(0.39, 0.39, 0.17, 0.95);
}
.client-stories-grid__main .block-link__link:after {
  top: 53%;
}
.block-link__link:hover {
  text-decoration: none;
  cursor: pointer;
}
@media only screen and (max-width: 1023px) {
  .block-link__link:hover:after {
    top: 112px;
  }
}
@media only screen and (min-width: 1024px) {
  .block-link__link:hover:after {
    top: 80px;
  }
  .client-stories-grid__main .block-link__link:hover:after {
    top: 96px;
  }
}
.block-link__link:hover .block-link__preheading {
  opacity: 0;
}
@media only screen and (max-width: 1023px) {
  .block-link__link:hover .block-link__text {
    top: 80px;
    transform: translate(-50%, -50%);
  }
  .block-link__link:hover .block-link__button svg {
    transform: translateY(50%) scale(1.5);
  }
}
@media only screen and (min-width: 1024px) {
  .block-link__link:hover .block-link__text {
    top: 48px;
    transform: translate(-50%, -50%);
  }
  .block-link__link:hover .block-link__hover-text {
    opacity: 1;
    transition-delay: 0.3s;
  }
  .block-link__link:hover .block-link__button svg {
    opacity: 0;
  }
}

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
}
.slick-list:focus {
  outline: none;
}
.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.slick-track:before, .slick-track:after {
  content: "";
  display: table;
}
.slick-track:after {
  clear: both;
}
.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none;
}
[dir=rtl] .slick-slide {
  float: right;
}
.slick-slide img {
  display: block;
}
.slick-slide.slick-loading img {
  display: none;
}
.slick-slide.dragging img {
  pointer-events: none;
}
.slick-initialized .slick-slide {
  display: block;
}
.slick-loading .slick-slide {
  visibility: hidden;
}
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}

.slick-dots {
  position: absolute;
  display: flex;
  gap: 8px;
  bottom: -48px;
  left: 50%;
  transform: translate(-50%);
  margin: 0;
}
.slick-dots button {
  width: 32px;
  border-radius: 50px;
  text-indent: -9999px;
  background-color: #fff;
  transition: background-color 0.2s;
  height: 7px;
  padding: 0;
}
.slick-dots button:hover {
  background-color: #aaa;
}
.slick-dots li.slick-active button {
  background-color: #4b7579;
}
.slick-dots li.slick-active button:hover {
  background-color: #4b7579;
}

.slick-prev,
.slick-next {
  text-indent: -9999px;
  width: 96px;
  height: 96px;
  border: 2px solid #0b1b26;
  border-radius: 100%;
}

.slick-slider--services .slick-prev {
  position: absolute;
  left: 32px;
}
.slick-slider--services .slick-next {
  position: absolute;
}

.icon-bullet-list {
  margin: 0;
}
.icon-bullet-list__item {
  display: flex;
  align-items: center;
  margin-bottom: 16px;
}
.icon-bullet-list__item a:not(.button) {
  color: #fff;
  transition: color 0.2s;
}
.icon-bullet-list__item a:not(.button):hover {
  text-decoration: none;
  color: #0b1b26;
}
.icon-bullet-list__item--dark a:not(.button) {
  color: #4b7579;
}
.icon-bullet-list__item--dark a:not(.button):hover {
  text-decoration: underline;
}
.icon-bullet-list__icon {
  margin-right: 14px;
  width: 24px;
  height: 24px;
}

.post-share {
  float: left;
}
.post-share > * {
  display: inline-block;
}
@media only screen and (min-width: 599px) {
  .post-share {
    float: none;
    display: flex;
    align-items: center;
    margin-bottom: 0;
  }
}
@media only screen and (min-width: 768px) {
  .post-share {
    padding: 16px;
  }
}
.post-share__key {
  position: relative;
  padding-right: 8px;
  font-size: 14px;
}
.post-share__key p {
  font-weight: 500;
}
@media only screen and (min-width: 599px) {
  .post-share__key {
    padding-right: 16px;
    margin-right: 16px;
    font-size: 14px;
  }
  .post-share__key:after {
    content: "";
    width: 0;
    height: 0;
    border-top: 6px solid transparent;
    border-left: 5px solid currentColor;
    border-bottom: 6px solid transparent;
    display: inline-block;
    position: absolute;
    right: 0;
    top: 10px;
  }
}
.post-share__social {
  display: inline-flex;
  margin: 0 3px;
  width: 35px;
  height: 35px;
  border-radius: 100%;
  text-align: center;
  align-items: center;
  justify-content: center;
  transition: transform 0.2s;
}
.post-share__social:hover {
  transform: scale(1.1);
}
.post-share__social svg {
  display: inline-block;
  fill: #fff;
}
.post-share__social--facebook {
  background-color: #43619c;
}
.post-share__social--twitter {
  background-color: #24a9e6;
}
.post-share__social--linkedin {
  background-color: #187fb8;
}

.mini-testimonial {
  border-top-right-radius: 10px;
  border-bottom-right-radius: 10px;
  background-color: #4b7579;
  padding: 16px 32px;
  display: flex;
  gap: 16px;
  position: absolute;
  left: 0;
  bottom: -64px;
  z-index: 2;
  text-align: left;
  max-width: 420px;
}
.mini-testimonial__image img {
  width: 32px;
  height: 32px;
  border-radius: 100%;
  border: 2px solid #ffffff;
}
.mini-testimonial__text {
  flex: 1;
}
.mini-testimonial__text__content {
  color: #fff;
  margin-bottom: 16px;
  line-height: 1.3;
}
.mini-testimonial__text__author {
  color: #f7eada;
  margin-bottom: 0;
}

.breadcrumbs {
  position: relative;
  z-index: 3;
  text-transform: uppercase;
  opacity: 0;
}
.breadcrumbs.is-visible {
  animation-delay: 0.2s;
  -webkit-animation-duration: 1s;
  -moz-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -moz-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-name: fadeInRightVSmall;
  -moz-animation-name: fadeInRightVSmall;
  animation-name: fadeInRightVSmall;
  -webkit-animation-iteration-count: 1;
  -moz-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-timing-function: ease-in-out;
  -moz-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
}
.breadcrumbs__separator {
  width: 16px;
  height: 16px;
  background-image: url("./dist/img/svg/angle-right.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  display: inline-block;
}
.breadcrumbs__text {
  margin-bottom: 8px;
  font-size: 12px;
  letter-spacing: 1px;
}
@media only screen and (min-width: 1024px) {
  .breadcrumbs__text {
    margin-top: 8px;
  }
}
.breadcrumbs--dark .breadcrumbs__separator {
  background-image: url("./dist/img/svg/angle-right--dark.svg");
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
.stroke-dotted {
  opacity: 0;
  stroke-dasharray: 4, 5;
  stroke-width: 1px;
  transform-origin: 50% 50%;
  animation: spin 4s infinite linear;
  transition: opacity 1s ease, stroke-width 1s ease;
}

.stroke-solid {
  stroke-dashoffset: 0;
  stroke-dashArray: 300;
  stroke-width: 4px;
  transition: stroke-dashoffset 1s ease, opacity 1s ease;
}

.icon {
  transform-origin: 50% 50%;
  transition: transform 200ms ease-out;
}

#play:hover .stroke-dotted {
  stroke-width: 4px;
  opacity: 1;
}
#play:hover .stroke-solid {
  opacity: 0;
  stroke-dashoffset: 300;
}
#play:hover .icon {
  transform: scale(1.05);
}

.directions-form fieldset {
  display: grid;
  gap: 8px;
  grid-template-columns: 1fr 80px;
}
.directions-form__submit {
  position: relative;
}
.directions-form__submit:hover input[type=submit] {
  background-color: #153440;
}
.directions-form__submit:hover svg {
  fill: #fff;
}
.directions-form__submit input[type=submit] {
  background-color: #f7eada;
  border-radius: 5px;
  width: 100%;
  height: 100%;
  transition: background-color 0.3s;
  text-indent: -9999px;
}
.directions-form__submit svg {
  pointer-events: none;
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 64px;
  transition: fill 0.3s;
}

.hero {
  position: relative;
  min-height: 200px;
  overflow: hidden;
}
.hero--search .hero__subheading {
  font-family: "Montserrat", Helvetica, Arial, sans-serif;
  background-color: #4b7579;
  border-radius: 2px;
  padding: 2px 16px 2px 8px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 18px;
}
.hero--search .hero__subheading svg {
  width: 18px;
  height: 18px;
}
.hero--no-image {
  padding: 64px 0;
  margin: 0 0 128px 0;
  position: relative;
}
.hero--no-image .hero__subheading {
  margin-bottom: 64px;
}
.hero--no-image .hero__subheading--mb-none {
  margin-bottom: 0;
}
.hero__background {
  -webkit-animation-duration: 0.3s;
  -moz-animation-duration: 0.3s;
  animation-duration: 0.3s;
  -webkit-animation-fill-mode: both;
  -moz-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-name: fadeIn;
  -moz-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-iteration-count: 1;
  -moz-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-timing-function: linear;
  -moz-animation-timing-function: linear;
  animation-timing-function: linear;
  display: flex;
  justify-content: flex-end;
}
.hero__background::before {
  left: 0;
  width: 150%;
  height: 100%;
  content: "";
  position: absolute;
  background-image: linear-gradient(90deg, #223670 0%, rgba(34, 54, 112, 0) 100%);
  background-repeat: no-repeat;
}
@media only screen and (min-width: 599px) {
  .hero__background:before {
    left: 50%;
    width: 300px;
  }
}
@media only screen and (min-width: 599px) {
  .hero__image {
    width: 50%;
  }
}
.hero__preheading {
  display: flex;
  align-items: center;
}
.hero__preheading img {
  margin-right: 16px;
  margin-bottom: 8px;
}
.hero.align-center .hero__preheading {
  justify-content: center;
}
.loaded .hero.align-center .hero__preheading {
  -webkit-animation-duration: 1s;
  -moz-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -moz-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-name: fadeIn;
  -moz-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-iteration-count: 1;
  -moz-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-timing-function: linear;
  -moz-animation-timing-function: linear;
  animation-timing-function: linear;
  animation-delay: 0.3s;
}
.hero.align-center .hero__subheading {
  max-width: 750px;
  margin-left: auto;
  margin-right: auto;
  transform: translateY(10px);
  opacity: 0;
  transition: transform 1s 0.5s, opacity 1s 0.5s;
}
.loaded .hero.align-center .hero__subheading {
  transform: none;
  opacity: 1;
}
.hero.align-center .hero__heading {
  max-width: max-content;
  margin: 0 auto 64px auto;
  transform: translateY(10px);
  opacity: 0;
  transition: transform 1s 0.3s, opacity 1s 0.3s;
}
.hero.align-center .hero__heading--mb-half {
  margin-bottom: 16px;
}
.loaded .hero.align-center .hero__heading {
  transform: none;
  opacity: 1;
}
.hero.align-left .hero__preheading,
.hero.align-left .hero__brand-thumbnail {
  -webkit-animation-duration: 0.3s;
  -moz-animation-duration: 0.3s;
  animation-duration: 0.3s;
  -webkit-animation-fill-mode: both;
  -moz-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-name: fadeIn;
  -moz-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-iteration-count: 1;
  -moz-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-timing-function: linear;
  -moz-animation-timing-function: linear;
  animation-timing-function: linear;
  animation-delay: 0.2s;
}
.hero.align-left .hero__subheading {
  transform: translateX(10px);
  opacity: 0;
  transition: transform 1s 0.5s, opacity 1s 0.5s;
  margin-bottom: 0;
}
.loaded .hero.align-left .hero__subheading {
  transform: none;
  opacity: 1;
}
.hero.align-left.hero--contact .hero__subheading {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 32px;
}
.hero.align-left .hero__heading {
  transform: translateX(10px);
  opacity: 0;
  transition: transform 1s 0.3s, opacity 1s 0.3s;
}
.loaded .hero.align-left .hero__heading {
  transform: none;
  opacity: 1;
}
.hero.align-left .button {
  max-width: fit-content;
}
.hero__content {
  color: #fff;
  width: 100%;
  position: relative;
  z-index: 3;
}
.single-product .hero__content {
  padding-bottom: 96px;
}
@media only screen and (min-width: 768px) {
  .single-product .hero__content {
    padding-bottom: 160px;
  }
}
.hero__content img {
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
}
.align-left .hero__content__text {
  max-width: 560px;
}
.hero__content-wrapper--has-thumbnail {
  display: flex;
  gap: 32px;
}
.hero__button {
  transition: transform 1.5s cubic-bezier(0.29, 0.74, 0.41, 0.91), opacity 1.5s cubic-bezier(0.29, 0.74, 0.41, 0.91);
  transition-delay: 1.1s;
  display: block;
  line-height: 1;
}
.hero__subheading {
  font-weight: 600;
  backface-visibility: hidden;
}
.hero__heading {
  max-width: none;
  backface-visibility: hidden;
}
.hero__text-wrapper--fading {
  animation: fadeInOut 16s var(--d) infinite;
  opacity: 0;
  transition: opacity 0.3s;
  transform: translateY(-10px);
  position: absolute;
  width: 100%;
  padding: 0 32px;
}
@media only screen and (min-width: 768px) {
  .hero__text-wrapper--fading {
    transform: none;
  }
}
.hero__fading-text {
  font-size: 32px;
  line-height: 1.2;
  margin-bottom: 64px;
}
@media only screen and (min-width: 1024px) {
  .hero__fading-text {
    margin-bottom: 128px;
  }
}

.spacer {
  --multiplier: 1;
  --lh: 32px;
  margin-top: -1px;
  margin-bottom: -1px;
  padding: 0;
}
.spacer.slant {
  --slantH: 100%;
}
.spacer__div {
  height: calc(var(--lh) * var(--multiplier) / 2);
}
@media only screen and (min-width: 768px) {
  .spacer__div {
    height: calc(var(--lh) * var(--multiplier));
  }
}

.section-header {
  margin-bottom: 32px;
}
.section-header:not(.no-divider) {
  position: relative;
}
.section-header:not(.no-divider):after {
  position: absolute;
  height: 1px;
  background-color: #0b1b26;
  width: 100%;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 1s ease-in-out;
  bottom: -16px;
  left: 0;
  content: "";
}
@media only screen and (min-width: 1024px) {
  .section-header {
    padding: 0;
    margin-bottom: 64px;
  }
  .section-header.no-divider {
    margin-bottom: 32px;
  }
}
.section-header .section-header__headings {
  opacity: 0;
  transition: opacity 0.5s, transform 1s ease-in-out;
  transform: translateX(-20px);
  flex: 1;
}
.section-header a[class*=button] {
  opacity: 0;
  transition: opacity 0.5s, transform 1s ease-in-out;
  transform: translateX(20px);
}
.section-header.is-visible:after {
  transform: none;
}
.section-header.is-visible .section-header__headings {
  transform: none;
  opacity: 1;
}
.section-header.is-visible a[class*=button] {
  transform: none;
  opacity: 1;
}
.section-header.align-left .wrap {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 64px;
}
@media only screen and (max-width: 1023px) {
  .section-header.align-left .wrap {
    text-align: center;
    justify-content: center;
  }
}
.section-header__heading {
  margin-bottom: 16px;
  position: relative;
  display: inline-block;
}
.section-header__heading.h1 {
  margin-bottom: 16px;
}
.section-header__subheading {
  position: relative;
  line-height: 1.5;
  font-weight: 500;
}
.section-header__subheading p:last-child {
  margin-bottom: 0;
}
@media only screen and (min-width: 768px) {
  .section-header__subheading {
    line-height: 1.5;
  }
  .align-center .section-header__subheading {
    max-width: 670px;
    margin: 0 auto;
  }
}
.section-header__preheading {
  color: #4b7579;
  letter-spacing: 2px;
}

.service-blocks-links {
  color: #fff;
  padding-bottom: 48px;
  position: relative;
  padding-top: 0;
  width: 100%;
  overflow: hidden;
  align-items: center;
}
.service-blocks-links .wrap {
  display: grid;
  gap: 32px;
}
@media only screen and (min-width: 599px) {
  .service-blocks-links .wrap {
    grid-template-columns: repeat(2, 1fr);
    gap: 64px;
  }
}
.service-blocks-links__heading {
  padding: 32px 16px 0;
  margin-bottom: 0;
}
.service-blocks-links__intro {
  display: grid;
  grid-template-columns: 1fr;
  margin-bottom: 32px;
  opacity: 0;
}
.service-blocks-links__intro.is-visible {
  -webkit-animation-duration: 1s;
  -moz-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -moz-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-name: fadeInRightSmall;
  -moz-animation-name: fadeInRightSmall;
  animation-name: fadeInRightSmall;
  -webkit-animation-iteration-count: 1;
  -moz-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-timing-function: ease-in-out;
  -moz-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
}
@media only screen and (min-width: 599px) {
  .service-blocks-links__intro {
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    margin-bottom: 0;
  }
}
.service-blocks-links__item {
  opacity: 0;
}
.is-visible .service-blocks-links__item {
  -webkit-animation-duration: 1s;
  -moz-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -moz-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-name: fadeInUpSmall;
  -moz-animation-name: fadeInUpSmall;
  animation-name: fadeInUpSmall;
  -webkit-animation-iteration-count: 1;
  -moz-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-timing-function: cubic-bezier(0.4, 0.12, 0.1, 1.35);
  -moz-animation-timing-function: cubic-bezier(0.4, 0.12, 0.1, 1.35);
  animation-timing-function: cubic-bezier(0.4, 0.12, 0.1, 1.35);
}
.is-visible .service-blocks-links__item:nth-child(1) {
  animation-delay: 0.25s;
}
.is-visible .service-blocks-links__item:nth-child(2) {
  animation-delay: 0.5s;
}

.image-text-row {
  position: relative;
  z-index: 2;
  clear: both;
}
@media only screen and (min-width: 1600px) {
  .image-text-row {
    padding-bottom: 96px;
  }
}
.image-text-row.js-visible {
  opacity: 0;
  transition: opacity 1.5s 0.5s, transform 3s cubic-bezier(0, 0.92, 0, 1) 0.5s;
}
.image-text-row.is-visible, .no-js .image-text-row {
  opacity: 1;
}
.image-text-row p:last-child {
  margin-bottom: 0;
}
@media only screen and (min-width: 1024px) {
  .image-text-row--cs {
    margin: 0 -104px 32px -104px;
  }
}
.image-text-row__background + .wrap {
  position: relative;
  z-index: 2;
}
.image-text-row__content {
  padding: 16px 0;
  display: flex;
  flex-direction: column;
  max-width: 700px;
  margin: 0 auto;
}
.image-text-row__content:before, .image-text-row__content:after {
  display: none;
}
@media only screen and (min-width: 1024px) {
  .image-text-row__content--image-first .image-text-row__image__content {
    position: absolute;
    left: 0;
    right: auto;
    top: -64px;
    width: 50%;
    max-width: 900px;
    justify-content: flex-start;
  }
  .image-text-row__content--image-first .image-text-row__image__content > img {
    border-radius: 0;
    border-top-right-radius: 60px;
    border-bottom-right-radius: 60px;
  }
}
.image-text-row__content--image-first .image-text-row__text {
  grid-column: 2/span 1;
}
@media only screen and (min-width: 1024px) {
  .image-text-row__content {
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 128px;
    margin: 0;
    max-width: none;
  }
}
@media only screen and (min-width: 1600px) {
  .image-text-row__content {
    grid-template-columns: 1.4fr 1fr;
  }
  .image-text-row__content--image-first {
    grid-template-columns: 1fr 1.4fr;
  }
}
.image-text-row__text {
  flex: 1;
  order: 1;
  position: relative;
  margin-bottom: 32px;
}
@media only screen and (min-width: 1024px) {
  .image-text-row__text {
    margin-bottom: 0;
  }
}
.image-text-row__image {
  order: 2;
  text-align: center;
}
.image-text-row__image a[class^=button] {
  margin-top: 32px;
}
.image-text-row__image--image-sticky {
  position: sticky;
  top: 32px;
}
.image-text-row__image img {
  position: relative;
  display: block;
  overflow: hidden;
}
.image-text-row__image__content > img {
  border-radius: 15px;
}
@media only screen and (min-width: 1024px) {
  .image-text-row__image__content {
    position: absolute;
    right: 0;
    top: -64px;
    width: 50%;
    max-width: 900px;
    display: flex;
    justify-content: flex-end;
  }
  .image-text-row__image__content > img {
    border-radius: 0;
    border-top-left-radius: 60px;
    border-bottom-left-radius: 60px;
  }
}

.image-text-columns {
  padding-top: 64px;
  padding-bottom: 64px;
  position: relative;
}
.image-text-columns__main {
  --cols: 4;
  position: relative;
  z-index: 2;
  display: grid;
  justify-items: center;
  gap: 32px;
  grid-template-columns: 1fr;
}
@media only screen and (min-width: 480px) {
  .image-text-columns__main {
    grid-template-columns: 1fr 1fr;
  }
}
@media only screen and (min-width: 1024px) {
  .image-text-columns__main {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
  .image-text-columns__main > .image-text-columns__item {
    width: calc((100% / var(--cols) - 32px));
    justify-content: center;
  }
}
.image-text-columns__item {
  width: 100%;
  border: 1px solid #4b7579;
  border-radius: 20px;
  overflow: hidden;
  position: relative;
  opacity: 0;
}
.is-visible .image-text-columns__item {
  -webkit-animation-duration: 1s;
  -moz-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -moz-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-name: fadeInUpSmall;
  -moz-animation-name: fadeInUpSmall;
  animation-name: fadeInUpSmall;
  -webkit-animation-iteration-count: 1;
  -moz-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-timing-function: cubic-bezier(0.4, 0.12, 0.1, 1.35);
  -moz-animation-timing-function: cubic-bezier(0.4, 0.12, 0.1, 1.35);
  animation-timing-function: cubic-bezier(0.4, 0.12, 0.1, 1.35);
}
.is-visible .image-text-columns__item:nth-child(1) {
  animation-delay: 0.25s;
}
.is-visible .image-text-columns__item:nth-child(2) {
  animation-delay: 0.5s;
}
.is-visible .image-text-columns__item:nth-child(3) {
  animation-delay: 0.75s;
}
.is-visible .image-text-columns__item:nth-child(4) {
  animation-delay: 1s;
}
.is-visible .image-text-columns__item:nth-child(5) {
  animation-delay: 1.25s;
}
.is-visible .image-text-columns__item:nth-child(6) {
  animation-delay: 1.5s;
}
.is-visible .image-text-columns__item:nth-child(7) {
  animation-delay: 1.75s;
}
.is-visible .image-text-columns__item:nth-child(8) {
  animation-delay: 2s;
}
.image-text-columns__item-heading {
  margin-bottom: 16px;
  min-height: 2em;
}
.image-text-columns__image {
  display: inline-block;
}
.image-text-columns__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  align-items: center;
  transition: transform 0.5s;
  text-decoration: none;
  color: #0b1b26;
  font-weight: normal;
  font-size: 14px;
  line-height: 1.9;
}
@media screen and (min-width: 768px) {
  .image-text-columns__link {
    font-size: 14px;
    line-height: 2.3;
  }
}
.image-text-columns__link:hover {
  text-decoration: none;
  transform: translateY(-64px);
}
.image-text-columns__subheading {
  display: none;
}
@media only screen and (min-width: 480px) {
  .image-text-columns__subheading {
    display: block;
  }
}
.image-text-columns__c2a {
  position: absolute;
  bottom: -48px;
}
.image-text-columns__c2a svg {
  fill: #0b1b26;
  width: 32px;
  height: 32px;
}
.image-text-columns__text {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 32px;
  padding-top: 24px;
}
@media only screen and (min-width: 480px) {
  .image-text-columns__text {
    padding: 16px;
  }
}
@media only screen and (min-width: 1024px) {
  .image-text-columns__text {
    padding: 32px;
    padding-top: 24px;
  }
}
.image-text-columns__text p:last-of-type {
  margin-bottom: 0;
}
.image-text-columns__text ul {
  display: flex;
  flex-direction: column;
  text-align: left;
  margin: 0;
  padding-left: 16px;
}
.image-text-columns__text ul li {
  font-size: 14px;
}

.client-stories__overview {
  position: relative;
  z-index: 1;
}
@media only screen and (min-width: 1024px) {
  .client-stories__overview {
    padding-left: 128px;
    max-width: 900px;
  }
}

.c2a-section {
  position: relative;
}
.c2a-section.js-visible {
  opacity: 0;
  transition: opacity 1.5s 0.5s, transform 3s cubic-bezier(0, 0.92, 0, 1) 0.5s;
}
.c2a-section.is-visible, .no-js .c2a-section {
  opacity: 1;
}
.c2a-section__main {
  position: relative;
  overflow: hidden;
}
.c2a-section__link {
  color: #0b1b26;
  display: block;
  transition: background-color 0.5s, color 0.5s;
  border-radius: 20px;
  padding: 32px;
}
.c2a-section__link.bg--white:hover, .c2a-section__link.bg--beige:hover {
  color: #ffffff;
  background-color: #153440;
}
.c2a-section__link:hover {
  text-decoration: none;
}
.c2a-section__link:hover .c2a-section__link-hover {
  opacity: 1;
}
.c2a-section--column {
  text-align: center;
}
.c2a-section--column.has-contact-links .c2a-section__subheading, .c2a-section--column.has-button .c2a-section__subheading {
  margin-bottom: 32px;
}
@media only screen and (min-width: 768px) {
  .c2a-section--column.has-contact-links .c2a-section__subheading, .c2a-section--column.has-button .c2a-section__subheading {
    padding: 0 10%;
  }
}
.c2a-section--column.has-contact-links .c2a-section__main, .c2a-section--column.has-button .c2a-section__main {
  padding: 0;
}
.c2a-section--column.has-button .c2a-section__link.bg--white:hover .c2a-section__heading, .c2a-section--column.has-button .c2a-section__link.bg--beige:hover .c2a-section__heading {
  color: #f7eada;
  transform: scale(1.1);
}
.c2a-section--row {
  text-align: center;
}
@media only screen and (min-width: 768px) {
  .c2a-section--row .c2a-section__content {
    text-align: left;
    display: flex;
    gap: 64px;
    align-items: center;
    justify-content: space-between;
  }
}
.c2a-section--row .c2a-section__text {
  flex: 1;
}
.c2a-section--row.has-button .c2a-section__link.bg--white:hover .c2a-section__heading, .c2a-section--row.has-button .c2a-section__link.bg--beige:hover .c2a-section__heading {
  color: #f7eada;
}
.c2a-section__content {
  position: relative;
  z-index: 1;
}
.c2a-section__heading {
  margin-bottom: 16px;
  transition: transform 0.3s;
  transform-origin: bottom center;
}
.c2a-section__subheading {
  font-weight: 500;
  margin-bottom: 32px;
}
.c2a-section__subheading p:last-child {
  margin-bottom: 0;
}
@media only screen and (min-width: 768px) {
  .c2a-section__subheading {
    margin-bottom: 0;
  }
}
.c2a-section__contact-links {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
@media only screen and (min-width: 1024px) {
  .c2a-section__contact-links {
    flex-direction: row;
    gap: 32px;
  }
}
.c2a-section__link-hover {
  position: absolute;
  opacity: 0;
  display: flex;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  transition: opacity 1s;
  border-radius: 20px;
  overflow: hidden;
  z-index: 1;
}
.c2a-section__link-hover .bg {
  animation: slide 3s ease-in-out infinite alternate;
  background-image: linear-gradient(-60deg, #153440 50%, #4b7579 50%);
  bottom: 0;
  left: -50%;
  opacity: 0.5;
  position: absolute;
  right: -50%;
  top: 0;
  z-index: -1;
}
.c2a-section__link-hover .bg2 {
  animation-direction: alternate-reverse;
  animation-duration: 4s;
}
.c2a-section__link-hover .bg3 {
  animation-duration: 5s;
}

@keyframes slide {
  0% {
    transform: translateX(-25%);
  }
  100% {
    transform: translateX(25%);
  }
}
.form-section .wrap {
  position: relative;
  z-index: 2;
}
.form-section__main {
  max-width: 650px;
  margin: 0 auto;
}

.onecol {
  position: relative;
  z-index: 1;
}
.onecol--search {
  padding-top: 32px;
}
@media only screen and (min-width: 1024px) {
  .onecol--search {
    padding-top: 160px;
  }
}
.onecol .onecol__header {
  margin-bottom: 32px;
}
.onecol--has-bg .onecol__text {
  background-size: cover;
  background-repeat: no-repeat;
}
@media only screen and (min-width: 599px) {
  .onecol--has-bg .onecol__text {
    padding: 0 32px;
  }
}
.onecol--has-bg-img .onecol__text {
  color: #fff;
  text-align: center;
}
@media only screen and (min-width: 1024px) {
  .onecol--narrow .onecol__header {
    margin: 0 auto;
    max-width: 80%;
  }
}
.onecol__heading {
  position: relative;
}
.align-center .onecol__heading:before {
  display: none;
}
.onecol__text :last-child {
  margin-bottom: 0;
}
@media only screen and (min-width: 1024px) {
  .onecol__text--narrow {
    margin: 0 auto;
    max-width: 80%;
  }
}

.usps {
  width: 100%;
  z-index: 2;
  color: #fff;
  position: relative;
}
@media only screen and (min-width: 1024px) {
  .usps {
    display: block;
  }
}
.usps__list {
  margin: 0;
}
.usps__content {
  font-weight: 500;
  position: relative;
  font-size: 20px;
  display: flex;
  align-items: center;
  font-family: "Forum", Georgia, serif;
}
@media only screen and (max-width: 1023px) {
  .usps__content {
    justify-content: center;
  }
}
.usps__icon {
  width: 48px;
  height: 48px;
  display: none;
}
@media only screen and (min-width: 599px) {
  .usps__icon {
    display: flex;
    align-items: center;
  }
}
@media only screen and (min-width: 1024px) {
  .usps .svgicon {
    display: block;
  }
}

.contact-main {
  position: relative;
  padding-top: 32px;
}
@media only screen and (min-width: 1024px) {
  .contact-main__content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
  }
}
.contact-main #googlemap {
  width: 100%;
  aspect-ratio: 4/3;
  margin-bottom: 16px;
  border-radius: 10px;
}
@media only screen and (min-width: 1024px) {
  .contact-main__form-wrapper {
    margin-bottom: 0;
  }
}
.contact-main__form {
  max-width: 600px;
  margin: 0 auto;
}
.contact-main__form__subheading {
  font-size: 16px;
}
.contact-main__main {
  max-width: 650px;
  padding: 32px;
  background-color: #4b7579;
  margin-top: -80px;
  border-top-right-radius: 60px;
  border-bottom-left-radius: 60px;
  margin-bottom: 32px;
}
@media only screen and (min-width: 1024px) {
  .contact-main__main {
    margin-bottom: 0;
  }
}
.contact-main__main.js-visible {
  opacity: 0;
  transition: opacity 1.5s 0.5s, transform 3s cubic-bezier(0, 0.92, 0, 1) 0.5s;
  transform: translateY(10%);
}
.contact-main__main.is-visible, .no-js .contact-main__main {
  opacity: 1;
  transform: none;
}
.contact-main__main .box {
  padding: 64px 32px;
}
@media only screen and (min-width: 1024px) {
  .contact-main__main .box {
    padding: 64px;
  }
}

.sibling-page-grid {
  position: relative;
  overflow: hidden;
}
.sibling-page-grid .wrap {
  display: grid;
  grid-template-columns: 1fr;
}
@media only screen and (min-width: 768px) {
  .sibling-page-grid .wrap {
    grid-template-columns: 300px 1fr;
    grid-gap: 32px;
  }
}
.sibling-page-grid__list {
  margin: 0;
  text-align: left;
  position: relative;
  z-index: 2;
}
.sibling-page-grid__item {
  padding: 16px 0;
  position: relative;
}
.sibling-page-grid__icon {
  width: 48px;
  height: 48px;
}
.sibling-page-grid__icon svg {
  transition: transform 0.3s, opacity 0.2s;
  width: 23px;
  height: 11px;
}
.sibling-page-grid__icon:before {
  width: 23px;
  height: 11px;
}
@media only screen and (min-width: 1024px) {
  .sibling-page-grid__icon {
    position: absolute;
    top: 16px;
    right: 0;
  }
}
.sibling-page-grid__text {
  margin-top: 8px;
  border-radius: 5px;
  transition: background-color 0.3s;
}
.sibling-page-grid__header.section-header {
  padding: 0;
}
.sibling-page-grid__heading.page-link-grid__heading {
  font-size: 18px;
  transition: transform 0.3s;
  transform: translateX(-12px);
}
.sibling-page-grid__heading__button {
  display: flex;
  transition: transform 0.3s;
}
.sibling-page-grid__heading__button svg {
  transition: fill 0.3s;
}
.sibling-page-grid__link:hover {
  text-decoration: none;
}
.sibling-page-grid__link:hover .sibling-page-grid__text {
  background-color: #4b7579;
}
.sibling-page-grid__link:hover .sibling-page-grid__heading {
  transform: translateX(0);
  color: #fff;
}
.sibling-page-grid__link:hover .sibling-page-grid__heading__button {
  transform: translateX(-5px);
}
.sibling-page-grid__link:hover .sibling-page-grid__heading__button svg {
  fill: #fff;
}

.page-link-grid {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 16px;
}
.page-link-grid--type2 {
  grid-gap: 32px;
}
@media only screen and (min-width: 768px) {
  .page-link-grid--type2 {
    grid-gap: 48px;
  }
}
.page-link-grid--type1 {
  background-color: #fff;
  grid-gap: 16px;
}
@media only screen and (min-width: 480px) {
  .page-link-grid--3col {
    grid-template-columns: 1fr 1fr;
  }
  .page-link-grid--2col {
    grid-template-columns: repeat(auto-fit, minmax(450px, 1fr));
  }
}
@media only screen and (min-width: 768px) {
  .page-link-grid {
    grid-gap: 32px;
    position: relative;
  }
  .page-link-grid--3col {
    grid-template-columns: 1fr 1fr 1fr;
  }
}
@media only screen and (min-width: 1200px) {
  .page-link-grid--2col {
    grid-template-columns: repeat(auto-fit, minmax(550px, 1fr));
  }
}
.page-link-grid__text {
  gap: 16px;
  display: flex;
  padding: 16px;
  align-items: center;
  justify-content: space-between;
}
.page-link-grid__text__main {
  flex: 1;
  position: relative;
  margin-top: -1px;
}
.page-link-grid__link img {
  border-radius: 10px;
}
.page-link-grid__heading {
  line-height: 1.16;
  margin-bottom: 50px;
  transition: margin-bottom 0.2s;
  flex: 1;
}

.dropdown-list__main {
  max-width: 90%;
  margin: 0 auto;
}
@media only screen and (min-width: 768px) {
  .dropdown-list__main {
    max-width: 650px;
  }
}
@media only screen and (min-width: 1024px) {
  .dropdown-list--sidebar {
    margin-bottom: 64px;
  }
}
.dropdown-list__list {
  margin: 0;
}
@media only screen and (min-width: 599px) {
  .dropdown-list__list {
    padding-top: 32px;
  }
}
.dropdown-list__item {
  margin-bottom: 24px !important;
  background-color: #4b7579;
  border-radius: 10px;
  padding: 16px 16px 1px 64px;
}
.dropdown-list__item__heading {
  margin-bottom: 16px;
  transition: color 0.2s;
  cursor: pointer;
}
.dropdown-list__item__heading:hover {
  color: #4b7579;
}
.dropdown-list__item__heading:hover .dropdown-list__button {
  background-color: #f7eada;
}
.dropdown-list__item--is-open .dropdown-list__item__heading:hover .dropdown-list__button {
  background-color: #4b7579;
}
.dropdown-list__content {
  transition: max-height 0.5s cubic-bezier(0.46, 0.96, 0.43, 0.94);
  display: none;
  overflow: hidden;
  text-transform: none;
}
.dropdown-list__header {
  font-weight: bold;
  text-align: center;
}
.dropdown-list__button {
  width: 28px;
  height: 28px;
  position: absolute;
  background-color: #fff;
  transition: background-color 0.2s cubic-bezier(0.46, 0.96, 0.43, 0.94);
  display: flex;
  align-items: center;
  justify-content: center;
  left: 16px;
  border-radius: 50px;
}
.dropdown-list__item--is-open .dropdown-list__button {
  background-color: #4b7579;
}
.dropdown-list__item--is-open .dropdown-list__button:hover {
  background-color: #4b7579;
}
.dropdown-list__button:before {
  content: "";
  width: 13px;
  height: 3px;
  border-radius: 5px;
  background-color: #4b7579;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: background-color 0.3s;
}
.dropdown-list__item--is-open .dropdown-list__button:before {
  background-color: #fff;
}
.dropdown-list__button:after {
  content: "";
  width: 3px;
  height: 13px;
  border-radius: 5px;
  background-color: #4b7579;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: opacity 0.3s cubic-bezier(0.46, 0.96, 0.43, 0.94), background-color 0.3s;
}
.dropdown-list__item--is-open .dropdown-list__button:after {
  opacity: 0;
}
.dropdown-list__item {
  list-style: none !important;
  position: relative;
}

.accreditations {
  background-color: #fff;
  padding-left: 32px;
  padding-right: 32px;
}
.accreditations__logos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 32px;
  justify-items: center;
  align-items: center;
}
.accreditations__logos img {
  max-height: 120px;
  width: auto;
}
@media only screen and (min-width: 768px) {
  .accreditations__logos {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  }
}
.accreditations__logos.owl-carousel {
  display: block;
}

.twocol {
  position: relative;
  z-index: 1;
}
.twocol__row {
  position: relative;
  max-width: 1400px;
  margin: 0 auto;
}
@media only screen and (min-width: 768px) {
  .twocol__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
}
@media only screen and (max-width: 767px) {
  .twocol__row--has-image-col .twocol__col--has-image {
    margin: 0 32px;
    position: absolute;
    top: 32px;
    left: 0;
    width: calc(100% - 32px* 2);
    padding: 0;
    height: 200px;
    z-index: 1;
  }
  .twocol__row--has-image-col .twocol__col--text {
    padding-top: 270px;
  }
}
.twocol__col {
  padding: 32px;
  background-repeat: no-repeat;
  background-position: center;
  display: flex;
  position: relative;
  z-index: 2;
  opacity: 0;
  transition: opacity 0.3s 0.2s, transform 0.5s 0.2s;
}
.twocol__col.is-visible {
  opacity: 1;
  transform: none;
}
.twocol__col--col1 {
  transform: translateX(-15px);
}
.twocol__col--col2 {
  transform: translateX(15px);
}
.twocol__col--text {
  background-position: left top;
}
.twocol__col p:last-child {
  margin-bottom: 0;
}
@media only screen and (min-width: 1024px) {
  .twocol__col {
    padding: 32px;
  }
  .twocol__row--has-image-col .twocol__col {
    min-height: 460px;
    padding: 64px 96px;
  }
}
@media only screen and (min-width: 1200px) {
  .twocol__row--has-image-col .twocol__col {
    min-height: 540px;
  }
}
.twocol__image {
  border-radius: 20px;
  overflow: hidden;
}
@media only screen and (min-width: 768px) {
  .twocol__image {
    border-radius: 40px;
    margin: 64px 32px 32px 32px;
  }
}
.twocol__content {
  position: relative;
  z-index: 2;
}
.twocol__content img {
  border-radius: 20px;
}

.gallery__item {
  width: 100%;
  margin-bottom: 16px;
  transform: translateY(32px);
  transition: transform 1s ease-in-out, opacity 1.5s;
  width: calc(50% - 16px);
}
@media only screen and (min-width: 1024px) {
  .gallery__item {
    width: calc(33.3333% - 10.6666666667px);
  }
}
.gallery__item img {
  transition: transform 0.3s;
  width: 100%;
}
.gallery__subheading {
  font-size: 12px;
  line-height: 1.4;
}
@media screen and (min-width: 768px) {
  .gallery__subheading {
    font-size: 14px;
    line-height: 1.5;
  }
}
.gallery__link {
  overflow: hidden;
  position: relative;
  display: block;
}
.gallery__link:before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  content: "";
  background-color: #000;
  opacity: 0;
  transition: opacity 0.3s;
  z-index: 1;
}
.gallery__link:after {
  content: "";
  width: 48px;
  height: 48px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-image: url("./dist/img/svg/circle-plus--white.svg");
  background-size: 100%;
  transition: opacity 0.3s;
  opacity: 0;
  z-index: 2;
}
.gallery__link:hover:before, .gallery__link:hover:after {
  opacity: 0.7;
}
.gallery__link:hover img {
  transform: scale(1.1);
}

.pswp__button--share {
  display: none;
}

.m-container {
  padding-bottom: 32px;
  max-width: 1440px;
  margin: 0 auto;
}

.m-sizer {
  width: 100%;
  width: calc(50% - 16px);
}
@media only screen and (min-width: 1024px) {
  .m-sizer {
    width: calc(33.3333% - 10.6666666667px);
  }
}

.m-gutter {
  width: 16px;
}
@media only screen and (min-width: 1024px) {
  .m-gutter {
    width: 16px;
  }
}

.pswp__caption .pswp__caption__center {
  max-width: fit-content;
}

.video {
  position: relative;
}
.home .video {
  padding-top: 32px;
}
.video::before {
  position: absolute;
  top: 50%;
  bottom: 0;
  left: 0;
  right: 0;
  content: "";
  background-color: #f7eada;
}
.video video {
  border-radius: 15px;
  position: relative;
  z-index: 1;
  width: 100%;
}
@media only screen and (min-width: 599px) {
  .video video {
    border-radius: 60px;
  }
}
.video__thumbnail {
  display: flex;
  position: relative;
  transition: transform 1s ease-in-out, opacity 1s ease-in-out;
  opacity: 0;
  transform: scale(0.9);
}
.loaded .video__thumbnail {
  opacity: 1;
  transform: none;
}
.video__thumbnail::before {
  border-radius: 15px;
  z-index: 2;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  content: "";
  background: transparent linear-gradient(360deg, #0f273174 0%, #0f273100 100%) 0% 0% no-repeat padding-box;
}
@media only screen and (min-width: 599px) {
  .video__thumbnail:before {
    border-radius: 60px;
  }
}
.video__c2a {
  margin-top: 8px;
  margin-bottom: 0;
}
@media only screen and (min-width: 1024px) {
  .video__c2a {
    margin-top: 32px;
  }
}
.video__play-button {
  position: absolute;
  z-index: 2;
  text-align: center;
  width: 100%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.video__play-button svg {
  width: 60px;
  height: 60px;
}
@media only screen and (min-width: 599px) {
  .video__play-button svg {
    width: 100px;
    height: 100px;
  }
}

.page-heading {
  max-width: 515px;
}
body:not(.home) .page-heading {
  padding-bottom: 64px;
}
@media only screen and (max-width: 767px) {
  .page-heading {
    order: 2;
    text-align: center;
    margin: 0 auto;
  }
}
@media only screen and (min-width: 1024px) {
  .page-heading {
    margin-left: 160px;
    margin-top: -96px;
  }
}
@media only screen and (min-width: 1200px) {
  .page-heading {
    margin-top: -128px;
  }
}
.page-heading__heading, .page-heading__subheading, .page-heading__footer-text {
  transition: transform 1s ease-in-out, opacity 1s ease-in-out;
  opacity: 0;
}
.loaded .page-heading__heading, .loaded .page-heading__subheading, .loaded .page-heading__footer-text {
  opacity: 1;
  transform: none;
}
.page-heading__heading {
  transform: translateX(10px);
  transition-delay: 0.3s;
}
.page-heading__subheading {
  transform: translateY(10px);
  transition-delay: 0.4s;
  font-size: 14px;
  line-height: 2;
}
@media only screen and (max-width: 1023px) {
  .page-heading__subheading {
    margin-bottom: 0;
  }
}
@media screen and (min-width: 768px) {
  .page-heading__subheading {
    font-size: 16px;
    line-height: 2;
  }
}
.page-heading__footer-text {
  transition-delay: 0.5s;
  transform: translateY(-10px);
}
.page-heading .button--pagelink {
  transition: transform 0.4s ease-in-out, opacity 0.4s ease-in-out;
  opacity: 0;
  transition-delay: 0.8s;
  justify-content: center;
}
.loaded .page-heading .button--pagelink {
  opacity: 1;
  transform: none;
}
.page-heading .button--pagelink:nth-child(2) {
  transition-delay: 1s;
}

.office-info {
  border-bottom-left-radius: 60px;
  position: relative;
  overflow: hidden;
}
.office-info::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 45%;
  right: 0;
  content: "";
  background-image: linear-gradient(270deg, rgba(75, 117, 121, 0.3) 0%, #4b7579 100%);
  z-index: 2;
}
@media only screen and (max-width: 767px) {
  .office-info:before {
    left: 0;
    background-image: none;
    background-color: rgba(75, 117, 121, 0.8);
  }
}
@media only screen and (max-width: 1023px) {
  .office-info .office-info__main {
    background: none;
    padding-left: 0;
    padding-right: 0;
    padding-top: 32px;
    display: block;
  }
}
.office-info__main {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 96px;
}
.office-info__video {
  position: absolute;
  z-index: 1;
  object-fit: cover;
  height: 100%;
  width: 55%;
  top: 0;
  left: 45%;
}
@media only screen and (max-width: 767px) {
  .office-info__video {
    left: 0;
    width: 100%;
  }
}
.office-info img {
  border-radius: 10px;
}
.office-info__opening-hours {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 32px;
}
.office-info__opening-hours .button {
  margin-top: 8px;
}
.office-info__hours {
  margin-bottom: 32px;
}
.office-info__col1 {
  position: relative;
  z-index: 2;
}
@media only screen and (min-width: 1024px) {
  .office-info__col1 {
    padding: 64px 0;
  }
}
.office-info__col2 {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 64px 0;
}
.office-info__col2__content {
  position: relative;
  z-index: 2;
}

.internal-slider {
  clear: both;
  position: relative;
  z-index: 2;
}
.internal-slider__slide-wrapper {
  margin: 0 auto;
  position: relative;
}
@media only screen and (min-width: 1024px) {
  .internal-slider__slide-wrapper {
    margin: 0 -104px 32px -104px;
  }
}
.internal-slider .slick-prev,
.internal-slider .slick-next {
  border: 0;
  background: #fff;
  width: 64px;
  height: 64px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
  transition: transform 0.2s;
}
.internal-slider .slick-prev {
  left: 16px;
}
.internal-slider .slick-prev:before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 32px;
  height: 32px;
  background-size: 100%;
  background-repeat: no-repeat;
  background-position: center;
  background-image: url("./dist/img/svg/arrow-left.svg");
}
.internal-slider .slick-prev:hover {
  transform: translate(-5px, -50%);
}
.internal-slider .slick-next {
  right: 16px;
}
.internal-slider .slick-next:before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 32px;
  height: 32px;
  background-size: 100%;
  background-repeat: no-repeat;
  background-position: center;
  background-image: url("./dist/img/svg/arrow-right.svg");
}
.internal-slider .slick-next:hover {
  transform: translate(5px, -50%);
}
.internal-slider__image {
  border-radius: 40px;
  overflow: hidden;
}
@media only screen and (max-width: 479px) {
  .internal-slider__image {
    height: 250px;
  }
  .internal-slider__image img {
    object-fit: cover;
    width: 100%;
    height: 100%;
  }
}
.internal-slider__item {
  position: relative;
  overflow: hidden;
}
@media only screen and (min-width: 1024px) {
  .internal-slider__item {
    padding-bottom: 64px;
  }
}
@media only screen and (min-width: 1600px) {
  .internal-slider__item {
    padding-bottom: 0;
  }
}
.internal-slider__subheading {
  margin-bottom: 16px;
}
.internal-slider__text {
  position: absolute;
  color: #0b1b26;
  bottom: 24px;
  left: 32px;
  display: none;
  background-color: #fff;
  max-width: 315px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.15);
  border-radius: 20px;
}
@media only screen and (min-width: 480px) {
  .internal-slider__text {
    max-width: 450px;
  }
}
@media only screen and (min-width: 1024px) {
  .internal-slider__text {
    display: block;
  }
}
@media only screen and (min-width: 1600px) {
  .internal-slider__text {
    bottom: 32px;
  }
}
.internal-slider__text-wrapper {
  position: relative;
  z-index: 2;
  transition: transform 0.3s cubic-bezier(0.29, 0.74, 0.41, 0.91), opacity 0.3s;
  transition-delay: 0.5s;
  transform: translateY(50px);
  opacity: 0;
}
@media only screen and (min-width: 599px) {
  .internal-slider__text-wrapper {
    padding: 16px 32px;
  }
}
.slick-current .internal-slider__text-wrapper {
  opacity: 1;
  transform: none;
}

.client-stories-slider {
  border-top-right-radius: 60px;
  margin-top: -64px;
}
.client-stories-slider__item {
  border-radius: 10px;
}
.client-stories-slider__item img {
  border-radius: 10px;
}
@media only screen and (min-width: 1024px) {
  .client-stories-slider__item img {
    border-radius: 18px;
    flex: 1.5;
  }
}
@media only screen and (max-width: 1023px) {
  .client-stories-slider__item img {
    aspect-ratio: 5/3;
    object-fit: cover;
    margin: 0 auto;
  }
}
.client-stories-slider__content {
  display: flex;
  flex-direction: column;
  padding: 16px;
}
@media only screen and (min-width: 1024px) {
  .client-stories-slider__content {
    flex-direction: row;
    gap: 64px;
    align-items: center;
  }
}
.client-stories-slider__author {
  padding-top: 16px;
}
@media only screen and (min-width: 1024px) {
  .client-stories-slider__author {
    padding-top: 32px;
  }
}
.client-stories-slider__text {
  flex: 2;
  text-align: center;
}
@media only screen and (min-width: 1024px) {
  .client-stories-slider__text {
    text-align: left;
  }
}
.client-stories-slider__text__content {
  padding-top: 16px;
  font-family: "Forum", Georgia, serif;
  margin-bottom: 16px;
  text-align: center;
}
.client-stories-slider__text__content p {
  font-size: 18px;
  line-height: 1.5;
}
@media only screen and (min-width: 1024px) {
  .client-stories-slider__text__content {
    padding-right: 16px;
    text-align: left;
    margin-bottom: 32px;
  }
  .client-stories-slider__text__content p {
    font-size: 24px;
  }
}
.client-stories-slider__slider {
  border-radius: 10px;
}
.client-stories-slider__slider .slick-list {
  border-radius: 10px;
}
@media only screen and (min-width: 1024px) {
  .client-stories-slider__slider {
    width: calc(100% - 80px);
  }
}
.client-stories-slider__wrapper {
  position: relative;
}
.client-stories-slider__nav {
  display: flex;
  gap: 32px;
  justify-content: center;
  padding-top: 16px;
}
@media only screen and (min-width: 1024px) {
  .client-stories-slider__nav {
    justify-content: initial;
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 64px;
    display: grid;
    grid-template-rows: 1fr 64px;
    gap: 16px;
    padding-top: 0;
  }
}
.client-stories-slider__prev, .client-stories-slider__next {
  border-radius: 10px;
  background-color: #f7eada;
  padding: 0;
  transition: background-color 0.3s, color 0.3s;
}
.client-stories-slider__prev svg, .client-stories-slider__next svg {
  transition: fill 0.3s;
}
.client-stories-slider__prev:hover, .client-stories-slider__next:hover {
  background-color: #4b7579;
  color: #fff;
}
.client-stories-slider__prev:hover svg, .client-stories-slider__next:hover svg {
  fill: #fff;
}
.client-stories-slider__prev:hover.slick-disabled, .client-stories-slider__next:hover.slick-disabled {
  background-color: #f7eada;
  color: #4b7579;
}
.client-stories-slider__prev:hover.slick-disabled svg, .client-stories-slider__next:hover.slick-disabled svg {
  fill: #0b1b26;
}
@media only screen and (max-width: 1023px) {
  .client-stories-slider__prev, .client-stories-slider__next {
    width: 64px;
    height: 64px;
  }
}
.client-stories-slider__prev {
  display: flex;
  align-items: center;
  justify-content: center;
}
.client-stories-slider__next {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 16px;
}
@media only screen and (max-width: 1023px) {
  .client-stories-slider__next {
    order: 1;
    padding-bottom: 0;
    align-items: center;
  }
}
.client-stories-slider__next.slick-disabled {
  opacity: 0.3;
}
@media only screen and (min-width: 1024px) {
  .client-stories-slider__next-title {
    position: absolute;
    width: max-content;
    top: 16px;
    transform-origin: left;
    transform: rotate(90deg);
    left: 50%;
  }
}

.client-stories-grid {
  position: relative;
  padding-top: 0;
}
.client-stories-grid::before {
  position: absolute;
  top: 100px;
  bottom: 0;
  left: 0;
  right: 0;
  content: "";
  background: #f7eada;
}
@media only screen and (min-width: 768px) {
  .client-stories-grid::before {
    top: 300px;
  }
}
.client-stories-grid__main {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
}
@media only screen and (min-width: 768px) {
  .client-stories-grid__main {
    grid-template-columns: repeat(2, 1fr);
  }
}

.icon-text-columns {
  padding-bottom: 64px;
  position: relative;
  border-bottom-right-radius: 60px;
}
@media only screen and (min-width: 1024px) {
  .icon-text-columns {
    padding-bottom: 96px;
  }
  .home .icon-text-columns {
    padding-top: 0;
  }
}
.icon-text-columns__main {
  position: relative;
  z-index: 2;
  display: grid;
  justify-content: center;
  gap: 48px;
  grid-template-columns: 1fr;
}
@media only screen and (min-width: 480px) {
  .icon-text-columns__main {
    grid-template-columns: 1fr 1fr;
  }
}
@media only screen and (min-width: 1024px) {
  .icon-text-columns__main--3col {
    grid-template-columns: 1fr 1fr 1fr;
  }
}
.icon-text-columns__item {
  width: 100%;
  flex: 1;
  overflow: hidden;
  position: relative;
  display: flex;
  flex-direction: column;
  opacity: 0;
}
@media only screen and (max-width: 479px) {
  .icon-text-columns__item {
    align-items: center;
  }
}
.is-visible .icon-text-columns__item {
  -webkit-animation-duration: 1s;
  -moz-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  -moz-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-animation-name: fadeInUpSmall;
  -moz-animation-name: fadeInUpSmall;
  animation-name: fadeInUpSmall;
  -webkit-animation-iteration-count: 1;
  -moz-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-timing-function: cubic-bezier(0.4, 0.12, 0.1, 1.35);
  -moz-animation-timing-function: cubic-bezier(0.4, 0.12, 0.1, 1.35);
  animation-timing-function: cubic-bezier(0.4, 0.12, 0.1, 1.35);
}
.is-visible .icon-text-columns__item:nth-child(1) {
  animation-delay: 0.25s;
}
.is-visible .icon-text-columns__item:nth-child(2) {
  animation-delay: 0.5s;
}
.is-visible .icon-text-columns__item:nth-child(3) {
  animation-delay: 0.75s;
}
.is-visible .icon-text-columns__item:nth-child(4) {
  animation-delay: 1s;
}
.is-visible .icon-text-columns__item:nth-child(5) {
  animation-delay: 1.25s;
}
.is-visible .icon-text-columns__item:nth-child(6) {
  animation-delay: 1.5s;
}
.icon-text-columns__item.align-center {
  align-items: center;
}
.icon-text-columns__footer-c2a--has-pad {
  padding-top: 32px;
}
@media only screen and (min-width: 1024px) {
  .icon-text-columns__footer-c2a--has-pad {
    padding-top: 64px;
    padding-bottom: 32px;
  }
}
.icon-text-columns__item-text p:last-of-type {
  margin-bottom: 0;
}
.icon-text-columns__item-heading {
  margin-bottom: 16px;
  transition: color 0.5s;
  font-weight: 700;
}
.icon-text-columns__image {
  display: inline-block;
  transition: transform 0.45s cubic-bezier(0.4, 0.12, 0.1, 1.35);
  margin-bottom: 16px;
}
.icon-text-columns__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  align-items: center;
  text-decoration: none;
  color: #0b1b26;
  font-weight: normal;
}
.icon-text-columns__link:hover {
  text-decoration: none;
  color: #0b1b26;
}
.icon-text-columns__subheading {
  display: none;
}
@media only screen and (min-width: 480px) {
  .icon-text-columns__subheading {
    display: block;
  }
}
.icon-text-columns__c2a {
  position: absolute;
  bottom: -48px;
}
.icon-text-columns__c2a svg {
  fill: #4b7579;
  width: 32px;
  height: 32px;
}
.icon-text-columns__footer {
  max-width: 750px;
  margin: 32px auto 0 auto;
  text-align: center;
  padding: 32px;
  background-color: #fff;
  border-radius: 20px;
}
.icon-text-columns__text {
  display: flex;
  flex-direction: column;
}
@media only screen and (max-width: 479px) {
  .icon-text-columns__text {
    text-align: center;
  }
}
.icon-text-columns__text ul {
  display: flex;
  flex-direction: column;
  text-align: left;
  margin: 0;
  padding-left: 16px;
}
.icon-text-columns__text ul li {
  font-size: 14px;
}

/*--------------------------------------------------------------
4.0 Vendor
--------------------------------------------------------------*/
/*! PhotoSwipe main CSS by Dmitry Semenov | photoswipe.com | MIT license */
/*
	Styles for basic PhotoSwipe functionality (sliding area, open/close transitions)
*/
/* pswp = photoswipe */
.pswp {
  display: none;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  overflow: hidden;
  -ms-touch-action: none;
  touch-action: none;
  z-index: 1500;
  -webkit-text-size-adjust: 100%;
  /* create separate layer, to avoid paint on window.onscroll in webkit/blink */
  -webkit-backface-visibility: hidden;
  outline: none;
}

.pswp * {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

.pswp img {
  max-width: none;
}

/* style is added when JS option showHideOpacity is set to true */
.pswp--animate_opacity {
  /* 0.001, because opacity:0 doesn't trigger Paint action, which causes lag at start of transition */
  opacity: 0.001;
  will-change: opacity;
  /* for open/close transition */
  -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
  transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
}

.pswp--open {
  display: block;
}

.pswp--zoom-allowed .pswp__img {
  /* autoprefixer: off */
  cursor: -webkit-zoom-in;
  cursor: -moz-zoom-in;
  cursor: zoom-in;
}

.pswp--zoomed-in .pswp__img {
  /* autoprefixer: off */
  cursor: -webkit-grab;
  cursor: -moz-grab;
  cursor: grab;
}

.pswp--dragging .pswp__img {
  /* autoprefixer: off */
  cursor: -webkit-grabbing;
  cursor: -moz-grabbing;
  cursor: grabbing;
}

/*
	Background is added as a separate element.
	As animating opacity is much faster than animating rgba() background-color.
*/
.pswp__bg {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: #0b1b26;
  opacity: 0;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  will-change: opacity;
}

.pswp__scroll-wrap {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.pswp__container,
.pswp__zoom-wrap {
  -ms-touch-action: none;
  touch-action: none;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}

/* Prevent selection and tap highlights */
.pswp__container,
.pswp__img {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
}

.pswp__zoom-wrap {
  position: absolute;
  width: 100%;
  -webkit-transform-origin: left top;
  -ms-transform-origin: left top;
  transform-origin: left top;
  /* for open/close transition */
  -webkit-transition: -webkit-transform 333ms cubic-bezier(0.4, 0, 0.22, 1);
  transition: transform 333ms cubic-bezier(0.4, 0, 0.22, 1);
}

.pswp__bg {
  will-change: opacity;
  /* for open/close transition */
  -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
  transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
}

.pswp--animated-in .pswp__bg,
.pswp--animated-in .pswp__zoom-wrap {
  -webkit-transition: none;
  transition: none;
}

.pswp__container,
.pswp__zoom-wrap {
  -webkit-backface-visibility: hidden;
}

.pswp__item {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  overflow: hidden;
}

.pswp__img {
  position: absolute;
  width: auto;
  height: auto;
  top: 0;
  left: 0;
}

/*
	stretched thumbnail or div placeholder element (see below)
	style is added to avoid flickering in webkit/blink when layers overlap
*/
.pswp__img--placeholder {
  -webkit-backface-visibility: hidden;
}

/*
	div element that matches size of large image
	large image loads on top of it
*/
.pswp__img--placeholder--blank {
  background: #222;
}

.pswp--ie .pswp__img {
  width: 100% !important;
  height: auto !important;
  left: 0;
  top: 0;
}

/*
	Error message appears when image is not loaded
	(JS option errorMsg controls markup)
*/
.pswp__error-msg {
  position: absolute;
  left: 0;
  top: 50%;
  width: 100%;
  text-align: center;
  font-size: 14px;
  line-height: 16px;
  margin-top: -8px;
  color: #CCC;
}

.pswp__error-msg a {
  color: #CCC;
  text-decoration: underline;
}

/*! PhotoSwipe Default UI CSS by Dmitry Semenov | photoswipe.com | MIT license */
/*

	Contents:

	1. Buttons
	2. Share modal and links
	3. Index indicator ("1 of X" counter)
	4. Caption
	5. Loading indicator
	6. Additional styles (root element, top bar, idle state, hidden state, etc.)

*/
/*

	1. Buttons

 */
/* <button> css reset */
.pswp__button {
  width: 44px;
  height: 44px;
  position: relative;
  background: none;
  cursor: pointer;
  overflow: visible;
  -webkit-appearance: none;
  display: block;
  border: 0;
  padding: 0;
  margin: 0 21px 0 0;
  float: right;
  opacity: 0.75;
  -webkit-transition: opacity 0.2s;
  transition: opacity 0.2s;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.pswp__button--close, .pswp__button--arrow--right {
  margin-right: 0;
}

.pswp__button:focus,
.pswp__button:hover {
  opacity: 1;
}

.pswp__button:active {
  outline: none;
  opacity: 0.9;
}

.pswp__button::-moz-focus-inner {
  padding: 0;
  border: 0;
}

/* pswp__ui--over-close class it added when mouse is over element that should close gallery */
.pswp__ui--over-close .pswp__button--close {
  opacity: 1;
}

.pswp__button,
.pswp__button--arrow--left:before,
.pswp__button--arrow--right:before {
  background-image: url(./photoswipe/default-skin.png);
  background-position: 0 0;
  background-repeat: no-repeat;
  background-size: 264px 88px;
  border-radius: 100%;
  width: 30px;
  height: 30px;
}

@media (-webkit-min-device-pixel-ratio: 1.1), (-webkit-min-device-pixel-ratio: 1.09375), (min-resolution: 105dpi), (min-resolution: 1.1dppx) {
  /* Serve SVG sprite if browser supports SVG and resolution is more than 105dpi */
  .pswp--svg .pswp__button,
.pswp--svg .pswp__button--arrow--left:before,
.pswp--svg .pswp__button--arrow--right:before {
    background-image: url(./photoswipe/default-skin.svg);
  }

  .pswp--svg .pswp__button--arrow--left,
.pswp--svg .pswp__button--arrow--right {
    background: none;
  }
}
.pswp__button--close {
  background-position: -7px -51px;
  background-color: #fff;
}

.pswp__button--share {
  background-position: -50px -51px;
  background-color: #fff;
  display: none;
}

.pswp__button--fs {
  display: none;
  background-position: -7px -7px;
  background-color: #fff;
}

.pswp--supports-fs .pswp__button--fs {
  display: block;
}

.pswp--fs .pswp__button--fs {
  background-position: -59px -7px;
}

.pswp__button--zoom {
  display: none;
  background-position: -94px -7px;
  background-color: #fff;
}

.pswp--zoom-allowed .pswp__button--zoom {
  display: block;
}

.pswp--zoomed-in .pswp__button--zoom {
  background-position: -138px -7px;
}

/* no arrows on touch screens */
.pswp--touch .pswp__button--arrow--left,
.pswp--touch .pswp__button--arrow--right {
  visibility: hidden;
}

/*
	Arrow buttons hit area
	(icon is added to :before pseudo-element)
*/
.pswp__button--arrow--left,
.pswp__button--arrow--right {
  background: none;
  top: 50%;
  margin-top: -50px;
  width: 70px;
  height: 100px;
  position: absolute;
}

.pswp__button--arrow--left {
  left: 0;
}

.pswp__button--arrow--right {
  right: 0;
}

.pswp__button--arrow--left:before,
.pswp__button--arrow--right:before {
  content: "";
  top: 35px;
  background-color: white;
  height: 30px;
  width: 30px;
  border-radius: 100%;
  position: absolute;
}

.pswp__button--arrow--left:before {
  left: 20px;
  background-position: -141px -44px;
}

.pswp__button--arrow--right:before {
  right: 20px;
  background-position: -94px -44px;
}

/*

	2. Share modal/popup and links

 */
.pswp__counter,
.pswp__share-modal {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.pswp__share-modal {
  display: block;
  background: rgba(0, 0, 0, 0.5);
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  padding: 10px;
  position: absolute;
  z-index: 1600;
  opacity: 0;
  -webkit-transition: opacity 0.25s ease-out;
  transition: opacity 0.25s ease-out;
  -webkit-backface-visibility: hidden;
  will-change: opacity;
}

.pswp__share-modal--hidden {
  display: none;
}

.pswp__share-tooltip {
  z-index: 1620;
  position: absolute;
  background: #fff;
  top: 60px;
  border-radius: 2px;
  display: block;
  width: auto;
  right: 60px;
  -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
  -webkit-transform: translateY(6px);
  -ms-transform: translateY(6px);
  transform: translateY(6px);
  -webkit-transition: -webkit-transform 0.25s;
  transition: transform 0.25s;
  -webkit-backface-visibility: hidden;
  will-change: transform;
}

.pswp__share-tooltip a {
  display: block;
  padding: 8px 12px;
  color: #000;
  text-decoration: none;
  font-size: 14px;
  line-height: 18px;
}

.pswp__share-tooltip a:hover {
  text-decoration: none;
  color: #000;
}

.pswp__share-tooltip a:first-child {
  /* round corners on the first/last list item */
  border-radius: 2px 2px 0 0;
}

.pswp__share-tooltip a:last-child {
  border-radius: 0 0 2px 2px;
}

.pswp__share-modal--fade-in {
  opacity: 1;
}

.pswp__share-modal--fade-in .pswp__share-tooltip {
  -webkit-transform: translateY(0);
  -ms-transform: translateY(0);
  transform: translateY(0);
}

/* increase size of share links on touch devices */
.pswp--touch .pswp__share-tooltip a {
  padding: 16px 12px;
}

a.pswp__share--facebook:before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  position: absolute;
  top: -12px;
  right: 15px;
  border: 6px solid transparent;
  border-bottom-color: #fff;
  -webkit-pointer-events: none;
  -moz-pointer-events: none;
  pointer-events: none;
}

a.pswp__share--facebook:hover {
  background: #3e5c9a;
  color: #fff;
}

a.pswp__share--facebook:hover:before {
  border-bottom-color: #3e5c9a;
}

a.pswp__share--twitter:hover {
  background: #55acee;
  color: #fff;
}

a.pswp__share--pinterest:hover {
  background: #ccc;
  color: #ce272d;
}

a.pswp__share--download:hover {
  background: #ddd;
}

/*

	3. Index indicator ("1 of X" counter)

 */
.pswp__counter {
  position: absolute;
  left: 0;
  top: 0;
  height: 44px;
  font-size: 11px;
  line-height: 20px;
  letter-spacing: 1.5px;
  color: #fff;
  padding: 25px 10px 10px 26px;
  font-family: "Montserrat", Helvetica, Arial, sans-serif;
}

/*

	4. Caption

 */
.pswp__caption {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  min-height: 44px;
}

.pswp__caption small {
  font-size: 11px;
  color: #bbb;
}

.pswp__caption__center {
  text-align: left;
  max-width: 420px;
  margin: 0 auto;
  font-size: 18px;
  padding: 10px;
  line-height: 24px;
  color: #ccc;
}

.pswp__caption--empty {
  display: none;
}

/* Fake caption element, used to calculate height of next/prev image */
.pswp__caption--fake {
  visibility: hidden;
}

/*

	5. Loading indicator (preloader)

	You can play with it here - http://codepen.io/dimsemenov/pen/yyBWoR

 */
.pswp__preloader {
  width: 44px;
  height: 44px;
  position: absolute;
  top: 0;
  left: 50%;
  margin-left: -22px;
  opacity: 0;
  -webkit-transition: opacity 0.25s ease-out;
  transition: opacity 0.25s ease-out;
  will-change: opacity;
  direction: ltr;
}

.pswp__preloader__icn {
  width: 20px;
  height: 20px;
  margin: 12px;
}

.pswp__preloader--active {
  opacity: 1;
}

.pswp__preloader--active .pswp__preloader__icn {
  /* We use .gif in browsers that don't support CSS animation */
  background: url(./photoswipe/preloader.gif) 0 0 no-repeat;
}

.pswp--css_animation .pswp__preloader--active {
  opacity: 1;
}

.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn {
  -webkit-animation: clockwise 500ms linear infinite;
  animation: clockwise 500ms linear infinite;
}

.pswp--css_animation .pswp__preloader--active .pswp__preloader__donut {
  -webkit-animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite;
  animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite;
}

.pswp--css_animation .pswp__preloader__icn {
  background: none;
  opacity: 0.75;
  width: 14px;
  height: 14px;
  position: absolute;
  left: 15px;
  top: 15px;
  margin: 0;
}

.pswp--css_animation .pswp__preloader__cut {
  /* 
  	The idea of animating inner circle is based on Polymer ("material") loading indicator 
  	 by Keanu Lee https://blog.keanulee.com/2014/10/20/the-tale-of-three-spinners.html
  */
  position: relative;
  width: 7px;
  height: 14px;
  overflow: hidden;
}

.pswp--css_animation .pswp__preloader__donut {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  width: 14px;
  height: 14px;
  border: 2px solid #fff;
  border-radius: 50%;
  border-left-color: transparent;
  border-bottom-color: transparent;
  position: absolute;
  top: 0;
  left: 0;
  background: none;
  margin: 0;
}

@media screen and (max-width: 1024px) {
  .pswp__preloader {
    position: relative;
    left: auto;
    top: auto;
    margin: 0;
    float: right;
  }
}
@-webkit-keyframes clockwise {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes clockwise {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@-webkit-keyframes donut-rotate {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
  50% {
    -webkit-transform: rotate(-140deg);
    transform: rotate(-140deg);
  }
  100% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
}
@keyframes donut-rotate {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
  50% {
    -webkit-transform: rotate(-140deg);
    transform: rotate(-140deg);
  }
  100% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
}
/*

	6. Additional styles

 */
/* root element of UI */
.pswp__ui {
  -webkit-font-smoothing: auto;
  visibility: visible;
  opacity: 1;
  z-index: 1550;
}

/* top black bar with buttons and "1 of X" indicator */
.pswp__top-bar {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  padding: 32px;
}

.pswp__caption,
.pswp__top-bar,
.pswp--has_mouse .pswp__button--arrow--left,
.pswp--has_mouse .pswp__button--arrow--right {
  -webkit-backface-visibility: hidden;
  will-change: opacity;
  -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
  transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
}

/* pswp--has_mouse class is added only when two subsequent mousemove events occur */
.pswp--has_mouse .pswp__button--arrow--left,
.pswp--has_mouse .pswp__button--arrow--right {
  visibility: visible;
}

.pswp__top-bar,
.pswp__caption {
  background-color: none;
}

/* pswp__ui--fit class is added when main image "fits" between top bar and bottom bar (caption) */
.pswp__ui--fit .pswp__top-bar,
.pswp__ui--fit .pswp__caption {
  background-color: none;
}

/* pswp__ui--idle class is added when mouse isn't moving for several seconds (JS option timeToIdle) */
.pswp__ui--idle .pswp__top-bar {
  opacity: 0;
}

.pswp__ui--idle .pswp__button--arrow--left,
.pswp__ui--idle .pswp__button--arrow--right {
  opacity: 0;
}

/*
	pswp__ui--hidden class is added when controls are hidden
	e.g. when user taps to toggle visibility of controls
*/
.pswp__ui--hidden .pswp__top-bar,
.pswp__ui--hidden .pswp__caption,
.pswp__ui--hidden .pswp__button--arrow--left,
.pswp__ui--hidden .pswp__button--arrow--right {
  /* Force paint & create composition layer for controls. */
  opacity: 0.001;
}

/* pswp__ui--one-slide class is added when there is just one item in gallery */
.pswp__ui--one-slide .pswp__button--arrow--left,
.pswp__ui--one-slide .pswp__button--arrow--right,
.pswp__ui--one-slide .pswp__counter {
  display: none;
}

.pswp__element--disabled {
  display: none !important;
}

.pswp--minimal--dark .pswp__top-bar {
  background: none;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLnNjc3MiLCJfbWl4aW5zLnNjc3MiLCJfZ2xvYmFsLnNjc3MiLCJ2YXJzL19nZW5lcmFsLnNjc3MiLCJ2YXJzL19jb2xvdXJzLnNjc3MiLCJfdHlwb2dyYXBoeS5zY3NzIiwiX2FuaW1hdGUuc2NzcyIsIl9sYXlvdXQuc2NzcyIsIl9oZWxwZXJzLnNjc3MiLCJtb2R1bGVzL19uYXYuc2NzcyIsIm1vZHVsZXMvX3RhYmxlcy5zY3NzIiwibW9kdWxlcy9fYnV0dG9uLnNjc3MiLCJtb2R1bGVzL19oZWFkZXIuc2NzcyIsIm1vZHVsZXMvX2Zvb3Rlci5zY3NzIiwibW9kdWxlcy9fbG9nby5zY3NzIiwibW9kdWxlcy9fc2xpZGVtZW51LnNjc3MiLCJtb2R1bGVzL190b2dnbGUtbmF2LnNjc3MiLCJtb2R1bGVzL19zb2NpYWwtbGlua3Muc2NzcyIsIm1vZHVsZXMvX2NvbnRhY3QtbGluay5zY3NzIiwibW9kdWxlcy9fZXJyb3ItNDA0LnNjc3MiLCJtb2R1bGVzL19ncmFkaWVudC1zaGFkb3cuc2NzcyIsIm1vZHVsZXMvX292ZXJsYXkuc2NzcyIsIm1vZHVsZXMvX3N2Z2ljb24uc2NzcyIsIm1vZHVsZXMvX2F2YXRhci5zY3NzIiwibW9kdWxlcy9fZ2Zvcm0uc2NzcyIsIm1vZHVsZXMvX2xpdHkuc2NzcyIsIm1vZHVsZXMvX2J1cmdlci5zY3NzIiwibW9kdWxlcy9fYmxvY2stbGluay5zY3NzIiwidmFycy9fZ3JhZGllbnRzLnNjc3MiLCJtb2R1bGVzL19zbGljay5zY3NzIiwibW9kdWxlcy9faWNvbi1idWxsZXQtbGlzdC5zY3NzIiwibW9kdWxlcy9fcG9zdC1zaGFyZS5zY3NzIiwibW9kdWxlcy9fbWluaS10ZXN0aW1vbmlhbC5zY3NzIiwibW9kdWxlcy9fYnJlYWRjcnVtYnMuc2NzcyIsIm1vZHVsZXMvX3BsYXktYnV0dG9uLnNjc3MiLCJtb2R1bGVzL19kaXJlY3Rpb25zLWZvcm0uc2NzcyIsImxheW91dHMvX2hlcm8uc2NzcyIsImxheW91dHMvX3NwYWNlci5zY3NzIiwibGF5b3V0cy9fc2VjdGlvbi1oZWFkZXIuc2NzcyIsImxheW91dHMvX3NlcnZpY2UtYmxvY2stbGlua3Muc2NzcyIsImxheW91dHMvX2ltYWdlLXRleHQtcm93LnNjc3MiLCJsYXlvdXRzL19pbWFnZS10ZXh0LWNvbHVtbnMuc2NzcyIsImxheW91dHMvX2NsaWVudC1zdG9yaWVzLnNjc3MiLCJsYXlvdXRzL19jMmEtc2VjdGlvbi5zY3NzIiwibGF5b3V0cy9fZm9ybS1zZWN0aW9uLnNjc3MiLCJsYXlvdXRzL19vbmVjb2wuc2NzcyIsImxheW91dHMvX3VzcHMuc2NzcyIsImxheW91dHMvX2NvbnRhY3QtbWFpbi5zY3NzIiwibGF5b3V0cy9fc2libGluZy1wYWdlLWdyaWQuc2NzcyIsImxheW91dHMvX3BhZ2UtbGluay1ncmlkLnNjc3MiLCJsYXlvdXRzL19kcm9wZG93bi1saXN0LnNjc3MiLCJsYXlvdXRzL19hY2NyZWRpdGF0aW9ucy5zY3NzIiwibGF5b3V0cy9fdHdvY29sLnNjc3MiLCJsYXlvdXRzL19nYWxsZXJ5LnNjc3MiLCJsYXlvdXRzL192aWRlby5zY3NzIiwibGF5b3V0cy9fcGFnZS1oZWFkaW5nLnNjc3MiLCJsYXlvdXRzL19vZmZpY2UtaW5mby5zY3NzIiwibGF5b3V0cy9faW50ZXJuYWwtc2xpZGVyLnNjc3MiLCJsYXlvdXRzL19jbGllbnQtc3Rvcmllcy1zbGlkZXIuc2NzcyIsImxheW91dHMvX2NsaWVudC1zdG9yaWVzLWdyaWQuc2NzcyIsImxheW91dHMvX2ljb24tdGV4dC1jb2x1bW5zLnNjc3MiLCJ2ZW5kb3IvcGhvdG9zd2lwZS9fcGhvdG9zd2lwZS5zY3NzIiwidmVuZG9yL3Bob3Rvc3dpcGUvX2RlZmF1bHQtc2tpbi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBOztBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBd0JBO0FBQUE7QUFBQTtFQUdJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0E7QUFBQTtBQUFBO0FDdkNBO0FDQUE7QUFDQTtFQUNJO0VBQ0E7OztBQUdKO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBeURJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7RUFHSTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtFQUdJOzs7QUFHSjtFQUNJO0VBQ0EsYUNwR0M7RURxR0Q7RUFDQTtFQUNBLE9FakdNO0VGa0dOLFlFMUdNOzs7QUZpSFY7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBVUk7OztBQUdKO0FBQUE7RUFFSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7RUFHSTtFQUNBOzs7QUFLQTtBQUFBO0FBQUE7RUFFSTs7O0FBSVI7QUFBQTtFQUVJOzs7QUFHSjtBQVNJO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUVJO0VBQ0E7OztBQVdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUVJOzs7QUFJUjtBQUVBO0FBQUE7RUFFSTs7O0FBR0o7QUFBQTtFQUVJOzs7QUFJQTtFQUNJOztBQUNBO0VBQ0k7RUFDQTs7QUFJUjtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxPQzVPWDtFRDZPVyxXQzdPWDtFRDhPVyxRQzlPWDtFRCtPVztFQUNBOzs7QUFNaEI7QUFDQTtBQUFBO0VBRUk7OztBQUdKO0FBQ0E7RUFDSTs7O0FBR0o7QUFDQTtBQUFBO0FBQUE7RUFHSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFDQTtBQUFBO0FBQUE7RUFHSTs7O0FBR0o7QUFDQTtBQUFBO0VBRUk7RUFDQTs7O0FBR0o7QUFFQTtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0VBR0k7OztBQUdKO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtFQUdJOzs7QUFHSjtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7RUFHSTtFQUNBOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7RUFFSTs7O0FBR0o7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFDQTtFQUNJO0VBQ0E7OztBQUlBO0VBQ0k7RUFDQTs7O0FBSVI7RUFDSTs7O0FBR0o7RUFDSTs7O0FBR0o7QUFDQTtBQUFBO0FBQUE7RUFHSTs7O0FBQ0Y7QUFFRjtBQUFBO0FBQUE7RUFHSTs7O0FBQ0Y7QUFFRjtBQUFBO0FBQUE7RUFHSTs7O0FBQ0Y7QUFFRjtBQUFBO0VBRUk7OztBQUdKO0VBQ0k7OztBQUdKO0FBQ0E7QUFBQTtBQUFBO0FBQUE7RUFJSTtFQUNBO0VBQ0E7RUFDQSxhQ3ZiQztFRHdiRDs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7RUFJSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0VBRUk7OztBQUdKO0VBQ0k7QUFDQTtBQUFBO0FBQUE7OztBQUtKO0VBQ0k7OztBQUdKO0FBQUE7RUFFSTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU9JLE9FcGVNO0VGcWVOO0VBQ0EsWUU5ZU07RUYrZU47RUFDQTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBTUksT0VqZk07RUZrZk47OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU1JO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0FBQ0E7RUFDSTs7O0FBR0o7RUFDSTs7O0FBSUE7RUFDSTs7O0FHOWhCUjtFQUNJLE9ESUs7RUNITDtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUdJO0VBQ0E7OztBQUlSO0VBQ0k7RUFDQTtFSjhCSTtFQUVJOztBQWRBO0VJcEJaO0lKZ0NRO0lBRUk7Ozs7QUk1Qlo7RUFDSTtFQUNBO0VBQ0EsZUZoQkM7OztBRW1CTDtFQUNJO0VKbUJJO0VBRUk7RUluQlI7RUFDQTs7QUpJUTtFSVJaO0lKb0JRO0lBRUk7Ozs7QUlmWjtBQUFBO0VBRUksYUZoQ0U7RUYyQ0U7RUFFSTtFSVhSO0VBQ0E7O0FKSlE7RUlEWjtBQUFBO0lKYVE7SUFFSTs7OztBSVBaO0FBQUE7RUFFSSxhRnhDRTtFRjJDRTtFQUVJO0VJSFI7O0FKWFE7RUlPWjtBQUFBO0lKS1E7SUFFSTs7OztBSUFaO0FBQUE7RUpGUTtFQUVJO0VJR1I7RUFDQTtFQUNBO0VBQ0E7O0FKcEJRO0VJY1o7QUFBQTtJSkZRO0lBRUk7Ozs7QUlTWjtBQUFBO0VBRUk7RUFDQSxhRnJEQzs7QUV1REQ7QUFBQTtBQUFBO0FBQUE7RUFFSTs7O0FBSVI7QUFBQTtFQUVJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtFQUlJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtFQUlJLE1BQ0k7OztBQU9SO0FBQUE7RUFFSTtFQUNBOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTs7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQ2hKSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDSTtJQUNJOztFQUVKO0lBQ0k7OztBQUlSO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtJQUNJO0lBQ0E7SUFDQTs7RUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBSVI7RUFDSTtJQUNJO0lBQ0E7SUFDQTs7RUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBSVI7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0lBQ0k7SUFDQTtJQUNBOztFQUdKO0lBQ0k7SUFDQTtJQUNBOzs7QUFJUjtFQUNJO0lBQ0k7SUFDQTtJQUNBOztFQUdKO0lBQ0k7SUFDQTtJQUNBOzs7QUFJUjtFQUNJO0lBQ0k7SUFDQTtJQUNBOztFQUdKO0lBQ0k7SUFDQTtJQUNBOzs7QUFJUjtFQUNJO0lBQ0k7SUFDQTtJQUNBOztFQUdKO0lBQ0k7SUFDQTtJQUNBOzs7QUFJUjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7SUFDSTtJQUNBO0lBQ0E7O0VBR0o7SUFDSTtJQUNBO0lBQ0E7OztBQUlSO0VBQ0k7SUFDSTtJQUNBO0lBQ0E7O0VBR0o7SUFDSTtJQUNBO0lBQ0E7OztBQUlSO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtJQUNJO0lBQ0E7SUFDQTs7RUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBSVI7RUFDSTtJQUNJO0lBQ0E7SUFDQTs7RUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBSVI7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0lBQ0k7SUFDQTtJQUNBOztFQUdKO0lBQ0k7SUFDQTtJQUNBOzs7QUFJUjtFQUNJO0lBQ0k7SUFDQTtJQUNBOztFQUdKO0lBQ0k7SUFDQTtJQUNBOzs7QUFJUjtFQUNJO0lBQ0k7SUFDQTtJQUNBOztFQUdKO0lBQ0k7SUFDQTtJQUNBOzs7QUFJUjtFQUNJO0lBQ0k7SUFDQTtJQUNBOztFQUdKO0lBQ0k7SUFDQTtJQUNBOzs7QUFJUjtFQUNJO0lBQ0k7SUFDQTtJQUNBOztFQUdKO0lBQ0k7SUFDQTtJQUNBOzs7QUFJUjtFQUNJO0lBQ0k7SUFDQTtJQUNBOztFQUdKO0lBQ0k7SUFDQTtJQUNBOzs7QUFJUjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7SUFDSTtJQUNBO0lBQ0E7O0VBR0o7SUFDSTtJQUNBO0lBQ0E7OztBQUlSO0VBQ0k7SUFDSTtJQUNBO0lBQ0E7O0VBR0o7SUFDSTtJQUNBO0lBQ0E7OztBQUlSO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtJQUNJO0lBQ0E7SUFDQTs7RUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBSVI7RUFDSTtJQUNJO0lBQ0E7SUFDQTs7RUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBSVI7RUFDSTtJQUNJO0lBQ0E7SUFDQTs7RUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBSVI7RUFDSTtJQUNJO0lBQ0E7SUFDQTs7RUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBSVI7RUFDSTtJQUNJO0lBQ0E7SUFDQTs7RUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBSVI7RUFDSTtJQUNJO0lBQ0E7SUFDQTs7RUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBSVI7RUFDSTtJQUNJO0lBQ0E7SUFDQTs7RUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBSVI7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0lBQ0k7SUFDQTtJQUNBOztFQUdKO0lBQ0k7SUFDQTtJQUNBOzs7QUFJUjtFQUNJO0lBQ0k7SUFDQTtJQUNBOztFQUdKO0lBQ0k7SUFDQTtJQUNBOzs7QUFJUjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7SUFDSTs7RUFFSjtJQUNJOzs7QUFJUjtFQUNJO0lBQ0k7O0VBRUo7SUFDSTs7O0FBSVI7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0lBQ0k7O0VBR0o7SUFDSTtJQUNBO0lBQ0E7OztBQUlSO0VBQ0k7SUFDSTs7RUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBSVI7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0lBQ0k7O0VBR0o7SUFDSTtJQUNBO0lBQ0E7OztBQUlSO0VBQ0k7SUFDSTs7RUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBSVI7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0lBQ0k7O0VBR0o7SUFDSTtJQUNBO0lBQ0E7OztBQUlSO0VBQ0k7SUFDSTs7RUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBSVI7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0lBQ0k7O0VBR0o7SUFDSTtJQUNBO0lBQ0E7OztBQUlSO0VBQ0k7SUFDSTs7RUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBSVI7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0lBQ0k7O0VBR0o7SUFDSTtJQUNBO0lBQ0E7OztBQUlSO0VBQ0k7SUFDSTs7RUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBSVI7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0lBQ0k7O0VBR0o7SUFDSTtJQUNBO0lBQ0E7OztBQUlSO0VBQ0k7SUFDSTs7RUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBSVI7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0lBQ0k7O0VBR0o7SUFDSTtJQUNBO0lBQ0E7OztBQUlSO0VBQ0k7SUFDSTs7RUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBSVI7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0lBQ0k7O0VBR0o7SUFDSTtJQUNBO0lBQ0E7OztBQUlSO0VBQ0k7SUFDSTs7RUFHSjtJQUNJO0lBQ0E7SUFDQTs7O0FBSVI7RUFDSTtJQUNJOztFQUdKO0lBQ0k7SUFDQTtJQUNBOzs7QUFJUjtFQUNJO0lB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Ozs7QUFFRjtBQUNBO0FBQUE7RUFFRTtFQUNBO0VBQ0E7RUFDSTtFQUNKO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNBO0VBQ0E7RUFDUTs7O0FBRVY7RUFDRTtBQUNBO0VBQ0E7RUFDUTs7O0FBRVY7QUFBQTtFQUVFO0VBQ0E7OztBQUVGO0FBQUE7RUFFRTs7O0FBRUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUY7QUFBQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFFRjtBQUFBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0FBQUE7QUFBQTtBQUFBO0FBSUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FDcExGO0FBQ0E7O0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBWUE7O0FBQUE7O0FBQUE7QUFLQTtBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFDQTtFQUVJOzs7QUFHUjtBQUFBO0VBRUk7OztBQUVKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFHSjtBQUNBO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtFQUdJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUNJO0VBQ0E7QUFBQTtBQUFBO0lBR0k7OztFQUVKO0FBQUE7SUFFSTs7O0FBSVI7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtBQUNBO0FBQUE7RUFFSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjs7QUFBQTs7QUFBQTtBQUtBO0FBQUE7RUFFSTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUVKO0FBQ0k7RUFDQTs7O0FBRUo7RUFDSTs7O0FBR0o7RUFDSTs7O0FBRUo7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0FBQ0E7RUFDSTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTs7O0FBRUo7RUFDSTs7O0FBR0o7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKOztBQUFBOztBQUFBO0FBS0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxhM0RyVEM7OztBMkR3VEw7O0FBQUE7O0FBQUE7QUFLQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVKO0VBQ0k7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTs7O0FBR0o7QUFDQTtFQUNJOzs7QUFHSjs7QUFBQTs7QUFBQTs7QUFBQTtBQU9BO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUVKO0FBQ0k7RUFDQTs7O0FBR0o7RUFDSTs7O0FBRUo7RUFDSTtFQUNBOzs7QUFFSjtFQUNJO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFDSTtBQUFBO0FBQUE7QUFBQTtFQUlBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtFQUNJO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7O0FBSVI7RUFDSTtJQUNJO0lBQ0E7O0VBRUo7SUFDSTtJQUNBOzs7QUFJUjtFQUNJO0lBQ0k7SUFDQTs7RUFFSjtJQUNJO0lBQ0E7OztBQUlSO0VBQ0k7SUFDSTtJQUNBOztFQUVKO0lBQ0k7SUFDQTs7RUFFSjtJQUNJO0lBQ0E7OztBQUlSO0VBQ0k7SUFDSTtJQUNBOztFQUVKO0lBQ0k7SUFDQTs7RUFFSjtJQUNJO0lBQ0E7OztBQUlSOztBQUFBOztBQUFBO0FBS0E7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBRUE7RUFDQSxTM0Q5ZkM7OztBMkRpZ0JMO0FBQUE7QUFBQTtBQUFBO0VBSUk7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQ0E7QUFBQTtFQUVJOzs7QUFHSjtBQUFBO0VBRUk7OztBQUdKO0FBQ0E7QUFBQTtFQUVJOzs7QUFHSjtBQUNBO0VBQ0k7OztBQUdKO0FBQUE7RUFFSTs7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUlJO0VBQ0E7OztBQUdKO0FBQ0E7QUFBQTtBQUFBO0VBR0k7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0kiLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG5UaGVtZSBOYW1lOiBEYW5pZWwgSiBSb2JlcnRzXG5UaGVtZSBVUkk6IGh0dHBzOi8vd3d3LmRhbmllbGpyb2JlcnRzLmNvLnVrXG5EZXNjcmlwdGlvbjogQSBiZXNwb2tlIHRoZW1lIGRlc2lnbmVkIGFuZCBkZXZlbG9wZWQgZm9yIERhbmllbCBKIFJvYmVydHMsIGJhc2VkIG9uIHRoZSBVbmRlcmRvZyBCb2lsZXJwbGF0ZS5cbkF1dGhvcjogVW5kZXJkb2cgRGVzaWduXG5BdXRob3IgVVJJOiBodHRwczovL3d3dy51bmRlcmRvZ2Rlc2lnbi5jby51a1xuVGFnczogbGlnaHQsIHJlc3BvbnNpdmUtbGF5b3V0XG5WZXJzaW9uOiAxLjBcbkxpY2Vuc2U6IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYyIG9yIGxhdGVyXG5MaWNlbnNlIFVSSTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0yLjAuaHRtbFxuVGV4dCBEb21haW46IHVkXG5Eb21haW4gUGF0aDogL2xhbmd1YWdlcy9cblxuVGhpcyB0aGVtZSwgbGlrZSBXb3JkUHJlc3MsIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBHUEwuXG5Vc2UgaXQgdG8gbWFrZSBzb21ldGhpbmcgY29vbCwgaGF2ZSBmdW4sIGFuZCBzaGFyZSB3aGF0IHlvdSd2ZSBsZWFybmVkIHdpdGggb3RoZXJzLlxuXG51bmRlcmRvZyBCb2lsZXJwbGF0ZSBpcyBiYXNlZCBvbiBVbmRlcnNjb3JlcyBodHRwOi8vdW5kZXJzY29yZXMubWUvLCAoQykgMjAxMi0yMDE0IEF1dG9tYXR0aWMsIEluYy5cblxuUmVzZXR0aW5nIGFuZCByZWJ1aWxkaW5nIHN0eWxlcyBoYXZlIGJlZW4gaGVscGVkIGFsb25nIHRoYW5rcyB0byB0aGUgZmluZSB3b3JrIG9mXG5FcmljIE1leWVyIGh0dHA6Ly9tZXllcndlYi5jb20vZXJpYy90b29scy9jc3MvcmVzZXQvaW5kZXguaHRtbFxuYWxvbmcgd2l0aCBOaWNvbGFzIEdhbGxhZ2hlciBhbmQgSm9uYXRoYW4gTmVhbCBodHRwOi8vbmVjb2xhcy5naXRodWIuY29tL25vcm1hbGl6ZS5jc3MvXG5hbmQgQmx1ZXByaW50IGh0dHA6Ly93d3cuYmx1ZXByaW50Y3NzLm9yZy9cblxuRG8gbm90IHJlbW92ZSB0aGUgYmVsb3cgc3R5bGVzLiBOZWVkZWQgdG8gcGFzcyB0aGUgJ3RoZW1lIGNoZWNrJy4qL1xuLnN0aWNreSxcbi5nYWxsZXJ5LWNhcHRpb24sXG4uYnlwb3N0YXV0aG9yIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4+Pj4gVEFCTEUgT0YgQ09OVEVOVFNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbjEuMCAtIEdsb2JhbFxuMi4wIC0gTW9kdWxlc1xuMy4wIC0gVGhlbWVcbjQuMCAtIFBhY2thZ2VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbjEuMCBHbG9iYWxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLy9AaW1wb3J0IFwiZ3JpZFwiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcImZ1bmN0aW9uc1wiO1xuQGltcG9ydCBcImdsb2JhbFwiO1xuQGltcG9ydCBcInR5cG9ncmFwaHlcIjtcbkBpbXBvcnQgXCJhbmltYXRlXCI7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbjIuMCBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5AaW1wb3J0IFwibGF5b3V0XCI7XG5AaW1wb3J0IFwiaGVscGVyc1wiO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4zLjAgTW9kdWxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5AaW1wb3J0IFwibW9kdWxlc1wiO1xuQGltcG9ydCBcImxheW91dHNcIjtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuNC4wIFZlbmRvclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5AaW1wb3J0IFwidmVuZG9yXCI7XG4iLCIvKiBNaXhpbnMgKi9cblxuQG1peGluIHRleHQtc2l6ZS1hZGp1c3QoJHNpemUpIHtcbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6ICRzaXplO1xuICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAkc2l6ZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJHJhZGl1cykge1xuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHRvcCwgJGxlZnQsICRibHVyLCAkY29sb3IsICRpbnNldDogZmFsc2UpIHtcbiAgICBAaWYgJGluc2V0IHtcbiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAkdG9wICRsZWZ0ICRibHVyICRjb2xvcjtcbiAgICAgICAgLW1vei1ib3gtc2hhZG93OiBpbnNldCAkdG9wICRsZWZ0ICRibHVyICRjb2xvcjtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgJHRvcCAkbGVmdCAkYmx1ciAkY29sb3I7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogJHRvcCAkbGVmdCAkYmx1ciAkY29sb3I7XG4gICAgICAgIC1tb3otYm94LXNoYWRvdzogJHRvcCAkbGVmdCAkYmx1ciAkY29sb3I7XG4gICAgICAgIGJveC1zaGFkb3c6ICR0b3AgJGxlZnQgJGJsdXIgJGNvbG9yO1xuICAgIH1cbn1cblxuQG1peGluIGZvbnQtc2l6ZSgkZnMtbWFwLCAkZnMtYnJlYWtwb2ludHM6ICRicHMpIHtcbiAgICBAZWFjaCAkZnMtYnJlYWtwb2ludCwgJGZzLWZvbnQtc2l6ZSBpbiAkZnMtbWFwIHtcbiAgICAgICAgQGlmICRmcy1icmVha3BvaW50ID09IG51bGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWFrZS1mb250LXNpemUoJGZzLWZvbnQtc2l6ZSk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgLy8gSWYgJGZzLWZvbnQtc2l6ZSBpcyBhIGtleSB0aGF0IGV4aXN0cyBpblxuICAgICAgICAgICAgLy8gJGZzLWJyZWFrcG9pbnRzLCB1c2UgdGhlIHZhbHVlXG4gICAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGZzLWJyZWFrcG9pbnRzLCAkZnMtYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgICRmcy1icmVha3BvaW50OiBtYXAtZ2V0KCRmcy1icmVha3BvaW50cywgJGZzLWJyZWFrcG9pbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGZzLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtYWtlLWZvbnQtc2l6ZSgkZnMtZm9udC1zaXplKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gVXRpbGl0eSBmdW5jdGlvbiBmb3IgbWl4aW4gZm9udC1zaXplXG5AbWl4aW4gbWFrZS1mb250LXNpemUoJGZzLWZvbnQtc2l6ZSkge1xuICAgIC8vIElmICRmcy1mb250LXNpemUgaXMgYSBsaXN0LCBpbmNsdWRlXG4gICAgLy8gYm90aCBmb250LXNpemUgYW5kIGxpbmUtaGVpZ2h0XG4gICAgQGlmIHR5cGUtb2YoJGZzLWZvbnQtc2l6ZSkgPT0gXCJsaXN0XCIge1xuICAgICAgICBmb250LXNpemU6IG50aCgkZnMtZm9udC1zaXplLCAxKTtcbiAgICAgICAgQGlmIChsZW5ndGgoJGZzLWZvbnQtc2l6ZSkgPiAxKSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogbnRoKCRmcy1mb250LXNpemUsIDIpO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZzLWZvbnQtc2l6ZTtcbiAgICB9XG59XG5cbkBtaXhpbiBjbGVhcmZpeCgpIHtcbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbn1cblxuQG1peGluIGdyYWRpZW50KCR0b3Bjb2xvdXIsICRib3Rjb2xvdXIsICRzdGFydDogMCUsICRzdG9wOiAxMDAlKSB7XG4gICAgYmFja2dyb3VuZDogJHRvcGNvbG91cjtcbiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICR0b3Bjb2xvdXIgJHN0YXJ0LCAkYm90Y29sb3VyICRzdG9wKTtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKCRzdGFydCwgJHRvcGNvbG91ciksIGNvbG9yLXN0b3AoJHN0b3AsICRib3Rjb2xvdXIpKTtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICR0b3Bjb2xvdXIgJHN0YXJ0LCAkYm90Y29sb3VyICRzdG9wKTtcbiAgICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCAkdG9wY29sb3VyICRzdGFydCwgJGJvdGNvbG91ciAkc3RvcCk7XG4gICAgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudCh0b3AsICR0b3Bjb2xvdXIgJHN0YXJ0LCAkYm90Y29sb3VyICRzdG9wKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAkdG9wY29sb3VyICRzdGFydCwgJGJvdGNvbG91ciAkc3RvcCk7XG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuR3JhZGllbnQoR3JhZGllbnRUeXBlPTAsIHN0YXJ0Q29sb3JzdHI9JyN7JHRvcGNvbG91cn0nLCBlbmRDb2xvcnN0cj0nI3skYm90Y29sb3VyfScpO1xuICAgIC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyN7JHRvcGNvbG91cn0nLCBlbmRDb2xvcnN0cj0nI3skYm90Y29sb3VyfScpXCI7XG59XG5cbkBtaXhpbiBhYnNvbHV0ZS1wb3NpdGlvbigkdG9wOiBmYWxzZSwgJHJpZ2h0OiBmYWxzZSwgJGJvdHRvbTogZmFsc2UsICRsZWZ0OiBmYWxzZSkge1xuICAgIEBpZiAkdG9wIHtcbiAgICAgICAgdG9wOiAkdG9wO1xuICAgIH1cbiAgICBAaWYgJHJpZ2h0IHtcbiAgICAgICAgcmlnaHQ6ICRyaWdodDtcbiAgICB9XG4gICAgQGlmICRib3R0b20ge1xuICAgICAgICBib3R0b206ICRib3R0b207XG4gICAgfVxuICAgIEBpZiAkbGVmdCB7XG4gICAgICAgIGxlZnQ6ICRsZWZ0O1xuICAgIH1cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbkBtaXhpbiBicCgkd2lkdGgsICRicmVha3BvaW50KSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoJHdpZHRoOiAkYnJlYWtwb2ludCkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8vIGdlbmVyaWMgdHJhbnNmb3JtXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG4vLyByb3RhdGVcbkBtaXhpbiByb3RhdGUoJGRlZykge1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoI3skZGVnfWRlZykpO1xufVxuXG4vLyBzY2FsZVxuQG1peGluIHNjYWxlKCRzY2FsZSkge1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgkc2NhbGUpKTtcbn1cbi8vIHRyYW5zbGF0ZVxuQG1peGluIHRyYW5zbGF0ZSgkeCwgJHkpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKCR4LCAkeSkpO1xufVxuXG4vLyBBbmltYXRpb25zIC8gVHJhbnNpdGlvbnNcblxuQG1peGluIGFuaW1hdGUoJHRpbWUsICRsYWJlbCwgJGNvdW50OiAxLCAkdGltaW5nOiBsaW5lYXIpIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogJHRpbWU7XG4gICAgLW1vei1hbmltYXRpb24tZHVyYXRpb246ICR0aW1lO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogJHRpbWU7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuICAgIC1tb3otYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ICRsYWJlbDtcbiAgICAtbW96LWFuaW1hdGlvbi1uYW1lOiAkbGFiZWw7XG4gICAgYW5pbWF0aW9uLW5hbWU6ICRsYWJlbDtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6ICRjb3VudDtcbiAgICAtbW96LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6ICRjb3VudDtcbiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAkY291bnQ7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdGltaW5nO1xuICAgIC1tb3otYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogJHRpbWluZztcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdGltaW5nO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbigkdHJhbnNpdGlvbi1wcm9wZXJ0eSwgJHRyYW5zaXRpb24tdGltZSwgJG1ldGhvZCwgJHRyYW5zaXRpb24tZGVsYXk6IDApIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR0cmFuc2l0aW9uLXByb3BlcnR5ICR0cmFuc2l0aW9uLXRpbWUgJG1ldGhvZDtcbiAgICAtbW96LXRyYW5zaXRpb246ICR0cmFuc2l0aW9uLXByb3BlcnR5ICR0cmFuc2l0aW9uLXRpbWUgJG1ldGhvZDtcbiAgICAtbXMtdHJhbnNpdGlvbjogJHRyYW5zaXRpb24tcHJvcGVydHkgJHRyYW5zaXRpb24tdGltZSAkbWV0aG9kO1xuICAgIC1vLXRyYW5zaXRpb246ICR0cmFuc2l0aW9uLXByb3BlcnR5ICR0cmFuc2l0aW9uLXRpbWUgJG1ldGhvZDtcbiAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbi1wcm9wZXJ0eSAkdHJhbnNpdGlvbi10aW1lICRtZXRob2Q7XG5cbiAgICBAaWYgJHRyYW5zaXRpb24tZGVsYXkge1xuICAgICAgICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6ICR0cmFuc2l0aW9uLWRlbGF5O1xuICAgICAgICAtbW96LXRyYW5zaXRpb24tZGVsYXk6ICR0cmFuc2l0aW9uLWRlbGF5O1xuICAgICAgICAtdHJhbnNpdGlvbi1kZWxheTogJHRyYW5zaXRpb24tZGVsYXk7XG4gICAgfVxufVxuXG5AbWl4aW4gYnV0dG9uKCRjb2xvdXIsICRjb2xvdXIyOiAjZmZmLCAkdGV4dC1jb2xvdXI6ICRjLXRleHQpIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAkbGgvMyAkbGggKiAwLjc1O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3VyO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvdXIyO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKCRwLWZvbnQtc2l6ZXMpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjIgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgICBjb2xvcjogJHRleHQtY29sb3VyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycywgYm9yZGVyLWNvbG9yIDAuMnM7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgei1pbmRleDogMTtcblxuICAgIEBpZiAkY29sb3VyICE9IG5vbmUge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigkY29sb3VyLCAxMCUpO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oJGNvbG91ciwgMTAlKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIGJvdHRvbS1ncmFkLXNoYWRvdygkc3RyZW5ndGg6IDAuNDUsICRoZWlnaHQ6IDEwMCUsICRjb2xvdXI6ICRjLWJsYWNrKSB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHJnYmEoJGNvbG91ciwgMCkgMCUsIHJnYmEoJGNvbG91ciwgMCkgMSUsIHJnYmEoJGNvbG91ciwgJHN0cmVuZ3RoKSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQocmdiYSgkY29sb3VyLCAwKSAwJSwgcmdiYSgkY29sb3VyLCAwKSAxJSwgcmdiYSgkY29sb3VyLCAkc3RyZW5ndGgpIDEwMCUpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChyZ2JhKCRjb2xvdXIsIDApIDAlLCByZ2JhKCRjb2xvdXIsIDApIDElLCByZ2JhKCRjb2xvdXIsICRzdHJlbmd0aCkgMTAwJSk7XG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyMwMDAwMDAwMCcsIGVuZENvbG9yc3RyPScjYTYwMDAwMDAnLEdyYWRpZW50VHlwZT0wICk7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgei1pbmRleDogMjtcbn1cblxuQG1peGluIHRvcC1ncmFkLXNoYWRvdygkc3RyZW5ndGg6IDAuNDUsICRoZWlnaHQ6IDEwMCUsICRjb2xvdXI6ICRjLWJsYWNrKSB7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoJGNvbG91ciwgJHN0cmVuZ3RoKSAwJSwgcmdiYSgkY29sb3VyLCAwKSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoJGNvbG91ciwgJHN0cmVuZ3RoKSAwJSwgcmdiYSgkY29sb3VyLCAwKSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKCRjb2xvdXIsICRzdHJlbmd0aCkgMCUsIHJnYmEoJGNvbG91ciwgMCkgMTAwJSk7XG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNhNjAwMDAwMCcsIGVuZENvbG9yc3RyPScjMDAwMDAwMDAnLEdyYWRpZW50VHlwZT0wICk7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgei1pbmRleDogMjtcbn1cblxuQG1peGluIGJvdGgtZ3JhZC1zaGFkb3coKSB7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsIHJnYmEoMCwgMCwgMCwgMC40NSkgMCUsIHJnYmEoMCwgMCwgMCwgMCkgNDAlLCByZ2JhKDAsIDAsIDAsIDApIDUwJSwgcmdiYSgwLCAwLCAwLCAwKSA2MCUsIHJnYmEoMCwgMCwgMCwgMC40NSkgMTAwJSk7XG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDAsIDAsIDAsIDAuNDUpIDAlLCByZ2JhKDAsIDAsIDAsIDApIDQwJSwgcmdiYSgwLCAwLCAwLCAwKSA1MCUsIHJnYmEoMCwgMCwgMCwgMCkgNjAlLCByZ2JhKDAsIDAsIDAsIDAuNDUpIDEwMCUpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwgMCwgMCwgMC40NSkgMCUsIHJnYmEoMCwgMCwgMCwgMCkgNDAlLCByZ2JhKDAsIDAsIDAsIDApIDUwJSwgcmdiYSgwLCAwLCAwLCAwKSA2MCUsIHJnYmEoMCwgMCwgMCwgMC40NSkgMTAwJSk7XG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNhNjAwMDAwMCcsIGVuZENvbG9yc3RyPScjYTYwMDAwMDAnLEdyYWRpZW50VHlwZT0wICk7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgei1pbmRleDogMjtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG59XG4iLCIvKiBHbG9iYWwgU3R5bGVzICovXG46cm9vdCB7XG4gICAgLS1iZ2NvbDogXCJcIjtcbiAgICAtLWJnaW1nOiBcIlwiO1xufVxuXG4vKiBSZXNldCAqL1xuaHRtbCxcbmJvZHksXG5kaXYsXG5zcGFuLFxuYXBwbGV0LFxub2JqZWN0LFxuaWZyYW1lLFxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxucCxcbmJsb2NrcXVvdGUsXG5wcmUsXG5hLFxuYWJicixcbmFjcm9ueW0sXG5hZGRyZXNzLFxuYmlnLFxuY2l0ZSxcbmNvZGUsXG5kZWwsXG5kZm4sXG5lbSxcbmZvbnQsXG5pbnMsXG5rYmQsXG5xLFxucyxcbnNhbXAsXG5zbWFsbCxcbnN0cmlrZSxcbnN0cm9uZyxcbnN1YixcbnN1cCxcbnR0LFxudmFyLFxuZGwsXG5kdCxcbmRkLFxub2wsXG51bCxcbmxpLFxuZmllbGRzZXQsXG5mb3JtLFxubGFiZWwsXG5sZWdlbmQsXG50YWJsZSxcbmNhcHRpb24sXG50Ym9keSxcbnRmb290LFxudGhlYWQsXG50cixcbnRoLFxudGQge1xuICAgIGJvcmRlcjogMDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBmb250LXNpemU6IDEwMCU7XG4gICAgZm9udC1zdHlsZTogaW5oZXJpdDtcbiAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgICBtYXJnaW46IDA7XG4gICAgb3V0bGluZTogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuaHRtbCB7XG4gICAgLy9vdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZm9udC1zaXplOiAxMDAlO1xuICAgIHRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICBmb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbn1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbn1cblxuLmpzLWxvYWRpbmcgKixcbi5qcy1sb2FkaW5nICo6YmVmb3JlLFxuLmpzLWxvYWRpbmcgKjphZnRlciB7XG4gICAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZCAhaW1wb3J0YW50O1xufVxuXG5ib2R5IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZm9udC1mYW1pbHk6ICRmZjtcbiAgICBmb250LXNpemU6IHB4dG9yZW0oJGZ6KTtcbiAgICBsaW5lLWhlaWdodDogMS44O1xuICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgIGJhY2tncm91bmQ6ICRjLWJnO1xuICAgIEBpZiAkdmVydGljYWwtcmh5dGhtID09IHRydWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpIDFweCwgdHJhbnNwYXJlbnQgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlICRsaDtcbiAgICB9XG59XG5cbmltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJvcmRlcjogMDtcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljO1xufVxuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbm1haW4sXG5uYXYsXG5zZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxub2wsXG51bCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxudGFibGUge1xuICAgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbmNhcHRpb24sXG50aCxcbnRkIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbmJsb2NrcXVvdGUsXG5xIHtcbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICB9XG59XG5cbmJsb2NrcXVvdGUsXG5xIHtcbiAgICBxdW90ZXM6IFwiXCIgXCJcIjtcbn1cblxuLyogQ2xlYXJpbmdzICovXG4ud3JhcHBlcixcbi5jbGVhcixcbi5lbnRyeS1jb250ZW50LFxuLmNvbW1lbnQtY29udGVudCxcbi5zaXRlLWhlYWRlcixcbi5zaXRlLWNvbnRlbnQsXG4uc2l0ZS1mb290ZXIsXG4uY2xlYXJmaXgge1xuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB9XG59XG4ud3JhcHBlcixcbi5jbGVhcixcbi5lbnRyeS1jb250ZW50LFxuLmNvbW1lbnQtY29udGVudCxcbi5zaXRlLWhlYWRlcixcbi5zaXRlLWNvbnRlbnQsXG4uc2l0ZS1mb290ZXIsXG4uY2xlYXJmaXgge1xuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG59XG5cbi8qIENvbnRlbnQgKi9cblxuLmJ5bGluZSxcbi51cGRhdGVkIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uc2luZ2xlIC5ieWxpbmUsXG4uZ3JvdXAtYmxvZyAuYnlsaW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5lbnRyeS1jb250ZW50IHtcbiAgICB1bCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IGRpc2M7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkbGgvNDtcbiAgICAgICAgICAgIC8vZm9udC1zaXplOiAkZnogKyAycHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdWw6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgb2wge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBjb3VudGVyLXJlc2V0OiByaGZjLWNvdW50ZXI7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRsaC8yO1xuICAgICAgICBsaSB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgY291bnRlci1pbmNyZW1lbnQ6IHJoZmMtY291bnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGxoICogMS41O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGxoLzI7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogY291bnRlcihyaGZjLWNvdW50ZXIpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkYy1ibGFjaztcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGxoLzQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkbGg7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAkbGg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkbGg7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIEFzaWRlcyAqL1xuLmJsb2cgLmZvcm1hdC1hc2lkZSAuZW50cnktdGl0bGUsXG4uYXJjaGl2ZSAuZm9ybWF0LWFzaWRlIC5lbnRyeS10aXRsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogQ29tbWVudHMgKi9cbi5jb21tZW50LWNvbnRlbnQgYSB7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4vKiBNZWRpYSAqL1xuLnBhZ2UtY29udGVudCBpbWcud3Atc21pbGV5LFxuLmVudHJ5LWNvbnRlbnQgaW1nLndwLXNtaWxleSxcbi5jb21tZW50LWNvbnRlbnQgaW1nLndwLXNtaWxleSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4vKiBNYWtlIHN1cmUgZW1iZWRzIGFuZCBpZnJhbWVzIGZpdCB0aGVpciBjb250YWluZXJzICovXG5lbWJlZCxcbmlmcmFtZSxcbm9iamVjdCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4vKiBTY3JlZW4gUmVhZGVyIFRleHQgKi9cbi5zcnQsXG4uc2NyZWVuLXJlYWRlci10ZXh0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiAtOTk5ZW07XG59XG5cbi8qIEFsaWdubWVudCAqL1xuXG4uYWxpZ25sZWZ0IHtcbiAgICBmbG9hdDogbGVmdDtcbn1cblxuLmFsaWducmlnaHQge1xuICAgIGZsb2F0OiByaWdodDtcbn1cblxuLmFsaWduY2VudGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbmJsb2NrcXVvdGUuYWxpZ25sZWZ0LFxuZmlndXJlLndwLWNhcHRpb24uYWxpZ25sZWZ0LFxuaW1nLmFsaWdubGVmdCB7XG4gICAgbWFyZ2luOiA3cHggMjRweCA3cHggMDtcbn1cblxuLndwLWNhcHRpb24uYWxpZ25sZWZ0IHtcbiAgICBtYXJnaW46IDdweCAxNHB4IDdweCAwO1xufVxuXG5ibG9ja3F1b3RlLmFsaWducmlnaHQsXG5maWd1cmUud3AtY2FwdGlvbi5hbGlnbnJpZ2h0LFxuaW1nLmFsaWducmlnaHQge1xuICAgIG1hcmdpbjogN3B4IDAgN3B4IDI0cHg7XG59XG5cbi53cC1jYXB0aW9uLmFsaWducmlnaHQge1xuICAgIG1hcmdpbjogN3B4IDAgN3B4IDE0cHg7XG59XG5cbmJsb2NrcXVvdGUuYWxpZ25jZW50ZXIsXG5pbWcuYWxpZ25jZW50ZXIsXG4ud3AtY2FwdGlvbi5hbGlnbmNlbnRlciB7XG4gICAgbWFyZ2luLXRvcDogN3B4O1xuICAgIG1hcmdpbi1ib3R0b206IDdweDtcbn1cblxuLnNpdGUtY29udGVudCBibG9ja3F1b3RlLmFsaWdubGVmdCxcbi5zaXRlLWNvbnRlbnQgYmxvY2txdW90ZS5hbGlnbnJpZ2h0IHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgcGFkZGluZy10b3A6IDE3cHg7XG4gICAgd2lkdGg6IDUwJTtcbn1cblxuLnNpdGUtY29udGVudCBibG9ja3F1b3RlLmFsaWdubGVmdCBwLFxuLnNpdGUtY29udGVudCBibG9ja3F1b3RlLmFsaWducmlnaHQgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTdweDtcbn1cblxuLndwLWNhcHRpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG5cbi53cC1jYXB0aW9uIGltZ1tjbGFzcyo9XCJ3cC1pbWFnZS1cIl0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMDtcbn1cblxuLndwLWNhcHRpb24ge1xuICAgIGNvbG9yOiAjNzY3Njc2O1xufVxuXG4ud3AtY2FwdGlvbi10ZXh0IHtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIG1hcmdpbjogOXB4IDA7XG59XG5cbmRpdi53cC1jYXB0aW9uIC53cC1jYXB0aW9uLXRleHQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG59XG5cbmRpdi53cC1jYXB0aW9uLmFsaWducmlnaHQgaW1nW2NsYXNzKj1cIndwLWltYWdlLVwiXSxcbmRpdi53cC1jYXB0aW9uLmFsaWducmlnaHQgLndwLWNhcHRpb24tdGV4dCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG59XG5cbi53cC1zbWlsZXkge1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLyogIENhcHRpb25zICovXG4ud3AtY2FwdGlvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4ud3AtY2FwdGlvbiB7XG4gICAgaW1nW2NsYXNzKj1cIndwLWltYWdlLVwiXSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG59XG5cbi53cC1jYXB0aW9uLXRleHQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLndwLWNhcHRpb24gLndwLWNhcHRpb24tdGV4dCB7XG4gICAgbWFyZ2luOiAwLjgwNzVlbSAwO1xufVxuXG4vKiBGb3JtcyAqL1xuaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIsXG50ZXh0YXJlYTo6LW1vei1wbGFjZWhvbGRlcixcbnNlbGVjdDo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IGN1cnJlbnRDb2xvcjtcbn0gLyogRmlyZWZveCAxOSsgKi9cblxuaW5wdXQ6LW1vei1wbGFjZWhvbGRlcixcbnRleHRhcmVhOi1tb3otcGxhY2Vob2xkZXIsXG5zZWxlY3Q6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IGN1cnJlbnRDb2xvcjtcbn0gLyogRmlyZWZveCAxOC0gKi9cblxuaW5wdXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxudGV4dGFyZWE6LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxuc2VsZWN0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IGN1cnJlbnRDb2xvcjtcbn0gLyogSUUgKi9cblxuaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXG5zZWxlY3Q6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG5cbnRleHRhcmVhOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogY3VycmVudENvbG9yO1xufVxuXG4vKiBGb3JtcyAqL1xuYnV0dG9uLFxuaW5wdXQsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgZm9udC1mYW1pbHk6ICRmZjtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuc2VsZWN0IHtcbiAgICBib3JkZXI6IDA7XG4gICAgaGVpZ2h0OiA1MnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBwYWRkaW5nOiAwICRsaC8yO1xufVxuXG5idXR0b24sXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgICBwYWRkaW5nOiA1cHggJGxoO1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgcGFkZGluZzogMDtcbn1cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gICAgLyotd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXHQtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXHRib3gtc2l6aW5nOiBjb250ZW50LWJveDsqL1xufVxuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuaW5wdXRbdHlwZT1cInRleHRcIl0sXG5pbnB1dFt0eXBlPVwiZW1haWxcIl0sXG5pbnB1dFt0eXBlPVwidXJsXCJdLFxuaW5wdXRbdHlwZT1cInRlbFwiXSxcbmlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG50ZXh0YXJlYSB7XG4gICAgY29sb3I6ICRjLXRleHQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6ICRjLXdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG5pbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXG5pbnB1dFt0eXBlPVwidXJsXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcbnRleHRhcmVhOmZvY3VzIHtcbiAgICBjb2xvcjogJGMtdGV4dDtcbiAgICBvdXRsaW5lOiAwO1xufVxuXG5pbnB1dFt0eXBlPVwidGV4dFwiXSxcbmlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbmlucHV0W3R5cGU9XCJ1cmxcIl0sXG5pbnB1dFt0eXBlPVwidGVsXCJdLFxuaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgcGFkZGluZzogMCAkbGgvMjtcbiAgICBoZWlnaHQ6IDUycHg7XG59XG5cbnRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBwYWRkaW5nOiAkbGgvMjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG5pbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4vKiBXaWRnZXQgKi9cbi53aWRnZXQge1xuICAgIG1hcmdpbjogMCAwIDEuNWVtO1xufVxuXG4ud2lkZ2V0IHNlbGVjdCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4ud2lkZ2V0X3NlYXJjaCB7XG4gICAgLnNlYXJjaC1zdWJtaXQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbiIsIi8vIFZhcmlhYmxlc1xuXG4vLyBGb250c1xuJGZmOiBcIk1vbnRzZXJyYXRcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRmZjI6IFwiRm9ydW1cIiwgR2VvcmdpYSwgc2VyaWY7XG5cbi8vIEJhc2UgdHlwb2dyYXBoeSBzZXR0aW5nc1xuJGZ6OiAxNHB4O1xuJGxoOiAzMnB4O1xuXG4kcC1mb250LXNpemVzOiAoXG4gICAgbnVsbDogKFxuICAgICAgICAxNHB4LFxuICAgICAgICAxLjksXG4gICAgKSxcbiAgICBtZDogKFxuICAgICAgICAxNHB4LFxuICAgICAgICAyLjMsXG4gICAgKSxcbik7XG5cbiRoMS1mb250LXNpemVzOiAoXG4gICAgbnVsbDogKFxuICAgICAgICAyOHB4LFxuICAgICAgICAxLFxuICAgICksXG4gICAgbGc6IChcbiAgICAgICAgNDhweCxcbiAgICAgICAgMS4yLFxuICAgICksXG4pO1xuXG4kaDItZm9udC1zaXplczogKFxuICAgIG51bGw6IChcbiAgICAgICAgMjFweCxcbiAgICAgICAgMS41LFxuICAgICksXG4gICAgbWQ6IChcbiAgICAgICAgMjhweCxcbiAgICAgICAgMS41LFxuICAgICksXG4pO1xuXG4kaDMtZm9udC1zaXplczogKFxuICAgIG51bGw6IChcbiAgICAgICAgMTJweCxcbiAgICAgICAgMS40LFxuICAgICksXG4gICAgbWQ6IChcbiAgICAgICAgMTRweCxcbiAgICAgICAgMS41LFxuICAgICksXG4pO1xuXG4vLyBTaG93IHZlcnRpY2FsIHJoeXRobVxuJHZlcnRpY2FsLXJoeXRobTogZmFsc2U7XG5cbiRjb2xvdXJzOiAoXG4gICAgXCJub25lXCI6IFwibm9uZVwiLFxuICAgIFwid2hpdGVcIjogJGMtd2hpdGUsXG4gICAgXCJibGFja1wiOiAkYy1ibGFjayxcbiAgICBcInRlYWxcIjogJGMtdGVhbCxcbiAgICBcImRuYXZ5XCI6ICRjLWRuYXZ5LFxuICAgIFwiYmVpZ2VcIjogJGMtYmVpZ2UsXG4pO1xuXG4kYy10ZXh0OiAkYy1ibGFjaztcbiRjLWJnOiAkYy13aGl0ZTtcbiRjLXByaW1hcnk6ICRjLXRlYWw7XG5cbiRkYXJrLWNvbG91cnM6IFwiYmxhY2tcIiwgXCJ0ZWFsXCIsIFwiZG5hdnlcIiwgXCJncmV5XCI7XG4kbGlnaHQtY29sb3VyczogXCJ3aGl0ZVwiLCBcImJlaWdlXCI7XG5cbi8vIE90aGVyIENvbG91cnNcblxuLy9mYWNlYm9vay8vXG4kYy1mYWNlYm9vazogIzQzNjE5Yztcbi8vdHdpdHRlci8vXG4kYy10d2l0dGVyOiAjMjRhOWU2O1xuLy9saW5rZWRpbi8vXG4kYy1saW5rZWRpbjogIzE4N2ZiODtcblxuLy8gU3RydWN0dXJlXG4kd3JhcDogMTI1NnB4O1xuXG4vLyBNZWRpYSBRdWVyaWVzXG5cbiRtaW46IG1pbi13aWR0aDtcbiRtYXg6IG1heC13aWR0aDtcbiR4LXNtYWxsOiA0ODBweDtcbiRzbWFsbDogNTk5cHg7XG4kbWVkaXVtOiA3NjhweDtcbiRsYXJnZTogMTAyNHB4O1xuJHgtbGFyZ2U6IDEyMDBweDtcbiR4eC1sYXJnZTogMTQwMHB4O1xuJHN1cGVyOiAxNjAwcHg7XG5cbiRicHM6IChcbiAgICB4czogJHgtc21hbGwsXG4gICAgc206ICRzbWFsbCxcbiAgICBtZDogJG1lZGl1bSxcbiAgICBsZzogJGxhcmdlLFxuICAgIHhsOiAkeC1sYXJnZSxcbiAgICB4eGw6ICR4eC1sYXJnZSxcbiAgICBzdXBlcjogJHN1cGVyLFxuKTtcblxuJGd1dHRlcjogJGxoO1xuIiwiLy93aGl0ZS8vXG4kYy13aGl0ZTogI2ZmZmZmZjtcbi8vYmVpZ2UvL1xuJGMtYmVpZ2U6ICNmN2VhZGE7XG4vL3RlYWwvL1xuJGMtdGVhbDogIzRiNzU3OTtcbi8vZG5hdnkvL1xuJGMtZG5hdnk6ICMxNTM0NDA7XG4vL2JsYWNrLy9cbiRjLWJsYWNrOiAjMGIxYjI2O1xuIiwiYSB7XG4gICAgY29sb3I6ICRjLXByaW1hcnk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxufVxuXG5wIHtcbiAgICBtYXJnaW4tYm90dG9tOiBweHRvcmVtKCRsaCk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJHAtZm9udC1zaXplcyk7XG59XG5cbi5wLXNtYWxsIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBtYXJnaW4tYm90dG9tOiAkbGg7XG59XG5cbi5wcmVoZWFkaW5nIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgkaDMtZm9udC1zaXplcyk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogODAwO1xufVxuXG5oMTpub3QoLmZ6LWhlcm8pLFxuLmgxIHtcbiAgICBmb250LWZhbWlseTogJGZmMjtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJGgxLWZvbnQtc2l6ZXMpO1xuICAgIG1hcmdpbi1ib3R0b206IHB4dG9yZW0oJGxoICogMC43NSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5oMixcbi5oMiB7XG4gICAgZm9udC1mYW1pbHk6ICRmZjI7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKCRoMi1mb250LXNpemVzKTtcbiAgICBtYXJnaW4tYm90dG9tOiBweHRvcmVtKCRsaCAqIDAuNzUpO1xufVxuXG5oMyxcbi5oMyB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKCRoMy1mb250LXNpemVzKTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDEuNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IHB4dG9yZW0oJGxoLzIpO1xufVxuXG51bCxcbm9sIHtcbiAgICBtYXJnaW4tYm90dG9tOiBweHRvcmVtKCRsaCk7XG4gICAgbWFyZ2luLWxlZnQ6ICRsaDtcblxuICAgIHVsLFxuICAgIG9sIHtcbiAgICAgICAgbWFyZ2luOiAwIHB4dG9yZW0oJGxoKTtcbiAgICB9XG59XG5cbmIsXG5zdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5kZm4sXG5jaXRlLFxuZW0sXG5pIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbmJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMCAxLjVlbTtcbn1cblxuYWRkcmVzcyB7XG4gICAgbWFyZ2luOiAwIDAgMS41ZW07XG59XG5cbnByZSB7XG4gICAgYmFja2dyb3VuZDogI2VlZTtcbiAgICBmb250LWZhbWlseTogXCJDb3VyaWVyIDEwIFBpdGNoXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIG1hcmdpbi1ib3R0b206IDEuNmVtO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBwYWRkaW5nOiAxLjZlbTtcbn1cblxuY29kZSxcbmtiZCxcbnR0LFxudmFyIHtcbiAgICBmb250OlxuICAgICAgICAxNXB4IE1vbmFjbyxcbiAgICAgICAgQ29uc29sYXMsXG4gICAgICAgIFwiQW5kYWxlIE1vbm9cIixcbiAgICAgICAgXCJEZWphVnUgU2FucyBNb25vXCIsXG4gICAgICAgIG1vbm9zcGFjZTtcbn1cblxuYWJicixcbmFjcm9ueW0ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzY2NjtcbiAgICBjdXJzb3I6IGhlbHA7XG59XG5cbm1hcmssXG5pbnMge1xuICAgIGJhY2tncm91bmQ6ICNmZmY5YzA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5zdXAsXG5zdWIge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGhlaWdodDogMDtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICAgIGJvdHRvbTogMWV4O1xufVxuXG5zdWIge1xuICAgIHRvcDogMC41ZXg7XG59XG5cbnNtYWxsIHtcbiAgICBmb250LXNpemU6IDc1JTtcbn1cblxuYmlnIHtcbiAgICBmb250LXNpemU6IDEyNSU7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG4vKiFcbkFuaW1hdGUuY3NzIC0gaHR0cDovL2RhbmVkZW4ubWUvYW5pbWF0ZVxuTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIC0gaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuQ29weXJpZ2h0IChjKSAyMDE0IERhbmllbCBFZGVuXG4qL1xuXG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbi5mYWRlSW4ge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJbjtcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZUluO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluRG93biB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluRG93biB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG59XG5cbi5mYWRlSW5Eb3duIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluRG93blNtYWxsIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAlLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAlLCAwKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluRG93blNtYWxsIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAlLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAlLCAwKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5Eb3duQmlnIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluRG93bkJpZyB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxufVxuXG4uZmFkZUluRG93bkJpZyB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluRG93bkJpZztcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZUluRG93bkJpZztcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbkxlZnQge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbkxlZnQge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxufVxuXG4uZmFkZUluTGVmdCB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluTGVmdDtcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZUluTGVmdDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbkxlZnRCaWcge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5MZWZ0QmlnIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG59XG5cbi5mYWRlSW5MZWZ0QmlnIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5MZWZ0QmlnO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5MZWZ0QmlnO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluUmlnaHRWU21hbGwge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDMlLCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzJSwgMCwgMCk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblJpZ2h0VlNtYWxsIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzJSwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMyUsIDAsIDApO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgIH1cbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJblJpZ2h0U21hbGwge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwJSwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAlLCAwLCAwKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluUmlnaHRTbWFsbCB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAlLCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMCUsIDAsIDApO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgIH1cbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJblJpZ2h0IHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluUmlnaHQge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgIH1cbn1cblxuLmZhZGVJblJpZ2h0IHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5SaWdodDtcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5SaWdodEJpZyB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5SaWdodEJpZyB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgIH1cbn1cblxuLmZhZGVJblJpZ2h0QmlnIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5SaWdodEJpZztcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHRCaWc7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5VcCB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblVwIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5VcFNtYWxsIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMCUsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwJSwgMCk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblVwU21hbGwge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwJSwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAlLCAwKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgd2VsY29tZUludHJvIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMCUsIDApIHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAlLCAwKSByb3RhdGUoOTBkZWcpO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSByb3RhdGUoOTBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHJvdGF0ZSg5MGRlZyk7XG4gICAgfVxufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluVXBWU21hbGwge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDUlLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA1JSwgMCk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblVwVlNtYWxsIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA1JSwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNSUsIDApO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgIH1cbn1cblxuLmZhZGVJblVwIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcDtcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZUluVXA7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5VcEJpZyB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5VcEJpZyB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgIH1cbn1cblxuLmZhZGVJblVwQmlnIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcEJpZztcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZUluVXBCaWc7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0IHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0IHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbn1cblxuLmZhZGVPdXQge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0RG93biB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXREb3duIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB9XG59XG5cbi5mYWRlT3V0RG93biB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dERvd247XG4gICAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXREb3duO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dERvd25CaWcge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dERvd25CaWcge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICB9XG59XG5cbi5mYWRlT3V0RG93bkJpZyB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dERvd25CaWc7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXREb3duQmlnO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dExlZnQge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXRMZWZ0IHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIH1cbn1cblxuLmZhZGVPdXRMZWZ0IHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0TGVmdDtcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZU91dExlZnQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0TGVmdEJpZyB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXRMZWZ0QmlnIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICB9XG59XG5cbi5mYWRlT3V0TGVmdEJpZyB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dExlZnRCaWc7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRMZWZ0QmlnO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dFJpZ2h0IHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dFJpZ2h0IHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB9XG59XG5cbi5mYWRlT3V0UmlnaHQge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRSaWdodDtcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZU91dFJpZ2h0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dFJpZ2h0QmlnIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXRSaWdodEJpZyB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICAgIH1cbn1cblxuLmZhZGVPdXRSaWdodEJpZyB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dFJpZ2h0QmlnO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0UmlnaHRCaWc7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0VXAge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXRVcCB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICB9XG59XG5cbi5mYWRlT3V0VXAge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRVcDtcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZU91dFVwO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dFVwU21hbGwge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMCUsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMCUsIDApO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0VXBTbWFsbCB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwJSwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwJSwgMCk7XG4gICAgfVxufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dFVwQmlnIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dFVwQmlnIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICB9XG59XG5cbi5mYWRlT3V0VXBCaWcge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRVcEJpZztcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZU91dFVwQmlnO1xufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlck92YWwxIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMCUsIDUlLCAwKSBzY2FsZSgwLjk1KSByb3RhdGUoMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAlLCA1JSwgMCkgc2NhbGUoMC45NSkgcm90YXRlKDBkZWcpO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwLjk7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSBzY2FsZSgxKSByb3RhdGUoMTZkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHNjYWxlKDEpIHJvdGF0ZSgxNmRlZyk7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlck92YWwyIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNSUsIC01JSwgMCkgc2NhbGUoMC45NSkgcm90YXRlKDBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01JSwgLTUlLCAwKSBzY2FsZSgwLjk1KSByb3RhdGUoMGRlZyk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDAuMjtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHNjYWxlKDEpIHJvdGF0ZSgxNmRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnN0cmFuc2xhdGUzZCgwLCAwLCAwKSBzY2FsZSgxKSByb3RhdGUoMTZkZWcpO1xuICAgIH1cbn1cbiIsIi8vIFRoZW1lIEJhc2VkIHN0eWxlc1xuQHZpZXctdHJhbnNpdGlvbiB7XG4gICAgbmF2aWdhdGlvbjogYXV0bztcbn1cblxuOjp2aWV3LXRyYW5zaXRpb24tbmV3KHJvb3QpIHtcbiAgICBhbmltYXRpb246IGZhZGUgMXMgZWFzZSBib3RoO1xufVxuXG5Aa2V5ZnJhbWVzIGZhZGUge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG4ud3JhcCB7XG4gICAgbWF4LXdpZHRoOiAkd3JhcDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiAwICRsaDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICYtLW5hcnJvdyB7XG4gICAgICAgIG1heC13aWR0aDogNzIwcHg7XG4gICAgICAgIHBhZGRpbmc6IDAgJGxoO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJwKCRtaW4sICRzdXBlcikge1xuICAgICAgICBtYXgtd2lkdGg6IDE0NDBweDtcblxuICAgICAgICAmLS1uYXJyb3cge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA4NTBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNpdGUtbWFpbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG5cbiAgICAuc2luZ2xlLWNhc2Utc3R1ZGllcyAmIHtcbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwcHg7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGMtYmVpZ2U7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICB0b3A6IDMwMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5zZWN0aW9uIHtcbiAgICBwYWRkaW5nOiAkbGggMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmhhcygrIC5jbGllbnQtc3Rvcmllcy1zbGlkZXIpIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRsaCAqIDM7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgIHBhZGRpbmc6ICRsaCAqIDIgMDtcblxuICAgICAgICAmOmhhcygrIC5jbGllbnQtc3Rvcmllcy1zbGlkZXIpIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkbGggKiA0O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyogSGVscGVyIHN0eWxlcyAqL1xuXG4uYWxpZ24tbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5hbGlnbi1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uYWxpZ24tY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYWxpZ24tanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbn1cbi5mbG9hdC1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xufVxuLmZsb2F0LXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbn1cbi5jbGVhcmZpeCB7XG4gICAgKnpvb206IDE7XG59XG4uY2xlYXJmaXg6YmVmb3JlLFxuLmNsZWFyZml4OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbn1cbi5jbGVhcmZpeDphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG59XG5cbi52YWxpZ24ge1xuICAgICYtLXRvcCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgICYtLW1pZGRsZSB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJi0tYm90dG9tIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIH1cbn1cblxuQGVhY2ggJGNvbG91ciwgJGNvbG9yIGluICRjb2xvdXJzIHtcbiAgICAuYy0tI3skY29sb3VyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5iZyB7XG4gICAgQGVhY2ggJGNvbG91ciwgJGJnY29sb3IgaW4gJGNvbG91cnMge1xuICAgICAgICAmLS0jeyRjb2xvdXJ9IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZ2NvbG9yO1xuXG4gICAgICAgICAgICBAaWYgY29udGFpbnMoJGRhcmstY29sb3VycywgJGNvbG91cikge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgICAgICAgICAgICAgYTpub3QoW2NsYXNzKj1cImJ1dHRvblwiXSkge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGMtdGVhbDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuaWNvbi1idWxsZXQtbGlzdF9faWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICNmZmY7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICgkY29sb3VyID09IFwidGVhbFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGE6bm90KFtjbGFzcyo9XCJidXR0b25cIl0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLnNlY3Rpb24taGVhZGVyX19wcmVoZWFkaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgPiBoMSxcbiAgICAgICAgICAgICAgICAgICAgLmgxLFxuICAgICAgICAgICAgICAgICAgICA+IGgyLFxuICAgICAgICAgICAgICAgICAgICA+IC5oMiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGMtYmVpZ2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiBjb250YWlucygkbGlnaHQtY29sb3VycywgJGNvbG91cikge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuXG4gICAgICAgICAgICAgICAgLmljb24tYnVsbGV0LWxpc3RfX2ljb24ge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYy10ZXh0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgID4gaDEsXG4gICAgICAgICAgICAgICAgPiAuaDEsXG4gICAgICAgICAgICAgICAgPiBoMixcbiAgICAgICAgICAgICAgICA+IC5oMixcbiAgICAgICAgICAgICAgICA+IGgzLFxuICAgICAgICAgICAgICAgID4gLmgzIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjLWJsYWNrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmhhcy1iZy1pbWcge1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG5AZWFjaCAkY29sb3VyLCAkZmlsbCBpbiAkY29sb3VycyB7XG4gICAgLmYtLSN7JGNvbG91cn0ge1xuICAgICAgICBmaWxsOiAkZmlsbDtcbiAgICB9XG59XG5cbi5mZiB7XG4gICAgZm9udC1mYW1pbHk6ICRmZjtcbn1cblxuLmZmMiB7XG4gICAgZm9udC1mYW1pbHk6ICRmZjI7XG59XG5cbi8vIE1hcmdpblxuXG4ubS1ub25lIHtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cblxuLm1iLW5vbmUge1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLm1iLWhhbGYge1xuICAgIG1hcmdpbi1ib3R0b206ICRsaC8yICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5tYi1xdHIge1xuICAgIG1hcmdpbi1ib3R0b206ICRsaC80ICFpbXBvcnRhbnQ7XG59XG5cbi5tYiB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGxoICFpbXBvcnRhbnQ7XG59XG5cbi5tYi0yeCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGxoICogMiAhaW1wb3J0YW50O1xufVxuXG4ubXQtaGFsZiB7XG4gICAgbWFyZ2luLXRvcDogJGxoLzIgIWltcG9ydGFudDtcbn1cblxuLm10IHtcbiAgICBtYXJnaW4tdG9wOiAkbGggIWltcG9ydGFudDtcbn1cblxuLm10LTJ4IHtcbiAgICBtYXJnaW4tdG9wOiAkbGggKiAyICFpbXBvcnRhbnQ7XG59XG5cbi8vIFBhZGRpbmdcblxuLnAtbm9uZSB7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuXG4ucC1hbGwge1xuICAgIHBhZGRpbmc6ICRsaCAhaW1wb3J0YW50O1xufVxuXG4ucC1oYWxmIHtcbiAgICBwYWRkaW5nOiAkbGgvMiAhaW1wb3J0YW50O1xufVxuXG4ucHQtbm9uZSB7XG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbn1cblxuLnB0LWhhbGYge1xuICAgIHBhZGRpbmctdG9wOiAkbGgvMiAhaW1wb3J0YW50O1xufVxuXG4ucHQge1xuICAgIHBhZGRpbmctdG9wOiAkbGggIWltcG9ydGFudDtcbn1cblxuLnB0LTJ4IHtcbiAgICBwYWRkaW5nLXRvcDogJGxoICogMiAhaW1wb3J0YW50O1xufVxuXG4ucHQtNHgge1xuICAgIHBhZGRpbmctdG9wOiAkbGggKiA0ICFpbXBvcnRhbnQ7XG59XG4ucGItbm9uZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLnBiLWhhbGYge1xuICAgIHBhZGRpbmctYm90dG9tOiAkbGgvMiAhaW1wb3J0YW50O1xufVxuXG4ucGItaGFsZiB7XG4gICAgcGFkZGluZy1ib3R0b206ICRsaC8yICFpbXBvcnRhbnQ7XG59XG5cbi5wYiB7XG4gICAgcGFkZGluZy1ib3R0b206ICRsaCAhaW1wb3J0YW50O1xufVxuXG4ucGItMngge1xuICAgIHBhZGRpbmctYm90dG9tOiAkbGggKiAyICFpbXBvcnRhbnQ7XG59XG5cbi5wYi00eCB7XG4gICAgcGFkZGluZy1ib3R0b206ICRsaCAqIDQgIWltcG9ydGFudDtcbn1cblxuLnBsIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRsaCAhaW1wb3J0YW50O1xufVxuXG4ucGwtMngge1xuICAgIHBhZGRpbmctbGVmdDogJGxoICogMiAhaW1wb3J0YW50O1xufVxuXG4ucGwtNHgge1xuICAgIHBhZGRpbmctbGVmdDogJGxoICogNCAhaW1wb3J0YW50O1xufVxuXG4vLyBSZXNwb25zaXZlXG5cbi5tb2Itb25seSB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBpbmNsdWRlIGJwKCRtYXgsICRsYXJnZSAtIDEpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG4uZHQtb25seSB7XG4gICAgQGluY2x1ZGUgYnAoJG1heCwgJGxhcmdlIC0gMSkge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4udG8tdGFiIHtcbiAgICBAaW5jbHVkZSBicCgkbWluLCAkbWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5mcm9tLXRhYiB7XG4gICAgQGluY2x1ZGUgYnAoJG1heCwgJG1lZGl1bSAtIDEpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJwKCRtaW4sICRtZWRpdW0pIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi8vIERpc3BsYXlcblxuLmRiIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmRpYiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZGYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAmLS1jb2wge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbn1cblxuLmhhcy1pY29uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMTBweDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgIH1cbn1cblxuLmxoIHtcbiAgICAmLS1ub3JtYWwge1xuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIH1cbn1cblxuLy8gVGV4dCBUcmFuc2Zvcm1cblxuLnR0LXVwcGVyIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4vLyBPdmVyZmxvd1xuXG4ub3ZlcmZsb3ctaCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8gT3JkZXJcblxuLm9yZGVyLTEge1xuICAgIEBpbmNsdWRlIGJwKCRtYXgsICRzbWFsbCAtIDEpIHtcbiAgICAgICAgb3JkZXI6IDE7XG4gICAgfVxuXG4gICAgJi1zbSB7XG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRzbWFsbCkge1xuICAgICAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5vcmRlci0yIHtcbiAgICBAaW5jbHVkZSBicCgkbWF4LCAkc21hbGwgLSAxKSB7XG4gICAgICAgIG9yZGVyOiAyO1xuICAgIH1cblxuICAgICYtc20ge1xuICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkc21hbGwpIHtcbiAgICAgICAgICAgIG9yZGVyOiAyO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBQb3NpdGlvblxuXG4ucG9zciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vLyBJbWFnZVxuXG4uaW1hZ2UtYXMtYmcge1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIG9iamVjdC1wb3NpdGlvbjogcmlnaHQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgJi0taGFsZiB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgfVxufVxuXG4uaW1hZ2UtY29udGFpbiB7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi8vIFNlY3Rpb24gQmFja2dyb3VuZFxuXG4uc2VjdGlvbi1iYWNrZ3JvdW5kIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xufVxuXG4uaGFzLWRpdmlkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA3MDBweDtcbiAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIH1cblxuICAgIEBlYWNoICRjb2xvdXIsICRiZ2NvbG9yIGluICRjb2xvdXJzIHtcbiAgICAgICAgJi5iZy0tI3skY29sb3VyfSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpZiBjb250YWlucygkZGFyay1jb2xvdXJzLCAkY29sb3VyKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmIGNvbnRhaW5zKCRsaWdodC1jb2xvdXJzLCAkY29sb3VyKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLWJsYWNrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuYmctLW5vbmUge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy1ibGFjaztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmJ1dHRvbi1zZXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAkbGgvMjtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgQGluY2x1ZGUgYnAoJG1pbiwgJHNtYWxsKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgfVxufVxuXG4vLyBUaWNrIExpc3RcblxuLnRpY2stbGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGxoO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbGgvMjtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgd2lkdGg6IDIycHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA0cHg7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmRyb3Bkb3duLWxpc3RfX2l0ZW0gJiB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi9kaXN0L2ltZy9zdmcvb3ZhbC10aWNrLW1ibHVlLnN2Z1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNyb3NzLWxpc3Qge1xuICAgIG1hcmdpbjogMDtcbiAgICBsaSB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRsaDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGxoLzI7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHdpZHRoOiAyMnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyMnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi9kaXN0L2ltZy9zdmcvb3ZhbC1jcm9zcy5zdmdcIik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA0cHg7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNb2R1bGUgOiBNYWluIE5hdmlnYXRpb25cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4ubWFpbi1uYXZpZ2F0aW9uIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAubm8tanMgJiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYy1iZWlnZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5tYWluLW5hdmlnYXRpb25fX3N1Ym1lbnUtdG9nZ2xlIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLm1haW4tbmF2aWdhdGlvbl9fc3VibWVudS10b2dnbGVfX2ljb24ge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYy1iZWlnZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShcbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICBudWxsOiAoXG4gICAgICAgICAgICAgICAgICAgIDI4cHgsXG4gICAgICAgICAgICAgICAgICAgIDEuNSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIG1kOiAoXG4gICAgICAgICAgICAgICAgICAgIDM2cHgsXG4gICAgICAgICAgICAgICAgICAgIDEuMixcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGxnOiAoXG4gICAgICAgICAgICAgICAgICAgIDQycHgsXG4gICAgICAgICAgICAgICAgICAgIDEuMixcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmZjI7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGN1YmljLWJlemllcigwLjQ2LCAwLjk2LCAwLjQzLCAwLjk0KSAwLjJzLCBjb2xvciAwLjJzIGN1YmljLWJlemllcigwLjQ2LCAwLjk2LCAwLjQzLCAwLjk0KSAwLjJzO1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMzBweCk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgICZfX3N1Ym1lbnUtdG9nZ2xlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogJGxoLzI7XG4gICAgICAgIHRvcDogMnB4O1xuICAgICAgICB3aWR0aDogJGxoO1xuICAgICAgICBoZWlnaHQ6ICRsaDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICB3aWR0aDogJGxoICogMS4yO1xuICAgICAgICAgICAgaGVpZ2h0OiAkbGggKiAxLjI7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy13aGl0ZTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuMTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJHNtYWxsKSB7XG4gICAgICAgICAgICByaWdodDogLSN7JGxoICogMn07XG4gICAgICAgICAgICB0b3A6IDdweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRtZWRpdW0pIHtcbiAgICAgICAgICAgIHJpZ2h0OiAtI3skbGggKiAyLjV9O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgICAgICB0b3A6IDExcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGZpbGw6ICRjLXdoaXRlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgd2lkdGg6ICRsaCAqIDAuNzU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRsaCAqIDAuNzU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGZpbGwgMC4ycztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm1lbnUtbWFpbi1uYXZpZ2F0aW9uLWNvbnRhaW5lciA+IHVsIGxpIHtcbiAgICBmbGV4OiAxO1xuICAgIC0tbmF2SXRlbUJnOiB1cmwoXCJcIik7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1uYXZJdGVtQmcpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAvLyBjb250ZW50OiAnJztcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgY2xpcC1wYXRoOiBpbnNldCgzMHB4LCAzMHB4LCAzMHB4LCAzMHB4KTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYy1ibGFjaztcbiAgICB9XG5cbiAgICAmLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW4ge1xuICAgICAgICA+IGEge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRzbWFsbCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1haW4tbmF2aWdhdGlvbl9fc3VibWVudS10b2dnbGUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubm8tZmxleGJveCAmIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgPiBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgLm5vLWZsZXhib3ggJiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkbGgvMiAkbGggKiAyO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNb2R1bGUgOiBUYWJsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKiBDb29raWVzIFRhYmxlICovXG5cbiNjb29raWVzLXRhYmxlIHtcbiAgICBib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7XG4gICAgYm9yZGVyOjFweCBzb2xpZCAjZTdlN2U3O1xuICAgIGJvcmRlci10b3A6MDtcbiAgICBib3JkZXItbGVmdDowO1xuICAgIHRleHQtYWxpZ246bGVmdDtcbn1cbiNjb29raWVzLXRhYmxlIHRkLCAjY29va2llcy10YWJsZSB0aCB7XG4gICAgYm9yZGVyLXRvcDoxcHggc29saWQgI2U3ZTdlNztcbiAgICBib3JkZXItbGVmdDoxcHggc29saWQgI2U3ZTdlNztcbiAgICBwYWRkaW5nOjVweDtcbn1cbiNjb29raWVzLXRhYmxlIHRoZWFkIHRoIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG4gICAgYmFja2dyb3VuZDojZjdmN2Y3O1xufVxuI2Nvb2tpZXMtdGFibGUgdGJvZHkgdGQge1xuICAgIHZlcnRpY2FsLWFsaWduOnRvcDtcbn0iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1vZHVsZSA6IEJ1dHRvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5idXR0b24ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbigkYy1wcmltYXJ5LCAkYy1wcmltYXJ5LCAjZmZmKTtcblxuICAgIEBlYWNoICRjb2xvdXIsICRjb2xvciBpbiAkY29sb3VycyB7XG4gICAgICAgICYtLSN7JGNvbG91cn0ge1xuICAgICAgICAgICAgQGlmIGNvbnRhaW5zKCRkYXJrLWNvbG91cnMsICRjb2xvdXIpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oJGNvbG9yLCAkY29sb3IsICNmZmYpO1xuXG4gICAgICAgICAgICAgICAgQGlmICgkY29sb3VyID09IFwidGVhbFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXI6bm90KC5idXR0b24tLW5vLWhvdmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy1ibGFjaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGMtYmxhY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGMtd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaWYgKCRjb2xvdXIgPT0gXCJibGFja1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXI6bm90KC5idXR0b24tLW5vLWhvdmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy10ZWFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYy10ZWFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjLXdoaXRlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgY29udGFpbnMoJGxpZ2h0LWNvbG91cnMsICRjb2xvdXIpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oJGNvbG9yLCAkY29sb3IsICRjLXRleHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtLSN7JGNvbG91cn0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKCRjb2xvciwgJGNvbG9yLCAjZmZmKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWdob3N0LS0jeyRjb2xvdXJ9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbihub25lLCAkY29sb3IsICRjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1oYXMtaWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXG4gICAgICAgIC5idXR0b25fX2xhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6ICRsaC80O1xuICAgICAgICB9XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzLCB3aWR0aCAwLjNzO1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgICAgICAgICAgLy8gd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAvLyBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGdhcDogJGxoLzQ7XG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iZWZvcmUge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkbGgvMjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICB0cmFuc2l0aW9uOiBmaWxsIDAuMnMsIHRyYW5zZm9ybSAwLjJzO1xuICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIC8vbWFyZ2luLWxlZnQ6ICRsaC80O1xuXG4gICAgICAgICYtLWJlZm9yZSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRsaC80O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1iaWcge1xuICAgICAgICBwYWRkaW5nOiAkbGgvMiAkbGg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmb250LXNpemU6IHB4dG9yZW0oMThweCk7XG4gICAgfVxuXG4gICAgJi0td2lkZSB7XG4gICAgICAgIHBhZGRpbmc6ICRsaC8yICRsaCAqIDI7XG4gICAgICAgIGZvbnQtc2l6ZTogcHh0b3JlbSgxOHB4KTtcbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgdHJhbnNpdGlvbjogZmlsbCAwLjJzO1xuICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG5cbiAgICAgICAgJi0tYmVmb3JlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGxoLzQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1vZHVsZSA6IEhlYWRlclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5zaXRlLWhlYWRlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzO1xuICAgIHotaW5kZXg6IDM7XG5cbiAgICBAaW5jbHVkZSBicCgkbWluLCAkbGFyZ2UpIHtcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgdG9wOiAtNDRweDtcbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MnB4O1xuICAgICAgICBib3R0b206IDg4cHg7XG4gICAgICAgIGhlaWdodDogNjBweDtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycztcbiAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwKTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHdpZHRoOiA5OCU7XG4gICAgICAgIG1heC13aWR0aDogMTI1NnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcblxuICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkc3VwZXIpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTQ0MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLndyYXAge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgICZbc3R1Y2tdIHtcbiAgICAgICAgICAgIHotaW5kZXg6IDQ7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmW3N0dWNrXSB7XG4gICAgICAgICAgICAuc2l0ZS1oZWFkZXJfX21haW4ge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zaXRlLWhlYWRlcl9fY29udGFjdCB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tYWluIHtcbiAgICAgICAgcGFkZGluZy10b3A6ICRsaC8yO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xcztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGxoLzI7XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkbGggMCAkbGgvMiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICA+IC53cmFwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgICAgICAgICByb3ctZ2FwOiAkbGgvMjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICByb3ctZ2FwOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uMiB7XG4gICAgICAgIEBpbmNsdWRlIGJwKCRtYXgsICRzbWFsbCkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RvcGJhci1jb250YWN0IHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAkbGgvNDtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJHNtYWxsKSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRhY3Qge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6ICRsaC80O1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XG4gICAgICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDIuNXB4O1xuICAgICAgICAgICAgY29sb3I6ICRjLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdG9wYmFyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtYmxhY2s7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAxLjhweDtcbiAgICAgICAgcGFkZGluZzogJGxoLzQgMDtcblxuICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkbGFyZ2UpIHtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAyLjVweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJG1lZGl1bSkge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N0cmFwbGluZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJG1lZGl1bSkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkbGFyZ2UpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3doYXRzYXBwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAkbGgvNDtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAkbGgvMjtcbiAgICAgICAgICAgIGhlaWdodDogJGxoLzI7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1vZHVsZSA6IEZvb3RlclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5zaXRlLWZvb3RlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG5cbiAgICAmX19ib3R0b20tYmFyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtYmxhY2s7XG4gICAgICAgIHBhZGRpbmc6ICRsaC80O1xuXG4gICAgICAgIC5tZW51IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjLXdoaXRlO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnM7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjLXRlYWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkbWVkaXVtKSB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWRkcmVzcy10ZXh0IHtcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWFpbiB7XG4gICAgICAgIHBhZGRpbmc6IDUwcHggMCAkbGggMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRzbWFsbCkge1xuICAgICAgICAgICAgcGFkZGluZzogJGxoICogMiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLndyYXA6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6ICRsaDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJHNtYWxsKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICBnYXA6IDA7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRsaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC53cmFwOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjLXRlYWw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19sb2dvIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGxoO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19jb3B5cmlnaHQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAkbGggKiAyO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6ICRsaC8yIDA7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogJGMtYmxhY2s7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjLXByaW1hcnk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkbGFyZ2UpIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAud3JhcCB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICBnYXA6ICRsaC8yO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICR4LWxhcmdlKSB7XG4gICAgICAgICAgICAud3JhcCB7XG4gICAgICAgICAgICAgICAgZ2FwOiAkbGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgcGFkZGluZy10b3A6ICRsaC8yO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkbGgvNDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NyZWRpdCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG4gICAgICAgIGEge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBjb2xvcjogJGMtdGVhbDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtcHJpbWFyeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRzbWFsbCkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRsaCAqIDM7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRsYXJnZSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTW9kdWxlIDogTG9nb1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5sb2dvIHtcbiAgICAmLS1oZWFkZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxcyBlYXNlLWluLW91dCwgb3BhY2l0eSAxcyBlYXNlLWluLW91dDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTtcblxuICAgICAgICAubG9hZGVkICYge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5sb2dvX19pbWFnZSB7XG4gICAgICAgICAgICB3aWR0aDogODBweDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzO1xuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIFtzdHVja10gJiB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjQpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyOHB4O1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC40NSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkeC1sYXJnZSkge1xuICAgICAgICAgICAgICAgIFtzdHVja10gJiB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxOHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJHgtbGFyZ2UpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTA1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1mb290ZXIge1xuICAgICAgICBAaW5jbHVkZSBicCgkbWF4LCAkbWVkaXVtIC0gMXB4KSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDE4MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNb2R1bGUgOiBTbGlkZSBNZW51XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLm1lbnUtcGFuZWwge1xuICAgIC8vYmFja2dyb3VuZC1jb2xvcjogJGMtdGVhbDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDFzLCB0cmFuc2Zvcm0gMXM7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6ICRsaDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMHB4KTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgei1pbmRleDogNjtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRjLXRlYWwsIDAuOCk7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNjBweDtcblxuICAgIEBpbmNsdWRlIGJwKCRtaW4sICRsYXJnZSkge1xuICAgICAgICB3aWR0aDogMzV2dztcbiAgICB9XG5cbiAgICAmX19tYWluIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgICZfX2hlYWRpbmcge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBjb2xvcjogJGMtd2hpdGU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgLy8gei1pbmRleDogMTtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtYmVpZ2U7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxcyBlYXNlLWluLW91dDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1heCwgJGxhcmdlIC0gMXB4KSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6ICRsaDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgICZfX2FjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDEyO1xuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG5cbiAgICAgICAgLnN1Ym1lbnUtb3BlbiAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFuaW1hdGUoMC42cywgZmFkZUluRGVsYXksIDEsIGxpbmVhcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jbG9zZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHdpZHRoOiAkbGggKiAyO1xuICAgICAgICBoZWlnaHQ6ICRsaCAqIDI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMjA7XG5cbiAgICAgICAgJi0tc3VibWVudSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAuc3VibWVudS1vcGVuICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRjLWJlaWdlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGZpbGw6ICNmZmY7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBmaWxsIDAuMnM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19oZWFkZXIge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbGg7XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJHNtYWxsKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkbGggKiAzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYm90dG9tIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRsaCAqIDM7XG4gICAgICAgIG1hcmdpbi10b3A6ICRsaC8yO1xuXG4gICAgICAgIC5zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tZW51LW9wZW4gJiB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG5cbiAgICAgICAgLm1lbnUtaXRlbSB7XG4gICAgICAgICAgICAkdGltZU9mZnNldDogMC4xNXM7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAxNiB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gdW5pdHMgYXJlIGluIHRoZSB2YXJpYWJsZSBzbyBTQ1NTIGp1c3QgZG9lcyBtYXRoXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuNXMgKyAoJGkgKiAkdGltZU9mZnNldCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm1lbnUtcGFuZWxfX2hlYWRlcjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tZW51IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICYtaXRlbSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRsaCk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC42cyBjdWJpYy1iZXppZXIoMC40LCAwLjEyLCAwLjEsIDEuMzUpLCBvcGFjaXR5IDAuNnM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3ViLW1lbnUge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRsaDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGxoO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICAgICAgdHJhbnNpdGlvbjogMC4zcyB0cmFuc2Zvcm0sIG9wYWNpdHkgMC4ycztcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzMwNGU7XG4gICAgICAgIHotaW5kZXg6IDExO1xuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXN1Ym1lbnUtdGl0bGUpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICAgICAgY29sb3I6IHJnYmEoJGMtd2hpdGUsIDAuNik7XG4gICAgICAgICAgICBtYXJnaW46ICRsaCAqIDEuNSAwIDAgMDtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZmYyO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDMwcHgpO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCNmZmYsIDAuMyk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcbiAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuM3M7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWSgwKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogJGxoO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLm1lbnUtaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJGxoO1xuXG4gICAgICAgICAgICAuc3VibWVudS10b2dnbGUge1xuICAgICAgICAgICAgICAgIHRvcDogJGxoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnN1Ym1lbnUtdG9nZ2xlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDVweDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgZmlsbDogI2ZmZjtcbiAgICAgICAgICAgIHdpZHRoOiAxNXB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNb2R1bGUgOiBUb2dnbGUgTmF2XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnRvZ2dsZS1uYXYge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCwgMC4ycywgZWFzZS1pbi1vdXQpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcGFkZGluZy10b3A6ICRsaC8yO1xuICAgIGhlaWdodDogZml0LWNvbnRlbnQ7XG4gICAgZ2FwOiAkbGgvNDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMXMgZWFzZS1pbi1vdXQsIG9wYWNpdHkgMXMgZWFzZS1pbi1vdXQ7XG4gICAgb3BhY2l0eTogMDtcbiAgICAvL3RyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7XG5cbiAgICAubG9hZGVkICYge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgIFtzdHVja10gJiB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICAuYnVyZ2VyX190b3Age1xuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIHJpZ2h0O1xuICAgICAgICAgICAgQGluY2x1ZGUgYW5pbWF0ZSgwLjNzLCBkb3duUm90YXRlLCAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5idXJnZXJfX2JvdHRvbSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgcmlnaHQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBhbmltYXRlKDAuM3MsIHVwUm90YXRlLCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLW1haW4ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJi0tY2xvc2Uge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBmb250LXNpemU6ICRmejtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAudG9nZ2xlLW5hdl9faWNvbiB7XG4gICAgICAgICAgICBmaWxsOiAjZmZmO1xuICAgICAgICAgICAgd2lkdGg6IDEzcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEzcHg7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMnB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJwKCRtaW4sICRtZWRpdW0pIHtcbiAgICAgICAgJi0tY2xvc2Uge1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNb2R1bGUgOiBTb2NpYWxcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uc29jaWFsLWxpbmtzIHtcbiAgICAmX19saXN0IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbGgvMjtcbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRsaC8yO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAkbGggKiAxLjU7XG4gICAgICAgIGhlaWdodDogJGxoICogMS41O1xuXG4gICAgICAgICYtLXJvdW5kIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nOiAkbGg7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLWJsYWNrO1xuXG4gICAgICAgICAgICAuc29jaWFsLWxpbmtzX19pY29uIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkYy10ZWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHdpZHRoOiAkbGgvMiArIDI7XG4gICAgICAgIGhlaWdodDogJGxoLzIgKyAyO1xuICAgICAgICBmaWxsOiAkYy10ZWFsO1xuICAgICAgICB0cmFuc2l0aW9uOiBmaWxsIDAuM3M7XG5cbiAgICAgICAgJi0tbGFyZ2Uge1xuICAgICAgICAgICAgd2lkdGg6ICRsaCAqIDEuMjtcbiAgICAgICAgICAgIGhlaWdodDogJGxoICogMS4yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tYmxvZyB7XG4gICAgICAgIC5zb2NpYWwtbGlua3NfX2xpbmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtYmxhY2s7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjLXRlYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc29jaWFsLWxpbmtzX19pY29uIHtcbiAgICAgICAgICAgIGZpbGw6ICNmZmY7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1jb250YWN0LXBhZ2Uge1xuICAgICAgICAuc29jaWFsLWxpbmtzX19pdGVtIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAkbGgvMjtcbiAgICAgICAgfVxuICAgICAgICAuc29jaWFsLWxpbmtzX19saXN0IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWZvb3RlciB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRsaC8yO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJG1lZGl1bSkge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTW9kdWxlIDogQ29udGFjdCBMaW5rXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmNvbnRhY3QtbGluayB7XG4gICAgJl9fdGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJi0taWNvbiB7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRsaC8yO1xuICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1saWdodCB7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBmaWxsOiAjZmZmO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tZGFyayB7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBmaWxsOiAkYy10ZXh0O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNb2R1bGUgOiA0MDRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uZXJyb3ItNDA0IHtcbiAgICBtYXgtd2lkdGg6IDY1MHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIEBpbmNsdWRlIGJwKCRtaW4sICRzbWFsbCkge1xuICAgICAgICBwYWRkaW5nOiAkbGggKiAzIDA7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIjQwNFwiO1xuICAgICAgICBmb250LXNpemU6IDUwdnc7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBjb2xvcjogI2VhZWFlYTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC02MCUsIC01MCUpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJwKCRtaW4sICRzbWFsbCkge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBsZWZ0OiA2NSU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VhcmNoLWZpZWxkIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEyMHB4KTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIC8vYm9yZGVyOjFweCBzb2xpZCAkYy1ib3JkZXI7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgjMDAwLCAwLjA3KTtcbiAgICAgICAgaGVpZ2h0OiA0NHB4O1xuICAgIH1cblxuICAgIC5zZWFyY2gtc3VibWl0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtcHJpbWFyeTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGhlaWdodDogNDRweDtcbiAgICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1vZHVsZSA6IEdyYWRpZW50IFNoYWRvd1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ncmFkaWVudC1zaGFkb3cge1xuXHQmLS10b3Age1xuXHRcdCY6YmVmb3JlIHtcblx0XHRcdEBpbmNsdWRlIHRvcC1ncmFkLXNoYWRvdygwLjYpO1xuXHRcdH1cblx0fVxuXG5cdCYtLWJvdHRvbSB7XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0QGluY2x1ZGUgYm90dG9tLWdyYWQtc2hhZG93KDAuOSk7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnAoJG1heCwgJGxhcmdlIC0gMXB4KSB7XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGhlaWdodDogOTAlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYtLWJvdGgge1xuXHRcdCY6YmVmb3JlIHtcblx0XHRcdEBpbmNsdWRlIGJvdGgtZ3JhZC1zaGFkb3coKTtcblx0XHR9XG5cdH1cbn0iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1vZHVsZSA6IE92ZXJsYXlcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4ub3ZlcmxheSB7XG4gICAgJjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmLS1ub25lIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgfVxuICAgICYtLWxpZ2h0IHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjE1O1xuICAgICAgICB9XG4gICAgfVxuICAgICYtLW1lZGl1bSB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICB9XG4gICAgfVxuICAgICYtLXN0cm9uZyB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGVhY2ggJGNvbG91ciwgJGJnY29sb3IgaW4gJGNvbG91cnMge1xuICAgICAgICAmLS0jeyRjb2xvdXJ9IHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZ2NvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgY29udGFpbnMoJGRhcmstY29sb3VycywgJGNvbG91cikge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgICAgICAgICAgICAgYTpub3QoW2NsYXNzXj1cImJ1dHRvblwiXSkge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGMtdGVhbDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAjZmZmO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLXRlYWw7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYy1ibGFjaztcblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGMtYmxhY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiBjb250YWlucygkbGlnaHQtY29sb3VycywgJGNvbG91cikge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRjLXRleHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNb2R1bGUgOiBTVkcgSWNvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5zdmdpY29uIHtcblx0d2lkdGg6IDI0cHg7XG5cdGhlaWdodDoyNHB4O1xufSIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTW9kdWxlIDogQXZhdGFyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmF2YXRhciB7XG5cdGJvcmRlci1yYWRpdXM6MTAwJTtcblx0Ym9yZGVyOiAzcHggc29saWQgI2ZmZjtcblx0Ym94LXNoYWRvdzogMCAwIDRweCByZ2JhKCMwMDAsMC41KTtcblx0d2lkdGg6ICRsaCozIWltcG9ydGFudDtcblx0aGVpZ2h0OiAkbGgqMztcbn0iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1vZHVsZSA6IEdyYXZpdHkgRm9ybXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5ib2R5IHtcbiAgICAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIHtcbiAgICAgICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy10ZWFsO1xuICAgICAgICAgICAgcGFkZGluZzogJGxoLzIgJGxoO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnMsIGJhY2tncm91bmQtY29sb3IgMC4ycztcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLXdoaXRlO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmdmaWVsZC1jaG9pY2UtaW5wdXQgKyBsYWJlbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmdmb3JtX2hlYWRpbmcge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbGg7XG4gICAgfVxuXG4gICAgLmdmb3JtX3dyYXBwZXIgLmdmaWVsZF9lcnJvciAuZ2ZpZWxkX3JlcGVhdGVyX2NlbGwgbGFiZWwsXG4gICAgLmdmb3JtX3dyYXBwZXIgLmdmaWVsZF9lcnJvciBsYWJlbCxcbiAgICAuZ2Zvcm1fd3JhcHBlciAuZ2ZpZWxkX2Vycm9yIGxlZ2VuZCxcbiAgICAuZ2Zvcm1fd3JhcHBlciAuZ2ZpZWxkX3ZhbGlkYXRpb25fbWVzc2FnZSxcbiAgICAuZ2Zvcm1fd3JhcHBlciAudmFsaWRhdGlvbl9tZXNzYWdlLFxuICAgIC5nZm9ybV93cmFwcGVyIFthcmlhLWludmFsaWQ9XCJ0cnVlXCJdICsgbGFiZWwsXG4gICAgLmdmb3JtX3dyYXBwZXIgbGFiZWwgKyBbYXJpYS1pbnZhbGlkPVwidHJ1ZVwiXSB7XG4gICAgICAgIGNvbG9yOiAjZmY0NjQ2O1xuICAgIH1cblxuICAgIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmRlc2NyaXB0aW9uLFxuICAgIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9kZXNjcmlwdGlvbixcbiAgICAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nc2VjdGlvbl9kZXNjcmlwdGlvbixcbiAgICAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5pbnN0cnVjdGlvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICB9XG5cbiAgICAuZ2Zvcm1fd3JhcHBlciAuZ2ZpZWxkX3ZhbGlkYXRpb25fbWVzc2FnZSxcbiAgICAuZ2Zvcm1fd3JhcHBlciAudmFsaWRhdGlvbl9tZXNzYWdlIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIH1cblxuICAgIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmZpZWxkX2Rlc2NyaXB0aW9uX2Fib3ZlIC5nZmllbGRfZGVzY3JpcHRpb24ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMjYwMDAwO1xuICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLmdmb3JtX3dyYXBwZXIuZ3Jhdml0eS10aGVtZSAuZ2ZpZWxkX2xhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgIH1cblxuICAgIC5nZm9ybV93cmFwcGVyLmdyYXZpdHktdGhlbWUgLmdmaWVsZF9jaGVja2JveCBsYWJlbCxcbiAgICAuZ2Zvcm1fd3JhcHBlci5ncmF2aXR5LXRoZW1lIC5nZmllbGRfcmFkaW8gbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgfVxuXG4gICAgLmdmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZzogJGxoLzI7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjLXRlYWw7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRsaDtcbiAgICB9XG59XG4iLCIvKiEgTGl0eSAtIHYyLjQuMSAtIDIwMjAtMDQtMjZcbiogaHR0cDovL3NvcmdhbGxhLmNvbS9saXR5L1xuKiBDb3B5cmlnaHQgKGMpIDIwMTUtMjAyMCBKYW4gU29yZ2FsbGE7IExpY2Vuc2VkIE1JVCAqL1xuLmxpdHkge1xuICAgIHotaW5kZXg6IDk5OTA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGJhY2tncm91bmQ6ICMwYjBiMGI7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjkpO1xuICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG4gICAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG4gIH1cbiAgLmxpdHkubGl0eS1vcGVuZWQge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgLmxpdHkubGl0eS1jbG9zZWQge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgLmxpdHkgKiB7XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cbiAgLmxpdHktd3JhcCB7XG4gICAgei1pbmRleDogOTk5MDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmxpdHktd3JhcDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0wLjI1ZW07XG4gIH1cbiAgLmxpdHktbG9hZGVyIHtcbiAgICB6LWluZGV4OiA5OTkxO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtMC44ZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG4gICAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG4gIH1cbiAgLmxpdHktbG9hZGluZyAubGl0eS1sb2FkZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgLmxpdHktY29udGFpbmVyIHtcbiAgICB6LWluZGV4OiA5OTkyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5saXR5LWNvbnRlbnQge1xuICAgIHotaW5kZXg6IDk5OTM7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBlYXNlO1xuICAgIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuM3MgZWFzZTtcbiAgICAtby10cmFuc2l0aW9uOiAtby10cmFuc2Zvcm0gMC4zcyBlYXNlO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZSwgLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBlYXNlLCAtby10cmFuc2Zvcm0gMC4zcyBlYXNlO1xuICB9XG4gIC5saXR5LWxvYWRpbmcgLmxpdHktY29udGVudCxcbiAgLmxpdHktY2xvc2VkIC5saXR5LWNvbnRlbnQge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xuICAgICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xuICAgICAgICAgLW8tdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xuICB9XG4gIC5saXR5LWNvbnRlbnQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgOHB4IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgfVxuICAubGl0eS1jbG9zZSB7XG4gICAgei1pbmRleDogOTk5NDtcbiAgICB3aWR0aDogMzVweDtcbiAgICBoZWlnaHQ6IDM1cHg7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC1zaXplOiAzNXB4O1xuICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgQmFza2VydmlsbGUsIG1vbm9zcGFjZTtcbiAgICBsaW5lLWhlaWdodDogMzVweDtcbiAgICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLmxpdHktY2xvc2U6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG4gIC5saXR5LWNsb3NlOmhvdmVyLFxuICAubGl0eS1jbG9zZTpmb2N1cyxcbiAgLmxpdHktY2xvc2U6YWN0aXZlLFxuICAubGl0eS1jbG9zZTp2aXNpdGVkIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogMzVweDtcbiAgICBmb250LWZhbWlseTogQXJpYWwsIEJhc2tlcnZpbGxlLCBtb25vc3BhY2U7XG4gICAgbGluZS1oZWlnaHQ6IDM1cHg7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG4gIC5saXR5LWNsb3NlOmFjdGl2ZSB7XG4gICAgdG9wOiAxcHg7XG4gIH1cbiAgLyogSW1hZ2UgKi9cbiAgLmxpdHktaW1hZ2UgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiAwO1xuICB9XG4gIC8qIGlGcmFtZSAqL1xuICAubGl0eS1pZnJhbWUgLmxpdHktY29udGFpbmVyLFxuICAubGl0eS15b3V0dWJlIC5saXR5LWNvbnRhaW5lcixcbiAgLmxpdHktdmltZW8gLmxpdHktY29udGFpbmVyLFxuICAubGl0eS1mYWNlYm9va3ZpZGVvIC5saXR5LWNvbnRhaW5lcixcbiAgLmxpdHktZ29vZ2xlbWFwcyAubGl0eS1jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogOTY0cHg7XG4gIH1cbiAgLmxpdHktaWZyYW1lLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBhZGRpbmctdG9wOiA1Ni4yNSU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICB9XG4gIC5saXR5LWlmcmFtZS1jb250YWluZXIgaWZyYW1lIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgOHB4IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwO1xuICB9XG4gIC5saXR5LWhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNb2R1bGUgOiBCdXJnZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZG93blJvdGF0ZSB7XG4gICAgMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTZweCwgMCkgcm90YXRlKDBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC02cHgsIDApIHJvdGF0ZSgwZGVnKTtcbiAgICB9XG5cbiAgICA1MCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgcm90YXRlKDBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHJvdGF0ZSgwZGVnKTtcbiAgICB9XG5cbiAgICA1NSUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgcm90YXRlKDBkZWcpIHNjYWxlWCgwLjUpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHJvdGF0ZSgwZGVnKSBzY2FsZVgoMC41KTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHJvdGF0ZSg0NWRlZykgc2NhbGVYKDAuNSk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgcm90YXRlKDQ1ZGVnKSBzY2FsZVgoMC41KTtcbiAgICB9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyB1cFJvdGF0ZSB7XG4gICAgMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNnB4LCAwKSByb3RhdGUoMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNnB4LCAwKSByb3RhdGUoMGRlZyk7XG4gICAgfVxuXG4gICAgNTAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSByb3RhdGUoMGRlZyk7XG4gICAgfVxuXG4gICAgNTUlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHJvdGF0ZSgwZGVnKSBzY2FsZVgoMC41KTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSByb3RhdGUoMGRlZykgc2NhbGVYKDAuNSk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSByb3RhdGUoLTQ1ZGVnKSBzY2FsZVgoMC41KTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSByb3RhdGUoLTQ1ZGVnKSBzY2FsZVgoMC41KTtcbiAgICB9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBkb3duUm90YXRlLS1yZXZlcnNlIHtcbiAgICAwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSByb3RhdGUoNDVkZWcpIHNjYWxlWCgwLjUpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHJvdGF0ZSg0NWRlZykgc2NhbGVYKDAuNSk7XG4gICAgfVxuXG4gICAgNTAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHJvdGF0ZSgwZGVnKSBzY2FsZVgoMC41KTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSByb3RhdGUoMGRlZykgc2NhbGVYKDAuNSk7XG4gICAgfVxuXG4gICAgNTUlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHJvdGF0ZSgwZGVnKSBzY2FsZVgoMSk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgcm90YXRlKDBkZWcpIHNjYWxlWCgxKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC02cHgsIDApIHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNnB4LCAwKSByb3RhdGUoMGRlZyk7XG4gICAgfVxufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgdXBSb3RhdGUtLXJldmVyc2Uge1xuICAgIDAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHJvdGF0ZSgtNDVkZWcpIHNjYWxlWCgwLjUpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHJvdGF0ZSgtNDVkZWcpIHNjYWxlWCgwLjUpO1xuICAgIH1cblxuICAgIDUwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSByb3RhdGUoMGRlZykgc2NhbGVYKDAuNSk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgcm90YXRlKDBkZWcpIHNjYWxlWCgwLjUpO1xuICAgIH1cblxuICAgIDU1JSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSByb3RhdGUoMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgcm90YXRlKDBkZWcpO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNnB4LCAwKSByb3RhdGUoMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNnB4LCAwKSByb3RhdGUoMGRlZyk7XG4gICAgfVxufVxuXG4uYnVyZ2VyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICAvL21hcmdpbjogMCBhdXRvO1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICA+ICoge1xuICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIC5qcy1sb2FkaW5nICYge1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwcyAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdG9wLFxuICAgICZfX2JvdHRvbSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdHJhbnNpdGlvbjogMC4zcyB0cmFuc2Zvcm07XG4gICAgfVxuXG4gICAgJl9fdG9wIHtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQ7XG4gICAgICAgIEBpbmNsdWRlIGFuaW1hdGUoMC4zcywgZG93blJvdGF0ZS0tcmV2ZXJzZSwgMSk7XG4gICAgfVxuXG4gICAgJl9fYm90dG9tIHtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQ7XG4gICAgICAgIEBpbmNsdWRlIGFuaW1hdGUoMC4zcywgdXBSb3RhdGUtLXJldmVyc2UsIDEpO1xuICAgIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTW9kdWxlIDogU2VydmljZSBCbG9jayBMaW5rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5ibG9jay1saW5rIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcblxuICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICAgIEBpbmNsdWRlIGJwKCRtaW4sICRsYXJnZSkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgICYtLWJlaWdlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtYmVpZ2U7XG5cbiAgICAgICAgLmJsb2NrLWxpbmsge1xuICAgICAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjLWRuYXZ5O1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGctYmVpZ2U7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGMtZG5hdnksIDAuNSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGMtYmVpZ2UsIDAuOCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGMtdGV4dDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS10ZWFsIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtdGVhbDtcbiAgICAgICAgY29sb3I6ICNmZmY7XG5cbiAgICAgICAgLmJsb2NrLWxpbmsge1xuICAgICAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZy10ZWFsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRjLWJlaWdlLCAwLjUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYy10ZWFsLCAwLjgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRjLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAkbGgvMjtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCA1MHB4KTtcbiAgICAgICAgd2lkdGg6IDk1JTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICAgIG9wYWNpdHkgMC4zcyAwLjNzLFxuICAgICAgICAgICAgdHJhbnNmb3JtIDAuM3MgMC4xcztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6ICRsaDtcbiAgICAgICAgICAgIGhlaWdodDogJGxoO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICAgICAgICBvcGFjaXR5IDAuMnMsXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtIDAuMnM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCBjYWxjKC01MCUgLSAjeyRsaH0pKTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgICB0cmFuc2Zvcm0gMC41cyBjdWJpYy1iZXppZXIoMC4zOSwgMC4zOSwgMC4xNywgMC45NSksXG4gICAgICAgICAgICB0b3AgMC41cyBjdWJpYy1iZXppZXIoMC4zOSwgMC4zOSwgMC4xNywgMC45NSk7XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LWZhbWlseTogJGZmO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMi44cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRsaDtcbiAgICB9XG5cbiAgICAmX19wcmVoZWFkaW5nIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmZjI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xuXG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRtZWRpdW0pIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgJi0tbGFuZHNjYXBlIHtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19ob3Zlci10ZXh0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgMHM7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAkbGg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcztcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRvcCAwLjVzIGN1YmljLWJlemllcigwLjM5LCAwLjM5LCAwLjE3LCAwLjk1KTtcblxuICAgICAgICAgICAgLmNsaWVudC1zdG9yaWVzLWdyaWRfX21haW4gJiB7XG4gICAgICAgICAgICAgICAgdG9wOiA1MyU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnAoJG1heCwgJGxhcmdlIC0gMXB4KSB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogJGxoICogMy41O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogJGxoICogMi41O1xuXG4gICAgICAgICAgICAgICAgICAgIC5jbGllbnQtc3Rvcmllcy1ncmlkX19tYWluICYge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAkbGggKiAzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYmxvY2stbGluayB7XG4gICAgICAgICAgICAgICAgJl9fcHJlaGVhZGluZyB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAoJG1heCwgJGxhcmdlIC0gMXB4KSB7XG4gICAgICAgICAgICAgICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAkbGggKiAyLjU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTAlKSBzY2FsZSgxLjUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAkbGggKiAxLjU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2hvdmVyLXRleHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuM3M7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy9ncmFkaWVudC1ibGFjay1tYmx1ZS8vXG4kZy1ibGFjay1tYmx1ZTogbGluZWFyLWdyYWRpZW50KDAsICMzMTRhOTIgMCUsICMwZjE4MWMgMTAwJSk7XG4vL2dyYWRpZW50LWRibHVlLWJsYWNrLy9cbiRnLWRibHVlLWJsYWNrOiBsaW5lYXItZ3JhZGllbnQoMCwgIzBmMTgxYyAwJSwgIzIyMzY3MCAxMDAlKTtcbi8vZ3JhZGllbnQtYmVpZ2UvL1xuJGctYmVpZ2U6IGxpbmVhci1ncmFkaWVudChyZ2JhKDI0NywgMjM0LCAyMTgsIDAuMykgMCUsICRjLWJlaWdlIDEwMCUpO1xuLy9ncmFkaWVudC10ZWFsLy9cbiRnLXRlYWw6IGxpbmVhci1ncmFkaWVudChyZ2JhKDc1LCAxMTcsIDEyMSwgMC4zKSAwJSwgJGMtdGVhbCAxMDAlKTtcbi8vZ3JhZGllbnQtdGVhbC1sci8vXG4kZy10ZWFsLWxyOiBsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCByZ2JhKDc1LCAxMTcsIDEyMSwgMC4zKSAwJSwgJGMtdGVhbCAxMDAlKTtcbi8vZ3JhZGllbnQtYXJjdGljLy9cbiRnLWFyY3RpYzogbGluZWFyLWdyYWRpZW50KDAsICNkOWUyZTcgMCUsICNmZmZmZmYgMTAwJSk7XG4vL2dyYWRpZW50LWFyY3RpYy1yZXZlcnNlLy9cbiRnLWFyY3RpYy1yZXZlcnNlOiBsaW5lYXItZ3JhZGllbnQoMCwgI2ZmZmZmZiAwJSwgI2Q5ZTJlNyAxMDAlKTtcbiIsIi8qIFNsaWRlciAqL1xuXG4uc2xpY2stc2xpZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnNsaWNrLWxpc3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5kcmFnZ2luZyB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY3Vyc29yOiBoYW5kO1xuICAgIH1cbn1cbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5cbi5zbGljay10cmFjayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcblxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG59XG4uc2xpY2stc2xpZGUge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgICBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgJi5zbGljay1sb2FkaW5nIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgICYuZHJhZ2dpbmcgaW1nIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLnNsaWNrLWluaXRpYWxpemVkICYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAuc2xpY2stbG9hZGluZyAmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cblxuICAgIC5zbGljay12ZXJ0aWNhbCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuLnNsaWNrLWFycm93LnNsaWNrLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLnNsaWNrLWRvdHMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogJGxoLzQ7XG4gICAgYm90dG9tOiAtJGxoICogMS41O1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICBtYXJnaW46IDA7XG5cbiAgICBidXR0b24ge1xuICAgICAgICB3aWR0aDogJGxoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgICAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzO1xuICAgICAgICBoZWlnaHQ6IDdweDtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhYWE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgICYuc2xpY2stYWN0aXZlIHtcbiAgICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtdGVhbDtcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtdGVhbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zbGljay1wcmV2LFxuLnNsaWNrLW5leHQge1xuICAgIHRleHQtaW5kZW50OiAtOTk5OXB4O1xuICAgIHdpZHRoOiAkbGggKiAzO1xuICAgIGhlaWdodDogJGxoICogMztcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkYy1ibGFjaztcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xufVxuXG4vLyBDdXN0b20gU2xpZGVyIFN0eWxlc1xuXG4uc2xpY2stc2xpZGVyIHtcbiAgICAmLS1zZXJ2aWNlcyB7XG4gICAgICAgIC5zbGljay1wcmV2IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6ICRsaDtcbiAgICAgICAgfVxuICAgICAgICAuc2xpY2stbmV4dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1vZHVsZSA6IEljb24gQnVsbGV0IExpc3Rcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaWNvbi1idWxsZXQtbGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRsaC8yO1xuXG4gICAgICAgIGE6bm90KC5idXR0b24pIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycztcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYTpub3QoLmJ1dHRvbikge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYy10ZWFsO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDE0cHg7XG4gICAgICAgIHdpZHRoOiAkbGggKiAwLjc1O1xuICAgICAgICBoZWlnaHQ6ICRsaCAqIDAuNzU7XG4gICAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNb2R1bGUgOiBQb3N0IFNoYXJlclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5wb3N0LXNoYXJlIHtcblxuXHRmbG9hdDpsZWZ0O1xuXG5cdD4gKiB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR9XG5cdFxuXHRAaW5jbHVkZSBicCgkbWluLCAkc21hbGwpIHtcblx0XHRmbG9hdDpub25lO1xuXHRcdGRpc3BsYXk6ZmxleDtcblx0XHRhbGlnbi1pdGVtczpjZW50ZXI7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxuXG5cdEBpbmNsdWRlIGJwKCRtaW4sICRtZWRpdW0pIHtcblx0XHRwYWRkaW5nOiAkbGgvMjtcblx0fVxuXG5cblx0Jl9fa2V5IHtcblx0XHRcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cGFkZGluZy1yaWdodDogJGxoLzQ7XG5cdFx0Zm9udC1zaXplOiAxNHB4O1xuXG5cdFx0cCB7XG5cdFx0XHRmb250LXdlaWdodDogNTAwO1xuXHRcdH1cblxuXHRcdEBpbmNsdWRlIGJwKCRtaW4sICRzbWFsbCkge1xuXHRcdFx0cGFkZGluZy1yaWdodDogJGxoLzI7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6ICRsaC8yO1xuXHRcdFx0Zm9udC1zaXplOiAkZno7XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDonJztcblx0XHRcdFx0d2lkdGg6IDA7XG5cdFx0XHRcdGhlaWdodDogMDtcblx0XHRcdFx0Ym9yZGVyLXRvcDogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdFx0XHRib3JkZXItbGVmdDogNXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0cmlnaHQ6MDtcblx0XHRcdFx0dG9wOjEwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Jl9fc29jaWFsIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0XHRtYXJnaW46MCAzcHg7XG5cdFx0d2lkdGg6ICRsaCArIDNweDtcblx0XHRoZWlnaHQ6ICRsaCArIDNweDtcblx0XHRib3JkZXItcmFkaXVzOjEwMCU7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnM7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcblx0XHR9XG5cblx0XHRzdmcge1xuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRmaWxsOiNmZmY7XG5cdFx0fVxuXG5cdFx0Ji0tZmFjZWJvb2sge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGMtZmFjZWJvb2s7XG5cdFx0fVxuXG5cdFx0Ji0tdHdpdHRlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYy10d2l0dGVyO1xuXHRcdH1cblxuXHRcdCYtLWxpbmtlZGluIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRjLWxpbmtlZGluO1xuXHRcdH1cblx0fVxufSIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTW9kdWxlIDogTWluaSB0ZXN0aW1vbmlhbFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5taW5pLXRlc3RpbW9uaWFsIHtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMTBweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy10ZWFsO1xuICAgIHBhZGRpbmc6ICRsaC8yICRsaDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogJGxoLzI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiAtJGxoICogMjtcbiAgICB6LWluZGV4OiAyO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWF4LXdpZHRoOiA0MjBweDtcblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAkbGg7XG4gICAgICAgICAgICBoZWlnaHQ6ICRsaDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkYy13aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBmbGV4OiAxO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkbGgvMjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hdXRob3Ige1xuICAgICAgICAgICAgY29sb3I6ICRjLWJlaWdlO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTW9kdWxlIDogQnJlYWRjcnVtYnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uYnJlYWRjcnVtYnMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAzO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgb3BhY2l0eTogMDtcblxuICAgICYuaXMtdmlzaWJsZSB7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4ycztcbiAgICAgICAgQGluY2x1ZGUgYW5pbWF0ZSgxcywgZmFkZUluUmlnaHRWU21hbGwsIDEsIGVhc2UtaW4tb3V0KTtcbiAgICB9XG5cbiAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICB3aWR0aDogJGxoLzI7XG4gICAgICAgIGhlaWdodDogJGxoLzI7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4vZGlzdC9pbWcvc3ZnL2FuZ2xlLXJpZ2h0LnN2Z1wiKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGxoLzQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcblxuICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkbGFyZ2UpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRsaC80O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tZGFyayB7XG4gICAgICAgIC5icmVhZGNydW1ic19fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4vZGlzdC9pbWcvc3ZnL2FuZ2xlLXJpZ2h0LS1kYXJrLnN2Z1wiKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTW9kdWxlIDogUGxheSBCdXR0b25cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBTcGluIGFuaW1hdGlvblxuQGtleWZyYW1lcyBzcGluIHtcblx0dG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG59XG4gIFxuLnN0cm9rZS1kb3R0ZWQge1xuXHRvcGFjaXR5OiAwO1xuXHRzdHJva2UtZGFzaGFycmF5OiA0LDU7XG5cdHN0cm9rZS13aWR0aDogMXB4O1xuXHR0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuXHRhbmltYXRpb246IHNwaW4gNHMgaW5maW5pdGUgbGluZWFyO1xuXHR0cmFuc2l0aW9uOiBvcGFjaXR5IDFzIGVhc2UsIFxuXHRzdHJva2Utd2lkdGggMXMgZWFzZTtcbn1cbi5zdHJva2Utc29saWQge1xuXHRzdHJva2UtZGFzaG9mZnNldDogMDtcblx0c3Ryb2tlLWRhc2hBcnJheTogMzAwO1xuXHRzdHJva2Utd2lkdGg6IDRweDtcblx0dHJhbnNpdGlvbjogc3Ryb2tlLWRhc2hvZmZzZXQgMXMgZWFzZSwgXG5cdG9wYWNpdHkgMXMgZWFzZTtcbn1cbiAgXG4uaWNvbiB7XG5cdHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG5cdHRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcyBlYXNlLW91dDtcbn1cbiAgXG4gIC8vIEhvdmVyXG4jcGxheTpob3ZlciB7XG5cdC5zdHJva2UtZG90dGVkIHtcblx0ICBzdHJva2Utd2lkdGg6IDRweDtcblx0ICBvcGFjaXR5OiAxO1xuXHR9XG5cdC5zdHJva2Utc29saWQge1xuXHQgIG9wYWNpdHk6IDA7XG5cdCAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDMwMDtcblx0fVxuXHQuaWNvbiB7XG5cdCAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcblx0fVxufSAgIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNb2R1bGUgOiBEaXJlY3Rpb25zIEZvcm1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uZGlyZWN0aW9ucy1mb3JtIHtcbiAgICBmaWVsZHNldCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogJGxoLzQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDgwcHg7XG4gICAgfVxuICAgICZfX3N1Ym1pdCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLWRuYXZ5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAjZmZmO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy1iZWlnZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzO1xuICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gICAgICAgIH1cblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgd2lkdGg6ICRsaCAqIDI7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBmaWxsIDAuM3M7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIExheW91dCA6IEhlcm9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaGVybyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi1oZWlnaHQ6IDIwMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmLS1zZWFyY2gge1xuICAgICAgICAuaGVyb19fc3ViaGVhZGluZyB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGZmO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtdGVhbDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJweCAkbGgvMiAycHggJGxoLzQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6ICRsaC80O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLW5vLWltYWdlIHtcbiAgICAgICAgcGFkZGluZzogJGxoICogMiAwO1xuICAgICAgICBtYXJnaW46IDAgMCAkbGggKiA0IDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAuaGVyb19fc3ViaGVhZGluZyB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkbGggKiAyO1xuXG4gICAgICAgICAgICAmLS1tYi1ub25lIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgIEBpbmNsdWRlIGFuaW1hdGUoMC4zcywgZmFkZUluLCAxLCBsaW5lYXIpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDE1MCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDM0LCA1NCwgMTEyLCAxKSAwJSwgcmdiYSgzNCwgNTQsIDExMiwgMCkgMTAwJSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJHNtYWxsKSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAzMDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJHNtYWxsKSB7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJlaGVhZGluZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGxoLzI7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkbGgvNDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuYWxpZ24tY2VudGVyIHtcbiAgICAgICAgLmhlcm9fX3ByZWhlYWRpbmcge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAubG9hZGVkICYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFuaW1hdGUoMXMsIGZhZGVJbiwgMSwgbGluZWFyKTtcbiAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuM3M7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmhlcm9fX3N1YmhlYWRpbmcge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA3NTBweDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxcyAwLjVzLCBvcGFjaXR5IDFzIDAuNXM7XG5cbiAgICAgICAgICAgIC5sb2FkZWQgJiB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaGVyb19faGVhZGluZyB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG8gJGxoICogMiBhdXRvO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxcyAwLjNzLCBvcGFjaXR5IDFzIDAuM3M7XG5cbiAgICAgICAgICAgICYtLW1iLWhhbGYge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRsaC8yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubG9hZGVkICYge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5hbGlnbi1sZWZ0IHtcbiAgICAgICAgLmhlcm9fX3ByZWhlYWRpbmcsXG4gICAgICAgIC5oZXJvX19icmFuZC10aHVtYm5haWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgYW5pbWF0ZSgwLjNzLCBmYWRlSW4sIDEsIGxpbmVhcik7XG4gICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuMnM7XG4gICAgICAgIH1cbiAgICAgICAgLmhlcm9fX3N1YmhlYWRpbmcge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxcyAwLjVzLCBvcGFjaXR5IDFzIDAuNXM7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICAgICAubG9hZGVkICYge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5oZXJvLS1jb250YWN0IHtcbiAgICAgICAgICAgIC5oZXJvX19zdWJoZWFkaW5nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgICAgICAgICAgICAgZ3JpZC1nYXA6ICRsaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5oZXJvX19oZWFkaW5nIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMXMgMC4zcywgb3BhY2l0eSAxcyAwLjNzO1xuXG4gICAgICAgICAgICAubG9hZGVkICYge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIC8vei1pbmRleDogMjsgLSBjb21tZW50ZWQgb3V0IGFzIHdhcyBjYXVzaW5nIGhvdmVyIGV2ZW50IGlzc3VlcyB3aXRoIHRhYiBsaW5rcyBvbiBwcm9kdWN0IHBhZ2VcbiAgICAgICAgLy8gVGhpbmsgdGhlIHN0eWxlIGFib3ZlIGlzIHRvIHNpdCB0ZXh0IGFib3ZlIG92ZXJsYXkgLSBjaGVjayFcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDM7XG5cbiAgICAgICAgLnNpbmdsZS1wcm9kdWN0ICYge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRsaCAqIDM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGxoICogNTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMjBweCByZ2JhKCMwMDAsIDAuMik7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIC5hbGlnbi1sZWZ0ICYge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNTYwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLXdyYXBwZXIge1xuICAgICAgICAgICAgJi0taGFzLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBnYXA6ICRsaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxLjVzIGN1YmljLWJlemllcigwLjI5LCAwLjc0LCAwLjQxLCAwLjkxKSwgb3BhY2l0eSAxLjVzIGN1YmljLWJlemllcigwLjI5LCAwLjc0LCAwLjQxLCAwLjkxKTtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMS4xcztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIH1cblxuICAgICZfX3N1YmhlYWRpbmcge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgJl9faGVhZGluZyB7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cblxuICAgICZfX3RleHQtd3JhcHBlciB7XG4gICAgICAgICYtLWZhZGluZyB7XG4gICAgICAgICAgICBhbmltYXRpb246IGZhZGVJbk91dCAxNnMgdmFyKC0tZCkgaW5maW5pdGU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogMCAkbGg7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19mYWRpbmctdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGxoICogMjtcblxuICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkbGFyZ2UpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRsaCAqIDQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1vZHVsZSA6IFNwYWNlclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5zcGFjZXIge1xuICAgIC0tbXVsdGlwbGllcjogMTtcbiAgICAtLWxoOiAjeyRsaH07XG5cbiAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICAgIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gICAgcGFkZGluZzogMDtcblxuICAgICYuc2xhbnQge1xuICAgICAgICAtLXNsYW50SDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19kaXYge1xuICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tbGgpICogdmFyKC0tbXVsdGlwbGllcikgLyAyKTtcblxuICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkbWVkaXVtKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGModmFyKC0tbGgpICogdmFyKC0tbXVsdGlwbGllcikpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNb2R1bGUgOiBTZWN0aW9uIEhlYWRlclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5zZWN0aW9uLWhlYWRlciB7XG4gICAgLy9wYWRkaW5nOjAgJGxoO1xuICAgIG1hcmdpbi1ib3R0b206ICRsaDtcblxuICAgICY6bm90KC5uby1kaXZpZGVyKSB7XG4gICAgICAgIC8vYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjLWJsYWNrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLWJsYWNrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMXMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICBib3R0b206IC0kbGgvMjtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRsaCAqIDI7XG5cbiAgICAgICAgJi5uby1kaXZpZGVyIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRsaDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zZWN0aW9uLWhlYWRlcl9faGVhZGluZ3Mge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMsIHRyYW5zZm9ybSAxcyBlYXNlLWluLW91dDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTtcbiAgICAgICAgZmxleDogMTtcbiAgICB9XG5cbiAgICBhW2NsYXNzKj1cImJ1dHRvblwiXSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cywgdHJhbnNmb3JtIDFzIGVhc2UtaW4tb3V0O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7XG4gICAgfVxuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgLnNlY3Rpb24taGVhZGVyX19oZWFkaW5ncyB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgYVtjbGFzcyo9XCJidXR0b25cIl0ge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuYWxpZ24tbGVmdCB7XG4gICAgICAgIC53cmFwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiAkbGggKiAyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicCgkbWF4LCAkbGFyZ2UgLSAxcHgpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19oZWFkaW5nIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGxoLzI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICYuaDEge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGxoLzI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdWJoZWFkaW5nIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgICAgIHA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJG1lZGl1bSkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcblxuICAgICAgICAgICAgLmFsaWduLWNlbnRlciAmIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDY3MHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJlaGVhZGluZyB7XG4gICAgICAgIGNvbG9yOiAkYy10ZWFsO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAgIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTW9kdWxlIDogU2VydmljZSBCbG9jayBMaW5rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5zZXJ2aWNlLWJsb2Nrcy1saW5rcyB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZy1ib3R0b206ICRsaCAqIDEuNTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLndyYXAge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6ICRsaDtcblxuICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkc21hbGwpIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgICAgICAgICBnYXA6ICRsaCAqIDI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19oZWFkaW5nIHtcbiAgICAgICAgcGFkZGluZzogJGxoICRsaC8yIDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgJl9faW50cm8ge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGxoO1xuICAgICAgICBvcGFjaXR5OiAwO1xuXG4gICAgICAgICYuaXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhbmltYXRlKDFzLCBmYWRlSW5SaWdodFNtYWxsLCAxLCBlYXNlLWluLW91dCk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkc21hbGwpIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgICAgICAgIGdhcDogJGxoICogMjtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLmlzLXZpc2libGUgJiB7XG4gICAgICAgICAgICAkdGltZU9mZnNldDogMC4yNXM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGFuaW1hdGUoMXMsIGZhZGVJblVwU21hbGwsIDEsIGN1YmljLWJlemllcigwLjQsIDAuMTIsIDAuMSwgMS4zNSkpO1xuICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAyIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAvLyB1bml0cyBhcmUgaW4gdGhlIHZhcmlhYmxlIHNvIFNDU1MganVzdCBkb2VzIG1hdGhcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAkaSAqICR0aW1lT2Zmc2V0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTW9kdWxlIDogSW1hZ2UgKyBUZXh0IFJvd1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5pbWFnZS10ZXh0LXJvdyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICBAaW5jbHVkZSBicCgkbWluLCAkc3VwZXIpIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRsaCAqIDM7XG4gICAgfVxuXG4gICAgJi5qcy12aXNpYmxlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxLjVzIDAuNXMsIHRyYW5zZm9ybSAzcyBjdWJpYy1iZXppZXIoMCwgMC45MiwgMCwgMSkgMC41cztcbiAgICAgICAgLy90cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwJSk7XG4gICAgfVxuXG4gICAgJi5pcy12aXNpYmxlLFxuICAgIC5uby1qcyAmIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLy90cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxuXG4gICAgcDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmLS1jcyB7XG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRsYXJnZSkge1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0xMDRweCAkbGggLTEwNHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFja2dyb3VuZCArIC53cmFwIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiAkbGgvMiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBtYXgtd2lkdGg6IDcwMHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcblxuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW1hZ2UtZmlyc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgLmltYWdlLXRleHQtcm93IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAtJGxoICogMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogOTAwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPiBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNjBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDYwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuaW1hZ2UtdGV4dC1yb3dfX3RleHQge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyIC8gc3BhbiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgICAgICAgIGNvbHVtbi1nYXA6ICRsaCAqIDQ7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkc3VwZXIpIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS40ZnIgMWZyO1xuICAgICAgICAgICAgJi0taW1hZ2UtZmlyc3Qge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDEuNGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRsaDtcblxuICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkbGFyZ2UpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICAgIG9yZGVyOiAyO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgYVtjbGFzc149XCJidXR0b25cIl0ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJGxoO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW1hZ2Utc3RpY2t5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICB0b3A6ICRsaDtcbiAgICAgICAgfVxuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgID4gaW1nIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkbGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAtJGxoICogMjtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogOTAwcHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAgICAgPiBpbWcge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA2MHB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA2MHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTW9kdWxlIDogSW1hZ2UgVGV4dCBDb2x1bW5zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmltYWdlLXRleHQtY29sdW1ucyB7XG4gICAgcGFkZGluZy10b3A6ICRsaCAqIDI7XG4gICAgcGFkZGluZy1ib3R0b206ICRsaCAqIDI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJl9fbWFpbiB7XG4gICAgICAgIC0tY29sczogNDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogJGxoO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcblxuICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkeC1zbWFsbCkge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgICAgID4gLmltYWdlLXRleHQtY29sdW1uc19faXRlbSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoKDEwMCUgLyB2YXIoLS1jb2xzKSAtICN7JGxofSkpO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAvL21heC13aWR0aDogMzUwcHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjLXRlYWw7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3BhY2l0eTogMDtcblxuICAgICAgICAuaXMtdmlzaWJsZSAmIHtcbiAgICAgICAgICAgICR0aW1lT2Zmc2V0OiAwLjI1cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgYW5pbWF0ZSgxcywgZmFkZUluVXBTbWFsbCwgMSwgY3ViaWMtYmV6aWVyKDAuNCwgMC4xMiwgMC4xLCAxLjM1KSk7XG4gICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDgge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHVuaXRzIGFyZSBpbiB0aGUgdmFyaWFibGUgc28gU0NTUyBqdXN0IGRvZXMgbWF0aFxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6ICRpICogJHRpbWVPZmZzZXQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbS1oZWFkaW5nIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGxoIC8gMjtcbiAgICAgICAgbWluLWhlaWdodDogMmVtO1xuICAgIH1cblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoJHAtZm9udC1zaXplcyk7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02NHB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N1YmhlYWRpbmcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICR4LXNtYWxsKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2MyYSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAtJGxoICogMS41O1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBmaWxsOiAkYy1ibGFjaztcbiAgICAgICAgICAgIHdpZHRoOiAkbGg7XG4gICAgICAgICAgICBoZWlnaHQ6ICRsaDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBwYWRkaW5nOiAkbGg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkbGggKiAwLjc1O1xuXG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICR4LXNtYWxsKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkbGgvMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRsYXJnZSkge1xuICAgICAgICAgICAgcGFkZGluZzogJGxoO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRsaCAqIDAuNzU7XG4gICAgICAgIH1cblxuICAgICAgICBwOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkbGgvMjtcblxuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTGF5b3V0IDogQ2xpZW50IFN0b3JpZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uY2xpZW50LXN0b3JpZXMge1xuICAgICZfX292ZXJ2aWV3IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkbGFyZ2UpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGxoICogNDtcbiAgICAgICAgICAgIG1heC13aWR0aDogOTAwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1vZHVsZSA6IEMyYSBTZWN0aW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmMyYS1zZWN0aW9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgJi5qcy12aXNpYmxlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxLjVzIDAuNXMsIHRyYW5zZm9ybSAzcyBjdWJpYy1iZXppZXIoMCwgMC45MiwgMCwgMSkgMC41cztcbiAgICAgICAgLy90cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwJSk7XG4gICAgfVxuXG4gICAgJi5pcy12aXNpYmxlLFxuICAgIC5uby1qcyAmIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLy90cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fbWFpbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgY29sb3I6ICRjLXRleHQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICAgIHBhZGRpbmc6ICRsaDtcblxuICAgICAgICAmLmJnLS13aGl0ZSxcbiAgICAgICAgJi5iZy0tYmVpZ2Uge1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjLXdoaXRlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLWRuYXZ5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAuYzJhLXNlY3Rpb25fX2xpbmstaG92ZXIge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1jb2x1bW4ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJi5oYXMtY29udGFjdC1saW5rcyxcbiAgICAgICAgJi5oYXMtYnV0dG9uIHtcbiAgICAgICAgICAgIC5jMmEtc2VjdGlvbl9fc3ViaGVhZGluZyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGxoO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJG1lZGl1bSkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDEwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jMmEtc2VjdGlvbl9fbWFpbiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuaGFzLWJ1dHRvbiB7XG4gICAgICAgICAgICAuYzJhLXNlY3Rpb24ge1xuICAgICAgICAgICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgICAgICAgICAmLmJnLS13aGl0ZSxcbiAgICAgICAgICAgICAgICAgICAgJi5iZy0tYmVpZ2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmMyYS1zZWN0aW9uX19oZWFkaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjLWJlaWdlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tcm93IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIC5jMmEtc2VjdGlvbl9fY29udGVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkbWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGdhcDogJGxoICogMjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jMmEtc2VjdGlvbl9fdGV4dCB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5oYXMtYnV0dG9uIHtcbiAgICAgICAgICAgIC5jMmEtc2VjdGlvbiB7XG4gICAgICAgICAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAgICAgICAgICYuYmctLXdoaXRlLFxuICAgICAgICAgICAgICAgICAgICAmLmJnLS1iZWlnZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYzJhLXNlY3Rpb25fX2hlYWRpbmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGMtYmVpZ2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICAmX19oZWFkaW5nIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGxoLzI7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gY2VudGVyO1xuICAgICAgICAmLS1uby1zdWIge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJG1lZGl1bSkge1xuICAgICAgICAgICAgICAgIC8vbWFyZ2luOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3ViaGVhZGluZyB7XG4gICAgICAgIC8vQGluY2x1ZGUgZm9udC1zaXplKCRoMy1mb250LXNpemVzKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGxoO1xuXG4gICAgICAgIHA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJG1lZGl1bSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRhY3QtbGlua3Mge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkbGFyZ2UpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBnYXA6ICRsaDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpbmstaG92ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxcztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICAuYmcge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzbGlkZSAzcyBlYXNlLWluLW91dCBpbmZpbml0ZSBhbHRlcm5hdGU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoLTYwZGVnLCAkYy1kbmF2eSA1MCUsICRjLXRlYWwgNTAlKTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGxlZnQ6IC01MCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogLTUwJTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJnMiB7XG4gICAgICAgICAgICBhbmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGUtcmV2ZXJzZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogNHM7XG4gICAgICAgIH1cblxuICAgICAgICAuYmczIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogNXM7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGUge1xuICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yNSUpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI1JSk7XG4gICAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNb2R1bGUgOiBGb3JtIFNlY3Rpb25cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uZm9ybS1zZWN0aW9uIHtcblx0LndyYXAge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR6LWluZGV4OiAyO1xuXHR9XG5cblx0Jl9fbWFpbiB7XG5cdFx0bWF4LXdpZHRoOiA2NTBweDtcblx0XHRtYXJnaW46MCBhdXRvO1xuXHR9XG59IiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMYXlvdXQgOiBPbmUgQ29sdW1uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLm9uZWNvbCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogMTtcblxuXHQmLS1zZWFyY2gge1xuXHRcdHBhZGRpbmctdG9wOiAkbGg7XG5cblx0XHRAaW5jbHVkZSBicCgkbWluLCAkbGFyZ2UpIHtcblx0XHRcdHBhZGRpbmctdG9wOiAkbGgqNTtcblx0XHR9XG5cdH1cblx0XG5cdC5vbmVjb2xfX2hlYWRlciB7XG5cdFx0bWFyZ2luLWJvdHRvbTogJGxoO1xuXHR9XG5cblx0Ji0taGFzLWJnIHtcblx0XHQub25lY29sX190ZXh0IHtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTpjb3Zlcjtcblx0XHRcdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcblxuXHRcdFx0QGluY2x1ZGUgYnAoJG1pbiwgJHNtYWxsKSB7XG5cdFx0XHRcdHBhZGRpbmc6IDAgJGxoO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYtLWhhcy1iZy1pbWcge1xuXHRcdC5vbmVjb2xfX3RleHQge1xuXHRcdFx0Y29sb3I6I2ZmZjtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR9XG5cdH1cblxuXHQmLS1uYXJyb3cge1xuXHRcdFxuXHRcdEBpbmNsdWRlIGJwKCRtaW4sICRsYXJnZSkge1xuXHRcdFx0Lm9uZWNvbF9faGVhZGVyIHtcblx0XHRcdFx0bWFyZ2luOjAgYXV0bztcblx0XHRcdFx0bWF4LXdpZHRoOiA4MCU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Jl9faGVhZGluZyB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0LmFsaWduLWNlbnRlciAmIHtcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdH1cblxuXHQmX190ZXh0IHtcblxuXHRcdDpsYXN0LWNoaWxkIHtcblx0XHRcdG1hcmdpbi1ib3R0b206MDtcblx0XHR9XG5cblx0XHQmLS1uYXJyb3cge1xuXHRcdFx0QGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG5cdFx0XHRcdG1hcmdpbjowIGF1dG87XG5cdFx0XHRcdG1heC13aWR0aDogODAlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufSIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTW9kdWxlIDogVVNQc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi51c3BzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIEBpbmNsdWRlIGJwKCRtaW4sICRsYXJnZSkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmZjI7XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1heCwgJGxhcmdlIC0gMXB4KSB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICB3aWR0aDogJGxoICogMS41O1xuICAgICAgICBoZWlnaHQ6ICRsaCAqIDEuNTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkc21hbGwpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgIC5zdmdpY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMYXlvdXQgOiBDb250YWN0IE1haW5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uY29udGFjdC1tYWluIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy10b3A6ICRsaDtcblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkbGFyZ2UpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgICAgICAgICBnYXA6ICRsaCAqIDI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjZ29vZ2xlbWFwIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogNC8zO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbGgvMjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICB9XG4gICAgJl9fZm9ybS13cmFwcGVyIHtcbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZm9ybSB7XG4gICAgICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgICAgICZfX3N1YmhlYWRpbmcge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZnogKyAycHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tYWluIHtcbiAgICAgICAgbWF4LXdpZHRoOiA2NTBweDtcbiAgICAgICAgcGFkZGluZzogJGxoO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy10ZWFsO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJGxoICogMi41O1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNjBweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNjBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGxoO1xuXG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRsYXJnZSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuanMtdmlzaWJsZSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxLjVzIDAuNXMsIHRyYW5zZm9ybSAzcyBjdWJpYy1iZXppZXIoMCwgMC45MiwgMCwgMSkgMC41cztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy12aXNpYmxlLFxuICAgICAgICAubm8tanMgJiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJveCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkbGggKiAyICRsaDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogJGxoICogMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTW9kdWxlIDogU2libGluZyBQYWdlIEdyaWQgU2VjdGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5zaWJsaW5nLXBhZ2UtZ3JpZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAud3JhcCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuXG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRtZWRpdW0pIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzAwcHggMWZyO1xuICAgICAgICAgICAgZ3JpZC1nYXA6ICRsaDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpc3Qge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICB9XG4gICAgJl9faXRlbSB7XG4gICAgICAgIHBhZGRpbmc6ICRsaC8yIDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgd2lkdGg6ICRsaCAqIDEuNTtcbiAgICAgICAgaGVpZ2h0OiAkbGggKiAxLjU7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzLCBvcGFjaXR5IDAuMnM7XG4gICAgICAgICAgICB3aWR0aDogMjNweDtcbiAgICAgICAgICAgIGhlaWdodDogMTFweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIHdpZHRoOiAyM3B4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRsYXJnZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAkbGgvMjtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRsaC80O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcztcbiAgICB9XG5cbiAgICAmX19oZWFkZXIuc2VjdGlvbi1oZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgICZfX2hlYWRpbmcucGFnZS1saW5rLWdyaWRfX2hlYWRpbmcge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEycHgpO1xuICAgIH1cblxuICAgICZfX2hlYWRpbmdfX2J1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBmaWxsIDAuM3M7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAuc2libGluZy1wYWdlLWdyaWRfX3RleHQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLXRlYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuc2libGluZy1wYWdlLWdyaWRfX2hlYWRpbmcge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNpYmxpbmctcGFnZS1ncmlkX19oZWFkaW5nX19idXR0b24ge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNXB4KTtcblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICNmZmY7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNb2R1bGUgOiBDaGlsZCBQYWdlIExpbmsgR3JpZFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5wYWdlLWxpbmstZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBncmlkLWdhcDogJGxoLzI7XG5cbiAgICAmLS10eXBlMiB7XG4gICAgICAgIGdyaWQtZ2FwOiAkbGg7XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJG1lZGl1bSkge1xuICAgICAgICAgICAgZ3JpZC1nYXA6ICRsaCAqIDEuNTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXR5cGUxIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgZ3JpZC1nYXA6ICRsaC8yO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJwKCRtaW4sICR4LXNtYWxsKSB7XG4gICAgICAgICYtLTNjb2wge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tMmNvbCB7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDQ1MHB4LCAxZnIpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJwKCRtaW4sICRtZWRpdW0pIHtcbiAgICAgICAgZ3JpZC1nYXA6ICRsaDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICYtLTNjb2wge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGJwKCRtaW4sICR4LWxhcmdlKSB7XG4gICAgICAgICYtLTJjb2wge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCg1NTBweCwgMWZyKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgZ2FwOiAkbGgvMjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcGFkZGluZzogJGxoLzI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICAgICAmX19tYWluIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faGVhZGluZyB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE2O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiBtYXJnaW4tYm90dG9tIDAuMnM7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMYXlvdXQgOiBEcm9wZG93biBMaXN0XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmRyb3Bkb3duLWxpc3Qge1xuICAgICZfX21haW4ge1xuICAgICAgICBtYXgtd2lkdGg6IDkwJTtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJG1lZGl1bSkge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA2NTBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXNpZGViYXIge1xuICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkbGFyZ2UpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRsaCAqIDI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRzbWFsbCkge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRsaDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbGggKiAwLjc1ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLXRlYWw7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6ICRsaC8yICRsaC8yIDFweCAkbGggKiAyO1xuXG4gICAgICAgICZfX2hlYWRpbmcge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGxoLzI7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtdGVhbDtcbiAgICAgICAgICAgICAgICAuZHJvcGRvd24tbGlzdF9fYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtYmVpZ2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taXMtb3BlbiB7XG4gICAgICAgICAgICAuZHJvcGRvd24tbGlzdF9faXRlbV9faGVhZGluZyB7XG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIC5kcm9wZG93bi1saXN0X19idXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtdGVhbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuNXMgY3ViaWMtYmV6aWVyKDAuNDYsIDAuOTYsIDAuNDMsIDAuOTQpO1xuICAgICAgICAvL21heC1oZWlnaHQ6MHB4O1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG5cbiAgICAmX19oZWFkZXIge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGN1YmljLWJlemllcigwLjQ2LCAwLjk2LCAwLjQzLCAwLjk0KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGxlZnQ6ICRsaC8yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuXG4gICAgICAgIC5kcm9wZG93bi1saXN0X19pdGVtLS1pcy1vcGVuICYge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtdGVhbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtdGVhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICB3aWR0aDogMTNweDtcbiAgICAgICAgICAgIGhlaWdodDogM3B4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtdGVhbDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7XG5cbiAgICAgICAgICAgIC5kcm9wZG93bi1saXN0X19pdGVtLS1pcy1vcGVuICYge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICB3aWR0aDogM3B4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxM3B4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtdGVhbDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgY3ViaWMtYmV6aWVyKDAuNDYsIDAuOTYsIDAuNDMsIDAuOTQpLCBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7XG5cbiAgICAgICAgICAgIC5kcm9wZG93bi1saXN0X19pdGVtLS1pcy1vcGVuICYge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNb2R1bGUgOiBBY2NyZWRpdGF0aW9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5hY2NyZWRpdGF0aW9ucyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nLWxlZnQ6ICRsaDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkbGg7XG5cbiAgICAmX19sb2dvcyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgICAgZ3JpZC1nYXA6ICRsaDtcbiAgICAgICAganVzdGlmeS1pdGVtczpjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6MTIwcHg7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRtZWRpdW0pIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KCBhdXRvLWZpdCwgbWlubWF4KDE1MHB4LCAxZnIpICk7XG4gICAgICAgIH1cblxuICAgICAgICAmLm93bC1jYXJvdXNlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OmJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufSIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTGF5b3V0IDogVHdvIENvbHVtblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi50d29jb2wge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgJl9fcm93IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDE0MDBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJG1lZGl1bSkge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1pbWFnZS1jb2wge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnAoJG1heCwgJG1lZGl1bSAtIDFweCkge1xuICAgICAgICAgICAgICAgIC50d29jb2xfX2NvbC0taGFzLWltYWdlIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwICRsaDtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6ICRsaDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICN7JGxofSogMik7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC50d29jb2xfX2NvbC0tdGV4dCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyNzBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb2wge1xuICAgICAgICBwYWRkaW5nOiAkbGg7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgMC4ycywgdHJhbnNmb3JtIDAuNXMgMC4ycztcblxuICAgICAgICAmLmlzLXZpc2libGUge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNvbDEge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xNXB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNvbDIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE1cHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIHA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkbGg7XG4gICAgICAgICAgICAudHdvY29sX19yb3ctLWhhcy1pbWFnZS1jb2wgJiB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogNDYwcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogJGxoICogMiAkbGggKiAzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJHgtbGFyZ2UpIHtcbiAgICAgICAgICAgIC50d29jb2xfX3Jvdy0taGFzLWltYWdlLWNvbCAmIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiA1NDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJG1lZGl1bSkge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgICAgICAgICAgIG1hcmdpbjogJGxoICogMiAkbGggJGxoICRsaDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDI7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1vZHVsZSA6IEdhbGxlcnlcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uZ2FsbGVyeSB7XG4gICAgJl9faXRlbSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbGgvMjtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRsaCk7XG4gICAgICAgIC8vb3BhY2l0eTowO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMXMgZWFzZS1pbi1vdXQsIG9wYWNpdHkgMS41cztcbiAgICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gI3skbGgvMn0pO1xuXG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRsYXJnZSkge1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMzMuMzMzMyUgLSAjeyRsaC8zfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N1YmhlYWRpbmcge1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoJGgzLWZvbnQtc2l6ZXMpO1xuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICB3aWR0aDogJGxoICogMS41O1xuICAgICAgICAgICAgaGVpZ2h0OiAkbGggKiAxLjU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi9kaXN0L2ltZy9zdmcvY2lyY2xlLXBsdXMtLXdoaXRlLnN2Z1wiKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wc3dwX19idXR0b24tLXNoYXJlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4ubS1jb250YWluZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAkbGg7XG4gICAgbWF4LXdpZHRoOiAxNDQwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5tLXNpemVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAjeyRsaC8yfSk7XG5cbiAgICBAaW5jbHVkZSBicCgkbWluLCAkbGFyZ2UpIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMzMuMzMzMyUgLSAjeyRsaC8zfSk7XG4gICAgfVxufVxuXG4ubS1ndXR0ZXIge1xuICAgIHdpZHRoOiAkbGgvMjtcblxuICAgIEBpbmNsdWRlIGJwKCRtaW4sICRsYXJnZSkge1xuICAgICAgICB3aWR0aDogJGxoLzI7XG4gICAgfVxufVxuXG4ucHN3cF9fY2FwdGlvbiAucHN3cF9fY2FwdGlvbl9fY2VudGVyIHtcbiAgICBtYXgtd2lkdGg6IGZpdC1jb250ZW50O1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNb2R1bGUgOiBWaWRlb1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi52aWRlbyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLmhvbWUgJiB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkbGg7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGMtYmVpZ2U7XG4gICAgfVxuXG4gICAgdmlkZW8ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRzbWFsbCkge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNjBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDFzIGVhc2UtaW4tb3V0LCBvcGFjaXR5IDFzIGVhc2UtaW4tb3V0O1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XG5cbiAgICAgICAgLmxvYWRlZCAmIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgbGluZWFyLWdyYWRpZW50KDM2MGRlZywgIzBmMjczMTc0IDAlLCAjMGYyNzMxMDAgMTAwJSkgMCUgMCUgbm8tcmVwZWF0IHBhZGRpbmctYm94O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJHNtYWxsKSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNjBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2MyYSB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRsaC80O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRsYXJnZSkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJGxoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcGxheS1idXR0b24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICB3aWR0aDogNjBweDtcbiAgICAgICAgICAgIGhlaWdodDogNjBweDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRzbWFsbCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNb2R1bGUgOiBQYWdlIEhlYWRpbmdcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4ucGFnZS1oZWFkaW5nIHtcbiAgICBtYXgtd2lkdGg6IDUxNXB4O1xuXG4gICAgYm9keTpub3QoLmhvbWUpICYge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGxoICogMjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicCgkbWF4LCAkbWVkaXVtIC0gMXB4KSB7XG4gICAgICAgIG9yZGVyOiAyO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJwKCRtaW4sICRsYXJnZSkge1xuICAgICAgICBtYXJnaW4tbGVmdDogJGxoICogNTtcbiAgICAgICAgbWFyZ2luLXRvcDogJGxoICogLTM7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnAoJG1pbiwgJHgtbGFyZ2UpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJGxoICogLTQ7XG4gICAgfVxuXG4gICAgJl9faGVhZGluZyxcbiAgICAmX19zdWJoZWFkaW5nLFxuICAgICZfX2Zvb3Rlci10ZXh0IHtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICAgIHRyYW5zZm9ybSAxcyBlYXNlLWluLW91dCxcbiAgICAgICAgICAgIG9wYWNpdHkgMXMgZWFzZS1pbi1vdXQ7XG4gICAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgICAgLmxvYWRlZCAmIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19oZWFkaW5nIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpO1xuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjNzO1xuICAgIH1cblxuICAgICZfX3N1YmhlYWRpbmcge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7XG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuNHM7XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1heCwgJGxhcmdlIC0gMXB4KSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKFxuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgIG51bGw6IChcbiAgICAgICAgICAgICAgICAgICAgMTRweCxcbiAgICAgICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIG1kOiAoXG4gICAgICAgICAgICAgICAgICAgIDE2cHgsXG4gICAgICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAmX19mb290ZXItdGV4dCB7XG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuNXM7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7XG4gICAgfVxuXG4gICAgLmJ1dHRvbi0tcGFnZWxpbmsge1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgICAgdHJhbnNmb3JtIDAuNHMgZWFzZS1pbi1vdXQsXG4gICAgICAgICAgICBvcGFjaXR5IDAuNHMgZWFzZS1pbi1vdXQ7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuOHM7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgIC5sb2FkZWQgJiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMXM7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIExheW91dCA6IE9mZmljZSBJbmZvXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLm9mZmljZS1pbmZvIHtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA2MHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogNDUlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJGctdGVhbC1scjtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicCgkbWF4LCAkbWVkaXVtIC0gMXB4KSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYy10ZWFsLCAwLjgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIGJwKCRtYXgsICRsYXJnZSAtIDFweCkge1xuICAgICAgICAub2ZmaWNlLWluZm9fX21haW4ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJGxoO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tYWluIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICAgICAgZ2FwOiAkbGggKiAzO1xuICAgIH1cbiAgICAmX192aWRlbyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDU1JTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiA0NSU7XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1heCwgJG1lZGl1bSAtIDFweCkge1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQGluY2x1ZGUgYnAoJG1pbiwgJHh4LWxhcmdlKSB7XG4gICAgICAgIC8vICAgICB3aWR0aDogNTB2dztcbiAgICAgICAgLy8gfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgfVxuXG4gICAgJl9fb3BlbmluZy1ob3VycyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTUwcHggMWZyO1xuICAgICAgICBnYXA6ICRsaDtcblxuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRsaC80O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faG91cnMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbGg7XG4gICAgfVxuXG4gICAgJl9fY29sMSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMjtcblxuICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkbGFyZ2UpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRsaCAqIDIgMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbDIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBwYWRkaW5nOiAkbGggKiAyIDA7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMYXlvdXQgOiBJbnRlcm5hbCBTbGlkZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4uaW50ZXJuYWwtc2xpZGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcblxuICAgICZfX3NsaWRlLXdyYXBwZXIge1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkbGFyZ2UpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtMTA0cHggJGxoIC0xMDRweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zbGljay1wcmV2LFxuICAgIC5zbGljay1uZXh0IHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICB3aWR0aDogJGxoICogMjtcbiAgICAgICAgaGVpZ2h0OiAkbGggKiAyO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzO1xuICAgIH1cblxuICAgIC5zbGljay1wcmV2IHtcbiAgICAgICAgbGVmdDogJGxoLzI7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICAgICAgd2lkdGg6ICRsaDtcbiAgICAgICAgICAgIGhlaWdodDogJGxoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4vZGlzdC9pbWcvc3ZnL2Fycm93LWxlZnQuc3ZnXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNXB4LCAtNTAlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zbGljay1uZXh0IHtcbiAgICAgICAgcmlnaHQ6ICRsaC8yO1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgICAgIHdpZHRoOiAkbGg7XG4gICAgICAgICAgICBoZWlnaHQ6ICRsaDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuL2Rpc3QvaW1nL3N2Zy9hcnJvdy1yaWdodC5zdmdcIik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDVweCwgLTUwJSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIEBpbmNsdWRlIGJwKCRtYXgsICR4LXNtYWxsIC0gMXB4KSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDI1MHB4O1xuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRsYXJnZSkge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRsaCAqIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkc3VwZXIpIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3ViaGVhZGluZyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRsaC8yO1xuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICBib3R0b206ICRsaCAqIDAuNzU7XG4gICAgICAgIGxlZnQ6ICRsaDtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgbWF4LXdpZHRoOiAzMTVweDtcbiAgICAgICAgYm94LXNoYWRvdzogMCA1cHggMTVweCByZ2JhKCMwMDAsIDAuMTUpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuXG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICR4LXNtYWxsKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDQ1MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRzdXBlcikge1xuICAgICAgICAgICAgYm90dG9tOiAkbGg7XG4gICAgICAgIH1cblxuICAgICAgICAmLXdyYXBwZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjI5LCAwLjc0LCAwLjQxLCAwLjkxKSwgb3BhY2l0eSAwLjNzO1xuICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC41cztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MHB4KTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRzbWFsbCkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRsaC8yICRsaDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNsaWNrLWN1cnJlbnQgJiB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIExheW91dCA6IENsaWVudCBTdG9yaWVzIFNsaWRlclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5jbGllbnQtc3Rvcmllcy1zbGlkZXIge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA2MHB4O1xuICAgIG1hcmdpbi10b3A6IC0kbGggKiAyO1xuICAgICZfX2l0ZW0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkbGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgICAgICAgICAgICAgIGZsZXg6IDEuNTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnAoJG1heCwgJGxhcmdlIC0gMXB4KSB7XG4gICAgICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiA1LzM7XG4gICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgcGFkZGluZzogJGxoLzI7XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgZ2FwOiAkbGggKiAyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2F1dGhvciB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkbGgvMjtcbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJGxoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIGZsZXg6IDI7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkbGFyZ2UpIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkbGgvMjtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZmYyO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGxoLzI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBicCgkbWluLCAkbGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkbGgvMjtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRsaDtcbiAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NsaWRlciB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cbiAgICAgICAgLnNsaWNrLWxpc3Qge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRsYXJnZSkge1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDgwcHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAmX19uYXYge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6ICRsaDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkbGgvMjtcbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGluaXRpYWw7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHdpZHRoOiAkbGggKiAyO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIDY0cHg7XG4gICAgICAgICAgICBnYXA6ICRsaC8yO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wcmV2LFxuICAgICZfX25leHQge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy1iZWlnZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzLCBjb2xvciAwLjNzO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBmaWxsIDAuM3M7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjLXRlYWw7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAjZmZmO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnNsaWNrLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYy1iZWlnZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGMtdGVhbDtcblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRjLXRleHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1heCwgJGxhcmdlIC0gMXB4KSB7XG4gICAgICAgICAgICB3aWR0aDogJGxoICogMjtcbiAgICAgICAgICAgIGhlaWdodDogJGxoICogMjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3ByZXYge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19uZXh0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRsaC8yO1xuXG4gICAgICAgIEBpbmNsdWRlIGJwKCRtYXgsICRsYXJnZSAtIDFweCkge1xuICAgICAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLnNsaWNrLWRpc2FibGVkIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuMztcbiAgICAgICAgfVxuXG4gICAgICAgICYtdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAgICAgICAgICAgICB0b3A6IDE2cHg7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMYXlvdXQgOiBDbGllbnQgU3RvcmllcyBHcmlkXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmNsaWVudC1zdG9yaWVzLWdyaWQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXRvcDogMDtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxMDBweDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgYmFja2dyb3VuZDogJGMtYmVpZ2U7XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJG1lZGl1bSkge1xuICAgICAgICAgICAgdG9wOiAzMDBweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19tYWluIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgIGdhcDogJGxoO1xuXG4gICAgICAgIEBpbmNsdWRlIGJwKCRtaW4sICRtZWRpdW0pIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1vZHVsZSA6IEljb24gVGV4dCBDb2x1bW5zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmljb24tdGV4dC1jb2x1bW5zIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGxoICogMjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDYwcHg7XG5cbiAgICBAaW5jbHVkZSBicCgkbWluLCAkbGFyZ2UpIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRsaCAqIDM7XG5cbiAgICAgICAgLmhvbWUgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21haW4ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBnYXA6ICRsaCAqIDEuNTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJHgtc21hbGwpIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLTNjb2wge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBvcGFjaXR5OiAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGJwKCRtYXgsICR4LXNtYWxsIC0gMXB4KSB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmlzLXZpc2libGUgJiB7XG4gICAgICAgICAgICAkdGltZU9mZnNldDogMC4yNXM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGFuaW1hdGUoMXMsIGZhZGVJblVwU21hbGwsIDEsIGN1YmljLWJlemllcigwLjQsIDAuMTIsIDAuMSwgMS4zNSkpO1xuICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA2IHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAvLyB1bml0cyBhcmUgaW4gdGhlIHZhcmlhYmxlIHNvIFNDU1MganVzdCBkb2VzIG1hdGhcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAkaSAqICR0aW1lT2Zmc2V0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuYWxpZ24tY2VudGVyIHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19mb290ZXItYzJhIHtcbiAgICAgICAgJi0taGFzLXBhZCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJGxoO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6ICRsaCAqIDI7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRsaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW0tdGV4dCB7XG4gICAgICAgIHA6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtLWhlYWRpbmcge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbGggLyAyO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjVzO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgIH1cblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuNCwgMC4xMiwgMC4xLCAxLjM1KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGxoLzI7XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBjb2xvcjogJGMtdGV4dDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkYy10ZXh0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3ViaGVhZGluZyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1pbiwgJHgtc21hbGwpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYzJhIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IC0kbGggKiAxLjU7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGZpbGw6ICRjLXRlYWw7XG4gICAgICAgICAgICB3aWR0aDogJGxoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkbGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19mb290ZXIge1xuICAgICAgICBtYXgtd2lkdGg6IDc1MHB4O1xuICAgICAgICBtYXJnaW46ICRsaCBhdXRvIDAgYXV0bztcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAkbGg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgQGluY2x1ZGUgYnAoJG1heCwgJHgtc21hbGwgLSAxcHgpIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGxoLzI7XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKiEgUGhvdG9Td2lwZSBtYWluIENTUyBieSBEbWl0cnkgU2VtZW5vdiB8IHBob3Rvc3dpcGUuY29tIHwgTUlUIGxpY2Vuc2UgKi9cbi8qXG5cdFN0eWxlcyBmb3IgYmFzaWMgUGhvdG9Td2lwZSBmdW5jdGlvbmFsaXR5IChzbGlkaW5nIGFyZWEsIG9wZW4vY2xvc2UgdHJhbnNpdGlvbnMpXG4qL1xuLyogcHN3cCA9IHBob3Rvc3dpcGUgKi9cbi5wc3dwIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC1tcy10b3VjaC1hY3Rpb246IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgei1pbmRleDogMTUwMDtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiBjcmVhdGUgc2VwYXJhdGUgbGF5ZXIsIHRvIGF2b2lkIHBhaW50IG9uIHdpbmRvdy5vbnNjcm9sbCBpbiB3ZWJraXQvYmxpbmsgKi9cbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIG91dGxpbmU6IG5vbmU7IH1cbiAgLnBzd3AgKiB7XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAucHN3cCBpbWcge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuXG4vKiBzdHlsZSBpcyBhZGRlZCB3aGVuIEpTIG9wdGlvbiBzaG93SGlkZU9wYWNpdHkgaXMgc2V0IHRvIHRydWUgKi9cbi5wc3dwLS1hbmltYXRlX29wYWNpdHkge1xuICAvKiAwLjAwMSwgYmVjYXVzZSBvcGFjaXR5OjAgZG9lc24ndCB0cmlnZ2VyIFBhaW50IGFjdGlvbiwgd2hpY2ggY2F1c2VzIGxhZyBhdCBzdGFydCBvZiB0cmFuc2l0aW9uICovXG4gIG9wYWNpdHk6IDAuMDAxO1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbiAgLyogZm9yIG9wZW4vY2xvc2UgdHJhbnNpdGlvbiAqL1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSk7XG4gICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIyLCAxKTsgfVxuXG4ucHN3cC0tb3BlbiB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5wc3dwLS16b29tLWFsbG93ZWQgLnBzd3BfX2ltZyB7XG4gIC8qIGF1dG9wcmVmaXhlcjogb2ZmICovXG4gIGN1cnNvcjogLXdlYmtpdC16b29tLWluO1xuICBjdXJzb3I6IC1tb3otem9vbS1pbjtcbiAgY3Vyc29yOiB6b29tLWluOyB9XG5cbi5wc3dwLS16b29tZWQtaW4gLnBzd3BfX2ltZyB7XG4gIC8qIGF1dG9wcmVmaXhlcjogb2ZmICovXG4gIGN1cnNvcjogLXdlYmtpdC1ncmFiO1xuICBjdXJzb3I6IC1tb3otZ3JhYjtcbiAgY3Vyc29yOiBncmFiOyB9XG5cbi5wc3dwLS1kcmFnZ2luZyAucHN3cF9faW1nIHtcbiAgLyogYXV0b3ByZWZpeGVyOiBvZmYgKi9cbiAgY3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nO1xuICBjdXJzb3I6IC1tb3otZ3JhYmJpbmc7XG4gIGN1cnNvcjogZ3JhYmJpbmc7IH1cblxuLypcblx0QmFja2dyb3VuZCBpcyBhZGRlZCBhcyBhIHNlcGFyYXRlIGVsZW1lbnQuXG5cdEFzIGFuaW1hdGluZyBvcGFjaXR5IGlzIG11Y2ggZmFzdGVyIHRoYW4gYW5pbWF0aW5nIHJnYmEoKSBiYWNrZ3JvdW5kLWNvbG9yLlxuKi9cbi5wc3dwX19iZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAkYy1ibGFjaztcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7IH1cblxuLnBzd3BfX3Njcm9sbC13cmFwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLnBzd3BfX2NvbnRhaW5lcixcbi5wc3dwX196b29tLXdyYXAge1xuICAtbXMtdG91Y2gtYWN0aW9uOiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwOyB9XG5cbi8qIFByZXZlbnQgc2VsZWN0aW9uIGFuZCB0YXAgaGlnaGxpZ2h0cyAqL1xuLnBzd3BfX2NvbnRhaW5lcixcbi5wc3dwX19pbWcge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lOyB9XG5cbi5wc3dwX196b29tLXdyYXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICAvKiBmb3Igb3Blbi9jbG9zZSB0cmFuc2l0aW9uICovXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSk7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpOyB9XG5cbi5wc3dwX19iZyB7XG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xuICAvKiBmb3Igb3Blbi9jbG9zZSB0cmFuc2l0aW9uICovXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIyLCAxKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpOyB9XG5cbi5wc3dwLS1hbmltYXRlZC1pbiAucHN3cF9fYmcsXG4ucHN3cC0tYW5pbWF0ZWQtaW4gLnBzd3BfX3pvb20td3JhcCB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogbm9uZTsgfVxuXG4ucHN3cF9fY29udGFpbmVyLFxuLnBzd3BfX3pvb20td3JhcCB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5wc3dwX19pdGVtIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLnBzd3BfX2ltZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgdG9wOiAwO1xuICBsZWZ0OiAwOyBcblxufVxuXG4vKlxuXHRzdHJldGNoZWQgdGh1bWJuYWlsIG9yIGRpdiBwbGFjZWhvbGRlciBlbGVtZW50IChzZWUgYmVsb3cpXG5cdHN0eWxlIGlzIGFkZGVkIHRvIGF2b2lkIGZsaWNrZXJpbmcgaW4gd2Via2l0L2JsaW5rIHdoZW4gbGF5ZXJzIG92ZXJsYXBcbiovXG4ucHN3cF9faW1nLS1wbGFjZWhvbGRlciB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi8qXG5cdGRpdiBlbGVtZW50IHRoYXQgbWF0Y2hlcyBzaXplIG9mIGxhcmdlIGltYWdlXG5cdGxhcmdlIGltYWdlIGxvYWRzIG9uIHRvcCBvZiBpdFxuKi9cbi5wc3dwX19pbWctLXBsYWNlaG9sZGVyLS1ibGFuayB7XG4gIGJhY2tncm91bmQ6ICMyMjI7IH1cblxuLnBzd3AtLWllIC5wc3dwX19pbWcge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwOyB9XG5cbi8qXG5cdEVycm9yIG1lc3NhZ2UgYXBwZWFycyB3aGVuIGltYWdlIGlzIG5vdCBsb2FkZWRcblx0KEpTIG9wdGlvbiBlcnJvck1zZyBjb250cm9scyBtYXJrdXApXG4qL1xuLnBzd3BfX2Vycm9yLW1zZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIG1hcmdpbi10b3A6IC04cHg7XG4gIGNvbG9yOiAjQ0NDOyB9XG5cbi5wc3dwX19lcnJvci1tc2cgYSB7XG4gIGNvbG9yOiAjQ0NDO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuIiwiLyohIFBob3RvU3dpcGUgRGVmYXVsdCBVSSBDU1MgYnkgRG1pdHJ5IFNlbWVub3YgfCBwaG90b3N3aXBlLmNvbSB8IE1JVCBsaWNlbnNlICovXG4vKlxuXG5cdENvbnRlbnRzOlxuXG5cdDEuIEJ1dHRvbnNcblx0Mi4gU2hhcmUgbW9kYWwgYW5kIGxpbmtzXG5cdDMuIEluZGV4IGluZGljYXRvciAoXCIxIG9mIFhcIiBjb3VudGVyKVxuXHQ0LiBDYXB0aW9uXG5cdDUuIExvYWRpbmcgaW5kaWNhdG9yXG5cdDYuIEFkZGl0aW9uYWwgc3R5bGVzIChyb290IGVsZW1lbnQsIHRvcCBiYXIsIGlkbGUgc3RhdGUsIGhpZGRlbiBzdGF0ZSwgZXRjLilcblxuKi9cbi8qXG5cdFxuXHQxLiBCdXR0b25zXG5cbiAqL1xuLyogPGJ1dHRvbj4gY3NzIHJlc2V0ICovXG4ucHN3cF9fYnV0dG9uIHtcbiAgICB3aWR0aDogNDRweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDAgJGxoLzIgKyA1IDAgMDtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgb3BhY2l0eTogMC43NTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgJi0tY2xvc2UsXG4gICAgJi0tYXJyb3ctLXJpZ2h0IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbn1cbi5wc3dwX19idXR0b246Zm9jdXMsXG4ucHN3cF9fYnV0dG9uOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAxO1xufVxuLnBzd3BfX2J1dHRvbjphY3RpdmUge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgb3BhY2l0eTogMC45O1xufVxuLnBzd3BfX2J1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG59XG5cbi8qIHBzd3BfX3VpLS1vdmVyLWNsb3NlIGNsYXNzIGl0IGFkZGVkIHdoZW4gbW91c2UgaXMgb3ZlciBlbGVtZW50IHRoYXQgc2hvdWxkIGNsb3NlIGdhbGxlcnkgKi9cbi5wc3dwX191aS0tb3Zlci1jbG9zZSAucHN3cF9fYnV0dG9uLS1jbG9zZSB7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLnBzd3BfX2J1dHRvbixcbi5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0OmJlZm9yZSxcbi5wc3dwX19idXR0b24tLWFycm93LS1yaWdodDpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguL3Bob3Rvc3dpcGUvZGVmYXVsdC1za2luLnBuZyk7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiAyNjRweCA4OHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xufVxuXG5AbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS4xKSwgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS4wOTM3NSksIChtaW4tcmVzb2x1dGlvbjogMTA1ZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAxLjFkcHB4KSB7XG4gICAgLyogU2VydmUgU1ZHIHNwcml0ZSBpZiBicm93c2VyIHN1cHBvcnRzIFNWRyBhbmQgcmVzb2x1dGlvbiBpcyBtb3JlIHRoYW4gMTA1ZHBpICovXG4gICAgLnBzd3AtLXN2ZyAucHN3cF9fYnV0dG9uLFxuICAgIC5wc3dwLS1zdmcgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQ6YmVmb3JlLFxuICAgIC5wc3dwLS1zdmcgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguL3Bob3Rvc3dpcGUvZGVmYXVsdC1za2luLnN2Zyk7XG4gICAgfVxuICAgIC5wc3dwLS1zdmcgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsXG4gICAgLnBzd3AtLXN2ZyAucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cbn1cblxuLnBzd3BfX2J1dHRvbi0tY2xvc2Uge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC03cHggLTUxcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuLnBzd3BfX2J1dHRvbi0tc2hhcmUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC01MHB4IC01MXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLnBzd3BfX2J1dHRvbi0tZnMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTdweCAtN3B4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5wc3dwLS1zdXBwb3J0cy1mcyAucHN3cF9fYnV0dG9uLS1mcyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5wc3dwLS1mcyAucHN3cF9fYnV0dG9uLS1mcyB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTU5cHggLTdweDtcbn1cblxuLnBzd3BfX2J1dHRvbi0tem9vbSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTRweCAtN3B4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5wc3dwLS16b29tLWFsbG93ZWQgLnBzd3BfX2J1dHRvbi0tem9vbSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5wc3dwLS16b29tZWQtaW4gLnBzd3BfX2J1dHRvbi0tem9vbSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEzOHB4IC03cHg7XG59XG5cbi8qIG5vIGFycm93cyBvbiB0b3VjaCBzY3JlZW5zICovXG4ucHN3cC0tdG91Y2ggLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsXG4ucHN3cC0tdG91Y2ggLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi8qXG5cdEFycm93IGJ1dHRvbnMgaGl0IGFyZWFcblx0KGljb24gaXMgYWRkZWQgdG8gOmJlZm9yZSBwc2V1ZG8tZWxlbWVudClcbiovXG4ucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCxcbi5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtNTBweDtcbiAgICB3aWR0aDogNzBweDtcbiAgICBoZWlnaHQ6IDEwMHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQge1xuICAgIGxlZnQ6IDA7XG59XG5cbi5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCB7XG4gICAgcmlnaHQ6IDA7XG59XG5cbi5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0OmJlZm9yZSxcbi5wc3dwX19idXR0b24tLWFycm93LS1yaWdodDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgdG9wOiAzNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoI2ZmZiwgMSk7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4ucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdDpiZWZvcmUge1xuICAgIGxlZnQ6IDIwcHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0MXB4IC00NHB4O1xufVxuXG4ucHN3cF9fYnV0dG9uLS1hcnJvdy0tcmlnaHQ6YmVmb3JlIHtcbiAgICByaWdodDogMjBweDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTRweCAtNDRweDtcbn1cblxuLypcblxuXHQyLiBTaGFyZSBtb2RhbC9wb3B1cCBhbmQgbGlua3NcblxuICovXG4ucHN3cF9fY291bnRlcixcbi5wc3dwX19zaGFyZS1tb2RhbCB7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLnBzd3BfX3NoYXJlLW1vZGFsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDE2MDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZS1vdXQ7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlLW91dDtcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbn1cblxuLnBzd3BfX3NoYXJlLW1vZGFsLS1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5wc3dwX19zaGFyZS10b29sdGlwIHtcbiAgICB6LWluZGV4OiAxNjIwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHRvcDogNjBweDtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcmlnaHQ6IDYwcHg7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuMjVzO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cztcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xufVxuLnBzd3BfX3NoYXJlLXRvb2x0aXAgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbn1cbi5wc3dwX19zaGFyZS10b29sdGlwIGE6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogIzAwMDtcbn1cbi5wc3dwX19zaGFyZS10b29sdGlwIGE6Zmlyc3QtY2hpbGQge1xuICAgIC8qIHJvdW5kIGNvcm5lcnMgb24gdGhlIGZpcnN0L2xhc3QgbGlzdCBpdGVtICovXG4gICAgYm9yZGVyLXJhZGl1czogMnB4IDJweCAwIDA7XG59XG4ucHN3cF9fc2hhcmUtdG9vbHRpcCBhOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAycHggMnB4O1xufVxuXG4ucHN3cF9fc2hhcmUtbW9kYWwtLWZhZGUtaW4ge1xuICAgIG9wYWNpdHk6IDE7XG59XG4ucHN3cF9fc2hhcmUtbW9kYWwtLWZhZGUtaW4gLnBzd3BfX3NoYXJlLXRvb2x0aXAge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4vKiBpbmNyZWFzZSBzaXplIG9mIHNoYXJlIGxpbmtzIG9uIHRvdWNoIGRldmljZXMgKi9cbi5wc3dwLS10b3VjaCAucHN3cF9fc2hhcmUtdG9vbHRpcCBhIHtcbiAgICBwYWRkaW5nOiAxNnB4IDEycHg7XG59XG5cbmEucHN3cF9fc2hhcmUtLWZhY2Vib29rOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTEycHg7XG4gICAgcmlnaHQ6IDE1cHg7XG4gICAgYm9yZGVyOiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2ZmZjtcbiAgICAtd2Via2l0LXBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIC1tb3otcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbmEucHN3cF9fc2hhcmUtLWZhY2Vib29rOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjM2U1YzlhO1xuICAgIGNvbG9yOiAjZmZmO1xufVxuYS5wc3dwX19zaGFyZS0tZmFjZWJvb2s6aG92ZXI6YmVmb3JlIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjM2U1YzlhO1xufVxuXG5hLnBzd3BfX3NoYXJlLS10d2l0dGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjNTVhY2VlO1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG5hLnBzd3BfX3NoYXJlLS1waW50ZXJlc3Q6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNjY2M7XG4gICAgY29sb3I6ICNjZTI3MmQ7XG59XG5cbmEucHN3cF9fc2hhcmUtLWRvd25sb2FkOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZGRkO1xufVxuXG4vKlxuXG5cdDMuIEluZGV4IGluZGljYXRvciAoXCIxIG9mIFhcIiBjb3VudGVyKVxuXG4gKi9cbi5wc3dwX19jb3VudGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMS41cHg7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogMjVweCAxMHB4IDEwcHggMjZweDtcbiAgICBmb250LWZhbWlseTogJGZmO1xufVxuXG4vKlxuXHRcblx0NC4gQ2FwdGlvblxuXG4gKi9cbi5wc3dwX19jYXB0aW9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNDRweDtcbn1cbi5wc3dwX19jYXB0aW9uIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgY29sb3I6ICNiYmI7XG59XG5cbi5wc3dwX19jYXB0aW9uX19jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWF4LXdpZHRoOiA0MjBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICBjb2xvcjogI2NjYztcbn1cblxuLnBzd3BfX2NhcHRpb24tLWVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBGYWtlIGNhcHRpb24gZWxlbWVudCwgdXNlZCB0byBjYWxjdWxhdGUgaGVpZ2h0IG9mIG5leHQvcHJldiBpbWFnZSAqL1xuLnBzd3BfX2NhcHRpb24tLWZha2Uge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLypcblxuXHQ1LiBMb2FkaW5nIGluZGljYXRvciAocHJlbG9hZGVyKVxuXG5cdFlvdSBjYW4gcGxheSB3aXRoIGl0IGhlcmUgLSBodHRwOi8vY29kZXBlbi5pby9kaW1zZW1lbm92L3Blbi95eUJXb1JcblxuICovXG4ucHN3cF9fcHJlbG9hZGVyIHtcbiAgICB3aWR0aDogNDRweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0yMnB4O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2Utb3V0O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZS1vdXQ7XG4gICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gICAgZGlyZWN0aW9uOiBsdHI7XG59XG5cbi5wc3dwX19wcmVsb2FkZXJfX2ljbiB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbjogMTJweDtcbn1cblxuLnBzd3BfX3ByZWxvYWRlci0tYWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xufVxuLnBzd3BfX3ByZWxvYWRlci0tYWN0aXZlIC5wc3dwX19wcmVsb2FkZXJfX2ljbiB7XG4gICAgLyogV2UgdXNlIC5naWYgaW4gYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IENTUyBhbmltYXRpb24gKi9cbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi9waG90b3N3aXBlL3ByZWxvYWRlci5naWYpIDAgMCBuby1yZXBlYXQ7XG59XG5cbi5wc3dwLS1jc3NfYW5pbWF0aW9uIC5wc3dwX19wcmVsb2FkZXItLWFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbn1cbi5wc3dwLS1jc3NfYW5pbWF0aW9uIC5wc3dwX19wcmVsb2FkZXItLWFjdGl2ZSAucHN3cF9fcHJlbG9hZGVyX19pY24ge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uOiBjbG9ja3dpc2UgNTAwbXMgbGluZWFyIGluZmluaXRlO1xuICAgIGFuaW1hdGlvbjogY2xvY2t3aXNlIDUwMG1zIGxpbmVhciBpbmZpbml0ZTtcbn1cbi5wc3dwLS1jc3NfYW5pbWF0aW9uIC5wc3dwX19wcmVsb2FkZXItLWFjdGl2ZSAucHN3cF9fcHJlbG9hZGVyX19kb251dCB7XG4gICAgLXdlYmtpdC1hbmltYXRpb246IGRvbnV0LXJvdGF0ZSAxMDAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSkgaW5maW5pdGU7XG4gICAgYW5pbWF0aW9uOiBkb251dC1yb3RhdGUgMTAwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpIGluZmluaXRlO1xufVxuXG4ucHN3cC0tY3NzX2FuaW1hdGlvbiAucHN3cF9fcHJlbG9hZGVyX19pY24ge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgb3BhY2l0eTogMC43NTtcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDE1cHg7XG4gICAgdG9wOiAxNXB4O1xuICAgIG1hcmdpbjogMDtcbn1cblxuLnBzd3AtLWNzc19hbmltYXRpb24gLnBzd3BfX3ByZWxvYWRlcl9fY3V0IHtcbiAgICAvKiBcblx0XHRcdFRoZSBpZGVhIG9mIGFuaW1hdGluZyBpbm5lciBjaXJjbGUgaXMgYmFzZWQgb24gUG9seW1lciAoXCJtYXRlcmlhbFwiKSBsb2FkaW5nIGluZGljYXRvciBcblx0XHRcdCBieSBLZWFudSBMZWUgaHR0cHM6Ly9ibG9nLmtlYW51bGVlLmNvbS8yMDE0LzEwLzIwL3RoZS10YWxlLW9mLXRocmVlLXNwaW5uZXJzLmh0bWxcblx0XHQqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogN3B4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ucHN3cC0tY3NzX2FuaW1hdGlvbiAucHN3cF9fcHJlbG9hZGVyX19kb251dCB7XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBtYXJnaW46IDA7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5wc3dwX19wcmVsb2FkZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgY2xvY2t3aXNlIHtcbiAgICAwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBjbG9ja3dpc2Uge1xuICAgIDAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZG9udXQtcm90YXRlIHtcbiAgICAwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC0xNDBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTQwZGVnKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBkb251dC1yb3RhdGUge1xuICAgIDAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTE0MGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xNDBkZWcpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgfVxufVxuXG4vKlxuXHRcblx0Ni4gQWRkaXRpb25hbCBzdHlsZXNcblxuICovXG4vKiByb290IGVsZW1lbnQgb2YgVUkgKi9cbi5wc3dwX191aSB7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYXV0bztcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgei1pbmRleDogMTU1MDtcbn1cblxuLyogdG9wIGJsYWNrIGJhciB3aXRoIGJ1dHRvbnMgYW5kIFwiMSBvZiBYXCIgaW5kaWNhdG9yICovXG4ucHN3cF9fdG9wLWJhciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIC8vaGVpZ2h0OiA0NHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6ICRsaDtcbn1cblxuLnBzd3BfX2NhcHRpb24sXG4ucHN3cF9fdG9wLWJhcixcbi5wc3dwLS1oYXNfbW91c2UgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLWxlZnQsXG4ucHN3cC0taGFzX21vdXNlIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCB7XG4gICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMjIsIDEpO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yMiwgMSk7XG59XG5cbi8qIHBzd3AtLWhhc19tb3VzZSBjbGFzcyBpcyBhZGRlZCBvbmx5IHdoZW4gdHdvIHN1YnNlcXVlbnQgbW91c2Vtb3ZlIGV2ZW50cyBvY2N1ciAqL1xuLnBzd3AtLWhhc19tb3VzZSAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCxcbi5wc3dwLS1oYXNfbW91c2UgLnBzd3BfX2J1dHRvbi0tYXJyb3ctLXJpZ2h0IHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4ucHN3cF9fdG9wLWJhcixcbi5wc3dwX19jYXB0aW9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBub25lO1xufVxuXG4vKiBwc3dwX191aS0tZml0IGNsYXNzIGlzIGFkZGVkIHdoZW4gbWFpbiBpbWFnZSBcImZpdHNcIiBiZXR3ZWVuIHRvcCBiYXIgYW5kIGJvdHRvbSBiYXIgKGNhcHRpb24pICovXG4ucHN3cF9fdWktLWZpdCAucHN3cF9fdG9wLWJhcixcbi5wc3dwX191aS0tZml0IC5wc3dwX19jYXB0aW9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBub25lO1xufVxuXG4vKiBwc3dwX191aS0taWRsZSBjbGFzcyBpcyBhZGRlZCB3aGVuIG1vdXNlIGlzbid0IG1vdmluZyBmb3Igc2V2ZXJhbCBzZWNvbmRzIChKUyBvcHRpb24gdGltZVRvSWRsZSkgKi9cbi5wc3dwX191aS0taWRsZSAucHN3cF9fdG9wLWJhciB7XG4gICAgb3BhY2l0eTogMDtcbn1cblxuLnBzd3BfX3VpLS1pZGxlIC5wc3dwX19idXR0b24tLWFycm93LS1sZWZ0LFxuLnBzd3BfX3VpLS1pZGxlIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCB7XG4gICAgb3BhY2l0eTogMDtcbn1cblxuLypcblx0cHN3cF9fdWktLWhpZGRlbiBjbGFzcyBpcyBhZGRlZCB3aGVuIGNvbnRyb2xzIGFyZSBoaWRkZW5cblx0ZS5nLiB3aGVuIHVzZXIgdGFwcyB0byB0b2dnbGUgdmlzaWJpbGl0eSBvZiBjb250cm9sc1xuKi9cbi5wc3dwX191aS0taGlkZGVuIC5wc3dwX190b3AtYmFyLFxuLnBzd3BfX3VpLS1oaWRkZW4gLnBzd3BfX2NhcHRpb24sXG4ucHN3cF9fdWktLWhpZGRlbiAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCxcbi5wc3dwX191aS0taGlkZGVuIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCB7XG4gICAgLyogRm9yY2UgcGFpbnQgJiBjcmVhdGUgY29tcG9zaXRpb24gbGF5ZXIgZm9yIGNvbnRyb2xzLiAqL1xuICAgIG9wYWNpdHk6IDAuMDAxO1xufVxuXG4vKiBwc3dwX191aS0tb25lLXNsaWRlIGNsYXNzIGlzIGFkZGVkIHdoZW4gdGhlcmUgaXMganVzdCBvbmUgaXRlbSBpbiBnYWxsZXJ5ICovXG4ucHN3cF9fdWktLW9uZS1zbGlkZSAucHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCxcbi5wc3dwX191aS0tb25lLXNsaWRlIC5wc3dwX19idXR0b24tLWFycm93LS1yaWdodCxcbi5wc3dwX191aS0tb25lLXNsaWRlIC5wc3dwX19jb3VudGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4ucHN3cF9fZWxlbWVudC0tZGlzYWJsZWQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLnBzd3AtLW1pbmltYWwtLWRhcmsgLnBzd3BfX3RvcC1iYXIge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG59XG4iXX0= */
